æå·é貚ã®ãããã¯ããç¡éã«é ãé¢ããŠãã人ã
ã§ããããããããã€ãã³ã°ã«ã€ããŠèããããšãããã§ãããã èªè
ã®çãããããããããªãã¯å€ã«ã²ãŒã ã®Pentium 4ãèµ·åããååäžã«è±ããªç®èŠãæ¹ãããããšãèããã§ãããã
ãããããããã¯ãã§ãŒã³ã®äžçã§ã¯ããããããšã§ãããèãã人ã¯ããããããŸãããæåããæåŸãŸã§ããã»ã¹ãæ¬åœã«çè§£ããŠãã人ã¯ãããã§ãã ãããã£ãŠãæåŸã®ç« ã§ã¯ãPoWã®æè¡çãªå®è£
ããããããªã«ãŒãã§ã®ãã€ãã³ã°ã®åçæ§ã§çµãããã¹ãŠã®åŸ®åŠãªç¹ãå¯èœãªéã詳现ã«ã«ããŒããããšããŸããã

æ¬
ç®æ¬¡
- ç§ã5æ³ã ãšèª¬æããŠãã ãã
- 空ã¯éçã§ããïŒ
- å ±é
¬
- ããŒããã£ã¬ã³ãž
- æè¡é¢
- 2ãããã¯1ãã§ãŒã³
- ããŒããŠã§ã¢
- ãããã«
- ãªã³ã¯é
ç§ã5æ³ã ãšèª¬æããŠãã ãã
ãã€ãã³ã° ã ãã€ãã³ã° ïŒ è±èªã® ãã€ãã³ã° -ãã€ãã³ã°ïŒ-忣ãã©ãããã©ãŒã ãç¶æããããŸããŸãªæå·é貚 ãç¹ã«ãããã³ã€ã³ã§çºè¡ãããé貚ããã³ææ°æã®åœ¢ã§å ±é
¬ãåãåãããšãã§ããæ°ãããããã¯ãäœæããã¢ã¯ãã£ããã£ã èšç®ã¯ãåãé貚åäœã®åå©çšã«å¯Ÿããä¿è·ãæäŸããããã«å¿
èŠã§ããããã€ãã³ã°ãšæåºéã®é¢ä¿ã¯ã人ã
ãèšç®èœåãè²»ããããããã¯ãŒã¯ã®éçšããµããŒãããããã«åºæ¿ããŸã- ãŠã£ãããã£ã¢
æã®å Žåããã€ãã³ã°ã¯ãããã³ã€ã³ã®éèŠãªããã»ã¹ã§ãããæ°ãããããã¯ãäœæãã2ã€ã®ç®æšãåæã«è¿œæ±ããããšããæããŸãã 1ã€ç®ã¯ããããŒãµãã©ã€ã®çç£ã§ãã é±å€«ãæ°ãããããã¯ãäœæãããã³ã«ãNçªç®ã®æ°ã®ã³ã€ã³ã§å ±é
¬ãäžããããŸããããã«ããã圌ã¯ã©ããã§ããã䜿ãããããã¯ãŒã¯ã«æ°ããè³éãæå
¥ããŸãã
2çªç®ã®ã¯ããã«éèŠãªç®æšã¯ããããã¯ãŒã¯å
šäœã®åäœãä¿èšŒããããšã§ãã 確ãã«ã以åã®èšäºãèªãã§ãããšãã«ã ããã©ã³ã¶ã¯ã·ã§ã³ã¹ã¯ãªããããã§ãã¯ããã®ã¯èª°ã§ããïŒããšãã質åããã§ã«èªåããŠããŸãã ãŸãã¯ããã§ã«äœ¿çšãããŠããåºåãå
¥åãšããŠæå®ããå Žåãã©ã®æç¹ã§æ°ã¥ãã§ããããïŒã ã
ãããã£ãŠãããããã¹ãŠã®ã¢ã¯ã·ã§ã³ã¯äž»ã«é±å€«ã«ãã£ãŠå®è¡ãããŸãã å®éããããã¯ãŒã¯ã®åã¡ã³ããŒã¯ããçšåºŠã»ãã¥ãªãã£ã確ä¿ããŠããŸãã 100 GBãããŠã³ããŒãããå¿
èŠãããããã§ã¯ãªãããã¹ãŠã®ãã€ãããã§ãã¯ãããã¹ãŠã®ããã·ã¥ãã«ãŠã³ããããã¹ãŠã®ã¹ã¯ãªãããå®è¡ããå¿
èŠããããããBitcoinãé·æéåæããŸãã
ãããããŠã©ã¬ããã®ãéä¿¡ããã¿ã³ãæŒããŠéå§ãã blockchain.infoã®ã©ããã®ãã©ã³ã¶ã¯ã·ã§ã³ã§ãããã¯ã衚瀺ããããšã§çµããããã»ã¹å
šäœãæç»ããå Žåããã©ã³ã¶ã¯ã·ã§ã³ããããã¯å
ã«ãããã©ãããæ±ºå®ããã®ã¯é±å€«ã§ãã
空ã¯éçã§ããïŒ

