撰文:TypusFinance
前言
当我们建立Typus时,我们经常被问到「为什么使用Move语言?」或「为什么选择Sui?」。这篇深度探索希望向大家阐述Move语言和SuiMove语言的一些核心概念,从而解释为何我们认为Sui是部属DeFi的最佳选择。我们希望这篇文章能提供开发人员或其他项目方一些洞见。
在我们正式谈论SuiMove之前,先来了解原始的Diem-styleMove语言。
第一部分:为何在Move上建设DeFi?
Move语言是为DeFi而生
Move最初是由Facebook为Diem区块链开发的,旨在打造一个全球金融基础设施,以支援数十亿用户。
Move设计初衷是成为一种用于操作数位资产(digitalassets)的语言。它必须能够以精确、易懂和可验证的方式来阐述Libra货币和治理规则。
长远来看,Move必须可以将各种资产及对应的商业逻辑代码化,从而建立金融基础设施。
Move的解决方案是「头等资源(first-classresources)」——将资产视为程式语言界的头等公民。用户可以通过资源(resource)的四种不同能力来轻松定义和操作数位资产:
1.复制(copy)
2.索引(key)
3.丢弃(drop)
4.储存(store)
为了打造强大且可拓展的DeFi生态系统,我们需要从程式语言的三个方面来提供支援:
1.数字资产的稀缺性
2.强制存取控制
3.资产安全性
G20会议:鼓励继续深入分析央行数字货币在促进跨境支付方面的潜在作用:10月31日, 二十国集团领导人第十六次峰会于10月30日至31日在意大利首都罗马以线上线下相结合方式举行。峰会通过了《二十国集团领导人罗马峰会宣言》。摘要如下:
我们欢迎金融稳定理事会从金融稳定角度总结新冠肺炎疫情教训的最终报告以及下步建议。我们鼓励继续深入分析央行数字货币在促进跨境支付方面的潜在作用及其对国际货币体系更广泛的影响。(经济日报)[2021/11/1 6:24:01]
1.数字资产的稀缺性
稀缺性是有价值的实物资产的重要属性,但数位资产本身没有内建稀缺性的特质。因此,我们必须通过程式来强制为数位资产赋予稀缺性。
也就是说,资产供给量不应是无限的。程式设计上,必须可以防止人们复制资产,并且应该要把创建新资产设为一种特权。
为实现稀缺性,Move规定资产永远不能被复制或丢弃,只能在不同的储存场所之间移动。
Move如何实现这一点呢?
Move有一个类型系统(typesystem),由字节代码验证器来强制执行。当开发人员将Move字节代码发布到区块链时,该系统将可以用来防范资产价值整个失控。
重复使用——如果我编写了一段以硬币作为某函数的输入项,然后再编写另一段代码,试图复制该硬币,那么类型系统将会纠错,并回传错误。
双重支付——如果我拥有一枚硬币,并尝试将其传递给某个接受硬币作为付款的函数,它会防止同一枚硬币被重复传递。
声音 | 华软资本董事长:负利率是否会影响未来数字货币信用或可计算交易体系值得深入探索:12月18日,华软资本董事长、华夏新供给经济学研究院院长在第一财经发布评论文章。文章表示,负利率对下一阶段的货币形态发展带来新的不确定性,也许为“另辟蹊径”提供某些启发。随着信息技术和互联网的发展,货币及其价值传递方式出现了根本性的转变,以信用卡、网银和移动支付为代表的电子货币,以及数字货币、区块链和加密资产等都在快速发展。特别是以Facebook筹备计划推出Libra(天秤座)为代表,其目标是发展成为一种“不企求对美元汇率稳定而追求实际购买力稳定”的加密数字货币,这对未来数字货币的重要性、演化形态和利率价格等引发了全球关注。与此同时,中国央行主导的主权数字货币DCEP已有实质进展,欧洲央行也开始考虑发行公共数字货币的多种方案。数字化相当程度上加速了全球资金流动,可以部分解释利率下行原因,但负利率是否会影响未来数字货币的信用或可计算交易体系,更值得深入探索的。[2019/12/19]
销毁——如果我有一些以硬币作为输入项的函数,那么我不应该有能力去重新指定该硬币的存量,因为凭空让硬币的存量减少代表有硬币被丢弃。
上述设定都是为了让数位资产的特性类似于实体资产。使用Move,开发人员可以通过上述设计来让数位资产满足资产该有的特性。
2.強制存取控制
在Solidity中,数据集中储存在合约里。当合约中存在漏洞时,一旦骇客获得合约权限,所有用户数据都会受到攻击。
声音 | 法中委员会秘书长林碧溪:中法两国深入区块链及人工智能合作:据人民网消息,2018年第五届中法团队合作创新奖即将在巴黎揭幕,法中委员会秘书长林碧溪表示,今年提交的候选项目中,区块链、人工智能、数字化工具的项目明显增加,且涉及领域非常广泛,覆盖核电站老化预测的解决方案、区块链学历认证及智慧城市能源管理等领域。林碧溪指出,中法两国创新合作的多样性,体现在创新合作的跨领域特征中。当今世界技术革新非常迅速,从区块链、人工智能到数字应用,都需要中法合作团队及时掌握并适应形势,才能致力于开发未来的新技术。[2018/11/30]
Move开发团队认为数据应该储存在拥有者的账户中,而不是储存在合约中。在Move中,有模组的概念,模组可以是一个程式库,也可以是一个允许创建、储存或转移资产的程序。类似于以太坊中的合约,但更像是一间采用物件导向程式语言的银行。
Move限定只有公共模组可以被其他模组调动。同样,结构中的栏位只能在其模组内访问和更改。每个资源都储存在由所有者账户控制的模组中。
该功能让所有权资讯和数位资产的特殊权限得以在智能合约下被维护。即使某个数位资产被发送到智能合约,该资产的所有权也不会改变。
更直白的例子是,如果骇客获得了Move智能合约的访问权限,他/她也无法将资产提取到自己的钱包中。
3.资产安全
DeFi的安全风险越来越令人担忧,我们屡屡听到造成超过1亿美元损失的骇客攻击。据SlowMist统计,2022年上半年就发生了约100起DeFi安全事件,损失超过16.3亿美元,其中项目缺陷和合约漏洞是常见原因。
作为一种专注于金融场景的语言,Move从Solidity可能存在的安全漏洞中获得了经验教训,并高度重视「智能合约安全和正确性」。
迅雷CEO陈磊:区块链一定要深入到老百姓当中:迅雷CEO陈磊在接受媒体采访时表示,“区块链一定要深入到老百姓当中。区块链的发展还在一个相对早期的阶段,所以一旦你掌握了区块链的一些正在改进中的技术,那么就能取得领先,但是这些技术必须要和现实场景结合才能有意义。我们希望看到,迅雷生态链上能有大量推动实体经济发展和C端用户参与的应用,这是区块链发展的核心动力。”[2018/5/20]
字节码验证器(bytecodeverifier)
Move的字节码验证器可以在执行每个字节码程序之前检查它们,防止许多常见的漏洞。安全预防措施由验证器强制执行,开发者不能绕过编译器,直接使用字节码编写代码。它在代码被发布到区块链时直接强制执行。
先前提到的资产稀缺性功能是通过字节码验证器实现的,它可以预设强制执行稀缺性。开发者依赖语言的强大支援,确保代码中的不变性,无论攻击者尝试什么都不会改变其代码特性。
第二部分:为何在Sui上建设DeFi?
我们已经解释完为何我们认为Move对DeFi而言是最佳的开发语言,接下来让我们谈谈为什么我们优先选择在Sui上部属我们的项目。
这个决策背后的三大支柱是:
1.共识机制——释放验证者和共识资源,让区块链更有余裕处理DeFi交易。
2.平行协议——没有上限的横向可扩展性,以满足DeFi的需求。
3.存储基金的代币经济学设计——为DeFi应用提供更具资本效率的模型,以将数据储存在链上。
1.共识机制
Sui的共识机制和处理简单/复合交易的能力被认为是其最有价值的创新,也是提供更稳定的DeFi交易环境的关键。Sui的共识取决于为两种物件设定——自有物件和共享物件。
中国发展高层论坛将对区块链技术进行深入讨论:2018年中国发展高层论坛将于3月24至26日在北京举行,中国发展研究基金会相关人士表示,中国发展高层论坛在今年迎来了第19届。围绕高质量发展、财税体制改革、供给侧结构性改革与金融政策、全面开放新格局、创新与未来等重大议题,中外方嘉宾将开展深入讨论。此外,参会嘉宾还将对中国改革开放四十周年、全球不平等、新时代的中美关系、一带一路、人工智能时代的产业转型、乡村振兴与农业现代化、金融创新与区块链革命等热点议题进行深入交流。[2018/2/26]
自有物件对应简单交易
在Sui上,自有物件是由单个地址拥有的,例如代币或NFT。这种场景包括像P2P代币转移、大量铸造NFT、投票、在dApp上发送消息等简单交易。
对于简单交易,Sui使用了一种称为拜占庭一致广播的演算法,这是一种比传统共识方法更简单的演算法,可以消除过多的开销。Sui指出,它「针对单写物件进行优化,允许放弃共识的这种设计以处理简单交易」。
因为验证者不需要像传统共识一样相互沟通,所以这种演算法让简单交易只需消耗比较少的运算资源。
共享物件对应复合交易
在Sui上,共享物件是没有特定所有者的物件,任何人都可以读取或写入。这些场景主要包括像自动化造市、开放大众竞标的拍卖或接受任意交易的中央限价单簿等复杂的DeFi交易。
在复杂交易方面,Sui采用了Narwhal-Bullshark共识引擎。这个机制有两个主要组件:Narwhal和Bullshark。
将Narwhal比喻成一个管家,它会将待处理的交易打包成一个无人领导的图并标记为「集(collection)」。整个图形结构允许系统在每一轮中插入交易。最后会生成证书,用以证明各轮次每个?集」当中的资料的可用性。
透过Narwhal,交易被建立成一个有向无环图(directedacyclicgraph,DAG),就像一个档案树,其中活动的顺序以图形方式呈现。
Bullshark优化了Narwhal提供的DAG结构,着重于减少网络验证者之间的通讯开销。
原始的Narwhal和Tusk论文指出,当Narwhal和Tusk一起使用时,它们可以实现「每秒160,000笔交易,延迟约3秒钟」的效果。
当YugaLabs的OthersideNFT推出时,它曾一度使以太坊网路出现问题。它是史上最大的NFT发行之一,数量是其他NFT项目的好几倍。根据用于进行此次发行的gas数据,需求远远超出了所有人的预期。这次发行的规模非常大,最终导致Etherscan网站无法正常运行。
在Solana上发生过更糟糕的情况,由于大量NFT的创建导致网络断线好几次。
透过这种共识机制,Sui的验证者不会像以太坊或Solana那样面临运算压力。像NFT大量铸造等交易被分离出来,把它们与DeFi活动相关的交易区隔开来,因此不需要共识,释放了验证者和共识资源,为DeFi提供了一个不那么拥挤、稳定的环境,以处理和部署DeFi交易。
2.平行协议
EVM的主要限制之一是交易必须依序执行——一次只能执行一笔交易,其他交易必须等待其完成执行。这个模型可能有潜在的有趣用途,但缺乏可扩展性和效率。
平行执行指的是识别独立的交易,并同时执行它们。然后,按照执行顺序来对相依交易进行排序并将其序列化。平行处理的概念很简单,但其困难点通常在于识别交易之间的相依关系。
Sui利用Move的所有权类型和其自身的物件中心数据模型,明确识别交易之间的相依关系。由于Sui上的物件代表可共享的资产,因此可以通过检查交易是否使用相同的物件来识别相依关系。
正如前面在共识机制段落中所解释的,拜占庭一致广播理论上允许Sui水平扩展以满足应用需求,同时保持每笔交易极低的运营成本。
这种设计突破了现有区块链的一个关键瓶颈——它消除了在一系列交易的总排序列表上达成全局共识的需求。
3.存储基金的代币经济学设计
在区块链上,写入资料和读取资料之间需要承担财务成本,这是一个具有挑战性的问题。以以太坊为例,写入1MB的数据成本可能高达数万至数十万美元。区块链存储的市场机制还没有成熟的解决方案,所以它急需一种可行的商业模式。验证者需要储存大量数据才能运营区块链网路,通常这些成本将会被转嫁给终端用户。
存储的问题在于时间,这是经济学家所称的外部性(externality)。在其他的一些区块链上,旧用户没有将存储成本内部化,导致新用户间接要为旧用户先前存放的数据买单。因此,Sui提出了存储基金代币经济模型来解决这一问题。
举例而言,Alice从Sui网络刚开始使用时,链上储存的数据量不大,她可以享受较低的gas费用。而Bob等到Sui网络成熟后才开始使用,由于此时链上储存的数据量较大,他被迫支付较高的gas费用。
Sui的代币经济模型旨在永久解决存储成本的问题。当用户在Sui上进行交易时,他们要提前支付计算和存储的费用。存储费用会存入一个存储基金,用于调整未来奖励给予验证者和委托人的份额。
存储基金是由过去的交易所资助的,并作为在不同时期转移gas费用的工具。它包括删除的这个选项——当用户删除先前储存的链上数据时,用户可以获得退款。这鼓励用户不停思考自己在链上储存的数据是否有必要继续储存。
租赁模型通过按期支付结构来让用户支付存储费用,这种设计有利于那些打算在Sui上部署的项目。它引入了一个市场机制,让用户依照经济效益去决定是否释放存储空间。具体来说,DeFi协议可以删除过去已经结束的拍卖纪录,NFT协议可以删除不再使用的NFT元数据等。
总而言之
资产导向的程式设计使得Move语言很自然地成为部署DeFi项目的好选择。技术逻辑方面的各种设计,如存取控制、形式验证等,为去中心化资产的安全提供了多重保障。
资产和所有权是智能合约的基础和DeFi的关键支柱,但现有的其他程式语言没有办法很好地描绘它们。Move是第一种解决这个问题的智能合约语言。
SuiMove不仅利用了Move的所有权/资产导向程式设计,其基于物件的资料模型设定也为其锦上添花。根据设计,Sui验证者可以有效地无限扩展网路吞吐量,以满足开发者的需求。Sui的可扩展性不仅限于交易处理。储存也是低成本和水平可扩展的。
通过Move和SuiMove的组合,Typus相信我们选择了一个出色的基础设施来定义和建构一个链上DeFi原语,从而实现即时和低延迟的交易。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。