text: import{_ as n,c as s,o as a,d as p}from"./app.99e6884a.js";const m='{"title":"\u6BD4\u7279\u5E01\u5757\u94FE\u548C\u6316\u77FF\u539F\u7406(\u4FEE\u8BA2\u7248)","description":"","frontmatter":{},"headers":[{"level":2,"title":"\u8BD1\u8005\u524D\u8A00","slug":"\u8BD1\u8005\u524D\u8A00"},{"level":2,"title":"\u6B63\u6587","slug":"\u6B63\u6587"},{"level":2,"title":"1.\u533A\u5757(Block)","slug":"_1-\u533A\u5757-block"},{"level":3,"title":"1.1 \u533A\u5757\u7ED3\u6784(Block Structure)","slug":"_1-1-\u533A\u5757\u7ED3\u6784-block-structure"},{"level":3,"title":"1.2 \u8BE6\u7EC6\u8BF4\u660E(Explanation)","slug":"_1-2-\u8BE6\u7EC6\u8BF4\u660E-explanation"},{"level":2,"title":"2.\u521B\u4E16\u5757(Genesis Block)","slug":"_2-\u521B\u4E16\u5757-genesis-block"},{"level":2,"title":"3.\u5757\u94FE(Block Chain)","slug":"_3-\u5757\u94FE-block-chain"},{"level":2,"title":"4.\u533A\u5757 HASH \u7B97\u6CD5(Block hashing Algorithm)","slug":"_4-\u533A\u5757-hash-\u7B97\u6CD5-block-hashing-algorithm"},{"level":2,"title":"5.\u96BE\u5EA6(Difficulty)","slug":"_5-\u96BE\u5EA6-difficulty"},{"level":2,"title":"\u672C\u6587\u8BD1\u81EA\u6BD4\u7279\u5E01 WIKI","slug":"\u672C\u6587\u8BD1\u81EA\u6BD4\u7279\u5E01-wiki"}],"relativePath":"blogs/BTCMinning.md","lastUpdated":1639024937954}',e={},t=p(`<h1 id="\u6BD4\u7279\u5E01\u5757\u94FE\u548C\u6316\u77FF\u539F\u7406-\u4FEE\u8BA2\u7248" tabindex="-1">\u6BD4\u7279\u5E01\u5757\u94FE\u548C\u6316\u77FF\u539F\u7406(\u4FEE\u8BA2\u7248) <a class="header-anchor" href="#\u6BD4\u7279\u5E01\u5757\u94FE\u548C\u6316\u77FF\u539F\u7406-\u4FEE\u8BA2\u7248" aria-hidden="true" target="_blank" rel="noopener">#</a></h1><p><a href="http://www.8btc.com/bitcoin_block_chain" target="_blank" rel="noopener noreferrer">\u539F\u6587</a> \u6392\u7248\u5B9E\u5728\u662F\u60E8\u4E0D\u5FCD\u7779,\u6240\u4EE5\u624B\u5DE5\u6821\u6B63\u4E86\u4E00\u4E0B,\u65B9\u4FBF\u5927\u5BB6\u9605\u8BFB,\u5982\u679C\u4FB5\u6743\u8BF7\u53CA\u65F6\u8054\u7CFB\u6211,\u6211\u7ACB\u5373\u64A4\u7A3F.</p><hr><p>\u8BD1\u8005\uFF1A\u7533\u5C60\u9752\u6625\u3000\u6DF1\u5733\u5927\u5B66 ATR \u56FD\u9632\u79D1\u6280\u91CD\u70B9\u5B9E\u9A8C\u5BA4\u535A\u58EB\u3000\u65B0\u6D6A\u5FAE\u535A\u3000@\u6211\u770B\u6BD4\u7279\u5E01</p><p>\u6CE8\u610F\uFF1A\u672C\u6587\u53EF\u968F\u610F\u8F6C\u53D1\uFF0C\u8BF7\u7559\u4E0B\u8BD1\u8005\u4FE1\u606F\uFF0C\u5982\u679C\u89C9\u5F97\u672C\u6587\u5BF9\u4F60\u6709\u7528\uFF0C\u8BF7\u7ED9\u8BD1\u8005\u6350\u8D60\uFF0C\u4EE5\u4FBF\u7FFB\u8BD1\u66F4\u591A\u6BD4\u7279\u5E01\u7684\u6838\u5FC3\u8D44\u6599\u3002\u6350\u8D60\u5730\u5740\uFF1A<code>1faVxBp2KmST98p3tJjx2MQP98JLLnF2Q</code></p><h2 id="\u8BD1\u8005\u524D\u8A00" tabindex="-1">\u8BD1\u8005\u524D\u8A00 <a class="header-anchor" href="#\u8BD1\u8005\u524D\u8A00" aria-hidden="true" target="_blank" rel="noopener">#</a></h2><p>\u200B \u6BD4\u7279\u5E01\u5728\u56FD\u5185\u5DF2\u7ECF\u4F17\u6240\u5468\u77E5\uFF0C\u4F46\u662F\u6280\u672F\u7814\u7A76\u5E76\u672A\u6709\u6548\u5F00\u5C55\uFF0C\u5927\u90E8\u5206\u4EBA\u5904\u4E8E\u77E5\u9053\u548C\u4E86\u89E3\u7A0B\u5EA6\uFF0C\u76EE\u524D\u6BD4\u7279\u5708\u4E2D\u8BB8\u591A\u4EBA\u5BF9\u6BD4\u7279\u5E01\u80FD\u505A\u4EC0\u4E48\uFF0C\u540C\u6837\u4E86\u89E3\u4E0D\u591A\u3002\u4E00\u4E2A\u91CD\u8981\u539F\u56E0\u662F\u5927\u591A\u6570\u6BD4\u7279\u5E01\u6838\u5FC3\u8D44\u6599\u90FD\u662F\u82F1\u6587\uFF0C\u5F88\u5C11\u6709\u4EBA\u80FD\u9759\u5FC3\u770B\u5B8C\u5982\u6B64\u7E41\u6742\u7684\u82F1\u6587\u8D44\u6599\u3002\u672C\u4EBA\u535A\u58EB\u8BBA\u6587\u7684\u7814\u7A76\u65B9\u5411\u662F\u6BD4\u7279\u5E01\uFF0C\u5728\u7814\u7A76\u5176\u82F1\u6587\u6280\u672F\u7684\u540C\u65F6\uFF0C\u62DF\u5BF9\u4E00\u4E9B\u91CD\u8981\u8D44\u6599\u8FDB\u884C\u7FFB\u8BD1\uFF0C\u8BA9\u66F4\u591A\u7684\u5708\u5185\u4EBA\u5BF9\u6BD4\u7279\u5E01\u6709\u66F4\u591A\u7684\u7406\u89E3\u3002</p><p>\u200B \u672C\u6587\u4E3B\u9898\u662F\u6BD4\u7279\u5E01\u533A\u5757\u3001\u521B\u4E16\u5757\u3001\u6316\u77FF\u539F\u7406\u3001\u96BE\u5EA6\u7B49\u7684\u6280\u672F\u8D44\u6599\uFF0C\u7EFC\u5408\u4E86\u6BD4\u7279\u5E01\u5B98\u65B9\u5A01\u5BA2\u4E0A\u7684\u4F17\u591A\u8D44\u6599\u7FFB\u8BD1\u548C\u7F16\u5199\u800C\u6210\u3002</p><h2 id="\u6B63\u6587" tabindex="-1">\u6B63\u6587 <a class="header-anchor" href="#\u6B63\u6587" aria-hidden="true" target="_blank" rel="noopener">#</a></h2><h2 id="_1-\u533A\u5757-block" tabindex="-1">1.\u533A\u5757(Block) <a class="header-anchor" href="#_1-\u533A\u5757-block" aria-hidden="true" target="_blank" rel="noopener">#</a></h2><p>\u200B \u6BD4\u7279\u5E01\u7F51\u7EDC\u4E2D\uFF0C\u6570\u636E\u4EE5\u6587\u4EF6\u7684\u5F62\u5F0F\u88AB\u6C38\u4E45\u8BB0\u5F55\uFF0C\u6211\u4EEC\u79F0\u4E4B\u4E3A\u533A\u5757\u3002\u4E00\u4E2A\u533A\u5757\u662F\u4E00\u4E9B\u6216\u6240\u6709\u6700\u65B0\u6BD4\u7279\u5E01\u4EA4\u6613\u7684\u8BB0\u5F55\u96C6\uFF0C\u4E14\u672A\u88AB\u5176\u4ED6\u5148\u524D\u7684\u533A\u5757\u8BB0\u5F55\u3002\u533A\u5757\u53EF\u4EE5\u60F3\u50CF\u4E3A\u4E00\u4E2A\u57CE\u5E02\u8BB0\u5F55\u8005\u7684\u8BB0\u5F55\u672C\u4E0A\u7684\u5355\u72EC\u4E00\u9875\u7EB8(\u5BF9\u623F\u5730\u4EA7\u4EA7\u6743\u7684\u53D8\u66F4\u8BB0\u5F55)\u6216\u8005\u662F\u80A1\u7968\u4EA4\u6613\u6240\u7684\u603B\u5E10\u672C\u3002\u5728\u7EDD\u5927\u591A\u6570\u60C5\u51B5\u4E0B\uFF0C\u65B0\u533A\u5757\u88AB\u52A0\u5165\u5230\u8BB0\u5F55\u6700\u540E(\u5728\u6BD4\u7279\u5E01\u4E2D\u7684\u540D\u79F0\u4E3A\uFF1A<a href="https://en.bitcoin.it/wiki/Block_chain" target="_blank" rel="noopener noreferrer">\u5757\u94FE</a>\uFF0C\u4E00\u65E6\u5199\u4E0A\uFF0C\u5C31\u518D\u4E5F\u4E0D\u80FD\u6539\u53D8\u6216\u5220\u9664\u3002\u6BCF\u4E2A\u533A\u5757\u8BB0\u5F55\u4E86\u5B83\u88AB\u521B\u5EFA\u4E4B\u524D\u53D1\u751F\u7684\u6240\u6709\u4E8B\u4EF6\u3002</p><h3 id="_1-1-\u533A\u5757\u7ED3\u6784-block-structure" tabindex="-1">1.1 \u533A\u5757\u7ED3\u6784(Block Structure) <a class="header-anchor" href="#_1-1-\u533A\u5757\u7ED3\u6784-block-structure" aria-hidden="true" target="_blank" rel="noopener">#</a></h3><table><thead><tr><th><strong>\u6570\u636E\u9879</strong></th><th><strong>\u63CF\u8FF0</strong></th><th><strong>\u957F\u5EA6</strong></th></tr></thead><tbody><tr><td>Magic no \u9B54\u672F\u6570</td><td>\u603B\u662F 0xD9B4BEF9</td><td>4 \u5B57\u8282</td></tr><tr><td>Blocksize \u5757\u5927\u5C0F</td><td>\u5230\u533A\u5757\u7ED3\u675F\u7684\u5B57\u8282\u957F\u5EA6</td><td>4 \u5B57\u8282</td></tr><tr><td>Blockheader \u5757\u5934</td><td><a href="https://en.bitcoin.it/wiki/Block_hashing_algorithm" target="_blank" rel="noopener noreferrer">\u5305\u542B 6 \u4E2A\u6570\u636E\u9879</a></td><td>80 \u5B57\u8282</td></tr><tr><td>Transaction counter \u4EA4\u6613\u6570\u91CF</td><td>\u6B63\u6574\u6570 <a href="https://en.bitcoin.it/wiki/Protocol_specification#Variable_length_integer" target="_blank" rel="noopener noreferrer">VI = VarInt</a></td><td>1 \u2013 9 \u5B57\u8282</td></tr><tr><td><a href="https://en.bitcoin.it/wiki/Transactions" target="_blank" rel="noopener noreferrer">transactions</a> \u4EA4\u6613</td><td>\u4EA4\u6613\u5217\u8868(\u975E\u7A7A)</td><td>&lt;Transaction counter&gt;-\u8BB8\u591A\u4EA4\u6613</td></tr></tbody></table><h3 id="_1-2-\u8BE6\u7EC6\u8BF4\u660E-explanation" tabindex="-1">1.2 \u8BE6\u7EC6\u8BF4\u660E(Explanation) <a class="header-anchor" href="#_1-2-\u8BE6\u7EC6\u8BF4\u660E-explanation" aria-hidden="true" target="_blank" rel="noopener">#</a></h3><p>\u200B \u6BCF\u4E2A\u533A\u5757\u5305\u62EC\u4E00\u4E9B\u6216\u6240\u6709\u8FD1\u671F\u4EA4\u6613\u3001\u524D\u4E00\u4E2A\u533A\u5757\u7684\u5F15\u7528\u3001\u4EE5\u53CA\u5176\u4ED6\u6570\u636E\u3002\u5B83\u8FD8\u5305\u62EC\u4E00\u4E2A\u6316\u77FF\u96BE\u5EA6\u7684\u7B54\u6848-\u8BE5\u7B54\u6848\u5BF9\u6BCF\u4E2A\u533A\u5757\u662F\u552F\u4E00\u7684\u3002\u65B0\u533A\u5757\u5982\u679C\u6CA1\u6709\u6B63\u786E\u7B54\u6848\uFF0C\u4E0D\u80FD\u88AB\u53D1\u9001\u5230\u7F51\u7EDC\u4E2D-\u201C<a href="https://en.bitcoin.it/wiki/Mining" target="_blank" rel="noopener noreferrer">\u6316\u77FF</a>\u201D\u7684\u8FC7\u7A0B\u672C\u8D28\u4E0A\u662F\u5728\u7ADE\u4E89\u4E2D \u201C\u89E3\u51B3\u201D\u5F53\u524D\u533A\u5757\u3002\u6BCF\u4E2A\u533A\u5757\u4E2D\u7684\u6570\u5B66\u95EE\u9898\u96BE\u4EE5\u89E3\u51B3\uFF0C\u4F46\u662F\u4E00\u65E6\u53D1\u73B0\u4E86\u4E00\u4E2A\u6709\u6548\u89E3\uFF0C\u5176\u4ED6\u7F51\u7EDC\u8282\u70B9\u5F88\u5BB9\u6613\u9A8C\u8BC1\u8FD9\u4E2A\u89E3\u7684\u6B63\u786E\u6027\uFF0C\u5BF9\u4E8E\u7ED9\u5B9A\u7684\u533A\u5757\u53EF\u80FD\u6709\u591A\u4E2A\u6709\u6548\u89E3-\u4F46\u5BF9\u4E8E\u8981\u89E3\u51B3\u7684\u533A\u5757\u6765\u8BF4\u53EA\u9700\u4E00\u4E2A\u89E3\u3002</p><p>\u200B \u56E0\u4E3A\u6BCF\u89E3\u51B3\u4E00\u4E2A\u533A\u5757\uFF0C\u90FD\u4F1A\u5F97\u5230\u65B0\u4EA7\u751F\u7684\u6BD4\u7279\u5E01\u5956\u52B1\uFF0C\u6BCF\u4E2A\u533A\u5757\u5305\u542B\u4E00\u4E2A\u8BB0\u5F55\uFF0C\u8BB0\u5F55\u4E2D\u7684<a href="https://en.bitcoin.it/wiki/Bitcoin_address" target="_blank" rel="noopener noreferrer">\u6BD4\u7279\u5E01\u5730\u5740</a>\u662F\u6709\u6743\u83B7\u5F97\u6BD4\u7279\u5E01\u5956\u52B1\u7684\u5730\u5740\u3002\u8FD9\u4E2A\u7EAA\u5F55\u88AB\u79F0\u4E3A\u751F\u4EA7\u4EA4\u6613\u3001\u6216\u8005<a href="https://en.bitcoin.it/wiki/Coinbase" target="_blank" rel="noopener noreferrer">coinbase</a>\u4EA4\u6613\uFF0C\u5B83\u7ECF\u5E38\u662F\u6BCF\u4E2A\u533A\u5757\u7684\u7B2C\u4E00\u4E2A\u4EA4\u6613\u3002\u6BCF\u4E2A\u5757\u533A\u751F\u4EA7\u7684\u6BD4\u7279\u5E01\u6570\u91CF\u662F 50 \u4E2A\uFF0C\u6BCF\u4EA7\u751F 21 \u4E07\u4E2A\u533A\u5757\u540E\u51CF\u5C11\u4E00\u534A\uFF08\u65F6\u95F4\u5927\u7EA6\u662F 4 \u5E74\uFF09\u3002</p><p>\u200B \u53D1\u9001\u8005\u5728\u7F51\u7EDC\u4E2D\u5E7F\u64AD\u6BD4\u7279\u5E01\u4EA4\u6613\uFF0C\u6240\u6709\u8BD5\u56FE\u89E3\u51B3\u533A\u5757\u7684\u77FF\u5DE5\u8282\u70B9\uFF0C\u6536\u96C6\u4E86\u8FD9\u4E9B\u4EA4\u6613\u8BB0\u5F55\uFF0C\u628A\u5B83\u4EEC\u52A0\u5230\u77FF\u5DE5\u8282\u70B9\u6B63\u5728\u89E3\u51B3\u7684\u533A\u5757\u4E2D\u3002</p><p>\u200B \u6316\u77FF\u96BE\u5EA6\u7531\u6BD4\u7279\u5E01\u7F51\u7EDC\u81EA\u52A8\u8C03\u6574\uFF0C\u4F7F\u4E4B\u5B9E\u73B0\u5E73\u5747\u6BCF\u5C0F\u65F6\u89E3\u51B3 6 \u4E2A\u533A\u5757\u7684\u76EE\u6807\u3002\u6BCF 2016 \u4E2A\u533A\u5757\uFF08\u5927\u7EA6\u4E24\u5468\uFF09\u540E\uFF0C\u6240\u6709\u5BA2\u6237\u7AEF\u628A\u65B0\u533A\u5757\u7684\u5B9E\u9645\u6570\u76EE\u4E0E\u76EE\u6807\u6570\u91CF\u76F8\u6BD4\u8F83\uFF0C\u5E76\u4E14\u6309\u7167\u5DEE\u5F02\u7684\u767E\u5206\u6BD4\u8C03\u6574\u76EE\u6807 HASH \u503C\uFF0C\u6765\u589E\u52A0\uFF08\u6216\u964D\u4F4E\uFF09\u4EA7\u751F\u533A\u5757\u7684\u96BE\u5EA6\u3002</p><p>\u200B \u56E0\u4E3A\u6240\u6709\u533A\u5757\u5305\u542B\u524D\u4E00\u4E2A\u533A\u5757\u7684\u5F15\u7528\uFF0C\u73B0\u5B58\u7684\u6240\u6709\u533A\u5757\u7684\u96C6\u5408\u53EF\u4EE5\u8BF4\u662F\u5F62\u6210\u4E86\u4E00\u6761\u94FE\uFF0C\u7136\u800C\uFF0C\u5757\u94FE\u6709\u53EF\u80FD\u4EA7\u751F\u6682\u65F6\u5206\u53C9-\u4E3E\u4E2A\u4F8B\u5B50\uFF0C\u5982\u679C\u4E24\u4E2A\u77FF\u5DE5\u540C\u65F6\u4E3A\u4E00\u4E2A\u533A\u5757\u4EA7\u751F\u4E0D\u540C\u7684\u6709\u6548\u89E3\uFF0C\u4E24\u8005\u76F8\u4E92\u4E0D\u77E5\u3002P2P \u7F51\u7EDC\u4F1A\u5728\u4E00\u6BB5\u77ED\u65F6\u95F4\u5185\u6D88\u9664\u8FD9\u4E9B\u5206\u53C9\uFF0C\u8BE5\u94FE\u4EC5\u6709\u4E00\u4E2A\u5206\u652F\u5B58\u6D3B\u3002</p><p>\u200B \u5BA2\u6237\u7AEF\u63A5\u53D7\u201C\u6700\u957F\u201D\u5757\u94FE\u4F5C\u4E3A\u6709\u6548\u94FE\uFF0C\u6574\u6761\u5757\u94FE\u7684\u201C<a href="https://en.bitcoin.it/wiki/Block_chain" target="_blank" rel="noopener noreferrer">\u957F\u5EA6</a>\u201D\u662F\u6307\u5177\u6709\u6700\u5927\u96BE\u5EA6\u7684\u94FE\uFF0C\u800C\u4E0D\u662F\u6307\u5177\u6709\u6700\u591A\u533A\u5757\u6570\u91CF\u7684\u5757\u94FE\uFF0C\u53EF\u9632\u6B62\u67D0\u4E9B\u4EBA\u521B\u5EFA\u5927\u91CF\u4F4E\u96BE\u5EA6\u533A\u5757\uFF0C\u6545\u610F\u4F7F\u5757\u94FE\u5206\u53C9\uFF0C\u5E76\u4E14\u8BA9\u7F51\u7EDC\u63A5\u53D7\u5B83\u6210\u4E3A\u201C\u6700\u957F\u201D\u7684\u5757\u94FE\u3002</p><p>\uFF08\u8BD1\u8005\u6309\uFF1A\u4EE5\u4E0B\u975E\u6807\u51C6\u533A\u5757\u5185\u5BB9\u6765\u81EA<a href="https://en.bitcoin.it/wiki/Nonstandard_block" target="_blank" rel="noopener noreferrer">Nonstandard_block</a> \uFF0C\u7565\u6709\u6539\u52A8\uFF09</p><p>\u200B \u975E\u6807\u51C6\u533A\u5757\uFF1A\u662F\u6307\u5305\u62EC\u975E\u6807\u51C6\u4EA4\u6613\u7684\u533A\u5757\uFF0C\u4EA4\u6613\u7684\u6807\u51C6\u4E0E\u5426\uFF0C\u8981\u53C2\u8003\u6BD4\u7279\u5E01\u5BA2\u6237\u7AEF\u6E90\u4EE3\u7801\u4E2D\u7684 <code>IsStandard()</code>\u51FD\u6570\u3002\u5BA2\u6237\u7AEF\u4E0D\u4F1A\u4F20\u64AD\u975E\u6807\u51C6\u4EA4\u6613\uFF0C\u4F46\u662F\u67D0\u4E9B\u77FF\u6C60\u7684\u77FF\u5DE5\u4F1A\u628A\u5408\u6CD5\u7684\u975E\u6807\u51C6\u4EA4\u6613\u52A0\u5165\u5230\u533A\u5757\u4E2D\uFF0C\u5F62\u6210\u975E\u6807\u51C6\u533A\u5757\uFF0C\u5BA2\u6237\u7AEF\u5728\u8BA1\u7B97\u96BE\u5EA6\u6700\u957F\u7684\u5757\u94FE\u65F6\uFF0C\u4F1A\u8003\u8651\u975E\u6807\u51C6\u533A\u5757\u3002</p><h4 id="\u533A\u5757\u7684\u4E00\u822C\u95EE\u9898" tabindex="-1">\u533A\u5757\u7684\u4E00\u822C\u95EE\u9898 <a class="header-anchor" href="#\u533A\u5757\u7684\u4E00\u822C\u95EE\u9898" aria-hidden="true" target="_blank" rel="noopener">#</a></h4><ul><li><p>(1)\u76EE\u524D\u6709\u591A\u5C11\u4E2A\u533A\u5757\uFF1F</p><p><a href="http://blockexplorer.com/q/getblockcount" target="_blank" rel="noopener noreferrer">\u76EE\u524D\u7684\u533A\u5757\u6570</a>\uFF0C\u8BBF\u95EE\uFF1A<a href="http://blockexplorer.com/q/getblockcount" target="_blank" rel="noopener noreferrer">getblockcount</a></p></li><li><p>(2)\u533A\u5757\u7684\u6700\u5927\u6570\u91CF\u662F\u591A\u5C11\uFF1F</p><p>\u6CA1\u6709\u6700\u5927\u6570\u91CF\uFF0C\u533A\u5757\u4EE5\u5E73\u5747\u6BCF 10 \u5206\u949F\u4E00\u4E2A\u7684\u901F\u5EA6\uFF0C\u6E90\u6E90\u4E0D\u65AD\u5730\u52A0\u5230\u5757\u94FE\u7ED3\u5C3E\u3002</p></li><li><p>(3)\u751A\u81F3\u5F53\u6240\u6709\u7684 2100 \u4E07\u4E2A\u6BD4\u7279\u5E01\u5168\u90E8\u88AB\u6316\u5B8C\uFF0C\u8FD8\u662F\u6CA1\u6709\u6700\u5927\u6570\u91CF\u5417\uFF1F</p><p>\u5BF9\u7684\uFF0C\u533A\u5757\u7528\u6765\u786E\u8BA4\u4EA4\u6613\u5728\u67D0\u4E00\u7279\u5B9A\u65F6\u95F4\u5B58\u5728\uFF0C\u5373\u4F7F\u6BD4\u7279\u5E01\u5168\u90E8\u88AB\u6316\u5B8C\uFF0C\u4EA4\u6613\u8FD8\u662F\u4F1A\u53D1\u751F\uFF0C\u6240\u4EE5\u53EA\u8981\u4EBA\u4EEC\u8FD8\u5728\u4EA4\u6613\u6BD4\u7279\u5E01\uFF0C\u533A\u5757\u8FD8\u4F1A\u88AB\u521B\u5EFA\u3002</p></li><li><p>(4)\u6211\u8981\u82B1\u591A\u5C11\u65F6\u95F4\u751F\u6210\u4E00\u4E2A\u533A\u5757\uFF1F</p><p>\u6CA1\u6709\u4EBA\u80FD\u591F\u51C6\u786E\u56DE\u7B54\uFF0C\u8FD9\u91CC\u6709\u4E2A<a href="https://en.bitcoin.it/wiki/Generation_Calculator" target="_blank" rel="noopener noreferrer">\u751F\u4EA7\u8BA1\u7B97\u5668</a> \uFF0C\u53EF\u4EE5\u544A\u8BC9\u4F60\u53EF\u80FD\u8981\u82B1\u591A\u5C11\u65F6\u95F4\u3002</p></li><li><p>(5)\u5982\u679C\u6211\u5B8C\u6210\u8BA1\u7B97\u4E00\u4E2A\u533A\u5757\u7684 1%\u8FDB\u5EA6\u2026</p><p>\u6CA1\u6709\u89E3\u51B3\u4E00\u4E2A\u533A\u5757\u7684 1%\u7684\u8BF4\u6CD5\uFF0C\u4F60\u4E0D\u4F1A\u5728\u89E3\u51B3\u533A\u5757\u4E0A\u6709\u4EFB\u4F55\u8FDB\u5C55\uFF0C\u5728\u5DE5\u4F5C 24 \u5C0F\u65F6\u540E\uFF0C\u4F60\u89E3\u51B3\u4E00\u4E2A\u533A\u5757\u7684\u673A\u7387\u548C 24 \u5C0F\u65F6\u524D\u4E00\u6837\uFF0C\u82E5\u975E\u4FE1\u4EF0\u6BD4\u7279\u5E01\u5C31\u662F\u4F17\u6240\u5468\u77E5\u7684\u8D4C\u5F92\u8C2C\u8BEF\u3002</p><p>\u8FD9\u5C31\u50CF\u540C\u65F6\u629B 53 \u679A\u786C\u5E01\uFF0C\u4F7F\u5F97\u5B83\u4EEC\u4EBA\u5934\u5411\u4E0A\uFF0C\u6BCF\u6B21\u4F60\u8BD5\u9A8C\uFF0C\u4F60\u7684\u6210\u529F\u673A\u7387\u90FD\u662F\u4E00\u6837\u7684\u3002</p></li><li><p>(6)\u6211\u8FD8\u80FD\u627E\u5230\u66F4\u591A\u7684\u6280\u672F\u7EC6\u8282\u5417\uFF1F</p><p>\u5728\u4E0B\u9762\u7684<a href="https://en.bitcoin.it/wiki/Block_hashing_algorithm" target="_blank" rel="noopener noreferrer">\u533A\u5757 HASH \u7B97\u6CD5</a>\u4E2D\uFF0C\u6709\u66F4\u591A\u7684\u6280\u672F\u7EC6\u8282\u3002</p></li></ul><h2 id="_2-\u521B\u4E16\u5757-genesis-block" tabindex="-1">2.\u521B\u4E16\u5757(Genesis Block) <a class="header-anchor" href="#_2-\u521B\u4E16\u5757-genesis-block" aria-hidden="true" target="_blank" rel="noopener">#</a></h2><p>\u200B \u521B\u4E16\u5757\u662F\u6307\u5757\u94FE\u7684\u7B2C\u4E00\u4E2A\u5757\uFF0C\u73B0\u5728\u7684\u6BD4\u7279\u5E01\u5BA2\u6237\u7AEF\u7248\u672C\u628A\u5757\u53F7\u5B9A\u4E3A 0\uFF0C\u4EE5\u524D\u7684\u7248\u672C\u628A\u8BE5\u5757\u5757\u53F7\u5B9A\u4E3A 1\u3002</p><p>\u200B \u4EE5\u4E0B\u662F\u521B\u4E16\u5757\u7684\u4E00\u79CD\u8868\u793A\uFF0C\u5B83\u51FA\u73B0\u5728\u4EE5\u524D\u7684\u6BD4\u7279\u5E01\u4EE3\u7801\u7684\u6CE8\u91CA\u4E2D(<a href="http://sourceforge.net/p/bitcoin/code/133/tree/trunk/main.cpp#l1613" target="_blank" rel="noopener noreferrer">\u7B2C 1613 \u884C</a>)\uFF0C\u7B2C\u4E00\u4E2A\u4EE3\u7801\u6BB5\u5B9A\u4E49\u4E86\u521B\u5EFA\u8BE5\u5757\u6240\u9700\u7684\u6240\u6709\u53D8\u91CF\uFF0C\u7B2C\u4E8C\u4E2A\u4EE3\u7801\u6BB5\u662F\u6807\u51C6\u7684\u533A\u5757\u7C7B\u683C\u5F0F\uFF0C\u8FD8\u5305\u542B\u4E86\u7B2C\u4E00\u4E2A\u4EE3\u7801\u6BB5\u4E2D\u7F29\u77ED\u7248\u672C\u7684\u6570\u636E\u3002</p><div class="language-cpp line-numbers-mode"><pre><code><span class="token function">GetHash</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token operator">=</span> <span class="token number">0x000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f</span>
  hashMerkleRoot <span class="token operator">=</span> <span class="token number">0x4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b</span>
  txNew<span class="token punctuation">.</span>vin<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">.</span>scriptSig     <span class="token operator">=</span> <span class="token number">486604799</span> <span class="token number">4</span> <span class="token number">0x736B6E616220726F662074756F6C69616220646E6F63657320666F206B6E697262206E6F20726F6C6C65636E61684320393030322F6E614A2F33302073656D695420656854</span>
  txNew<span class="token punctuation">.</span>vout<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">.</span>nValue       <span class="token operator">=</span> <span class="token number">5000000000</span>
  txNew<span class="token punctuation">.</span>vout<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">.</span>scriptPubKey <span class="token operator">=</span>
  <span class="token number">0x5F1DF16B2B704C8A578D0BBAF74D385CDE12C11EE50455F3C438EF4C3FBCF649B6DE611FEAE06279A60939E028A8D65C10B73071A6F16719274855FEB0FD8A6704</span> OP_CHECKSIG
  
  block<span class="token punctuation">.</span>nVersion <span class="token operator">=</span> <span class="token number">1</span>
  block<span class="token punctuation">.</span>nTime    <span class="token operator">=</span> <span class="token number">1231006505</span>
  block<span class="token punctuation">.</span>nBits    <span class="token operator">=</span> <span class="token number">0x1d00ffff</span>
  block<span class="token punctuation">.</span>nNonce   <span class="token operator">=</span> <span class="token number">2083236893</span>
  
  <span class="token function">CBlock</span><span class="token punctuation">(</span>hash<span class="token operator">=</span><span class="token number">000000000019</span>d6<span class="token punctuation">,</span> ver<span class="token operator">=</span><span class="token number">1</span><span class="token punctuation">,</span> hashPrevBlock<span class="token operator">=</span><span class="token number">00000000000000</span><span class="token punctuation">,</span> hashMerkleRoot<span class="token operator">=</span><span class="token number">4</span>a5e1e<span class="token punctuation">,</span> nTime<span class="token operator">=</span><span class="token number">1231006505</span><span class="token punctuation">,</span> nBits<span class="token operator">=</span><span class="token number">1</span>d00ffff<span class="token punctuation">,</span> nNonce<span class="token operator">=</span><span class="token number">2083236893</span><span class="token punctuation">,</span> vtx<span class="token operator">=</span><span class="token number">1</span><span class="token punctuation">)</span>
  
  <span class="token function">CTransaction</span><span class="token punctuation">(</span>hash<span class="token operator">=</span><span class="token number">4</span>a5e1e<span class="token punctuation">,</span> ver<span class="token operator">=</span><span class="token number">1</span><span class="token punctuation">,</span> vin<span class="token punctuation">.</span>size<span class="token operator">=</span><span class="token number">1</span><span class="token punctuation">,</span> vout<span class="token punctuation">.</span>size<span class="token operator">=</span><span class="token number">1</span><span class="token punctuation">,</span> nLockTime<span class="token operator">=</span><span class="token number">0</span><span class="token punctuation">)</span>
  
  <span class="token function">CTxIn</span><span class="token punctuation">(</span><span class="token function">COutPoint</span><span class="token punctuation">(</span><span class="token number">000000</span><span class="token punctuation">,</span> <span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">,</span> coinbase <span class="token number">04ffff</span>001d0104455468652054696d65732030332f4a616e2f32303039204368616e63656c6c6f72206f6e206272696e6b206f66207365636f6e64206261696c6f757420666f722062616e6b73<span class="token punctuation">)</span>
  
  <span class="token function">CTxOut</span><span class="token punctuation">(</span>nValue<span class="token operator">=</span><span class="token number">50.00000000</span><span class="token punctuation">,</span> scriptPubKey<span class="token operator">=</span><span class="token number">0x5F1DF16B2B704C8A578D0B</span><span class="token punctuation">)</span>
  
  vMerkleTree<span class="token operator">:</span> <span class="token number">4</span>a5e1e
  </code></pre><div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br><span class="line-number">10</span><br><span class="line-number">11</span><br><span class="line-number">12</span><br><span class="line-number">13</span><br><span class="line-number">14</span><br><span class="line-number">15</span><br><span class="line-number">16</span><br><span class="line-number">17</span><br><span class="line-number">18</span><br><span class="line-number">19</span><br><span class="line-number">20</span><br><span class="line-number">21</span><br></div></div><p>coinbase \u53C2\u6570(\u770B\u4E0A\u9762\u7684\u5341\u516D\u8FDB\u5236)\u5305\u542B\u4E86\u4EE5\u4E0B\u4E00\u6BB5\u8BDD\uFF1A</p><p><code>The Times 03/Jan/2009 Chancellor on brink of second bailout for banks</code></p><p><a href="http://7fvhfe.com1.z0.glb.clouddn.com/wp-content/uploads/2014/03/221.jpg" target="_blank" rel="noopener noreferrer"><img src="http://7fvhfe.com1.z0.glb.clouddn.com/wp-content/uploads/2014/03/221.jpg" alt="22"></a></p><p>\u200B \u201C2009 \u5E74 1 \u6708 3 \u65E5\uFF0C\u9996\u76F8\u7B2C\u4E8C\u6B21\u5BF9\u5904\u4E8E\u5D29\u6E83\u8FB9\u7F18\u7684\u94F6\u884C\u8FDB\u884C\u7D27\u6025\u6551\u52A9\u201D\uFF0C\u8FD9\u53E5\u8BDD\u6B63\u662F<a href="http://zh.wikipedia.org/wiki/%E6%B3%B0%E6%99%A4%E5%A3%AB%E6%8A%A5" target="_blank" rel="noopener noreferrer">\u6CF0\u6664\u58EB\u62A5</a>\u5F53\u5929\u7684\u5934\u7248\u6587\u7AE0\u6807\u9898\u3002\u8FD9\u5E94\u8BE5\u662F\u4E00\u4E2A\u8BE5\u533A\u5757\u5728 2009 \u5E74 1 \u6708 3 \u65E5\u6216\u4E4B\u540E\u521B\u5EFA\u7684\u4E00\u4E2A\u8BC1\u636E\uFF0C\u540C\u65F6\u4E5F\u662F\u5BF9\u94F6\u884C\u7CFB\u7EDF\u91C7\u7528\u90E8\u5206\u51C6\u5907\u91D1\u5236\u5EA6\u5BFC\u81F4\u4E0D\u7A33\u5B9A\u6027\u7684\u4E00\u4E2A\u8BF4\u660E\u3002</p><p>\u200B \u521B\u4E16\u5757\u7684\u6536\u76CA\u4E0D\u53EF\u80FD\u88AB\u82B1\u6389\uFF0C\u56E0\u4E3A\u521B\u4E16\u5757\u662F\u7528\u4EE3\u7801\u8868\u793A\u7684(\u8FD9\u4E2A\u5DE7\u5408\u53EF\u80FD\u662F\u6545\u610F\u7684)\uFF0C\u5C3D\u7BA1\u5982\u6B64\uFF0C\u5176 50BTC \u6536\u76CA\u8FD8\u662F\u88AB\u53D1\u9001\u5230\u5730\u5740\uFF1A<a href="http://blockexplorer.com/address/1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa" target="_blank" rel="noopener noreferrer">1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa</a>\u3002</p><p>\u200B (\u8BD1\u8005\u6309\uFF1A\u521B\u4E16\u5757\u7684\u6536\u76CA\u82B1\u4E0D\u6389\uFF0C\u539F\u56E0\u5982\u4E0B\uFF1A\u6BD4\u7279\u5E01\u5BA2\u6237\u7AEF\u628A\u533A\u5757\u548C\u4EA4\u6613\u5206\u5F00\u5B58\u8D2E\u5728\u4E24\u4E2A\u6570\u636E\u5E93\u4E2D\uFF0C\u5F53\u5BA2\u6237\u7AEF\u53D1\u73B0\u533A\u5757\u6570\u636E\u5E93\u4E3A\u7A7A\u65F6\uFF0C\u7528\u4EE3\u7801\u76F4\u63A5\u751F\u6210\u4E00\u4E2A\u521B\u4E16\u5757\uFF0C\u4F46\u662F\u6CA1\u6709\u751F\u6210\u8FD9\u4E2A\u4EA4\u6613\uFF0C\u6240\u4EE5\u5BA2\u6237\u7AEF\u4E2D\u7684\u4EA4\u6613\u6570\u636E\u5E93\u4E2D\u662F\u6CA1\u6709\u53D1\u9001\u5230\u4E0A\u8FF0\u5730\u5740\u8FD9\u4E2A\u4EA4\u6613\u7684\uFF0C\u56E0\u800C\u4E00\u65E6\u6536\u5230\u8981\u82B1\u6389\u8BE5\u6536\u76CA\u7684\u4EA4\u6613\u65F6\uFF0C\u90FD\u4F1A\u62D2\u7EDD\uFF0C\u6240\u4EE5\u65E0\u6CD5\u5F97\u5230\u4EFB\u4F55\u786E\u8BA4\uFF0C\u5C31\u82B1\u4E0D\u6389\u8FD9 50 \u4E2A\u5E01\u3002\u51FA\u73B0\u8FD9\u79CD\u60C5\u51B5\u5F88\u53EF\u80FD\u662F\u4E2D\u672C\u806A\u6545\u610F\u7684\u3002)</p><p>\u539F\u59CB\u533A\u5757\u6570\u636E</p><p>\u200B \u521B\u4E16\u5757\u7684\u539F\u59CB\u5341\u516D\u8FDB\u5236\u5982\u4E0B\u6240\u793A\uFF1A</p><div class="language-"><pre><code>00000000   01 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   \u2026\u2026\u2026\u2026\u2026.
  00000010   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   \u2026\u2026\u2026\u2026\u2026.
  00000020   00 00 00 00 3B A3 ED FD  7A 7B 12 B2 7A C7 2C 3E   \u2026.;\xA3\xED\xFDz{.\xB2z\xC7,&gt;
  00000030   67 76 8F 61 7F C8 1B C3  88 8A 51 32 3A9F B8 AA   gv.a.\xC8.\xC3\u02C6\u0160Q2:\u0178\xB8\xAA
  00000040   4B 1E 5E 4A 29 AB 5F 49  FF FF 00 1D 1D AC 2B 7C   K.^J)\xAB_I\xFF\xFF\u2026\xAC+|
  00000050   01 01 00 00 00 01 00 00  00 00 00 00 00 00 00 00   \u2026\u2026\u2026\u2026\u2026.
  00000060   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   \u2026\u2026\u2026\u2026\u2026.
  00000070   00 00 00 00 00 00 FF FF  FF FF 4D 04 FF FF 00 1D   \u2026\u2026\xFF\xFF\xFF\xFFM.\xFF\xFF..
  00000080   01 04 45 54 68 65 20 54  69 6D 65 73 20 30 33 2F   ..EThe Times 03/
  00000090   4A 61 6E 2F 32 30 30 39  20 43 68 61 6E 63 65 6C   Jan/2009 Chancel
  000000A0   6C6F 72 20 6F 6E 20 62  72 69 6E 6B 20 6F 66 20   lor on brink of
  000000B0   73 65 63 6F 6E 64 20 62  61 69 6C6F 75 74 20 66   second bailout f
  000000C0   6F 72 20 62 61 6E 6B 73  FF FF FF FF 01 00 F2 05   or banks\xFF\xFF\xFF\xFF..\xF2.
  000000D0   2A 01 00 00 00 43 41 04  67 8A FD B0 FE 55 48 27   *\u2026.CA.g\u0160\xFD\xB0\xFEUH\u2019
  000000E0   19 67 F1 A6 71 30 B7 10  5C D6 A8 28 E0 39 09 A6   .g\xF1\xA6q0\xB7.\\\xD6\xA8(\xE09.\xA6
  000000F0   79 62 E0 EA 1F 61 DE B6  49 F6 BC 3F4C EF 38 C4   yb\xE0\xEA.a\xDE\xB6I\xF6\xBC?L\xEF8\xC4
  00000100   F3 55 04 E5 1E C1 12 DE  5C 38 4D F7 BA 0B 8D 57   \xF3U.\xE5.\xC1.\xDE\\8M\xF7\xBA..W
  00000110   8A4C 70 2B 6B F1 1D 5F  AC 00 00 00 00            \u0160Lp+k\xF1._\xAC\u2026.
  </code></pre><div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br><span class="line-number">10</span><br><span class="line-number">11</span><br><span class="line-number">12</span><br><span class="line-number">13</span><br><span class="line-number">14</span><br><span class="line-number">15</span><br><span class="line-number">16</span><br><span class="line-number">17</span><br><span class="line-number">18</span><br></div></div><p>\u5206\u5F00\u6765\u770B\uFF0C\u5982\u4E0B\u6240\u793A\uFF1A</p><div class="language-"><pre><code>01000000 \u2013 \u7248\u672C\u53F7
  0000000000000000000000000000000000000000000000000000000000000000 \u2013 prev block
  3BA3EDFD7A7B12B27AC72C3E67768F617FC81BC3888A51323A9FB8AA4B1E5E4A \u2013 merkle root
  29AB5F49 \u2013 \u65F6\u95F4\u6233
  FFFF001D \u2013 \u76EE\u6807HASH\u503C
  1DAC2B7C \u2013 \u968F\u673A\u6570
  01 \u2013 \u4EA4\u6613\u4E2A\u6570
  01000000 \u2013 \u7248\u672C
  01 \u2013 \u8F93\u5165
  0000000000000000000000000000000000000000000000000000000000000000FFFFFFFF \u2013 \u524D\u4E00\u4E2A\u8F93\u51FA
  4D \u2013 \u811A\u672C\u957F\u5EA6
  04FFFF001D0104455468652054696D65732030332F4A616E2F32303039204368616E63656C6C6F72206F6E206272696E6B206F66207365636F6E64206261696C6F757420666F722062616E6B73 \u2013 scriptsig\u811A\u672C
  FFFFFFFF \u2013 \u5E8F\u5217\u53F7
  01 \u2013 \u8F93\u51FA
  00F2052A01000000 \u2013 50 BTC\u7684\u6536\u76CA
  43 \u2013 \u811A\u672CscriptPubKey\u7684\u957F\u5EA6
  4104678AFDB0FE5548271967F1A67130B7105CD6A828E03909A67962E0EA1F61DEB649F6BC3F4CEF38C4F35504E51EC112DE5C384DF7BA0B8D578A4C702B6BF11D5FAC \u2013 \u811A\u672CscriptPubKey
  00000000 \u2013\u9501\u5B9A\u65F6\u95F4
  </code></pre><div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br><span class="line-number">10</span><br><span class="line-number">11</span><br><span class="line-number">12</span><br><span class="line-number">13</span><br><span class="line-number">14</span><br><span class="line-number">15</span><br><span class="line-number">16</span><br><span class="line-number">17</span><br><span class="line-number">18</span><br></div></div><p>JSON \u7248\u672C\u7684\u521B\u4E16\u5757\u5982\u4E0B\u6240\u793A(\u8BD1\u8005\u6309\uFF1AJSON \u8868\u793A\u65B9\u5F0F\u662F\u8BD1\u8005\u52A0\u7684\uFF0C\u65B9\u4FBF\u8BFB\u8005\u5BF9\u7167\u7814\u7A76)\uFF1A</p><div class="language-json line-numbers-mode"><pre><code><span class="token punctuation">{</span>
    <span class="token property">&quot;hash&quot;</span><span class="token operator">:</span> <span class="token string">&quot;000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f&quot;</span><span class="token punctuation">,</span>
    <span class="token property">&quot;ver&quot;</span><span class="token operator">:</span> <span class="token number">1</span><span class="token punctuation">,</span>
    <span class="token property">&quot;prev_block&quot;</span><span class="token operator">:</span> <span class="token string">&quot;0000000000000000000000000000000000000000000000000000000000000000&quot;</span><span class="token punctuation">,</span>
    <span class="token property">&quot;mrkl_root&quot;</span><span class="token operator">:</span> <span class="token string">&quot;4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b&quot;</span><span class="token punctuation">,</span>
    <span class="token property">&quot;time&quot;</span><span class="token operator">:</span> <span class="token number">1231006505</span><span class="token punctuation">,</span>
    <span class="token property">&quot;bits&quot;</span><span class="token operator">:</span> <span class="token number">486604799</span><span class="token punctuation">,</span>
    <span class="token property">&quot;nonce&quot;</span><span class="token operator">:</span> <span class="token number">2083236893</span><span class="token punctuation">,</span>
    <span class="token property">&quot;n_tx&quot;</span><span class="token operator">:</span> <span class="token number">1</span><span class="token punctuation">,</span>
    <span class="token property">&quot;size&quot;</span><span class="token operator">:</span> <span class="token number">285</span><span class="token punctuation">,</span>
    <span class="token property">&quot;tx&quot;</span><span class="token operator">:</span> <span class="token punctuation">[</span>
      <span class="token punctuation">{</span>
        <span class="token property">&quot;hash&quot;</span><span class="token operator">:</span> <span class="token string">&quot;4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b&quot;</span><span class="token punctuation">,</span>
        <span class="token property">&quot;ver&quot;</span><span class="token operator">:</span> <span class="token number">1</span><span class="token punctuation">,</span>
        <span class="token property">&quot;vin_sz&quot;</span><span class="token operator">:</span> <span class="token number">1</span><span class="token punctuation">,</span>
        <span class="token property">&quot;vout_sz&quot;</span><span class="token operator">:</span> <span class="token number">1</span><span class="token punctuation">,</span>
        <span class="token property">&quot;lock_time&quot;</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>
        <span class="token property">&quot;size&quot;</span><span class="token operator">:</span> <span class="token number">204</span><span class="token punctuation">,</span>
        <span class="token property">&quot;in&quot;</span><span class="token operator">:</span> <span class="token punctuation">[</span>
          <span class="token punctuation">{</span>
            <span class="token property">&quot;prev_out&quot;</span><span class="token operator">:</span> <span class="token punctuation">{</span>
              <span class="token property">&quot;hash&quot;</span><span class="token operator">:</span> <span class="token string">&quot;0000000000000000000000000000000000000000000000000000000000000000&quot;</span><span class="token punctuation">,</span>
              <span class="token property">&quot;n&quot;</span><span class="token operator">:</span> <span class="token number">4294967295</span>
            <span class="token punctuation">}</span><span class="token punctuation">,</span>
            <span class="token property">&quot;coinbase&quot;</span><span class="token operator">:</span> <span class="token string">&quot;04ffff001d0104455468652054696d65732030332f4a616e2f32303039204368616e63656c6c6f72206f6e206272696e6b206f66207365636f6e64206261696c6f757420666f722062616e6b73&quot;</span>
          <span class="token punctuation">}</span>
        <span class="token punctuation">]</span><span class="token punctuation">,</span>
        <span class="token property">&quot;out&quot;</span><span class="token operator">:</span> <span class="token punctuation">[</span>
          <span class="token punctuation">{</span>
            <span class="token property">&quot;value&quot;</span><span class="token operator">:</span> <span class="token string">&quot;50.00000000&quot;</span><span class="token punctuation">,</span>
            <span class="token property">&quot;scriptPubKey&quot;</span><span class="token operator">:</span> <span class="token string">&quot;04678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5f OP_CHECKSIG&quot;</span>
          <span class="token punctuation">}</span>
        <span class="token punctuation">]</span>
      <span class="token punctuation">}</span>
    <span class="token punctuation">]</span><span class="token punctuation">,</span>
    <span class="token property">&quot;mrkl_tree&quot;</span><span class="token operator">:</span> <span class="token punctuation">[</span><span class="token string">&quot;4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b&quot;</span><span class="token punctuation">]</span>
  <span class="token punctuation">}</span>
  </code></pre><div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br><span class="line-number">10</span><br><span class="line-number">11</span><br><span class="line-number">12</span><br><span class="line-number">13</span><br><span class="line-number">14</span><br><span class="line-number">15</span><br><span class="line-number">16</span><br><span class="line-number">17</span><br><span class="line-number">18</span><br><span class="line-number">19</span><br><span class="line-number">20</span><br><span class="line-number">21</span><br><span class="line-number">22</span><br><span class="line-number">23</span><br><span class="line-number">24</span><br><span class="line-number">25</span><br><span class="line-number">26</span><br><span class="line-number">27</span><br><span class="line-number">28</span><br><span class="line-number">29</span><br><span class="line-number">30</span><br><span class="line-number">31</span><br><span class="line-number">32</span><br><span class="line-number">33</span><br><span class="line-number">34</span><br><span class="line-number">35</span><br><span class="line-number">36</span><br><span class="line-number">37</span><br></div></div><h2 id="_3-\u5757\u94FE-block-chain" tabindex="-1">3.\u5757\u94FE(Block Chain) <a class="header-anchor" href="#_3-\u5757\u94FE-block-chain" aria-hidden="true" target="_blank" rel="noopener">#</a></h2><p>\u200B \u5757\u94FE\u662F\u6240\u6709<a href="https://en.bitcoin.it/wiki/Node" target="_blank" rel="noopener noreferrer">\u6BD4\u7279\u5E01\u8282\u70B9</a>\u5171\u4EAB\u7684\u4EA4\u6613\u6570\u636E\u5E93\uFF0C\u8FD9\u4E9B\u8282\u70B9\u57FA\u4E8E\u6BD4\u7279\u5E01\u534F\u8BAE\u53C2\u4E0E\u5230\u6BD4\u7279\u5E01\u7F51\u7EDC\u4E2D\u6765\u3002\u5757\u94FE\u5305\u542B\u6BCF\u4E00\u4E2A\u66FE\u5728\u6BD4\u7279\u5E01\u7CFB\u7EDF\u6267\u884C\u8FC7\u7684<a href="https://en.bitcoin.it/wiki/Transaction" target="_blank" rel="noopener noreferrer">\u4EA4\u6613</a>\u3002\u6839\u636E\u8FD9\u4E2A\u4FE1\u606F\uFF0C\u4EBA\u4EEC\u53EF\u4EE5\u627E\u5230\u4EFB\u4F55\u65F6\u5019\u4EFB\u4E00\u4E2A<a href="https://en.bitcoin.it/wiki/Address" target="_blank" rel="noopener noreferrer">\u5730\u5740</a>\u4E2D\u7684\u5E01\u6570\u91CF\uFF0C</p><p>\u200B \u6BCF\u4E2A\u533A\u5757\u5305\u542B\u524D\u4E00\u4E2A\u533A\u5757\u7684<a href="https://en.bitcoin.it/wiki/Hash" target="_blank" rel="noopener noreferrer">HASH</a>\u503C\uFF0C\u8FD9\u5C31\u4F7F\u5F97\u4ECE<a href="https://en.bitcoin.it/wiki/Genesis_block" target="_blank" rel="noopener noreferrer">\u521B\u4E16\u5757</a>\u5230\u5F53\u524D\u5757\u5F62\u6210\u4E86\u4E00\u6761\u5757\u94FE\uFF0C\u6BCF\u4E2A\u533A\u5757\u5FC5\u5B9A\u6309\u65F6\u95F4\u987A\u5E8F\u8DDF\u968F\u5728\u524D\u4E00\u4E2A\u533A\u5757\u4E4B\u540E\uFF0C\u56E0\u4E3A\u5982\u679C\u4E0D\u77E5\u9053\u524D\u4E00\u5757\u533A\u5757\u7684 HASH \u503C\u5C31\u6CA1\u6CD5\u751F\u6210\u5F53\u524D\u533A\u5757\u3002\u8981\u6539\u53D8\u4E00\u4E2A\u5DF2\u7ECF\u5728\u5757\u94FE\u4E2D\u5B58\u5728\u4E00\u6BB5\u65F6\u95F4\u7684\u533A\u5757\uFF0C\u4ECE\u8BA1\u7B97\u4E0A\u6765\u8BF4\u662F\u4E0D\u53EF\u884C\u7684\uFF0C\u56E0\u4E3A\u5982\u679C\u5B83\u88AB\u6539\u53D8\uFF0C\u5B83\u4E4B\u540E\u7684\u6BCF\u4E2A\u533A\u5757\u5FC5\u987B\u968F\u4E4B\u6539\u53D8\u3002\u8FD9\u4E9B\u7279\u6027\u4F7F\u5F97<a href="https://en.bitcoin.it/wiki/Double-spending" target="_blank" rel="noopener noreferrer">\u53CC\u82B1</a>\u6BD4\u7279\u5E01\u975E\u5E38\u56F0\u96BE\uFF0C\u5757\u94FE\u662F\u6BD4\u7279\u5E01\u7684\u6700\u5927\u521B\u65B0\u3002</p><p>\u200B \u5982\u679C\u4E00\u4E2A\u533A\u5757\u662F\u6700\u957F\u5757\u94FE\u7684\u6700\u540E\u4E00\u4E2A\u533A\u5757\uFF0C\u8BDA\u5B9E\u7684\u77FF\u5DE5\u53EA\u4F1A\u5728\u8FD9\u4E2A\u533A\u5757\u57FA\u7840\u751F\u6210\u540E\u7EED\u5757(\u521B\u5EFA\u65B0\u5757\u65F6\u901A\u8FC7\u5F15\u7528\u8BE5\u5757\u6765\u5B9E\u73B0)\u3002\u201C\u957F\u5EA6\u201D\u662F\u88AB\u8BA1\u7B97\u6210\u5757\u94FE\u7684\u6240\u6709\u8054\u5408\u96BE\u5EA6\uFF0C\u800C\u4E0D\u662F\u533A\u5757\u6570\u76EE\uFF0C\u5C3D\u7BA1\u8FD9\u4E2A\u533A\u522B\u4EC5\u4EC5\u5728\u9632\u5FA1\u51E0\u4E2A\u6F5C\u5728\u653B\u51FB\u65F6\u6709\u7528\u3002\u5982\u679C\u4E00\u4E2A\u5757\u94FE\u4E2D\u7684\u6240\u6709\u533A\u5757\u548C\u4EA4\u6613\u6709\u6548\uFF0C\u5219\u8BE5\u5757\u94FE\u6709\u6548\uFF0C\u5E76\u4E14\u8981\u4EE5\u521B\u4E16\u5757\u5F00\u5934\u3002</p><p>\u200B \u5BF9\u4E8E\u5757\u94FE\u4E2D\u7684\u4EFB\u4F55\u533A\u5757\u6765\u8BF4\uFF0C\u53EA\u6709\u4E00\u6761\u901A\u5411\u521B\u4E16\u5757\u7684\u8DEF\u5F84\u3002\u7136\u800C\uFF0C\u4ECE\u521B\u4E16\u5757\u51FA\u53D1\uFF0C\u5374\u53EF\u80FD\u6709\u5206\u53C9\u3002\u5F53\u4E24\u4E2A\u533A\u5757\u4EA7\u751F\u7684\u65F6\u95F4\u4EC5\u76F8\u5DEE\u51E0\u79D2\u65F6\uFF0C\u53EF\u80FD\u4F1A\u4EA7\u751F\u5305\u542B\u4E00\u4E2A\u533A\u5757\u7684\u5206\u53C9\u3002\u5F53\u4EE5\u4E0A\u73B0\u8C61\u51FA\u73B0\u65F6\uFF0C\u77FF\u5DE5\u8282\u70B9\u4F1A\u6839\u636E\u6536\u5230\u533A\u5757\u7684\u65F6\u95F4\uFF0C\u5728\u5148\u6536\u5230\u7684\u533A\u5757\u57FA\u7840\u4E0A\u7EE7\u7EED\u6316\u77FF\u3002\u54EA\u4E2A\u533A\u5757\u7684\u540E\u7EED\u533A\u5757\u5148\u51FA\u73B0\uFF0C\u8FD9\u4E2A\u533A\u5757\u5C31\u88AB\u5305\u62EC\u8FDB\u4E3B\u94FE\uFF0C\u56E0\u4E3A\u8FD9\u6761\u5757\u94FE\u66F4\u957F\u3002\u5728\u4FEE\u6B63\u9700\u8981\u5411\u540E\u517C\u5BB9\u7684\u7A0B\u5E8F BUG \u540E\uFF0C\u51FA\u73B0\u8FC7\u66F4\u4E25\u91CD\u7684\u5206\u53C9\u3002</p><p>\u200B \u77ED\u5757\u94FE(\u6216\u6709\u6548\u5757\u94FE)\u4E2D\u7684\u533A\u5757\u6CA1\u6709\u4F5C\u7528\uFF0C\u5F53\u6BD4\u7279\u5E01\u5BA2\u6237\u7AEF\u8F6C\u5411\u53E6\u4E00\u4E2A\u957F\u5757\u94FE\u65F6\uFF0C\u77ED\u5757\u94FE\u4E2D\u6240\u6709\u6709\u6548\u7684\u4EA4\u6613\u5C06\u88AB\u91CD\u65B0\u52A0\u5165\u5230\u4EA4\u6613\u961F\u5217\u6C60\u4E2D\uFF0C\u5C06\u88AB\u5305\u62EC\u4E2D\u53E6\u4E00\u4E2A\u5757\u4E2D\u3002\u77ED\u5757\u94FE\u4E2D\u7684\u533A\u5757\u6536\u76CA\u4E0D\u4F1A\u5728\u957F\u94FE\u4E2D\u51FA\u73B0\uFF0C\u56E0\u800C\u8FD9\u4E9B\u6536\u76CA\u5B9E\u9645\u4E0A\u662F\u4E22\u5931\u4E86\uFF0C\u8FD9\u5C31\u662F\u6BD4\u7279\u5E01\u7F51\u7EDC\u5F3A\u5316\u7684 100 \u4E2A\u533A\u5757\u6210\u719F\u65F6\u95F4\u7684\u5B58\u5728\u539F\u56E0\u3002</p><p>\u200B \u5728\u77ED\u5757\u94FE\u4E2D\u7684\u533A\u5757\u7ECF\u5E38\u88AB\u79F0\u4E3A\u201C\u5B64\u7ACB\u201D\u533A\u5757\uFF0C\u8FD9\u662F\u56E0\u4E3A\u5728\u957F\u5757\u94FE\u4E2D\u7684\u751F\u4EA7\u4EA4\u6613\u6CA1\u6709\u7236\u533A\u5757\uFF0C\u56E0\u800C\u8FD9\u4E9B\u751F\u4EA7\u4EA4\u6613\u5728\u4EA4\u6613\u5217\u8868\u7684 RPC \u8C03\u7528\u4E2D\u8868\u73B0\u4E3A\u5B64\u7ACB\u3002\u51E0\u4E2A\u77FF\u6C60\u8BEF\u89E3\u4E86\u8FD9\u4E9B\u4FE1\u606F\u5E76\u4E14\u628A\u8FD9\u4E9B\u533A\u5757\u53EB\u4F5C\u201C\u5B64\u513F\u201D\uFF0C\u4E8B\u5B9E\u4E0A\u8FD9\u4E9B\u533A\u5757\u90FD\u6709\u7236\u533A\u5757\uFF0C\u53EF\u80FD\u8FD8\u6709\u5B50\u533A\u5757\u3002</p><p>\u200B \u56E0\u4E3A\u4E00\u4E2A\u533A\u5757\u53EA\u80FD\u5F15\u7528\u4E00\u4E2A\u7236\u533A\u5757\uFF0C\u56E0\u800C\u4E0D\u53EF\u80FD\u628A\u4E24\u4E2A\u5DF2\u7ECF\u5206\u53C9\u7684\u5757\u94FE\u5408\u5E76\u3002</p><p>\u200B \u53EF\u4EE5\u628A\u5757\u94FE\u7B97\u6CD5\u7528\u4E8E\u975E\u91D1\u878D\u76EE\u7684\uFF0C\u8BF7\u770B\uFF1A<a href="https://en.bitcoin.it/wiki/Alternative_chain" target="_blank" rel="noopener noreferrer">\u5C71\u5BE8\u5757\u94FE</a> <a href="https://en.bitcoin.it/wiki/Alternative_chain" target="_blank" rel="noopener noreferrer">https://en.bitcoin.it/wiki/Alternative_chain</a>\u3002</p><p>\u200B \u5757\u94FE\u4EE5\u6D2A\u6C34\u534F\u8BAE\u88AB\u5E7F\u64AD\u5230\u7F51\u7EDC\u4E0A\u7684\u6240\u6709\u8282\u70B9\uFF0C\u8BF7\u770B\uFF1A<a href="https://en.bitcoin.it/wiki/Block_chain_download" target="_blank" rel="noopener noreferrer">\u5757\u94FE\u4E0B\u8F7D</a></p><p>\u200B \u8BD1\u8005\u6309\uFF1A\u533A\u5757\u6210\u719F\u65F6\u95F4(Maturation Time)\uFF0C\u662F\u6307\u77FF\u5DE5\u4EA7\u751F\u4E00\u4E2A\u65B0\u533A\u5757\u5F97\u5230 25BTC \u6536\u76CA\u540E\uFF0C\u8981\u7B49\u8FC7\u4E86 100 \u4E2A\u5757\u540E\uFF0C\u624D\u80FD\u4F7F\u7528\u8FD9\u4E9B\u5E01\uFF1B\u8FD9\u4E2A 100 \u533A\u5757\u65F6\u95F4\uFF0C\u5373\u6536\u5230 100 \u4E2A\u786E\u8BA4\u7684\u65F6\u95F4\uFF0C\u5C31\u662F\u533A\u5757\u6210\u719F\u65F6\u95F4\u3002\u4E3A\u4EC0\u4E48\u8981\u8BBE\u8FD9\u4E2A\u65F6\u95F4\uFF1F\u5982\u679C\u8FD9\u4E2A\u533A\u5757\u5728\u5206\u53C9\u65F6\u53D8\u6210\u4E86\u5B64\u7ACB\u533A\u5757\uFF0C25 \u4E2A BTC \u7684\u6536\u76CA\u5C06\u6D88\u5931\uFF0C\u5982\u679C\u77FF\u5DE5\u6316\u5230\u6BD4\u7279\u5E01\u540E\u53EF\u4EE5\u9A6C\u4E0A\u82B1\u6389\uFF0C\u5C31\u4F1A\u9020\u6210\u540E\u7EED\u7684\u4E00\u7CFB\u5217\u63A5\u6536\u8005\u635F\u5931\u6BD4\u7279\u5E01\uFF0C\u56E0\u800C\u8BBE\u5B9A\u4E86 100 \u4E2A\u786E\u8BA4\u7684\u9650\u5236\uFF0C\u5728\u8FD9\u4E4B\u540E\u4EA7\u751F\u5206\u53C9\u7684\u53EF\u80FD\u6027\u975E\u5E38\u5C0F\uFF0C\u5373\u4F7F\u4EA7\u751F\u5206\u53C9\uFF0C\u4E5F\u53EA\u4F1A\u5F71\u54CD\u77FF\u5DE5\u6536\u76CA\uFF0C\u4E0D\u4F1A\u5F71\u54CD\u5230\u5176\u4ED6\u4EBA\u3002</p><h2 id="_4-\u533A\u5757-hash-\u7B97\u6CD5-block-hashing-algorithm" tabindex="-1">4.\u533A\u5757 HASH \u7B97\u6CD5(Block hashing Algorithm) <a class="header-anchor" href="#_4-\u533A\u5757-hash-\u7B97\u6CD5-block-hashing-algorithm" aria-hidden="true" target="_blank" rel="noopener">#</a></h2><p>\u5F53\u6316\u77FF\u65F6\uFF0C\u4F60\u4F1A\u7ECF\u5E38\u5BF9\u533A\u5757\u5934\u8FDB\u884C HASH\uFF0C\u4F60\u6B63\u5728\u6316\u7684\u533A\u5757\u4E5F\u4F1A\u65F6\u5E38\u66F4\u65B0\uFF0C\u4E00\u4E2A\u533A\u57DF\u5934\u5305\u542B\u4EE5\u4E0B\u6570\u636E\u9879\uFF1A</p><table><thead><tr><th><strong>\u6570\u636E\u9879****</strong></th><th><strong>\u76EE\u7684</strong></th><th><strong>\u66F4\u65B0\u65F6\u95F4****</strong></th><th><strong>\u5927\u5C0F****</strong></th></tr></thead><tbody><tr><td>Version \u7248\u672C</td><td>\u533A\u57DF\u7248\u672C\u53F7</td><td>\u66F4\u65B0\u8F6F\u4EF6\u540E\uFF0C\u5B83\u6307\u5B9A\u4E86\u4E00\u4E2A\u65B0\u7248\u672C\u53F7</td><td>4</td></tr><tr><td>hashPrevBlock \u524D\u4E00\u533A\u5757\u7684 HASH</td><td>\u524D\u4E00\u533A\u5757\u7684 256 \u4F4D HASH \u503C</td><td>\u65B0\u7684\u533A\u5757\u8FDB\u6765\u65F6</td><td>32</td></tr><tr><td>hashMerkleRoot<a href="https://en.bitcoin.it/wiki/Protocol_specification" target="_blank" rel="noopener noreferrer">Merkele \u6839\u8282\u70B9</a>HASH \u503C</td><td>\u57FA\u4E8E\u4E00\u4E2A\u533A\u5757\u4E2D\u6240\u6709\u4EA4\u6613\u7684 256 \u4F4D HASH \u503C\u3002</td><td>\u63A5\u53D7\u4E00\u4E2A\u4EA4\u6613\u65F6</td><td>32</td></tr><tr><td>Time \u65F6\u95F4\u6233</td><td>\u4ECE 1970-01-01 00:00 UTC \u5F00\u59CB\u5230\u73B0\u5728\uFF0C\u4EE5\u79D2\u4E3A\u5355\u4F4D\u7684\u5F53\u524D\u65F6\u95F4\u6233</td><td>\u6BCF\u51E0\u79D2\u5C31\u66F4\u65B0</td><td>4</td></tr><tr><td>Bits \u5F53\u524D\u76EE\u6807 HASH \u503C</td><td>\u538B\u7F29\u683C\u5F0F\u7684\u5F53\u524D<a href="https://en.bitcoin.it/wiki/Target" target="_blank" rel="noopener noreferrer">\u76EE\u6807 HASH \u503C</a></td><td>\u5F53<a href="https://en.bitcoin.it/wiki/Difficulty" target="_blank" rel="noopener noreferrer">\u6316\u77FF\u96BE\u5EA6</a>\u8C03\u6574\u65F6</td><td>4</td></tr><tr><td>Nonce \u968F\u673A\u6570</td><td>\u4ECE 0 \u5F00\u59CB\u7684 32 \u4F4D\u968F\u673A</td><td>\u4EA7\u751F HASH \u65F6 A (\u6BCF\u6B21\u4EA7\u751F HASH \u968F\u673A\u6570\u8981\u589E\u957F)</td><td>4</td></tr></tbody></table><p>\u200B \u533A\u5757\u5185\u5305\u542B\u8BB8\u591A\u4EA4\u6613\uFF0C\u5B83\u4EEC\u901A\u8FC7 Merkle \u6839\u8282\u70B9\u95F4\u63A5\u88AB HASH\uFF0C\u56E0\u4E3A\u6240\u6709\u4EA4\u6613\u4E0D\u53EF\u80FD\u76F4\u63A5\u88AB HASH\uFF0CHASH \u5305\u542B\u4E00\u4E2A\u4EA4\u6613\u7684\u533A\u5757\u6240\u82B1\u7684\u65F6\u95F4\uFF0C\u548C HASH \u5305\u542B 1 \u4E07\u4E2A\u4EA4\u6613\u7684\u533A\u5757\u4E00\u6837\u3002</p><p>\u200B \u76EE\u6807 HASH \u503C\u7684\u538B\u7F29\u683C\u5F0F\u662F\u4E00\u4E2A\u7279\u6B8A\u7684\u6D6E\u70B9\u7F16\u7801\u7C7B\u578B\uFF0C\u9996\u5B57\u8282\u662F\u6307\u6570(\u4EC5\u4F7F\u7528\u4E86 5 \u4E2A\u6700\u4F4E\u4F4D)\uFF0C\u540E 3 \u4E2A\u5B57\u8282\u662F\u5C3E\u6570\uFF0C\u5B83\u80FD\u8868\u793A 256 \u4F4D\u7684\u6570\u503C\u3002\u4E00\u4E2A\u533A\u5757\u5934\u7684 SHA256 \u503C\u5FC5\u5B9A\u8981\u5C0F\u4E8E\u6216\u7B49\u4E8E\u76EE\u6807 HASH \u503C\uFF0C\u8BE5\u533A\u5757\u624D\u80FD\u88AB\u7F51\u7EDC\u6240\u63A5\u53D7\uFF0C\u76EE\u6807 HASH \u8D8A\u4F4E\uFF0C\u4EA7\u751F\u4E00\u4E2A\u65B0\u533A\u5757\u7684\u96BE\u5EA6\u8D8A\u5927\u3002</p><p>\u200B \u4E0A\u8FF0\u5927\u90E8\u5206\u6570\u636E\u9879\u5BF9\u6240\u6709\u7528\u6237\u662F\u4E00\u81F4\u7684\uFF0C\u53EF\u80FD\u5728\u65F6\u95F4\u6233\u4E0A\u6709\u4E9B\u533A\u522B\u3002(\u8BD1\u8005\u6309\uFF1A\u8BE5\u6BB5\u7684\u4EE5\u4E0B\u5185\u5BB9\u6765\u81EA\uFF1A)\u5982\u679C\u5F53\u524D\u533A\u5757\u7684\u65F6\u95F4\u6233\u5927\u4E8E\u524D 11 \u4E2A\u533A\u5757\u7684\u7684\u5E73\u5747\u65F6\u95F4\u6233\uFF0C\u5E76\u4E14\u5C0F\u4E8E\u201C\u7F51\u7EDC\u8C03\u6574\u65F6\u95F4(Network-Adjusted Time)\u201D+2 \u5C0F\u65F6\uFF0C\u5219\u8BA4\u4E3A\u8BE5\u65F6\u95F4\u6233\u662F\u6709\u6548\u7684\u3002\u5176\u4E2D\u7684\u201C\u7F51\u7EDC\u8C03\u6574\u65F6\u95F4\u201D\u662F\u6307\u4E0E\u4F60\u76F8\u8FDE\u63A5\u7684\u6240\u6709\u8282\u70B9\u7684\u5E73\u5747\u65F6\u95F4\u3002\u5F53\u8282\u70B9 A \u8FDE\u63A5\u5230\u8282\u70B9 B \u65F6\uFF0CA \u4ECE B \u5904\u5F97\u5230\u4E00\u4E2A UTC \u6807\u51C6\u7684\u65F6\u95F4\u6233\uFF0CA \u5148\u8F6C\u6362\u6210\u672C\u5730 UTC \u6807\u51C6\u65F6\u95F4\u4FDD\u5B58\u8D77\u6765\uFF0C\u7F51\u7EDC\u8C03\u6574\u65F6\u95F4\u7B49\u4E8E\u6240\u6709\u8282\u70B9\u7684\u672C\u5730 UTC \u65F6\u95F4+\u6240\u6709\u76F8\u8FDE\u8282\u70B9\u7684\u504F\u79FB\u91CF\u5E73\u5747\u503C\uFF0C\u7136\u800C\uFF0C\u8BE5\u7F51\u7EDC\u65F6\u95F4\u6C38\u8FDC\u4E0D\u4F1A\u8C03\u6574\u5230\u8D85\u8FC7\u672C\u5730\u7CFB\u7EDF\u65F6\u95F4 70 \u5206\u949F\u4EE5\u4E0A\u3002</p><p>\u200B Nonce \u968F\u673A\u6570\u901A\u5E38\u4E0D\u540C\uFF0C\u4F46\u662F\u5B83\u4EE5\u4E25\u683C\u7684\u7EBF\u6027\u65B9\u5F0F\u589E\u957F\uFF0C\u4ECE 0 \u5F00\u59CB\uFF0C\u6BCF\u6B21 HASH \u65F6\u90FD\u4F1A\u589E\u957F\uFF0C\u5F53 Nonce \u6EA2\u51FA\u65F6(\u6B64\u4E8B\u7ECF\u5E38\u53D1\u751F)\uFF0C\u751F\u4EA7\u4EA4\u6613\u7684 extraNonce \u9879\u4F1A\u589E\u957F\uFF0C\u5C06\u6539\u53D8 Merkle \u6811\u7684\u6839\u8282\u70B9\u3002</p><p>\u200B \u5047\u5B9A\u9488\u5BF9\u8FD9\u4E9B\u6570\u636E\u9879\uFF0C\u4EBA\u4EEC\u7ECF\u5E38\u4F1A\u72EC\u81EA\u4EA7\u751F\u540C\u6837\u5E8F\u5217\u53F7\u7684 HASH \u503C\uFF0C\u6700\u5FEB\u7684 CPU \u901A\u5E38\u4F1A\u8D62\u3002\u7136\u800C\uFF0C\u4E24\u4EBA\u4EA7\u751F\u540C\u6837\u7684 Merkle \u6839\u8282\u70B9\u57FA\u672C\u662F(\u6216\u8FD1\u4F3C)\u4E0D\u53EF\u80FD\u7684\uFF0C\u56E0\u4E3A\u533A\u5757\u4E2D\u7684\u7B2C\u4E00\u4E2A\u4EA4\u6613\u662F\u751F\u4EA7\u4EA4\u6613\u5E76\u4E14\u201C\u53D1\u9001\u201D\u5230\u4F60\u7684\u72EC\u4E00\u65E0\u4E8C\u7684\u6BD4\u7279\u5E01\u5730\u5740\u3002\u56E0\u4E3A\u4F60\u7684\u533A\u5757\u4E0E\u5176\u4ED6\u4EBA\u7684\u533A\u5757\u4E0D\u540C\uFF0C\u4EA7\u751F\u7684 HASH \u4E5F\u80AF\u5B9A(\u8FD1\u4F3C\u80AF\u5B9A)\u4E0D\u540C\uFF0C\u4F60\u8BA1\u7B97\u7684\u6BCF\u4E2A HASH \u548C\u7F51\u7EDC\u4E2D\u7684\u5176\u4ED6\u4EBA\u4E00\u6837\uFF0C\u90FD\u6709\u540C\u6837\u7684\u83B7\u80DC\u673A\u4F1A\u3002</p><p>\u200B \u6BD4\u7279\u5E01\u4F7F\u7528\uFF1ASHA256(SHA256(\u533A\u5757\u5934))\u8BA1\u7B97 HASH\uFF0C\u4F46\u4F60\u8981\u6CE8\u610F\u5B57\u8282\u5E8F\u3002</p><p>\u200B \u4F8B\u5982\uFF1A\u4EE5\u4E0B python \u4EE3\u7801\u7528\u4E8E\u8BA1\u7B97\u67D0\u4E00\u533A\u5757\u7684 HASH \u503C\uFF0C\u4F7F\u7528 2011 \u5E74 6 \u6708\u7684\u533A\u5757\u53F7 125552 \u7684\u6700\u5C0F HASH \u503C\u3002\u8BE5\u533A\u5757\u5934\u5EFA\u7ACB\u4E0A\u8FF0 6 \u4E2A\u6570\u636E\u9879\u4E4B\u4E0A\uFF0C\u5E76\u4E14\u4EE5\u5341\u516D\u8FDB\u5236\u7684\u5C0F\u7AEF\u7ED3\u5C3E\u65B9\u5F0F\u8FDE\u63A5\u5728\u4E00\u8D77\u3002</p><div class="language-python line-numbers-mode"><pre><code><span class="token operator">&gt;&gt;</span><span class="token operator">&gt;</span> <span class="token keyword">import</span> hashlib
  <span class="token operator">&gt;&gt;</span><span class="token operator">&gt;</span> header_hex <span class="token operator">=</span> <span class="token punctuation">(</span>\u201C<span class="token number">01000000</span>\u2033 <span class="token operator">+</span>
  \u201C81cd02ab7e569e8bcd9317e2fe99f2de44d49ab2b8851ba4a308000000000000\u2033 <span class="token operator">+</span>
  \u201Ce320b6c2fffc8d750423db8b1eb942ae710e951ed797f7affc8892b0f1fc122b\u201D <span class="token operator">+</span>
  \u201Cc7f5d74d\u201D <span class="token operator">+</span>
  \u201Cf2b9441a\u201D <span class="token operator">+</span>
  \u201C42a14695\u2033<span class="token punctuation">)</span>
  <span class="token operator">&gt;&gt;</span><span class="token operator">&gt;</span> header_bin <span class="token operator">=</span> header_hex<span class="token punctuation">.</span>decode<span class="token punctuation">(</span>\u2018<span class="token builtin">hex</span>\u2019<span class="token punctuation">)</span>
  <span class="token operator">&gt;&gt;</span><span class="token operator">&gt;</span> <span class="token builtin">hash</span> <span class="token operator">=</span> hashlib<span class="token punctuation">.</span>sha256<span class="token punctuation">(</span>hashlib<span class="token punctuation">.</span>sha256<span class="token punctuation">(</span>header_bin<span class="token punctuation">)</span><span class="token punctuation">.</span>digest<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">.</span>digest<span class="token punctuation">(</span><span class="token punctuation">)</span>
  <span class="token operator">&gt;&gt;</span><span class="token operator">&gt;</span> <span class="token builtin">hash</span><span class="token punctuation">.</span>encode<span class="token punctuation">(</span>\u2018hex_codec\u2019<span class="token punctuation">)</span>
  \u20191dbd981fe6985776b644b173a4d0385ddc1aa2a829688d1e0000000000000000\u2032
  <span class="token operator">&gt;&gt;</span><span class="token operator">&gt;</span> <span class="token builtin">hash</span><span class="token punctuation">[</span><span class="token punctuation">:</span><span class="token punctuation">:</span><span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token punctuation">.</span>encode<span class="token punctuation">(</span>\u2018hex_codec\u2019<span class="token punctuation">)</span>
  \u201900000000000000001e8d6829a8a21adc5d38d0a473b144b6765798e61f98bd1d\u2019
  </code></pre><div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br><span class="line-number">10</span><br><span class="line-number">11</span><br><span class="line-number">12</span><br><span class="line-number">13</span><br></div></div><p>\u200B \u6CE8\u610F\uFF1A\u5B9E\u9645\u7684 HASH \u503C\u662F\u4E00\u4E32 256 \u4F4D\u7684\u6570\u503C\uFF0C\u9996\u90E8\u6709\u8BB8\u591A\u96F6\u3002\u5F53\u4EE5\u5927\u5934\u7AEF\u5341\u516D\u8FDB\u5236\u5E38\u6570\u65B9\u5F0F\u6253\u5370\u6216\u5B58\u8D2E\u65F6\uFF0C\u5B83\u7684\u9996\u90E8\u6709\u8BB8\u591A\u96F6\uFF1B\u5982\u679C\u5B83\u4EE5\u5C0F\u5934\u7AEF\u6253\u5370\u6216\u5B58\u8D2E\uFF0C\u96F6\u5C31\u4F1A\u53D8\u6362\u5230\u5C3E\u90E8\u3002\u4F8B\u5982\uFF1A\u5982\u679C\u8868\u793A\u6210\u5B57\u8282\u4E32-\u6700\u4F4E(\u6216\u8005\u5F00\u5934)\u7684\u5B57\u8282\u4E32\u5730\u5740\u663E\u793A\u6700\u5C0F\u4F4D\u7684\u6570\uFF0C\u8FD9\u6837\u5C31\u662F\u5C0F\u5934\u7AEF\u8868\u793A\u3002<a href="http://blockexplorer.com/" target="_blank" rel="noopener noreferrer">blockexplorer</a>\u7684\u8F93\u51FA\u628A HASH \u503C\u663E\u793A\u4E3A\u5927\u5934\u7AEF\u8868\u793A\u7684\u6570\u503C\uFF0C\u56E0\u4E3A\u6570\u5B57\u7684\u8868\u793A\u901A\u5E38\u662F-\u9996\u90E8\u6570\u5B57\u662F\u6700\u5927\u6570\u5B57\uFF0C\u4ECE\u5DE6\u5411\u53F3\u8BFB\u3002</p><p>\u4E3E\u53E6\u5916\u4E00\u4E2A\u4F8B\u5B50\uFF1A<a href="http://pastebin.com/bW3fQA2a" target="_blank" rel="noopener noreferrer">\u8FD9\u513F</a>\u662F\u7EAF C \u7248\u672C\uFF0C\u672A\u8FDB\u884C\u4EFB\u4F55\u4F18\u5316\u3001\u7EBF\u7A0B\u5316\u548C\u9519\u8BEF\u68C0\u67E5\u3002</p><p>\u4EE5\u4E0B\u662F\u540C\u6837\u7684\u4F8B\u5B50\uFF0C\u7528 PHP \u5199\uFF0C\u6CA1\u6709\u4EFB\u4F55\u4F18\u5316\u3002</p><div class="language-php line-numbers-mode"><pre><code><span class="token php language-php"><span class="token delimiter important">&lt;?</span>
  <span class="token comment">//This reverses and then swaps every other char</span>
  <span class="token keyword">function</span> <span class="token function-definition function">SwapOrder</span><span class="token punctuation">(</span><span class="token variable">$in</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
    <span class="token variable">$Split</span> <span class="token operator">=</span> <span class="token function">str_split</span><span class="token punctuation">(</span><span class="token function">strrev</span><span class="token punctuation">(</span><span class="token variable">$in</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token variable">$x</span><span class="token operator">=</span><span class="token punctuation">;</span>
    <span class="token keyword">for</span> <span class="token punctuation">(</span><span class="token variable">$i</span> <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span> <span class="token variable">$i</span> <span class="token operator">&lt;</span> <span class="token function">count</span><span class="token punctuation">(</span><span class="token variable">$Split</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$i</span><span class="token operator">+=</span><span class="token number">2</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
     <span class="token variable">$x</span> <span class="token operator">.=</span> <span class="token variable">$Split</span><span class="token punctuation">[</span><span class="token variable">$i</span><span class="token operator">+</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token operator">.</span><span class="token variable">$Split</span><span class="token punctuation">[</span><span class="token variable">$i</span><span class="token punctuation">]</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span>
    <span class="token keyword">return</span> <span class="token variable">$x</span><span class="token punctuation">;</span>
  <span class="token punctuation">}</span>
  
  <span class="token comment">//makes the littleEndian</span>
  <span class="token keyword">function</span> <span class="token function-definition function">littleEndian</span><span class="token punctuation">(</span><span class="token variable">$value</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
   <span class="token keyword">return</span> <span class="token function">implode</span> <span class="token punctuation">(</span><span class="token function">unpack</span><span class="token punctuation">(</span>\u2018<span class="token constant">H</span><span class="token operator">*</span>\u2019<span class="token punctuation">,</span><span class="token function">pack</span><span class="token punctuation">(</span>\u201C<span class="token constant">V</span><span class="token operator">*</span>\u201D<span class="token punctuation">,</span><span class="token variable">$value</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
  <span class="token punctuation">}</span>
  
  <span class="token variable">$version</span> <span class="token operator">=</span> <span class="token function">littleEndian</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
  <span class="token variable">$prevBlockHash</span> <span class="token operator">=</span> <span class="token function">SwapOrder</span><span class="token punctuation">(</span>\u2019<span class="token number">00000000000008</span>a3a41b85b8b29ad444def299fee21793cd8b9e567eab02cd81\u2032<span class="token punctuation">)</span><span class="token punctuation">;</span>
  <span class="token variable">$rootHash</span> <span class="token operator">=</span> <span class="token function">SwapOrder</span><span class="token punctuation">(</span>\u2019<span class="token number">2</span>b12fcf1b09288fcaff797d71e950e71ae42b91e8bdb2304758dfcffc2b620e3\u2032<span class="token punctuation">)</span><span class="token punctuation">;</span>
  <span class="token variable">$time</span> <span class="token operator">=</span> <span class="token function">littleEndian</span><span class="token punctuation">(</span><span class="token number">1305998791</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
  <span class="token variable">$bits</span> <span class="token operator">=</span><span class="token function">littleEndian</span><span class="token punctuation">(</span> <span class="token number">440711666</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
  <span class="token variable">$nonce</span> <span class="token operator">=</span> <span class="token function">littleEndian</span><span class="token punctuation">(</span><span class="token number">2504433986</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
  
  <span class="token comment">//concat it all</span>
  <span class="token variable">$header_hex</span> <span class="token operator">=</span> <span class="token variable">$version</span> <span class="token operator">.</span> <span class="token variable">$prevBlockHash</span> <span class="token operator">.</span> <span class="token variable">$rootHash</span> <span class="token operator">.</span> <span class="token variable">$time</span> <span class="token operator">.</span> <span class="token variable">$bits</span> <span class="token operator">.</span> <span class="token variable">$nonce</span><span class="token punctuation">;</span>
  <span class="token comment">//convert from hex to binary</span>
  <span class="token variable">$header_bin</span>  <span class="token operator">=</span> <span class="token function">hex2bin</span><span class="token punctuation">(</span><span class="token variable">$header_hex</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
  <span class="token comment">//hash it then convert from hex to binary</span>
  <span class="token variable">$pass1</span> <span class="token operator">=</span> <span class="token function">hex2bin</span><span class="token punctuation">(</span>  <span class="token function">hash</span><span class="token punctuation">(</span>\u2018sha256\u2032<span class="token punctuation">,</span> <span class="token variable">$header_bin</span> <span class="token punctuation">)</span>  <span class="token punctuation">)</span><span class="token punctuation">;</span>
  <span class="token comment">//Hash it for the seconded time</span>
  <span class="token variable">$pass2</span> <span class="token operator">=</span> <span class="token function">hash</span><span class="token punctuation">(</span>\u2018sha256\u2032<span class="token punctuation">,</span> <span class="token variable">$pass1</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
  <span class="token comment">//fix the order</span>
  <span class="token variable">$FinalHash</span> <span class="token operator">=</span> <span class="token function">SwapOrder</span><span class="token punctuation">(</span><span class="token variable">$pass2</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
  
  <span class="token keyword">echo</span>   <span class="token variable">$FinalHash</span><span class="token punctuation">;</span>
  <span class="token delimiter important">?&gt;</span></span>
  </code></pre><div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br><span class="line-number">10</span><br><span class="line-number">11</span><br><span class="line-number">12</span><br><span class="line-number">13</span><br><span class="line-number">14</span><br><span class="line-number">15</span><br><span class="line-number">16</span><br><span class="line-number">17</span><br><span class="line-number">18</span><br><span class="line-number">19</span><br><span class="line-number">20</span><br><span class="line-number">21</span><br><span class="line-number">22</span><br><span class="line-number">23</span><br><span class="line-number">24</span><br><span class="line-number">25</span><br><span class="line-number">26</span><br><span class="line-number">27</span><br><span class="line-number">28</span><br><span class="line-number">29</span><br><span class="line-number">30</span><br><span class="line-number">31</span><br><span class="line-number">32</span><br><span class="line-number">33</span><br><span class="line-number">34</span><br><span class="line-number">35</span><br><span class="line-number">36</span><br></div></div><h2 id="_5-\u96BE\u5EA6-difficulty" tabindex="-1">5.\u96BE\u5EA6(Difficulty) <a class="header-anchor" href="#_5-\u96BE\u5EA6-difficulty" aria-hidden="true" target="_blank" rel="noopener">#</a></h2><p>\u200B \u96BE\u5EA6\u662F\u5BF9\u6316\u77FF\u56F0\u96BE\u7A0B\u5EA6\u7684\u5EA6\u91CF\uFF0C\u5373\u6307\uFF1A\u8BA1\u7B97\u7B26\u5408\u7ED9\u5B9A\u76EE\u6807\u7684\u4E00\u4E2A HASH \u503C\u7684\u56F0\u96BE\u7A0B\u5EA6\u3002\u6BD4\u7279\u5E01\u7F51\u7EDC\u6709\u4E00\u4E2A\u5168\u5C40\u7684\u533A\u5757\u96BE\u5EA6\uFF0C\u6709\u6548\u7684\u533A\u57DF\u5FC5\u987B\u6709\u4E00\u4E2A HASH \u503C\uFF0C\u8BE5 HASH \u503C\u5FC5\u987B\u5C0F\u4E8E\u7ED9\u5B9A\u7684\u76EE\u6807 HASH\u3002\u77FF\u6C60\u4E5F\u4F1A\u6709\u4E00\u4E2A\u81EA\u5B9A\u4E49\u7684\u5171\u4EAB\u96BE\u5EA6\u7528\u6765\u8BBE\u5B9A\u4EA7\u751F\u80A1\u4EFD\u7684\u6700\u4F4E\u96BE\u5EA6\u9650\u5236\u3002</p><p>\u200B \u96BE\u5EA6\u6BCF\u8FC7 2016 \u5757\u6539\u53D8\u4E00\u6B21\uFF0C\u8BA1\u7B97\u516C\u5F0F\uFF1A<code>difficulty = difficulty_1_target / current_target</code>\u3002\u76EE\u6807(target)\u662F\u4E00\u4E2A 256 \u4F4D\u957F\u7684\u6570\u503C\u3002</p><p>\u200B \u6709\u8BB8\u591A\u4E0D\u540C\u6D4B\u91CF\u96BE\u5EA6\u7684\u65B9\u6CD5\uFF0C\u5F97\u5230\u7684 difficulty_1_target \u53EF\u80FD\u4E0D\u540C\u3002\u4F20\u7EDF\u5730\uFF0C\u5B83\u8868\u793A\u4E00\u4E2A HASH \u503C\uFF0C\u524D 32 \u4F4D\u4E3A 0\uFF0C\u540E\u7EED\u90E8\u5206\u4E3A 1(\u79F0\u4E4B\u4E3A\uFF1A\u77FF\u6C60\u96BE\u5EA6\u6216 pdiff)\uFF0C\u6BD4\u7279\u5E01\u534F\u8BAE\u628A\u76EE\u6807 HASH \u8868\u793A\u6210\u4E00\u4E2A\u56FA\u5B9A\u7CBE\u5EA6\u7684\u81EA\u5B9A\u4E49\u6D6E\u70B9\u7C7B\u578B\uFF0C\u56E0\u800C\uFF0C\u6BD4\u7279\u5E01\u5BA2\u6237\u7AEF\u7528\u8BE5\u503C\u6765\u4F30\u8BA1\u96BE\u5EA6(\u79F0\u4E4B\u4E3A\uFF1Abdiff)\u3002</p><p>\u200B \u96BE\u5EA6\u7ECF\u5E38\u88AB\u5B58\u8D2E\u5728\u533A\u5757\u4E2D\uFF0C\u6BCF\u4E2A\u5757\u5B58\u8D2E\u4E00\u4E2A\u5341\u516D\u5236\u7684\u76EE\u6807 HASH \u7684\u538B\u7F29\u8868\u8FBE\u5F0F(\u79F0\u4E4B\u4E3A\uFF1ABits)\uFF0C\u76EE\u6807 HASH \u53EF\u4EE5\u4EE5\u9884\u5148\u5B9A\u4E49\u7684\u516C\u5F0F\u8BA1\u7B97\u51FA\u6765\u3002\u4F8B\u5982\uFF1A\u5982\u679C\u533A\u5757\u4E2D\u538B\u7F29\u7684\u76EE\u6807 HASH \u4E3A 0x1b0404cb\uFF0C\u90A3\u5341\u516D\u8FDB\u5236\u7684\u76EE\u6807 HASH \u5982\u4E0B\u6240\u793A\uFF1A</p><div class="language-"><pre><code>0x0404cb * 2^(8*(0x1b - 3)) = 0x00000000000404CB000000000000000000000000000000000000000000000000
  </code></pre><div class="line-numbers-wrapper"><span class="line-number">1</span><br></div></div><p>\u56E0\u800C\u76EE\u6807 HASH \u4E3A 0x1b0404cb \u65F6\uFF0C\u96BE\u5EA6\u4E3A\uFF1A</p><div class="language-"><pre><code>0x00000000FFFF0000000000000000000000000000000000000000000000000000 /
  0x00000000000404CB000000000000000000000000000000000000000000000000
  = 16307.420938523983 (bdiff)
  </code></pre><div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br></div></div><p>\u6216\u8005\uFF1A</p><div class="language-"><pre><code>0x00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF /
  0x00000000000404CB000000000000000000000000000000000000000000000000
  = 16307.669773817162 (pdiff)
  </code></pre><div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br></div></div><p>\u5176\u4E2D\uFF1A<code>0x00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF</code> \u662F\u6316\u77FF\u673A\u4F7F\u7528\u7684\u6700\u5927\u76EE\u6807 HASH \u503C\u3002</p><p>\u800C<code>0x00000000FFFF0000000000000000000000000000000000000000000000000000</code>\u5219\u662F\u6BD4\u7279\u5E01\u7F51\u7EDC\u4F7F\u7528\u7684\u6D6E\u70B9\u7F16\u7801\u7C7B\u578B\uFF0C\u540E\u9762\u7684\u4F4D\u6570\u88AB\u7F29\u77ED\u3002</p><p>\u200B \u4E0B\u9762\u662F\u4E00\u4E2A\u5FEB\u901F\u8BA1\u7B97\u6BD4\u7279\u5E01\u96BE\u5EA6\u7684\u65B9\u6CD5\uFF0C\u5B83\u7684\u7B97\u6CD5\u4F7F\u7528\u4FEE\u6539\u7684\u6CF0\u52D2\u5E8F\u5217(\u4F60\u53EF\u4EE5\u770B wikipedia \u4E0A\u7684\u6559\u7A0B)\uFF0C\u5E76\u4E14\u4F9D\u8D56\u8BB0\u5F55\u6765\u8F6C\u6362\u96BE\u5EA6\u8BA1\u7B97\u3002</p><div class="language-cpp line-numbers-mode"><pre><code><span class="token macro property"><span class="token directive-hash">#</span><span class="token directive keyword">include</span> <span class="token string">&lt;iostream&gt;</span></span>
  <span class="token macro property"><span class="token directive-hash">#</span><span class="token directive keyword">include</span> <span class="token string">&lt;cmath&gt;</span></span>
  
  <span class="token keyword">inline</span> <span class="token keyword">float</span> <span class="token function">fast_log</span><span class="token punctuation">(</span><span class="token keyword">float</span> val<span class="token punctuation">)</span><span class="token punctuation">{</span>
    <span class="token keyword">int</span> <span class="token operator">*</span> <span class="token keyword">const</span> exp_ptr <span class="token operator">=</span> <span class="token generic-function"><span class="token function">reinterpret_cast</span> <span class="token generic class-name"><span class="token operator">&lt;</span><span class="token keyword">int</span> <span class="token operator">*</span><span class="token operator">&gt;</span></span></span><span class="token punctuation">(</span><span class="token operator">&amp;</span>val<span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token keyword">int</span> x <span class="token operator">=</span> <span class="token operator">*</span>exp_ptr<span class="token punctuation">;</span>
    <span class="token keyword">const</span> <span class="token keyword">int</span> log_2 <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token punctuation">(</span>x <span class="token operator">&gt;&gt;</span> <span class="token number">23</span><span class="token punctuation">)</span> <span class="token operator">&amp;</span> <span class="token number">255</span><span class="token punctuation">)</span> \u2013 <span class="token number">128</span><span class="token punctuation">;</span>
    x <span class="token operator">&amp;=</span> <span class="token operator">~</span><span class="token punctuation">(</span><span class="token number">255</span> <span class="token operator">&lt;&lt;</span> <span class="token number">23</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    x <span class="token operator">+=</span> <span class="token number">127</span> <span class="token operator">&lt;&lt;</span> <span class="token number">23</span><span class="token punctuation">;</span>
    <span class="token operator">*</span>exp_ptr <span class="token operator">=</span> x<span class="token punctuation">;</span>
  
    val <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token operator">-</span><span class="token number">1.0f</span><span class="token operator">/</span><span class="token number">3</span><span class="token punctuation">)</span> <span class="token operator">*</span> val <span class="token operator">+</span> <span class="token number">2</span><span class="token punctuation">)</span> <span class="token operator">*</span> val \u2013 <span class="token number">2.0f</span><span class="token operator">/</span><span class="token number">3</span><span class="token punctuation">;</span>
    <span class="token keyword">return</span> <span class="token punctuation">(</span><span class="token punctuation">(</span>val <span class="token operator">+</span> log_2<span class="token punctuation">)</span> <span class="token operator">*</span> <span class="token number">0.69314718f</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
  <span class="token punctuation">}</span>
  
  <span class="token keyword">float</span> <span class="token function">difficulty</span><span class="token punctuation">(</span><span class="token keyword">unsigned</span> <span class="token keyword">int</span> bits<span class="token punctuation">)</span><span class="token punctuation">{</span>
    <span class="token keyword">static</span> <span class="token keyword">double</span> max_body <span class="token operator">=</span> <span class="token function">fast_log</span><span class="token punctuation">(</span><span class="token number">0x00ffff</span><span class="token punctuation">)</span><span class="token punctuation">,</span> scaland <span class="token operator">=</span> <span class="token function">fast_log</span><span class="token punctuation">(</span><span class="token number">256</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token keyword">return</span> <span class="token function">exp</span><span class="token punctuation">(</span>max_body \u2013 <span class="token function">fast_log</span><span class="token punctuation">(</span>bits <span class="token operator">&amp;</span> <span class="token number">0x00ffffff</span><span class="token punctuation">)</span> <span class="token operator">+</span> scaland <span class="token operator">*</span> <span class="token punctuation">(</span><span class="token number">0x1d</span> \u2013 <span class="token punctuation">(</span><span class="token punctuation">(</span>bits <span class="token operator">&amp;</span> <span class="token number">0xff000000</span><span class="token punctuation">)</span> <span class="token operator">&gt;&gt;</span> <span class="token number">24</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
  <span class="token punctuation">}</span>
  
  <span class="token keyword">int</span> <span class="token function">main</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
   std<span class="token double-colon punctuation">::</span>cout <span class="token operator">&lt;&lt;</span> <span class="token function">difficulty</span><span class="token punctuation">(</span><span class="token number">0x1b0404cb</span><span class="token punctuation">)</span> <span class="token operator">&lt;&lt;</span> std<span class="token double-colon punctuation">::</span>endl<span class="token punctuation">;</span>
   <span class="token keyword">return</span> <span class="token number">0</span><span class="token punctuation">;</span>
  <span class="token punctuation">}</span>
  </code></pre><div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br><span class="line-number">10</span><br><span class="line-number">11</span><br><span class="line-number">12</span><br><span class="line-number">13</span><br><span class="line-number">14</span><br><span class="line-number">15</span><br><span class="line-number">16</span><br><span class="line-number">17</span><br><span class="line-number">18</span><br><span class="line-number">19</span><br><span class="line-number">20</span><br><span class="line-number">21</span><br><span class="line-number">22</span><br><span class="line-number">23</span><br><span class="line-number">24</span><br></div></div><p>\u5982\u679C\u8981\u770B\u4EE5\u4E0A\u4E00\u822C\u96BE\u5EA6\u8BA1\u7B97\u7684\u6570\u5B57\u539F\u7406\uFF0C\u4EE5\u4E0B\u662F python \u4EE3\u7801\uFF1A</p><div class="language-python line-numbers-mode"><pre><code><span class="token keyword">import</span> decimal<span class="token punctuation">,</span> math
  l <span class="token operator">=</span> math<span class="token punctuation">.</span>log
  e <span class="token operator">=</span> math<span class="token punctuation">.</span>e
  
  <span class="token keyword">print</span> <span class="token number">0x00ffff</span> <span class="token operator">*</span> <span class="token number">2</span><span class="token operator">**</span><span class="token punctuation">(</span><span class="token number">8</span><span class="token operator">*</span><span class="token punctuation">(</span><span class="token number">0x1d</span> \u2013 <span class="token number">3</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token operator">/</span> <span class="token builtin">float</span><span class="token punctuation">(</span><span class="token number">0x0404cb</span> <span class="token operator">*</span> <span class="token number">2</span><span class="token operator">**</span><span class="token punctuation">(</span><span class="token number">8</span><span class="token operator">*</span><span class="token punctuation">(</span><span class="token number">0x1b</span> \u2013 <span class="token number">3</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
  <span class="token keyword">print</span> l<span class="token punctuation">(</span><span class="token number">0x00ffff</span> <span class="token operator">*</span> <span class="token number">2</span><span class="token operator">**</span><span class="token punctuation">(</span><span class="token number">8</span><span class="token operator">*</span><span class="token punctuation">(</span><span class="token number">0x1d</span> \u2013 <span class="token number">3</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token operator">/</span> <span class="token builtin">float</span><span class="token punctuation">(</span><span class="token number">0x0404cb</span> <span class="token operator">*</span> <span class="token number">2</span><span class="token operator">**</span><span class="token punctuation">(</span><span class="token number">8</span><span class="token operator">*</span><span class="token punctuation">(</span><span class="token number">0x1b</span> \u2013 <span class="token number">3</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
  <span class="token keyword">print</span> l<span class="token punctuation">(</span><span class="token number">0x00ffff</span> <span class="token operator">*</span> <span class="token number">2</span><span class="token operator">**</span><span class="token punctuation">(</span><span class="token number">8</span><span class="token operator">*</span><span class="token punctuation">(</span><span class="token number">0x1d</span> \u2013 <span class="token number">3</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">)</span> \u2013 l<span class="token punctuation">(</span><span class="token number">0x0404cb</span> <span class="token operator">*</span> <span class="token number">2</span><span class="token operator">**</span><span class="token punctuation">(</span><span class="token number">8</span><span class="token operator">*</span><span class="token punctuation">(</span><span class="token number">0x1b</span> \u2013 <span class="token number">3</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
  <span class="token keyword">print</span> l<span class="token punctuation">(</span><span class="token number">0x00ffff</span><span class="token punctuation">)</span> <span class="token operator">+</span> l<span class="token punctuation">(</span><span class="token number">2</span><span class="token operator">**</span><span class="token punctuation">(</span><span class="token number">8</span><span class="token operator">*</span><span class="token punctuation">(</span><span class="token number">0x1d</span> \u2013 <span class="token number">3</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">)</span> \u2013 l<span class="token punctuation">(</span><span class="token number">0x0404cb</span><span class="token punctuation">)</span> \u2013 l<span class="token punctuation">(</span><span class="token number">2</span><span class="token operator">**</span><span class="token punctuation">(</span><span class="token number">8</span><span class="token operator">*</span><span class="token punctuation">(</span><span class="token number">0x1b</span> \u2013 <span class="token number">3</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
  <span class="token keyword">print</span> l<span class="token punctuation">(</span><span class="token number">0x00ffff</span><span class="token punctuation">)</span> <span class="token operator">+</span> <span class="token punctuation">(</span><span class="token number">8</span><span class="token operator">*</span><span class="token punctuation">(</span><span class="token number">0x1d</span> \u2013 <span class="token number">3</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token operator">*</span>l<span class="token punctuation">(</span><span class="token number">2</span><span class="token punctuation">)</span> \u2013 l<span class="token punctuation">(</span><span class="token number">0x0404cb</span><span class="token punctuation">)</span> \u2013 <span class="token punctuation">(</span><span class="token number">8</span><span class="token operator">*</span><span class="token punctuation">(</span><span class="token number">0x1b</span> \u2013 <span class="token number">3</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token operator">*</span>l<span class="token punctuation">(</span><span class="token number">2</span><span class="token punctuation">)</span>
  <span class="token keyword">print</span> l<span class="token punctuation">(</span><span class="token number">0x00ffff</span> <span class="token operator">/</span> <span class="token builtin">float</span><span class="token punctuation">(</span><span class="token number">0x0404cb</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token operator">+</span> <span class="token punctuation">(</span><span class="token number">8</span><span class="token operator">*</span><span class="token punctuation">(</span><span class="token number">0x1d</span> \u2013 <span class="token number">3</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token operator">*</span>l<span class="token punctuation">(</span><span class="token number">2</span><span class="token punctuation">)</span> \u2013 <span class="token punctuation">(</span><span class="token number">8</span><span class="token operator">*</span><span class="token punctuation">(</span><span class="token number">0x1b</span> \u2013 <span class="token number">3</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token operator">*</span>l<span class="token punctuation">(</span><span class="token number">2</span><span class="token punctuation">)</span>
  <span class="token keyword">print</span> l<span class="token punctuation">(</span><span class="token number">0x00ffff</span> <span class="token operator">/</span> <span class="token builtin">float</span><span class="token punctuation">(</span><span class="token number">0x0404cb</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token operator">+</span> <span class="token punctuation">(</span><span class="token number">0x1d</span> \u2013 <span class="token number">0x1b</span><span class="token punctuation">)</span><span class="token operator">*</span>l<span class="token punctuation">(</span><span class="token number">2</span><span class="token operator">**</span><span class="token number">8</span><span class="token punctuation">)</span>
  </code></pre><div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br><span class="line-number">10</span><br><span class="line-number">11</span><br></div></div><p>\u200B \u76EE\u524D\u96BE\u5EA6\u53EF\u4EE5\u901A\u8FC7<a href="http://blockexplorer.com/q/getdifficulty" target="_blank" rel="noopener noreferrer">http://blockexplorer.com/q/getdifficulty</a>\u6765\u5F97\u5230\uFF0C\u4E0B\u4E00\u4E2A\u96BE\u5EA6\u53EF\u4EE5\u901A\u8FC7<a href="http://blockexplorer.com/q/estimate" target="_blank" rel="noopener noreferrer">http://blockexplorer.com/q/estimate</a> \u6765\u83B7\u5F97\u3002\u96BE\u5EA6\u7684\u53D8\u5316\u60C5\u51B5\u53EF\u4EE5\u67E5\u770B<a href="http://bitcoin.sipa.be/" target="_blank" rel="noopener noreferrer">http://bitcoin.sipa.be/</a>\u3002</p><p>\u200B \u6700\u5927\u96BE\u5EA6\u5927\u7EA6=maximum_target / 1 (\u56E0\u4E3A 0 \u4F1A\u5BFC\u81F4\u65E0\u7A77\u5927)\uFF0C\u8FD9\u662F\u4E00\u4E2A\u975E\u5E38\u5927\u7684\u6570\u503C\uFF0C\u5927\u7EA6 2^224\uFF1B\u5F53 maximum_target \u4E3A\u6700\u5C0F 1 \u65F6\uFF0C\u6700\u5C0F\u96BE\u5EA6\u503C\u4E3A 1\u3002</p><p>\u200B \u96BE\u5EA6\u6839\u636E\u4EE5\u524D 2016 \u4E2A\u533A\u5757\u7684\u4EA7\u751F\u65F6\u95F4\uFF0C\u6BCF 2016 \u5757\u6539\u53D8\u4E00\u6B21\u3002\u9884\u8BA1\u6BCF\u9694 10 \u5206\u949F\u4EA7\u751F\u4E00\u4E2A\u533A\u5757\uFF0C\u56E0\u800C\u4EA7\u751F 2016 \u4E2A\u533A\u5757\u8981\u82B1\u8D39 2 \u5468\u65F6\u95F4\u3002\u5982\u679C\u524D 2016 \u4E2A\u533A\u5757\u7684\u4EA7\u751F\u65F6\u95F4\u591A\u4E8E\u4E24\u5468\uFF0C\u5219\u96BE\u5EA6\u4F1A\u964D\u4F4E\uFF1B\u5426\u5219\u96BE\u5EA6\u5C31\u4F1A\u589E\u52A0\u3002</p><p>\u200B \u4E3A\u4E86\u627E\u5230\u65B0\u533A\u5757\uFF0C\u8BE5\u533A\u5757\u7684 HASH \u503C\u5FC5\u987B\u5C0F\u4E8E\u76EE\u6807 HASH \u508E\uFF0C\u5B9E\u9645\u4E0A\u662F\u4E00\u4E2A\u5728 0 \u5230 2^256-1 \u4E4B\u95F4\u7684\u968F\u673A\u6570\uFF0C\u96BE\u5EA6 1 \u7684\u504F\u79FB\u91CF\u662F\uFF1A</p><div class="language-"><pre><code>0xffff * 2^208
  </code></pre><div class="line-numbers-wrapper"><span class="line-number">1</span><br></div></div><p>\u96BE\u5EA6 D \u7684\u504F\u79FB\u91CF\u662F</p><div class="language-"><pre><code>(0xffff * 2^208)/D
  </code></pre><div class="line-numbers-wrapper"><span class="line-number">1</span><br></div></div><p>\u5728\u96BE\u5EA6 D \u4E0B\uFF0C\u4E3A\u4E86\u627E\u5230\u65B0\u533A\u5757\uFF0C\u6211\u4EEC\u9884\u671F\u8981\u8BA1\u7B97\u7684 HASH \u6570\u91CF\u662F</p><div class="language-"><pre><code>D * 2^256 / (0xffff * 2^208)
  </code></pre><div class="line-numbers-wrapper"><span class="line-number">1</span><br></div></div><p>\u6216\u8005\u53EA\u662F</p><div class="language-"><pre><code>D * 2^48 / 0xffff
  </code></pre><div class="line-numbers-wrapper"><span class="line-number">1</span><br></div></div><p>\u200B \u96BE\u5EA6\u7684\u8BBE\u5B9A\uFF0C\u662F\u4E3A\u4E86\u4EE5\u6BCF 10 \u5206\u949F\u4E00\u4E2A\u533A\u5757\u7684\u4EA7\u751F\u901F\u5EA6\u4EA7\u751F 2016 \u4E2A\u533A\u5757\uFF0C\u56E0\u800C\u6211\u4EEC\u5728 600 \u79D2\u5185\u8BA1\u7B97 (D * 2^48 / 0xffff) \u4E2A HASH\uFF0C\u8FD9\u5C31\u610F\u5473\u7740\u4EA7\u751F 2016 \u4E2A\u533A\u5757\u7684\u7F51\u7EDC HASH \u901F\u7387(\u7B97\u529B)\u662F</p><div class="language-"><pre><code>D * 2^48 / 0xffff / 600
  </code></pre><div class="line-numbers-wrapper"><span class="line-number">1</span><br></div></div><p>\u53EF\u4EE5\u8FDB\u4E00\u6B65\u7B80\u5316\u4E3A\uFF1A</p><div class="language-"><pre><code>D * 2^32 / 600
  </code></pre><div class="line-numbers-wrapper"><span class="line-number">1</span><br></div></div><p>\u4EE5\u4E0A\u516C\u5F0F\u6709\u8F83\u597D\u7684\u7CBE\u5EA6\u3002</p><p>\u200B \u5728\u96BE\u5EA6 1 \u4E0B\uFF0C\u7B97\u529B\u662F 7Mhashes/\u79D2\uFF0C\u8BD1\u8005\u5728\u7FFB\u8BD1\u8FD9\u7BC7\u6587\u7AE0\u65F6\u96BE\u5EA6\u662F 5,006,860,589\uFF0C\u8FD9\u5C31\u610F\u5473\u7740\u4EE5\u524D 2016 \u4E2A\u533A\u5757\u88AB\u627E\u5230\uFF0C\u5176\u5E73\u5747\u7B97\u529B\u662F\uFF1A35.840PHash/s\u3002</p><div class="language-"><pre><code>5,006,860,589 * 2^32 / 600 = \u5927\u7EA6\u572835.840 PHash/s
  </code></pre><div class="line-numbers-wrapper"><span class="line-number">1</span><br></div></div><p>\u53D1\u73B0\u4E00\u4E2A\u533A\u5757\u7684\u5E73\u5747\u65F6\u95F4\uFF0C\u53EF\u4EE5\u7528\u4EE5\u4E0B\u516C\u5F0F\u4F30\u8BA1\uFF1A</p><div class="language-"><pre><code>\u65F6\u95F4 = \u96BE\u5EA6 * 2^32 / \u7B97\u529B
  </code></pre><div class="line-numbers-wrapper"><span class="line-number">1</span><br></div></div><p>\u200B \u5176\u4E2D\uFF0C\u96BE\u5EA6\u662F\u5F53\u524D\u7684\u96BE\u5EA6\uFF0C\u7B97\u529B\u4F60\u7684\u77FF\u673A\u7684\u8BA1\u7B97\u80FD\u529B\uFF0C\u662F hashes/s \u4E3A\u5355\u4F4D\uFF0C\u65F6\u95F4\u662F\u4F60\u627E\u5230\u7684\u4E24\u4E2A\u533A\u5757\u4E4B\u95F4\u7684\u5E73\u5747\u65F6\u95F4\u3002\u4E3E\u4F8B\uFF1A\u4F7F\u7528 Python \u8BA1\u7B97\uFF0C\u7B97\u529B\u4E3A 1Ghashes/s \u7684\u77FF\u673A\uFF0C\u96BE\u5EA6\u5728 20000 \u65F6\uFF0C\u4EA7\u751F\u4E00\u4E2A\u65B0\u533A\u5757\u7684\u65F6\u95F4\uFF0C(\u5176\u4E2D**\u8868\u793A\u6307\u6570)\uFF1A</p><div class="language-"><pre><code>$ python -c &quot;print 20000 * 2**32 / 10**9 / 60 / 60.0&quot;
  23.85
  </code></pre><div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br></div></div><p>\u610F\u601D\u5C31\u662F\uFF1A\u627E\u5230\u4E00\u4E2A\u65B0\u533A\u5757\u8981\u82B1\u8D39\u8FD1 1 \u5C0F\u65F6\u3002</p><p><a href="https://en.bitcoin.it/wiki/Mining_Hardware_Comparison" target="_blank" rel="noopener noreferrer">\u6316\u77FF\u786C\u4EF6\u5BF9\u6BD4</a>\uFF0C\u8FD9\u91CC\u6709\u4E00\u4E9B\u7EDF\u8BA1\uFF0C\u53EF\u4EE5\u5E2E\u52A9\u4F60\u9884\u6D4B\u6536\u5165\u3002</p><p><a href="http://www.alloscomp.com/bitcoin/calculator.php" target="_blank" rel="noopener noreferrer">\u6536\u652F\u8BA1\u7B97\u5668 1</a>\uFF0C<a href="http://www.vnbitcoin.org/bitcoincalculator.php" target="_blank" rel="noopener noreferrer">\u6536\u652F\u8BA1\u7B97\u5668 2</a>\uFF0C\u80FD\u5E2E\u4F60\u8BA1\u7B97\u6536\u652F\u3002</p><p>\u8BB0\u4F4F\uFF1A\u8FD9\u53EA\u662F\u53EF\u80FD\u6027\uFF0C\u5E76\u4E0D\u80FD\u4FDD\u8BC1\u4F60\u6BCF\u5929\u90FD\u80FD\u627E\u5230\u65B0\u533A\u5757\u3002\u5EFA\u8BAE\u52A0\u5165\u77FF\u6C60\u6316\u77FF\uFF0C\u901A\u8FC7\u5171\u4EAB\u533A\u5757\u6536\u76CA\u7684\u65B9\u5F0F\uFF0C\u80FD\u5F97\u5230\u7A33\u5B9A\u957F\u671F\u7684\u56DE\u62A5\u3002</p><h2 id="\u672C\u6587\u8BD1\u81EA\u6BD4\u7279\u5E01-wiki" tabindex="-1">\u672C\u6587\u8BD1\u81EA\u6BD4\u7279\u5E01 WIKI <a class="header-anchor" href="#\u672C\u6587\u8BD1\u81EA\u6BD4\u7279\u5E01-wiki" aria-hidden="true" target="_blank" rel="noopener">#</a></h2><ul><li><a href="https://en.bitcoin.it/wiki/Block_chain" target="_blank" rel="noopener noreferrer">https://en.bitcoin.it/wiki/Block_chain</a></li><li><a href="https://en.bitcoin.it/wiki/Block" target="_blank" rel="noopener noreferrer">https://en.bitcoin.it/wiki/Block</a></li><li><a href="https://en.bitcoin.it/wiki/Block_hashing_algorithm" target="_blank" rel="noopener noreferrer">https://en.bitcoin.it/wiki/Block_hashing_algorithm</a></li><li><a href="https://en.bitcoin.it/wiki/Genesis_block" target="_blank" rel="noopener noreferrer">https://en.bitcoin.it/wiki/Genesis_block</a></li><li><a href="https://en.bitcoin.it/wiki/Nonstandard_block" target="_blank" rel="noopener noreferrer">https://en.bitcoin.it/wiki/Nonstandard_block</a></li><li><a href="https://en.bitcoin.it/wiki/Difficulty" target="_blank" rel="noopener noreferrer">https://en.bitcoin.it/wiki/Difficulty</a></li><li><a href="https://en.bitcoin.it/wiki/Target" target="_blank" rel="noopener noreferrer">https://en.bitcoin.it/wiki/Target</a></li></ul>`,111),o=[t];function c(r,l,i,u,k,b){return a(),s("div",null,o)}var f=n(e,[["render",c]]);export{m as __pageData,f as default};
  