ã¯ããã«ãæåã®ãã€ã³ããããäžåºŠèª¿ã¹ãŠããããŒãµãã©ã€ã®æŠå¿µã«ã€ããŠèª¬æããŸãããã
æå·éè²šã®æ¯æè
ããã°ãã°èªç€ºããåºæ¬çãªãããã®1ã€ã¯ããã¬ã§ãããããã¯å
ã
å®ããããŠããŸãã ã ããã¯ãã·ã¹ãã èšèšã®æ®µéã§ããåèšã§çŽ2100äžã³ã€ã³ã®å¶éã瀺ãããŠããããã§ããå®éã«å¿
èŠãªå Žåã§ãããã®ãããå€ãäžããããšã¯ã§ããŸããã 財åçã®èŠæ±ã«å¿ããŠä»»æã®æ°éã§å°å·ã§ããã«ãŒãã«ããã«ãšã¯ç°ãªãã ãžã³ãããšã®ããã«æ²ããçµæãæãããšããããŸã ã
ãšããã§ ãã ãããããã¬ããã®ãããªæç¢ºãªãã©ã¹ã ãšèããŠããããã§ã¯ãããŸããã
å ±é
¬
次ã®è¯ã質åã¯ã2100äžäººãšããæ°åã¯ã©ãããæ¥ãã®ã§ããïŒ
ç¹å®ã®ç¬éã«çºè¡ãããã³ã€ã³ã®éã¯ãã®ç¬éã«äœæããããããã¯ã®å ±é
¬ã®éã«çããããšãçè§£ããŠãããšæããŸãã æ°ããã³ã€ã³ããããã¯ãŒã¯ã«å
¥ãæ¹æ³ã¯1ã€ãããªããããããªãæçœãªäºå®ã§ãã
ããããå ±é
¬ã¯åºå®ãããŠããããããã«210,000ãããã¯ããšïŒçŽ4幎ã«1åïŒã«ååã«ãªããŸãã
consensus.nSubsidyHalvingInterval = 210000; // https://github.com/bitcoin/bitcoin/blob/master/src/chainparams.cpp#L73
ãããã£ãŠãããšãã°ã2009幎1æã«ãã¹ãŠãå§ãŸã£ããšãããããã¯å ±é
¬ã¯50 BTCã§ããã 210,000ãããã¯åŸã2012幎11æã«25 BTCã«äœäžããæè¿ã§ã¯2016幎7æ9æ¥ã«12.5 BTCã«äœäžããŸãã ã
ãããã³ã€ã³ã次ã®200幎ã§å€±éããªããšä»®å®ãããšãçæããããµãã·ã®æ£ç¢ºãªæ°ãèšç®ããã®ã¯ç°¡åã§ãã
start_block_reward = 50 reward_interval = 210000 def max_money():
以äžã®å³ã¯ãçç£æ²ç·ã瀺ããŠããŸããããã¯ã2140äžBTCã®ããŒã¯ã«åŸã
ã«ã¹ã ãŒãºã«è¿ã¥ãã2140幎é ã«ããŒã¯ã«éããŸãã ãã®æç¹ã§ããããã¯å ±é
¬ã¯0 BTCã«ãªããŸãã

