主页 > imtoken在新手机上登录 > 【区块链与BTC】01.从公共账本到分布式账本
【区块链与BTC】01.从公共账本到分布式账本
公共账本
在一个有张三、李四、王五等人的村子里,张三和李四做了一个交易。 李四给张三提供货品,张三需要付钱给李四。 在现实生活中,张三有很多选择。 他可以选择现金或转账支付来完成交易。
为了更好地解释下面的内容,我们假设这个村庄是一个与外界隔绝的村庄(或者你可以这样想:这个村庄聚集了地球上的每一个人)。 我们给这个村子起个名字吧,就叫它杨村吧。
在杨村,有一位德高望重的杨村村长。 村里的村民都非常信任杨村长,愿意把钱存放在杨村长家里,让他保管记录。
假设张三从李四那里买了十块钱的东西btc转账不到账,但是张三出门没带钱。 张三对李四说:“我身上现在没带钱。不过你放心,我跟村长存了很多钱,我现在可以去取钱给你。” ”
李四道:“何必,跟村长说一声,从你名下转10块钱到我名下。”
于是张三和李四一起找到了村长,村长拿出一本小记事本,从张三名下转了10块钱到李四名下。 交易完成了。
这是使用公共分类账的示例。 在现实生活中,银行相当于村长的“公账簿记员”角色。 然而,这样的模式是有缺陷的:
公共账本非常依赖大家对记账员的信任:在杨村,大家需要相信村长会记录每一笔交易btc转账不到账,不会偷偷在账本上增减记录,不会突然卷款跑路或跑路。破产。
每次交易,都需要通知村长。 结果,交易的效率可能会降低。 如果有一天村长不在家,大家都找不到村长,交易就无法完成。
其他第三方因素(暂时忽略,有空再单独说这些因素)
于是,聪明的杨村村民开始思考:有没有一种不依赖单一“记账员”的记账方式?
分布式记账
有人提出,我们可以为每个人记录一个账本,当村里发生一笔交易时,通过广播将这笔交易通知给村里的每一个人,每个人都在自己记录的账本上更新这笔交易。
于是,分布式账本系统诞生了。 当然,目前的系统还很简陋,存在着各种各样的问题。 比如大家手里的账本不一致怎么办? 以谁的账号为准? 如何防止有人偷偷修改自己账本上的记录? 会不会有人冒充别人向全村广播? 等等。在本系列的其余部分中,我们将逐一解决这些问题。
比特币使用分布式记账系统。 当一笔交易发起时,需要向全网广播:
张三给李四转了10个比特币。
当然,这样的广播是绝对不安全的。 因为李四(或者村里的任何人)也可以冒充张三进行这样的全网广播。 所以,张三在直播的时候,一定要附上自己的签名:
张三转10个比特币给李四,张三签名
签名是一个绝妙的解决方案。 我们后面会详细讲到签名是如何实现的。 这里我们只需要知道签名肯定是张三自己完成的。
这样的广播似乎是安全的。 然而在计算机世界里,任何信息无非就是一串由0和1组成的数字,这也意味着这个广播是可以复制粘贴的。 然后,当其他人收到此消息时,任何人都可以复制粘贴这个看似安全的广播并重复广播:
张三给李四转了10个比特币。 张三的签名(这是李四播的)
张三给李四转了10个比特币。 张三签名(此消息由村里的坏人二狗子播报)
张三给二狗子转了10个比特币。 张三的签名(这个还是村里的坏蛋二狗子播的)
二狗子竟然伪造张三给他转钱的广播? ! 别忘了,二狗子除了可以复制粘贴整个直播,还可以把张三签名的那部分拿出来附在自己伪造的交易记录上。
似乎仅仅保证“签名确实是我做的”是不够的。 在下一篇文章中,我们将设计一个更巧妙的签名机制来解决上述问题。
参考:
[1] Arvind Narayanan, Josh Bennu, Edward Felton等.区块链:技术驱动金融[M]. 中信出版社: 北京, 2016: 51-61.
[2] 妈妈说 MommyTalk。 区块链 [EB/OL].space.bilibili.com/223146252/channel/detail?cid=125222, 2019-11-4.
[3] 3 蓝 1 棕。 【官方双语】想了解比特币(以及其他加密货币)的原理? [EB/OL].bilibili.com/video/BV11x411i72w, 2017-07-22.
[4]Satoshi Nakamoto.Bitcoin:点对点电子现金系统.bitcoin.org/bitcoin.pdf
[5] 萧震. 北京大学肖震老师《区块链技术与应用》公开课[EB/OL].bilibili.com/video/BV1Vt411X7JF,2018-11-30。