黑科技,DFINITY 与以太坊的深度集成,如何实现合约的直接互操作?

DFINITY 的核心密码学技术 ChainKey 带来了许多全新的特性,DFINITY 能通过 ChainKey 签名的方式调用以太坊等其他公链。而在最近 DFINITY 的创始人 Dominic 发布的推特与文章中,详细介绍了从 DFINITY 到以太坊,再从以太坊到 DFINITY,无需中介的合约互操设计,这给我们展示了两者集成的巨大潜力。

总结如下:

  • ChainKey 技术让 DFINITY 的区块链具备大小为 48KB 的唯一公钥;
  • 基于 ECDSA 的改进,DFINITY 智能合约可以签名发出比特币与以太坊类型的交易;
  • 在以太坊的智能合约中保存 48KB 的唯一公钥能去验证链发来的消息,来保证交易与和状态的有效性;
  • 在 DFINITY 智能合约(4GB 运行内存)中实现以太坊的轻节点,检验区块获得调用返回值;
  • 无需中间件、跨链桥、Hub、预言机,DFINITY 与以太坊合约直接通过点到点方式互操作;
  • 可以使用 DFINITY 为以太坊 DeFi 等应用扩容,比如由 DFINITY 运行某个以太坊游戏的数据操作的指令,再通过以太坊直接结算;
  • 两者的无缝集成将打来巨大的商业潜力,DFINITY 能为以太坊无限扩容,并实现中间件、前端资源、业务逻辑等全栈的去中心化。

ChainKey 技术

ChainKey 是互联网计算机的核心技术,是实现上述合约互操作魔法的原理。

在以太坊中,由于使用 PoW 机制竞争出块,节点使用自己的私钥签名区块链并广播,当你去验证这个区块时,就需要获取节点的公钥。因为每次出块节点可能不同,因此你需要保存大量的签名信息,并同步区块。因此用户想去验证以太坊的交易,需要同步 400GB 的区块。普通用户只用通过运行在 AWS 上钱包中间件 Infura 的全节点来访问。

而在 DFINITY 中,基于可验证随机数 VRF + 门限签名 BLS + 非交互式分布式密钥分发 Noninteractive DKG,保证了区块链只具备唯一不可变的公钥,所有的区块的签名都能使用这个 48KB 的唯一公钥验证,来保证交互与区块的可信。

DFINITY 链具备唯一的公钥,但并不具备对应的唯一私钥,组成链的节点保存了私钥的碎片,他们使用这个碎片签名区块,只有在收集到足够多的私钥碎片后,才能聚合出完整的签名,从而能被唯一公钥验证。这也是 DFINITY 实现一致性共识的方式。

非交互式分布式密钥分发 Noninteractive DKG 向节点分配的了私钥碎片,因为其非交互式的特点,分配私钥碎片时基本对带宽占用很低,节点可以随意的加入与退出网络,这保障了整体的去中心化。

因此任何的设备,即使是另一条区块链上的智能合约,只要保存了这个公钥也能亲自去验证 DFINITY 链的消息、事件与状态。ChainKey 技术就是能实现合约互操作的基础。

使用 DFINITY 调用以太坊合约

ChainKey 能支持 ECDSA,这是比特币和以太坊都在使用的密码学原语,因此可以通过 ChainKey 代理 DFINITY 上的智能合约签名,不需要生成对应的密钥(使用 BLS 阀值签名技术)。在使用一条链唯一的 ChainKey 进行签名后,通过 P2P 发送一个满足比特币与以太坊格式的交易。最终调用以太坊的智能合约。

同时 DFINITY 的智能合约都是使用 actor 的异步消息处理模型,因此可以对以太坊的调用的返回设置等待。

(0) 在 DFINITY 上部署一个代理签名合约,运行着 ChainKey 的模拟签名代码。

(1) DFINITY 上的合约调用代理签名合约

(2) DFINITY 的合约需要调用以太坊,向签名合约发送合约地址、调用方法、参数。