ãã®å Žåããããã³ã€ã³ã«äœãèµ·ããããæšæž¬ããããšããã§ããŸããããç§ãã¡ã確å®ã«ç¥ãããšãã§ããããšã®1ã€ã¯ãé±å€«ããéãªãã§æŸçœ®ãããããšã¯ãããŸããã å°ãªããšãååŒææ°æã¯ãŸã ãããŸããããã1ã€ã¯ããã®ææ°æã1æ¡å¢ããå¯èœæ§ãããããšã§ãã
æç¢ºã«ããããã«ãããšãã°ïŒ447119ã®ãããªæ°ãããããã¯ã䜿çšããŸãã ãããã¯å
ã®ãã¹ãŠã®ãã©ã³ã¶ã¯ã·ã§ã³ããã®ã³ããã·ã§ã³ã®éé¡ã¯çŽ0.78 BTCã§ãããå ±é
¬ã¯12.5 BTCã§ãã ã€ãŸããææ¥å ±é
¬ããªããªããšããã®å Žåããã®äžå¿«ãªã€ãã³ããå¹³æºåããããã«ãå§å¡äŒã¯16åä»¥äžæé·ããã¯ãã§ãã ãã¯ããã€ã¯ããã€ã¡ã³ãã®èããããªãããšã¯æããã§ãã
ãããŒã®ãã€ãã³ã°
ãããŸã§ã®åå§ã¬ãã«ã§ãã€ãã³ã°ããã»ã¹ãããäžåºŠç޹ä»ããŠã¿ãŸãããã
倿°ã®åå è
ããããããã¯ãŒã¯ããããŸãã äžéšã®åå è
ã¯èªåèªèº«ããã€ããŒãšåŒãã§ããŸããPCã§æ°ãããã©ã³ã¶ã¯ã·ã§ã³ãåéããæå¹æ§ããã§ãã¯ããŠãããäœããã®æ¹æ³ã§æ°ãããããã¯ããã€ãã³ã°ãããã®ãããã¯ããããã¯ãŒã¯äžã«åæ£ããŠãéãåãåãæºåãã§ããŠããŸãã è«ççãªè³ªåã¯ããã¹ãŠãéåžžã«åçŽãªå Žåããããã¯ãŒã¯ã®ãã¹ãŠã®ã¡ã³ããŒããããè¡ããªãã®ã¯ãªãã§ããïŒ
ãã¹ãŠãä»èª¬æãããšããã§ããå Žåããããã¯ã¯1ç§éã«100ååºãŠè¡ããé貚ãå€ãããŠèª°ã1ã»ã³ããæããªããªã©ãšããããšã¯æããã§ãã
ãã®ããããµãã·ã¯æ¬¡ã®ç¹æ§ãåããã¢ã«ãŽãªãºã ãèæ¡ããããšãäœåãªããããŸããã
- æ°ãããããã¯ã®äœæã¯ãèšç®ãé£ããã¿ã¹ã¯ã§ãã 匷åãªPCã®é»æºãå
¥ããŠã1åã§100ãããã¯ããã€ãã³ã°ããããšã¯ã§ããŸããã
- ãããã¯ãŒã¯å
šäœãæ°ãããããã¯ãèšç®ããã®ã«10åããããŸãïŒå¹³åïŒã LitecoinãèŠããšããããã¯ã2ã3åããšã«åºãŠããŸããæçµçã«ã¯ãå¹³åæéãäºåã«èšå®ãããŠãããšããããšã§ãã
- ããã«ããã®æéã¯ãããã¯ãŒã¯åå è
ã®æ°ã«äŸåããŸããã ããšã1æ¥ã«100å以äžã®ãã€ããŒãããå Žåã§ããã¢ã«ãŽãªãºã ã¯ã ãããã¯ãèŠã€ãã«ãããªãã ãããã¯æéã10åè¿ãã«æ»ãããã«ãã©ã¡ãŒã¿ãŒã倿Žããå¿
èŠããããŸãã
- ãããã¯ãŒã¯ã¯åæ£ããããã¢ããŒãã¢ã§ããããšã«æ³šæããŠãã ãããã€ãŸãããããã¯ãŒã¯èªäœããããã®ãã©ã¡ãŒã¿ãŒãã©ã®æç¹ã§ã©ã®ããã«åŒ·åããããçè§£ããå¿
èŠããããŸãã å¶åŸ¡ããŒãã¯ãããŸããããã¹ãŠãå®å
šã«èªåŸçã§ãã
- æ°ãããããã¯ãäœæããã¿ã¹ã¯ã®è§£æ±ºçãæéãšãªãœãŒã¹ãå¿
èŠãšããè€éãªã¿ã¹ã¯ã§ããå Žåããããã¯ã®ãæ£ç¢ºæ§ãã®ãã§ãã¯ã¯ç°¡åã§ãã»ãŒç¬æã«è¡ãããã¯ãã§ãã
äœæ¥èšŒæïŒPoWïŒ
ããããããªãã¯ä»ãå®å
šãªè¡°åŒ±ç¶æ
ã«ããããããã©ã®ããã«å¯èœã§ããããæ¬åœã«çè§£ããŠããªãã§ãããã ãããããµãã·ã¯éæ¹ã«æ®ããŠããããããããã¹ãŠã®åé¡ã®è§£æ±ºçãèãåºãããšãã§ããŸãã-ã¢ã«ãŽãªãºã ã¯Proof-of-WorkãšåŒã°ããŠããŸãããããã¯ã©ã®ããã«èŠãããã§ã
ããªããé±å€«ã«ããŸãããã ãããã¯ã«ãã€ãã³ã°ããããã©ã³ã¶ã¯ã·ã§ã³ã10åãããŸãã ãããã®ãã©ã³ã¶ã¯ã·ã§ã³ã®æå¹æ§ããã§ãã¯ããããããããããã¯ã圢æãã nonceãã£ãŒã«ãã«0ãæå®ããŠããããã¯ããã·ã¥ãæ€èšããŸãã æ¬¡ã«ã nonceã1ã«å€æŽããŠãããã·ã¥ãå床ã«ãŠã³ãããŸãã ç¡éãžãšç¶ããŸãã
ããªãã®ä»äºã¯ããããã¯ããã·ã¥ïŒ256ãããæ°ïŒãæå®ã®æ°Næªæºã«ãªãããã«ãã³ã¹ãèŠã€ããããšã§ãããã®ãããªããã·ã¥ã®æ€çŽ¢ã¯ããã³ã¹ãç°¡æœã«åæããããšã«ãã£ãŠã®ã¿å¯èœã§ããããã«ã¯çŸããã¢ã«ãŽãªãºã ã¯ãããŸããã ãããã£ãŠã nonceããã°ããèŠã€ããã«ã¯ãããå€ãã®é»åãå¿
èŠã§ãã
æ°å€Nã¯ãŸãã«ãã®ãã©ã¡ãŒã¿ãŒïŒ targetãšãåŒã°ããŸãïŒã§ããããããã¯ãŒã¯ã¯é±å€«ã®ç·åºåã«å¿ããŠèª¿æŽããŸãã ææ¥ããããã¯ã3åããšã«åºãŠããããNãäœããã®åœ¢ã§æžå°ãã ãã³ã¹ã®æ€çŽ¢ã«æéããããã ãããã¯æéãåã³10åã«å¢ããŸãã ãããŠãã®éã
æè¡é¢

