自从习总书记开始带头学习区块链后,很多同学也开始自发学习了解区块链了。但肯定没看懂,因为它太难了。学习区块链的最好途径就是看中本聪写的白皮书《比特币:一种点对点的电子现金支付系统》,因为比特币和区块链就是中本聪创造的,这部白皮书是他留下的对这两大发明的第一手资料,所以,要想学习认识区块链,这部白皮书必看。
另外,网上很多宣称xx分钟了解区块链的文章或视频都是不靠谱的,要真正理解区块链需要做思维认识上的改变,了解其诞生的前因后果。
广大无技术背景的人可能觉得要想看懂这部白皮书很难,我可以很负责任的告诉你,你的程序员朋友不会比你好哪去,一样难,因为这部白皮书主要讲的是一种是实现方式,而非技术。
OK,我们来看比特币白皮书的第一段:
1.摘要
本文提出了一种完全通过点对点技术实现的电子现金系统,它使得在线支付能够直接由一方发起并支付给另外一方,中间不需要通过任何的金融机构。虽然数字签名(Digital signatures)部分解决了这个问题,但是如果仍然需要第三方的支持才能防止双重支付(double-spending)的话,那么这种系统也就失去了存在的价值。我们(we)在此提出一种解决方案,使现金系统在点对点的环境下运行,并防止双重支付问题。该网络通过随机散列(hashing)对全部交易加上时间戳(timestamps),将它们合并入一个不断延伸的基于随机散列的工作量证明(proof-of-work)的链条作为交易记录,除非重新完成全部的工作量证明,形成的交易记录将不可更改。最长的链条不仅将作为被观察到的事件序列(sequence)的证明,而且被看做是来自CPU计算能力最大的池(pool)。只要大多数的CPU计算能力都没有打算合作起来对全网进行攻击,那么诚实的节点将会生成最长的、超过攻击者的链条。这个系统本身需要的基础设施非常少。信息尽最大努力在全网传播即可,节点(nodes)可以随时离开和重新加入网络,并将最长的工作量证明链条作为在该节点离线期间发生的交易的证明。
首先我们来看第一句话“本文提出了一种完全通过点对点技术实现的电子现金系统,它使得在线支付能够直接由一方发起并支付给另外一方,中间不需要通过任何的金融机构”,这句话直接而清晰的表明了中本聪想干嘛,他想发明一种点对点的电子现金系统,同时这个系统不需要任何金融机构的支持。所谓“不通过任何金融系统”意思就是不需要银行了,所以这句话的意思就是“我想创造一个没有银行,不受政府控制,但依然可以实现人与人进行数字化货币交易的系统”,核心思想就是我们常听到的“去中心化”。
那么为什么要去中心化?目前世界的所有金融系统都是由国家控制,每个国家的银行都记录着这个国家全体国民的银行资产,我们任何一笔转账都需要经过结算中心的确认,你说这样有什么不好吗?好像也没有吧~但就是有那么一群人他们不希望生活在权威下,期望自由的不受政府管控的进行货币交易,正式带着这样的GEEK理想,“去中心化化的电子现金系统”才成为了众人追求的目标。如果看到这里你没有任何的激动,完全get不到这件事情的伟大之处,那么,你可以不用继续往下看了。
那么如何通过技术来实现呢,第二句话给出了答案——“虽然数字签名(Digital signatures)部分解决了这个问题,但是如果仍然需要第三方的支持才能防止双重支付(double-spending)的话,那么这种系统也就失去了存在的价值”,中本聪这个白皮书显然是写给同专业的人看的,因为他都已经默认大家都已经知道“数字签名在电子货币里的应用”了,这里要做下基础知识科普:数字签名是一种密码学技术,通过这种技术我可以证明信息是本人发出的,而不是其他人代发的(想深入了解可自行百度公钥/私钥)。也就是说,因为有了数字签名,所以我们可以不需要一个权威中心的认证,也可以自行证明交易是由双方自愿授权发起的。这样也就解决了交易真实性的问题,因为交易需要签名,而只有我自己才可以做签名操作,任何其他人都没法替我完成。但是,仍有一个问题需要解决,那就是虽然我可以证明这笔钱是我花的,但是如何从我的账户里扣掉这笔钱,避免我重复花同一笔钱,只通过数字签名还没解决,这个问题也就是“双重支付”问题,整部白皮书也主要是围绕着如何解决这个问题而展开的。(我知道你没有明白,没关系,他在后面的章节会做具体的说明)
在摘要余下内容概括的介绍了如何来解决这个问题的,这这一步不需要去理解,因为初学者也不可能理解,如果理解了那么后面的内容也没必要看了,所以,略过,直接看下一章。
2.简介
互联网上的贸易,几乎都需要借助金融机构作为可资信赖的第三方来处理电子支付信息。虽然这类系统在绝大多数情况下都运作良好,但是这类系统仍然内生性地受制于“基于信用的模式”(trust based model)的弱点。我们无法实现完全不可逆的交易,因为金融机构总是不可避免地会出面协调争端。而金融中介的存在,也会增加交易的成本,并且限制了实际可行的最小交易规模,也限制了日常的小额支付交易。并且潜在的损失还在于,很多商品和服务本身是无法退货的,如果缺乏不可逆的支付手段,互联网的贸易就大大受限。因为有潜在的退款的可能,就需要交易双方拥有信任。而商家也必须提防自己的客户,因此会向客户索取完全不必要的个人信息。而实际的商业行为中,一定比例的欺诈性客户也被认为是不可避免的,相关损失视作销售费用处理。而在使用物理现金的情况下,这些销售费用和支付问题上的不确定性却是可以避免的,因为此时没有第三方信用中介的存在。
所以,我们非常需要这样一种电子支付系统,它基于密码学原理而不基于信用,使得任何达成一致的双方,能够直接进行支付,从而不需要第三方中介的参与。杜绝回滚(reverse)支付交易的可能,这就可以保护特定的卖家免于欺诈;而对于想要保护买家的人来说,在此环境下设立通常的第三方担保机制也可谓轻松加愉快。在这篇论文中,我们(we)将提出一种通过点对点分布式的时间戳服务器来生成依照时间前后排列并加以记录的电子交易证明,从而解决双重支付问题。只要诚实的节点所控制的计算能力的总和,大于有合作关系的(cooperating)攻击者的计算能力的总和,该系统就是安全的。
这段主要是说目前的金融系统存在的各种问题,怎么怎么不好,所以我们需要一个去中心化的电子现金系统。
3.交易
我们定义,一枚电子货币(an electronic coin)是这样的一串数字签名:每一位所有者通 过对前一次交易和下一位拥有者的公钥(Public key) 签署一个随机散列的数字签名,并将这个 签名附加在这枚电子货币的末尾,电子货币就发送给了下一位所有者。而收款人通过对签名进 行检验,就能够验证该链条的所有者。
从这一章节开始,中本聪开始正式介绍什么是比特币,他也不墨迹,上来就从技术实现层面对比特币做了定义。首先,他说比特币是一串数字签名,注意,接下来的这段话是全文的关键,理解了这段话你就把什么是比特币搞懂一半了—— 每一位所有者通 过对前一次交易和下一位拥有者的公钥(Public key) 签署一个随机散列的数字签名,并将这个 签名附加在这枚电子货币的末尾。我们知道,每个人的钱不是凭空在自己的账户里长出来的,都是通过别人(或公司组织)转账交易至自己的账户里的,所以前一次交易指的就是账户里钱的来源,如:张三转给我100个BTC,这就是我的前一笔交易。下一位拥有者的公钥指的是收款人的账户地址,公钥的作用可等同于账户地址。所以这句话用白话来举例就是“张三给我100个BTC,我现在要把这100个BTC转给李四”然后对这串信息加上个人签名,这串信息用代码表现出来就是比特币了,比特币就是这么一串信息。
那这笔比特币属于誰呢,最后一句话 收款人通过对签名进 行检验,就能够验证该链条的所有者,只要验证是我本人做的签名,那么如我的声明,我已经把张三给我的100个BTC给了李四,所以现在这笔比特币就属于李四了,李四拿到的比特币就是我的一串签名声明,这份签名声明证明了他拥有我的100个BTC。这时候有意思的事情就发生了,李四可以像我刚才的流程一样,也对上一笔交易做次签名,声明要转给某某,这样就把比特币花出去了,每个人的资产就是上一个人转给他钱的签名声明,通过这样的形式,比特币就可以流转起来。总结来看,当你说自己有100个比特币的时候,你有的只是你有别人转给你100个比特币的交易签名声明——比特币不是一个具体的东西,只是一串数字签名数据。
我知道你肯定会蒙,我们通常理解的交易逻辑就是一个账户的余额减少,另一个账户余额增加,为什么中本聪要搞的这么麻烦,因为通过这样的方式,交易的本身就是交易结果,我的收入就是别人给我的转账声明,我要花钱,花的也是别人给我的转账声明,只要做了声明,那么就等于完成了交易,不再需要一个清结算中心了。
该过程的问题在于,收款人将难以检验,之前的某位所有者,是否对这枚电子货币进行了 双重支付。通常的解决方案,就是引入信得过的第三方权威,或者类似于造币厂(mint)的机构, 来对每一笔交易进行检验,以防止双重支付。在每一笔交易结束后,这枚电子货币就要被造币 厂回收,而造币厂将发行一枚新的电子货币;而只有造币厂直接发行的电子货币,才算作有效, 这样就能够防止双重支付。
上文介绍了如何通过签名的方式来转移比特币,但果用户反复对一笔收入进行声明转账,那么这就会出现双重支付的问题,通常的解决办法是引入一个权威的机构,比如支付宝,我们每转一次账后,支付宝都会把我们账户上的钱扣掉一部分,在对方的账户上再增加一部分,一切都得支付宝认证才算有效,这样就能避免双重支付。
可是该解决方案的问题在于,整个货币系统的命运完全依赖于运作 造币厂的公司,因为每一笔交易都要经过该造币厂的确认,而该造币厂就好比是一家银行。 我们需要收款人有某种方法,能够确保之前的所有者没有对更早发生的交易实施签名。
这里来欣赏下中本聪的逻辑思维能力,你会发现,竟如此朴实无华,刚说的双花问题如何解决呢,他推演下来很简单嘛——我们需要收款人有某种方法,能够确保之前的所有者没有对更早发生的交易实施签名。只要能确认付款人在给我转这币钱之前,没有花过这部分币,也就是没有过针对这笔交易的签名操作,那么就可以认为这笔钱还属于他,他就可以转给我。
从逻辑上看,为了达到目的,实际上我们需要关注的只是于本交易之前发生的交易,而不需要关 注这笔交易发生之后是否会有双重支付的尝试。为了确保某一次交易是不存在的,那么唯一的 方法就是获悉之前发生过的所有交易。
为了达到这一目的,也就是确认付款人在付款之前没有花过这笔钱,那么我们只需要关注付款人在花这笔钱之前,他是否花过这笔钱(嗯哼,难道不是吗),方法就是把付款人的之前做过的转账记录都拉出来看,看他是否有动过这笔钱。是的,就是这么简单到傻子都能懂得逻辑。
在造币厂模型里面,造币厂获悉所有的交易,并且决定 了交易完成的先后顺序。如果想要在电子系统中排除第三方中介机构,那么交易信息就应当被 公开宣布(publicly announced),我们需要整个系统内的所有参与者,都有唯一公认的历史 交易序列。收款人需要确保在交易期间绝大多数的节点都认同该交易是首次出现。
在我们现实的交易系统里,支付宝有我们所有的交易记录,这些交易记录还可以按时间进行排序,所以我们可以确认转账者在某个转账时间点之前确实没花过这一笔钱。如果在一个去中心化的系统里,也就是没有支付宝这样的权威来提供交易记录,我们如何实现交易排查呢?解决方案就是——那么交易信息就应当被公开宣布(publicly announced),我们需要整个系统内的所有参与者,都有唯一公认的历史 交易序列。收款人需要确保在交易期间绝大多数的节点都认同该交易是首次出现。这句话是非常关键的一句话,因为这句话引出了共识概念。我们认定一件事是真实有效的方式通常有两种,一是权威认定:国家认定的房屋所有权,银行认定的资产所有权,此类都是权威认证。还有一种是没有权威的认证,但是大部分人都认,这就是共识,共识就是大部分人共同承认的事实,比如虽然国家没认定陈冠希比赵本山帅,但是我们绝大部分人都这么认为,这个判断存在于我们大部分人的心中,这就是共识,共识是在去中心化环境中取得可信信息的重要方式。在没有支付宝和银行的情况下,我们每做一次交易,就把交易信息公开宣布,让所有人都知道并记录下来,每个人都保存一份交易账本,当我们要判断某一笔交易是否存在双重支付的情况,就需要大家根据自己账本记录的内容来投票表决,只要大部分人认定这笔钱之前没有被花过,那么就是没有花过,用共识,也就是半数以上的节点(认证者)的认同来取代中心化的认证。
至此,聪神已经把去中心化的点对点电子现金交易系统的实现逻辑介绍完了,让我们再回顾下:首先他带着我们了解当前数字签名可以实现到哪一步,然后抛出双重支付的问题,然后给出了一个社会学解决方案——通过共识来确认交易是否可信,判断是否可信的的方式就是在交易账本里查看它是否之前被花过。当聪神在脑海中把这些问题和办法厘清之后,他开始着手设计技术方案了~
4.时间戳服务器(Timestamp server)
本解决方案首先提出一个“时间戳服务器”。时间戳服务器通过对以区块(block)形式存在 的一组数据实施随机散列而加上时间戳,并将该随机散列进行广播,就像在新闻或世界性新闻 组网络(Usenet)的发帖一样。显然,该时间戳能够证实特定数据必然于某特定时刻是的 确存在的,因为只有在该时刻存在了才能获取相应的随机散列值。每个时间戳应当将前一个时 间戳纳入其随机散列值中,每一个随后的时间戳都对之前的一个时间戳进行增强(reinforcing), 这样就形成了一个链条(Chain)。
具体的技术实现方案——首先提出一个“时间戳服务器”技术方案。这里首先要搞懂一个知识点——随机散列,随机散列又叫哈希(HAX),哈希是一种加密算法,通过此算法可以把任一长度的数据转化为一串固定长度的编码,比如一篇作文,通过哈希运算后,可以得到对应的哈希值(随机散列值),它长这样:689c52282bdedb86c9575b99b4278a95c5f08ea6dafc2f70f5a753c9b78de848。只要原文中的任何一个字或符号改变了,那么对应的哈希值也会发生改变,所以验证哈希值是否正确就可以验证内容是否有被改动。这就是哈希的最重要作用。
介绍完随机散列(哈希)后,让我们回到主题。首先有所的数据以区块的形式存在,什么叫区块的形式?就是数据不是连续的,分开打包,这样就形成了一个又一个区块,比如当网络上产生了几笔交易信息数据,这部分数据将被集合在一组形成一个整体,也就是一个区块,然后在这个区块里加入当前的时间,然后再对这个这个区块进行一下哈希运算,得到一个哈希值,然后将此哈希值以及区块信息全网广播,让所有参与到这个网络中的人都能接收到此信息并记录下来。当又产生新数据,组合成一个新区块后,这个新的区块会把上一个区块的哈希值放也加入进来,然后再加入当前时间数据,然后再做哈希运算。这样,就形成一个一个区块连着一个区块的数据链条,这个链条就是区块链。啊哈,点题了是不?
因为每个区块都包含上一个区块的哈希值,所以一旦你想改一个区块里的信息,那么你就得把他之后的区块信息都改了才行,因为只要有一点改动,那么哈希值就会变,因为下一个区块链是包含了上一个区块链的哈希值,所以下一个区块的哈希值也会变,也就意味着一个区块后面的跟着的区块越多,那么篡改的难度也就越大。
4.工作量证明(Proof-of-Work)
为了在点对点的基础上构建一组分散化的时间戳服务器,仅仅像报纸或世界性新闻网络组一样工作是不够的,我们还需要一个类似于亚当•柏克(Adam Back)提出的哈希现金(Hashcash)[6] 。
这句话又抛出了一个问题,“仅仅是想新闻网络一样工作是不够的”,也就是说前面所说的解决方案仍有不足,具体是什么不足葱神没说,其实就是前面提到的解决方案不具有安全性,容易遭到破坏,要想解决这个问题,就需要参考哈希现金的方案,这里大家没必要去了解什么是哈希现金,他在下面给出了具体的解决方案说明。
在进行随机散列运算时,工作量证明机制引入了对某一个特定值的扫描工作,比方说SHA-256下,随机散列值以一个或多个0开始。那么随着0的数目的上升, 找到这个解所需要的工作量将呈指数增长,而对结果进行检验则仅需要一次随机散列运算。我们在区块中补增一个随机数(Nonce),这个随机数要使得该给定区块的随机散列值出现了所需的那么多个0。我们通过反复尝试来找到这个随机数,直到找到为止,这样我们就构建了一个工作量证明机制。
如何确保整个网络能够安全的运行不被别人破坏呢?就是引入工作量证明机制。一提到网络安全大家就会立刻联想到满屏绿色代码的黑客技术,其实葱神给出的安全解决方案很简单,是个纯社会学的解决方案——不是用各种复杂的加密技术来保证数据不可被篡改,而是谁都可以去改区块链上的数据,这条链没任何防护,但是改的成本非常高,高到没有人能承担的起的地步。下面就说下修改成本具体是什么成本,以及为什么高到无法承担。
首先回顾下介绍过的一个概念——哈希,通过哈希运算我们可以可以把任何长度的数据转化成一个固定长度的数据,如:00000000000000000013984603882785998257025bc7cb94a861a6ddbf7c3c8d,哈希运算的特点是不可以逆,就是没法从结果反推原始数据,所以为了得到符合要求的结果(运算出的哈希值需要以足够多的0开头)就只能用穷举的方式一点点的去试,就像在不知道密码的情况下断的去试密码一样,直到试出那个正确的“随机数”,那么才可以打包记录一个区块(别人会去验证这个随机数是否正确),这个用计算机算力不断去试的过程就叫做工作量证明,谁完成了工作量证明谁就可以产出一个区块。
只要该CPU耗费的工作量能够满足该工作量证明机制,那么除非重新完成相当的工作量,该区块的信息就不可更改。由于之后的区块是链接在该区块之后的,所以想要更改该区块中的信息,就还需要重新完成之后所有区块的全部工作量。
回顾下时间戳服务器那一章,要修改某个区块的数据的话,需要把其之后所有区块的哈希值都修改掉,通过增加工作量证明,让每修改一个区块都要付出一定的计算机算力,这些算力叠加起来也就是修改成本成本,但这个成本现在看起来好像也不是很大嘛?但你不要忘记了,区块链每时每刻都是在延长的,这才是最不可攻破的成本!下面一段给出具体的解释。
同时,该工作量证明机制还解决了在集体投票表决时,谁是大多数的问题。如果决定大多数的方式是基于IP地址的,一IP地址一票,那么如果有人拥有分配大量IP地址的权力,则该机制就被破坏了。而工作量证明机制的本质则是一CPU一票。“大多数”的决定表达为最长的链,因为最长的链包含了最大的工作量。如果大多数的CPU为诚实的节点控制,那么诚实的链条将以最快的速度延长,并超越其他的竞争链条。如果想要对业已出现的区块进行修改,攻击者必须重新完成该区块的工作量外加该区块之后所有区块的工作量,并最终赶上和超越诚实节点的工作量。
在说明篡改成本为何高到任何人都无法承担之前,让我们看另外一个概念——最长链。前面我们说了,要想在一个去中心的环境里实现一个可信的记录,我们只能采用共识的方式。共识就是大家投票,比如要验证一笔交易是否为双重支付,需要全体人员都来投票,这就带来一个问题,每验证一笔交易都要大家来共同投票表决一次,太麻烦了,不可行,那怎么办呢?接下来的解决办法绝对是天才到让人惊讶,同样,它依然不是一个技术解决方案,还是一个社会学的解决方案——首先,完成工作量证明是有先有后的,完全看概率和算力,运气好的人如果率先完成工作量证明打包出一个新的区块,那么他会立刻全网广播,让大家都知道,其它人收到他的广播后只要验证下他的区块是否是真实有效的,验证步骤为(首先验证其提供的随机数是否可以运算得到符合要求的区块哈希值,也就是工作量证明的有效性验证,其次还要对区块内包含的全部交易数据进行验证,确保它们在此之前没有被花过),验证通过后,其它人便会将此区块添加到自己保存的那条区块链的后面。所以在这样的机制下,虽然每个人都记录着一条链,但是大家都在通过竞争的机制来维护出一条出块速度最快也就是最长的一条链,这条最长的链代表了全体用户用算力进行投票而产生的共识,所以当我们要验证一笔交易是否有效的时候,就不需要让所有人投票一次,只要去这条最长链上查一下就好。如果一小撮坏人要蓄意篡改区块链上的内容,那么他就要把自己的维护的那条不诚实的链做成最长链,方案很简单,就是他的算力要超过诚实用户的算力之和。所以区块链的不可篡改特性是建立在多数人是善良正义的基础上的,如果有一天大部分人都不再坚守正义,而选择破坏作恶,那么区块链也就无法继续运行,当然我们所生存的世界也将面临危机,所以我才反复说支持区块链运行的本质是个社会学的解决方案,不是计算机技术。
(最长链的概念有点难懂,建议闭目思考一会)
我们将在后文证明,设想一个较慢的攻击者试图赶上随后的区块,那么其成功概率将呈指数化递减。另一个问题是,硬件的运算速度在高速增长,而节点参与网络的程度则会有所起伏。为了解决这个问题,工作量证明的难度(the proof-of-work difficulty)将采用移动平均目标的方法来确定,即令难度指向令每小时生成区块的速度为某一个预定的平均数。如果区块生成的速度过快,那么难度就会提高。
这段就不再做说明,自行理解。
5.网络
运行该网络的步骤如下:
1)新的交易向全网进行广播;
2)每一个节点都将收到的交易信息纳入一个区块中;
3)每个节点都尝试在自己的区块中找到一个具有足够难度的工作量证明;
4)当一个节点找到了一个工作量证明,它就向全网进行广播;
5)当且仅当包含在该区块中的所有交易都是有效的且之前未存在过的,其他节点才认同该区块的有效性;
6)其他节点表示他们接受该区块,而表示接受的方法,则是在跟随该区块的末尾,制造新的区块以延长该链条,而将被接受区块的随机散列值视为先于新区快的随机散列值。
节点始终都将最长的链条视为正确的链条,并持续工作和延长它。如果有两个节点同时广播不同版本的新区块,那么其他节点在接收到该区块的时间上将存在先后差别。当此情形,他们将在率先收到的区块基础上进行工作,但也会保留另外一个链条,以防后者变成最长的链条。该僵局(tie)的打破要等到下一个工作量证明被发现,而其中的一条链条被证实为是较长的一条,那么在另一条分支链条上工作的节点将转换阵营,开始在较长的链条上工作。 所谓“新的交易要广播”,实际上不需要抵达全部的节点。只要交易信息能够抵达足够多的节点,那么他们将很快被整合进一个区块中。而区块的广播对被丢弃的信息是具有容错能力的。如果一个节点没有收到某特定区块,那么该节点将会发现自己缺失了某个区块,也就可以提出自己下载该区块的请求。
这一章比较简单,就是再系统的介绍下比特币网络的运行步骤,我们在前面都有介绍,这里就不再做赘述,请参考上文自行体会理解。
6.激励
我们约定如此:每个区块的第一笔交易进行特殊化处理,该交易产生一枚由该区块创造者拥有的新的电子货币。这样就增加了节点支持该网络的激励,并在没有中央集权机构发行货币的情况下,提供了一种将电子货币分配到流通领域的一种方法。这种将一定数量新货币持续增添到货币系统中的方法,非常类似于耗费资源去挖掘金矿并将黄金注入到流通领域。此时,CPU的时间和电力消耗就是消耗的资源。 另外一个激励的来源则是交易费(transaction fees)。如果某笔交易的输出值小于输入值,那么差额就是交易费,该交易费将被增加到该区块的激励中。只要既定数量的电子货币已经进入流通,那么激励机制就可以逐渐转换为完全依靠交易费,那么本货币系统就能够免于通货膨胀。 激励系统也有助于鼓励节点保持诚实。如果有一个贪婪的攻击者能够调集比所有诚实节点加起来还要多的CPU计算力,那么他就面临一个选择:要么将其用于诚实工作产生新的电子货币,或者将其用于进行二次支付攻击。那么他就会发现,按照规则行事、诚实工作是更有利可图的。因为该等规则使得他能够拥有更多的电子货币,而不是破坏这个系统使得其自身财富的有效性受损。
这一章主要介绍了比特币的发行机制也就是挖矿。每个区块的打包者可以获得系统颁发的比特币奖励,这些奖励会作为一笔交易记录在区块链网络中,这样他的所有者就可以去使用它。前面说了大家只认最长链,所以必须在最长链上竞争挖矿,也就是去做工作量证明,最先得出结果的人才能获得出块奖励,这个竞争是相当激烈的,概率是非常之低。在挖矿的同时,还可以获得交易费奖励,交易费来自于区块内每笔交易的抽成,在区块链上,每发起一笔转账交易,都要支付一定的交易费,这笔交易费将由区块的打包者获得。整个区块链网络会逐渐减产,最终维持在2100万枚比特币的产量,比特币释放完之后,之后矿工不再得到出块奖励,只能得到手续费奖励。
前面说了一堆区块链的东西,需要大家各种维护各种竞争,我们不禁会问干嘛费那么大的劲去参与维护它?瞧,中本聪这不就给出答案了吗,有出块奖励和手续费奖励啊!这又是一个社会学的解决方案!
这份白皮书的名字叫《比特币——点对点的电子现金支付系统》,按道理比特币是如何产出的应该是放在最前面来说,却放到了最后,这就是是葱神的逻辑,他先不说关键点,而是先给你构建一套极简而又环环相扣的系统,最后再抛出那个核心点,使得整套系统瞬间变成闭环完全体状态!在构建完成的那一刻让你会惊叹为何他能想到如此精巧如鲁班锁的系统,fucking cool!
回过了头再看,比特币币系统由:货币发行(挖矿),安全可信(工作量证明),去中心(共识,最长链)这三大要素组成,三者相辅相成,互相关联的构建成一个完整的系统。
到这里,整部白皮书的核心内容就算介绍完了。对我最大的启发是让我不得不去去揣测中本聪到底是个怎样的人才能有这样的逻辑思维,他给出的方案值得研究学习,但他思考问题的逻辑以及背后的想法更值得去体会。
网友评论