本文和《关注应用治理,这是 DApp 的阿喀琉斯之踵》是姊妹篇,都讨论 Polkadot/Cosmos 带来的去中心化应用治理变革,及其意义。《关注》的作者是李画,本文是我自己执笔。技术人员通常认为治理与自己无关,甚至认为不懂技术的人只是在讨论无关痛痒的话题。我自己就曾经这么认为,直到最近,才一点一点地认识到治理对区块链项目的重要性。推荐所有正在或者准备开发 DApp 的创业者,尤其是智能合约开发者阅读这两篇文章。也期待得到同行的指正,欢迎在新经济人或者 NPC Crypto Labs 群里与我交流!

原文标题:《跨链释放 Dapp 创新潜能》
作者:刘毅,清华大学硕士、Random Capital 合伙人、区块链和大数据技术专家。20 年多种资本市场投资经验,比特币早期投资者
链闻经公众号「NPC 源计划」及作者「刘毅」授权转载

万字说透跨链:DApp 赋能、信任来源、治理机制与现实挑战刘毅,清华大学硕士、Random Capital 合伙人、区块链和大数据技术专家。20 年多种资本市场投资经验,比特币早期投资者

跨链是目前行业内最热的话题之一,也是被误读最多的话题(没有之一)。有人认为跨链早就实现了,每个交易所都跨了几十上百条链。有人说交易所是中心化的,让 BTC/ETH/LTC/... 无需信任地交易才是跨链。又有人说不对,那是跨链原子交换或者去中心化交易所,是老概念了,Polkadot/Cosmos 远不止于此。另外也有人认为,侧链和主链的资产可以双向锚定,所以也是跨链 ...

虽然每个人心中都有一个哈姆雷特,可以并行不悖。但行业对重要概念缺乏清晰共识,只会带来混乱和浑水摸鱼(各种我们也是跨链 ...)。Polkadot/Cosmos 的出发点不是连接现有的公链,而首先在于支持开发者快速低成本地开发出新区块链。新区块链可以是应用平台(支持智能合约),但更多的新区块链会是去中心化应用,例如以独立区块链形式存在的去中心化预测市场、TCR、稳定币、借贷市场、交易所等等,我们不妨称之为应用链。Polkadot/Cosmos 不但为开发应用链提供工具(Substrate/Cosmos SDK),而且为应用链之间实现可信互操作提供基础设施(Polkadot Relay/Cosmos Hub)。由此可见,Polkadot/Cosmos 的跨链,核心在于 DApp 的新形态 —— 应用链,以及应用链之间的可信互操作。

那么跨链有什么意义?首先是与世界计算机(平台公链)相比,应用链的共识参与范围大幅缩小,性能和成本问题随之迎刃而解。Substrate/Cosmos SDK 开发的应用链可以很容易地达到 1000tps 以上的处理能力,而且成本很低,能够满足大多数 DApp 的需求。另一个变化是 DApp 治理,治理不像性能问题那样显而易见,但却是制 DApp 发展一大瓶颈。

用激进的方式表述本文主题就是:智能合约混淆了去中心化和可验证两个不同的概念,误导了开发者,令 DApp 在长达 4 年的时间里几乎在原地打转。Polkadot/Cosmos (尤其是 Polkadot)赋予了 DApp 链上治理能力。通过解除性能和治理两大发展瓶颈,跨链技术有望释放 DApp 创新潜力,引发去中心化应用的第三次浪潮。

第一部分:Web3 与 Polkadot 是什么

万字说透跨链:DApp 赋能、信任来源、治理机制与现实挑战

为了理解本文的主题,需要了解 Web3 和 DApp 的概念。上图左侧这位帅哥是 Gavin Wood 博士,前以太坊的 CTO、EVM 和 Solidity 语言的创造着,也是 Parity 公司、Web3 基金会和 Polkadot 项目的创始人。在 Web3 基金会和 Polkadot 等项目文档中,对 Web3 愿景的文字表述不太一致。但是都包含两层意思。第一层:Web3 是无服务器的、去中心化的互联网。Serverless 无服务器也是去中心化的意思,因为在 web3 憧憬的网络计算架构里,参与者或者说节点是平等的,没有服务器和客户端的区别,所有节点都或多或少参与网络共识的形成和记录。去中心化的互联网有什么用呢?就是 Web3 的第二层含义:每个人都能掌握自己的身份、资产和数据。掌握自己的身份,意味着不需要其他人或者组织赋予身份,其他人或者组织也无法冒用、剥夺或者冻结身份。掌握自己的资产,意味着不会被剥夺资产,可以自由处置资产。掌握自己的数据,意味着每个人可以按自身的意愿生成、保存、隐匿、销毁个人数据,未经他的允许,任何人任何组织都不能使用其个人数据。在数字时代,掌握了自己身份、资产和数据的人,也就掌握了自己的命运。Web3 愿景并非 Web3 基金会或者 Polkadot 项目所独有。很多区块链项目,包括比特币、以太坊,都有类似的愿景。名称五花八门,包括开放网络,下一代互联网等等。