(3) 使用链唯一的公钥签名产出以太坊格式交易,通过 P2P 手段在以太坊网络广播交易,等待交易确认。

(4) 获取以太坊的调用返回的方式有两种可选:早期可以在以太坊上专门部署一个查询合约,专门用于向 DFINITY 返回以太坊调用结果,但这个成本依然很高;后续可以直接在 DFINITY 的容器中建立一个同步以太坊状态的轻节点,直接验证并返回结果。

但在获取以太坊的调用返回时,还是存在问题,使用第一种方式在以太坊上部署查询合约的成本很高,因为每一次的返回都需要发送额外的合约调用;而在 DFINITY 上建立轻验证节点可能受到当前容器运行内存 4GB 上限的制约,以太坊的状态可能要在很多个容器中分开存储。因此我们可能需要开发者实现更有效率的创新方案。

直接的互操作性会带来什么?

DFINITY 底层密码学的创新的确来带了一些使用体验上的突破,用户无需中间件就可以享受端到端的区块链级别安全性。这同时也有机会帮助以太坊实现可直接互操作的扩容。

这种跨链合约间的互操作性被大范围使用后,chainlink、TheGraph、Infura 等中间件存在的意义会被逐渐替代,或者被直接部署在 DFINITY 上而获得无限扩宽与去中心化优势。在 DFINITY 上编写数据库容器替代中间件,是一个不错的方向,也是我们重点关注的领域之一。从这个角度看,DFINITY 像一个具备通用计算能力的中间件与前端服务,能结合两者的特点的商业尝试会更加亮眼,比如能快速验证以太坊上 NFT 视频、图片等资源,并通过运算能力扩展玩法的专用 NFT 平台。

同时 DFINITY 也可以帮助以太坊实现扩容,在链上快速地、低成本地维护与处理大量数据。并且这种扩容能力是一劳永逸的,因为作为一个异步消息处理机器,DFINITY 具备无限划分子网实现扩容的能力。在以太坊上 1GB 的智能合约需要花费上千万美元,而在 DFINITY 上每年只需要花费 5 美元。

因为可以实现合约级别的互操作,而 DFINITY 链本身具备高安全性,且不依赖与 AWS 等云服务,也不需要只运行在几个节点上的跨链桥、Layer2 状态链等,因此也避免了传统二层扩容方案的流动性、中心化与安全性问题。

在以太坊上的运行结算层,把 DFINITY 当作指令层使用,这种架构具备很多的可能性。同时基于 DFINITY 的身份系统与反向 gas 模型,极大的降低了使用门槛,用户甚至可以不需要为使用以太坊的合约支付 gas,我可以预见这样一种业务:在 DFINITY 上实现以太坊上 Compound、AAVE、DYDX 等聚合形态的第三方前端,然后免除用户使用的 gas,第三方前端的创建者可以通过推荐策略并收取一定比例收益,来支付以太坊的 gas ,同时赚到钱。

比如可以在 DFINITY 实现完整的中心化交易的逻辑,包括订单簿的撮合与做市,用 DFINITY 区块链不可篡改的记录价值与资产的流动,最终在以太坊上进行结算,这能保证去中心化的安全性、无准入与公共所有权,也能获得中心化传统交易所的体验。

同时如 AXIE Infinity 这类的游戏,也可以通过 DFINITY 的扩展能力升级玩法,目前的 AXIE Infinity 并不是可交互的,在小精灵对战之前胜负就已经决定,但是使用 DFINITY 集成指令层后,可以实现即使的策略对抗。

甚至可以在 DFINITY 上托管 ETH 的 FlashBot 套利机器人,而不用再去部署一个中心化服务器,并把自己的私钥托管在中心化服务器上。因为容器并不共享状态,你的策略可以设置为 “Private”,也可以通过分享策略获取收益(DFINITY 生态项目 ENSO)。

Subscribe to blockpunk
Receive the latest updates directly to your inbox.
Verification
This entry has been permanently stored onchain and signed by its creator.