Renaissance Labs

Posted on Feb 10, 2022Read on Mirror.xyz

Layer2 | 链下计算

链下计算( Off Chain Computation )

以太坊声称要做计算机,EOS 要做全球操作系统,但无论是做计算机还是做操作系统都得正视计算这个问题,链上计算的开销是非常大的,链上每一个 EVM 的 Code 计算需要全球计算机都算一遍,才能得出结果,所以有人做了这么一个计算的扩展,在链外做 Computation。

这个方式大致有两种

TEE( Trusted Execution Environment )

第一种是在可信的执行的环境中,把这个计算算出来,然后传到链上去,再加上可信环境的一个证明。

这个证明不是计算结果的对和错,而是证明这个计算是在安全的环境里运行的。

可信的执行环境在工业界相对来说还是比较成熟,ARM 芯片是支持 TrustZone 方案的,我们用的苹果和安卓手机的指纹,它的秘钥信息都是存在 TrustZone 里面的。它的优缺点通过介绍其实也比较清楚了。

优点

  • 隐私性很强,因为所有东西都是在黑箱子里面的。

  • 性能也非常的高,单个机器执行即可,因为我信任的不是这台机器,而是这个 Trust Zone。

  • 功能非常的灵活,不像 Plasma 比较单一,它可以做各种各样的东西甚至是远超过 EVM 的东西,因为 EVM 里面做一些加密运算是很难的

缺点

  • 黑箱计算引入了未知的风险

  • 依赖于硬件限制了它的扩展性,因为不可能每个人都有一个符合硬件要求的设备来运行这套系统。

  • 系统的安全性是依赖于厂商的,厂商是可以在 Trustware 里面做任何的事情,这个也引入了风险.

所以这种依赖于安全执行环境的 Layer 2 方案一般是由联盟链或者是企业内部的链来使用的。

Truebit

第二种叫 Trurbit,它解决的也是链外运算的问题,这个项目很有趣。这里面有好几个角色,包括用户、Solver 和 Challenger。

第一个是计算需求的提出者(用户),这个计算需求是用 Truebit 的 VM 来描述的,在实际操作的时候,Truebit 的 VM 是用 Rust 实现的

用户可以选择悬赏的方式找人来帮他做运算,运算的执行人叫做 Solver。Solver 把每一步的运算状态都算成一个哈希折叠到默克尔树里面,在最后,Solver 把所有运算结果的默克尔树的根哈希,以及运算的最终结果提交到区块链上。

而 Challenger 需要自己算一遍生成结果,如果他发现算的结果和 Sovler 算的不一样,他就能根据错误信息找到哪一步或者是哪几步错了。Challenger 就能把这个状态和状态运行的指针上传到区块链上,挑战这个 Solver。

因为 Truebit 在链上拥有指令集,而且 State 可以证明它在原来的默克尔树里面,于是链可以计算这个 State 加指令得到一个新的 State,通过这个链可以开始判断,这个 State 是 Solver 生成的 State 还是 Challenger 生成的 State,谁对谁错。

Truebit 只需要链上的一步运算,就能够证明所有运算是正确的还是错误的,它能把普通运算折叠成了最关键的计算,交给主链去运算,验证。

 

延伸阅读:

Layer2 | 区块链发展新思潮 Layer2 | 状态通道 State Channel  Layer2 | Plasma 框架  Layer2 | 链下计算  Layer2 | 链间通信