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

ビットコイン・ブロックチェーン概論

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.
Avatar for Shu Kobuchi Shu Kobuchi
October 29, 2022

 ビットコイン・ブロックチェーン概論

Open Source Conference 2022 Online Fallの発表に使用した資料です。
↓セミナー情報
https://event.ospn.jp/osc2022-online-fall/session/685055
↓日本暗号通貨ユーザ会のページ
https://cryptocurrency.connpass.com/

Avatar for Shu Kobuchi

Shu Kobuchi

October 29, 2022
Tweet

More Decks by Shu Kobuchi

Other Decks in Technology

Transcript

  1. ϏοτίΠϯ͸Φʔϓϯιʔε ϏοτίΠϯ #JUDPJO ͸Φʔϓϯιʔε ୭Ͱ΋։ൃʹࢀՃՄೳʂ 
 IUUQTHJUIVCDPNCJUDPJOCJUDPJO ϏοτίΠϯΛ͸͡Ίɺ҉߸௨՟ɾϒϩοΫνΣʔϯͷଟ͘͸044 ٕज़తʹ΋໘ന͍ʂʂ ϥΠτίΠϯ

    -JUFDPJO ͸#JUDPJOͷιʔείʔυ͔ΒϑΥʔΫ 
 IUUQTHJUIVCDPNMJUFDPJOQSPKFDUMJUFDPJO ϞφίΠϯ .POBDPJO ͸-JUFDPJOͷιʔείʔυ͕ϕʔε 
 IUUQTHJUIVCDPNNPOBDPJOQSPKFDUNPOBDPJO ΠʔαϦΞϜ &UIFSFVN ΋Φʔϓϯιʔε 
 IUUQTHJUIVCDPNFUIFSFVNHPFUIFSFVN 4
  2. ϋογϡؔ਺ Մม௕ͷೖྗ஋ʹର͠ɺݻఆ௕ͷग़ྗ஋Λฦ͢ ཚ਺Ͱ͸ͳ͍ͷͰɺಉ͡ೖྗ஋͔Β͸ৗʹಉ͡ग़ྗ஋ΛಘΔ ग़ྗ஋͔Βೖྗ஋Λਪଌ͢Δͷ͸΄΅ෆՄೳ IUUQTXXXNPWBCMFUZQFDPVLTDSJQUTTIBIUNM 
 IUUQTHPPHM1PHF# 7 ೖྗ͸Մม௕ PQFOTPVSDF

    ग़ྗ͸ݻఆ௕ PQFOTPVSDJ CFBCCGCEBDFFD DCFBCBCCDDFCGDG CBEBEFBGCEC DBFDBEGDGFFB 4)" ϋογϡؔ਺ 4)" ϋογϡؔ਺ Ұจࣈ ม͑Δ શ͘ҟͳΔ ஋ʹ
  3. 5SBOTBDUJPOT τϥϯβΫγϣϯͷ࿮಺Ͱ͸ӈ͔Β࡞ΔʢલͷτϥϯβΫγϣϯͷѼઌ͕ࣗ෼ѼͰ͋Δ͜ͱ͕લఏʣ ̍ʣѼઌͷެ։伴Ληοτ ̎ʣલͷτϥϯβΫγϣϯϋογϡͱѼઌͷެ։伴ͷϋογϡΛϋογϡ ̏ʣ̎ʣͷϋογϡʹॺ໊ʢॺ໊ʹ͸ൿີ伴͸ؚ·Εͳ͍ʣ 10 0XOFS ΞϦεͷॺ໊ 59ͷ )BTI

    0XOFS Ϙϒͷެ։伴 0XOFS Ϙϒͷॺ໊ 59ͷ )BTI 0XOFS Ωϟϩϧ ͷެ։伴 0XOFS Ωϟϩϧ ͷॺ໊ 59ͷ )BTI 0XOFS σϏοτͷ ެ։伴 ݕ ূ ݕ ূ ॺ໊ ॺ໊ ૹۚ ૹۚ ૹۚ τϥϯβΫγϣϯ τϥϯβΫγϣϯ τϥϯβΫγϣϯ ൿີ伴 ൿີ伴
  4. ΞϦε͕Ϙϒʹ#5$ΛૹΔ Ҏલड͚औֹ͍ͬͯͨΛ߹ࢉͯ͠ɺ૬खʹૹΓɺ͓௼Γ͸ࣗ෼΁ 59தʹهࡌͷͳֹ͍ ͜͜Ͱ͸#5$ ͸ޙʹϚΠφʔ΁ τϥϯβΫγϣϯ5SBOTBDUJPO59ߏ଄ 11 ΞϦε Ϙϒ 5SBOTBDUJPO

    59 */165 065165 ΞϦε Ωϟϩϧ ΞϦεˠϘϒ #5$ ΩϟϩϧˠΞϦε #5$ ΞϦεˠΞϦε ͓௼Γ  #5$ #5$ σϏοτˠΞϦε #5$ #5$ σϏοτ ܭ#5$ ܭ#5$ ϚΠφʔ ωοτϫʔΫख਺ྉ #5$ ˞59ʹهࡌ͸ͳ͍ ൿີ伴Λࠩ͠ࠐΜͰ ϩοΫղআɿిࢠॺ໊ ΞϦεͷ ൿີ伴 ΞϦεͷ ൿີ伴 ΞϦεͷ ެ։伴 Ϙϒͷ ެ։伴 ΞϦεͷ ެ։伴 ΞϦεͷ ެ։伴
  5. ൿີ伴ɾެ։伴ɾΞυϨεͷ࣮ྫ ൿີ伴͕Θ͔Ε͹ɺੜ੒نଇ͔ΒҰҙʹܾ·ΔΞυϨεʹඥͮ͘ίΠϯΛૹۚͰ͖Δ ઈରʹଞਓʹݟΒΕͯ͸͍͚ͳ͍ 16 L ൿີ伴 1SJWBUF,FZ , ެ։伴 1VCMJD,FZ

    " ΞυϨε "EESFTT DEFCDBCEEFFDECGBED CECCFDCDFGEEECE EBDEEFBCGGFCGD DEFCDBCEEFFD ECGBEDCECCFD DYQP.#$::8$H'485EDNYJQO(6T1X
  6. ೉қ౓ௐ੔ͱใु ϒϩοΫͷϋογϡ಄/ܻ͕Ͱ͋Δ͔ʢ೉қ౓ʣ͸ϒϩοΫ͔͔ͬͨ࣌ؒΛ ෼ ೔िؒ ͱൺֱܾͯ͠Ί Δ ̍ϒϩοΫ࡞Δͷʹฏۉ෼ ೉қ౓Λ্͛Δʹ͸಄ͷͷܻ਺Λ૿΍͢ɺ೉қ౓ΛԼ͛ΔͳΒݮΒ͢ ੒ޭ֬཰͸?/ʢ/ɿܻ਺ɺϋογϡ͸ਐ਺ʣ ϒϩοΫใु͸

    (FOFTJT#MPDL ͕#5$ɺ Ͱ#5$ɺ Ͱ#5$ͱ͍͏Α͏ʹ ϒϩο Ϋ͝ͱʹใु൒ݮ ໿̐೥ʹ̍ճՆقޒྠͷ೥ͷՆࠒʹ൒ݮ͢Δ ϏοτίΠϯΛ৽نൃߦ͍ͯ͠Δ ೥ʹ৽نൃߦ͕ऴΘΓɺ૯ֹສ#5$ͱͳΔ ݶΓ͋Δۚ ΰʔϧυ ͷ࠾۷ ϚΠχϯά ʹͳͧΒ͑ͯϒϩοΫੜ੒࡞ۀͷΛϚΠχϯάͱݺͿ σϑϨܕ௨՟ͳͷͰɺର๏ఆ௨՟Ͱ#5$Ձ֨͸্͕͍ͬͯ͘܏޲ʹ͋Δ 24
  7. ใुͷҙຯ ΠϯηϯςΟϒ͕͋Δ͜ͱͰɺϚΠχϯάͱ͍͏ӡ༻΁ͷࢀՃΛଅ͢ ϚΠφʔ͕૿͑ɺϋογϡύϫʔ͕େ͖͘ͳΔͱɺϏοτίΠϯωοτϫʔΫͷηΩϡϦςΟ͕૿͢ w ੈքதͷεʔύʔίϯϐϡʔλ͕ଋʹͳͬͯ΋ϏοτίΠϯωοτϒϩοΫνΣʔϯΛվ͟ΜͰ͖ͳ͍ ϒϩοΫʹؚ·ΕΔτϥϯβΫγϣϯͷख਺ྉ΋ϚΠφʔ͕΋Β͑Δ ϒϩοΫใु৽نൃߦ ݱࡏ#5$  Є

    ϒϩοΫதͷ59ख਺ྉ 26 ϒϩοΫ 59 59 59 59 59 59 5SBOTBDUJPO 59 */165 065165 ΞϦεˠϘϒ #5$ ΩϟϩϧˠΞϦε #5$ ΞϦεˠΞϦε ͓௼Γ  #5$ σϏοτˠΞϦε #5$ ܭ#5$ ܭ#5$ ϚΠφʔ ωοτϫʔΫख਺ྉ #5$ ˞59ʹهࡌ͸ͳ͍ $PJOCBTF59 ใुΛࣗ෼΁
  8. 4JNQMJ fi FE1BZNFOU7FSJ fi DBUJPO 417ϊʔυ ΢ΥϨοτʹؔ܎͋ΔτϥϯβΫγϣϯͱϒϩοΫϔομͷΈऔಘ શͯͷτϥϯβΫγϣϯ͸֨ೲ͠ͳ͍ #JUDPJO$PSF CJUDPJOE

    Λ΢ΥϨοτػೳ༗ޮͰՔಇͤ͞Δͱ417Ϟʔυ ىಈΦϓγϣϯʹUYJOEFYΛ෇͚ΔͱશͯͷτϥϯβΫγϣϯ΋֨ೲ͢ΔϑϧϊʔυϞʔυ ϑϧϊʔυʹൺ΂ͯɺαʔόʔͷσΟεΫ࢖༻ྔΛ࡟ݮͰ͖Δ -JHIUOJOH/FUXPSLͷϞόΠϧΞϓϦͰ࢖༻͞ΕΔ͜ͱ΋ଟ͍ 29
  9. φΧϞτ࿦จൃදޙͷ#JUDPJOՔಇ ೥݄೔ 65$ ʹ#JUDPJOՔಇ (FOFTJT#MPDL%BZ  IUUQTCMPDLTUSFBNJOGPCMPDL EDBFF ff BFBBDCGCBDFG

    ϑϧϊʔυͷϒϩοΫ໨ΛݟΔͱVOJYUJNF͸Ͱ͔֬ʹ65$ 5IFHFOFTJTCMPDLDPJOCBTFJTOPUDPOTJEFSFEBOPSEJOBSZUSBOTBDUJPOBOEDBOOPUCFSFUSJFWFE w HFOFTJTCMPDLͷ$PJOCBTF5SBOTBDUJPOͷத਎͸औಘͰ͖ͳ͍ w IUUQTCMPDLTUSFBNJOGPUY BFFCBBCGBBDCDGGFDDBCCBGEFEBC 32
  10. ϒϩοΫͷঝೝ਺ ঝೝ਺͕ଟ͚Ε͹ଟ͍΄Ͳ෴Γʹ͍͘ʢ֬཰తϑΝΠφϦςΟʣ 33 TX Memory Pool(mempool) TX ࠷৽ϒϩοΫ ະঝೝʢ̌ঝೝɿ0 Confirmation)

    TX Memory Pool(mempool) TX ࠷৽ϒϩοΫ 1ঝೝɿ1 Confirmation ࣗ෼ͷૹۚTX TX ࣗ෼ͷૹۚTX TX Memory Pool(mempool) TX ࠷৽ϒϩοΫ 6ঝೝɿ6 Confirmationʢ঎औҾͰΑ͘࢖ΘΕΔঝೝ਺ʣ TX ࣗ෼ͷૹۚTX ະঝೝTX(τϥϯβΫγϣϯ) ؚ͕·ΕΔ ϚΠφʔใु͸ঝೝ͞ΕΔ·ͰϩοΫ͞Ε͍ͯͯɺͦΕ·Ͱ࢖༻Ͱ͖ͳ͍
  11. 11,) 1BZUP1VCMJD,FZ)BTIʢ11,ͷൃల൛ʣ ެ։伴ϋογϡΛ༻͍Δ͜ͱͰΞυϨεΛ୹͘දݱͰ͖Δ TDSJQU͸ʢʣ಺Ͱͷݺͼํ΋͋Δ 42 -PDLJOH4DSJQU TDSJQU1VC,FZ 6OMPDLJOH4DSJQU TDSJQU4JH TJH

    TJH1VC,01@%6101@)"4)1VC,)BTI01@&26"-7&3*':01@$)&$,4*(Λ࣮ߦ TJH 536& 1VC, TJH 1VC, TJH 1VC, 1VC, 1VC, 1VC,)BTI TJH 1VC, 1VC,)BTI 1VC,)BTI TJH 1VC, 1VC,)BTI 1VC,)BTI TJH 1VC, 01@%61 )"4) ෳ੡ 01@&26"- ౳͍͠ TJH1VC, 01@%6101@)"4)1VC,)BTI 01@&26"-7&3*':01@$)&$,4*( ಉ஋͔ 4)"ͷޙ 3*1&.% ෳ੡
  12. 11,)ʢଓ͖ʣ ࢒Γ͸11,ͱಉ͡ 43 -PDLJOH4DSJQU 6OMPDLJOH4DSJQU TJH 1VC, TJH 1VC, 

    536& $)&$,4*( TJH1VC, 01@%6101@)"4)1VC,)BTI 01@&26"-7&3*':01@$)&$,4*( ॺ໊Λݕূ
  13. Ϛϧνγάͷॺ໊ͰϒϩʔυΩϟετ PGͷ৔߹  ະॺ໊59࡞੒  ॺ໊ऀ"͕ͭ໨ͷॺ໊  ॺ໊ऀ#͕ͭ໨ͷॺ໊  ॺ໊ࡁ59Λ

    
 ϒϩʔυΩϟετ 45 ະॺ໊59 PG ॺ໊ࡁ59 ΋͏Ұਓ͸ॺ໊ෆཁ ॺ໊ऀ$ ॺ໊ऀ" ॺ໊ऀ# ॺ໊ऀ#ͷ ॺ໊ࡁ59 ॺ໊ ॺ໊ ॺ໊ऀ"ͷ ॺ໊ࡁ59 ൿີ伴" ൿີ伴$ ผਓ͕ ૢ࡞ ॺ໊͕ ἧ͏ ϒϩʔυ Ωϟετ ൿີ伴#
  14. Ϛϧνγά NPGOʢOਓதNਓͷॺ໊ͰϩοΫղআͰ͖ΔʣϚϧνγά Α͋͘ΔPGͷྫ 46 -PDLJOH4DSJQU TDSJQU1VC,FZ 6OMPDLJOH4DSJQU TDSJQU4JH 01@TJH"4JH#1VC,"1VC,#1VC,$01@$)&$,.6-5*4*( )"4)

    01@TJH"TJH# 1VC,"1VC,#1VC,$ 01@$)&$,.6-5*4*( 536&  TJHOBUVSF#  1VCMJD,FZ$  $)&$,.6-5*4*( TJHOBUVSF" 1VCMJD,FZ# 1VCMJD,FZ" 
  15. ࢀߟจݙ #JUDPJO"1FFSUP1FFS&MFDUSPOJD$BTI4ZTUFN IUUQTCJUDPJOPSHCJUDPJOQEG #JUDPJO"1FFSUP1FFS&MFDUSPOJD$BTI4ZTUFN೔ຊޠ༁ IUUQTCJUDPJOPSH fi MFTCJUDPJOQBQFSCJUDPJO@KQQEG ϏοτίΠϯ࿦จ͔Β͙͞ΔϒϩοΫνΣʔϯͷώϯτ IUUQTXXXPHJTSJDPKQPUDIJSPCBUFDIOJDBMCJUDPJOQBQFS ΞϯυϨΞεɾ.ɾΞϯτϊϓϩεஶࠓҪਸ໵

    ോ֋३Ұ࿠༁ 
 ʮϏοτίΠϯͱϒϩοΫνΣʔϯ҉߸௨՟Λࢧ͑Δٕज़ʯ/55ग़൛ ࢁ࡚ॏҰ࿠ ҆౔ໜږ ాதढ़ଠ࿠ஶ 
 ʰϒϩοΫνΣʔϯɾϓϩάϥϛϯάԾ૝௨՟ೖ໳ʱߨஊࣾ ࢁ࡚ॏҰ࿠ ҆౔ໜږ ۚࢠ༤հ ௕ాൟ޾ஶ 
 ʰϒϩοΫνΣʔϯٕज़֓࿦ཧ࿦ͱ࣮ફʱߨஊࣾ ϏοτόϯΫגࣜձࣾʰϒϩοΫνΣʔϯͷিܸʱฤूҕһձஶ 
 അᔹ๜ඒ؂मʰϒϩοΫνΣʔϯͷিܸʱ೔ܦ#1ࣾ 48