开垦区块链,不能没有的模型

3 月 5 日,蓝港互动创始人王峰问比特币首富:传言你有 6 位数比特币,真的么?李笑来答:曾经有过,现在没那么多。,听到首富光环叮当落地的声音,多少会让你停顿半秒,虽说去年我们就知道《李笑来的比特币账户并没有余额》,但那只是为理解 UTXO 模型、把银行的余额模型抽出来写的对比文章。,其实,区块链世界也有余额模型,又称账户模型或账户余额模型。,一、什么是账户余额模型?,如果 UTXO 是掰不开的硬币,那账户余额模型就是撕不掉的存折,存折上印着你在区块链上拥有的一切。,我们用以太坊举例,下文特别感谢 Draveness 的智力支持,很难找出比他《UTXO 与账户模型》更简明的文章,不愧是写了三年博客的编程大神。,以太坊外观复杂,但掀开盖子往里一看,其实只有三块钢板:账户、交易和区块。,开垦区块链,不能没有的模型,图 1 以太坊账户模型,账户就是存折,记着你的余额;,交易就是汇款单,你负责填单签名输密码;,区块就是银行,柜员把交易录入系统,相当于矿工把交易刻进区块,都能改变账户信息。,以上就是账户余额模式的基本逻辑,这与 UTXO 模型有很大不同。,UTXO 模型中,每笔输入都是前一笔交易的未花费输出,环环相扣,不会出现重复交易。,而账户模型则与之不同,每次账户变动就像涂一层修正液,只能看到最新结果,一旦重复记账就会次次都错,那如何防范这种隐患?,以太坊的做法是:在账户里增加一个标签,交易后标签数字+1,每次交易前检查标签有无重号,一旦重号则取消交易。,这个标签的名字叫 nonce,看起来和比特币工作量证明中找的随机数(nonce)一样,但以太坊中 nonce 意指“序号”,有了它你就能安心付款。,可是,账户中最重要的不是序号,而是余额。
交易的本质是改变双方余额。矿工一旦挖到交易信息,就会记入区块,从而改写账户信息。,开垦区块链,不能没有的模型,图 2 以太坊账户基本结构,序号和余额构成账户最基本的结构,以太坊账户的特别之处在于:它有两种类型。,二、以太坊账户类型和内部结构,一种是
外部账户,它和比特币地址的功能相同,靠私钥撬动余额,如图 2。,另一种是
合约账户。每次收到消息时,账户中的合约代码会智能地跑起来,这就是以太坊“智能合约”的来历。,合约账户的基本元素就如下图:,开垦区块链,不能没有的模型,图 3 以太坊合约账户基本元素,序号能防重复交易,余额表示当前权益,合约代码能够响应特定请求,比如你可以教你男友设置:今年生日发你 1 个以太币,以后每年增加 1 倍。,另外,每个账户还配备存储空间,内部存有合约代码和其他数据的哈希值,技术上能防篡改。这就构成合约账户的基本框架。,以太坊最著名的合约账户当属
ERC20,ERC 指以太坊认证请求(Ethereum Request for Comment),20 是账户编号。ERC20 是发行 Token 的合约,转 Token 给别人只需调用该合约。,所以你看,发行 Token 很简单,只需在以太坊上开个账户,这和你去银行柜面开张卡没什么区别,YouTube 上有很多手把手教程,练顺手之后,发一种币就像发一圈牌一样简单。,在以太坊上开好户,然后用这个账户发出的 Token 换别人手上的 BTC 或 ETH,这是大多数 ICO 在技术上的实现方式。,ERC20 最大的功能是让所有人都能当亿万富翁,很简单:发行 1 万亿个以你名字命名的币,让你朋友花 1 块钱买一个玩玩,这样你的币就有了 1 元的市场价格,于是一转身你就身价万亿。,在技术上,这都得归功于以太坊的账户模式。,此模式中,序号、余额、合约代码和存储信息等,都称为状态。状态相当于忽明忽暗、五颜六色的灯,整个以太坊就是盖在我们头顶上的不停闪烁的霓彩。这也是为什么人们把以太坊称为“状态机”的原因。,开垦区块链,不能没有的模型,账户模型能高效切换状态,这为区块链应用撒出更多可能,比如每个账户都既能用智能合约向其他账户发消息,又能设定收到消息后如何应对,于是只要把规则写进代码,不需要运营人员,仅凭代码就能干活。,效率方面,账户模型完胜 UTXO,比如当我们计算某个地址的余额时,账户模式会秒出结果,而 UTXO 模型会遍历网络中全部的区块,再加总得出余额,但 UTXO 并不在乎慢,因为它坚守的是写入的数据不可更改。,安全方面,UTXO 模型被公认领先,所以很多人认为 UTXO 和私钥的搭配更能保护财富,因为私钥代表对财富的拥有权,而 UTXO 又能确保账户系统安全,这种观点看起来很正确,但却隐藏着一个前提:使用者已经过培训,而且使用和保管私钥过程中能处处小心。,保管难度还在其次,最重要的是,私钥一旦丢失或泄露,用户将失去所有财富,此时 UTXO 的稳固就会没有意义。,这是加密数字货币普及过程中遇到的首要难题,包括比特币在内的很多数字货币至今束手无策,但这里有一种新的解题思路,它来自 6 月即将上线、同样使用账户模型的 EOS。,三、让财富真正属于普通用户,EOS 设计者认为:私钥对普通用户并不代表真正的所有权,因为稍不留心就会丢失财富,这不符合价值保有的本意。,设计系统时,应该分清对财富的控制能力和拥有权利之间的区别。真正的财富应该像本领,即使暂时被别人拿到,但依然属于你。,所以,EOS 没有把人的身份绑定在光秃秃的私钥上,而是标注于一个账户,这个账户对应一个密码。,这种设计有什么好处呢?,最大的好处是普通用户的财富得到极大的保障,一旦密码泄露造成财产损失,普通用户可以多一项选择:
在预设时间内取消交易。,比如,你可以预设转账 1 万个币以上需要 1 小时后才确认,所以一旦有人通过密码盗取你的财富,你会收到通知,1 小时内,你能通过预设的社交关系人取消交易。,社交关系人可以是默认的身份开设机构,也可以是你指定的亲戚朋友。于是,普通用户突然具备一种能力:在预设时间内,签署消息指明一笔交易无效,而这种能力的存在本身也能压制恶意。,这就是 EOS 给我们守护财富的新思路。,当然,回到财富保有的初衷,EOS 的账户模式保障了普通用户拥有财富的权利,但也意味着放弃了专业用户对财富绝对控制的能力,这部分用户必然会选择留在 UTXO+私钥的世界。,之所以两种模型会分家,根源还是来自我们熟悉的
不可能三角:分布式、安全和高效三者不可兼得,最多取二。,开垦区块链,不能没有的模型,图 4 不可能三角和两种模型的站位,既然都选分布式,就只能在安全和高效间权衡。比特币要做的是电子现金系统,安全稳健至上,于是抱着 UTXO 站在图 4 左边;而以太坊和 EOS 都希望做成智能合约平台,追求高效灵活,所以靠右选择账户模型。,账户模型的确高效,但必然付出安稳的代价,可这又有什么办法呢,为了开垦区块链的新边疆,总得先付出些什么。,结语,UTXO 是区块链的原生模型,比特币含着它出生,但区块链要长大,就不能没有账户余额模型,因为它可以更快翻出更多姿势。,总之,每个区块链系统最终都面临两种模式间的权衡,但目的只有一个:用更低的代价博取更高的收益。,接受王峰采访前,李笑来说过很多遍:“很少有东西能够跑赢比特币,最好的姿势是持币睡觉。”但他最后却卖了币。,当向王峰解释为什么会卖币时,他说:,是他当初没有选择抱币安逸不得已的结果,即使明知如此,却依然选择下地干活,因为他的原则是不断成长,成长才能给他欢乐。,那些卖掉的比特币是他的寻欢成本,而正是这些成本让他在成长的跑道上一路狂奔。,一个人之所以值钱,不是他账户余额有钱,而是因为他的原则值钱。,如果这类创业者最终能垦出一片天地,一定不是因为姿势对或者运气好,真正的原因是:在所有人都看不见光的夜里,依然肯付代价。,来源链接:
None,而账户模型则与之不同,每次账户变动就像涂一层修正液,只能看到最新结果,一旦重复记账就会次次都错,那如何防范这种隐患?,以太坊的做法是:在账户里增加一个标签,交易后标签数字+1,每次交易前检查标签有无重号,一旦重号则取消交易。,二、以太坊账户类型和内部结构

原创文章,作者:汤强,如若转载,请注明出处:http://www.lianchaguan.com/archives/30664

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注