当前位置:首页 > 物联网 > 区块链
[导读] 智能合约开发既复杂又昂贵。与可靠地编写智能合约相比,将智能合约建模为图形状态有很多优点。您可以专注于业务逻辑,而不是纠结于技术细节,甚至非程序员也可以理解您的合约在做什么。 你可以产生坚

智能合约开发既复杂又昂贵。与可靠地编写智能合约相比,将智能合约建模为图形状态有很多优点。您可以专注于业务逻辑,而不是纠结于技术细节,甚至非程序员也可以理解您的合约在做什么。

你可以产生坚实的代码,不需要审计了。您可以轻松地为不同的智能合约代码切换平台或目标语言。我们使用YAKINDU Statechart工具的开源版本将智能合约建模为状态机。通过这种方式,您可以使用模拟器测试模型,并最终生成可靠的代码。

问题是什么?

区块链的智能合约开发是复杂的。如果你想为以太坊区块链开发智能合约,你必须学习一种全新的编程语言,如solid。如果您成功地编写并测试了您的第一个智能合约,那么下一个障碍如下:由于您无法在将智能合约部署到主网之后更新它,因此必须有人确保智能合约代码能够抵御攻击。

虽然关于已知的攻击载体确实有很好的资源,但是在智能合约中找到这些安全漏洞需要大量的经验。

过去的经验表明,智能合约经常遭到黑客攻击,导致资金被盗。由于保护智能合约的工具还不够成熟,无法发现所有可能的安全缺陷,因此需要对智能合约进行审计。只有少数专家能够以一种部署的方式对智能合约进行代码审查,而不会让您夜不能寐。这是智能合约开发的第二个问题——它是昂贵的。

这种结合使得个人或小型初创公司开发高质量的智能合约变得非常困难。

工具救援!

两年前,我们开始开发YAKINDU solity工具——这是一个集成开发环境,提供诸一些敏感的帮助、智能代码建议、快速修复、重构、模板和实时验证等功能。

今年,我们将核心功能提取到所谓的语言服务器中,可以在许多编辑器(如Atom或Visual Studio代码)中重用。虽然这极大地改善了开发人员的体验,但这并不是故事的结尾。

智能合约开发对于非可靠性专家来说仍然是难以掌握的。

由于我们也是YAKINDU Statechart工具(一种状态机建模环境)的开发人员,所以我们对状态机如何简化智能合约的开发进行了一些研究,并开始将我们的语言服务器集成到YAKINDU Statechart工具中。

这基本上意味着我们可以在建模状态机时访问诸如全局变量、常量和函数之类的内置特性。集成的仿真引擎允许验证模型的行为。智能合约的可靠性代码是由模型生成的,只需单击一个按钮。

什么是状态机?

大多数软件开发人员认为状态机比实际情况更复杂,并且在日常工作中倾向于离线状态机。这并不奇怪——状态机通常被认为过于复杂和学术化,不适合实际应用。

如果你看过维基百科上关于有限状态机的文章,你就会发现一些术语,比如计算的数学模型、确定性(DFA)和非确定性(NFA, GNFA)自动机以及幂集构造。这听起来并不有趣,对吧?

事实上,我们将在这里使用状态机来进行智能合约开发,它们与学术上毫无对应之处——它们是为许多不同应用程序开发软件的有效方法。

例如,它们经常用于嵌入式系统领域,以建模汽车或飞机等反应性系统。反应性系统是一个系统,它对外界由传感器或人机接口(如电梯或咖啡机)触发的事件做出反应。智能合约也一样,外部世界的事务触发对智能合约的内部状态的更改。

状态机的基本构件是状态和转换。状态机由有限数量的状态组成。机器一次只处于一种状态,这种状态称为活动状态。它可以通过触发器或在特定条件下从一种状态更改到另一种状态。

示例:管理许可证的智能合约

例如,我们开发了一个用于许可证管理的智能合约。这个用例非常适合区块链,因为只要合约没有终止,许可证持有人仍然控制着许可证协议。

一个智能合约维护单个许可证的生命周期。创建之后,许可证进入有效状态,初始预算为10个代币。与智能合约交互有两个不同的接口。

许可证所有者可以增加预算来延长许可证期限。许可证管理人员可以根据时间段定期收取许可证费用。如果没有更多的预算可用,许可证进入无效状态,直到一个新的预算被添加到合约之后,许可证持有人才可以随时终止合约,并将收到剩余的预算。

