查看原文
其他

Ignis与轻量级智能合约

JJ Jelurida 2022-09-17

为突破现有智能合约的技术瓶颈,Ardor团队实施了一种不同的方法,这种方法更加灵活和可扩展。不要求每个节点处理每个智能合约调用,而是只要求对智能合约(以下简称“合约”)感兴趣的各方处理它并验证它们是否达到相同的状态。


使用这种方法,“合约”代码本身是一个简单的Java类上传到区块链,因此经过数字签名和时间戳。但是,“合约”的执行仅由选择运行“合约运行器”插件的节点执行。


合约的输入通常是带有附加消息的事务,该消息标识要执行的合约,并提供可选参数。合约的输出是提交给网络的一个或多个事务,以更新区块链状态。合约提交的交易是正常交易,必须遵守所有现有的协议规则。


换句话说,轻量级合约是实现某个接口的Java代码,存储在区块链上。合约代码由任何想要运行它的人执行,而不是由每个节点执行,并且由区块链交易(或每个新块)触发。合同的计算结果将作为Ardor支持的任何类型的一个或多个正常交易提交。




它可以用来做什么?




轻量级合约基本上提供了以太坊智能合约的所有用途,并与Ardor已经提供的开箱即用的所有内容集成在一起。例如重复性任务的自动化、财务计算、可预测的随机数、用于注册来自外部源的信息的 Oracle 等。所有这些都与现有的内置Ardor代币清洗、资产交换、投票工具、交易、帐户属性、消息等功能集成在一起。这为依靠现有的内置API功能开发分散式应用程序提供了一个强大的工具。

 

但是,我们如何确保执行智能合约的人不会作弊呢?由于Java类文件存储在区块链上,任何感兴趣的人都可以基于相同的输入执行相同的合约,无论是在生产模式下,还是在批准模式下,以验证合约提交的交易是否确实遵循正确的计算。


轻量级合约代表了一个框架,用于在现有Ardor API之上开发的自动化层。


协定是通过实现预定义的接口来开发的。合约代码作为云数据交易部署到区块链中,云数据交易存储代码本身,以及将特定账户与现有已部署合约相关联的合约参考交易,并为此特定账户配置合约设置参数。




轻量级合约支持不同级别的信任



1

同行评审

合约作者可以发布 Java 源代码进行同行评审,任何人都可以编译源代码并生成存储在区块链中的完全相同的类文件。即使源代码不是由作者发布的,任何人都可以从区块链下载合约类,反编译它,并审查源代码,以确保它没有错误或后门。


2

结果验证


结果验证 ― 给定由合约执行的交易, 任何节点都可以执行相同的合约, 并确认合约提交的交易, 根据提供的输入和执行的代码代表正确的合约输出。这允许节点识别和标记作弊者,但不会阻止他们的交易被包含在区块链中。对于不代表重大价值转移的简单合同,完全够用。


3

账户控制

运行合约的账户可以通过另一个账户的多重签名或三个账户中的两个账户进行账户控制。每当合约账户提交交易时,控制账户将重复计算。只有当他们达到相同的结果时,他们才会提交审批交易。 


在数十个开发人员多年努力的基础上,Ignis轻量级合约已经内置Ardor功能,并提供了一个灵活和自动的中间层,以支持构建更复杂的服务器端区块链应用程序。





 · Jelurida· 

独特的公司需要独特的区块链解决方案


公众号,了解更多区块链分享


分享、在看与点赞,至少我要拥有一个吧

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存