区块链的思考(一):比特币
区块链的思考(一):比特币
一. 综述
比特币作为目前为止最成功的数字货币,其设计思想有颇多值得学习和借鉴之处。 这里我们将从技术角度对其进行分析和解读。
在此之前,需要明确的是比特币的设计初衷并非为了解决大量的普世问题。 其初始场景最可能为超级财团之间的交易记账。我们都知道,世界上有若干顶级信用评级机构,对不同国家及机构的信用等级进行打分和监督,保证国家或者机构间的交易能够在一定信用基础之上完成。 但这些信用机构本身就隶属于超级财团,超级财团间的交易谁来保证呢?这就需要比特币这样的超级账本,无需第三方信用机构背书,内容对每个成员开放,一经记录不可修改和销毁。超级财团之间的交易是低频的和稀疏的,这就造成比特币在技术设计上并未过多考虑性能问题,主要聚焦于安全性来考虑问题。去中心化成为完成安全性的重要手段。
关键三要素
到这里,区块链关键三要素安全、性能及去中心化均已被提到。到目前位置,业界认为三要素无法同时满足。 在后面的文章中,我们会分别介绍EOS及LIGHT如何处理这个问题,如何取舍,来提高系统性能,以便应用于各种普世场景。
二. 详细讨论
比特币面对的是一个拜占庭问题,参与方有人会说谎。 数字签名技术阻止了协议的参与方伪造他人信息和抵赖自己的信息,把Byzantine model简化为fail-stop model,只要有一半以上的人说真话,最终就可以得到真实的结论。
在解决数字货币最经典的双花问题时,比特币的思路是形成一个分叉,每个分叉后的子树代表不同的选择。 之后的区块首先随机选择某一子树进行接入,使得该子树变为长度较长的子树。随着它的出现,后续区块统一接入该子树。双花问题随之解决。
这里引入了一个新的问题, 如何比较不同子树的长度。 如果每个区块可以随意写入时间戳,这个时间就是没有意义的。比特币引入了一个统一的、复杂的耗时hash算法来度量时间。只有该hash算法完成,区块才能产生。每个区块平均的产生时间是一致的、可比较的。不同子树的区块数量即可代表子树的长度。
该hash算法是耗时的, 算力成本极高。 为了鼓励每个节点的不同用户执行该hash算法,比特币引入了挖矿激励机制,对挖矿用户予以比特币奖励。
当这些节点数量巨大,分布于全球各地,由不同的用户为了挖矿赚钱的目的而建立时,所有交易一经记录不可修改和销毁的目的即可达成,超级账本的目标随之达成。
三. 评论
比特币是至今为止所有最成功的数字货币。它将数学、加密算法、分布式构架、经济模型、博弈论、心理学及社会学等诸多知识结合在一起,将多维度复杂问题降维成一个貌似简单的问题来解决。
最让人惊叹的是,在仅仅提供了一套完整代码和白皮书之后,比特币的生态体系就自主发展起来,并越来越壮大,看似不可阻挡。这足以让每个产品经理为之震惊。因为这意味着真正好的产品可以在发布后,无需任何后续参与,无需任何运营,即可自主发展起来。宛如上帝之手,创造世界。
比特币设计了完善的结构来满足各参与方利益,并充分调动各方积极性,相当精彩。如果说其缺陷,我认为有二:
1. 比特币的安全建立在充分的分布式、去中心化结构可避免51%算力攻击的假设基础上。目前看来,比特币算力越来越集中在少数人手里,超过51%并非没有可能,或已出现。但该类型攻击会触发整个比特币系统的信任崩盘,作为既得利益方不会去做而已。
2. PoW的方式过于耗电。比特币网络每秒完成近千万亿次SHA256运算,而最终这些计算没有任何实际或科学价值。这些运算存在的唯一目的是用来解决工作量证明问题。随着挖矿节点数的增加,这种无端的电量消耗快速增长,最终会严重冲击整个生产生活的用电情况。
四. 性能问题
比特币设计初衷并非为了处理高性能问题。在安全、性能及去中心化三要素中,安全是所有数字货币不可或缺的。去中心化为了辅助安全而存在,与性能存在本质冲突。去中心化的分布式结构越强,交易数据需要同步的节点就越多,性能越低。
随着区块链技术的普世化越来越强,人们对性能的要求越来越高。如何在保证安全的前提下获取高性能成为整个行业最大的问题。在这方面,EOS和LIGHT作了非常有益的尝试,我们在后面的章节将分别予以阐述。