看看上面的图片。我认为这个模型比500行可靠代码更全面、更容易理解。

模型驱动的智能合约开发的优点是什么?

首先,您可以在更高的抽象级别上建模智能合约。在隐藏所有技术细节时,可以将重点放在要开发的域逻辑上。图形状态机甚至可以被完全没有编程经验的人理解。

关注您的业务模型,而不是技术细节或编程语言。生成的智能合约代码具有更高的质量。一旦确保代码生成器生成正确和安全的代码,您就不必审计使用该代码生成器生成的每个合约。这将减少小型创新创业公司以及大公司将他们的商业案例迁移到区块链技术的障碍。

模型是独立于平台的。通过使用不同的代码生成器,您可以为不同的语言(如solid、Vyper或Yul)生成智能合约。也许在未来,会有另一个像以太坊一样强大的区块链。

很高兴知道您可以重用您的模型来生成另一个区块链的智能合约。

您可以执行和测试模型。在将模型部署到区块链之前,您可以使用内置的模拟器轻松地执行模型,以验证模型的行为是否符合预期。

该工具仍处于早期开发阶段,代码生成器还没有准备好投入生产。生成高质量的合同代码是一项相当艰巨的任务,但我们希望我们将很快有一个工作原型可供下载!

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

机器学习是人工智能的一个分支,它通过揭示数据模式(即特征和目标变量之间的关系)来模拟人类的学习能力。特征是表示给定观察点或数据点的属性的独立变量。另一方面,目标变量是一个因变量,我们感兴趣的建模作出预测。

关键字: 机器学习 独立变量 建模

(全球TMT2023年7月20日讯)7月19日,第二十届中国制造业数字化转型高峰论坛在西安举行。中之杰智能与现场嘉宾共同分享企业转型方法,探索数智化最佳实践,为制造业高质量发展集势聚能。中之杰智能打造了颠覆性创新产品...

关键字: 建模 双模 中国制造业 指令

MATLAB是一款主要用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境的软件。

关键字: matlab 设计 建模

质子交换膜或聚合物电解质膜 (PEM) 燃料电池是将氢和氧转化为水和电的装置。它是氢经济的一项非常重要的技术。它在低工作温度下运行,可用于能源生产。这种电池构成了一个电化学系统,由于其反应物而产生电力。虽然 PEM 燃料...

关键字: PEM 燃料电池 建模

区块链是目前最有前途的技术趋势之一,在广泛的用例中具有很大的潜力。它基本上是数据库的分布式加密变体,可以解决与在线安全和信任有关的不同问题。虽然许多人将区块链与比特币等加密货币联系在一起,但它在供应链管理和防止身份盗窃以...

关键字: 区块链 智能合约 NFT

区块链能通过严格的身份核验机制和密码学的数据加密机制确保整个智慧城市系统建设的终端安全。每一个终端设备都将拥有自身的公私钥对,区块链系统通过智能合约来维护一张终端身份名单,并审核是否该设备有权接入节点并将数据上传,从而避...

关键字: 区块链 智慧医疗 智能合约

(全球TMT2022年10月25日讯)为了帮助客户应对数据安全与合规挑战,解决数据利用与保护之间的矛盾,最大化数据价值,2022年可利邦基于多方安全计算、隐私保护、联邦学习等技术,推出了大数据隐私计算平台,解决了数据协...

关键字: 大数据 建模 数据安全 数据源

区块链技术对电子数据证据认定的作用,即对电子证据“三性”的影响,首先在于对电子证据真实性的判定所产出的显著影响。此外,对于某些业务类型,诸如证据在链上形成并同步存储的情形,该系统对于证明所存证据的合法性和关联性也具有一定...

关键字: 区块链 电子数据 智能合约

沙特阿拉伯利雅得2022年9月27日 /美通社/ -- 麦加朝觐部今天宣布推出沙特官方集成数字平台Nusuk(nusuk.sa),为所有朝圣者和游客提供一个简单易用的行程规划门户,便于他们前往麦加和麦地那。这一电子平台旨...

关键字: 数字平台 电子 集成 许可证

摘要:农业的发展离不开排水灌溉,因此机电排水灌溉技术得到了迅速发展。如何在排水灌溉中节约电能对建设节约型社会有着重要的意义,鉴于此,对农业电排灌节能降耗进行了有益的思考,重点研究了农业排水灌溉的特点及优化农业排水灌溉的策...

关键字: 负荷特性 建模 优化
关闭
关闭