èšèããè¡åã«ç§»ãã Proof-of-Workãšãã€ãã³ã°ãã©ã®ããã«äžè¬çã«æ©èœãããã瀺ããŸãã ç§ã®è¬èãªæèŠã§ã¯ãæŠéå
šäœã®ããã»ã¹ãæ£ãã瀺ãããšã»ã©è¯ããã®ã¯ãããŸããã ãããè¡ãã«ã¯ãããã«ç¬èªã®ãã€ãã³ã°ããŒããèšè¿°ããæåããå¯èœæ§ã¯ãããã§ãããä»ã®èª°ãããå
ã«æ°ãããããã¯ãäœæããããšããŸãã
ååŒãåãåã
è¯ãæ¹æ³ã§ã¯ãããã§åã³ãããã³ã«ä»æ§ã«é£ã³èŸŒã¿ãä»ã®ããŒããšã®æ¥ç¶ã確ç«ããæ°ãããã©ã³ã¶ã¯ã·ã§ã³ãéä¿¡ãããã®ãåŸ
ã€å¿
èŠããããŸãã ãã®å Žåãå®éã®ãªã¢ã«ã¿ã€ã ãã€ããŒãåŸãããæ¢è£œã®ãœãªã¥ãŒã·ã§ã³ãããæªãã¯ãããŸããïŒãã ããããã¯æ£ç¢ºã§ã¯ãããŸããïŒã
ç°¡åãªæ¹æ³ããå§ãããŸãã blockchain.infoãéãã æè¿ã®ãã©ã³ã¶ã¯ã·ã§ã³ãªã¹ãããããã€ãã®ãã©ã³ã¶ã¯ã·ã§ã³ãéžæããŸãã 圌ãã¯ã¡ããã©ãããã¯ãŒã¯ã«å
¥ã£ãŠãä»ã®ãšããã©ã®ãããã¯ã«ãå«ãŸããŠããŸããã æ¬¡ã«ãå¥ã®ãããã¯ãšã¯ã¹ãããŒã©ãŒ-chainquery.comãéããŸãã 圌ã¯ãçã®åœ¢åŒã§ãã©ã³ã¶ã¯ã·ã§ã³ãçºè¡ããæ¹æ³ãç¥ã£ãŠãããããã·ã¥ã«ãã£ãŠæ¢ç¥ã®åœ¢åŒã§ãã©ã³ã¶ã¯ã·ã§ã³ãååŸããŸãã ç§ã¯èªåã2ã€ïŒ 1〠ã 2〠ïŒã«å¶éããŸããã
txn_pool = [] txn_pool.append("0100000001440d795fa6267cbae00ae18e921a7b287eaa37d7f41b96ccbc61ef9a323a003d010000006a47304402204137ef9ca79bcd8a953c0def89578838bbe882fe7814d6a7144eaa25ed156f66022043a4ab91a7ee3bf58155d08e5f3f221a783f645daf9ac54fed519e18ca434aea012102965a03e05b2e2983c031b870c9f4afef1141bf30dc5bb993197ee4a52f1443e0feffffff0200a3e111000000001976a914f1cfa585d096ea3c759940d7bacd8c7259bbd4d488ac4e513208000000001976a9146701f2540186d4135eec14dad6cb25bf757fc43088accbd50600") txn_pool.append("0100000001517063b3d932693635999b8daaed9ebf020c66c43abf504f3043850bca5a936d010000006a47304402207473cda71b68a414a53e01dc340615958d0d79dd67196c4193a0ebcf0d9f70530220387934e7317b60297f5c6e0ca4bf527faaad830aff45f1f5522e842595939e460121031d53a2c228aedcde79b6ccd2e8f5bcfb56e2046b4681c4ea2173e3c3d7ffc686ffffffff0220bcbe00000000001976a9148cc3704cbb6af566598fea13a3352b46f859581188acba2cfb09000000001976a914b59b9df3700adae0ea819738c89db3c2af4e47d188ac00000000")
確èªãã
次ã®ã¹ãããã¯ãåä¿¡ãããã©ã³ã¶ã¯ã·ã§ã³ãæ€èšŒããããšã§ãã ç§ã¯ãããããŸããããã äž»ãªãã€ã³ãããªã¹ãããŠãã ããïŒ
- æ£ãã远跡ããããã©ã³ã¶ã¯ã·ã§ã³æ§é ãšæ§æ
- I / Oãªã¹ãã¯ç©ºã«ã§ããŸãã
- å
¥åãã©ã³ã¶ã¯ã·ã§ã³ã¯ãUTXOããŒã«ãŸãã¯æªç¢ºèªã®ãã©ã³ã¶ã¯ã·ã§ã³ããŒã«ã®ããããã«ååšããå¿
èŠããããŸã
- å
¥åã®åèšã¯ãåºåã®åèšããå°ãããããŸãã
- å®å
šãªãªã¹ãã¯ãã¡ãã«ãããŸãã
äžéšã®ãã€ããŒã¯ãææ°æããŒããŸãã¯å°ãªããããã©ã³ã¶ã¯ã·ã§ã³ãæåŠããŸããã誰ããèªåã§æ±ºå®ããŸãã
äžŠã¹æ¿ã
念ã®ããããããã¯ã«ãã©ã³ã¶ã¯ã·ã§ã³ãä»»æã®é åºã§å«ããããšã劚ãããã®ã¯äœããªããšèª¬æããŸããäž»ãªããšã¯ããã¹ãŠã®ãã§ãã¯ã«åæ Œããããšã§ãã ç§ã®å Žåããã©ã³ã¶ã¯ã·ã§ã³ã¯2ã€ãããªãã®ã§ãããããããã«ãœãŒãããŠãæå³ããããŸããã ãã ãããããã¯ãµã€ãºã1 MBã«å¶éãããŠããããšãå¿ããªãã§ãã ããããããã£ãŠãããŒã«å
ã«10,000ä»¶ã®ãã©ã³ã¶ã¯ã·ã§ã³ãããå Žåãããããææ°æã§ãœãŒãããæãé«äŸ¡ãªãã©ã³ã¶ã¯ã·ã§ã³ã®ã¿ããããã¯ã«æžã蟌ãã®ãåççã§ãã
ãšããã§ ãæ°ãããããã¯ããã€ãã³ã°ããåã«ãBitcoin Coreã¯ç¹å¥ãªåªå
床ãã©ã¡ãŒã¿ãŒã§ãã©ã³ã¶ã¯ã·ã§ã³ããœãŒããããšèšãèšäº/æ¬ããããŸãã
Priority = Sum (Value of input * Input Age) / Transaction Size
ããã¯ããŒãžã§ã³0.12.0ãŸã§åœãŠã¯ãŸãã åªå
床ã«ãããœãŒã㯠ç¡å¹ã«ãªããŸãã ã
å ±é
¬ãåŸã

