对话时间:8 月 11 日 11:00
对话嘉宾:
兰荣坚:Harmony 联合创始人兼 CTO,硅谷 ABC 区块链社群的早期创始人之一
Rudy Lu:InfPool 无限矿池合伙人,BTCU 高校区块链技术社区创始人

image (4).png

重要观点:

  1. 分片技术相较于区块扩容、共识机制等纵向扩容方法,是唯一可以实现横向扩展性的技术,也即节点数量的增多会有利于交易处理速度的提升。
  2. 现在大部分的 PoS 共识都添加了即时最终性的设计,所以更适合分片系统,原因主要是它更适合跨片间的交互
    3.PoS 或者说 Staking 的项目未来会成为主流,一方面 PoS 相对 PoW 更加安全高效,极少浪费能源,另外 PoS 所带来的 Staking 经济也会为区块链领域带来更多的新模式和新玩法。
  3. 从技术演化史来看,方向都是从依托于实物的的介质,向更加虚拟化的模式发展,因此基于虚拟权益的 PoS 取代基于算力设备的 PoW 也将是区块链的发展方向。
  4. 公链中不会再有一家独大的局面产生,每个公链都会有自己独特的市场,这样的情况将是今后的常态。跨链技术是链接这些不同领域的头部公链的主要技术基础。

以下为原文对话整理:

Rudy:Hello,各位听众晚上好,欢迎来到 「PoS 百家谈」的第 3 期。「PoS 百家谈」是由全球超级节点服务商 InfStones 主办的系列访谈活动,邀请大咖一期一会,畅聊 PoS。我是本期的主持者,InfPool 无限矿池合伙人 Rudy Lu。

本期我们荣幸邀请到的嘉宾是 Harmony 的 CTO 兰荣坚先生。兰荣坚,Harmony 联合创始人兼 CTO,曾于 Google 负责安卓应用商店的搜索基础设施搭建,也是硅谷 ABC 区块链社群的早期创始人之一。

大家知道区块容量是影响区块链的 TPS 高低的重要因素,会显著影响区块链的使用性能,现在业内较为常见的区块链扩容方法主要包括分片、侧链、新共识机制等。Harmony 与以太坊等公链致力于以分片技术来解决区块链扩容,以太坊更推出了非常彻底的升级版 ETH2.0,将 PoS 机制与分片技术结合,带火了诸如信标链、Casper、Sharding (分片)等概念,PoS、分片相信都是大家,包括我个人在内,特别关心的区块链技术热点问题。

因此,很荣幸今晚邀请兰荣坚先生参与 InfPool 无限矿池 「PoS 百家谈」,Harmony 在分片技术上有非常长时间的研究实践,期待今晚的访谈对话,能够让更多人对区块链现在以及未来的性能发展有更深入的认识。

下面,我们就开始今天的 PoS 对话吧!

分片:实现区块链的横向扩展性

Rudy:我刚刚介绍了几个区块链扩容的办法,包括分片、侧链、新共识机制等,请问兰总如何看待这些拓展公链性能的方法呢?

兰荣坚:大家知道比特币和以太坊的 PoW 共识机制在安全性和去中心化上做的不错,但是交易处理速度极低。并且完全是完全没有横向可扩展性的,即网络中加入再多的节点,性能是不变的,甚至会略微变差。很多项目在纵向可扩展性上做努力,即通过改变单一共识机制来提高效率,例如 Bitcoin Cash 扩大了区块大小,SegWit 隔离见证技术让同样的区块内容纳更多的交易等等。

这些纵向扩容的技术一般都逃离不了我们常说的区块链不可能三角理论,即安全性、去中心化和性能不可能同时得到很好的优化。扩大区块大小的做法其实是损失了一定的安全性和去中心化,因为大区块的广播速度会变慢,这样使得网络更难达到同步状态,更容易出现分叉,同时大区块也会给小节点带来存储和网络的压力,阻碍小节点加入网络,所以会损失去中心化程度。

其实很多其他方案比如 DPoS,DAG 等等,都是在安全性,去中心化和性能中间做权衡和取舍。DPoS 共识其实是放弃了去中心化,以极少数大节点在设备性能和网络优势,来获得超高的交易处理能力。DAG 改变了传统区块链的数据结构,从链式结构,变成了有向无环图结构,其实准确的说 DAG 并不是共识机制,而是数据结构,最终达成共识还是要靠类似 PoW 最长链共识或者 BFT 投票机制来避免分叉。这种没有增加并发共识数量,而只是在单一共识机制上改进的方法,本质上都是纵向扩容,交难突破区块链不可能三角的限制。

