可编程的智能合约的Beta版现在可以在IOTA 2.0 DevNet上使用。
内容概要:随着IOTA智能合约的Beta版发布,IOTA在IOTA 2.0 DevNet上提供了可编程的智能合约,包括对Ethereum虚拟机(EVM)的早期支持以及用Solidity、Go(TinyGo)和Rust编写的智能合约。我们目前正在努力扩展EVM支持,进一步优化,并将智能合约移植到IOTA主网。再加上代币化框架的整合,它将为IOTA上的智能合约之间的无缝、无需信任和无手续费的互操作性和可组合性提供一个强大的解决方案。遵循下面的说明,让我们开始BUIDL!
随着IOTA智能合约的Beta版发布,IOTA基金会在为IOTA增加新的效用层方面迈出了一大步,为构建去中心化的应用程序(dApps)和其他Web3创新提供了无限的可能性。我们对IOTA智能合约的目标是解决现有解决方案的一些缺点(手续费、可扩展性、互操作性和有限的可合成性),并为建设者和早期采用者创造一个新的机会的生态系统,随着我们成为主流,而实现业务的爆炸式增长。
为了实现互操作性和易用性,IOTA智能合约现在支持Ethereum虚拟机(EVM)和任何用Solidity编写的智能合约。虽然这是一个早期的实现,但它已经提供了广泛的兼容性,将最大的智能合约生态系统连接到IOTA的无手续费的基础层。这意味着Solidity合约可以很容易地移植到IOTA上,减少了实施时间,并受益于目前市场上庞大的Solidity工具和产品的生态系统。这其中包括了对MetaMask钱包的完全访问。
智能合约链的部署无需征求许可,无需拍卖,也没有额外的成本或摩擦。智能合约执行的费用可以由链主设定,我们相信这将导致几个链互相竞争工作,这反过来将导致在加密货币领域的所有可用选项中,执行智能合约的费用尽可能低。事实上,智能合约链的开发者有充分的灵活性来定义他们的链和代币经济。在未来,他们甚至可以将交易费用设置为零,然后用他们的原生代币来奖励验证者,从而创造他们自己的经济,并大规模地降低他们的DApp的进入门槛。
此外,在IOTA的基础层上,提供可在智能合约链中传输和使用的通证化资产的完全互操作性的工作已经开始。这将提供在不同的智能合约链之间转移资产的能力,不需要额外的费用,完全无信任,也不会产生交易费用,这要归功于无手续费的IOTA基础层作为一个无信任的原子桥。我们相信,仅这一特殊功能就会为NFT市场和去中心化金融(DeFi)和去中心化交易所(DEX)的开发者创造前所未有的效用。
是什么让IOTA智能合约如此令人兴奋?
IOTA智能合约的建立主要是为了满足我们行业不断增长的需求,推动新的创新,降低进入门槛,创造一个环境,让数十亿的用户加入我们的网络。分片式智能合约链的技术架构与无手续费和高度可扩展的DAG分类账相结合,提供了一个引人注目的解决方案,来满足市场需求,并解决今天的解决方案所面临的一些问题。
随着IOTA基础层今天能够处理远远超过每秒1000笔交易(TPS)(未来会更多),我们相信它是IOTA智能合约的完美信任锚和共享安全层。由于Tangle的DAG架构,我们能够并行地执行智能合约并进行横向扩展:只需增加更多的智能合约链,就能立即释放出更多的吞吐量。这种可扩展性是在保留所有智能合约的完全可组合性和互操作性的情况下实现的,只需利用IOTA作为一个无信任、无手续费的资产桥梁。
灵活的开发环境使智能合约开发者有可能定义他们自己的智能合约链,使用他们喜欢的智能合约语言,并为用户和验证者定义正确的激励措施。所有这些都是为了让建设者拥有正确的生态系统,以扩展到主流采用,并消除我们今天面临的主要进入障碍。
IOTA智能合约的亮点
- 原生资产(L1代币)用于无信任、原子和无手续费的资产桥。所有智能合约之间的完全互操作性。这将DeFi的乐高积木概念提升到了一个新的水平,所有智能合约都是完全可组合的。
- 灵活的开发环境,根据您的需求建立您的dApps。IOTA智能合约使您能够使用您的首选语言、智能合约虚拟机、自我定义的用户费用、对验证者的奖励和委员会结构。
- 通过分片和正确的激励措施实现可扩展性。IOTA智能合约是一个分片的智能合约网络,其中每个智能合约链都受限于其自身的可扩展性,不受网络其他部分的阻碍。这让人兴奋的是,每个智能合约链都可以定义自己的激励和费用(甚至可能是无感),为dApps获得主流采用提供了新的可能性。
- 完全兼容以太坊虚拟机(EVM),使其有可能轻松地从已建立的以太坊生态系统中移植智能合约和工具,而无需进行任何修改或变更。这也为IOTA在以后的阶段与以太坊搭桥提供了很好的机会。
- 在Solidity、Rust和Go(TinyGo)中开发智能合约。
Beta版的主要目的是帮助IOTA团队进一步改善和优化我们的解决方案。我们预计在最终产品发布之前,会有一些错误和更多的改进。但通过这个测试版,我们已经鼓励建设者开始实现IOTA智能合约所提供的机会。有了这个版本,我们开始为开发者提供全方位的可能性,为NFTs、DeFi、游戏(特别是游戏赚钱play to earn)和Metaverse建立去中心化的应用程序。
有什么新内容?
今年3月发布的IOTA智能合约alpha版本展示了智能合约在IOTA上的工作方式。可以生成多个链,并将它们的状态锚定在第1层IOTA Tangle上。开发人员能够在单独的测试环境中开始编写智能合约,但此时还不可能将它们部署到链上。虽然这让我们很好地概述了IOTA智能合约的架构,以及智能合约将如何与IOTA合作,但它不允许我们在公共网络上运行定制的智能合约。随着这个beta版的发布,情况发生了变化。
在beta版中,几个关键元素已经被改进和添加,将beta版变成了一个平台,可以被希望在IOTA之上开发智能合约的感兴趣的人利用。
重构和兼容性
- 在IOTA 2.0 DevNet上使用的GoShimmer UTXO分类帐,已经扩展为支持IOTA智能合约链的新特性,支持验证器的旋转,并引入了请求智能合约和令牌化的新方面。
- 完整的Wasp节点代码库已被重构以匹配最新的GoShimmer版本,使其与IOTA 2.0 DevNet完全兼容。现在任何人都可以运行自己的IOTA智能合约链,并将其锚定在IOTA 2.0 DevNet或基于GoShimmer的私有网络上。
- 在这个重构之后,alpha版本的临时共识算法已经被一个更健壮的、修改过的蜜獾(Honey Badger)共识算法取代了。我们还将矿工可采价值(MEV)预防措施纳入共识的实施。
- IOTA智能合约的所有部分都进行了一轮彻底的自动化测试和剖析,以获得更好的可靠性和性能。
- IOTA Wasp节点使用的数据库层已被替换为基于RocksDB的更高性能的实现。
实验性的Ethereum虚拟机(EVM)/Solidity支持
除了今年早些时候推出的基于Rust和go的WASM智能合约,我们还决定增加对以太坊虚拟机(EVM)的支持。这允许开发人员在固定于IOTA Tangle的EVM链中编写solid智能合约。占主导地位的智能合约生态系统主要围绕基于evm的解决方案展开,这些解决方案包含大量现成的开发人员专业知识、学习材料和工具。这使得它成为支持第一个额外虚拟机的明显选择。我们的第一个EVM实现(我们仍然认为是实验性的)完全兼容来自以太坊生态系统的现有智能合约,并有望降低在IOTA上构建智能合约的准入门槛,更容易与其他链上的现有生态系统集成。
这种实验性支持包括一个完整的EVM集成,与现有的工具如MetaMask、Hardhat和Remix完全兼容。作为一个用户,你可以生成一个EVM链,创建一个分配给自己的该链的主要代币的完整供应,并部署可以相互工作的合同。与第1层IOTA代币和数据的互动目前在这个版本中还不能使用,但计划在未来的IOTA智能合约版本中实现这一点。
UTXO分类账对智能合约链的扩展支持
随着IOTA智能合约测试版的发布,我们已经在GoShimmer的UTXO帐本中实现了新的功能。该帐本现在为IOTA智能合约和其他运行在智能合约链上的应用提供了新的和强大的支持。它包括对地址别名、链约束、时间锁、账上请求的回退选项和许多其他功能的支持。
最重要的是,新的UTXO账本支持独立于操作它所需的分布式私钥的链上身份。这意味着我们现在可以完全透明地轮换委员会中的验证者,以利于链和它的运作。
账外请求(Off-ledger requests)
这个版本的新内容还包括账外请求。虽然可以通过基础层上的常规IOTA交易与智能合约互动,但这并不总是最有效和最快的方式。等待消息的传播和确认需要几秒钟,而且用户会受到IOTA账本吞吐量的限制。
在未来,我们认为账本上的请求主要是在不同链上的智能合约之间以及底层用户钱包和链上账户之间进行无信任和原子资产转移的一种方式。
账外请求为账本上的原子交易增加了一个高吞吐量的选择,允许你直接与Wasp节点互动,而不需要发布基础层交易。通过将自己介绍到链并在那里存放令牌,您将能够安全地向链上的智能合约发送任何请求,并在与各自链上的智能合约直接交互时,以任何费用使用这些令牌。这种方法降低了对IOTA基础层的依赖和负载,高度提高了吞吐量和智能合约功能执行所需的时间。账外请求还包括重放保护。
模板工具(Schema tool)
在编写智能合约时,往往需要提供大量的模板。这不仅在每次开发智能合约时都要重新创建,很麻烦,而且还容易出错,很费时间。因此,测试版附带了一个新的工具来引导新的Go(TinyGo)或基于Rust的智能合约(编译为Wasm二进制文件)。这个模式工具将模式描述作为输入(定义希望使用的功能),并创建所有的模板代码和实施测试,使开发人员能够专注于编写对合同重要的代码。在代码库中,所有用Rust或Go(TinyGo)编写的现有概念验证智能合约都已经使用IOTA智能合约模板工具重新完成。从现在开始,IOTA基金会将继续使用它作为任何新的基于wasm的智能合约的默认工具。
模板工具将在以后的版本中扩展,提供更多便利(如自动生成的客户端库),目的是将开发工作从苦差事变成一种乐趣。IOTA智能合约模板工具的文档可以在这里找到。
公共测试网
为了尝试IOTA智能合约的现有功能,你可以运行自己的验证器节点,并创建一个独立的链,锚定在基于GoShimmer的网络上。为了使测试更容易,而不必通过这种特定的设置,我们还创建了一个公共测试网供任何人使用。这个网络由一个新的GoShimmer网络和一个由几个Wasp节点组成的委员会组成。为了使尝试测试网的门槛尽可能低,我们决定将所有可能的费用设置为零。由于我们预计这个决定会相当快地污染链,如果需要,我们会对这个网络进行定期的、不定期的重置。
你可以在维基上找到连接到公共测试网的所有细节。
更新的智能合约概念证明:Roulette
为了演示这个版本中的一些变化,我们决定更新Faire Roulette这个合约Demo的概念证明,并将其部署在一个公开的链上供任何人测试。这个演示允许用户存入DevNet IOTA代币,并用它们在虚拟轮盘桌上进行玩耍。这个概念使用IOTA智能合约内置的分布式随机数生成器(dRNG)来生成一个可证明的随机数,以决定获胜的数字。演示的代码可在Wasp资源库中找到,并与新的IOTA智能合约模式工具完全兼容。该演示也可以在我们的公共测试网上试用,其图形界面在demo.sc.iota.org上运行。请欣赏!
文档
当我们正在接近可用的智能合约阶段时,好的文档对于任何想要开始建立IOTA智能合约的人来说都是非常重要的。因此,文档已经完全重写,专注于使用IOTA智能合约的开发者,单独的新版IOTA智能合约架构文档详细描述了IOTA智能合约的工作方式。新的文档可以在这里找到。
下一步是什么?
现在,所有运行可编程智能合约的核心组件都已达到完全可用的状态,IOTA智能合约团队将专注于下一个版本的几个可交付成果。这些可交付成果主要是为了将IOTA智能合约以用户友好和强大的方式带到IOTA主网(又称Chrysalis)。
IOTA主网(Chrysalis)支持
目前的IOTA智能合约实现运行在实验性的下一代IOTA 2.0上,部署在完全去中心化的IOTA 2.0 DevNet上,由GoShimmer节点驱动。由于IOTA智能合约应该在切换到完全去中心化的IOTA 2.0协议之前就可以在IOTA主网上使用,下一个版本的一个重要交付品将是支持锚定到当前的IOTA主网。目前的IOTA主网和完全去中心化的未来IOTA 2.0协议有一些根本性的区别,因此很难同时支持两者。因此,我们的主要重点是,从现在开始使用Hornet节点软件支持当前IOTA主网的智能合约。
扩展EVM支持
目前的实验性EVM实现完全没有接触到IOTA的基础层。下一个版本将允许在基于EVM的智能合约中从IOTA基础层(L1)提取和存入IOTA代币。这将支持资产在不同智能合约链和IOTA基础层之间的无缝转移,而不需要特殊的桥接解决方案。这一功能将使EVM的整合更加有用,并使可扩展的、分片的智能合约链能够相互通信并无缝交换资产。通过使用这种方法将传统的智能合约应用/DeFi分散到不同的链上,与之互动的高额费用就可以成为过去的故事了。
对链的状态的承诺
我们计划实现一个特殊的状态访问层,对链的状态和它的各个分区做出承诺,并提供包含证明。
这些功能将为IOTA智能合约提供高吞吐量/高容量链所需的特性,如用于去中心化金融(DeFi)应用、不可更改的长期数据存储和类似用例。
- 将数据元素纳入状态的证明
- 链的状态的快照
- 智能合约对链的状态或合约的状态进行有选择的修剪,而不失去其状态的一致性
代币化框架
虽然基于IOTA 2.0的现有实现已经在IOTA令牌化框架的早期版本中支持和使用数字资产,但目前IOTA主网(Chrysalis)还不支持这一点。目前正在定义各自的RFC,并用于在未来的IOTA 2.0和当前的IOTA主网(Chrysalis)上实施标记化框架。除其他好处外,代币化框架将允许在基础层上创建代币和NFTs作为本地资产,也可以在智能合约链上使用,并为IOTA带来一些独特的功能,与智能合约相结合,这在任何其他现有平台上都是不可能的。我们相信,在基础层和锚定在其中的智能合约链之间无缝过渡的能力将为NFT和DeFi应用提供前所未有的效用,特别是考虑到IOTA的基础层是无手续费的。
无许可的链验证器
虽然这个版本允许任何人用自己的一套精心挑选的验证器来运行一个链,但许可的设置并不适合所有的用例。传统的智能合约和DeFi应用在无权限环境中茁壮成长,而这目前还不是这个测试版的一部分。但我们意识到了这一要求,并正在积极研究和努力实现一个解决方案,以满足这一市场。我们将很快提供关于这个问题的更多信息。
我们迫不及待地想让你尝试我们的新测试版。开始的最好方法是按照我们文档中的步骤,从我们的Wiki开始,或者查看WASP GitHub仓库,部署你的第一个智能合约。让我们知道你的想法,如果有任何问题,请随时在我们的Discord频道联系。
原文链接:https://blog.iota.org/iota-smart-contracts-beta-release/
本文原文非中文版本,由BruceX进行翻译,如若转载,请注明出处:http://www.iota.love/202110/iota-smart-contracts-beta-release/