作者:mobiledu2502911073 | 来源:互联网 | 2023-07-15 15:09
达成 W3F Grants 的第二个里程碑
Dante Network 是一个支持多链互操作的基础设施网络,打通不同架构体系,不同功能特点的链之间的协作通道,一直是 Dante Network 致力达成的目标。
在此之前,我们已经发布了包括 EVM,WASM 等在内的多个版本的 SDK,这次,我们完成并正式发布了 Substrate Ink!的版本 SDK。
Polkadot 的 Substrate 框架是一套非常成熟与便利的区块链开发工具,基于 Substrate 框架开发的区块链可以选择拍卖并接入 Polkadot 的平行插槽,也可以完全独立运行,实用性很强,适用范围也很广,市场上很多区块链都基于此开发,因此,Substrate Ink!技术栈一直都是我们支持的重点方向之一。
这次关于 Substrate Ink!技术栈的发布也是我们在 Web3 Foundation 的 Grant 的第二个里程碑,目前也已经通过了里程碑的验收。
接下来,我们将就本次里程碑的相关研究过程进行一个梳理和总结,包括核心算法以及开发过程中所沉淀的体验和经验,希望能够为关注或从事多链研究及开发的朋友提供一些帮助。
想直接了解全部细节可以通过该链接访问:
(https://github.com/dantenetwork/protocol-stack-for-ink)
核心算法 — 解决 Permission 和 Trustless 的问题
在深度研究和亲自尝试了多种跨链解决方案之后,我们发现大部分解决方案的方式都是见证人机制,无论是中继链还是 MPC 多签的方式,这是一种快速可用的方式,但是在 Permissionless 和 Trustless 方面还存在着不足 -- 一般而言,中继链或者 MPC 网络的节点都有准入许可,并且数量不多。
所以,从一开始,我们尝试解决问题就是:如何在没有任何假设的情况下,通过去信任的链下环境连接多链,而每条链都是一个不同的可信共识空间。
使用加密承诺验证并结合多层博弈模型来让所有的链下节点面临囚徒困境,对他们而言最好的策略就是做诚实的事。
我们坚持以完全开放和去中心化的方式来构建 Dante 协议,这建立在独立的异构共识空间可以被完全确保能进行安全交互的基础上。
毫无疑问,这个交互安全是完全可以被保证的。
研究及开发成果
从底层协议开始,我们完整地构建了整个 Dante Network 的互操作网络。 我们将之分为“三层架构”,包括了共识验证层,安全质量层和服务表述层,它们分别定义和实现了如何对多链间的数据进行路由和验证,如何针对不同的应用场景配置不同的交互策略,以及如何对数据进行封装和表达以适应用户的服务需求,更详细的信息可以通过该链接了解:(https://dantenetwork.medium.com/techtabloid-brief-introduction-of-dante-technical-stack-4ee9af40a079) 。
非常感谢 W3F ,作为跨链领域的专家和实战高手,给予了我们很多启发和支持。
迄今为止,我们已经完成了服务表述协议层的开发,这包括了 SQoS 层的基础安全以及共识验证层的信念验证算法。
基于以上完成的工作,我们现在可以实现部署在 Polkadot 平行链上的智能合约与部署在其他生态上的智能合约 / 资源进行远程调用。
对于“Ink!” 技术栈“服务表述层”的源代码可以在该链接中访问详情:
(https://github.com/dantenetwork/message-ink/tree/ink-2.0-alpha.3)。
我们提供一个“Message Payload”,可以让用户自行定义数据结构。通过这种方式,让数据能在“Ink!”和其他技术栈的智能合约之间被轻易地读取。也就是说,用户可以从需求的层面来更好地考虑定义自己的数据结构,而无需更多地考虑兼容“Ink!”、“solidity-EVM”、“Rust-Near”、“Cadence-Flow”等不同技术栈中底层编码和解码机制的差异。
SQoS 对于基础设施来说是非常必要的,因为它所服务的应用程序可能根据其应用场景对安全需求会有很大的不同。 对于 Ink!的 SQoS 基础项使用的源码可以通过该链接访问:
(https://github.com/dantenetwork/protocol-stack-for-ink/tree/feature-sqos) 。
例如,最简单的配置项“verification threshold”,它决定着需要验证并达成一致的消息副本数量,理论上越多越安全,但是可能会带来效率上的损耗;
而“authority context”项维护了跨不同共识空间的内容,它在当目标链上的被调用者需要确认源链上调用者的身份和权限时可能会非常有用;
此外,在远程调用过程中抛出错误时,“error rollback”项非常重要。 “hidden & reveal”和“optimistic”等项目有点复杂,详细信息可以在源代码中找到。
信念验证机制是由三个核心算法组成,它很基础但非常实用,可以通过该链接访问更多内容:
(https://github.com/dantenetwork/protocol-stack-for-ink/tree/main/contracts/algorithm#router-selection) 。
简单来说,信念验证机制是由权益证明(PoS)和可信度证明(PoC)组成,而可信度则是通过链下节点的历史工作表现来评估。
以上只是基本但很必要的点,它们构成了 Dante 协议的 MVP,我们也在此基础上推出了第一个测试网。详细的部署信息可以在测试网链接中找到:(https://github.com/dantenetwork/testnet)。
此外,开发人员可以通过我们提供的 SDKs 来免费试用 Dante 协议以此进行更便捷的全链 dApps 开发,访问链接如下:
(https://github.com/dantenetwork/On-Chain-SDK)。
为什么选择 Polkadot 生态系统
在跨链领域方面,Polkadot 有着绝对的技术优势和经验,其中继链的解决方案也和一般的中继链解决方案有着显著的不同,尽管还是见证人的方式,但是波卡的平行链和中继链 (Polkadot) 是共享验证者的,这让它们有着相同的共识空间和信任基础,而非多段不相关的共识空间的简单串联,成为 Polkadot 的验证者节点需要有足够的 staking,但是并没有其他复杂或者晦涩的准入门槛。
当然,这也让 Polkadot 的实现难度和对平行链的要求非常高,比如需要以 Substrate 框架进行开发,并且由于平行插槽的数量有限,必须要拍卖成功才能接入平行插槽。
实际上,Dante 的理念和 Polkadot 的非常相似,我们都致力于构建去中心化协作的未来,并且,很巧的是,Polkadot 和 Dante Network 的解决方案即是一种解决思路上的互补,也是一种覆盖面上的互补。
Dante 提供了一种异构共识空间的解决方案,正如开篇所提到的,兼容各种不同的架构体系和功能特点的链。
在 Polkadot,各个平行链之间通过 Substrate 和平行插槽连接在一起,而通过 Dante Network,它们可以再次没有平行插槽或者根本不是 Substrate 架构的更多的链进行交互。
基于 Substrate Ink!的开发体验!
在基于 Substrate Ink!搭建 Dante 协议的过程中,我们发现无论是工程开发方面,还是算法研究方面都非常有难度。
由于构建的出发点是 Permissionless 和 Trustless,并且还要具备实用性 — — 没错,我们并不想只是搞一顿理论研究,我们希望的是能够真正投入使用的东西 — — 这让整个项目的难度大为增加,因此需要一些非常系统的架构设计,非常专业的代码实现以及非常精巧的算法,我们需要考虑到多个不同技术栈之间许多技术实现的细节。这在实行起来很复杂,但同时又很有趣。幸运的是,困难成为了我们不断前行的动力。
目前,一个基于“Substrate Ink!”智能合约的项目仍然在开发中。我们现在可以基于该智能合约去开发其他所有的技术栈(如 solidity-EVM)。 特别的是,由于“Pallet”支持链级组件的原因,基于“Ink!”的智能合约可以和“Substrate Pallet”进行交互来实现一些更灵活的功能。实际上,我们团队正在基于 Dante 开发一个基于“Substrate pallet”特点的全链 DEX 协议,这个协议可能会对当前提供交换协议服务平台有一个极大的改进。
未来的工作
我们坚持以 Permissionless 和 Trustless 的方式来构建 Dante 协议,因此我们可能还有很长的路要走。
首先,我们正在构建一些 Dante Network 协议的高级功能,以期达到更高的、更有效的安全性。我们将基于密码算法和多层博弈模型的承诺验证机制来构建链下节点的囚徒困境,而这保证了虽然 Dante Network 的节点是 Permissionless 的,但对所有节点来说,确保做诚实的事情是他们最优的选择。
此外,一个基于 Dante 协议的全链 Token 协议正在开发。这个 Token 可以在没有任何担保的情况下在所有我们支持的链之间自由地流通和使用。基于这套协议,我们可以帮助 DOT 以及 Polkadot 生态上的任意一种 Token 成为这样一种全链 Token,打个比方来说,如果有人在 Polkadot 上转移一些 DOT,那么所有 Dante Network 连接的链上,都可以看到 DOT 所有权的变迁,反之,在其他链上,也可以发起 DOT 的转移指令 ( 只要指令的发起人是 DOT 所有者 ),与此同时,在 Polkadot 链上,这个转移将会被看到并确认。
另外,Dante Network 也正在考虑为 Substrate 构建一个 Pallet,将 Dante Network 的协议和功能模块化地封装进去,这样,平行链的开发者可以更方便地使用我们对应的互操作功能。
关于 Web3 基金会
通过访问官网了解更多有关 Web3 Foundation 的信息,也可以通过Medium 或者 Twitter 获得更多细节。
加入 Dante Network
Dante Website | Dante Twitter | Dante Telegram |
Dante GitHub | Dante Discord |
联系我们
Email: Nika@dantechain.com