ChainX使用的下一代区块链技术(视频分享-郭光华)

讲师:郭光华,ChainX创始人,Substrate和Polkadot代码贡献者。

img

区块链发展现状

  • 以太坊:为代表的区块链自我改良派(历史的包袱太重,走得慢)
  • EOS:为代表的改革派(雷声大雨点小)

不管是以太坊的自我改良,还是EOS的的改革,他们都是认识到了区块链现有状况: 区块链智能合约基本能用,但离大规模应用还差得远 ,这主要是目前区块链框架在(扩展性,易用性,共识能源问题)的局限性导致的。

我们从Code说话, 以太坊各个技术的更新还可以,但执行速度慢。EOS像是有上气没下气。唯有Substrate是最前沿的革命派。

01 Substrate重塑区块链

img

上面我们说到了现有区块链,只是验证了区块链dapp能用,但没法做到大规模应用。主要局限于三点,下面我们分三部分来分析substrate 如何解决这些问题。查看之前我分享的Substrate:https://bbs.chainx.org/topic/5be7a22acff1855dafce73e9

  • 扩展性
  • 易用性
  • 共识

扩展性

现有区块链都是单链模式, 一条链的最大的tps 不能过万(单台计算机tps 差不多10万tps,因为hash等加密算法的重复利用,链的tps << 1/10 单台计算机计算)。

Substrate可以灵活的拓展任意条parachain, 好比现在的分布式计算,3台机子算不过来, 我们加机器。

各层结构的模块化: 区块链大致由(p2p, rpc, consensus, storage,crypto)这几部分组成。但现有的链都是把这几个模块糅合在一起。

parity团队因为在长期开发以太坊,积累了经验, 把这几个模块往高层次抽象。如substrate 会做到devp2p, libp2p 网络一键选择更换。再如任意种hash算法替换。

任意代码的升级,比普通云服务器的升级更简便。因为每一个substrate 节点都含有两份可执行runtime内核代码。

一份是本地编译的二进制代码。另一份是存在链上的wasm代码。为什么两份代码就能解决了快速稳定升级? 这是个好问题

易用性

  • 两层结构合约:runtime合约和contract 合约.

    • wasm 合约,支持rust/c/c++ wasm的原生storage 接口.
  • 极高层次的抽象,可以使不同的开发人员做不同部分的开发.

    • 双层执行 code(native, wasm)
    • 双层共识
    • 双层合约
    • 双层p2p
    • 多模版密码库

共识

多种共识并行交互执行, 最早是algroud 定义了快慢速通道共识并行,但那现在还是在白皮书里, 现在的substrate 就能做到了aura + grandpa 两种共识并行运行。

这种组合共识,既有POW的分散性,又没有他的能源浪费问题,还有一个100%的确定性,而不是pow的概率确定性, 尤其是性能方面,pow不可与之同日而语。

aura 提供了快速并发出块性, 像POW一样节点分散,可以支持100万节点同时在同一高度同时出块。

grandpa 提供了确定性,只要用bft确认最后一个大家公知的块即可。 这对传统BFT的通信消息量减少99%以上。

Libp2p

  • IPFS 团队定义的一个协议, 是目前市面上支持各种协议最广,最稳定的p2p库
  • Devp2p, 以太坊的p2p层协议,比较单一简单

Rust

  • 社区特别open的个语言和区块链open思想吻合
  • 有C++的性能, 没有C++的运行时不确定
  • 从语言库级别支持std, nostd 两套代码规范, nostd的代码兼容wasm这种确定性执行

02 创新方向 Future

img

区块链技术现在都在努力往哪些方面创新:共识、隐私、合约VM

共识

Cardano, Algroud, difinity 等等, 这些项目都是以共识创新而闻名的项目, 然而,这些项目的共识创新现在都只停留在白皮书里。 Substrate 实现了他们白皮书里所期望的共识效果

优秀共识所期望的点: 像POW一样,大家都有同等的同时出块的公平权利,又没有他的能源浪费和性能问题。其实就是Substrate 的Aura + grandpa共识,也是VB所常说的casper

Casper + tendermint 的比较, 或者1年前的一些技术可以参考我老婆翻译的一些文章:https://lilymoana.github.io/ConsensusCompare.html

隐私

  • Bulletproofs 基于这协议的隐私币有许多
  • 零知识证明, parity 团队也正在用substrate 框架去实现zcash
  • 抗量子密码学,同态加密等理论加密算法的研究

合约VM

WASM 阵营: 基于wasm VM 的链越来越多, 根本原因是wasm生态特别丰富,wasm现在已经支持c/c++/rust等编译型语言,其他各种语言都是在支持的路途中

非wasm阵营,如solidity 等VM

03 Polkadot & ChainX

img

Polkadot 多链如何组织与管理

共识的一致管理:共识由relay chain 统一管理, 各个parachain的验证人由relay chain 随机随时分配。 举个最简单的例子, 比如polkadot 网络由三条链组成(relay, para1, para2),一共有7个验证人节点, 那么relay chain 管理共识的模块,可以采取2: 3 :3 的个数随机分配给 relay, para1, para2 三条链随机出块

消息的统一路由:消息路由这是polkadot 需要做的第二大部分, 这部分在白皮书里有介绍,但实现正在展开中,大致的思路可以对比参看路由器的路由协议。 只是这些不同链的路由,最后由relaychain统一管理

ChainX 多币如何组织与管理

跨链方式的选择:这又回到之前咱们说的问题, hash 和椭圆曲线谁更好的问题。 两个例子:

BTC:是用hash方式的共识,更优选择是链上轻节点。 EOS:是椭圆曲线式的共识, 更优选择分布式密钥多签。

币在ChainX上价值的互换:ChainX 会在Runtime合约层内嵌各种coin撮合的交易所,同时也会把这些API接口留给合约层, 这样任何开发合约的用户,可以自如的选择任何币种作为价值驱动来开发自己的合约。 比如, 可以用BTC来开发合约。

04 如何参与

img

在区块链世界即将爆发的前夕,我们如何参与进来。技术人员如何参与 - hack substrate,开发合约的过程可以带着这三个问题去学习:

  • 交易怎么调用进来
  • 相关业务逻辑如何处理
  • 处理结果如何存储在链上
  • 如何保证一致性

img