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

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.
More from blockpunk

Skeleton

Skeleton

Skeleton