小学生都能读懂的区块链原理和术语(故事图文)-引自《从零开始自己动手写区块链

  个人拥有一个账本中本聪的要求是每,本分开保管也就是将账,stributed Storage)在互联网术语中也称为分布式存储(Di,entralized Storage)账本由老王一个人保管称为集中式存储(C。是即使有个别村民的账本丢了分布式存储的好处有两点:一,的账本还在大部分村民,的村民处获得副本该村民可以从别;想尝试修改账本二是如果有人,每一个人的账本那么他需要修改,作量是巨大的无疑这个工。

  被写进了账本既然交易已经,的钱已经到位也就是卖方,完成交易了呢是不是可以?

  uble Entry Bookkeeping)中本聪给出的标准交易格式采用了复式记账法(Do,成于意大利15世纪形,广泛采用现为世界。益平衡关系作为记账基础复式记账法是以资产与权,笔经济业务对于每一,以上相互联系的账户中进行登记都要以相等的金额在两个或者,化结果的一种记账方法系统地反映资金运动变。

  面的故事接着上,里有村民要发生交易是不是只要桃源村,?交易的具体流程又该是怎样的呢就先去找老王或者叫老王来记账呢?

  卖家作为,自己的钱是不是也正确李四还要看一眼指向。发现任何问题如果李四没有,写在自己的草稿本上他会将该笔交易也复。传给坐在他旁边的王五复写完后李四将纸条。李四的工作王五重复,不是卖方但王五,的输出具体是指向哪里所以不必特别注意交易。认交易有效当王五确,进自己的草稿本上就将此交易也写,给下一个人然后就会传,了大部分人手上直到交易传递到,大厅前面的箱子里(如图1。9所示)最终所有写着交易的纸条都被放进会议。自己的账本独立进行验证以上过程每个人都是对照,一条不满足其中任意,为无效交易交易将被视,写到自己的草稿本上无效交易都不得复,传递给其他人也不得将其。”

  区块(Genesis Block)桃源村公共账本的第一页也称为创世,易不需要经过验证创世区块中的交,讲金额是任意的所以从理论上,创世区块的人取决于创建。由所有村民共同创建故事中的创世区块,有共同的余额所以大家拥,会产生异议失了偏颇将。有至少一条交易创世区块中必须,有一个输出单元交易必须至少,一笔指向某个人的钱也就是必须至少有,将会无法发起不然后续交易。也被称为创币交易创世区块中的交易,币“挖矿”奖励也写在创币交易中)但不是唯一的创币交易(比如比特,也被称为创世币交易的输出总额。

  有过程中以上所,大家都要遵守的规则中本聪只是说明了,个人进行监管但并没有对每,规则又会发生什么呢那要是有人不遵守?

  是和以前一样记账规则还,进账本就生效只要交易写,保管一个账本既然每个人都,本数据是完全一致的就必须保证每个账,无法健康的运行否则交易系统也,是如何做到的呢这一点中本聪?

  头牛到底换几只鸡又发生了争执“我知道今天张三和李四因为一,的面红耳赤据说还吵。事情的再度发生为了避免此类,一种货币我想发行,种奇形怪状的石头这种货币不是某,定的纸张也不是特,的黄金白银更不是稀有,这些可用的资源因为我们没有。有实体形式这种货币没,本上的数字而是写在账,账本交易里的数字更确切的说是写在。例子举个,都认可的公共账本村里有一个大家,间的来往交易记录者村民之。比方打个,来没有钱李四本,易:张三给李四转账10元钱但如果账本上突然写上一笔交,李四转账10元钱至于张三为什么给,了一只鸡或者一筐鸡蛋也许是因为向李四买,用理会我们不,写在了账本中就作数只要双方确认交易并。向李四的10元钱账本中确实有指,10元钱去消费李四就能拿这,应该认可所有人都。多条交易指向李四如果账本中写了,:王五给李四转账5元钱比如还有两条交易分别是,李四20元钱六麻子转账给,额就成了35元钱那么李四的账户余,去买他想要的东西李四就能拿这些钱。记录在账本中不同的页当然这些交易可能被。”

  的是李四和王五假设张三的同伙,胜者是李四正好本轮获,打包并广播出去由李四将区块,创建的“无效交易”该区块中包含有张三,四广播的区块时其他节点验证李,易是“伪造”的会发现张三的交,写进自己的区块链中于是都不会将该区块。该区块写进了各自的区块链张三、李四、王五如果将,部分节点的数据不一致则他们的数据会与大,现了两个“团体”好比是网络中出,13所示如图1。。点数据不一致的情形这种网络中出现节,块链分叉也称为区。发生什么呢分叉后会?

  丢了账本“老王,家的损失造成大,老王的错这不是,天灾人祸一是因为,的货币存在漏洞二是因为我设计。结了我失败的原因这些日子里我总,交易记录在一个账本里认为罪魁祸首是因为,王保管且由老,一个记账中心老王就像是,出了问题如果中心,都将瘫痪整个系统。路是去中心化所以我的思。时间的思考经过这段,一种解决方案我终于找到了,我们当前的困境也希望能解决。

  个例子“举,解题开始后当我宣布,人开始解题愿意解题的。一个解题成功假设李四第,答案无误后他检查多遍,已经找到了答案向大家公布自己,道自己本轮已经落败此时其他人已经知,止答题于是停。自己的账本李四翻开,110页最新页是,一条交易写进该页于是将奖励作为第,上的交易进行编号然后将自己草稿本,进该页中逐一誊写。注意的是李四需要,到账本上时将交易转移,励交易算上奖,写满一页账本每次最多只能,交易舍弃多余的。是说也就,的交易过多如果本周五,写进账本的交易可能会有不被,五再由买方重新创建并写入纸条没有成功的交易将只能等到下周,大厅里传递然后继续在。五交易过少如果本周,移到账本上即可将所有交易转,留有空白可能会。入账本后交易写,不差的复写到大厅前方的黑板上李四接着将110页的交易一字,时间、以及记账人包括页码、记录,解题答案还要附上。12所示)(如图1。”

  实际是加密问题第一、二个问题,章会讨论到在本书第三。链偶然分叉的问题第三个问题是区块,机制的缺陷由于共识,能会存在短暂的不一致导致全网区块链数据可,在第六章中详细介绍最终如何发展将会。五章区块链的分类第四个问题参考第。

  建的交易被写进了账本“交易卖方发现买方创,成交易就能完,可以将鸡交给张三了比如李四这时候就。有被写进账本如果交易没,周五才能进行”交易将等到下。

  其次“,有一个编号每笔交易都,交易格式记录到账本里才算有效而且必须采用输入和输出的标准。张三给李四转账10元钱上面提到的第一笔交易:,准交易格式记录并没有采用标,无效交易应被当作。式范本(如图1。1所示)我这里给出一个标准交易格,买一只鸡要支付10元钱假如张三从李四手中购,没有指向张三的交易先在账本里查找有,有一条编号为13的交易比如正好账本的第3页,出指向张三其第1条输,20元钱金额为,的金额10元钱大于需要支付,应该指向该位置(定位)于是新创建交易的输入就,本第3页即为账,号13交易编,条输出第1,盖上红色印章表示被消费过然后将这条指向张三的输出。金额是20元钱由于要花费的,元钱的找零还有10,将产生两条输出所以该笔交易,四的10元钱一条是指向李,张三的10元钱另一条是指向,这笔交易的记录这样就完成了。格式的好处在于这种标准交易,钱的来龙去脉能查询每一笔。”

  络中的每个节点在验证交易时张三的恶行会得逞吗?如果网,入是不在区块链中仅检查交易的输,三得逞了很显然张,三重、甚至N重支付张三将完成双重、。以所,的故事中在前面,中本聪的原话我们漏掉了:

  四是一个天才4、如果李,第一个得到答案每次解题都是,区块都由李四产生这意味着所有的。化”的区块链系统?是否有存在的价值此时的区块链系统将会退化成“中心?

  学的角度来讲注意:从经济,量永远是恒定的整个村的经济总,乘以村民数量即1000元,不合理之处可能存在。

  P网络中的一个节点(Peer)大厅里的每个村民就好比是P2,的权利和遵守的规则每个村名享有相应。如例,创建交易的权利每个节点都拥有,验证交易并传播有效交易也有应尽的义务—必须。服端的中心化网络有较大的不同P2P网络与传统的服务器对客,息集散地(如图1。6(b)所示)中心化网络中的中心节点是唯一的信,多的“特权”而且拥有更;可以拥有全网数据的副本而P2P网络中的节点。

  可见由此,意节点”具有“免疫”功能区块链技术对网络中的“恶。然当,好人是居多的现实世界里,偏少的坏人是。实上事,有链才需要考虑的问题防止节点“作恶”是公,区块链分类详见第五章。

  聪的描述根据中本,最新一页纸上记录一部分交易每周五上午老王会在账本的,量不定交易数,满整页纸但最多写。记账人、和页码以及交易记录该页纸上有确定的记账日期、,中还有一个名称在区块链技术,lock)叫区块(B,区块)有序的链接起来整个账本由连续的页(,lockchain)也被称为区块链(B,被称为区块高度页码所在的位置,。3所示如图1。的本质就是账本本故事中区块链。记录呢?在1。3。6节中将给出答案那么为什么要以区块为单位保存交易。

  》一书中对区块链原理和相关术语的介绍以上就是《从零开始自己动手写区块链。容易搞懂是不是很?

  被写进了账本(区块链)中李四发现张三写给他的交易,onfirmation)也就是交易得到了确认(C,给张三来完成交易于是就可以将鸡交。写进区块链就能得到确认故事中的例子是交易一旦,会被更改了该区块就不。数字货币中但真实的,因会导致偶然事件的发生由于共识算法自身的原,数据回滚的情况(比如比特币中的偶然分叉)可能会出现区块链数据在接下来几个区块内,确认变得更复杂这使得交易的,六章中的区块链分叉具体请读者参考第。在当前区块上继续添加6个区块比特币中交易的永久生效需要。的讲简单,三写给他的交易李四要想确认张,页的基础上再写上6页必须保证账本在100。味着这意,一定“延迟”的交易确认是存在。

  到另一种办法聪明的张三想,只鸡需支付10元钱比如他要向李四买一,了两笔交交易于是他创建,自己相同的未消费输出两条交易的输入指向,输出指向李四第一条交易的,(如图1。16所示)第二条输出指向自己,写在不同的纸条上并分别将两条交易。交易的纸条给李四张三将写有第一条,是有效的李四认为,本上并在大厅内传递将其写在自己的草稿;同时与此,纸条传递给大厅中的其他人张三将写有第二条交易的,条有效交易这也是一,大厅内传递也会迅速在。

  本聪的年轻人村里有个叫中,种解决方案想到了一。人召集到村口他将全村的,己的想法介绍了自,是这样的他的原话:

  完说,账本的第一页纸中本聪写满了,只有一笔交易这张纸上有且,和指向他们的1000元钱记录了村里所有人的名字,。4所示如图1。

  的人不遵守规则“如果创建交易,李四的钱创建交易比如张三用指向,是自己的签名确,写到自己的草稿本上张三可以将交易复,实村民验证通过但不会被其他诚,他们的草稿本上也就不会被写到,写进账本了更别提被。”

  情况是现在的,池中已经存在“无效交易”网络中有部分节点的交易,易”写进区块链进生效要想将这些“无效交,在黑板上(打包并广播)必须由获胜的矿工将其写,节点的独立验证然后接受其他。

  要提醒大家“所以需,获胜的人每一个想,图伪造交易都不能试,绝对仔细而且要,的记账权和奖励因为得到最终,人的严格验证必须经过所有,他人拒绝将这一页写入账本因为无效的信息将导致其,励交易包括奖。”

  意的是需要注,励是固定值故事中的奖,金额5元钱仅包括创币。得的奖励除了创币金额外比特币中获“胜矿工”获,交易费还包括。时同,金额是衰减的比特币的创币,章中的内容详见第六。

  提到过前面,的角度讲从经济学,数字货币总量是恒定的以老王为中心发行的,经济学的规律可能不符合,和“创币”结合起来中本聪将“挖矿”,参与“挖矿”的积极性既激励了村民(节点),济总量总是在增长的规律也让数字货币更符合经。前为止到目,块链里在区,块中的交易)是没有输入的只有创币交易(包括创世区,者UTXO在区块链中位置的输入其他所有交易都应该有指向所有。

  on)的公平性得不到统一交易(Transacti。所有权的转移交易的实质是,币为媒介常常以货,有货币在流通如果桃源村,换的物品都被定了价格并且每一件可能作为交,不会发生争执张三和李四就,就迎刃而解交易的问题。

  哈希值(详见第六章工作量证明原理)比特币解题实质是不断计算满足条件的,的几率就越高速度越快获胜,为哈希运算而设计的“矿机”所以涌现出性能更强大的专门。工”组成队伍还有一些“矿,中起来获得更大的算力将所有人的计算设备集,每个人的贡献进行分红“挖出”区块后根据,称为“矿池”这种团体被。时存在一定风险“矿池”过大,他的队伍一样就像张三扩大。

  零开始自己动手写区块链》本文引自裴尧尧新书《从,本聪发币故事书中原创中,信等)记账系统与区块链记账的区别通过对比传统交易系统(支付宝、微,易懂通俗,槛低门,一读值得。下来接,来听故事吧让我们一起。

  然当,的“同伙”越多如果张三拉拢,节点在增加区块链分叉,受含有“无效交易”区块但诚实节点仍然不会接。15所示如图1。,成为了张三的“同伙”如果绝大多数节点都,点”?之前的“诚实节点”变成了“恶意节点”?实际上并非如此双方的身份是不是会发生互换?张三与其“同伙”变成“诚实节,目的是为了欺骗“诚实节点”因为张三和“同伙”作恶的,伙”之间的“相互欺骗”现在却变成了张三和“同,已经发生了改变显然游戏规则。永远“诚实”“诚实节点”,会被“诚实节点”排除在外而“恶意节点”的恶行将。

  前为止到目,货币还存在一个问题中本聪发行的数字,没有交易账本里,任何人的交易输出或者说没有指向,都没有有钱所有村民,进行交易那要如何?

  述中可以看出从中本聪的叙,点类型有两种网络中的节,遵守规则的一种是完全,干坏事的另一种想,捣乱的或者。写在了比特币客户端程序中比如比特币系统中的规则都,遵守规则较难实现普通用户如果想不,或“黑客”尝试在网络中不遵守规则但仍然会有个别“程序开发人员”。称为“诚实节点”遵守规则的节点,称为“恶意节点”不遵守规则的节点。下来接,节点”可能存在的“捣乱行为”作者将和读者一起分析“恶意,何影响区块链运行的并分析这些行为是如。

  实上事,应该是单个输入和单个输出的集合复试记账法中交易的输入是和输出。书中在本,入和输出单个输,单元和输出单元也被称为输入。

  举例都是虚构的“我之前所有。的账本是空的目前我手上,何人的交易输出也没有指向任,没有钱大家都,成一笔交易的是不可能完。人的平等权益为了确保所有,页上写入第一笔交易我将会在账本的第一,没有输入这笔交易,每个人的只有指向,0元钱的输出金额为100。笔交易开始从我写完这,币已经成功发行了也说明我们的货。是1000元钱每个人的余额都,整大家就可以自由交易了从本周五上午8:00。”

  问题是现在的,传播交易的具体流程到底是这样的呢每个村民(节点)创建、验证、和?

  写在纸条上后“张三将交易,本上复写该笔交易先在自己的草稿,条传给李四然后把纸。过纸条李四接,是按照标准格式记录首先检查交易是不,自己的账本然后对照,名是不是匹配检查输入和签,是说也就,向张三的未消费输出交易的输入必须是指,张三的签名签名必须是,名不是伪造的而且这个签。入是李四的比如交易输,是张三的签名却,为无效交易交易将视。无误后确认,相等(图1。8为交易验证流程图)李四再核对交易输入和输出金额是否。

  ear to Pear Network)中本聪的做法就好比搭建了一个对等网络(P,点对点”或“端对端”网络也被称为P2P网络、“,点(计算机)都彼此对等位于网络中的每一个节,提供网络服务各个节点共同。Peer-to-Peer)网络架构区块链网络基于国际互联网的P2P(,Peer)构成由对等节点(,的拓扑结构相互连通每个节点以“扁平”,心化服务、以及层级结构不存在任何服务端、中,约定(P2P协议)而且必须遵守相同的,(a)所示如图1。6。属于对等网络的应用BT、迅雷下载都是。

  的货币顺利发行“为了让我们,要大家一起完成还有以下几点需。先首,物品都有一个统一的价格村里的每一件可能交易的,家共同商议决定这个价格由大,用元、角、分货币单位采,位为1分钱最小货币单。”

  程是相互独立的验证交易的过,照自己的账本进行每一个节点都是对,交易的独立验证所以也被称为,也是如此区块验证。

  意的是需要注,(如比特币)不同与主流数字货币,前为止到目,账人是固定的故事中的记,块)是由固定的老王创建账本的最新页(最新区,、获胜“矿工”、记账权威等)预先是不确定的而主流数字货币的记账人(也被称为区块创建者,续故事中将继续讨论那到底又是谁呢?后。时同,链接与故事中的情形也有不同之处区块的数据结构以及区块之间的,续章节中详细讨论这些细节将在后。

  己失败的原因在于中心化聪明的中本聪意识到自,去中心化的方法于是苦思冥想。去苹果树下思考他并没有学牛顿,懈的努力经过不,可行的解决方案终于让他找到了。村里的会议大厅里他把大家召集到,己的想法介绍了自。

  程是相互独立的“整个验证过,环节验证不去通过只要中间有任一个,写到各自的账本中则不得将信息誊”

  上做了适当的改进在之前规则的基础。录在账本的交易中我们的钱仍然记,准格式写入账本交易还是按照标,交易的形式进行依旧采用集中,五上午8!00点整开始交易时间还是每周星期,间不确定但结束时。账本最新的一页为止每次的交易也是写满,改到会议大厅但交易地点。之处在于还有不同,只有一个以前账本,王保管由老,人手一个账本现在是村里。”

  解决的主要问题总结为于是可以将区块链技术,的情况下保证数据的一致性分布式系统如何在没有中心,式共识问题也就是分布。了一种信任区块链建立,记帐中心“老王”(中介的功能)之前的中心化记账是因为村民信任,具备中介功能的中心节点而区块链系统中并没有,本数据的一致性却仍然能保证账。场景中真实,靠代码来实现这种信任依。

  中进行交易集,8:00-12!00交易时间为每周五上午,点在村口交易地。线整换句,等着大家来交易老王就会在村口,满一页账本为止交易总量以写。最终价格是10元钱一只鸡经大家商量后,手里买一只鸡张三想从李四,午9!00整在村易他们约定好本周五上。9点左右到了周五,一同走向村口张三和李四,账本正在等他们看到老王拿着。老王说张三对,账10元钱给李四转。一眼张三老王看了,本人无疑确定是他,查找有没有指向张三的然后开始仔细在账本里,的交易输出未被盖红章。儿功夫一会,笔指向张三的交易老王就找到了一,20元钱金额为,没有被消费过而且这笔钱并,四10元钱足够付给李。第一笔交易这是今天的,开账本老王翻,写上今天的日期在最新的一页上,写上这笔交易然后认真的,输出上盖上红章(图1。1)并在指向张三20元钱的交易。了看账本李四看,指向自己交易确实,0元钱无误金额也为1,的鸡给了张三于是把手上,成功交易,兴兴回家了他俩高高。想早点回家老王今天很,王中午到他家吃鸡因为张三请了老。有更多人来交易于是老王希望,交易的数量是写满账本因为规定了每次集中,有人需要交易写满后如果还,等到下周五就必须要,能提前回家而老王却。本没写满如果账,:00或者直到写满老王就必须等到12。”

  媚的春日午后一个阳光明,吵杂声中醒来中本聪在一阵,满了村民家门口挤,后才得知细问之,出回家老王外,的独木桥时在经过进村,本掉进了水里不小心将账,湍急水流,不回来了再也找。丢了账本,钱都没有了等于大家的,起跑线上又回到了。余额少的人占了便宜像张三这种人本身,的只能吃哑巴亏李四这种余额多,中本聪都来找,到很愧疚中本聪感。要的是更重,的平衡被打破原本有交易,都乱了套整个村。

  理部分外除了原,示区块链技术该书从底层揭,俗易懂同样通,浅出深入。时同,写了配套学习程序作者也为该书专门,b开源地址为githu:

  民都是诚实可信的“如果每一个村,守规则的都是遵,交易是有效的比如创建的,程是符合规矩的验证交易的流。递到了每一位假设纸条传,该记录着完全一样的交易则每个人的草稿本上应。”

  耳盗铃的做法这是一种掩,账本(区块链数据)张三修改了自己的,己看来是“有效交易”自己创建的交易在自。本并没有被修改但其他节点的账,到其他节点时当交易传播,账本中找到正确的输入其他节点无法在自己的,绝这笔交易就会直接拒,自己到交易池中不会将其放进,矿工”是张三如果“获胜,块将会被拒绝张三创建的区,包含无效交易因为区块中;”来自其他节点如果“获胜矿工,三创建的无效交易区块中将不包含张。都能接受他的交易张三想让其他节点,有人的账本必须修改所,量是巨大的这种工作。

  比特币对应于,程也叫“挖矿(Mining)”求解中本聪所给出的数学题的过,出贵重金属不同虽然和真实的挖,创造价值但同样能,特币“挖矿”的“矿机”如图1。10所示为比。也被称为“矿工”解题的人(节点)。的数学难题将会在第六章详细介绍“挖矿”到底是要求解一个怎样。场数学竞赛这就好比一,为了夺取记账的权利“挖矿”的本质是。题是但问,燥的数学难题呢谁会愿意去解枯?

  一种情况3、还有,轮竞赛中在同一,几乎同时找到解题答案有两个或者更多的节点,故事场景中可能会比较好解决又应该以谁创建的区块为准?。实场景中但在真,播自己的有效区块“矿工”同时广,会被写进区块链到底哪个区块?

  建交易时2、在创,交易创建者的签名输入中需要提供。可以被伪造如果签名,XO都存在被盗用的风险则意味着所有人的UT。一个书法家想象张三是,他人的签名很会模仿。TXO创建一笔交易于是张三用李四的U,签名传递出去并伪造李四的,XO是真实存在的由于李四的UT,模仿得以假乱真只要张三将签名,存放至自己的交易池中(需要注意的是这笔交易就会被其他节点当作有效交易,现实场景如果是,景中李四如果在场不需要考虑故事场,三的作弊行为)可能会发现张,区块链得到确认最终将被写进。此因,“伪造签名”的有效途径区块链技术中必须有防止。

  直的老王来保管账本由诚实、正,王来记录交易由老,三方记账中心老王就是第,记账权威或者说,在很大程度上取决于老王哪些交易应该被写进账本。微信支付、支付宝等日常生活中使用的,lization)记账的代表都属于中心化(Centra,威(服务器)进行认证和记录用户间的交易通过第三方权。方说比,额也只是一个数字读者微信账户的余,的所有交易的简单统计该数字来自对读者有关,和自己有关的交易记录可能读者手机里仅存放,读者发送的支付交易时但微信服务器在验证,中的记录为准仍然以服务器。因为这是,可以自行窜改或者“伪造”的读者个人手机中的交易记录是。全网所有的交易记录微信服务器中存储着,的账本一样就好比老王。

  专业术语很多区块链中的,本身的缺陷由于故事,概念都解释到并不是没个,”、“SPV验证”、“脚本”、“智能合约”、“软分叉”、“硬分叉”等等比如“地址”、“加密”、“钱包”、“哈希值”、“链式连接”、“完整节点,中我们会逐一讨论这些在后续的章节。

  显然很,李四外的其他所有节点接受张三创建的交易将会被除了,被写进区块链最终极大可能。造呢?这属于区块链加密的内容那么如何才能保障签名不可伪,第三章详见。

  我虚拟的故事“以上还是,只是有一个空账本现在每个人手上都,发生交易不可能,第一页写上一笔没有输入所以请大家在自己账本的,向全村人输出指,交易(图1。2所示)金额为1000元的,人的均等启动资金这将是我们每个。”

  开透明的账本是公,少一目了然谁钱多谁钱。财起意的行为会不会出现见。李四钱多比如知道,人强迫李四给他们转账张三可能会召集其他。

  前为止“到目,座各位的草稿本上交易只是写进了在,易还可能还有些许差别而且每个人草稿上的交,写进账本并没有被。账本的交易才会被所有人认可但我们的规则是只有成功写进,建的交易写进各自手中的账本里之前精明的李四在没看到所有人将张三创,将鸡给张三的是不会轻易。都清楚大家,对照自己的账本独立进行的验证交易的过程是每个人,账本不一致如果各自的,别有效交易那么如何判,致性是货币发行的必要条件所以保证所有人账本的一。以从在座的各位中选出一位如何保证一致呢?我们可,的交易写进账本将他草稿本上,人将获得记账的权利也就是说选出来的,在场每位的机会都是均等的如何才能被选出呢?事实上。”

  源村数字货币的发行本小节继续讲述桃,去中心化主题是,技术的原理也是区块链。 共识算法”、“确认”、“诚实节点和恶意节点”、“区块链分叉”、“双重支付”、“虚拟机”、“矿机与矿池”介绍术语包括“分布式存储”、“对等网络”、“交易池”、“挖矿”、“创币交易”、“工作量证明”、“共识与。

  此刻此时,最新区块)写进了自己的账本(区块链)所有村民(节点)将验证后的110页(,节点)账本数据的一致性这样就保证了每个村民(,个共识(Consensus)即所有村民(节点)达成了一,答案(工作量证明)而达成的这种共识是通过村民验证解题,nsus Algorithm)或者共识机制(Consensus Rule)采用工作量证明(POW)来达成共识也被称为工作量证明共识算法(Conse。是比特币采用的共识算法工作量证明(POW),oof of Stake)、拜占庭容错算法(Practical Byzantine Fault Tolerance)等目前常用的共识算法还有:Raft协议、权益证明(Proof of Stake)、委托权益证明(Delegated Pr,6章中介绍将会在第。

  区块链技术本小节结合,数字货币的故事讲述一个发行,币是中心化的但该种数字货。未消费输出”、“中心化”、“区块与区块链”、“创世区块”介绍的术语包括“交易”、“数字货币”、“复试记账法”、“。

  字货币发行起来了虽然桃源村的数,活中的交易问题解决了村民生,是完全合理的从逻辑上讲,一些问题但也存在。

  看一个实例“我们来,午8:00点整每到星期五上,稿本来到会议大厅排排坐好大家都带上自己的账本和草,方请坐在一起需要交易的双。买一只鸡需支付10元钱如果张三想从李四手上,标准交易格式写在小纸条上他需要创建该笔交易并以。是这样的大致过程,本中查找属于自己的钱张三先在自己手里的账,的指向自己的交易输出也就是没有被盖过红章,一条编号为13的交易比如账本的第3页有,出指向张三其第1条输,5元钱金额为,付10元钱但是不够支,续在账本里查找于是他就会继,找到一条编号为4的交易很快他又在账本的第5页,向自己的6元钱第1条输出为指,足够支付10元这两笔钱加起来,作为当前交易的输入写在小纸条上于是将这两笔钱的在账本中的位置,不可伪造的签名并签上自己的。四的10元钱输出是给李,6-10)=1元钱和给自己的(5+。如图1。7所示)(交易纸条范本。”

  t Transaction Output未消费交易输出的英文名称为Unspen,TXO简称U,交易输出单元更准确在本书中称为未消费。定义可以看出从以上交易的,零散的记录在账本中用户的UTXO被。不可分割的UTXO是,两种状态它只有,和被消费未消费,溯源的原因这也是其能。实上事,模型也称UTXO模型基于这种数据结构的,模型的数字货币中在基于UTXO,余额的概念没有账户和,TXO只有U,TXO模型的区块链技术本书讨论的就是基于U。

  以后从此,在每周五顺利举行桃源村的交易都会。得奖励为了获,往中本聪家跑有些人经常,数学知识向他请教,的解题能力提高自己。组成一个团体还有一些人,来提高自己的竞争力达成协议一起解题,献分配奖金然后按贡。放弃了解题也有一些人,易和记账只参与交。

  分散的记录在账本里既然村民所有的钱被,在不同页中一般还记录,自己有多少余额呢那么村民如何知道?

  实上事,工的损失是巨大的李四作为获胜矿,了记账权虽然获得,块中写入了“无效交易”但由于在广播的打包区,大部分节点接受导致区块没有被,也泡汤了挖矿奖励,挖矿奖励创建交易时因为当李四使用该笔,王五之外的其他节点拒绝会被除了张三、李四、,笔钱支付给张三和王五这意味着李四只能将该,的是不可能成功的支付给之外的人。“矿工”所以作为,为”来利益最大化应该通过“诚实行。

  本)是公开透明的1、区块链(账,看账本张三查,账户余额多得知李四,见财起意可能会,到隐藏用户身份要如何才能做。

  和需要交易的人参加“以前交易是老王,交易的人以外现在除了需要,参加越好越多人。买方告知老王以前交易是由,录到账本里老王直接记,卖方确认然后由。标准格式写在纸条上现在交易由买方以,在大厅里传递然后将纸条。规则是传递的,效交易传递有,效交易拒绝无。一只鸡需付款10元比如说张三向李四买,张三创建交易由,将该条交易写在纸条上张三按照标准交易格式,条交个李四然后把纸,将纸条传递给大厅的其他人李四验证交易有效后就要,李四的工作其他人重复,条就在大厅内传播开来这样写着有效交易的纸,部分人验证过直到纸条被大,大厅前面的箱子里最终会被放进会议。至少有一重身份在场的每个人都,交易传递到你手上时那就是当写有字条的,性并将其传递出去负责验证交易有效。交易发起者如果你是,重身份将多一,创建交易还要负责,有权利创建交易当然每个人都。”

  什么要将交易封装为区块的问题此时就能回答1。2。6节中为。易系统只有一个公共账本传统的有中心节点的交,账本对验证交易中心节点对照,达成共识不需要,易就是达成共识或者说验证交。保证数据一致的共识过程而分布式系还需要一个。识是以单笔交易为单位如果分布式系统的共,低效的显然是。打包成区块将若干交易,系统的效率可以提高。想象可以,交易都要单独进行共识比特币系统对每一条,多大的延迟那该会有。

  节的学习经过本章,握了区块链的工作原理相信读者已经初步掌,识和问题带着知,新章节的阅读让我们继续。

  前为止到目,以老王诚实、可靠为前提的桃源村数字货币的发行是。记账中心老王是,人为”写入实际未发生的交易如果老王在未写满的区块中“,盗窃”行为可能存在“。例子举个,关系很“铁”张三和老王,老王吃鸡经常请,余额越来越少眼看着自己,劳动力去挣钱又不想出卖,易页中写入指向自己的交易于是求老王在未记录满的交,别人发现为了不让,小额的可以是。的“人为”交易如图1。5所示,吴十的1元钱的证据就是张三试图盗用。生活中在实际,是可能出现的这种情况也,子货币支付App比如你使用某种电,用你1分钱记账中心挪,被你发现并不容易。

  前为止到目,字货币已初具雏形中本聪发明的数。一些问题但还存在,谁来保管账本比如应该由,来记账又由谁?

  本上讲从根,真正的双重支付张三并没有完成,图”完成只是“试,能成功但不可。性?请读者参考第六章中的51%攻击那么是不是没有完成双重支付的可能。

  实质就是一个记账系统故事中的区块链系统,记账系统不同的是与微信、支付宝等,心服务器的他是没有中,了一种中介信任他通过代码建立。户信任微信、阿里为前提的因为传统的交易系统是以用。

  从两个方面理解以上的过程可以,放了奖励一是发,了数字货币二是发行,币总量的增长实现了数字货。(Coinbase)实现发行货币是通过创币交易,矿工打包的最新区块)中的第1条交易即中本聪描述的账本最新一页(获胜。图1。11所示创币交易格式如,输入没有,者的唯一输出单元只有一个指向获胜,奖励数额且金额为。

  意的是需要注,的故事情节中就目前为止,输出总金额是相等的交易记录中的输入和。货币的交易中在主流数字,个交易费会存在一,易费=输出总金额即输入总金额-交。

  和解题答案工工整整的板书在黑板上后“当李四将自己账本最新一页上的交易,证解题答案的准确性在场的其他人首先验,们就说过前面我,点是得到答案困难我所出的题目的特,案却非常简单但是验证答,验证答案是否正确每个村民都能轻易。正确如果,是不是没有输入检查第一笔交易,一条输出且只有,5元钱金额为。自己的账本然后对照,每条交易的有效性和之前一样验证。答案正确如果解题,易都有效所有交,账本的110页那么请翻开自己,动的誊写到自己的账本里将黑板上的信息原封不,的红色印章并拿出自己,出盖上红章表示被消费过将每笔交易输入指向的输。”

  提的是值得一,创世区块不同与故事中的,块只有一笔交易比特币的创世区,比特币创始人(中本聪)该交易的输出单元指向,0比特币金额为5。然当,一种数字货币如果读者发行,友记录一定金额的创世币也是完全可以的想在创世区块中给自己、亲戚、或者朋。

  前为止到目,有效交易即使是,复写到了自己的草稿本上也只是被大厅里的村民们,Memory Pool)草稿本也被称为交易池(,收到的有效交易存放每个节点。交易被写进账本还没有任何一条,写进区块链或者说被,易还没有得到确认也可以称所有交。池中都有很多交易每个村民的交易,并非每一条交易都传递到每个人手中)可能每个人的交易池还不一样(比如,应该被大家写进账本那么到底哪些交易,据的完全一致呢如何保证账本数?

  个问题中以上三,为中心化的问题前两个问题是因,利过大的特殊机构系统中存在一个权,能是去中心化要彻底解决只。账本是公开透明的第三个问题是因为,与个人信息挂钩转账地址直接,加密处理没有进行。

  效性是一个繁琐的工作对照账本验证交易的有,慎就会出错村民稍有不。是于,种验证交易的机器中本聪发明了一,和写着交易的纸条这种机器需要账本。个属于自己的机器每个村民都有一,证交易时需要验,交易的纸条放在指定的位置村民将自己的账本和写着,证交易的有效性机器会自动验。

  纸条持续达2小时之后“在创建交易、传递,随机找一个数学题我将在我的题库里,的特点是这些题目,较困难解答比,证结果却很简单但知道答案后验。大家讲课时都详细介绍过这些数学题我在以前给。位都可以解题在场的每一,解出答案谁第一个,大家告知,以停止答题其他人就可,的获胜者已经产生因为本轮记账权。”

  实是一种虚拟机中本聪发明其,的虚拟机(比特币中被称为脚本引擎比如比特币、以太坊系统都有自己,灵完备非图;机功能更强大以太坊虚拟,完备)图灵。的“机器”相比故事中,验证交易、区块的有效性虚拟机的作用不仅仅是。人”不同和“个,有虚拟机即使没,易也不会出错计算机验证交。?对于一个中心化系统那虚拟机的作用是什么,级、或变更时当系统需要升,的版本即可直接发行新。中心化系统但对于去,要经过讨论并取得共识每一次升级、变更都需。单的例子举个简,的交易形式出现时比如系统需要有新,可能要进行全面升级没有虚拟机的系统。拟机的系统对于有虚,了验证该种交易形式的功能在设计之初就给虚拟机设计,形式出现时当新的交易,进行验证系统也能,统的适应性增加了系。中的多重签名详见第四章。

  (“挖矿”)通过解题竞赛,池)中的交易写进账本最新的一页(最新区块)胜出的李四(“矿工”)会将原先草稿本(交易,题答案写在黑板上广播出去然后将该页(区块)和解。”当成一份工作如果把“挖矿,(Proof of Work解题答案也被称为工作量证明,OW)简称P。向谁证明工作量那么李四需要?

  此从,币就正式发行起来了世外桃源村的数字货。五上午每个周,等着大家来交易老王就在村口,记录在账本里的最新一页中并将有效交易以标准格式。天天过去时间一,多卖少张三买,额越来越少账本里的余;多买少李四卖,来越多余额越。

  UTXO完成两笔支付张三试试图使用一个,ble Payment)被称为双重支付(Dou。聪的规则遵照中本,TXO完成两笔支付的最终去向来分析一下张三使用相同的U。来讲具体,大厅内传递过程中两条交易分别在,中的节点会拒绝第二条交易将第一条交易写入到交易池,中的节点会拒绝第一条交易将第二条交易写入到交易池,传播时抵达节点的顺序这取决于交易在网络中,将会被接受先抵达的,将会被拒绝后抵达的。是于,在不同节点的交易池中两条交易将分别记录。被写进区块链哪一条交易会,达本轮的“获胜矿工”取决于两条交易谁先到。易池中接受了第一条交易如果“获胜矿工“的交,完成交易李四就能,易将会作废第二条交。接受的是第二条交易如果“获胜矿工”,易应该取消则李四的交,易已经被作废因为第一条交。

  听起来很有趣虽然这个想法,一些问题但也存在。如说比,给李四转账10元钱”账本中的交易“张三,哪里?张三要给李四转账张三的10元钱到底在,指向张三的钱账本里应该有。的解决这个问题如何更直观明了?

  货币没有实体形式中本聪想要发行的,本中的数字仅是写在账,体里及时流通但能在特定群,ital Currency)也就是一种数字货币(Dig。拟货币的一种数字货币是虚,范围更广虚拟货币,家”时的“石头”、“贝壳”等还包括游戏币、小孩玩“过家。别于电子货币数字货币也有,支付属于电子货币的范畴我们常用的支付宝、微信,在账本上的数字虽然也是记录,数字货币但有别于,有实体形式电子货币,行发行的法币其对应于央。货币是比特币最成功的数字,活中及时流通可以在现实生。

  想继续将“游戏”玩下去如果张三与其的“同伙”,际上是短暂的这种分叉实。区块编号是120(账本120页)假设张三与其“同伙”记录的最新,4(a)所示如图1。1。他节点(非张三与其“同伙”)如果下一个区块创建者来自其,将仍然会保持在120广播的最新区块的编号,块会被其他节点接受该区块由于是有效区,4(b)所示如图1。1。时此,四创建的区块并没有被其他节点接受张三与其“同伙”会意识到之前李,“游戏”要想继续,0区块替换旧区块必须用新的12,据将保持一致最终全网的数,4(c)所示如图1。1。

  就像链条一样这种交易格式,移链接起来将资金的转,李四、王五、赵六的交易链条如下图1。2所示为张三、,的页)和区块是相链接的区块链中除了区块(账本,输出紧密链接在一起交易也通过输入和,中的交易顺藤摸瓜从区块链(账本),金流动的来龙去脉可以清楚的追溯资。货币是有区别的这与目前使用的。子来说举个例,了李四1万元假设张三给,王五1万元李四给了,赵六5千元王五又给。千元去消费赵六要拿5,还是王五?或者属于他自己?我们并不清楚他到底用的谁的钱呢?是来自张三?李四?,标准交易格式进行记账但是如果采用中本聪的,以追查到的是完全可,钱都是一个独立的输出因为王五收到的每一笔,要消费时当他需,输出都能向上溯源他使用的哪一个。比如还,可能来历不当张三有1万元,法渠道通过合,元给了李四将这1万,元就被“洗”白了那么李四这1万,记账法却是不可以的但采用中本聪的复试。

分享: