万向区块链蜂巢研习社第60期邀请了 Parity 亚洲负责人 Yaoqi、PureStake 创始人兼 CEO Derek Yoo、Patract 创始人岳利鹏及 Clover 首席架构师 Yiqun Wang 围绕智能合约话题进行了深度讨论和分享。
Yaoqi:各位万向区块链B站直播间的朋友,大家晚上好!
这里是由万向区块链实验室和新链空间举办的蜂巢研习社线上公开课,本期是第六十期。本期的主题是《Web3.0 Bootcamp 二期智能合约专场》。波卡很快要上线了,整个 Web3.0 或者波卡生态里面最重要的就是智能合约的平行链平台。今天非常荣幸邀请到了 Moonbeam 创始人兼 CEO Derek Yoo,还有 Patract 创始人岳利鹏,以及 Clover 首席架构师 Yiqun Wang。我是今天的主持人 Parity 亚洲负责人 Yaoqi,非常高兴能够邀请到在座的三位。
目前波卡智能合约平台有一些最新的进展,首先请三位分别介绍下自己的项目,同时使用了什么样的区块链技术?解决了什么样场景需求?
Derek Yoo:大家好!我先给大家介绍一下 Moonbeam。Moonbeam 是计划部署在波卡上的一条平行链,除此之外,我们也是 Kusama 上的一条平行链,但是在 Kusama 上我们链的名字叫做 Moonriver。Moonriver 它属于智能合约的平行链,主要是支持以太坊的技术堆栈在波卡上的实现,也就说我们是支持以太坊上各种的主流开发工具,比如说 Solidity、EVM 以及一系列的工具。但是,我们是在 Substrate 和 Rust 上实现的,换言之,Moonbeam 所做的就是将以太坊的技术堆栈能在 Substrate 上原样实现,在这方面我们和 Parity 有密切的合作。已经有很多的项目、很多团队已经或者有计划在我们生态上面搭建各种各样具体的应用场景,比如说 DeFi 里的 NFT、游戏,尤其是 DeFi 领域。岳利鹏:以太坊大概是2014年、2015年上线,它的核心是基于 EVM 虚拟机,然后发展了 Solidity 语言,最近四、五年其实一直都是以太坊在主导智能合约生态。实际上智能合约就是一个概念,它的技术、形态是可以有很多变化的,比如 EOS 有一类合约,可能其他的链也有一类合约。Polkadot 新写了一个智能合约,我们可以简单把它叫做“Wasm 合约”,或者叫“ink! 合约”,它是一种合约模型,这个合约模型和以太坊类似,只不过它的运行环境、虚拟机改成了一个更高级的 Web3.0 底层虚拟机,在此之上我们可以使用 Rust 语言去写智能合约,这个框架叫 ink!。在语言层我们还可以使用 C++、只需要开发一个兼容的语言框架,我们就可以支持用 Wasm 高级语言去编写合约。Gavin Wood 在以太坊的时候主导了以太坊核心技术,之后社区的发展都是由整个社区用四、五年的时间去编写的很多的开发工具以及服务,类似 Infura、Truffle 等,有了这套完备的工具,社区才可以快速地开发出安全的智能合约,并且形成一个强大的生态。我们仿照以太坊的整个生态发展的历史,作为一个类似于以太坊这样的社区角色, Patract 在 Polkadot 的角色就是扶持 Parity 新写的合约技术,开发了一系列类似以太坊的合约工具和产品服务,目前整体开发进度大概是三分之一不到,做了大概八个多月的时间。这套新的合约技术的差异性在于虚拟机的不同,执行速度会更高,因为原生级的虚拟机可以使用高级语言,会比 Solidity 语言的表达能力高很多。Substrate 框架支持在合约模型层面进行创新,不仅可以基于以太坊的账户模型或者 KV 模型,还可以基于自己 Substrate 链的架构、Runtime 功能进行合约模型的定制,包括经济模型、权限系统、治理系统,比在以太坊里面去写一个合约的灵活性会高很多。所以 Polkadot 的生态会诞生很多合约平台,我们也会发现有各种各样 EVM 兼容的技术,有 Wasm 合约,也可能会有 Libra 合约,它们都可以在 Polkadot 的生态内进行兼容,这也是我们团队主要在做的一些工作和事务。我们目前在联合生态内的各个项目方(平行链),帮助他们集成这套 Wasm 合约技术,提供给他们这类基础设施级的服务,而不会直接去运行一条链。Yiqun Wang:首先 Clover 的定位是做波卡上的智能合约平台,是想为用户提供跨链和 DeFi 的一站式的解决方案。Clover 首先是有 Clover 链,Clover 链本身是有智能合约功能,同时也支持 EVM 和 Wasm,既能让现有的以太坊上的 Solidity 应用无缝迁移到 Clover 上去,同时也允许 Wasm 运行在 Clover 上。在 Clover 的 EVM 上面我们做了一系列的定制化,首先 Clover 上 EVM 是支持开发者激励,我们会把 EVM 运行的一部分手续费通过链上治理的方式按比例分配给智能合约的所有者,以此来激励 Clover 的生态建设。另外,Clover 链本身是有一个跨链模块,才能够灵活的配置,支持各种 EVM 的链。然后通过线下验证、凭证上链、多重签名等机制,在保证足够去中心化的情况下还能有非常高效的跨链体验。其他的就是 Clover EVM 上的治理功能,目前我们正在开发的有可升级的智能合约,还有恶意智能合约的封禁功能,通过链上治理实现的。我们知道在以太坊生态下,我们平时通过常见的 delegatecall,或者是衍生出来的各种 proxy 技术来实现可升级的智能合约。但是传统的做法实现难度比较高,容易出错,Clover 链内置的智能合约升级功能就可以大大简化这部分开发。同时,将来我们还会推出一套可升级的智能合约库模板,用户只要简单扩展就能够享受 Clover 链,通过治理来无缝升级智能合约的功能,既能保证升级前的数据不变,同时也避免了传统升级要中心化,这就是目前 Clover 链做的一些事情。
Yaoqi:第二个问题其实也是跟现在整个市场相关的,就大家知道目前其实不止在波卡生态,在整个区块链行业有很多不同的赛道,例如 DeFi、存储、隐私,当然也有智能合约。你们在选择方向的时候,为什么是选择了智能合约平台这样的一个赛道?
Yiqun Wang:之所以选择智能合约,因为首先我们知道以太坊作为最大的智能合约平台,它有一些问题,比如说像网络容易拥堵、手续费高、交易速度慢等问题。同时,在去年我们开始做 Clover 的时候,那个时候波卡也是进行的如火如荼,然后波卡中继链本身是不具有合约功能的,所以也是非常需要一个智能合约的平行链来补齐这一块,这就是 Clover 当时做这个项目的初衷。另外一个基于的考量是目前区块链很多,会导致不同区块链之间的通信和价值互联问题日益明显,导致用户的资产分散在不同的地方,难以聚合,交易历史也是难以聚合,所以 Clover 想打造一站式的这样一个解决方法来解决以上痛点。岳利鹏:大家知道 Polkadot 是有100条平行链,每个平行链其实不是为了去部署一个特定的应用,而是利用平行链的优势去发展成各种各样的平台,再去接纳开发者在每一条链上部署应用,这种平台的类型大概包括存储类、隐私类,然后是合约类。合约其实是一个资源分割的概念,如果拿平行链自己去做一个应用,你相当于独占了平行链的应用,但合约相当于是用 gas 或者用其它的资源分配的机制,把整个链的资源按定价实时的去拍卖给合约开发者,合约开发者不需要再去拍槽,他同时也可以简单的享受到共享安全的这种优势和开发的便捷性。我们是觉得合约这个概念对整个波卡生态是非常有意义的,所以不管是大家用 EVM 去写合约,或者用 Wasm 写合约,还是其他的,再去创建一个新的合约模型,或者是再去依托提供特殊的 ZK 相关的服务、存储相关的服务,能让开发者更低的成本去接入 Polkadot 生态,是比较有意义的事情。虽然 Polkadot 是100条平行链,但它真的是链,而不是说去用链去写一个大的应用,所以就更能发挥整个波卡多样性的优势。因此 Polkadot 把自己定位成 Layer0,而不是去跟各个 Layer1 特定的单一平台进行正面的竞争。Derek Yoo:现在 Moonbeam 所做的主要是支持以太坊技术堆栈,还有完全兼容 EVM 的链。我们看到比较有意思一点是,很多人觉得以太坊的网络效应很强,但我们看到的还是以太坊技术堆栈这方面。这也是为什么我们现在看到,比如说 DSP 是和以太坊类似的一个链,但上面又有很多繁冗的应用,同样的情况我们看到 Polkadot 也是如此。做一条以太坊兼容的智能合约平台,对我们来说是当前需要落实的事。正如刚才主持人所说,事情有很多不同的方向,而这也正是我们受到波卡吸引的一个很重要的原因。波卡提供了开发各种各样不同领域的链的机会,而就智能合约平台来说,我觉得未来方向更多的是整合,而不是单独的智能合约平台,它可以去整合各种各样不同的链,还包括什么计算层以及其他的。实际上我们也和很多的团队交流过你刚刚所提到的这个问题,也问过他们的计划是什么,大多数的团队也是基于以太坊的。扩容性问题是不是当前所面临的唯一挑战?如果说你认为扩容性是我们面临的唯一一个挑战的话,那确实二层解决方案就已经够了。我们发现其实大多数人可能就是这样想的,觉得我们只面临这一个问题,只需要二层解决方案,但就 Moonbeam 来说,我们并不是这么看的,现在看到日益多的多链环境,而多链环境支持各种各样不同的去中心化项目、应用场景和各类资产。当然,现在我们看到很多的项目会迁移到别的链上,在一定程度上也是解决扩容性问题,因为别的链可能会提供更大的区块空间,但我们并不认为这是“治标又能治本”的解决方案。我们和其他团队交流过程中就曾提问,除了解决扩容性问题之外,是否还要找到一个平台可以帮助你们去触达到更多的用户,可以帮助你们去开发更多的应用场景?大多数团队的答案是“是的”。尤其对于 DeFi 的项目来说,DeFi 的关键就是要触达更多的用户,同时也要纳入更多的资产,所以在这方面以太坊是没有办法解决这些诉求的,这也是为什么我们认为波卡是具有优势的。首先波卡支持各种各样多类不同的资产,用户的多样化是非常优秀的,另外波卡还有一个原生的互操作性,这些都是波卡相对以太坊的优势所在。
Yaoqi:众所周知,有多种以太坊二层解决方案问世,像 Arbitrum、Optimism、ZK-sync。你们认为这些解决方案有没有解决目前以太坊的扩容问题?
岳利鹏:所谓的 Layer2 实际上只能把它看成一个扩容方案,因为它也有损失。比如以往的 Layer2 的安全性可能是由自己的内部设计,中心化抵押来保证的。现在高级的 Layer2 是基于 ZK 的,它的安全性是主链的运行来保证,这是一个进步。但实际上它还有一个缺陷,就是可交互性比较低,只能在自己合约内调用一下那个东西,不能说我 Layer2 的应用去调用另外一个 Layer2 的应用,实时性保证不了,没有办法在一个块内进行完成这种事情。所以 Layer2 实际上是一种技术元素,它是个通用的技术,可以直接在以太坊网,也可以直接在其他的链上,只不过目前以太坊有特定的需求,因为交易笔数比较多,生态比较大,所以急需这个技术。同时,这套技术也可以转移到 Moonbeam、Clover、Substrate 上,优势就在于它是 Layer1,整个的结果是 Layer1×Layer2。如果这个 Layer1 比以太坊的 Layer1 好很多的话,乘数的结果也会比以太坊的好很多,因为乘数是一样的,所以技术元素都是都是偏移的。这样来讲的话,现在是说你用 Substrate 写了这么多 Layer1 的区块链,是不是有可能会比以太坊现在固有的已经5年毫无迭代的的 Layer1 好很多?以太坊做这么多 ZK 的 Rollup,实际上是因为2017年写了 ZK 三个预编译合约,三年来也就没变过。然而我们会发现 Polkadot 生态有很多ZK相关的创新项目,他们集成的是最新的算法,这个在 Layer2 的应用就会远比以太坊的可能性、先进性高很多,只不过现在生态还没有发展起来,但是从技术底层来讲波卡是比以太坊好很多。Polkadot 不能看表面,看真正的创新空间,我们可以对 Polkadot 保持更多的期待。Yiqun Wang:我认为首先肯定是一定程度上解决了以太坊可扩展问题,也比较支持以 Rollup 为主的二次扩容方案。将来也是有一定价值的,因为毕竟以太坊2.0如果将来成功上线了,也是以太坊内部的一个扩容,但是 Layer2 这种外部的公链扩容我觉得将来可能也会是相对重要的。二层网络我自认为它还是有一些不足之处的,比如它就缺乏互操作性和可组合性。目前来讲,不同的DeFi可能会分布在不同的 Layer 2,这种碎片化降低了 DeFi 的可组合性和高盈利能力。所以我认为 Layer 2 的这些网络之间其实是需要一个通用的互操作协议的,需要支持 DeFi 生态的原地扩容,也就是说在保证 DeFi 协议流动性不被分散的同时,还能保证其组合性,这个是非常重要的,对 DeFi 生态的繁荣是非常重要的。说到跨链互操作性就不得不说平行链的优势,波卡上面每个平行链都可以专注自己的领域,能做到更快、更高效的跨链通信。我觉得二层网络解决不了的一些上述问题,可能在波卡上面会得到完美解决。这就是我的一些观点。岳利鹏:用Solidity 写合约我觉得主要有四个问题:第一,Solidity 语言表达能力比较弱,它支持的比如说操作符、数据类型比较低。第三,基于以太坊的 KV 序列化的存储,对程序数据结构的设计能力也比较差,没有办法做基于关系型数据库的,或者说不具备基于合约之间的大规模数据的调用能力,只能用 map 或者数组形式。第四,Solidity 语言没有对资产进行特化,所以就会出现很多问题。但是 Parity 的 ink! 直接解决了其中两个问题,一个是用 Wasm 虚拟机速度会快很多,另外它可以用 Rust 等高级语言去写,一定程度上能缓解语言表达能力的缺失。但还有其他两个问题,目前还没有特别好的解决方案,比如说对于资产进行策划,增强合约安全性,还有很多其他的项目都在做这方面的尝试。还有关于 KV 相关的存储的限制,目前也没有解决方案,因为全链都是基于存储的,可能你要自己做特化才可以解决掉这个问题。还有一个问题就是说区块链合约模型的并发问题,现阶段基于 ink! 已经可以做一个比较好的合约的跨代际的优化,后期的路径是都可以基于 Substrate 框架继续尝试。Derek Yoo:我现在先回答一下刚刚问题里面的第二部分。
Moonbeam 自身的生态系统得到了极大的发展,采纳方面也得到了极大的提升。而且我在之前的介绍中也提到了,我们上面有很多的 DeFi、游戏项目。DeFi 项目确实在跨链方面是非常的超前,如果我们现在看一下整个 DeFi 生态系统,其实这个生态系统现在已经变成了一个玩家很多,基本上各个赛道都已经被占据了,比如说在 Dapp、稳定币等等各类的应用。你可能要问为什么这些项目想要跨到波卡链上?我刚刚也提到了,希望带着它们的用户、资产可以实现在任何链上的迁移,而这一点也正是波卡所能提供的。我现在就回答第一部分的问题,其实这个它可能不是说 Moonbeam 能够提供的,更多是波卡所能提供的最有意思的一点就是“分片”概念。以太坊2.0之前是有计划提供分片功能,另外也提出说要支持完全独立的各个不同的分片,但现在这个计划已经发生了变化。波卡可以说是分片方面一个最好的表达,它可以解决可扩展性问题,实际上为开发者提供了一张空白的画布,供他们在上面自由的挥洒。对开发者来说,他们能够在波卡上实现在以太坊甚至以太坊2.0都没有办法实现的功能,波卡对开发者有很重要的价值所在。
Yaoqi:智能合约平台目前大部分是用来为 DeFi 应用提供空间,未来除了 DeFi 的应用,在 Web3.0 里还有没有一些更加新颖的应用?
Derek Yoo:我对 Web3.0 的愿景。波卡在这方面也是存在着真正的优势,它有独一无二之处,在于提供 Web3.0 的基础设施层方面。在这里我想给大家先举个例子,很多开发者在用 AWS 亚马逊云服务,亚马逊云服务用的非常方便而且非常强大,它可以提供包括计算、存储、身份等各种各样不同的服务,可以轻而易举的通过这些基础的服务将它们整合起来,形成一个具有可扩展性的应用,但这是 Web2.0 上的应用。对于 Web3.0 来说,也需要类似强大的基础设施,可以在去中心化的环境里面将其隔起来,而这也是波卡的优势所在,它提供了这样的机会。之所以波卡能够做到,首先就是因为波卡有 Substrate 支持的平行链功能,每个平行链上就可以去搭建一些专门的服务,基于波卡就可以去做原生的、多链的应用。也就是说在 Web3.0 的环境、在去中心化的基础之上去做,而这正是我对下一代 Web3.0 应用的愿景或者说畅想。波卡有独特的优势,一方面有 Substrate,Substrate 可以提供支持专门的服务。另一方面波卡可以作为网络平台,将所有各类的应用去整合起来,从而形成一个原生的多链应用平台。岳利鹏:其实 Web3.0 的定义是 Gavin Wood 在2014年文章中提的,他提到 Web3.0 有三个组件:隐私、存储、账本。隐私是说点对点之间的数据,完全不需要对任何人进行公开,希望借助类似于区块链这样去中心化的基础设施进行传递。
存储是一类公开类的数据,或者个人的数据、个人加密的数据。现在区块链其实仅仅解决了账本的这个功能,以及依托于账本之间的计算功能。前两个需求都可以在 Polkadot 里基于 Substrate 框架去实现。就比如存储有 Crust,通信我具体还没有看到,但这也是可以去实现的。基于 Substrate 的这种高度抽象化的区块链框架,区块链开发者才可以快速地构建各种各样的平台,组成一个全栈的 Web3.0 的交互系统。因为刚才也说了类似于 AWS,不仅仅给你提供一个简单的服务器,它给你提供的是全套的服务,对于 Web3.0 来讲也需要一个全套的服务。但是你在以太坊上或者在其他区块链上,它提供的仅仅是一套单一的技术,你只能在上面做非常有限的事情。没办法打破它那框架,但 Substrate 对区块链框架的枷锁打破的足够彻底了,它对你的限制基本上已经降到最低了。如果真的要实现 Web3.0 的话,可能真的还是依托于 Polkadot 整个生态。Yiqun Wang:首先是 Clover 合约链本身,智能合约功能不仅仅是为了DeFi服务的,当然对其他类型的各种 Dapp 都可以支持。目前来讲,Clover EVM 的合约手续费更低、速度更快,TPS 比以太坊高1-2个数量级,从这个角度来看,它将来能满足更为复杂、更海量的 Dapp 的应用场景。因为我们也是专注做 DeFi 的,其实是这种思想是一直保持在我们整个系统的设计和实现的。比如说刚开始的时候我们比较纠结 Clover 智能合约链如果一直做起来,首先比较纠结的就是资产从什么地方来?要把资产、生态引入到波卡,其次要引入到 Clover 上去。这个问题其实现在我觉得可以通过平行链机制来部分的实现需求,就是我们现在在上 Kusama 的一个姊妹链叫 Sakura,在 Kusama 平台上做尝试,把 Clover 刚才提到的智能合约的功能、特性全部放在上面,通过和其他的平行链进行互操作,以及 DeFi 在波卡不同平行链之间的交互,逐渐地把生态建立起来,这是我们长远的一个打算。
Yaoqi:我们最后一个问题,其实也是想让今天的嘉宾分享一下大家平台发布的时间线。大致什么时候作为开发者可以在 Clover 平台上进行开发?
Yiqun Wang:目前来讲,Clover 上面的一些智能合约相关的功能基本成的70%左右,像这种经济激励、合约定制化,当我们接入到 Kusama 平行链之后,大家就可以在上面部署各种 Dapp 应用了。
Yaoqi:据我所知 Patract 这边也是有十几条产品线,目前进度如何?接下来有没有具体的可以让开发者尝试新产品的时间线?
岳利鹏:我们的一些产品跟进度实际上要跟 Parity 的进度绑定起来,因为 Parity 是做比较核心的这一层,我们的产品线有些是跟合约比较紧密的,也有关系比较远的。紧密的话是 Redspot 脚手架跟合约沙盒 Europa 沙盒形成很成熟的一个状态。再往下一层是刚刚在社区推广的征求意见稿 Metis 合约标准库,类似于以太坊 OpenZeppelin 的库,现在仅仅是对 ink! 进行一定程度上的标准库开发,后期会对 Ask! 进行开发。然后 Ask! 是基于 AssemblyScript 编写合约的一套框架,仿照 ink! 语言,但这个项目太大,所以说这个周期会比较长,目前仅仅进展到一半。就目前你可以用一些基本 ink! 里的合约用 AssemblyScript 来写,那后期还有比较大的工作量。Elara 在以太坊已经上线,请求量如果再大到几个数量级的时候就会进行下一阶段的优化。ZK Mega 是对合约 ZK 的支持,目前已经有最新的4条密码曲线。我们最近在做的就是 PatraScan 浏览器,浏览器内部已经在进行开发了,只不过要先解析 Runtime 后才可以解析到合约模块层面,所以说对合约模块这个解析还需要一点时间。Carpo 云 IDE 目前刚刚启动研发,PatraStore 商店内部还是那几个 Dapps,并没有做特别多的迭代,这个大概是我们这边产品的进度吧。
Yaoqi:Moonbeam/Moonriver 这边目前的进展和时间线是如何的?
Derek Yoo:正如您刚刚所说的,确实我们现在已经做好了准备去上线Moonriver,而且上线的这个版本其实已经是功能齐备,预计最开始是在Kusama上进行部署,这也是我们长期以来的大量努力,最终取得一定实际性的落地进展。从去年9月开始就一直基于平行链做测试网的运行,所以我们现在觉得已经完全准备好了。如果说大家想要了解更多有关于我们时间表和进度的细节,可以去我们的网站上查看更多的信息。Yaoqi:今天时间过得很快,我们今天活动就到这里结束了。很荣幸担任本场的主持人,也感谢 Derek Yoo、利鹏和 Yiqun 抽出宝贵的时间参与本次的“智能合约专场”的探讨。目前看来,波卡的整个智能合约平台有越来越多的团队进行开发,同时也欢迎大家在未来不管是 Moonbeam、Moonriver 还是 Patract 以及 Clover,上线的时候也欢迎大家不管是作为开发者还是用户去使用。谢谢大家今天的观看 。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/wJ8TnTfjcq)2.对于将要集成 Wasm 合约功能的平行链项目方,或者使用 Wasm 合约开发的 DApp 项目方,欢迎加入 Patract 开放平台:https://open.patract.ioTelegram(https://t.me/patract)Twitter(https://twitter.com/PatractLabs)4.对于求职者,我们在招聘区块链开发工程师、前端/全栈开发工程师、产品经理等岗位,可以联系 sean@patract.io