ãããã¯ã®æ§é ãèŠããšãäžçªæåã¯åžžã«ããããã³ã€ã³ããŒã¹ãã©ã³ã¶ã¯ã·ã§ã³ã«ãªããŸã-é±å€«ã®äœæã«å ±é
¬ãéãã®ã¯åœŒå¥³ã§ãã éåžžã®ãã©ã³ã¶ã¯ã·ã§ã³ãšã¯ç°ãªãã coinbaseãã©ã³ã¶ã¯ã·ã§ã³ã¯UTXOããŒã«ããã®åºå£ãå
¥åãšããŠè²»ãããŸããã 代ããã«ã coinbaseãšåŒã°ããå
¥åã1ã€ã ããããããã¯äœããªããšããããã³ã€ã³ããäœæãããŸãã ãã®ãããªãã©ã³ã¶ã¯ã·ã§ã³ããæãåºãæ¹æ³ã¯1ã€ãããããŸããã 圌ã¯ãé±å€«ã«ãããã¯ã®å ±é
¬ã«å ããŠããããã¯å
ã®ãã¹ãŠã®ååŒããã®ææ°æãéããŸãã ç§ã®å Žåãããã¯12.5 + 0.00018939 + 0.0001469 = 12.50033629
ã§ãã
ã³ã€ã³ããŒã¹ãã©ã³ã¶ã¯ã·ã§ã³ã®æ§é ãããå
·äœçã«ã¯ãã®å
¥åã詳ããèŠãŠã¿ãŸãããã 念ã®ããããéåžžã®ããã©ã³ã¶ã¯ã·ã§ã³ã®å
¥åã¯æ¬¡ã®ããã«ãªããŸãã

