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

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

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

问题是什么?

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

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

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

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

工具救援!

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

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

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

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

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

什么是状态机?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