Sharehub

To be a professional software engineer.

多视角看区块链

前言

像很多新技术一样,区块链开始火起来的时候评价是两级分化的,有人觉得区块链会成为下一代的互联网的基础设施,有人觉得区块链没有任何价值。很多时候观点的不同是因为看的角度不一样,如果能从多个角度看区块链,或许能得到更客观的观点,因此本文会分别从技术和业务的视角来分析区块链。

从技术的视角看区块链

从技术的角度看,区块链是一种分布式防篡改账本,由于其独特的链式结构和共识机制保证了数据不可篡改。

首先区块链是一个分布式系统,而且要保证所有节点的数据保持一致,那么就必然涉及到一致性协议。一致性协议在区块链的语境里面一般叫做共识协议,像POW,POS,DPOS,PBFT 等等,本质上都是一致性协议,主要解决分布式系统中数据复制的问题。

其次区块链的存储结构是链式的,可以把它理解为一个大链表,结合了密码学的技术它能够做到不可篡改。它是如何做到这一点的呢?我们拿比特币来举例,

  1. 利用 hash 值作为每个块之间的连接指针,修改了块里面的数据就会导致指针变化,进而链条就断了,这样保证修改链上的某个数据会立马被其他节点发现。
  2. 区块链所有节点都通过共识机制保存同样的数据,所以你修改了一个节点的数据是没有用的,必须要修改超过一半的节点数据才有用。
  3. 比特币的 POW 共识机制和最长链机制决定了要修改链上数据必须要掌握超过 50% 的算力才能做到。

值得注意的是区块链的不可篡改实际上指的是要篡改数据很难,并不是说真的不能篡改数据。可以发现区块链的技术特性是由多种技术组合而成的,它并不是一个全新的技术。

最后是智能合约,智能合约说白了就是在区块链上执行的代码,它的特别之处在于它能够修改链上的状态数据,例如说用户的余额,利用智能合约就可以实现转账支付的功能。可以类比为数据库中的存储过程。

从某些角度上看,区块链和数据库是有相似之处的。在区块链的世界里面,交易和交易产生的状态是严格分离的,例如说比特币里面的每笔交易是一笔转账流水,而用户的余额则是维护在特定的状态数据结构里面。这种实际上就是事件和状态分离的设计。根据交易的流水可以推导出用户的余额,本质上都是从一个初始化状态,结合所有发生的事件,来推导任意时刻的状态。

数据库也是类似的,数据库每次执行都是先记录执行日志,这样能够保证数据恢复的时候能利用这些日志。这里的日志记录的就是事件,而数据库表中的数据就是状态。从这个层面上看,区块链和数据库是非常相似的,只不过区块链把事件和状态直接暴露给了使用者,而数据库只会暴露状态给使用者。

其实区块链和数据库的差异主要源于设计目的的不同,区块链是为了去中心且不安全的情况执行通用计算,因此它为了去中心化和安全的目标放弃了性能。而数据库的设计目标是为了方便管理数据,一般都是运行在可控的环境里面,不用考虑安全和去中心化的问题。

区块链技术的标准现在还没有准确的定义。现在处于百花齐放的状态,各家都有各家的技术实现。区块链其实是脱胎于比特币,也就是说它是为了实现比特币产生的技术,如果后面 Libra 使用的技术跟现在我们看到的区块链技术完全不一样也不用惊讶,业务和技术是相辅相成的,最后的赢家会定义什么才是真正的区块链技术。

从业务视角看区块链

从业务的角度看,区块链本质上是一种共识机制。它的价值在于通过防篡改保证事实的不可抵赖,建立人对机器的信任,提升形成共识的效率。以比特币为例,国家货币是以国家信用背书的,黄金是人们对贵金属的有共识,比特币到底凭什么这么值钱?关键就是共识,比特币总量恒定,产生新的比特币需要用算力挖矿,区块链技术保证了这个机制是安全可靠的,所以人们形成了对比特币的共识,或者说信任。这种信任就像人们信任支付宝一样,支付宝是由阿里这个大公司背书,而替比特币背书的就是区块链技术。

现在很多的区块链应用场景都是多个机构做数据共享,数据共享这个事情当有中心化的平台其实效率是最高的,所有人都信任中心平台,数据以中心平台为准。但是在实际落地过程中也会有阻力,因为中心化意味着要让渡参与者的权利,很多场景下这是很困难的。所以用联盟链的方式来做数据共享,技术上其实是没有提升效率的,但是因为这种多中心的模式能够让参与方更容易接受,有时候反而能够推动业务落地。

很多人认为区块链的价值在于去中心化,但是中心化才是互联网发展的趋势,人们为了效率而中心化,为了反抗垄断而要去中心化。比特币的出现是对中心化的货币发起的反抗,它做到了完全的去中心化,但是却牺牲了效率,每秒只能做几笔交易,因此也不可能真的作为世界货币。所以区块链在未来的应用形态应该是多中心,也就是联盟链,介于中心化和完全去中心化之间。Libra 币就是多中心的数字货币,由多个公司形成联盟,它不属于任何一家公司。Libra 的目标是要成为世界货币,因此效率必须要高,同时也要借助区块链来形成共识,保证不能随便发币以及价格的稳定。

虽然区块链有很多美好的想象,但就跟很多新技术一样,目前技术还不成熟,曾鸣教授说区块链现在有点像90年代的互联网,还缺少一个像浏览器一样的杀手级应用。我个人觉得 Libra 有可能就是那个杀手级应用,并且它会定义新的区块链技术标准。Libra 跟比特币不一样,它不是完全去中心化的,更准确的描述是多中心,如果要类比的话它更像是欧元,Libra 协会就像是欧盟,只不过是国家变成了公司。

本文虽然花了很多篇幅讨论区块链的技术,但是我们不能只局限于技术本身,脱离了具体的业务场景讨论技术没有任何价值。所以我们不用去纠结它的技术实现是去中心化和中心化的问题,区块链的核心价值在于共识机制,它的所有技术实现都是为了这个目标服务的,块链结构,智能合约等等这些都是为了建立人对区块链技术的信任,然后基于这种信任去构建业务上的共识机制,进而进行大规模的网络协同。王兴说过一句话很有道理:“讨论 Libra 背后的技术实现好不好就像讨论美元钞票的印刷技术精细不精细”。

总结

本文从技术的角度简单分析区块链的核心技术特性,并且跟数据库进行了对比,区块链从技术的角度看就是一个分布式防篡改账本;然后从业务的角度分析了区块链的价值在于通过防篡改保证事实的不可抵赖,提升形成共识的效率;最后我们也要清醒的认识到区块链不是银弹,区块链的发展还有很长的路要走,这不是一个单纯技术进化的问题,而且如何真正落地解决社会问题的过程,解决的问题越大,区块链的价值就越大。