ã³ã€ã³ããŒã¹ãã©ã³ã¶ã¯ã·ã§ã³ã«å
¥ãéã®3ã€ã®éãã¯æ¬¡ã®ãšããã§ãã
- å®éã®ãã©ã³ã¶ã¯ã·ã§ã³ããã·ã¥ã®ä»£ããã«ã32 nullãã€ããæå®ãããŸã
- åºåã€ã³ããã¯ã¹ã®ä»£ããã«ã
0xFFFFFFFF
æå®ãããŸãã - ããã¯è§£é€ã¹ã¯ãªãããã£ãŒã«ãã§ã¯ã 2ã100ãã€ãã®ãµã€ãºãæå®ã§ããããããã®ãã£ãŒã«ãã¯coinbase dataãšãåŒã°ããŸã ã ããšãã°ã ãžã§ãã·ã¹ãããã¯ã§ã¯ã
"The Times 03/Jan/2009 Chancellor on brink of second bailout for banks"
ãŠãã"The Times 03/Jan/2009 Chancellor on brink of second bailout for banks"
ãšãããã¬ãŒãºãããã«é ãããŠããŸãã ååãšããŠããã€ããŒã¯èªåã®åå/ãã€ãã³ã°ããŒã«ã®åå/ä»ã®äœããã³ã€ã³ããŒã¹ããŒã¿ã«æ¿å
¥ããŸã ã
å€ãã®å Žåããããããšã¯ã¹ãã©ãã³ã¹ã ã³ã€ã³ããŒã¹ããŒã¿ã«æ¿å
¥ãããŸã ã詳现ã¯ãã¡ããã芧ãã ãã ã äžçªäžã®è¡ã¯ãç®çã®nonceãèŠã€ãããªãå¯èœæ§ãããããšã§ãããã®å Žåããããã¯ã®ããã·ã¥ã¯targetæªæºã§ãïŒå®éãããã¯ã»ãšãã©ã®å Žåã«çºçããŸãïŒã ãã®åŸããã©ã³ã¶ã¯ã·ã§ã³å
ã®äœãã倿ŽããŠãä»ã®ããã·ã¥ïŒ UNIXã¿ã€ã ã¹ã¿ã³ããªã©ïŒãååŸããŸãã ãããã Bitcoinãäžèšã§èšãã°-Blockchainãšèªããšãã¿ã€ã ã¹ã¿ã³ãã倿Žã§ããªãããšãããããŸããããããªããšãä»ã®ããŒãããããã¯ãæåŠããŸãã 解決çã¯éåžžã«ã·ã³ãã«ã§ããããšã倿ããŸããã ã³ã€ã³ããŒã¹ããŒã¿ã«æ°å€ã远å ããçŸåšã®ããããŒã§çŸåšã®ãã³ã¹ãèŠã€ãããªãã£ãå Žåã¯å€æŽããã ãã§ãã
æ°ãããã©ã³ã¶ã¯ã·ã§ã³ã®äœæããã»ã¹ã«ã€ããŠã¯ã Bitcoin in a nutshell -Protocolã®ç« ã§è©³çްã«èª¬æãããŠãããããããã§ã¯ãã§ã«ååŸããã³ã€ã³ããŒã¹ãã©ã³ã¶ã¯ã·ã§ã³ã瀺ããŸããéåžžã®ãã¹ãŠã®ã³ãŒãã¯[Github]ïŒïŒã§å©çšã§ããŸãã
coinbase_txn = "01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff8a47304402207e8495986ec27ed4556fee9dcd897ea028d4eb2023959c2299eb573e0771dee702201489e40115ccc45d4c23f1109cb56b513543517f3efc0031965ad94d94d3d2d901410497e922cac2c9065a0cac998c0735d9995ff42fb6641d29300e8c0071277eb5b4e770fcc086f322339bdefef4d5b51a23d88755969d28e965dacaaa5d0d2a0e09ffffffff01ddff814a000000001976a91478e10cf8e4bd38266d8fd4ed5c8b430d30a3cde888ac00000000"
ãããã®3ã€ã®ãã©ã³ã¶ã¯ã·ã§ã³ã®ããŒã¯ã«ã«ãŒããèšç®ããã ãã§ãã ãããè¡ãã«ã¯ã Bitcoinã®ã³ãŒããã©ã°ã¡ã³ããäžèšã§èšãã°ãããã¯ãã§ãŒã³ã䜿çšããŸãã
txn_pool.insert(0, coinbase_txn) txn_hashes = map(getTxnHash, txn_pool) print "Merkle root: ", merkle(txn_hashes)
察象
äžã§æžããããã«ããã¹ãŠã®ãã€ãã³ã°ã¯ã targetãšåŒã°ããæ°ãããå°ãªããããã¯ããã·ã¥ãèŠã€ããããšã«ãªããŸãã ãããã¯æ§é ã§ã¯ããã®çªå·ã¯ããããã£ãŒã«ãã«æžã蟌ãŸããŸããããšãã°ããããã¯ïŒ277,316ã®å Žåã ã¿ãŒã²ããã¯1903a30c
ã
$ bitcoin-cli getblock 0000000000000001b6b9a13b095e96db41c4a928b97ef2d944a9b31b2cc7bdc4 { "hash" : "0000000000000001b6b9a13b095e96db41c4a928b97ef2d944a9b31b2cc7bdc4", "confirmations" : 35561, "size" : 218629, "height" : 277316, "version" : 2, "merkleroot" : "c91c008c26e50763e9f548bb8b2fc323735f73577effbc55502c51eb4cc7cf2e", "tx" : ["d5ada064c6417ca25c4308bd158c34b77e1c0eca2a73cda16c737e7424afba2f", 418 more transactions], "time" : 1388185914, "nonce" : 924591752, "bits" : "1903a30c", // Here it's "difficulty" : 1180923195.25802612, "chainwork" : "000000000000000000000000000000000000000000000934695e92aaf53afa1a", "previousblockhash" : "0000000000000002a7bbd25a417c0374cc55261021e8a9ca74442b01284f0569", "nextblockhash" : "000000000000000010236c269dd6ed714dd5db39d36b33959079d78dfd431ba7" }
å®éããããã§ã¯ã2ã€ã®æ°å€ãäžåºŠã«æžã蟌ãŸããŸããæåã®ãã€ã0x19
ã¯ææ°ã§ãæ®ãã®3ãã€ã0x03a30c
ã¯ä»®æ°ã§ãã ãããããã¿ãŒã²ãããååŸããã«ã¯ã target = mantissa * 2^(8 * exponent - 3))
åŒã䜿çšããå¿
èŠããããŸãã ãããã¯ïŒ277.316ã®å Žåãæ¬¡ã®ããšãããããŸãã
>>> bits = 0x1903a30c >>> exp = bits >> 24 >>> mant = bits & 0xffffff >>> target_hexstr = '%064x' % (mant * (1 << (8 * (exp - 3)))) >>> target_hexstr '0000000000000003a30c00000000000000000000000000000000000000000000'
ãã€ãã³ã°ã®è€éããåæ ããå¥ã®çšèªã¯é£æåºŠã§ãã ããšãã°ããããã¯ïŒ449.584ã®å Žåã 392,963,262,344.37
ã ãã®ãã©ã¡ãŒã¿ãŒã¯max_target / current_target
ã®æ¯çã§ããããã§ã max_target
ã¯å¯èœãªæå€§ã¿ãŒã²ãããã€ãŸã0x00000000FFFF0000000000000000000000000000000000000000000000000000
ïŒããã圢åŒã§0x1d00ffff
ïŒã§ãã éåžžããã¹ãŠã®ãããã¯ãšã¯ã¹ãããŒã©ãŒã§æå®ãããã®ã¯ãããã§ãã
ãšããã§ãã¿ãŒã²ãããå°ããã»ã©é£æåºŠã¯é«ããªããéããŸãåæ§ã§ãã
ããŠ
ãã¹ãŠã®ãã¥ã¢ã³ã¹ãçè§£ããã®ã§ããã€ããŒãå®è¡ã§ããŸãã
import hashlib import struct import sys
ããã·ã¥ã¬ãŒã
倧åãªã©ã€ã³ãåŸ
ã£ãŠãããªãSuccess!
ããã®åŸãIntel Core i7ã䜿çšãããããŸãã¯å€ãã®ç©ºãæéããããŸãã çŸåšã®è€éãã¯åçŽã«éæ¹ããªã倧ããããããã®ã³ãŒãããã€äœæ¥ãçµäºãã ãã³ã¹ãèŠã€ãããã©ããã¯ããããŸããã ããã°ã©ã ã1ç§ããã100,000ããã·ã¥ãèšç®ã§ãããšä»®å®ããŠãïŒããã§ã¯ãããŸããïŒãå®éã®ãã€ããŒãããæ°çŸåé
ãã®ã§ã nonceãæ€çŽ¢ããã®ã«æ°æ¥ãããããšããããŸãã
åé¡ã®ç¯å²ãææ¡ããããã«ã ããã·ã¥ã¬ãŒãã¡ããªãã¯ããããŸãã ããã¯ããããã³ã€ã³ãããã¯ãŒã¯ã®ãã€ããŒã®ç·åºåãåæ ããæž¬å®åäœã¯1ç§ãããSHA256ããã·ã¥ã§ãã 圌女ã®ã¹ã±ãžã¥ãŒã«ã¯æ¬¡ã®ãšããã§ãã

