原文标题:《共识的变迁,区块链应用范式进化之旅》
09 年比特币诞生,开启了区块链纪元。在一个分布式的网络中,所有节点对一个难题进行计算,先到先得(先算出先得),最先解决难题的机器获得比特币奖励。在无限多的难题计算过程中,产生一条永远不可伪造的数据链,而链上记录的转账信息,刻画在链上的客观标志,在人们的共识推动下产生了巨大的价值。这种不可伪造的账本,后来称为区块链,对使用了几千年的账本进行了彻底的革新。
下文会探讨近几年区块链领域的共识的变迁,区块链应用方式的变化,以及我们为什么可以通过存储计算范式构建一种全新的可信应用。
比特币原教主义者,坚信绝对的去中心化。比特币的网络就像著名科幻电影《终结者》里的天网,是一种运行在全球的网络,无数服务器上的账本,同天网一样,想要关闭它或许只有毁灭整个网络。这种 P2P 节点网路具备去中心化的特性,不由任何国家和机构控制。
绝对的去中心化要求用户自己验证所有的交易。早期我们在 PC 上安装一个比特币钱包需要花数小时甚至数天的时间才能同步整个网络,只有等待同步完成后才能进行转账操作。当我们的个人电脑离线或者关闭导致钱包长时间离线,下一次进行任何操作前还需要继续同步数据,直到所有数据完全更新后才能进行新的交易。这样的体验对于绝大数用户是无法接受的。
人们总是需要同步和验证所有交易,才能获得绝对的去中心化信任。
随着 17 年 ICO 火爆,以太坊将区块链带入一个全新的高度。新用户涌入,以太坊官方的 Mist 钱包(同比特币一样需要下载数天验证所有交易)已经很难满足用户的需求。imToken 顺势而出,构建了一种更易于使用的 API 钱包。
用户不需要再去做长时间的数据同步,下载应用开箱即用。区块链节点由钱包服务商提供,用户的私钥还是保存在个人的手机上。用户通过 API 访问服务商的节点,在手机上进行交易签名,并将交易发送到服务商的链节点。
API 钱包的另一个典范是 MetaMask,从 18 年到 20 年 DeFi 崛起的过程中起到了至关重要的作用。浏览器插件钱包也是开箱即用,配合全新的以太坊基础设施 infura,让用户跳过账本验证直接使用 DeFi。从 Uniswap 兑换,Compound 借贷,到 20 年中旬开始风靡币圈的流动性挖矿,MetaMask 都是用户必备的 DeFi 利器。
然而在体验 DeFi 的爽快过程中,或许已经遗失了一些对共识的根本看法。在使用 API 钱包的过程中,用户并没有验证每一笔区块链交易,而是信任服务商部署的节点。绝对去中心化已经被抛弃,用户体验占了上风。以太坊官方钱包 Mist 甚至没有坚持到 DeFi 爆发就早早宣布停止更新。
虽然绝对的去中心化(用户独立验证账本)逐渐的从历史舞台褪去,但是去中心化共识并未减弱。随着用户门槛的降低,带来了 DeFi 的繁荣崛起,整个区块链的故事更加的深入人心。其本质在于不管我们是使用 imToken 或者 MetaMask,纵然背后是内部节点,用户没有去校验账本,但用户交易一旦打包到链上,就可用通过成千上万的其他区块链节点进行保障。这种客观事实不是由一家服务商或者一个中心化的云服务所能改变。对于一家中心化服务商而言,可以骗用户一时,但骗不了用户一世。用户交易的客观事实已经打包在了广大的区块链节点网络中,无法被篡改和伪造。
Compound 是运行在以太坊这台世界计算机上的金融借贷应用,Compound 的每一笔交易都会被成千上万的以太坊节点进行计算,以保障 Compound 借贷业务的客观事实。但是不管是用户和服务商,都不能直接从链上获取到借贷业务的收益利率。借贷的事实一直在发生,所产生的年化收益率却需要对链上数据额外统计才能得出。事实客观存在,而用户的决策依据是事实所演算的表象数据。此时客观事实和数据呈现是信任是分离的。
回到比特币原教主义的视角,当且仅当用户使用全节点或者 SPV 钱包对每一笔交易进行过校验后,用户所获取的数据呈现才具备完全的去中心化可信。而使用 imToken/MetaMask 这样的 API 钱包的时,用户是在向 infura 或者其他服务商所请求余额信息,这种余额信息本质上也仅是一种数据呈现,和 Compound 的收益利率没有本质区别。
Compound 的收益利率是在官方的中心化服务器上通过链上数据进行运算的结果(通常使用以太坊 event log 进行计算)。同时,用户向 infura 或者其他服务商请求的余额,也是中心化服务器的以太坊程序运算产生的状态。特别的注意在中心化服务器上以太坊节点也是一个普通的应用程序可以被修改和调整。因此,不论是使用太坊节点 API 获得的数据,还是对节点数据进行的二次加工产的新数据,都不能提供完全去中心化的信任。服务商的服务器完全可以修改以太坊节点和任意定制统计程序。可见,在用户不自行进行所有交易校验时,客观事实和数据呈现必然产生二元分离的情形。用户通过服务商获得的数据都是一种对客观事实的二次陈述。
想要获取绝对客观事实,用户必须自行验证所有交易,自行统计数据。这种绝对去中心化可信模式,由于用户门槛过高在现实场景中难以适用,成为一种理想主义。
随着以太坊官方钱包 Mist 的失败,整个共识已经潜移默化的改变:用户不再自行验证交易,而是使用 infura 或者应用服务商的链节点进行交易。这时其实已经将信任完全交予服务商。
用户对共识的认知正在逐步的改变。改变的根源之一是区块链的用户群体的变化,原教主义者们不断的迎来了新的区块链用户。这些新用户从未自行部署过节点和 SPV 钱包,用户的需求不是去中心化信任,而是简单易用的代币转账和高收益的 DeFi 应用。关于去中心化的愿景,从要求自主获得绝对客观事实转变为依赖服务商提供事实的二次陈述。变迁过程如下图所示,从一个单层的拓扑图模型变为双层模型,在不远的将来可能会演变为一个三层的模型。
图 1 是绝对去中心化模型,用户的客户端和节点处于同一个层级,用户会去同步节点并验证所有的交易。该模型下用户体验极差。
从 17 年 ICO 后,imToken/MetaMask 崛起,为了解决急剧膨胀的用户需求,我们进入了图 2 的双层模型时代。用户不再验证交易,节点完全由服务商运维和部署。用户仅将签名后的数据发送给服务商,由服务商的节点进行交易处理。此时用户体验有所提升,用户不再进行痛苦的交易同步和验证。
图 3 的三层模型,会将用户完全和区块链进行解耦,这个模型下用户完全不再接触链,包括用户签名的交易也不再发送到链节点。服务商的可信由各种区块链来提供,用户的交易也完全由应用方进行处理。三层模型带来最大的好处是为用户互联网级的体验,这里包括互联网级别的 TPS 和可信的互联网账户。
整个变迁的过程是用户体验的提升,从难用到可用,最后到易用
其实我们当前的 DeFi 应用,已经不是一个纯粹的双层模型,而是一个 2.5 层的模型。
用户在使用 DeFi 的过程中,大部分的数据都不是从节点上原生输出,已经通过中心化的服务器进行统计所呈现。区块链仅提供了一个结算功能,而部署在服务商的节点也是完全可以修改程序和伪造数据。
我们可以假设两种攻击:
具有误导性的数据呈现+真实节点。服务商提供了真实的节点,但是呈现的利率、汇率或者其他信息是被修改过的,诱导用户去进行链上操作。交易还是在链上真实成交,但是交易的事实结果和数据呈现有一定的差距,比如显示的年化收益率是 10%,实际却只有 9%;兑换的汇率是 256,实际成交是 250。
完全虚假的节点,直接导致用户的转账、DeFi 结果都是虚假的。
为了避免这两种攻击,用户不得不自行运行节点和进行数据统计。然而这些对用户都非常困难,此时用户只能信赖这种数据呈现,或者通过其他第三方进行数据核验。现实中的例子是,通过 imToken/MetaMask 使用 DeFi 时,我们总是需要去 etherscan 进行交易核查。
服务商在开发应用时,绝对去中心化的信任会传导到应用上。用户信赖的是服务商,也可以通过其他第三方服务商进行交易核验以获得更高的可信。不管怎么样,用户的信任已经和区块链的去中心化信任形成割裂。总结如下,我们现在可以把信任分为两种:
绝对可信:不信任任何人,自行验证区块链所有交易,获得完全去中心化的账本
相对可信:信任服务商,通过服务商获得账本的数据呈现,使用其他多个服务商的数据进行交易对照
左图是双层模型的延展,用户和服务商的节点进行交互,同时使用服务商统计的数据呈现。对于用户而言,是处在一个相对可信的环境,服务商提供的节点,并不一定是真实的节点,用户需要去第三方进行核对或者自行进行验证。
在双层模型中,用户还会直接接触链节点,向节点发起交易。右图是三层模型,用户、服务商、链节点三层分离,用户完全不再接触链节点。服务商提供基于存储的可信计算,此时通过链下程序处理用户的交易。虽然交易是由链下的程序处理,但是程序的所有处理过程都会通过区块链进行保障(基于 Arweave 的存储计算范式),因此链下计算也完全是可以通过第三方或者自行进行验证。
存储计算范式:将确定性的程序开源或者上传到链上,程序完全在链下运算,所有输入都会发送到存储型区块链进行保存,数据一旦打包就具备顺序(时序)。任何第三方可以运行程序,程序会加载链上的事实数据,生成事实状态。
不管是双层、2.5 层还是三层模型,用户都只能获得相对可信,绝对可信仅与服务商有关系。只要用户不自行验证所有交易,就无法做到完全去信任化。
在三层模型中,我们可以构建全新的 Compound,这样的 Compound 不需要再使用 EVM 链上计算模型,只需要保证程序可信,数据可信,那么应用运行的客观事实就绝对存在。在三层模型的架构中,不仅仅年化收益链下计算,每笔交易产生余额状态也通过在链下计算并呈现。将双层模型改进到三层模型,不会改变客观事实,同时用户的相对可信环境并没有任何变化。而交易上链后的客观事实,由区块链技术进行支撑。
为什么要建立一个三层的计算模型将用户和区块链完全隔离?
链具有太多的限制,很难满足普通用户的低门槛需求。区块链的 TPS 有太多限制,昂贵的矿工费,私钥助记词管理等,都让普通用户难以接受。区块链在获得绝对去中心化的目标后,损耗了大量的易用性。
使用三层模型构建的应用,区块链节点会为应用进行可信赋能,应用开发可以获得极大的灵活性,为用户提供极致的易用性。
可组合性:使用存储计算范式不损耗组合性,任何应用都可以直接通过 API 进行交互。应用产生的交易打包到区块链后,都会成为客观事实不可篡改,并且可以验证。两个相互信任的应用如果在 API 实时交互的过程中出现了虚假交易,这些虚假交易后续产生的所有交易都可以被检测到并进行回滚,这是一种链下回滚,或者说是将错误的账目冲正,让链下程序和区块链的事实保持一致。
开发门槛低:只要将传统应用开源并将交易打包到区块链上,即可让应用获得透明可信,并可由第三方进行验证。此时开发没有任何的语言限制,仅需使用这个范式思想即可。
无性能限制:链下程序的性能,仅取决于部署程序的机器和开发团队的能力。
共识成本极低:将共识的成本缩减到区块链存储的成本,使用 Arweave 进行交易存储,1 美金可以进行近百万笔交易。
主要损失了去准入:应用由一个中心化服务商实现和部署,服务商可以过滤以及审查用户的交易。同时单点的服务故障可能导致服务暂停。
不过任何人都无法损害账本的客观事实,事实程序加上由用户进行签名的每一笔交易都会印证在区块链上,成为可验证的事实状态。
共识的最低成本,就是存储成本。通过区块链不可伪造、可追溯的特性,我们可以保存事实程序和事实数据,它们运行的结果一定是真实客观存在并且不可篡改的。至于计算,其实不在事实范畴内,因为不论计算是否已经发生,客观的事实并不会改变。可验证性是整个区块链共识和可信的关键。任何人都可以去验证那些不可篡改的客观事实,是所有信任的根基。
存储计算范式所提供的可验证信,为多方之间建立了信任的桥梁,可验证的透明账本彻底革新了传统账本技术,解决了传统账本(契约)在生产关系协调过程中产生的种种矛盾和纠纷。
账本是人类协作的关键要素,每个人、每个机构的账本相互组合促成了当今社会的协作和分工。区块链作为一种革命性的事实机器,会彻底改变基于账本构建的信任体制,让信任更易于达成,让价值无界流动。
撰文:outprog