为实现 Web3 愿景,世界需要去中心化的互联网应用,即 DApp。从使用者的角度,去中心化可以简单理解成,不能被个别或者少数参与者所控制,因此值得信任的应用属性。具体地说,去中心化对使用者意味着有三个重要属性:trust minimal、permissioness 和 censorship resistant,也就是信任最小化、无许可和抗审查,三个属性跟 web3 愿景一脉相承。通过众多的去中心化应用,互联网用户可以控制自己的数字身份、资产和数据,从而实现 Web3 愿景。区块链是实现 DApp 的主流技术手段,或者说区块链是 DApp 的基础设施。本文所说的区块链,如果加不特殊说明,都是指公链。另外本文围绕实现 Web3 愿景讨论,区块链的其他用途(如企业级应用)不在讨论范围之内。

以太坊 /EOS/ 波场三大智能合约公链上已经有上万个 DApp。但是除了少数昙花一现的菠菜游戏和资金盘以外,用户极少、而且活跃度很低。甚至已经有人在质疑:去中心化应用是不是个伪概念?我认为出问题的不是去中心化应用,而是智能合约平台。可以说在智能合约平台上开发去中心化应用已经走入了死胡同。原因有两个,第一个是性能和交易执行成本限制。性能低和交易执行成本高是一个硬币的两面。例如以太坊全网只有 15tps 的处理能力,为保证公平同时抵抗女巫攻击,只能是交易费用竞价。用户体验到的就是 DApp 很慢,而且一用都要花钱。整个行业对公链性能的关注由来已久,也很多团队正在探索通过代议制、分层和分片三种思路进行扩容。拙作《万字长文说透 Polkadot 架构》整理了扩容的技术路线、遇到的问题和解决方案,以及主要的项目实现,并把 Polkadot/Cosmos 归入分片扩容。简而言之就是,跨链技术通过分而治之的方式,在保持互操作性的同时,实现了扩容。本文仍将简述这部分内容,已经阅读过《说透》一文的读者可以跳过随后的三个小节。

但是性能 / 成本并不是智能合约对 DApp 的唯一限制。EOS 通过代议制的方式,已经能够达到数千 tps 的处理能力,比以太坊 1.0 的性能提升了两个数量级,而且交易执行成本由开发者负担,让 DApp 摘掉了又慢又贵的帽子。但是 EOS 主网上线一年了,也在公链治理等领域做了大量有益的探索,但是并没有引发应用层的创新。这不禁让人怀疑,到以太坊 2.0 全面落地的时候(大概还需要 1-2 年时间),DApp 的春天是否就真能到来?经过很长时间的反复思考,我认为除了性能 / 成本约束以外,DApp 还面临智能合约平台第二个重要局限:去中心化治理缺位,而且为了保护合约的可验证性,阻碍了去中心化治理的实现。而跨链技术(尤其是 Polkadot)在实现扩容的同时,为实现有效的去中心化治理提供了技术基础和模版范例。通过解除性能和治理两大发展瓶颈,跨链技术有望释放 DApp 创新潜力,引发去中心化应用的第三次浪潮。

万字说透跨链:DApp 赋能、信任来源、治理机制与现实挑战

Polkadot 是 Gavin Wood 和 Web3 基金会提出的 Web3 技术方案。这两张图片都来自于岳利鹏翻译的 Polkadot 白皮书中文版。先看右边的大图,Polkadot 的基本网络结构是星型的,或者称为轮辐型。星型的中心是 PolkadotRelay 中继链,外围是众多的 Parachain 平行链。再看左侧的小图,Polkadot 网络的参与者有四种角色:Validator 验证人、Nominator 提名人、Collator 收集人或者核对人,Fisherman 钓鱼人或者渔夫。DApp 可以是部署在平行链上的智能合约,或者整个平行链就是一个 DApp。用户在平行链发起交易,交易被收集人收集,打包成区块,交给一组验证人去验证。这组验证人并不是来自平行链,而是来自中继链统一管理的验证人池,通过随机分组指定给平行链。每条平行链都有一个出口队列和一个入口队列。如果用户发起的是跨链交易,交易就会被放进出口队列。再被目标平行链的收集人放入其入口队列。目标平行链的收集人执行交易,生成区块,由验证人组敲定。Polkadot 采用出块过程和敲定过程分开的混合共识协议。

除了平行链,还有转接桥把现存的、不能直联的区块链接入中继链,例如以太坊和比特币等。我们已经介绍了收集人和验证人在系统中的作用,那么提名人和渔夫是做什么的呢?提名人是 Polkadot 基础通证 DOT 的持有者,他希望质押 DOT 获得收益。但是要么是因为 DOT 数量少,要么是缺少运行维护验证人节点的专业技能。因此系统提供了另一个参与途径,就是持币者选择他信任的验证人,把自己的 DOT 通过验证人来质押,分享验证人收益。这样做的好处是,提高整体质押比例,提升系统安全性,同时也使收益分配更加公平。渔夫的是监控和举报非法交易,赚取奖金的角色。在 Polkadot 网络中,平行链各自承担交易执行、数据存储,同时平行链之间能够互操作,实现与分片扩容非常类似的目标。

第二部分:Cosmos 是什么

万字说透跨链:DApp 赋能、信任来源、治理机制与现实挑战

说完 Polkadot,再介绍 Cosmos。在图的左上方,A 和 B 是两条链互为侧链。也就是说,A 链包含 B 链的 SPV 轻客户端,从而 A 链能验证 B 链的交易。反过来 B 链也包含 A 链的 SPV 轻客户端,从而 B 链能验证 A 链的交易。互为侧链的结果是,发行在 A 链和 B 链上的通证可以互转。如果从两条链扩展到多条链,A 和 B 变成 A/B/C/D/E/F,一种外推的想法是仍然沿用两两互为侧链的做法,就形成了左下方的结构。但是这样做会到来很多问题,每条链都要内置其他所有链的轻客户端,同步其他所有链的区块头,这当然是很大的负担。而且每增加一条链,都需要在其他所有链上做修改。随着区块链数量的增加,复杂度以 n*(n-1)/2 指数型增长,这显然是不可行的。

解决的办法就是改成上图右上方显示的结构,中间放一个 Hub,Hub 本是也是区块链,它跟其他所有链都互为侧链。就是说,每条链上的通证都可以转到 Hub 上,然后通过 Hub 转到其他链上,网络互联的复杂度跟区块链数量是线性关系。这就是 Cosmos 选择的架构,在 Cosmos 的定义里,接入 Hub 的链称为 Zone 分区。分区要接入 Hub 需要两个条件,第一是符合 Cosmos 标准协议,即 IBC 链间通信协议。第二是要求 Zone 具有即时最终性(最好采用 Tendermint 共识),以确保跨链的一致性。而且 Cosmos 可以支持多个 Hub 的互联。对于现存的公链,可以通过协议适配接入 Cosmos Hub,Cosmos 把协议适配网关称为 Peg Zone 锚定分区。最终形成的结构就是右下方图片展示 Cosmos 架构。

Cosmos Hub 以及其他用 Cosmos SDK 开发的分区都采用 Tentermint 共识协议,出块和敲定过程是合一的,只要出块,就是得到了 2/3 以上验证人的签名验证。这样做的好处是简洁快速,出块时间可以达到秒级甚至亚秒级,而且具有即时最终性。但是在网络发生分区或者验证人大面积停机等情况下,Tentermint 共识有可能暂停出块。

万字说透跨链:DApp 赋能、信任来源、治理机制与现实挑战

我们把 Serenity 也就是以太坊 2.0、Polkadot 和 Cosmos 放在一起比较一下。三者都是未来几年重要的 DApp 平台。首先 DApp 开发方式,三个链都支持智能合约。Serenity 还是智能合约平台,而 Polkadot/Cosmos 网络中会有支持智能合约的平行链和分区链。除此之外,Polkadot 和 Cosmos 带来了全新的 DApp 开发方式,就是开发特定应用的区块链。Cosmos 为应用链提供的工具是 Cosmos SDK,目前支持 Go 语言开发。Polkadot 为应用链提供的工具是 Substrate,目前支持 Rust 语言开发。Substrate 是完整的应用链开发工具,具备完整的应用链框架,Gavin Wood 演示了在全新的电脑上,15 分钟用 Substrate 发布出一条应用链。另外,Substrate 所有模块都可以定制或者替换,功能强大而且非常灵活。相比较而言,Cosmos SDK 要单薄一些,它主要提供 Tendermint 共识引擎、IBC 链接通信协议和通证等核心模块,大部分上层建筑需要自行开发。

关于性能,Serenity 每个分片大约是 100tps,仍然是优先处理 gas price 高的交易。Polkadot Hub 应该能达到上千 tps,平行链可以自己决定共识算法、硬件和网络,没有严格的性能上限。Cosmos Hub 和分区都采用 Tendermint,能够达到上千 tps。

关于互操作。Serenity 跟以太坊 1.0 是一样的,智能合约可以相互调用。Polkadot 平行链通过 Relay 与其他平行链互操作,通过 Bridge 与其他链互操作。Cosmos 分区通过 Hub 可以互转通证,通过锚定分区与其他链互转通证。IBC 消息也有 data 字段,就像电子邮件的附件,通过扩展数据字段,分区链之间可以传递任意数据。

接入方式 Serenity 跟以太坊 1.0 相同,开发者自行部署智能合约。Polkadot Relay 接入要拍卖插槽,质押数量不菲的 DOT。Cosmos 与 Polkadot 类似,是质押 Atom 拍卖接入资格。

然后是安全性,Serenity 的分片就像是标准集装箱,DApp 放进就行了,安全性由系统保障。与之相对的是 Cosmos,应用链不论是否接入 Hub,都是自己保障安全。Substrate 开发的应用链是两个选项,要么接入 Relay 成为平行链,由 Polkadot 保障安全;要么独立运行,自己保障安全。

最后是 DApp 升级,它跟后面要重点讲的去中心化治理密切相关。在这里我们简单地概括为 Serenity 不支持 DApp 升级、Polkadot 支持 DApp 的安全升级。Cosmos 的分区链是可升级的,但是 Cosmos SDK 并没有内置对升级的支持,需要 DApp 开发者自行实现升级。