而侧链技术本质上是 layer 2 的解决方案,安全性上是需要依靠 layer 1 的公链来保证的,所以拿侧链技术和其他 layer 1 的共识技术作比较,有点不在一个范围内讨论问题。

我认为状态分片技术可以在安全性,去中心化和性能上做到很好权衡。状态分片是目前唯一可以做到横向扩展区块链性能的扩容技术,即在网络中增加更多节点和分片,就可以提升交易处理量,并且不损失安全性和去中心化。

Rudy:帮大家画个重点,横向扩展性,指的是节点数量的增多会有利于性能的提升。相较于区块扩容、共识机制等纵向扩容方法,分片技术是可以实现横向扩展性的技术。

状态分片:分片技术的主流选择

Rudy:您刚刚提到了状态分片。分片一般被分为网络分片、交易分片、状态分片,它们有什么差异?这样的分类法是否能涵盖目前所有公链的分片技术?您更看好哪一类分片?

兰荣坚:网络分片是指区块链网络节点被分成互相独立的组,每组节点分别处理交易,达成共识, 而这里每个分片分别处理交易的过程就是交易分片,所以通常网络分片和交易分片是一同发生的。

而状态分片是指每组分片分别存储一部分账本信息,而不是存储全网所有账本信息。网络分片和交易分片一定程度上可以提高交易处理速度,但如果没有实现状态分片,分片间就没法实现完全独立,交易也必须最终在全网进行同步,这样大大限制了系统可扩展性。

区块链分片机制目前只有这三个主要分类: 网络,交易和状态分片。网络分片和交易分片实现起来相对容易,状态分片是最难的,因为状态分片中的片间交易是比较难处理的,片和片的数据一致性也需要更多机制来保证。

Rudy:现在 Harmony、以太坊等选择的都是状态分片,我们可以说状态分片是目前比较主流的选择吗?

兰荣坚:现在业界已经公认分片需要做状态分片了,不然其实意义不大

跨片与跨链交易:区块链的未来生态图景

Rudy:之前分片给人的感觉是把不同节点分区处理不同的链上交易,大家还是一条链,就好像一条马路分了多个通道,但随着以太坊 2.0 宣布自己的信标链+分片链设计之后,给人感觉是每条分片也是一条链,再由信标链作为中心来调配管理。这种结构很容易让人想到 Cosmo 的 hub,或者波卡的中继链。您觉得他们是同样的结构吗?有什么区别?

兰荣坚:其实本质上分片的信标链和 cosmos 的 hub,波卡的中继链在某些功能上是类似的,包括确保分片链或者侧链的数据一致性,还有链间消息传递和验证等。在跨链或者跨片的角度讲,这几种主链的功能都是一致的,就是传递链间可验证的信息,提供信任中心。

而不同于 cosmos 和 polkadot,信标链在分片系统中的更大的作用是产生随机数,总领所有分片的结构和状态,包括对分片的节点进行分配,再分配,Staking 的接管等等。所有分片需要依靠信标链的原信息,来知道自己需要做什么,同时知道其他分片是什么结构,等等。

Rudy:所以在跨链 / 片的信息传递这个功能上它们是一致的,但是信标链还需要总领各个分片和节点的结构和行为,因为信标链和分片是一个统一的账本,cosmos 多条链各自是不同的账本,可以这么理解吗?

兰荣坚:嗯,是的。分片区块链的分片链 一般都是同质的,而多链结构里的链每个都不同。

Rudy:您如何看待未来跨链的生态图景?

兰荣坚:谈到跨链,我的看法是,在公链领域,今后是不会有一家独大的情况的,在 18 年以前也许 Ethereum 可以是公链的唯一选择,但是自从 18 年开始,很多新公链的诞生,让整个公链环境百家争鸣,每个公链都有自己独特的属性和功能,适用于不同的应用需求,这样的情况将是今后的常态。所以跨链技术是链接这些不同领域的头部公链的主要技术基础。

我个人认为公链中不会再有一家独大的局面产生,相反,每个公链都会有自己独特的市场,并且在其中深挖,链和链之间的沟通交流会更多依赖跨链技术。医疗数据共享就是一个很好的例子,通常医疗数据所有权和隐私性是非常敏感的,如果两个医疗系统分别采用了两条不同的链存储数据,那么要想打通两家医院的数据壁垒,就必须靠一个安全可信的去中心化跨链协议来支撑。将来整个区块链生态将是多条公链并存,服务不同的业务需求,链和链之间会由跨链协议来完成价值和信息的流转,实现类似局域网和广域网的生态连接。

Rudy:咱们刚刚谈到,跨片与跨链交易的技术非常相近,您觉得分片链在实现与其他公链的跨链上会有优势吗?

兰荣坚:分片跨链的实现和性能,会比跨链更容易和高效一些,因为分片链还是在统一的系统内,并且分片一般都是同质的,所以跨片的实现会清晰一些。这不只体现在跨片交易上,跨片智能合约也是有可能实现的。而在多链系统中,跨链的智能合约调用,很难实现。

PoS 的即时最终性设计更适合分片系统

Rudy:就分片而言,公链采用 PoW 共识和 PoS 共识在哪些设计上会存在差别?从整体来看您觉得哪种共识机制更适合分片?

兰荣坚:PoW 还是 PoS 是个很大的论题,就共识的特性而言,对于分片系统,更值得探讨的指标是共识是否支持即时最终性。

PoW 的最长链共识由于有分叉的可能,所以交易没有即时最终性,对于分片系统来说,如果没有即时最终性,那么对跨片的交易的速度和安全性都会有很大影响,因为如果你没法很快确定另一个片的动作确定完成,不会改变,那么你在另一个分片就没法做出相应反应,或者更坏的情况是,如果做了反应,然后发现另一个片的动作被回滚了,那么整个系统的状态都会紊乱。

而现在大部分的 PoS 共识,不管是基于 BFT 的还是基于其他算法,大部分都添加了即时最终性的设计,所以更适合分片系统,原因主要是它更适合跨片间的交互。

随机分配有效解决 1% 攻击问题

Rudy:谈到分片,大家都会提到算力的分散和 1% 攻击,当然在 PoS 公链里算力的分散就是投票量的分散了,假使一个节点获得了 1% 的得票量,而这个公链有 100 个分片,那么无论它被分到哪个分片都具有极大的得票量优势,也就容易垄断该分片的交易验证,这个问题如何来解决呢?

兰荣坚:解决办法是让每个分片多有足够多的节点,每个节点的 stake 数量尽量接近。然后通过安全的随机数,让节点在分片间的分配完全随机。这样一个有大量 stake 的攻击者,是不可能完全把他的 stake 集中到一个分片的。他的 stake 会被平均随机分散到多个分片,降低他在一个分片的权利,从而使每个分片都足够去中心化,避免攻击。

所以在 staking 的设计上,我们就需要尽量保证每个小节点的 stake 数量相近,避免一个节点 stake 过多。这个设计上,我们刚刚发布了我们的 EPoS (Effective Proof-of-Stake) 设计,它很好的解决了分片系统中做 PoS 的难题。

Rudy:随机分配是刚刚提到的保障安全性的重要因素,大部分分片公链都会应用 VDF (可验证延迟函数)来产生随机数,但也会有人质疑这种随机依然不是真随机,会存在被利用的漏洞。因此想请问兰总,现在公链一般采用的都是 VDF 制造随机数吗?它随机的安全性有多大呢?依然存在怎样的安全隐患?

兰荣坚:好的随机数算法必须同时保证不可预测、不可干扰,可验证、以及执行效率高的特性。其实除了自然界的量子级别之外,是没有完全的“随机“数的,所有电子世界的随机数都是伪随机数,但通过多方计算 MPC (multi-party computation) 的方法,还是有可能实现之前的几个特性,从而满足作为区块链随机数的基本需求。

之所以在分布式随机数产生协议中加入 VDF,是为了避免 last revealer attack (最后发布者攻击). 这种问题在普通分布式随机数协议中是很常见的,它打破了”不可干扰“的要求,具体讲,当大部分节点多发布了自己对随机数的一小部分贡献时,最后一个节点可以根据看到的其他人发布的数据,他可以很快的通过计算,来决定自己是否要发,或者发什么样的数据,从而导致最后的随机数结果对他自己有利。

