币圈百科:比特币交易基础

大家好,上节课我们聊到比特币是一种数字记账系统,使用这套系统我们不再需要第三方机构就能够和陌生人直接交易。

币圈百科:比特币交易基础

每次交易大家只需要扯着嗓门大喊一声“张三给李四付了100元”、“赵六给王五付了300元”哪怕张三、李四、王五、赵六并不认识,由于支付信息已经被广播给全体参与者,因此日后想抵赖可没门。

在我们正式开讲区块链之前,有必要先梳理一下比特币交易的基础。

第二课:比特币交易基础

在比特币世界当中,交易记录就像是电子邮件一样会随着产生而分发给所有人,人人手里都有一份副本,作为这笔交易的共同见证者。

币圈百科:比特币交易基础

小B君的死党A仔想到既然数字货币具有无限可复制性,比特币世界又没有一个第三方信任机构(例如咱们日常生活中的银行、支付宝等)进行中心化管理,无法实时修改“账户余额”来防止双重支付,那么岂不是可以无限复制手里的数字货币买买买!毕竟同一份电子邮件多发一次是没有什么成本的,这样光是想一想就睡不着觉了,要买的东西实在太多了,且让我A仔好好列个清单!

喂喂喂,小B君不得不打醒A仔的美梦,想要实现“双花交易”可没这么简单!

在中本聪设计比特币的时候也并没有“余额”这种概念,而是设计了一个叫做UTXO的东西,也就是“未被花费的交易输出”,划重点了!

就像在上班路上买早点,打开钱包发现里面有5张1元、2张10元和1张20元(没错了,就是A仔干瘪的钱包)合计5*1+2*10+1*20等于45元,这一共5+2+1等于8张纸币就是未被花费的钱,可以用于这次买早点进行支付,我们并不会刻意去记忆其中的这张10元钱是谁给我的,也不会考虑另外一张20元是买什么东西找零回来的,我们只知道这些钱还未被花费,因此现在可以使用即可。

在比特币世界里也是一样,UTXO是比特币交易中的“基本单位”,整个世界的数据就像是水管中的水一样,被一节节连接在一起管道传输,这每一节打包了大量数据的管道我们叫做一个区块,整个不断延伸的管道形成的链条就是区块链。

现在我们考虑刚才的买早点问题,在某个区块当中记录了5张1元、2张10元和1张20元是未被花费的钱,也就是UTXO,当A仔买早点需要7元的时候,他拿出其中一张10元进行支付,那么现在这张10元就不再是UTXO,找零回来的3张1元钱成为新的UTXO,那么这3元钱连同没有被花掉的5张1元、1张10元和1张20元组成下一个区块将要打包的UTXO,在这个问题上我们完全不需要考虑余额,只需要知道只有UTXO是可以被接受作为交易的就能够不出错,如果想要将同一张10元钱花两遍就无法实现,因为一旦支付成功这张10元的UTXO标签就被拿掉了。

那么现在问题就简单了,就像垃圾分类有可回收和不可回收一样,利用一个函数对新诞生区块中的全部交易进行检测,验证一下是不是每笔发生交易的比特币都能在UTXO记录中找到匹配,匹配不上的自然就是已经被花掉的比特币无法再次重复消费了。

值得注意的是,UTXO标签是不能被继续分割的,就像刚才A仔钱包里的那几张纸币,只能等待下次交易被花掉,然后产生新的UTXO(找零回来的3张1元钱),以此类推形成货币的价值转移。虽然我们要了解A仔的账户余额的时候,只需要对他名下所有UTXO加总计算就可以得出,但是实际交易过程中为了高效快捷,卖早点的人并不会问A仔身家多少,而是只要他能从钱包里掏出这次需要的钱就可以交易了。

币圈百科:比特币交易基础

经过这节课我们知道了比特币世界当中的交易就是不断的输入–输出–输入–输出进行价值传递,也明白了用来打包比特币信息的东西叫做区块,当有新数据出现的时候诞生新区块,一个又一个区块头尾相连形成了区块链,我们同样认识到比特币交易当中的基本单位是UTXO,每一次交易过后产生新的UTXO,那么不断追溯回去,第一个UTXO是哪里来的呢?这就要引出比特币世界一个十分有趣的职业——矿工,我们留待下节课讨论。

币圈百科:比特币交易基础

原作者: 币圈说明书

原创文章,作者:币圈说明书,如若转载,请注明出处:http://www.chain258.com/?p=17925

发表评论

电子邮件地址不会被公开。

联系我们

在线咨询:点击这里给我发消息

邮件:midysky@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息