前记:本文是读《从0到1全面学透区块链》第2课的复述,目的是通过学习验证自己的理解及理解程度,以便更好地学习。
比特币的转账机制
假如我要给爸转一笔账,我用的是招商银行的卡,我爸用的邮政储蓄。一笔银行转账至少需要包含这3项要素:转账人的卡号,目标账户的卡号,充足的转账金额。转账时我在招商银行选择我要转账的卡号,输入邮政储蓄的卡号和转账金额,当然还需要预留转账用的手续费,输入密码后,确认提交交易。双方银行确认交易后,我的招商银行账户会减去相应的转账金额,我爸的邮政储蓄会增加相同的转账金额。这个场景在我们生活中非常平常。
那比特币的转账机制是什么样的呢?其实大体流程跟银行转账差不多,只是细节不一样而已。比特币转账双方都需要一个比特币地址,相当于银行卡号,每一张地址配有一个私钥,相当于银行卡的密码。假如A要转账0.1个BTC给B,A输入B的比特币地址和0.1个BTC,在发送之前,钱包会使用A的私钥将转账额和B的地址进行签名,再通过A的私钥生成公钥,将这些数据进行打包,发送给比特币网络。当然A的账户除了转账金额外,还要有一定量的手续费,这个费用是用于矿工打包记账使用的,手续费越高,打包优先级越高,交易也就越快确认。
交易广播比特币网络后,矿工(是所有矿工还是只有取得记账权的矿工没 弄明白)根据交易的公钥对交易进行验证,如果验证成功了,向全网广播验证结果。有记账权的矿工将该笔交易记录到区块链中,将A账户的余额减去0.1+手续费个BTC,将B账户的余额加上0.1个BTC,再将这个记账信息广播到全网,其他矿工也将这笔交易记录到区块链中,交易完成。
7个基本名词
1.「矿工/Minner」:在区块链网络中,矿工是指通过不断进行哈希运算来求解数学难题并产生工作量证明的各网络节点,通过算力来验证,确认交易并防止双重支付。
2.「挖矿/Minning」:挖矿是指利用电脑硬件计算、记录和验证被成为区块链的数字记录信息的过程。矿工通过挖矿求解数学难题从而获得创建新区块的记账权以及区块的比特币奖励,由于其工作原理与矿物开采十分相似,故称之为挖矿。
3.「算力/Hashrate」:算力是计算机能够完成一次数学程序的速度,譬如接受任何一组信息,并将其转换成字母和一定长度的数字的速度就称为算力。我们可以简单的理解为计算能力。解答比特币的数学题,只能靠计算机做随机的哈希碰撞。哈希碰撞是哈希算法的一种称呼。每秒能做多少次哈希碰撞,就是其 “算力” 的代表,目前主流的矿机为10T左右的计算量级,即一台矿机就能每秒做至少10的13次方哈希碰撞,我们可以说,这一台10T的矿机就有10T的算力。
4.「工作量证明/Proof of Work/POW」:一个矿工成功后,TA会把之前打包好的网络上的交易记录到一页账本上,同步给其他人。因为这个矿工能够最先计算出超难数学题的正确答案,说明这个矿工付出了工作量,是一个有权利记账的人,因此其他人也会同意这一页账单。这种依靠工作量来证明记账权而达成的共识机制叫做 “工作量证明”。
5.「权益证明/Proof of Stake/ POS」:“权益证明”是根据你在这个网络里拥有币的多少来竞争记账的权力,如果你持有的币越多,你的记账的权力的获取概率就越大,这种证明机制在一定程度上缩短了共识的达成时间,也不再需要大量消耗能源挖矿。简而言之「持有越多,获得记账权力概率越大」,这种共识机制叫 “权益证明”,英文简称 “PoS”。
6.「区块/Block」:区块表示一页账本信息。区块中包含什么信息呢?区块包含两部分信息,第一部分信息是这个区块的身份信息,包括这个区块诞生的时间、是第多少个、哈希值是多少、整个区块大小多少、上一个区块的哈希值、下一个区块的哈希值。区块的第二部分信息是这段时间内产生的所有交易记录,也就是这个账本里记录每一笔交易。
7.「区块链/Block Chain」:将区块按时间先后顺序连接成链条的一种数据结构。
后记:上面的内容虽然很简单,看起来有很容易理解,但是真正要把复述并口头表达出来还是有一定难度。有难度是有好处的,可以加深理解,这本书就以这种方式读了。
参考资料:
1.比特币私钥、公钥、钱包地址之间的关系
2.比特币区块链上的交易是如何进行的?| 区块链课堂第6问
3.一笔有效的比特币交易经历了哪些步骤?| 区块链课堂第9问
4.比特币交易过程中是如何加密的?| 区块链课堂第10问
5.比特币的技术来源
6.比特币 (Bitcoin) 系统是如何运行的?