访谈|探索 Wasm 合约的无限可能
Wasm,即 WebAssembly,是一种用来补充 JS 在运行上不足的“低级”语言——基于二进制编写。其目标之一正是达到在网页上如同运行机器语言一样快速高效。其开发团队分别来自 Mozilla、Google、Microsoft、Apple,代表着四大网络浏览器 Firefox、Chrome、Microsoft Edge、Safari。
Wasm 虽然一开始是为浏览器设计的虚拟机,但它的主机独立性、安全沙箱和整体简洁性等特性使其成为智能合约的理想运行时。此外,它还允许使用多种现代编程语言(Rust、C++、JavaScript 等)开发合约。以太坊团队一直在试用一个基于 WebAssembly 的合约引擎 eWasm,并计划在 2021 年的某个时候正式发布它。以太坊不是唯一一家正在调研 WebAssembly 技术的区块链企业。还有很多人都在押注这项技术,包括 Polkadot、NEAR、Tron、EOS、Dfinity 等等——它似乎已成为构建新一代区块链网络的事实标准。那么 Wasm 合约可以应用在哪些场景呢?
今年 ParityAsia 组织的 Substrate 开发者黑客马拉松创业大赛 Polkadot Hackathon,吸引了一群 Substrate 技术爱好者聚集。从大赛初期开始 Patract 一直关注 Hackathon 的实时动态,并对 Wasm 合约的参赛项目设立了额外奖励。近日我们报道过 Hackathon 中的 5 个基于 Wasm 合约开发的参赛项目,感兴趣的阅览这篇文章。
就在昨天,有 21 支队伍晋级决赛 Demoday,其中 4 个 Wasm 合约的参赛项目也被入选,他们分别是:inkBridge、SubLend、SkyePass、Ares。
inkBridge 使用 Wasm 合约技术构建转接桥。可以部署到所有支持 Wasm 合约的平行链,把多条公链(BTC, ETH 等)的转接桥下沉为平台,而不是单一应用。社区项目方可以调用合约形态存在的已有功能,还可以使用合约改造已有功能。我们仅提供转接桥的基础功能,支持自定义格式的跨链交易验证,交由上层应用自由发挥产品。
SubLend 是基于 Substrate ink! 实现的借贷合约模块,可以部署到所有支持 Wasm 合约的平行链。通过提供一种信用委托式的贷款,区别于超额抵押借贷模式,类似于白条和亲密付的结合体,提高储备资金的利用率。同时提供固定利率贷款,满足一些传统金融机构对可预测财务支出的需求。可有效解决 DeFi 借贷协议中储备金流动性的问题和财务支出不可预测的问题。
SkyePass 是一个基于 IPFS 和 Substrate Wasm 智能合约的去中心化密码和身份管理方案(IAM)。表层上旨在构建一个开源,去中心化和可拓展的 1Password/Lastpass 替代品。深层上希望可以实现链下公共身份和私有身份的提供方案。SkyePass 的参赛类别分别是智能合约、NFT 和社交网络。
Ares 是基于 Substrate 框架开发,支持混合 Babe 和链下工作机的随机安全预言机解决方案,融合波卡最新的链上治理,将前沿的 Optimistic Rollup 挑战模型带入预言机领域,支持 ink!合约,给 DeFi 生态带来更优质的预言机体验。
为了了解他们选择 Wasm 合约的原因以及如何看待 Wasm 合约这门技术,我们找到了负责 inkBridge 产品定义与前后端业务逻辑的设计的秋水、 在 Sublend 负责写 Token 相关函数的小李、SkyePass 专注于研究 Wasm 技术的周松、在 Ares 负责 Pallet 预言机功能的开发和与 ink 合约交互的寄意兰舟 4 位开发者,进行了一次访谈。
你们当初为什么选择 Wasm 合约开发项目?
秋水-inkBridge :有 4 个原因。
其一,Wasm 合约编写非常简单,容易上手。相对于平行链的开发难度更低,不用掌握整个 Substrate 和 XCMP 通信协议等底层框架,只需要会 ink 框架即可。可以说开发效率更高,成本更低。我们的开发同学只花了几天时间学习就可以进行开发了。
其二,看好波卡生态,对跨链的未来充满愿景。而当前波卡生态比较完善的就是 Wasm 合约,同时也有 Patract 的开发套件帮助我们来节省开发时间。
其三,项目部署成本更低。相对于需要插槽的平行链来说只需要支付一笔部署费用,成本低,适合我们小团队的启动。
其四,Wasm 合约具有通用性,使用 Wasm 合约技术构建可以部署到所有支持 Wasm 合约的平行链。相对来说可以接入的生态就更广了。
小李-SubLend:不需要自己部署平行链;尝试用 ink 实现一些想法。
周松-SkyePass :一部分认为 Substrate 的 Pallet 那部分的代码逻辑会有通用的地方,毕竟没有 OpenZeppelin 那样的库。
另一部分是认为作为 Substrate 原生的模块各种兼容性的坑会比较少,比如合约里调用链的信息。而且很多 Solidity 的坑,基本被 Rust 在编译的时候就躲掉了。
你们使用 Patract 的开发工具时有什么建议或感受么?
秋水-inkBridge :Patract 的合约工具非常完善,也非常好用,大大提高了开发效率。尤其是 Europa + Redspot 的组合,可以是开发者非常方便的调试和部署合约,Europa 提供了 Wasm 虚拟机堆栈打印和日志打印功能,开发者可以根据打印的信息判断合约开发中出现的问题,Redspot 提供了脚本化的合约编译调试和部署,提高了开发效率。希望继续完善,提供更多更强大的工具。
小李-SubLend:Redspot 脚手架提供了类似用 Truffle 开发 Solidity 合约的体验,方便快速的测试和调试合约;可以直接部署合约到 Jupiter 测试网,方便团队进行测试。我们的合约最后部署在 Jupiter 测试链上,开发的 DApp 已经上了 Patract 的 PatraStore。
周松-SkyePass :我们主要使用了 Redspot,感觉带我们跳过了很多坑,对入门的开发者来说非常友好。总体感受是文档不够多,建议之后做好 GitHub 的 Readme ,多加一些真实项目的案例。我感觉很多开发过程中的难点,文档 Stackoverflow 有些少,主要靠别人项目代码去领悟。
你们为什么选择集成 Wasm 合约模块设计呢?
寄意兰舟-Ares:从去年 DeFi 的发展过程我们发现在 Compound、YFI、Uniswap 火热的同时预言机板块 Chainlink、Nest、Band 也在轮动,预言机只有解决 DeFi 的真实需求,和 DeFi 深度绑定才能获得更好的发展。目前 DeFi 的实现方式都是通过链上合约来完成的,Ares 通过引入 Wasm 合约模块,建立一个去中心化服务 DeFi 的预言机平台,让开发者不需要了解过多的区块链底层知识即可在 Ares 网络中快速的获取丰富链下数据,快速的构建一个 DeFi 应用,给 DeFi 生态带来更原生优质的预言机体验。
你如何看待 Wasm 合约这门技术的呢?
秋水-inkBridge :Wasm 虚拟机是目前区块链最受欢迎的合约执行引擎,Wasm 合约拥有比 EVM 合约更强大的表达能力和性能。支持基于 Rust 的 ink!,或基于 AssemblyScript 的 Ask!等可以编译至 Wasm 的上层语言,可以吸引更多的开发者,同时也能开发出更复杂的业务逻辑。
小李-SubLend :我觉得这是智能合约的一个机会,之前要学习专门的语言,现在只要能编译成 Wasm 的语言都可以写合约,会吸引不同语言背景的开发者(Rust,JS,C++等)加入到合约开发过程中,开发人群增大了。
周松-SkyePass :Wasm 是我最开始从 EOS 知道的。印象上来说相较于 Solidity,Wasm 更严谨 、更可移植的。Solidity 给我的印象是比较 Hacky 的一套东西,个人感觉 Wasm 更正统一点。这次 Substrate 黑客松上大家都开发平行链,感觉是让更多开发者熟悉 Rust 环境的好机会。我是喜欢 Wasm 这个技术本身的,然而大多数行业资源都放着投机去了,为此感到心疼。
寄意兰舟-Ares:Wasm 作为最新的虚拟机运行环境,是区块链发展的一个前沿方向。在以太坊 EVM 上 做过合约开发的小伙伴,可以看到 EVM 难以调试,无法承载复杂的应用。而 Wasm 支持更多的开发语言,让开发者无需学习一门新语言即可快速的上手合约开发,Wasm 接口设计的通用性带来了链上升级,让区块链不再受硬分叉的困扰,通过链上治理即可快速的升级区块链节点。还有一个区别是,在以太坊里面写的一些预编译合约只能以硬编码的形式存在,在波卡上可以开发出 Pallet 这种可编译为 Wasm 的新的区块链结构,让开发者享受更多的便利。
后记
通过这次的访谈我们发现,Wasm 合约技术已经逐渐在区块链技术开发者当中尝试并看好。最后,让我们一同拭目以待,未来的 Wasm 能够引领新一轮的区块链技术变革。
而同样专注于波卡 Wasm 合约开发的开放平台 Patract,也将启动 Wasm 合约系统平行链完善全套开发技术,帮助社区平行链设计和开发链上合约模块和 Runtime 支持,并且为 DApp 开发者提供覆盖开发、测试、调试、部署、监控、数据提供和前端开发等阶段的全栈工具和服务支持,加速智能合约行业向 Wasm 技术栈的转变。
About Patract
Patract 为波卡 Wasm 合约生态的平行链和 DApp 开发提供解决方案。我们帮助社区平行链设计和开发链上合约模块和 Runtime 支持,并且为 DApp 开发者提供覆盖开发、测试、调试、部署、监控、数据提供和前端开发等阶段的全栈工具和服务支持。
How to join Patract
1.对于合约开发者,可以访问官网 (https://patract.io),熟悉测试链和工具套件。欢迎加入官方开发群 :
Element(https://app.element.io/#/room/#PatractLabsDev:matrix.org)
Discord(https://discord.gg/Y5dF2N57mN)
搜索“Patract 开放平台”关注 Patract 微信公众号
2.对于用户,欢迎加入:Telegram(https://t.me/patract)Twitter(https://twitter.com/PatractLabs)
3.对于求职者,我们在招聘 Substrate 链开发、Wasm 开发、合约开发和审计、前端开发、项目管理、产品经理、运营经理等岗位,可以联系 sean@patract.network。
评论