加入PolkaWorld社区,共建Web3.0!
Statemint/Statemine是波卡/Kusama生态的公共利益平行链,用于创建和管理资产,包括同质化资产和NFT。
8月5日更新的「RelayChain」播客中,主持人ParitySupport工程师JorrinBruns,和Web3基金会技术集成负责人和Statemint项目的贡献者JoePetrowski一起,带着大家深入解析了Statemint。
PolkaWorld将这期播客的部分精华内容整理成了文字版,本文主要内容有:
什么是Statemint/Statemine?
把交易从中继链上拿下来
Statemine作为第一条公共利益平行链
在多条链之间传送资产
实现Statemint的治理
谁在开发公共利益平行链?
怎样激励验证人
Statemint和Statemine未来会怎样
Jorrin:欢迎大家收听RelayChain播客,很荣幸这次又请到了JoePetrowski。这次我们会聊聊Joe最近几个月参与的项目之一“Statemint”。你们很多人应该听说过,它是Kusama上上线的第一条平行链。其实在Kusama上它叫“Statemine”,不过在接下来的播客中我们都会用“Statemint”来指代它,因为上波卡的主网名字就叫Statemint。所以说“Statemine”和“Statemint”这两个名字其实是可以互换的。
接下来我们就正式开始吧。我们先从一个比较高的角度来看,什么是Statemint?
Joe:Statemint其实是一条非常简单的链,没有太多很花哨的东西。它不像中继链或者智能合约链那么复杂,它只是一条用于创建和管理资产的链,既包括同质化资产,也包括非同质化资产。
Statemint其实主要是由两个模块组成,一个是处理同质化代币的Assets模块,一个是管理非同质化代币NFT的Unique模块。剩下的都是一些运行层面的东西,比如账户和余额。账户可以存放资产,还有一些跨链消息、代理、多签等这些你在Substrate链里经常看到的实用性的功能。
蓝色光标:与腾讯在作为元宇宙入口的虚拟人业务有较深入合作:11月16日消息,蓝色光标在互动平台表示,公司与腾讯在游戏、动漫、阅文等层面有深入合作;同时,在作为元宇宙入口的虚拟人业务,也有较深入合作。[2021/11/16 21:54:34]
不过总的来说,Statemint的主要功能就是在链上创建和管理资产。
Jorrin:我们刚刚说到了token和NFT等。为了帮助熟悉以太坊生态的人理解,Statemint是不是代币标准,或者说是一条做代币标准的平行链,类似于ERC20或者ERC721那样的?
Joe:是的,没错。这两个模块其实和ERC20和ERC721的接口很相似。最大的区别在于,当我们说到ERC20和ERC721,它是一个接口,它只是说你的合约里要有这几个函数。但是实际上,每一个以太坊ERC20都是用了不同的接口,所以你可以有某些函数,比如转账。某个合约可以比另一个合约用掉多得多的gas,我们发现用不同的ERC20代币来做同样的操作,会有非常大的gas费差距。
而在Statemint里,这些是直接写在Runtime里的,这个链上有一个函数叫做Transfer,另一个函数叫Create,用来创建资产。所有这些逻辑都是在链上的,好处就是我们进行了基准测试。这个是通过我们标准的Substrate基准测试流程,通过使用某些已知的硬件,来对执行不同的函数估算时间。
我们不是在交易进行的过程中计算gas,而是可以进行预调度收费,也就是说我们可以在执行这个Transfer函数之前就收取一笔交易费,这样做不仅更便宜,而且还更快。因为你想想,gas计费是怎么回事儿呢,有点像是说“这个合约的下一步是什么?是加法。那么要花多少钱呢?5个单位。那付完还剩多少gas呢?100万。好的,那么100万减去5是多少?是999995。好的,那现在可以进行加法运算了。”所以你其实一直有追踪和测量gas费的日常开销。
但是如果你去想想“测量”这个词在现实中的意思的话,它其实是去量一个你原本不知道其数值的东西。在以太坊中,某个特定的合约,可能就有数百万计的ERC20代币转账。然后大家就不禁要问了,如果某个东西你已经测算过、已经知道它的复杂性了,那么为什么还要去测量它呢?你知道它并没有包含什么循环。其实好像gas测量系统只是一种心理安慰而已,让大家可以去部署不受信任的代码。但是如果你已经对代码进行了审计、评审,并且知道它不包含永久循环,而且知道它的复杂度,大概是你需要做两个数据库的读取,和三个数据库的写入,和几个数学运算。那么我们可以直接得出这个交易需要花费多少,而不需要每次都测量。
云南省委宣传部副部长:深入推进区块链与各行业领域的深度融合:8月25日,云南省委宣传部副部长、省新闻出版(版权)局局长杨润,市委常委、市委宣传部部长徐晓梅率队到五华区调研“区块链 ”大文创产业建设情况。云南省区块链中心成立了产业联盟,数十家国内外企业加入,以商招商的产业氛围日渐浓厚。中心成立一年以来,以成熟领先的区块链技术助力数字云南发展。上线云南区块链平台,为企业快速部署应用提供极大便利。杨润表示,五华区要按照“以应用换市场、以市场换产业”思路,以区块链技术应用为突破口,强化政策引领,加大招商引资力度,引进国内外优秀企业落地园区,聚焦场景应用,深入推进区块链与各行业领域的深度融合,把五华区打造成区块链技术应用试验场、产业发展聚集区。(五华区委宣传部)[2021/8/30 22:46:23]
这让我们可以更快地处理事情,因为我们知道这个转账实现过程是什么样的,所以我们可以直接得出一个区块里面放几笔交易,而不是去做gas测量。
Jorrin:太棒了,你做了一个很全面的总结。现在我们很清楚,是出于效率方面的原因要做Statemint。但是还有其他的什么原因,让我们要创造一条单独的平行链来做这件事吗?为什么不直接放在中继链上?
Joe:长期来讲,我们其实希望把几乎所有东西从中继链上卸下来,我们不希望任何东西出现在中继链上。可能有人听说过“隐形中继链”这个术语,在中继链上没有任何的交易,一切都转移到平行链上。所以说,与其只去单独聊资产这一块,我们不如把范围扩大一点来聊聊。
所以,如果你看看平行链验证的工作方式,所有验证人都会被放到一些子组中去,我们最初的想法是每条平行链有10个验证人,现在我们觉得甚至可以低至每条平行链5个验证人。也就是说,如果你的网络中有1000个验证人,你就可以有200条平行链,至少就子组而言是这样。
所以还有一些其他问题,如网络和其他可能成为瓶颈的问题。但是为了理论验证的东西,我们假设5个平行链的验证人,这5个验证人执行每条平行链的状态转换函数,然后他们在网络上分发这些东西,还有一些其他验证人会进行一些双重检查,所以大概是每条平行链总共有20个验证人执行状态转换函数。而在中继链中,每个验证人都要去执行中继链的状态转换函数。
总结一下,如果你把一样东西放到平行链上,只需要20个验证人来执行它;如果你把它放到中继链上,100%的验证人都需要去执行它。
所以这个问题在于,如果我们将东西放到中继链上,它其实上会冻结验证人资源。因为如果我们有1000个验证人,并且其中只有20个需要执行一些平行链交易,这就意味着它们中的980个可以做其他事情,我们希望它们能去验证其他平行链。所以我们不想用类似资产交易这样的东西来阻塞验证人,我们希望它们能够验证其他东西。
央行:加强科技支撑 深入开展“数字央行”建设:人民银行2020年科技工作电视电话会议5月18日在北京召开。会议要求,加强科技支撑,深入开展“数字央行”建设,提升金融服务水平和金融监管能力;加强金融业网络安全和信息化统筹指导,推动落实金融领域密码应用与创新发展,筑牢金融网络安全屏障;推动金融科技高质量发展,提升金融服务实体经济能力;推进LEI应用,优化标准供给,提升金融标准治理水平。[2020/5/19]
所以我们的想法是把所有东西都放到平行链上去,我们还在计划治理平行链、Staking平行链,好让这些事不要发生在中继链上。
Jorrin:好的。所以说我们不只是在token标准方面提高效率,其实也在交易、验证人计算资源方面提高效率。
那么,如果我们把计算都下放到平行链去,这会对使用Polkadot的人产生什么影响吗?对于日常用户来说,这种做法会让交易更便宜、更快吗?
Joe:是的。实际的交易费用大概是中继链费用的1/10,这也包括存款和各种东西。如果你之前用过代理或者多签的话,你可能发现比如说要存入0.3KSM作为存款才能使用多签,但是在Statemine上可能是0.03KSM就够了。大概是所有的东西都是中继链的1/10左右,所以省下了一笔相当可观的钱。
但其实不会更快。它只能以与中继链最终确定的速度相同的速度确定其区块,所以它不会更快,不过在交易费用方面肯定便宜得多。
而且老实说,1/10其实是一个我们拍脑袋定的数值,因为我们不知道它用得多不多,所以先设为10%,但我们其实觉得再过一段时间,随着时间的推移,等我们有更多平行链的时候,我们其实可以把这个数降到大概1/50。所以说费用和押金等等还有五倍的减少空间,因为把这些东西放在平行链链上比放在中继链上效率要高得多。
Jorrin:太棒了。我总是很乐意听到更便宜的交易费,那太棒了。你之前提到了一个公共利益平行链的概念。Statemint是第一个公共利益平行链,可以展开讲讲吗?聊一聊它到底是什么意思。
Joe:好的。所以大概来说,公共利益平行链,是通过中继链的治理来添加的。所以,正如大家知道的那样,Polkadot和Kusama的治理其实都有很强的治理功能,有一个叫做RootOrigin的东西,它就像系统中的超级用户。只有治理才能访问这个超级用户权力,和访问特权功能,它的其中一个功能就是注册平行链。
对于一条链是通过拍卖成为平行链,还是直接作为公共利益平行链注册,很多人其实感到很困惑,就是谁可以调用“注册平行链”的这个函数呢?其实只有治理可以调用。所以其实两种情况调用的是同一个函数,只不过一种方式是直接通过治理,另一种是作为拍卖逻辑本身的结果,而拍卖是通过治理发起的。
今晚8点袁煜明将做客《金色讲堂》 深入解读“什么是区块链思维”:今晚20:00,火币区块链应用研究院院长袁煜明将做客《金色讲堂》深入解读“什么是区块链思维”。袁煜明将从股份制的种种弊端出发对区块链的出现给行业所带来的改变进行一一讲解。同时,袁煜明还会对区块链机制目前所存在的问题进行全方位的解读。详情请关注今晚8:00的《金色讲堂》。[2018/4/10]
所以其实我没办法真的控制治理的行为,治理可能会注册一些他们觉得是公共利益平行链,但我觉得不是的链。所以这里我只能说说我个人对公共利益平行链的想法。我觉得可以分为两类。第一类是系统级的平行链;另一类就是公共物品平行链,Statemint就是这一类。
系统级平行链,比如DOT或KSM的余额、staking或治理的之类的东西,只是把这些东西从中继链拿下来放到平行链而已。这样做就可以给平行链腾出更多的空间,就是我们之前说到的把中继链的计算资源释放出来。我们最初的白皮书说Polkadot大约可以支持100条平行链,但其实这只是一个预计,一些研究人员甚至觉得可以支持1000条。
另一类是公共物品平行链,这些都是新的功能,和系统级平行链略有不同。它们主要是一些没必要有代币模型的链,或者有必要但是可以直接用DOT或KSM作为代币。而且它们是很多人都想要使用,但是却可能不想自己来构建的链。比如说使用DOT或KSM作为gas费,使用Statemine来管理资产的智能合约链。还有甚至像桥,比如如果大家都同意波卡到以太坊的桥很有用,那么就可以拿出一个插槽来做这个桥。
Jorrin:你刚刚说到有一类公共利益平行链的特征就是,可能没有自己的代币。Statemint其实就是这样,它没有自己的代币,而是使用中继链的代币,Statemine链用KSM,Statemint链用DOT。所以这种方式具体是怎么运作的呢?
Joe:我们有一类特殊的跨链消息叫做Teleport。所以在Statemine这边,它信任自己的中继链,应该说很多平行链也是这样,它们应该信任中继链,因为中继链为它们提供最终确认。基本上就是说,如果中继链向我们Statemine发送一条包含一些KSM的消息,我们不是在Asset模块里去铸造一个资产,而是把它铸造在Balances模块的一个账户里。
其他链可能会做不同的事。比如一些社区链是某种智能合约平台。如果你中继链发送KSM过去,它们在Balances模块已经有了自己的本地代币,所以他们可能会把KSM铸造成其他类型的代币,甚至可以是ERC20代币。
何玺:高层对区块链有过深入研究:就《人民日报》第17版财经周刊刊登了整版3篇关区块链的专题报道,围观者众。资深媒体评论人,酷科技创始人何玺巴比特专栏发文称,由此可见高层已经对区块链技术有过深入的研究,并达成了“共识”,即把区块链技术定为了“兵家必争之地”、是“战略机遇”、更是“国家战略”。[2018/2/27]
相应地,从Statemine回到Kusama链的过程会更复杂一些。因为Kusama中继链其实并不会相信所有的平行链,因为平行链有自己的治理。虽然说Statemine是个特例,它的治理和Kusama是同一个,但是其他一些平行链可能有Sudo。
所以说Kusama中继链并不一定会信任来自平行链的KSM,它可能会一直在记录“好的,我给平行链A发送了1000个KSM,给平行链B发送了2000个”,中继链不会允许平行链发送回来更多的数量,因为这些平行链,比如在使用sudo的平行链,会铸造出更多其他类型的KSM,然后又发送回来,而中继链其实不想接收超过它发送出去的数量的KSM。所以中继链其实会记录存在多少KSM,分布在哪里。
而对于Statemine来说,因为它和中继链是同一个治理主体,同一批利益相关者,所以Kusama中继链其实是信任Statemine的。中继链会说,来自Statemine的KSM我都是信任的。所以这就叫做受信任的传送口,在Runtime中会把某些平行链ID设置为受信任的传送口,并且接受来自这些链的KSM。所以从某种程度上讲,中继链上的KSM和Statemine上的KSM是一样的。
Jorrin:Cool,所以说是用KSM来作为在Statemine上操作的交易手续费吗?
Joe:现在是这样的。但是在未来,你其实可以使用一些其他资产来支付交易费,甚至都不需要有任何的KSM。
Jorrin:这太强了。这个是要比较久之后才能实现吗?还是很快就能实现?
Joe:快了,这个其实很快就能实现了。
Jorrin:到时候我们可能得再请你回来讲讲是怎么实现的。我们之前聊到了Statemint的治理是由中继链治理代理的。那么,Statemint上的Runtime升级是怎么实现的呢?是不是在中继链上发起一个治理提案,由DOT/KSM持有者投票,然后在Statemint上实施呢?
Joe:做Statemint其实是一个很大的开发技术方面的提升,因为我们有一个概念化的想法,那就是Statemint应该以字面的面额接受来自中继链的消息。我们希望Statemint上的治理来源和中继链的一致。而且我们希望理事会有一些权力,比如说收集人选择模块,资产模块,有一些强制创建资产的功能。我们希望能做到Kusama理事会的大多数能够在Statemine上创建资产。或者说为了进行Statemine的Runtime升级,我们需要Kusama的rootorigin。
这些看起来好像对于一条链来说挺简单的,但是Statemint链runtime非常简单,它就只有Accounts、Balances、Assets和Unique这几个模块而已。它没有Collective模块,来代表理事会或者技术委员会,它没有Democracyorigin,它根本就没有这些围绕治理的原语。
所以我们需要找到一个方法,像Statemine表达Statemine的rootorigin就是Kusama的rootorigin,或者说Kusama理事会的AssetsPrivilegedOrigin超过了50%。这听起来好像理论上也挺简单的。但是你其实上就像在对Statemine说“嘿,有一条其他的链叫Kusama,它是你母链,它里面有个叫理事会的东西,如果理事会中超过50%的人发给你消息,那么你就得听它的,把消息作为AssetsPrivilegedOrigin来接受。”
Statemine甚至都不知道Collective模块是个啥,它是推理不出来的,所以其实是创建了这些Origin,来让上面说的东西能实现。这个需要在Kusama的runtime升级中,在跨链消息和理事会逻辑中添加一些新功能,来实现这些东西。之后其实整个过程就跑通了,现在我们有了这些Origin,那么其他的一些链的治理主体向Statemine发送消息的时候,也可以类似地搞了。
说回到Statemineruntime升级的事儿,确实需要公投,一般都会由理事会来加速,但是还是需要通过普遍的持有人或者整个社区的投票,然后就会派遣一条消息给Statemine,里面有明确的指示。
Jorrin:Statemint的主要是由Web3基金会和Parity联合开发的,是不是大部分的公共利益平行链都是这样合作开发的呢?还是说会有第三方也就是项目方也会开发公共利益平行链?
Joe:我觉得可能是两种都有。
Parity和Web3基金会可能会一起来做一些系统级别的链。Parity实现了目前在波卡和Kusama上用的runtime,其实之后做系统级平行链只需要把它们分成更多模块化的部分,比如Stakingruntime,治理runtime,那么Parity来做这些就很合理。
至于公共物品链或者叫公共设施链,就会有很多社区团队想来贡献了。比如说有几个团队就在做桥,Snowflake在做以太坊桥,Interlay在做比特币桥,还有一些其他的提案比如让Encointer成为Kusama的公共利益平行链,在Polkassembly上还有很多关于某条链是否应该成为公共利益平行链的讨论。
Jorrin:对于平行链的收集人和验证人来说,它们参与和支持这些公共利益平行链有什么激励吗?
Joe:这是个很好的问题,是关于激励机制的。我们之前说到了公共平行链使用DOT或者KSM作为代币,但是没有说到Staking和治理。
Staking其实是通胀的来源,我们之前说过Statemint的交易手续费大概是中继链的1/10左右。所以我们没有通胀,没有Staking奖励,甚至根本就没有Staking,而且交易费很低。这就带来一个问题,那就是谁会想去运行收集人,来收集这些交易费呢?
因为像Staking、治理这些东西其实是网络不可或缺的核心部分,所以其实那些在波卡上开发应用的人就会去做收集人,比如你在Statemint上部署了一些资产,或者你在运行验证人节点,你想确保大家可以提名你,而大家提名的交易就在提名链上,那你可能想去运行一些收集人节点,来确保这条链可以正常使用,这样用户才可以正常使用你的应用提供的服务。
Jorrin:这其实是一个博弈论模型,人们其实会倾向于去做一些对自己有利的事情,如果你的应用要依赖波卡的平稳运行,那么你就有动机去支持这些公共利益平行链。
Kusama作为一个更具实验性质的网络,所有的新东西都是先上到Kusama再上波卡,那么Statemine会不会完全和Statemint分道扬镳?随着时间的推移,Statemine这条链的路线会由Kusama治理来决定,他们会不会对Statemine做一些跟Statemint不一样的改变?
Joe:是的,这是完全有可能的。不过因为它的逻辑很简单,如果说两条链出现很大的路线分歧的话,我应该会觉得蛮惊讶的。它其实就只有Assets和Unique两个模块而已,如果你说的是增加新的模块,或者只是修改一下参数的话,那确实是有可能有差异的。但是如果说从链的专业分工的思路来讲,它只是一条专注于资产的链,所以两者可能不太会有太大差异。
不过什么都有可能发生,因为我不是Kusama理事会,所以我的看法大家随便听听就行了。不过我自己猜这两条链应该会很相似。
Jorrin:在DAO中任何事情都可能会发生,对吧?
Joe:是的。
Jorrin:等大家听到这期节目的时候,Statemine应该已经开启无需许可的资产注册了,所以大家可以去上面创建自己的币,我可能会去做一个Jorrin币,哈哈。
今天的节目就是这样,谢谢Joe,你最后还有什么要说的吗?
Joe:没啥了。大家可以去看看Statemine。
Statemine网址:
https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fkusama-statemine-rpc.paritytech.net#/assets
原音频:https://relaychain.fm/a-deep-dive-into-kusamas-asset-hub-with-joe-petrowski
翻译:PolkaWorld
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。