ããã·ã¥ã¬ãŒãã¯2,000 PH / s = 2,000,000 TH / s = 2,000,000,000 GH / s = 2,000,000,000,000 MH / s = 2,000,000,000,000,000 KH / sãšä»®å®ããŸãã ãããŠãç§ãã¡ã®ããã°ã©ã ã¯100 KH / sããã¹ã¿ãŒããããšããã§ããªãã®ã§ããããã¯ãŒã¯å
šäœãšç«¶åããæå³ã¯ãããŸããã
2ãããã¯1ãã§ãŒã³
ãã©ãŒã¯
é±å±±åŽåè
ããããã¯ïŒ123456ãæ¢ããŠãããšæ³åããŠã¿ãŸãããã ã»ãŒåæã«ã圌ã¯2人ã®ç¬ç«ããé±å€«ã«ãã£ãŠçºèŠãããŸããã1人ã¯ãªãŒã¹ãã©ãªã¢ã«ããã1人ã¯ç±³åœã«äœãã§ããŸãã ããããããããã¯ã®ããŒãžã§ã³ããããã¯ãŒã¯äžã«ã°ããŸãå§ãããã®çµæãäžçã®ååã«ã¯1ã€ã®ãããã¯ãã§ãŒã³ãããããã1ã€ã«ã¯å¥ã®ãããã¯ãã§ãŒã³ãããããšãããããŸãã
ããã¯å¯èœã§ããããã®å Žåã¯ã©ããªããŸããïŒ

ã¯ããå¯èœã§ãã ããã«ãããã¯éåžžã«é »ç¹ã«èµ·ãããŸãã ãã®å ŽåãåããŒãã¯ã誰ããæ¬¡ã®ãããã¯ãèŠã€ãããŸã§ãç¬èªã®ããŒãžã§ã³ã®ãããã¯ãã§ãŒã³ã«åŸããŸãã äžã®å³ã®ããã«ãæ°ãããããã¯ãç·ã®æãç¶ç¶ãããšããŸãã

ãã®å Žåãã«ãŒã«ã¯ãããã³ã€ã³ã®äžçã§æ©èœããããããèµ€ãããŒãžã§ã³ã«æºæ ããŠããããŒãã¯ç·ã®ããŒããèªåçã«åæããŸã ã ãããã¯ãã§ãŒã³ã®æé·ããŒãžã§ã³ã¯ãtrueãã§ãã ãããã¯ãã§ãŒã³ã®ãèµ€ãããŒãžã§ã³ã¯ããããèŠã€ãã人ãžã®å ±é
¬ãšãšãã«ãåã«å¿ããããŸãã
ããªãã¯å°ããããšãã§ããŸãïŒãã©ãŒã¯ãããã«é²ããšã©ããªããŸããïŒ ã€ãŸãããããŒãã«ããããã¯ãšåæã«ã圌ãã¯ãããã¯ãã§ãŒã³ã®ãã¬ãããããŒãžã§ã³ãç¶ç¶ããå¥ã®ãããã¯ãèŠã€ããŸããïŒ
ã»ãšãã©ã®å Žåããã®æ¬ã¯æ°åŠæè²ã®åªãã人ã
ã ãã§ãªãèªãããšãã§ããã®ã§ãæãäžè¬çãªçãã瀺ããŸã-ããã¯ç¢ºãã«å¯èœã§ãã ããããæåã®åå²ã§ãã確çã¯ããªãå°ããã2çªç®ã®åå²ã¯ããã«å°ãããªããŸãã ããªããçè§£ããããã«ããããã³ã€ã³ã®æŽå²ã®äžã§æãé·ãåå²ç¹ã¯ãã£ã4ãããã¯ã§ããã ãã®ãããããæç¹ã§ãã©ã³ãã®1ã€ãå
ãç Žãããããã¯ãŒã¯å
šäœãããã«è¡ããŸãã
確çè«ã®èгç¹ãããã®åé¡ã«èå³ãããå Žåã¯ãããããã¯ãã§ãŒã³ã§åå²ãã確çã¯ïŒããšèªãããšãã§ããŸãã ãã®è³ªåã¯ã äžæ¬Sã«ããæåãªããããã³ã€ã³ïŒãã¢ããŒãã¢é»åçŸéã·ã¹ãã ãã«ã詳ãã説æãããŠããŸãã
51ïŒ
ã®æ»æ
ãããã¯ãã§ãŒã³ã®äžã§æãé·ããã§ãŒã³ãæ¯é
çã§ãããšããåçŽãªäºå®ã«åºã¥ããŠãæ»æå
šäœã¯æ¬¡ã®ããšã«åºã¥ããŠããŸãã
ããªããè©æ¬ºåž«ã§ãããåºã§1000 BTCã§ååã賌å
¥ããŠãããšæ³åããŠãã ããã ããªãã¯å£²ãæã«åæãã圌ã«ãéãéããŸãã 売ãæã¯ãããã¯ãã§ãŒã³ããã§ãã¯ãããã®ãããªãã©ã³ã¶ã¯ã·ã§ã³ãå®éã«ãã£ãããšã確èªãããã¹ãŠã®ãã§ãã¯ã«åæ ŒããïŒ123ãªã©ã®ãããã¯ã«ããå
¥ããŸããã ãã®åŸã売ãæã¯éµäŸ¿ã«è¡ããããªãã«ååãéããŸãã
ãã®æç¹ã§ããã€ãã³ã°ãã¡ãŒã ããªã³ã«ããŠããããã¯ïŒ122ãããã€ãã³ã°ãéå§ããŸã ã ååãªãã¯ãŒãããå Žåã¯ããããã¯ãŒã¯ã®æ®ãã远ãè¶ããŠããããã¯ïŒ124ãŸã§ã®æéãæ°ããããšãã§ããŸãããã®åŸãå
šäžçããããã¯ãã§ãŒã³ã®ããŒãžã§ã³ã«åãæ¿ãããŸãã åæã«ãã©ã®ãããã¯ã«ã1000 BTCã®ãã©ã³ã¶ã¯ã·ã§ã³ãå«ããããšã¯ãããŸãããã€ãŸãããããŸã§ã«ãªãã£ãããã«ãæ°žé ã«å¿ããããããšã«ãªããŸãã ãã®çµæã売ãæã¯ååã倱ãããéãåãåããªããªããŸãã
確çè«ã«ã€ããŠã¯èª¬æããŸãããããããã¯ãŒã¯å
šäœã®å°ãªããšãååã®ããã·ã¥ã¬ãŒãããªãéãããã®ãããªæ»æãå®è¡ããããšã¯ã§ããŸããã 詳ããã¯bitcoin.pdfãã芧ãã ãã ã
ããã«ãããããããäžéšã®ãã€ãã³ã°ããŒã«ã«ã¯éåžžã«å€§ããªå®¹éããããŸãã ããšãã°ã2013幎ã®BTCã®ã«ãã¯ã51ïŒ
ã®ããã·ã¥ã¬ãŒãã®ãããå€ãã»ãŒè¶
ããŸãã ã ããæç¹ã§ã圌ãã¯ããã«6ãããã¯ãé£ç¶ããŠæ¡æããã®ã§ãæããªãã圌ãã¯ãã®æ»æãå®è¡ããããšãã§ããŸããã ãããã£ãŠãäžãã6ãããã¯ãäœæãããåŸã«ã®ã¿ããã©ã³ã¶ã¯ã·ã§ã³ã確èªããããšããå§ãããŸãã
ããŒããŠã§ã¢
CPUãŸãã¯GPUã§ã®ãã€ãã³ã°ãããã«å¿ããããšãã§ããŸãã çè§£ã®ããã«ã2017幎ã®åãã®ããã·ã¥ã¬ãŒãã以äžã«ç€ºããŸãã å¹³åããŠ2.300.000 TH / Sãã€ãŸã2.300.000.000.000 MH / sãšä»®å®ããŸãã æ¯èŒã®ããã«ã ATI Radeon HD 5870 EyefinityãAMD Radeon HD 7970ïŒx3ïŒãªã©ã®æãæ®å¿ãªãããªã«ãŒãã¯ã ãããã2000 MH / S ããæäŸããŸããã ããã»ããµã®äžã§ãæåã®å Žæã¯é¢çœã140 MH / sã®Xeon Phi 5100ã§å ããããŠããŸãã

