打字猴:1.70386526e+09
1703865260
1703865261 最初的基于工作量证明的介绍:
1703865262
1703865263 Back, Adam. “Hashcash—A Denial of Service Counter-measure.”2002.
1703865264
1703865265 下载地址:http://www.hashcash.org/papers/hashcash.pdf.
1703865266
1703865267 Paxos共识算法介绍:
1703865268
1703865269 Lamport, Leslie. “Paxos Made Simple.” ACM Sigact News 32(4), 2001: 18-25.
1703865270
1703865271
1703865272
1703865273
1703865274 区块链技术驱动金融:数字货币与智能合约技术 [:1703863918]
1703865275 区块链技术驱动金融:数字货币与智能合约技术 第3章 比特币的运行机制
1703865276
1703865277
1703865278
1703865279
1703865280 在这一章我们重点剖析一下比特币的运行机制。前两章里,我们是在相对泛泛的层面讨论了比特币,在这一章中我们将深入细节,真正近距离地了解比特币所使用的数据结构、实际脚本以及语言,这种较为精准的介绍会为本书后面的章节建立场景。这一章会有大量细节性的信息,极具挑战。本章可以帮助我们真正懂得比特币的实质。
1703865281
1703865282 如第2章所述,比特币的共识机制设定了一个只允许往里写入的账簿,而且一旦数据被写入,它将永远被储存在那里。去中心化(或者分布式)协议确保了账簿中存储数据的共识,而矿工会执行协议并确认交易,这些机制可以确保每一笔交易都是真实发生的,而且账簿中的每一个比特币都没有被使用过。这样,这个账簿从功能上就形成了一种货币系统。同时,我们也假设,可以使用货币奖励矿工,使矿工有积极地完成记账操作的动力。在本章中,我们将详细介绍如何建立货币系统、如何奖励矿工,从而保证整个流程有序运行。
1703865283
1703865284
1703865285
1703865286
1703865287 区块链技术驱动金融:数字货币与智能合约技术 [:1703863919]
1703865288 区块链技术驱动金融:数字货币与智能合约技术 3.1 比特币的交易
1703865289
1703865290 让我们先一起看一下比特币的交易,比特币交易的过程其实就是不停地创造区块的过程,为了理解上的方便,我们先看一个简单模式的账簿,在这个账簿里,每一笔交易依次被添加到账簿里。
1703865291
1703865292 那我们如何使用这个账簿来创造一种货币呢?首先你可能想到(也是许多人误认作比特币使用的方式):建立一个以账户为核心的系统,可以创造新的币并且放入某人的账号,然后就可以转给其他人了。一笔交易的信息就像这样:“把爱丽丝账户里17个币转给鲍勃”,然后由爱丽丝签名。我们从图3.1可以看到,爱丽丝在第一笔交易里收到25个币,然后转了17个币给鲍勃,她的账户里应该还有8个币。
1703865293
1703865294
1703865295
1703865296
1703865297 图3.1 基于账户的账簿
1703865298
1703865299 这么做的不便之处在于,任何人如果想要确认一笔交易是否真实,就必须跟踪每一个账户的余额。让我们再看一下图3.1,当爱丽丝想要转给戴维15个币的时候她是否真的有15个币呢?为了搞清楚这个问题,我们必须回过头去看和爱丽丝有关的所有交易,并加总来确认当时的余额。当然,我们可以有一些更有效的办法,比如另外增加一个数据字段,用来更新每次交易后的账户余额,但这也增加了记账的工作量。
1703865300
1703865301 所以,比特币并没有用这种记账方式,而是用了我们在第1章1.5节里提到的“财奴币”相类似的方法来记录交易。
1703865302
1703865303 这种方式就像财奴币里的付币,每个交易中都有一个输入值和输出值。输入值可以看成是将被消费掉的币(这些币是前一个交易创造出来的),把输出看成是在本次交易中创造出来的币。铸造新币时,只会创造新币,而不会消费旧币(就像财奴币里的造币,只有输出,没有输入)。每笔交易都有一个独一无二的ID。每笔交易中可能有多个输出,输出的索引从0开始,所以我们称第一个输出为“输出0”。
1703865304
1703865305 我们现在来看图3.2。交易1是铸造新币的交易,因此没有输入,也没有签名;交易1的输出是向爱丽丝转移25个币。现在,爱丽丝想把一些币转给鲍勃,她就创造了一条新的交易,这就是图3.2中的交易2。在交易里,她必须明确指出要转出的币的来源(引用之前的某笔交易)。爱丽丝指出本次交易的币来自交易1中的输出0(也是交易1中的唯一输出),即向爱丽丝转移25个币。交易中,爱丽丝还要明确收款人——也就是输出的地址,在这个例子里,有两个输出,一个是转17个币给鲍勃,另一个是转8个币给爱丽丝自己。当然,整个交易由爱丽丝签名,这样,大家就知道这笔交易爱丽丝是确实授权了的。
1703865306
1703865307
1703865308
1703865309
[ 上一页 ]  [ :1.70386526e+09 ]  [ 下一页 ]