Polkadot/Cosmos 最大的创新在于提供了新的 DApp 开发方式,也就是为开发应用型区块链提供了支持。应用链可以通过跨链协议互操作,而且每条应用链都可以独享 1000tps 以上的处理能力,DApp 的性能瓶颈被解除了。下面重点讲述 Polkadot/Cosmos 如何解决去中心化治理问题。在此之前,首先要解释去中心化治理的作用,为什么去中心化治理是除性能之外的 DApp 创新的另一大瓶颈。

第三部分:智能合约的信任来源是什么?

万字说透跨链:DApp 赋能、信任来源、治理机制与现实挑战

2013 年初,我第一次接触 BTC 的时候,比特币圈子最流行的爆款游戏是中本聪骰子,当时 BTC 网络一半以上交易量都发生这款菠菜游戏上。中本聪骰子玩法非常简单,无需注册,也不需要安装客户端。Satoshidice.com 网站公布多个投注地址,对应不同赔率。只要转入比特币,就可以参与游戏。如果庄家输了,奖金会转回玩家的发送地址。如果玩家输了,也会有很少一点 btc 发回来,相当于告知结果。中本聪骰子的真正创新在于:玩家不必担心庄家作弊,或者说赌局能够自证公平。证明的方法见上图,简单说就是,服务端预先生成随机数,并公布随机数的哈希值。每轮赌局服务端用随机数决定输赢,公布赌局结果之后,也公布随机数。玩家可以验证随机数和哈希值的对应关系,从而确认随机数是预先生成的。中本聪骰子的创始人是 Eric Voorhees,他也是后来的著名加密货币兑换服务 shapeshift 的创始人和 CEO。当时 Eric 匿名运营中本聪骰子网站,其实即便实名,他当时也算不上知名人物。因此骰子的玩家不是因为相信运营者才相信应用,而是因为可以自行验证公平性才信任应用。币链圈有句名言 —— Don’t trust, Verify! 即:不要信任,去验证!强调的就是可验证。张首晟先生提出的 In math we trust,也有异曲同工之妙。可验证应用采用密码学技术,创造出可证明的公平(Provable Fairness),也可以说是创造出了信任(Truest),所以也有人说区块链是生产信任的机器。

万字说透跨链:DApp 赋能、信任来源、治理机制与现实挑战

以太坊开创的区块链智能合约是开发可验证应用的技术。智能合约内部状态都是公开可见的,平台不支持隐匿数据,我称之为状态可验证。另外智能合约应该公开代码。代码公开不仅是开源,而是由平台保障合约源代码和执行代码对应。使用者可以查看合约代码,从而验证开发者所声称的处理逻辑与实际实现一致,即处理逻辑可验证。而且智能合约不能调用随机数、当前系统时间,也不能直接访问链下数据,从而确保执行的确定性(Determinism)。由此可见,智能合约是开发可验证应用的通用性技术。而中本聪骰子的子孙后代们也在三大智能合约平台大放异彩。

为了保护处理逻辑可验证,平台通常不允许智能合约进行升级,原因在于开发者单方面修改智能合约会破坏可验证的公平性。但不可升级给应用开发造成了巨大的困难。应用程序几乎不可能保证没有缺陷。智能合约运行在公链平台上,任何人都可以无需许可地匿名访问。再加上智能合约常常用于处理加密资产交易,任何微小的缺陷都会被黑客利用。TheDAO、Parity 多重签名钱包、美链 1CO 等智能合约,都因为微小的程序缺陷,导致了巨大的经济损失。另一方面,互联网应用和移动应用常常快速迭代,不断适应用户需求、增强功能、改进体验。如果区块链应用只能「以不变应万变」,要在竞争中胜出难于登天。

为了突破智能合约不可升级的限制。开发者用 delegateCall 等方法,绕过平台,实现了智能合约可升级设计模式,如上图所示。可升级智能合约通常由三个部分:代理合约、状态合约和处理逻辑合约。状态合约存储所有需要持久化的数据。代理合约负责将外部服务请求转发给处理逻辑合约。代理合约保存了处理逻辑合约的地址指针。通过部署新版本的处理逻辑合约,修改代理合约的地址指针,就能够实现处理逻辑升级。

可升级设计模式使得智能合约具有了可升级性,代价是破坏了智能合约的处理逻辑可验证。开发者可以不经过用户同意,甚至在用户不知情的情况下修改智能合约。那么用户是否仍然可以信任智能合约呢?答案是需要个案分析。在协议可变的前提下,是否可信取决于协议的控制者是否可信。例如 Paxo/GUSD 等合规稳定币,我们知道 Paxo/GUSD 的运营实体是受纽约金融局监管的合规企业,其稳定币的法币储备有定期的正规审计。虽然这些稳定币的运营商可以随时升级(修改)智能合约,但是用户并不会因此而产生疑虑。但是大家应该注意,合规稳定币的信任并不是区块链制造的,而是把链外的信任延伸到了链上。例如 eher 公司通过区块链发行 USDT,只是利用区块链技术的可及性和快捷清算能力。USDT 的信用不是区块链制造的,而是由 Tether 公司提供的。

另外一种情况是,掌握智能合约升级权利的不是个人或者企业,而且去中心化匿名组织(DAO),例如 MakerDAO、Aragon 等。他们通过去中心化的治理流程(通常也用智能合约实现),由利益相关人通过投票决定协议规则的修改。在这种情况下,智能合约的可信性取决于 DAO 的可信性。稍后我们会继续延伸这个话题。

总结一下本小节的内容。智能合约是开发可验证应用的技术,状态可验证+处理逻辑可验证创造出可证明的公平性,智能合约菠菜的流行大抵源于此。可验证和可升级是一对矛盾。可升级智能合约破坏了可验证性,其信用之源是合约的运营主体。

第四部分:比特币的信任来源

万字说透跨链:DApp 赋能、信任来源、治理机制与现实挑战

我们再来看比特币的信任来源。2013 年三月的比特币价格暴涨,普遍认为与塞浦路斯银行危机有关。上图左侧摘录了当时主要的财经媒体的新闻标题。塞浦路斯跟冰岛、爱尔兰一样,是新兴的离岸金融中心,靠低税率和监管宽松,吸引了大量资金流入。塞浦路斯 700 亿欧元的银行存款,有 300 亿来自俄罗斯。希腊债务危机让塞浦路斯的银行损失惨重,银行资不抵债,面临破产。最终的解决方案是储户买单,10 万欧元以上的账户几乎血本无归。塞浦路斯银行危机第一次明确地提醒人们:存在银行里的钱,哪怕是存在欧洲发达国家的银行里,也可以一夕归零。于此同时,比特币作为一种非主权的,不依赖金融中介的价值存储手段,进入了人们的视野。从此之后,每当某国家出现货币危机,包括阿根廷、印度、委内瑞拉、南非、土耳其、伊朗,在当地都出现了比特币交易量大幅上升的情况。这一系列事实证明,比特币是超主权价值存储货币已经被认可。即便在通货膨胀并不严重的地区,也有越来越多的人使用比特币保存个人财富。价值存储对人们的生存繁衍至关重要,比特币凭什么担负如此重托呢?

我们把比特币产生信任的方式跟以太坊智能合约进行比较,可以发现比特币的可信既不是源于代码可验证,也不是因为比特币核心开发者具备信用。包括我在内的比特币绝大部分用户都没有看过比特币节点的代码,也并不关注代码,而且比特币协议是可以修改的(分叉)。对于由谁决定比特币协议的升级,中本聪的初始的设想是算力投票。理由在于算力是不可伪造的,而且矿工是比特币的主要的利益相关群体。但是很有可能,中本聪没有预见到专用 ASIC 矿机出现,将个人电脑完全挤出了挖矿竞争,并形成了几大矿池垄断算力的现状。比特币的利益相关群体主要有四个:矿工、开发者、用户和企业(交易所、钱包厂商、区块链浏览器、社区、媒体等)。他们有一致的利益,也有相互冲突的利益。例如几乎全部参与者都受益于比特币长期价格上涨。但是用户希望交易费越低越好,而矿工希望交易费越高越好。由于利益冲突,各方对比特币协议演进会出现不同的意见,而且四方都有影响协议研究的能力和途径。基于比特币分叉博弈的历史,目前普遍认为对协议演进影响里最大的是比特币核心(开发者),而不是矿工。那么我们是否是因为信任比特币核心才信赖比特币呢?

最近有矿圈的大佬声称,比特币核心早晚会取消比特币 2100 万的发行上限。作为把 btc 用于长期价值存储的用户之一,我是否应该担心呢?说实话我并不担心,并不是因为大佬的逻辑有问题(我甚至没花时间研究他的逻辑),也不是因为我信任比特币核心。我甚至不知道现在的比特币核心由几个人组成,他们都是谁。但是从第一次购买 btc 到现在 6 年多的时间,我知道有大量跟我利益诉求一致的比特币用户。我们都把 BTC 当作自己可以完全掌握的资产(还记得 Web3 愿景吗?),是最可靠的价值存储。假设比特币核心处于某种原因要牺牲比特币的稀缺性,那必然要通过硬分叉来实施。我只需要保留有稀缺性保证的 BTC,卖出没有稀缺性保证的分叉币(也许叫 Bitcoin Uncapped?)就行了。也就是用我的币做了支持谁不支持谁的投票。我相信比特币社区会有千千万万人(不是也无需是全体)会跟我做相同的选择。而且也一定会有开发者维护稀缺比特币的代码(组成新的核心?)。一番折腾下来,除了原来的比特币核心被边缘化以外,我看不出还会有其他可能的结果。

所以我对比特币的信赖源于影响比特币协议演进的力量是多方的,而且由于区块链可以分叉,不同利益诉求的群体可以分道扬镳,然后由广大的比特币用户来选择支持 / 不支持 / 同时支持哪个分叉。所以比特币的信任来源是广泛参与的治理和可分叉性,与智能合约非常不同,这就是本文所说的去中心化治理。

第四部分:深入探讨去中心化治理问题

万字说透跨链:DApp 赋能、信任来源、治理机制与现实挑战

总结上一小节的结论:除了可证明的公平性,区块链应用创造信任的源泉是去中心化治理。而且只有通过去中心化治理产生信任的应用,才是真正的去中心化应用。这一小节我们介绍去中心化治理的一般过程和发展现状。

以比特币为例,治理的基础是广泛参与的讨论,在 bitcointalk、reddit 的网络社区、大大小小的会议、众多的媒体上发表看法、讨论甚至争论问题。研究者会针对某个特定专题,例如隐私、性能或者更一般化的签名方案、P2P 通信协议等,进行研究,并发表研究成果。对比特币协议的改进建议以 BIP (Bitcoin Improvement Proposal 比特币改进提案)的形式呈现。重要的 BIP 会引发比特币社区的关注,并引发更为广泛的讨论。开发者(不一定是 Core,也不一定是提案发起人)可以实现某个 BIP。目前比特币没有正式的对开发者进行资助的流程。Dash/Monero 等加密货币社区,有标准的流程来决定是否以及如何对开发者提供资金支持。在协议改进实现之后,就来到去中心化治理最关键的步骤:由谁以及如何决定 BIP 部署上线,成为比特币协议的一部分。

比特币的治理在这一关键环节非常含混不清,大致可以描述为核心开发者根据已经达成的广泛社区共识来决定是否上线 BIP。什么才是广泛的共识?是否已经达成了广泛共识?没有明确的标准,这在持续近三年之久的大区块 vs. 隔离见证的争议中表现得尤其明显。以太坊的治理过程与比特币非常类似,可能唯一重要的区别在于 V 神在以太坊社区的巨大影响力,使得 V 神支持的协议改进更容易达成共识。由于这一类的治理过程的最终结果是实施协议分叉,不妨称之为分叉治理。分叉治理虽然实现了治理去中心化的目标,但是具有明显的缺陷。最大的问题是治理过程含混不清,因此效率很低、难于改进而且很容易陷入争议。例如以太坊围绕 ProgPoW 的冗长肥皂剧就是混乱无序治理的必然结果,没有清晰的治理过程,类似的肥皂剧就会反复上演。

针对分叉治理的缺陷,Decred 首创了链上治理。也就是 Decred 通证的持有人通过链上交易对提案进行投票表决,表决通过的提案才能部署上线。EOS 和 Tezos 也对链上治理做了大量有益的探索。上图右侧对去中心化治理的现状划分的象限。比特币和以太坊采用分叉治理方式。EOS 和 Tezos 区块链采用链上治理。但是就我所知,EOS 和 Tezos 并没有为平台上运行的智能合约提供治理支持,因此还是没有解决 DApp 治理的问题。Decred 很可能是目前唯一的具备完整链上治理的去中心化应用。但是 Decred 的治理也有明显缺陷。首先 Decred 是 PoS+PoW 混合共识,通证持有者和 PoW 矿工都是网络的利益相关人,但是 PoW 矿工不能直接参与链上治理,他们的利益诉求被忽略了。另外 Decred 的提案是持币者直接投票,相当于是每个决策都是全民公决,这样做效率很低,而且最明显的问题是实际投票率很低。虽然有些提案有百分之几十的通证参与投票,但是看按持币地址的参与率,就低到可怜了。这两个问题在一些纯 PoS 链得到了很好的解决。PoS 的治理基础就是 Staking,Staking 代表了长期的利益绑定,治理的目的是为了让加密协议不断进步,最大化长期利益,因此参与 Staking 的持币者参与治理非常恰当。另外就是新一批的 PoS 都实现了某种代理机制,DPoS/BPoS/NPoS,相当于实现了代议制。日常的治理可以由当选的验证人来进行,他们相当于是议会。验证人通常跟加密网络有巨大的共同利益,他们有动力为治理投入资源。另外重大的表决,尤其是验证人和委托人利益有冲突的提案,仍然可以也应该交由持币者公决。

第五部分:Polkadot 的治理机制

万字说透跨链:DApp 赋能、信任来源、治理机制与现实挑战

Polkadot 的治理是前所未有的全过程链上治理,基于最前沿的区块链技术实现。被表决的提案不仅仅是对协议修改的描述,而且可以是新协议本身,即被编译称 wasm blob 的可执行程序。链上投票通过后,新版程序通过区块链分发给验证人节点,并且自动启用。升级过程中不会出现分叉。基于令人叹为观止的技术,Polkadot 在链上治理方面可以说是一骑绝尘,正在进行大量的创新和探索。

Polkadot 治理仍然处在快速进化之中。几天前(5 月 24 日) Polkadot 刚刚宣布 PolkaDAO 上线,PolkaDAO 把对提案进行资助的决策流程搬到了链上(目前是以太坊,未来应该会迁入 Polkadot)。我认为在主网上线之前,乃至于主网上线后的相当一段时期内,进化不会减速。因为 Polkadot 的优势并不在于它已经找到了行之有效的治理方式,而在于它建立起了可以支持快速进化的过程和技术。根据我的观察,在主网上线前和上线后的一段时期内,开发者仍然拥有 Polkadot 的控制权。他们会充分利用这一权利,将 Polkadot 快速推进到自洽状态,然后退居幕后,把治理权交给社区。这也是 Block.One 对 EOS 所做的。Polkadot 多出了两年行业发展经验(后发优势),而且开发了更好的链上治理技术。有理由相信 Polkadot 的开发者能做得更好。所以现在讨论 Polkadot 的治理,不必对细节太过关注,因为都可能会变掉。需要关注的是:完全可编程的链上治理大概会是什么样子,能做到哪些?而且 Polkadot 治理代码是开源项目的一部分,DApp 开发者可以把 Polkadot 治理当作模版范例,定制开发符合自身项目情况和需求的治理过程。

Polkadot 这个词在不同的语境下有不同的含义(范围),有时候我们用它来代表 W3F 发起的整个 Web3 生态,有时候代表 Polkadot 项目(包含 Substrate),有时候特指 Polkadot Relay 这条特定的区块链。本小节所说的 Polkadot 治理,是 Polkadot Relay 区块链的治理,再具体的说是 Polkadot Relay 的 PoC-3 阶段实现的链上治理。

整个治理过程围绕提案和投票展开。提案可以由普通的持币者提出,也可以由理事会提出。理事会是持币者选出的,持币者可以给任意多的理事候选人投票。每个选举周期的冠军进入理事会,替换任职时间最长的理事,亚军票数保留,其他候选人选票清零。每个理事都有对理事会提案的否决权,但是不能连续使用。理事会通过提案进入全民公决,而且只有得到多数反对才会被否决。普通持币者的提案进入队列,等待其他持币者的支持。每隔一段时间,支持数最高的提案进入全民公决。但是普通持币者的提案要获得多数支持才能通过。在全面公决投票中,持币者可以选择锁仓系数,范围从 1-6,所投出的票数是持有的 DOT 数量 *锁仓系数。如果投票结果跟投票者的选择一致(通过 / 否决),那么投票者的 DOT 将被锁定,锁定时间 = 常数 * 锁仓系数。如果投票结果跟投票者的选择相反,则无需锁仓。这样的计票方式,有助于让(未来的而不是过去的)长期持币者获得更大权重。

第六部分:去中心化应用的未来之路

万字说透跨链:DApp 赋能、信任来源、治理机制与现实挑战

前面讲述的全部内容可以归纳为去中心化应用的三次浪潮。第一次是比特币引发的去中心化电子现金(加密货币)的创新浪潮,围绕「更好的加密货币」主题展开,方向主要有三个:隐私、治理和支付。这三个方向也都针对比特币的「不足」。Zcash/Monero/Dash 等力图巩固加密货币的可互换性和私密性;Decred/Dash 等探索了混合共识和更规范更有效的治理;Litecoin/XRP/BCH 致力于成为更好的支付 / 转账加密货币。大家知道在 2012-2015 年,开发 DApp 的主要方式是 fork 比特币的代码,做定制修改,然后运行独立的区块链。再到后来直接 fork 比特币区块链,借力比特币的网络效应。这一轮创新是开天辟地试的,它开启了去中心化应用的大门,使每个人都可以自行认领数字身份(私钥 / 地址),而无需被授予。并实现了最普遍使用的资产——货币的去中心化。但是除了最大化主义者或者对现代金融一无所知的人,恐怕没有人会认为仅靠去中心化货币就能支撑起 web3 理想的大厦。但是由于当时开发去中心化应用的技术单一,都源自比特币。而比特币的架构设计扩展性不足,使得开发非货币类应用难度很大。而且当时也没有跨链技术,DApp 是彼此独立的区块链,之间不能互操作,无法形成 DApp 生态。这一轮创新浪潮给只是行业留下了几个各具特色、但独立运行的加密货币。

在比特币区块链上实现其他资产的发行和交易是可行的(例如 ColorCoin/MasterCoin 等早期尝试),但严重受制于比特币区块链的限制。V 神正是由此出发,提出并领导实现了以太坊。以太坊是开放的创新平台,它引入了图灵完备的虚拟机 EVM,推出了 Solidity 等智能合约开发语言,并且支持智能合约相互调用(互操作),极大地降低了区块链应用开发的门槛,引发了第二轮创新浪潮。但是如前所述,由于以太坊基础设施的限制,导致应用性能差、成本高,用户体验很差。而且智能合约实质上是可验证应用开发技术,并没有为 DApp 所必须的去中心化治理提供支持,甚至为了保护可验证性限制了应用的升级,给 DApp 演进造成了很大困难。由于这些限制,虽然以太坊主网上线已经 4 年多了,全世界也有几十万智能合约开发者。但是以太坊上没有一个真正落地(百万级活跃用户)的去中心化应用。当然第二次创新浪潮不是毫无收获,期间产生了大量的可验证应用,包括可以验证的资产发行和转移、可验证的菠菜等等。另外有成百上千个 DApp 在智能合约平台进行了尝试,开发出了 MVP。在性能、治理等瓶颈解除之后,这些项目团队有最好的机会开发出真正落地的 DApp。