而 VDF 的延迟计算作用,可以使最终的随机数结果,需要通过一段较长的时间才能计算出来,这样最后发布者就没办法知道自己需要做什么才能让最后的结果对自己有利,从而实现了不可干扰的问题。

在 VDF 的实现方面,我们已经完成了业界第一个用 Go 语言实现的安全高效 VDF 可验延迟函数,并且利用 BLS12-381 椭圆曲线实现了 VRF 的功能。 VRF 的用处是加入不可预测性的随机数,VRF 和 VDF 都是可以验证的密码学算法,所以最后的结果也是可以验证的。而且我们的分布式随机数协议的复杂度是 O(n),所以在那四个特性上,我们的算法完全满足,可以做为安全有效的随机源,为分片区块链的安全做保障。

Staking 是否会成为未来主流?

Rudy:您如何看待 PoS 采取 staking 来代替 PoW 算力挖矿?这会成为未来的主流吗?

兰荣坚:对于 PoW 和 PoS 的较量,我强烈推荐 Zhijie Ren 的一篇文章:《支撑 POW 安全性的不是算力,而是信仰》

主要观点是 PoW 的安全性其实比大家想象的要低得多,对于除了比特币之外的 PoW 项目,其安全性都并不高,最近的 ETC 攻击就是很好地证明。因为想要拿到 51% 的算力,并不需要买 51% 的矿机,只需要租用相应的算力一段时间就好了。而 PoS 和 Staking 的机制,可以有效保证攻击者的攻击成本是整个项目币的市值的至少 51%,而当一个攻击者,有了 51% 以上的代币后,他是没有动机去攻击这个链,然后让自己的 Stake 归零的。所以其实 PoS 的安全性比 PoW 更高。

所以,我认为 PoS 或者说 Staking 的项目未来会成为主流,一方面 PoS 相对 PoW 更加安全高效,极少浪费能源,另外 PoS 所带来的 Staking 经济也会为区块链领域带来更多的新模式和新玩法。其实从技术演化史来看,方向都是从依托于实物的的介质,向更加虚拟化的模式发展,就好比电子计算器取代了实物算盘一样,我认为基于虚拟权益的 PoS 取代基于算力设备的 PoW 也将是区块链的发展方向。

Rudy:全网 staking 率(投票率 / 质押率)的提升对公链安全性、性能有怎样的影响?在 PBFT 类共识下可能追求 staking 率高于 2/3,其他 PoS 链也是 staking 率越高公链越安全吗?

兰荣坚:Staking 是区块链系统层之上的协议,所以 staking 率其实对区块链性能不产生影响。而安全性上,就像我说的,主要考虑攻击成本,那么 staking 率越高,要得到全网 50% 以上的 stake 的成本就越高,进而网络的安全性就越好。

所以 staking 率对于网络安全肯定是越高越好,但如果所有 token 都被 stake,对于 token 的流通和经济又会产生不良影响,所以需要权衡处理。通常 66% 左右的 staking 率是比较合适的。

结束语

Rudy:公有链作为区块链世界的基础设施,它的高性能是实现规模化应用的前提,分片技术无疑是实现区块链性能扩展的重要路线之一,其横向扩展性使得其性能扩展的天花板极高,而跨片交互、1% 攻击等种种难点与问题也正在不断取得突破。通过今天兰总的分享我们了解到,对于分片技术而言,PoS 机制由于较多地融入了即时最终性的设计,更加适合跨片的交互,受到了分片公链的更多青睐。此外,基于虚拟权益的 PoS 将持币者权益与矿工绑定在一起,安全性实际比 PoW 更高,基于虚拟权益的 PoS 取代基于算力设备的 PoW 将是区块链的发展方向。

感谢 @ 兰荣坚 今日能做客 InfStones 主办的「PoS 百家谈」,希望 Harmony 与分片链都能取得更好的进展。

「PoS 百家谈」是由全球超级节点服务商 InfStones 主办的系列访谈活动,邀请 PoS 公链创始人,及来自节点服务商、资本方等机构的行业大咖,一期一会,畅聊 PoS 与 staking 经济。欢迎添加小助手微信 : infpool01,拉你进群一同学习。