ãããã£ãŠã1000ãã«/ BTCã®ã¬ãŒãã«åºã¥ããŠã10.000 MH / sãæå
ã«æã£ãŠããå Žåã§ãã æå¹³å20ã»ã³ããç²åŸã§ããŸãã

CPUãã€ãã³ã°ã¯2011幎ã«å©çã倱ããGPUã¯2013幎é ãŸã§ç¶æãããŸããããããããç¹å®çšéåãéç©åè·¯ ïŒ ASICïŒãæ®åãããšãã«çãå°œããŸããã ãããã¯ãéã®ã¬ãã«ã§ã®æ¡æã®ããã«ç ãããç¹å¥ãªãããã§ãã æãåçŽãªãã®ã¯çŽ100ãã«ã§ãããããšã³ãã®ãããªã«ãŒããããã¯ããã«å®äŸ¡ã§ãããåæã«1 TH /ç§ããçç£ã§ããŸãã
ã€ãŸãããããã$ 3.000ã§2ã€ã®Antminer S9ãåããceteris paribusã䜿çšãããšã æé¡çŽ700ãã« ïŒé»æ°æéãé€ãïŒãç²åŸã§ããŸã

ããããããã ãã§ã¯ãããŸããã ãã€ãã³ã°ããŒã«ã§ä»ã®ãã€ããŒãšããŒã ãçµãã§äžç·ã«ãã€ãã³ã°ãéå§ããç²åŸãããéãæè³ãããã£ãã·ãã£ã«å¿ããŠåé
ã§ããŸãã ããã¯æããã«ãå°ãªããšãåç¬ã§äœãã皌ãããšãããããã¯ããã«æçã§ããã ããããã仿¥ã®ããŒã«ã¯é±æ¥ã®äžçã«ãããäž»èŠãªåååã§ãã 2017幎åé ãããŒã«åžå Žã®äž»åœ¹ã¯AntPool ã F2Pool ã Bitfuryã§ ããããã¯ãŒã¯å
šäœã®40ïŒ
以äžã®ããã·ã¥ã¬ãŒããæäŸããŸãã

ãããã«
ãã®ãã€ããŒãã§ããããã³ã€ã³ã®æè¡çããã€ã¹ã«é¢ããç§ã®è©±ãçµãããŸãã ããã¹ãã®ãœãŒã¹ãšããã«ããã³ãŒãäŸïŒåãPDFããŒãžã§ã³ïŒã ãã«ãªã¯ãšã¹ããæè¿ããåé¡ãŸãã¯ã³ã¡ã³ãã§è³ªåããŸãã

ãªã³ã¯é