Polkadot/Cosmos 等跨链技术是对以太坊等智能合约平台的换代。他们继承了以太坊图灵完备、规范应用程序开发和互操作支持等优点,又解除了去中心化应用的性能和治理两大瓶颈,将引发 DApp 创新的第三次浪潮。我们前面重点介绍了 Polkadot 的治理。那么用 Cosmos SDK 开发的应用链,也可以实现类似 Cosmos Hub 和 Tezos 的链上治理。关于跨链技术的局限是什么,我还不敢说现在已经看到了,但是有一些疑惑要交给时间去验证。在第三次创新浪潮中,我们有理由期待出现大量的 DApp 创新,能够包括去中心化匿名组织 DAO、去中心化交易所 DEX,以及众多 Defi 去中心化应用。最优秀的一批 DApp 很可能获得成百上千万的用户,跟对中心化互联网服务竞争而不落下风,将互联网向实现 Web3 愿景推进一大步。

第七部分:Polkadot 的现实问题

万字说透跨链:DApp 赋能、信任来源、治理机制与现实挑战

谈过 DApp 创新的远大前景,再来说说现实的困难。首先是 Polkadot/Cosmos 跨链技术落地尚须时日。Polkadot 目前的进展是 PoC4 已经稳定运行了近两个月。但是 PoC4 并不包含跨链协议。跨链协议 ICMP 将包含在 PoC5 里面。目前 Polkadot 主网上线目标时间点是今年年底。但这在一切顺利的情况下的预期。开发过复杂软件项目的同学都知道,一切顺利通常只存在于幻想之中。虽然 Polkadot 开发团队的能力有目共睹,但是如果 Polkadot 如期上线,我还是会比较意外。Cosmos 虽然主网已经上线,但是 IBC 跨链协议还未实现,也是预计在今年年底实现。考虑到 Cosmos 的各种跳票已是家常便饭,如果年底 Cosmos Hub 就开始接受分区链接入,对我来说是也个很大的惊喜。但是希望大家理解,DApp 不一定要依赖跨链。应用链形态的 DApp 可以自己构成业务闭环,并且提供跟中心化互联网应用类似的用户体验。因此我呼吁区块链行业的创业者,不要再等待观望,或者在智能合约平台上继续撞南墙。从现在开始认真考虑、积极准备采用应用链实现 DApp 创新。等到跨链技术落地,再接入到 Polkadot/Cosmos,融入 DApp 生态圈。

第二个现实障碍是应用链的开发者奇缺。由于 Substrate 和 Cosmos SDK 都是不久之前出现的新技术,而且 Substrate 开发使用比较小众的 Rust 语言,因此国内具有实践经验的应用链技术团队极少。目前用 Substrate 开发过产品的国内团队,就我所知只有 ChainX 一家。而且应用链开发还面临一个很大的难题,就是 Substrate 和 Cosmos SDK 应该选择哪一个?两个开发工具的开发语言不同,都有比较高的学习成本,而且未来对应的是两个不同的 DApp 生态。一旦选定之后再更换,会造成资源投入和项目进度的重大损失。我比较过两个开发工具,Substrate 比 Cosmos SDK 功能更完整更强大。所以最佳方案是 Substrate 能兼容 Cosmos,也就是用 Substrate 可以开发 Cosmos 分区链,形成统一的独立于 Polkadot 的 Substrate 开发工具生态。Substrate 是开源软件,采用模块化的设计,把 Tendermint/IBC 封装成可以被 Substrate 使用的协议组件,在技术上肯定是可行的。我和几个做开发的朋友正在研究这个问题,也欢迎对此感兴趣的同学加入进来。Substrate 是应用链开发的首选工具。

还有就是 DApp 的治理还没有最佳实践。前面也介绍了 Decred 等治理实践以及遇到的问题。很有可能五年以后,DApp 创业者能够找到很多成功的范例和失败的教训可资借鉴。但是现在,一切才刚刚开始。只有几条基本的原则是清楚的,首先就是 DApp 要长期成功,需要设计出长期激励相容的机制。使开发者(项目方)、验证人、服务提供商、用户和投资者的长期利益一致,并且能够约束各方追求自身短期利益、牺牲整体长期利益的行为。

开发者应该钻研技术和商业、建立并维系社区,从长期币价上涨和技术服务收入获利。对于验证人,他首先应该选择真正具备交易成本优势的 DApp,因为验证人是最长期的投资者,他不但要付出资金,还有付出很高的人工成本去参与 DApp 治理。因此陷入庞氏骗局或者资金盘,是专业的验证人首先要避免的。决定参与 DApp 经济体之后,验证人应该积极参与治理,避免共谋,从长期币价上涨和领权收益获利。加密货币的投资者,这里指长期价值投资者,不包括短期投机者、量化或者趋势投资者,应该深入研究 DApp 的基本面,将通证委托给有治理能力的验证人,并持续保持关注,通过长期币价上涨和 Saking 获利。另外,DApp 协议的服务提供商和用户非常有可能作为投资者甚至验证人参与到 DApp 去中心化治理之中。

附注

利益相关:作者及所在机构当前不持有 DOT/ATOM/IRIS 通证。本文也不包含任何投资建议。 作者所在的 Random Capital 随机资本,定位是 DApp 创业项目孵化基金。我们希望做长线投资,跟面向中国市场的去中心化应用共同成长,也希望与 DApp 平台型公链项目、其他投资机构、专业节点运营商、钱包、媒体和社区等各类合作伙伴一起推动 DApp 生态走向繁荣。

来源链接:mp.weixin.qq.com