基础课程第六课——交易(下)

每一个比特币节点会通过同时执行这解锁和锁定脚本(不是当前的锁定脚本,是指上一个交易的锁定脚本)来验证一笔交易,脚本组合结果为真,则为有效交易。

当解锁版脚本与锁定版脚本的设定条件相匹配时,执行组合有效脚本时才会显示结果为真。

交易脚本,就是智能合约的雏形,只是其本身相对于智能合约而言,一来不是图灵完备的,二来相对而言过于简单。(关于交易脚本,在后续章节中,我会专门来详细讲解,这里大家有一个基本的概念即可。)

五、找零

由于UTXO是不可分割的,然而输出有可能比输入小,所以需要一个新的输出到自己的钱包,这个输出就是找零。找零是必不可少的交易,否则系统有可能把多出的部分作为交易费支付给矿工,那也许交易费都要比交易本身贵啦。

可以把找零转移到另一个地址,当然也是UTXO所有者所拥有的地址,只是和之前的地址不同罢了,所以前一个未消费输出,被分成了两部分,一部分被支付给其他人,另一部分被找零给了所有者本人。

六、资金合并

比特币交易会存在许多输入与输出,找零就是资金分割,而同样资金合并也很容易。想合并资金只需要发起一个交易,这个交易里有多个输入和一个输出,输出的地址是他自己的地址。这样就实现了资金的合并。

七、交易费

交易费是输入和-输出和,交易费是处理交易的优先级,交易费越高,则被处理的交易优先级越高。而且比特币的交易费是和交易金额无关,而与交易长度有关,这是一个电子网络的世界,传输都是以字节为单位,所以就导致交易越长,需要支付的交易费越高。交易费不是强制必须的,不过矿工会优先处理高交易费的交易,而低交易费或者没有交易费的交易,则有可能要延后处理。

比特币区块链并没有要求强制手续费,现阶段,矿工主要还是靠挖矿的系统奖励。而随着挖矿奖励的每4年递减一半的比例,则到了后期,交易费成为矿工维护系统的主要动力。

八、挖矿奖励

属于一个特殊的交易(称为coinbase交易),所以说这个交易特殊是因为它只有输出,没有输入,可以理解为是凭空创造的输出。Coinbase交易是每个区块中的首个交易,这种交易存在的原因是作为挖矿的奖励而产生全新的可用于支付的比特币给“赢家”矿工,这也是为什么比特币可以在挖矿中被创造出来。(挖矿我会在后面的课中具体讲)

比特币刚出现的时候,基本都没有人知道,自然交易也少的可怜,所以挖矿奖励就成了矿工的主要动力,正是这种激励机制,让区块链系统高效的运转。初始的区块奖励是50BTC/区块,不过随着比特币的发展,每经历21万个区块,则区块奖励递减50%。21万个区块,按照10分钟一个区块计算,大概每经历4年衰减一次。从2009年1月3号挖出创世区块开始,现在进行到了第三个阶段,目前每个奖励是12.5BTC。

比特币的交易奖励将按照这个规律递减下去递减,直到最后四年,区块的挖矿奖励变成为1聪(亿分之一个比特币)。最后新的区块就不再产生挖矿奖励,区块链的总数量也就定格在2100万枚这个数字上。到那时候,比特币经过这么多年的发展,则交易费去取代区块奖励,成为激励矿工的主要动力。

九、有效验证

当一个新的交易被加入到总账中,它的有效性是否容易被验证?我们需要检查一下输入中引用的未花费交易输出,确认输入中的比特币并没有被花掉。因为我们使用了哈希指针,所以核查很快。我们只需要从所引用的交易开始,一直检查到帐本上最新的交易为止即可---而不需要从帐本建立之初的交易开始检查。而且,这种方法也不需要增加额外的数据结构。

十、共同支付

如果,一笔交易中有多个输入,而这多个输入分别属于多个不同的人,则这就是共同支付,因此这笔交易需要多个签名来实现。就好像我们公司的理事会,共有N个人,而每次只要有M个人同意,公司决议就可以通过。而通过比特币脚本可以实现同样的功能,在N个签名中,只要能获得M个签名即可实现支付。

我通过两节课,给大家讲述了区块链中交易的概念以及相关的具体细节,在交易中大家会发现密钥是作为交易的加解密的前提,在下一节中,我将和大家一起探讨一下密钥是什么?密钥所涉及的密码学知识?以及密钥在比特币中是如何工作的。


分享到:


相關文章: