Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Blockchain概説

Avatar for okuchap okuchap
January 13, 2019

 Blockchain概説

Proof of Workの概要を,経済学徒(非技術者)向けに説明.

Avatar for okuchap

okuchap

January 13, 2019

Other Decks in Technology

Transcript

  1. ͸͡Ίʹ εϥΠυͷߏ੒ ▸ ໨త: ܦࡁֶె͕ϒϩοΫνΣʔϯؔ࿈ͷ࿦จΛಡΉ্ͰඞཁͱͳΔ஌ ࣝΛิ͏ ▸ Narayanan et al.

    (2016) Bitcoin and Cryptocurrency Technology(๜୊: ʰԾ૝௨՟ͷڭՊॻʱ)Λͭ·Έ৯͍ ▸ ಛʹɼBitcoinʹ͓͚ΔऔҾه࿥ͷߋ৽ϝΧχζϜ
 Proof of Work (PoW)ͷ࢓૊Έʹ͍ͭͯ(ʰڭՊॻʱ1,2ষ + α) ▸ ຊ೔ѻ͑ͳ͍͜ͱ: ٕज़తࡉ෦ɾݱ࣮ͰͷBitcoinͷ࢖༻ঢ়گɾࠓ·Ͱ /ݱࡏੜ͍ͯ͡Δ໰୊ɾBitcoinҎ֎ͷԾ૝௨՟(ΞϧτίΠϯ)
  2. ͸͡Ίʹ ʰԾ૝௨՟ͷڭՊॻʱʹ͍ͭͯ ▸ ओʹBitcoinपΓʹ͍ͭͯॻ͔Εͨຊ ▸ Antonopoulos (2014) Mastering Bitcoinͷํ͸ΑΓٕज़తͳ࿩ ͕ଟ͍ɽ

    ▸ ``Blockchain’’ͷશ͕ͯΘ͔ΔΘ͚Ͱ͸ܾͯ͠ͳ͍͕ɼ BlockchainपΓͷ࿩͸Bitcoinͷ࿩͕جૅʹ͋ΔͷͰɼ·ͣ͸ Bitcoinʹ͍ͭͯ͋Δఔ౓ֶΜͰ͓͘ඞཁ͕͋Δɽ ▸ Huberman et al. (2017) §3ʹ΋BitcoinͷγεςϜͷ֓આ͋Γ
  3. ͸͡Ίʹ BITCOIN͕࣮ݱͨ͠΋ͷ ▸ ৴པ͞Εͨதԝ౰ہͳ͠ͰɼిࢠܾࡁγεςϜΛ࣮ݱ ▸ ిࢠܾࡁγεςϜ: ෳ਺ͷޱ࠲ͷه࿥(୆ா, ledger)Λ؅ཧ ▸ ֤ޱ࠲ʹ͸ʮ࢖༻ऀʯͱʮ࢒ߴʯ͕ඥ͚ͮΒΕΔɽ

    ▸ ͦΕʹΑΓ࢖༻ऀ͸͓ۚΛҾ͖ग़ͯ͠ଞͷޱ࠲ʹҠ͢͜ͱ͕Մೳʹ ▸ ޱ࠲ͷॴ༗ऀͷΈ͕ޱ࠲͔Β͓ۚΛҾ͖ग़ͤΔɽ ▸ ߹๏తͳ=ఆΊΒΕͨγεςϜͷϧʔϧʹଇͬͨ ۚમҠసͷΈೝΊ ΒΕΔɽ
  4. ͸͡Ίʹ ୆ாͷ؅ཧํ๏ ▸ ैདྷ: ৴པ͞Εͨػؔ(e.g. ۜߦ)ͷΈ͕มߋՄೳͳspreadsheetΛอ؅ɽ ▸ Bitcoin: ৴པ͞Εͨػؔͳ͠ ▸

    ୆ா͸Ұൠʹެ։͞Εɼෳ਺ͷ৴པͰ͖ͳ͍αʔόʔ(minersɼ࠾۷ ऀ)ʹΑͬͯҡ࣋ɾߋ৽͞ΕΔɽminers͸ࣗ਎ͷརӹΛ࠷େԽɽ ▸ Bitcoinͷެ։୆ாͷ͜ͱΛblockchainͱݺͿɽ ▸ શһ͕୆ாͷத਎ʹ߹ҙ͠ɽҰͭͷ୆ாΛڞ༗͢ΔඞཁɽͦͷͨΊ ͷ࢓૊Έ͕Proof of Work(PoW)ɽ(ຊ೔ͷϝΠϯςʔϚ)
  5. ୈ1ষ ҉߸ཧ࿦ͱԾ૝௨՟ೖ໳ CRYPTOECONOMICS ▸ Cryptoeconomics
 ɹ≒ Economics related to blockchain-based

    currencies
 ɹ㱬 Economics related to cryptography ▸ BitcoinͷγεςϜʹ͸ͦ͜·Ͱߴ౓ͳ҉߸ཧ࿦ͷಓ۩͸༻ ͍ΒΕ͍ͯͳ͍ɽ ▸ ҉߸ֶతϋογϡؔ਺ ▸ ެ։伴҉߸
  6. ୈ1ষ ҉߸ཧ࿦ͱԾ૝௨՟ೖ໳ ҉߸ֶతϋογϡؔ਺ ▸ ϋογϡؔ਺ ▸ ೚ҙͷαΠζͷจࣈྻΛೖྗʹͱΕΔ ▸ ग़ྗͷαΠζ͸ܾ·ͬͨ௕͞ͷจࣈྻɽ ▸

    Ұ౓ͷܭࢉʹ͔͔Δ࣌ؒ͸୹͍ɽ ▸ ྫ: ▸ ҉߸ֶతϋογϡؔ਺͸ɼ
 ߋʹিಥ଱ੑɾൿಗੑɾύζϧ਌࿨ੑΛຬͨ͢ɽ H: ℕ → {0,…,9}, H(x) = [xΛ10Ͱׂͬͨ༨Γ]
  7. ୈ1ষ ҉߸ཧ࿦ͱԾ૝௨՟ೖ໳ িಥ଱ੑ ▸ ಉ͡ग़ྗʹͳΔҟͳΔೖྗ஋Λ(ݱ࣮తͳ࣌ؒͰ)ݟ͚ͭΒΕͳ͍ɽ ▸ Ԡ༻ྫ: message digest ▸

    ͋ΔαΠζͷେ͖ͳϑΝΠϧΛΞοϓϩʔυ ▸ Ξοϓϩʔυͨ͠ޙɼࣗ਎ͷύιίϯ͔Β࡟আ ▸ ͠͹Βͯ͘͠ɼϑΝΠϧ͕ඞཁʹͳͬͨͷͰμ΢ϯϩʔυ ▸ த਎͕ੲͱಉ͡Ͱ͋Δ͜ͱΛ֬ೝͰ͖Δ͔ʁ ▸ ݩϑΝΠϧͷϋογϡ(αΠζখ)͚ͩΛอ͍࣋ͯ͠Ε͹Α͍
  8. ୈ1ষ ҉߸ཧ࿦ͱԾ૝௨՟ೖ໳ ൿಗੑ ▸ ग़ྗΛݟͯ΋ͦΕΛ༩͑Δೖྗ͕(ݱ࣮తʹ)ݟ͔ͭΒͳ͍ ▸ ೖྗͷۭ͕ؒڊେͰ͋Δඞཁ ▸ Ԡ༻ྫ: commitment

    ▸ ࣌఺0Ͱ͋Δϝοηʔδm(e.g. ೉͍͠໰୊ͷղ౴)Λൿີཪʹ࢒͢ɽ ▸ ࣌఺1Ͱɼʮ࣌఺0Ͱࣗ෼͕࢒͍ͯͨ͠ϝοηʔδ͸mʯͱ͍͏͜ͱΛ ଞਓʹೲಘ͍ͤͨ͞ɽ ▸ ࣌఺0ͰcomΛެ։ɽ࣌఺1ͰmͱnonceΛެ։ɽ ▸ ͜Ε͕Ͱ͖Δͷ͸ɼিಥ଱ੑͱൿಗੑͷ͓͔͛ɽ com = H(msg, nonce) NONCEΛ༻͍Δ͜ͱͰɼ࣌఺0Ͱϝοηʔδͦͷ΋ͷΛอ༗͍ͯͨ͜͠ͱ(࣌఺0 Ͱ͸ϝοηʔδͷϋογϡ஋͔͓࣋ͬͯ͠Βͣɼ࣌఺1ʹͳ͔ͬͯΒϝο ηʔδΛͲ͔͔͜Β΋Β͖ͬͯͨΘ͚Ͱ͸ͳ͍͜ͱ)͕ূ໌Ͱ͖Δ(?)
  9. ୈ1ষ ҉߸ཧ࿦ͱԾ૝௨՟ೖ໳ ύζϧ਌࿨ੑ ▸ ΄͍͠ग़ྗΛ༩͑ΔೖྗΛɼશ୳ࡧʹΑͬͯݟ͚ͭΔ͜ͱ ͕೉͍͠ɽ(ৄࡉུ) ▸ Ԡ༻ྫ: ୳ࡧύζϧ ▸

    
 ɹɹɹɹɹ Λຬͨ͢ɹΛݟ͚ͭΑɽ ▸ Ұճ͋ͨΓɹɹɹɹͷ֬཰ͰΞλϦɽΞλϦΛҾ͘·Ͱ ͷࢼߦճ਺ͷظ଴஋͸ɹɹɹɹɹ H: ℕ → {1,…,21000} H(m) ≤ 210 m 210/21000 2990
  10. ୈ1ষ ҉߸ཧ࿦ͱԾ૝௨՟ೖ໳ ϒϩοΫνΣʔϯ ▸ Ԡ༻ྫ: վ᜵։ࣔϩά ▸ શһ͕ڞ௨ͷϒϩοΫνΣʔϯΛݟ͍ͯΔͱ͢Δɽ(ྫ͑͹ɼ͋ΔҰͭͷڞ༻αʔόʔʹϒ ϩοΫνΣʔϯͷσʔλ͕อଘ͞Ε͍ͯΔɽ) ▸

    શһ͕࠷৽ϒϩοΫΛࢦ͢ϋογϡϙΠϯλΛอ࣋ ▸ Alice͕͋ΔϒϩοΫͷσʔλΛվ᜵͢Δͱɾɾɾ ▸ ࣍ͷϒϩοΫͷϋογϡϙΠϯλͷϋογϡ஋ʹᴥᴪ ▸ Alice͸ɼվ᜵͕ଞਓʹόϨͳ͍ͨΊʹ͸վ᜵ͨ͠σʔλΛؚΉϒϩοΫʹଓ͘શͯͷϒ ϩοΫͷϋογϡ஋Λվ᜵͢Δඞཁɽ ▸ ͔͠͠ɼଞਓ͕อ࣋͢Δ࠷৽ͷϋογϡϙΠϯλͷϋογϡ஋͸࿔Εͳ͍ͷͰɼ݁ہվ᜵ ͕όϨΔɽ
  11. ୈ1ষ ҉߸ཧ࿦ͱԾ૝௨՟ೖ໳ ిࢠॺ໊ ▸ ॺ໊ͷੑ࣭ ▸ ॺ໊͕Մೳͳͷ͸౰ਓͷΈɽॺ໊Λݟͨଞਓ͕ɼͦͷॺ໊͕༗ޮͰ͋ Δ͜ͱ͕֬ೝͰ͖Δɽ ▸ ॺ໊͸ॺ໊ͨ͠จॻʹͷΈ༗ޮ

    ▸ ▸ sk: ൿີ伴ɽඇެ։Ͱ؅ཧɽpk: ެ։伴ɽؔ܎ऀશһʹ౉͢ɽ ▸ ɹɹɹɹɹɹɹɹɹɹɹɹɹɹൿີ伴Λ༻͍ͯϝοηʔδʹॺ໊ ▸ ɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹଞਓ͸ɼެ։伴Λ༻͍ͯɼ ϝοηʔδʹॺ໊ͨ͠ͷ͕౰ਓ͔Ͳ͏͔Λ֬ೝՄೳɽ (sk, pk) = generateKeys(keysize) sig := sign(sk, message) isValid := verify(pk, message, sig) ٕज़తͳৄࡉ͸ɼྫ͑͹ANTONOPOULOS (2014)ࢀর
  12. ୈ1ষ ҉߸ཧ࿦ͱԾ૝௨՟ೖ໳ ిࢠॺ໊ͷԠ༻: ࣝผ৘ใͱͯ͠ͷެ։伴 ▸ ެ։伴pkΛɼࣝผ৘ใ(id)ͱͯ͠࢖͏͜ͱ͕Մೳ ▸ ͍·ɼγεςϜ಺Ͱ৽͍͠ਓ֨Λಘ͍ͨͱ͢Δɽ ▸ generateKeysʹΑͬͯɼ(sk,

    pk)ΛൃߦɽpkΛެ։ɽ ▸ pk͸໊લͷΑ͏ͳ΋ͷɽγεςϜ಺Ͱpkͱͯ͠ൃݴ͢ΔͨΊʹ͸ɼ
 sig := sign(sk, message)Λੜ੒্ͨ͠ͰɼsigͱmessageΛެ։ɽ ▸ ଞͷਓ͸ɼisValidΛ༻͍ͯൃݴ͕pkʹΑΔ΋ͷ͔֬ೝ ▸ isValid(pk, message, sig) ==True Ͱ͋Ε͹pkʹΑΔ΋ͷɽ ▸ pkͰͳ͘ɼpkͷϋογϡ஋(αΠζখ)Λࣝผ৘ใͱͯ͠༻͍Δ͜ͱ΋Մೳɽ ඇதԝूݖతʹ
 ࣝผ৘ใ؅ཧ͕Մೳ
  13. ୈ2ষ ϏοτίΠϯ͕ඇதԝूݖΛ࣮ݱ͍ͯ͠Δ࢓૊Έ ิ଍: Ͳ͏͍͏ϓϨΠϠʔ͕ؔ܎͍ͯ͠Δͷ͔ʁ ▸ BitcoinωοτϫʔΫʹؔ܎͢Δਓʑ͸͍͔ͭ͘ͷछྨʹ෼ྨՄɽ ▸ ౰໘ͷٞ࿦ʹؔΘΔͷ͸ɼ(͜͜Ͱͷ༻ޠ͕Ұൠత͔͸ෆ໌) ▸ user:

    BitcoinΛ༻͍ͯऔҾΛߦͳ͍͍ͨਓ ▸ miner: BitcoinωοτϫʔΫʹίϯϐϡʔλΛͭͳ͗ɼϒϩο ΫνΣʔϯͷҡ࣋ɾߋ৽ʹܞΘΔਓɽ֤miner͸ɼP2Pωοτ ϫʔΫͷதͷҰͭ(ͳ͍͠ෳ਺)ͷϊʔυʹରԠɽ ▸ ڞ௨ू߹͸Ұൠʹ͸ඇۭ
  14. ୈ2ষ ϏοτίΠϯ͕ඇதԝूݖΛ࣮ݱ͍ͯ͠Δ࢓૊Έ ඇதԝूݖత߹ҙܗ੒ ▸ Alice͸ɼBobʹίΠϯΛૹۚ͢Δ୅ΘΓʹɼBob͔ΒύιίϯΛ΋Β͓ ͏ͱߟ͍͑ͯΔɽ ▸ Alice͸ɼʮBobʹ͍͘Βࢧ෷͏ʯͱॻ͍ͨऔҾΛωοτϫʔΫશମʹ޲ ͚ͯྲྀ͢(broadcast) ▸

    ֤ϊʔυ͸ɼ͜ͷΑ͏ʹbroadcast͞ΕͨऔҾΛอཹऔҾϓʔϧʹอ࣋ ▸ γεςϜશମͰ୯Ұͷ୆ாΛܗ੒͢ΔͨΊʹ͸ɽͲͷऔҾ͕broadcast͞ Ε͍ͯͯɼऔҾ͕ͲͷॱংͰൃੜ͍ͯ͠Δͷ͔ʹ͍ͭͯɼωοτϫʔΫʹ ࢀՃ͢Δϊʔυશ͕ͯ߹ҙ͢Δඞཁɽ ▸ Ͳ͏΍ͬͯ߹ҙ͢Δʁ ʮऔҾʯͷৄࡉ͸ޙड़
  15. ୈ2ষ ϏοτίΠϯ͕ඇதԝूݖΛ࣮ݱ͍ͯ͠Δ࢓૊Έ ඇதԝूݖత߹ҙܗ੒ ▸ ෳ਺ͷऔҾΛ·ͱΊͯ֨ೲͨ͠ϒϩοΫΛ࡞ΓɼϒϩοΫΛॱ࣍௥Ճ ͯ͠ϒϩοΫνΣʔϯΛܗ੒͍ͯ͘͜͠ͱΛߟ͑Δɽ ▸ ݸʑͷϒϩοΫ͸ɼ߹ҙʹୡͨ͠औҾͷϦετ͕֨ೲ͞ΕΔɽ ▸ ҎԼͷΑ͏ͳํࣜ͸༻͍Δ͜ͱ͕Ͱ͖ͳ͍:

    ▸ Ұఆִؒ(e.g. 10ඵ͝ͱ)͝ͱʹɼγεςϜ಺ͷશϊʔυ͕࣍ͷϒ ϩοΫʹࣗ෼ͷอཹऔҾϓʔϧΛऔΓࠐΉΑ͏ఏҊ ▸ ͳΜΒ͔ͷ߹ҙܗ੒ϓϩτίϧΛ࣮ߦ ▸ ग़ྗ͞Εͨ༗ޮͳϒϩοΫΛϒϩοΫνΣʔϯʹ௥Ճ ෆՄೳ(࣍ϖʔδࢀর)
  16. ୈ2ষ ϏοτίΠϯ͕ඇதԝूݖΛ࣮ݱ͍ͯ͠Δ࢓૊Έ LATENCY(஗Ԇ)ͱάϩʔόϧͳ࣌ؒ ▸ BitcoinͷP2PωοτϫʔΫ͸ෆ׬શͷఔ౓͕ܹ͍͠ ▸ શͯͷϊʔυ͕௚઀ޓ͍ʹܨ͕͍ͬͯΔΘ͚Ͱ͸ͳ͍ ▸ ωοτϫʔΫ͕ڊେ ▸

    ωοτϫʔΫ؀ڥ͕ѱ͍؀ڥͰ࡞ಈ͍ͯ͠Δϊʔυ΋͋Δ ▸ ʮάϩʔόϧʹྲྀΕΔ࣌ؒʯΛԾఆͨ͠߹ҙܗ੒ϝΧχζϜ͸ػೳ͠ͳ͍ ▸ Step 1Ͱʙʙͯ͠ɼStep 2Ͱʔʔͯ͠ɾɾɾΈ͍ͨͳ͜ͱΛશһͰಉ࣌ ʹߦ͏͜ͱ͸ෆՄೳɽ ▸ Ճ͑ͯɼ֤ϊʔυ͕ෆ݈શͰ͋ΔՄೳੑ΋ߟྀ͢Δඞཁɽ
  17. ୈ2ষ ϏοτίΠϯ͕ඇதԝूݖΛ࣮ݱ͍ͯ͠Δ࢓૊Έ ϒϩοΫνΣʔϯΛ࢖ͬͨ਎ݩෆ໌ͷਓʑͷ߹ҙܗ੒ ▸ Bitcoinͷϊʔυ͸ɼӬଓతͳਓ֨Λ࣋ͨͳ͍ ▸ ୭Ͱ΋޷͖ͳͱ͖ʹid(ެ։伴)Λ࡞Εͯɼ޷͖ͳͱ͖ʹഁغͰ͖Δɽ ▸ ୭͔͕উखʹେྔͷϊʔυΛ࡞ͬͯѱ͞Λ͢Δ(Sybil attack)ͱ͍ͬ

    ͨ͜ͱ͕Մೳɽ ▸ ͜ͷ࢓༷ͷ͍ͤͰɼϝΧχζϜͷઃܭʹେ͖ͳ੍໿͕͔͔Δɽ ▸ ͨͱ͑͹ɼʮ͋Δਓ͕͓͔͠ͳ͜ͱΛͨ͠ΒকདྷతʹേΛ༩͑Δʯ ͱ͍ͬͨ͜ͱ͕Ͱ͖ͳ͍ɽ ▸ Ͳ͏͢Δʁ BITCOINͰ͸͜ͷ࢓༷͸ઈରʹकΓ͍ͨΒ͍͠(?)
  18. ୈ2ষ ϏοτίΠϯ͕ඇதԝूݖΛ࣮ݱ͍ͯ͠Δ࢓૊Έ ୯७Խ͞Εͨ߹ҙܗ੒ΞϧΰϦζϜ 1. ৽͍͠औҾ͕શͯͷϊʔυʹϒϩʔυΩϟετ͞ΕΔ 2. ֤ϊʔυ͕৽͍͠औҾΛ·ͱΊΔ 3. ϥ΢ϯυ͝ͱʹɼલड़ͷཚ୒γεςϜʹΑͬͯແ࡞ҝʹબ͹Εͨϊʔυ͕࣍ͷϒϩο ΫΛϒϩʔυΩϟετ͢Δ

    4. ଞͷϊʔυ͸ɼϒϩοΫʹؚ·ΕΔશͯͷऔҾ͕༗ޮͰ͋Δͱ͖ʹݶΓɼϒϩοΫ Λड͚ೖΕ ‣ ͋ΔϒϩοΫBΛड͚ೖΕͨ͜ͱ͸ɼ֤ϊʔυ͕࣍ͷϒϩοΫΛ࡞Δࡍɼϋογϡ ϙΠϯλͰBΛࢦ͢͜ͱʹΑͬͯࣔ͞ΕΔɽ ‣ ϒϩοΫBͷड͚ೖΕΛڋ൱͢Δ৔߹͸ɼ࣍ͷਓ͸ɼϒϩοΫBΛແࢹ͠ɼͦͷ લͷϒϩοΫΛϋογϡϙΠϯλͰࢦ͢ɽ ҰͭલͷϒϩοΫΛϋογϡϙΠϯλͰࢦ͢ɽ ʮ༗ޮʯͷఆٛ͸ޙड़
  19. ୈ2ষ ϏοτίΠϯ͕ඇதԝूݖΛ࣮ݱ͍ͯ͠Δ࢓૊Έ ୯७Խ͞Εͨ߹ҙܗ੒ΞϧΰϦζϜ ‣ ѱҙͷ͋ΔఢAlice͕ɼઌ΄ͲͷϓϩηεΛյͤΔ͔Λߟ͑Δɽ ‣ ೋॏ෷͍: ిࢠܾࡁγεςϜΛ੒ཱͤ͞Δ্Ͱղ͘΂͖໰୊ ‣ ͍·Alice͕5ίΠϯΛอ༗͍ͯ͠Δͱ͢Δɽ

    ‣ BobͱCharlieʹର͠ɼಉ࣌ʹ5ίΠϯΛࢧ෷͏໿ଋΛ͠ɼ̎ਓ͔Β ผʑʹ඼Λ΋Β͏ɽ ‣ ඼Λ౉ͨ͠ޙɼBobͱCharlie͕Aliceͷޱ࠲͔Β5ίΠϯΛड͚औΖ ͏ͱ͕ͨ͠ɼ̎ਓʹࢧ෷͏͚ͩͷ࢒ߴ͕ͳ͍͜ͱʹؾͮ͘ɽAlice͸ ͦͷͱ͖ʹ͸ߦํ஌Εͣɽ
  20. ୈ2ষ ϏοτίΠϯ͕ඇதԝूݖΛ࣮ݱ͍ͯ͠Δ࢓૊Έ ೋॏ෷͍ ‣ BitcoinϒϩοΫνΣʔϯͷݴ༿Ͱݴ͍௚͢ͱɾɾɾ ‣ ͋ΔҰͭͷաڈͷऔҾ(Alice͕͍͘Β͍࣋ͬͯΔ͔Λද͢)ʹର͠ɼͦΕΛࢀ র͢ΔऔҾΛ2ͭ(Bob΁ͷࢧ෷͍B&Charlie΁ͷࢧ෷͍C)ΛϒϩʔυΩϟε τ ‣

    Bob΋Charlie΋ɼऔҾ͕ϒϩοΫνΣʔϯʹ௥Ճ͞ΕͨΒɼAliceʹ඼෺Λ౉ ͢ɽ ‣ ͜ͷͱ͖ɼB,CͲͪΒ΋ϒϩοΫνΣʔϯʹ૊Έࠐ·Εͳ͚Ε͹ྑ͍ɽ ‣ minerͱuser͕͋Δߦಈ༷ࣜʹै͏ͱ͍͏Ծఆͷ΋ͱɼཚ୒γεςϜͷଘࡏΛೝ ΊΕ͹ɼೋॏࢧ෷͍͕΄΅ى͖ͳ͍ͱߟ͑ΒΕΔ͜ͱΛҎԼͰ͸ࣔ͢ɽ Ͳ͏͍͏৚͕݅ຬͨ͞ΕͨΒʮऔҾ͕௥Ճ͞Εͨʯ
 ͱUSER͕Έͳ͢ͷ͔΋໰୊ʹɽ
  21. ୈ2ষ ϏοτίΠϯ͕ඇதԝूݖΛ࣮ݱ͍ͯ͠Δ࢓૊Έ LONGEST CHAIN RULE (LCR) ‣ ֤ϊʔυ(miner)͸Ͳ͏ߦಈ͢Δ͔ʁ ‣ ݈શͳϊʔυ͸ɼϒϩοΫʹؚ·ΕΔશͯͷऔҾ͕༗ޮͰ͋Δͱ͖ʹ

    ݶΓɼϒϩοΫΛड͚ೖΕɽ ‣ Ճ͑ͯɼ݈શͳϊʔυୡ͕ʮ࠷΋௕͍༗ޮͳϒϥϯνΛ৳͹͍ͯ͘͠ʯ ͱ͍͏ϧʔϧʹै͍ͬͯΔͱ͢Δɽ(Longest Chain Rule) ͜Ε͸ຊ౰ʹφογϡۉߧʹͳ͍ͬͯΔͷ͔ʁ
 ˠBIAIS ET AL. (2018)
  22. ୈ2ষ ϏοτίΠϯ͕ඇதԝूݖΛ࣮ݱ͍ͯ͠Δ࢓૊Έ 6-BLOCK RULE ‣ user͸ɼʮऔҾΛؚΉϒϩοΫ͕ϒϩοΫνΣʔϯʹ௥Ճ͞Εɼͦͷ ޙΖʹϒϩοΫ͕̒ݸଓ͍ͨ͜ͱ͕؍ଌ͞ΕͨΒ඼෺Λ౉͢ʯͱ͍͏ ϧʔϧʹै͏ͱ͢Δɽ ‣ 6-block

    ruleͱ͜͜Ͱ͸ݺͿ͜ͱʹ͢Δɽ ‣ ̒ͱ͍͏਺ࣈ͸͋͘·Ͱ׳शతʹܾ·͍ͬͯΔ΋ͷɽ ‣ miner͕LCRʹɼuser͕6-block ruleʹै͍ͬͯΔͱ͖ɼѱҙͷ͋ Δओମ͕ೋॏ෷͍Λ੒ޭͤ͞Δ͜ͱ͕೉͍͜͠ͱΛҎԼݟ͍ͯ͘ɽ
  23. ୈ2ষ ϏοτίΠϯ͕ඇதԝूݖΛ࣮ݱ͍ͯ͠Δ࢓૊Έ ิ଍: औҾʹ͍ͭͯ ▸ BitcoinͰ͸ɼ֤ʮޱ࠲ʯ(ެ։伴)ͷ࢒ߴͷΑ͏ͳ΋ͷ͸ه࿥͞Εͳ͍ɽ(͜Ε͸ ͋͘·ͰBitcoinͷ࢓༷ɽ) ▸ ֤औҾ͸ɼաڈͷऔҾͷग़ྗΛḬ͖ूΊΔɽ(Լਤࢀর) ▸

    e.g. Alice͕Bobʹ0.8BTCࢧ෷͍͍ͨͱ͢Δɽ ▸ աڈͷऔҾͷ͏ͪɼऔҾͷ࠷ޙ͕AliceͰऴΘ͍ͬͯΔ(ະࢀরͷ)΋ͷͷத͔ Βɼग़ྗͷ࿨͕0.8BTCҎ্ʹͳΔΑ͏ͳ(Ұൠʹ͸ෳ਺ͷ)औҾΛࢀর ▸ Tx1ͷAlice΁ͷग़ྗ͕0.5, Tx2ͷग़ྗ͕0.1, Tx3, Tx3ͷग़ྗ͕0.2Ͱ͋Ε͹ɼ ͦΕΒࡾͭͷऔҾΛࢀর্ͨ͠ͰɼBob΁ͷࢧ෷͍Λએݴɽ औҾ = ALICEͷॺ໊ + BOBͷެ։伴΁ͷࢧ෷͍ࢦࣔ
 ɹɹɹ+ ࢧ෷͍ʹ༻͍ΔͨΊͷҎલͷऔҾΛࢦ͢ϋογϡϙΠϯλ
  24. ୈ2ষ ϏοτίΠϯ͕ඇதԝूݖΛ࣮ݱ͍ͯ͠Δ࢓૊Έ ୯७ͳೋॏࢧ෷͍ͷࢼΈ ‣ ࠓԾʹɼແ࡞ҝநग़ʹ͓͍ͯҰ౓Alice͕બ͹Εɼաڈͷಉ͡औҾͷग़ྗΛࢧ ෷͍ʹ༻͍ΔB,CೋͭͷऔҾΛ̍ͭͷϒϩοΫʹ૊ΈࠐΉ͜ͱͰೋॏࢧ෷͍ ΛࢼΈͨͱ͢Δɽ ‣ B,CͲͪΒ͔ͷऔҾ͸ແޮͱΈͳ͞ΕΔͷͰɼ࣍ճҎ߱Ͱબ͹ΕͨAliceҎ֎ ͷϊʔυ͸ɼແޮͳऔҾΛؚΉAlice࡞ͷϒϩοΫΛແࢹ͠ɼͦͷϒϩοΫͷ

    ҰͭલͷϒϩοΫ͔ΒผͷϒϥϯνΛ৳͹࢝͠ΊΔɽ ‣ AliceҎ֎ͷϊʔυ͕݈શͰ͋ΔͳΒ͹ɼAliceͷ௥Ճͨ͠ϒϩοΫ͕ϝΠϯ νΣʔϯ(Ұ൪௕͍ϒϥϯν)ʹ࢒ΔͨΊʹ͸ɼAlice͕ࠓޙͣͬͱཚ୒γες ϜʹΑͬͯબ͹Εଓ͚Δඞཁɽ ‣ ͜ͷ୯७ͳํ๏Ͱ͸ೋॏࢧ෷͍͸੒ޭ͠ͳͦ͞͏ɽ
  25. ୈ2ষ ϏοτίΠϯ͕ඇதԝूݖΛ࣮ݱ͍ͯ͠Δ࢓૊Έ ೋॏࢧ෷͍߈ܸ ‣ ೋॏࢧ෷͍Λ੒ޭͤ͞ΔͨΊͷ΋͏গ͠ચ࿅͞Εͨํ๏ͱͯ͠ɼ࣍ͷΑ͏ͳ߈ܸ(ೋॏࢧ෷͍߈ܸ)Λߟ͑Δɽ ‣ ·ͣɼAlice͸Bob΁ͷऔҾTΛbroadcast͢Δɽ ‣ औҾT͸ɼऔҾSͷग़ྗΛࢧ෷͍ʹ༻͍͍ͯΔͱ͢Δɽ ‣

    औҾT͕ϒϩοΫBʹ૊Έࠐ·ΕɼϒϩοΫBͷޙΖʹ6ͭϒϩοΫ͕ͭͳ͕ΔͷΛ֬ೝͨ͠ޙɼBob ͸Aliceʹ඼෺Λ౉͢ɽ ‣ Alice͸ͦͷޙɼऔҾTΛؚΉϒϩοΫBͷҰͭલͷϒϩοΫ͔ΒɼผͷϒϥϯνbΛੜ΍͠ɼ ‣ ϒϥϯνbʹऔҾTͷࢀরઌͱಉ͡औҾSͷग़ྗΛࢧ෷͍ʹ༻͍ΔผͷऔҾUΛؚΊɼ ‣ ϒϥϯνbΛ৳͹͠ଓ͚ɼݱࡏͷ࠷௕ϒϥϯνaΛ௥͍ൈ͘͜ͱΛࢼΈΔɽ(্ਤࢀর) ‣ ৽ͨͳϝΠϯνΣʔϯbͰ͸Bob͸औҾTͰಘͨ͸ͣͷίΠϯ͕࢖͑ͳ͘ͳͬͯ͠·͏ɽ ‣ ͜ͷ߈ܸ͕੒ཱ͢ΔͨΊʹ͸ɼAlice͕ଞͷ݈શͳminerͱൺֱͯ͠ଟ͘બ͹ΕΔඞཁ(Alice͕બ͹ΕΔ֬ ཰ > ଞͷminer͕બ͹ΕΔ֬཰ ͕े෼৚݅ɽͦͷͨΊ51%߈ܸͳͲͱ΋ݺ͹ΕΔ)͕͋ΔɽଞͷϚΠφʔ ͷ਺͕ଟ͍ͱ͖͸ͦΕ͸೉ͦ͠͏ɽ B a b ͜ͷྫͰ͸ALICE͸USER݉MINER
  26. ୈ2ষ ϏοτίΠϯ͕ඇதԝूݖΛ࣮ݱ͍ͯ͠Δ࢓૊Έ ໰ ‣ ཚ୒γεςϜͷଘࡏΛೝΊΕ͹ɼ(1)(े෼ͳ਺ͷ)miner͕LCRʹै͍ (2)user ͕6-block ruleʹै͏ݶΓɼೋॏࢧ෷͍ͷ໰୊͸தʑى͖ͳͦ͞͏ɽ ‣ Ͱ͸ɼSybil

    attackͷӨڹΛड͚ͳ͍ɼཚ୒γεςϜ͸Ͳ͏࡞Δ͔ʁ ‣ ͦͷཚ୒γεςϜΛجʹͨ͠߹ҙܗ੒ϝΧχζϜʹ͓͍ͯɼ֤miner͕ Longest Chain Ruleʹै͏͔ʁ ‣ ͜Ε͸ɼincentiveͷ໰୊ɽ ‣ Bitcoin͕͜ΕΒΛʮ࣮ݱʯ͢Δํ๏: PROOF OF WORK
  27. ୈ2ষ ϏοτίΠϯ͕ඇதԝूݖΛ࣮ݱ͍ͯ͠Δ࢓૊Έ ϒϩοΫ࡞੒ใु ‣ ৽ͨʹϒϩοΫ͕࡞੒͞ΕΔͱɼͦͷϒϩοΫΛ࡞੒ͨ͠minerʹର ͠ɼҰఆ਺ͷίΠϯ͕෇༩͞ΕΔɽ ‣ miner΁ίΠϯΛࢧ෷͏औҾͱͯ͠ه࿥͞ΕΔɽ ‣ ϊʔυୡ͕LCRʹै͍ͬͯΔͱ͢Δͱɼ͋Δਓ͕ϒϩοΫ࡞੒ใुʹ

    ΑͬͯಘͨίΠϯΛ࢖ͬͯऔҾΛߦ͏ͨΊʹ͸ɼͦͷਓͷ࡞੒ͨ͠ϒϩο ΫͷޙΖʹଞͷਓ͕ϒϩοΫΛଓ͚Δඞཁ͋Γɽ ‣ ͦͷͨΊɼແޮͳऔҾΛؚΊͯϒϩοΫΛ࡞੒͢ΔͱɼͦͷϒϩοΫ͔ ΒͷϒϩοΫใुΛ༻͍Δ͜ͱ͕Ͱ͖ͳ͍ɽ ‣ miner͸ɼ༗ޮͳऔҾͷΈΛؚΉϒϩοΫΛ࡞੒͢ΔincentiveΛ࣋ͭ
  28. ୈ2ষ ϏοτίΠϯ͕ඇதԝूݖΛ࣮ݱ͍ͯ͠Δ࢓૊Έ ϒϩοΫ࡞੒ใु: ิ଍ ‣ ϒϩοΫ࡞੒ใुͷֹ͸ɼBitcoin͕ελʔτͨ࣌͠఺ͰܾΊΒΕͨϧʔ ϧͰܾ·Δɽ ‣ ࠷ॳ͸50 coins/blockɽ21ສϒϩοΫ(໿࢛೥)͝ͱʹ൒ݮɽ

    ‣ ݱࡏ͸12.5 coins/block ‣ ίΠϯ૯਺ <= 2100ສ ‣ ಛʹߟܾ͑ͯΊΒΕͨ΋ͷͰ͸ͳͦ͞͏ɽ(ۚ༥੓ࡦͷΑ͏ͳ΋ͷ͸ͳ͍) ‣ ͜ͷϧʔϧΛม͑Δ͜ͱ͸೉ͦ͠͏ɽ(օ͕௨՟Λ৴༻͠ͳ͘ͳΔ͔΋ʁ)
  29. ୈ2ষ ϏοτίΠϯ͕ඇதԝूݖΛ࣮ݱ͍ͯ͠Δ࢓૊Έ औҾख਺ྉ ‣ ݱࡏͰ͸ɼminerͷใुͷେ෦෼ΛϒϩοΫ࡞੒ใु͕઎ΊΔɽ ‣ ͔͠͠ɼ΋͏Ұͭͷใुͱͯ͠miner͸औҾख਺ྉΛड͚औΔ͜ͱ͕Ͱ͖Δɽ ‣ Bitcoin͸ɼϒϩοΫใुΛকདྷతʹऔҾख਺ྉ͕୅ସ͢Δͱ૝ఆɽ ‣

    ࣮͸ɼ֤औҾ͸ɼॺ໊ɾࢧ෷͍૬खͱֹɾલऔҾ΁ͷϙΠϯλʹՃ͑ͯɼऔҾ ख਺ྉΛࢦఆ͢Δඞཁ͕͋Δɽ(औҾख਺ྉͷֹ͸ࣗ෼ͰܾΊΒΕΔɽ) ‣ userͷࢧ෷ֹ͍ = ࢧ෷͍૬ख΁ͷࢧ෷ֹ + औҾख਺ྉ ‣ miner͸ɼࣗ৴ͷอ࣋͢Δϓʔϧͷத͔Βɼઃఆ͞Ε͍ͯΔऔҾख਺ྉͷߴ͍ औҾॱʹࣗ਎ͷϒϩοΫʹ૊ΈࠐΜͰ͍͘ɽ ݱ࣮ʹ͸͜Ε͸೉ͦ͠͏ʁ BUDISH(2018) ΦʔΫγϣϯͬΆ͍ʁ
  30. ୈ2ষ ϏοτίΠϯ͕ඇதԝूݖΛ࣮ݱ͍ͯ͠Δ࢓૊Έ PROOF OF WORK (࢓ࣄΛͨ͜͠ͱͷূ໌) ‣ Sybil attackʹڧ͍ཚ୒γεςϜΛ࡞ΔͨΊͷجຊతͳߟ͑: ‣

    ҆қʹ૿΍͢͜ͱͷͰ͖ͳ͍Ϧιʔεͷׂ߹ʹج͍ͮͯϊʔυ Λબ୒ ‣ Ͳ͏΍ͬͨΒܭࢉࢿݯͷྔʹൺྫͨ֬͠཰ͰϊʔυΛબ΂Δ͔ ‣ ʮ౰ͨΔ֬཰͕͘͢͝௿͍ΫδΛେྔʹҾ͔ͤͯɼ࠷ॳʹΞ λϦ͕ग़ͨਓ͕ϒϩοΫ௥ՃݖΛಘΔɽʯ PROOF OF WORKͰ͸ɼʮܭࢉࢿݯʯ ≒ Ұඵ͋ͨΓʹʮܭࢉʯΛߦ͑Δճ਺
  31. ‣ block = nonce: σλϥϝͳ਺
 + prev_hash: લblockΛࢦ͢ϋογϡϙΠϯλ
 + tx’s:

    ৽͘͠ϒϩοΫʹ௥Ճ͍ͨ͠औҾୡ ‣ minerୡ͸ݸผʹ্ࣜΛຬͨ͢nonce(ద౰ͳ਺)Λ૯౰ͨΓͰࢼͯ͠ݟ͚ͭΔɽ
 ॳΊ্ͯࣜΛຬͨ͢nonceΛݟ͚ͭͨminer͕ɼϒϩοΫ௥ՃݖΛಘΔɽ
 (ࢀՃऀ͸ɼ্ࣜΛຬͨ͢nonceΛ࣋ͭϒϩοΫΛଥ౰ͳϒϩοΫͱͯ͠ೝ஌͢Δ) ‣ ࣗ෼͕࣍ͷϒϩοΫͷ௥ՃݖΛಘΔ֬཰͸ɼ ‣ ࣗ෼͕୯Ґ࣌ؒ͋ͨΓʹϋογϡܭࢉΛߦ͑Δճ਺͸ɼࣗ෼ͷอ༗͢Δϊʔυ਺Λ૿ ΍ͨ͠ͱ͜ΖͰมΘΒͳ͍ɽ ୈ2ষ ϏοτίΠϯ͕ඇதԝूݖΛ࣮ݱ͍ͯ͠Δ࢓૊Έ PROOF OF WORK H(nonce; prev_hash; tx′s) < target ࣗ෼͕୯Ґ࣌ؒ͋ͨΓʹϋογϡܭࢉΛߦ͑Δճ਺ ωοτϫʔΫશମͰ୯Ґ࣌ؒ͋ͨΓʹߦΘΕΔϋογϡܭࢉͷճ਺
  32. ‣ nonce͸ɼݟ͚ͭΔͷ͸େม͕ͩɼଞਓ͕ݟ͚ͭͨnonce͕ଥ౰ͳ΋ͷ͔Ͳ͏ ͔Λ൑அ͢Δͷ͸༰қɽ(Ұճϋογϡؔ਺Λܭࢉ͢Ε͹Α͍ɽ) ‣ targetͷ஋͸ࣗಈతʹௐ੔͞ΕΔɽ ‣ targetͷ஋͕খ͍͞΄ͲɼΑΓΞλϦʹ͘͘ͳΔɽ ‣ 2016ϒϩοΫ(໿ೋिؒ)͝ͱʹɼωοτϫʔΫʹଘࡏ͢Δܭࢉࢿݯͷྔ(ͦ ͷؒͷϒϩοΫੜ੒଎౓͔Βਪఆ(?))ΛؑΈɼ1ϒϩοΫ͋ͨΓ໿10෼Ͱੜ

    ੒͞ΕΔΑ͏ʹtargetͷ஋͕࠶ܭࢉ͞ΕΔɽ ‣ 10෼ͱ͍͏஋ʹݫີͳࠜڌ͸ͳ͍͕ɼωοτϫʔΫͷෆ׬શੑʹΑΔ஗Ԇ ͳͲΛߟྀ͢Δͱ͜Ε͘Β͍͕ଥ౰ͩͱߟ͑ΒΕ͍ͯΔ(Β͍͠) ୈ2ষ ϏοτίΠϯ͕ඇதԝूݖΛ࣮ݱ͍ͯ͠Δ࢓૊Έ PROOF OF WORK: ิ଍ H(nonce; prev_hash; tx′s) < target
  33. ‣ ݱࡏͰ͸ɼuserͱminer͸෼Խ͕ਐΜͰ͍Δɽ ‣ େ൒ͷuser͸miningʹෆࢀՃɽ ‣ ୅ΘΓʹऔҾॴΛհͯ͠ωοτϫʔΫʹࢀՃɽ ‣ mining΁ͷࢀՃ͕೉͍͠ཧ༝ ‣ ωοτϫʔΫʹଘࡏ͢Δϋογϡύϫʔ͕ڊେ͗ͯ͢ɼී௨ͷਓ͕࣋ͭίϯϐϡʔ

    λͰminingʹ੒ޭ͢Δ͜ͱ͸΄΅ͳ͍ɽ ‣ ASIC(application-specific integrated circuit)ͱ͍͏BitcoinͷϋογϡܭࢉʹಛԽ ͨ͠ܭࢉػΛอ༗͢Δେن໛minerୡͷΈ͕ڝ૪͢Δੈք ‣ ϒϩοΫνΣʔϯͷαΠζ͕ڊେ(ݱࡏ200GBऑ)ͳͷͰอ༗͢Δͷ΋Ұۤ࿑ɽ ͦͷଞ: ྠಡͰಡΉ࿦จʹؔ܎ͦ͠͏ͳ࿩୊ USERͱMINERͷ෼Խ
  34. ‣ େن໛minerୡ΋ɼݸผʹ࠾۷ͤͣɼmining poolͱ͍͏ूஂΛܗ੒͠ ͯminingΛߦͳ͍ͬͯΔɽ ‣ cf. Cong et al. (2018)

    Decentralized Mining in Centralized Pools ‣ minerୡ͸ूஂΛܗ੒ͯ͠miningɽใु͸ࢁ෼͚ɽ ‣ ݱࡏ΄΅100%ͷmining͕͍ͣΕ͔ͷpoolʹΑͬͯߦΘΕ͍ͯΔɽ ͦͷଞ: ྠಡͰಡΉ࿦จʹؔ܎ͦ͠͏ͳ࿩୊ MINING POOLͷܗ੒
  35. ‣ mining΁ͷ౤ࢿ͸ɼෛͷ֎෦ੑΛ࣋ͭɽ(arms races cf. HFT) ‣ ͋Δਓ͕౤ೖ͢ΔܭࢉࢿݯͷྔΛ૿΍͢ͱɼଞͷਓ͕อ༗͢Δܭࢉ ࢿݯͷωοτϫʔΫ಺ʹ઎ΊΔׂ߹͸௿Լɽ ‣ ࣾձશମͰ͸ڙڅաଟʹɽ

    ‣ ిྗফඅྔ͕໰୊ʹɽ ‣ https://digiconomist.net/bitcoin-energy-consumption ‣ ݱࡏ͸ɼSingaporeҰࠃ෼ʹ૬౰͢Δফඅిྗ͕miningʹඅ΍͞ Ε͍ͯΔΒ͍͠ɽ ͦͷଞ: ྠಡͰಡΉ࿦จʹؔ܎ͦ͠͏ͳ࿩୊ ARMS RACE
  36. ‣ mining΁ͷ౤ࢿ͸ɼෛͷ֎෦ੑΛ࣋ͭɽ(arms races cf. HFT) ‣ ͋Δਓ͕౤ೖ͢ΔܭࢉࢿݯͷྔΛ૿΍͢ͱɼଞͷਓ͕อ༗͢Δܭࢉ ࢿݯͷωοτϫʔΫ಺ʹ઎ΊΔׂ߹͸௿Լɽ ‣ ࣾձશମͰ͸ڙڅաଟʹɽ

    ‣ ిྗফඅྔ͕໰୊ʹɽ ‣ https://digiconomist.net/bitcoin-energy-consumption ‣ ݱࡏ͸ɼSingaporeҰࠃ෼ʹ૬౰͢Δফඅిྗ͕miningʹඅ΍͞ Ε͍ͯΔΒ͍͠ɽ ͦͷଞ: ྠಡͰಡΉ࿦จʹؔ܎ͦ͠͏ͳ࿩୊ ARMS RACE