A. Barišić, E. Zhu and F. Mallet, "Model-driven approach for the design of Multi-Chain Smart Contracts," 2021 3rd Conference on Blockchain Research & Applications for Innovative Networks and Services (BRAINS), 2021, pp. 37-38, doi: 10.1109/BRAINS52497.2021.9569809.

原文作者:A. Barišić, E. Zhu and F. Mallet*
原文标题:Model-driven approach for the design of Multi-Chain Smart Contracts*
原文链接:https://ieeexplore.ieee.org/document/9569809
原文来源: BRAINS 2021
笔记作者:quangaoyuan
笔记小编:quangaoyuan

0x00 关键词

多链、智能合约、模型驱动工程、形式验证

0x01 摘要

基于区块链的智能合约在广泛的服务中提供透明的自动化,包括金融、物联网和自治系统。但是,此类服务的实现很容易涉及安全风险和功能错误,尤其是对于由不同区块链组成的复杂服务。为了帮助开发人员专注于他们的业务模型,而不是深入研究区块链架构的异构性,我们提出了一个框架,可以在部署之前对组合服务进行分析和比较。这是通过大量使用基于模型的工程实现的,允许在生成具体部署工件之前对模型进行推理,特别是对于合约调用事务的安全编排。

0x02 INTRODUCTION

作为驻留在分布式账本 [1] 上特定地址的一段可执行代码,基于区块链的智能合约允许在不信任的实体之间不可逆地执行透明交易。以物联网场景为例,智能合约可用于自动化数据共享、设备所有权转移、用户注册、证书部署和撤销等。智能合约还可以实现加密货币作为激励,有助于创建数字市场跨多个系统交易资源,例如智能电网、运输系统和物流网络.

整个生态系统包括具有不同行为保证的利益相关者。为了在容错能力和交易速度之间进行权衡,鼓励开发者使用不同的区块链来解决相应的利益相关者。但是,它们交互的结果并不像单个链上的交易那样明确定义。为了给组合服务提供额外的保证,使用了模型驱动工程(MDE)。 MDE 提供了显式模型,通常称为“一流工件”,这些模型可以进一步转换为具有更多细节的较低级别模型。由于其快速原型、模拟、验证和验证能力,这种方法被用于解决大规模软件工程问题。此类模型通过不同的领域特定建模语言 (DSML) [2] 表示。

MDE 在生成用于部署的具体工件之前对模型进行推理,包括服务的编排和区块链技术的规范。通过拥有适当的 DSML,我们可以为创建在给定的多链后端上运行的合约的服务级别语义,在此基础上,可以通过在适当的抽象级别启用模拟来正式验证一些安全性和时间属性。

0x03 相关工作

在单链场景下,业务模型翻译和智能合约验证分别进行了探索。以金融应用为例,数字资产建模语言(DAML)1用于资产管理逻辑描述,提供更高抽象层次的解决方案。但是,这种方法缺乏验证功能的集成。在验证方面,Tezos 区块链 [3] 已经在协议设计阶段和代码实现阶段考虑了形式验证问题。属性是从虚拟机代码中提取的,并提供给像 Coq [4] 这样的定理证明器。对于没有这种特性的其他区块链项目,额外的形式化框架,如 Kframework [5] 和状态机抽象提供了形式语义。

有研究致力于使用 MDE [6] 生成基于以太坊的智能合约,甚至通过从自然语言模型生成代码 [7]。 FSolidM 就是这样一种解决方案,它提供了正式的定义来解决诸如重入和事务排序之类的漏洞,并支持诸如时间约束和授权之类的设计模式 [8]。因此,它通过为验证提供支持,为开发人员提供了一种制定智能合约的新方法,但商业模式仍然与 Solidity 实施紧密相关。

在多链场景下,已经提出了几种跨区块链应用框架,但它们的通信成本并不明确[9]。 BlockSY 2 提出了一种与技术无关的 Web 服务,以轻松更改底层区块链。虽然它处理句法适应,但它没有明确定义交易的预期语义,并且紧密依赖于底层区块链之一。

0x04 多链智能合约的开发

我们假设整个业务逻辑是基于一个工作流的。该工作流程的每个步骤在不同的区块链中以库的形式都有一组实现。当前的跨区块链交互模型是简单的消息传递,没有状态同步。

我们方法的目标是明智地重用在不同区块链中实现的现有库,并明确指定和分析生成的组合智能合约的行为。我们需要在不同的区块链上编排步骤,同时确保生成的智能合约满足预期的属性。当可能有多个有效的编排时,我们选择优化非功能属性的一个,例如执行时间或气体消耗。

我们的方法由具有综合阶段的三层框架表示。最上层是关于服务设计的,包括三个要素:业务模型的工作流程、每一步的规范、业务模型的规范。底层是一组候选区块链平台,托管库以实现上述工作流程的每个步骤。中间层是将每个步骤映射到一个区块链平台上所选库中的相应函数的配置。我们使用三个 DSML 分别描述抽象行为(工作流程)、属性(业务模型规范)和配置(步骤功能映射)。整个服务基于由选定区块链托管的智能合约,该合约调用部署在其他区块链上的库中的功能。该智能合约预计将由抽象行为、配置和公认的跨区块链上下文解析规则生成。

假设配置中选择的功能是通过单链验证方法证明的,一旦工作流的控制逻辑得到形式上的证明,整个服务的生成工件将满足业务模型规范。

我们的方法依赖于 GeMoC 工作室 [10],这是一种基于 Eclipse 的语言和建模工作台。该框架提供了一个通用接口来汇集多个 DSML 并描述它们协调的语义。它允许为每种特定的元语言插入不同的执行引擎。我们开发了几种具体的语法来指定智能合约、库和部署配置的模型实例。

为了分析综合服务行为,我们可以使用 GeMoC 工具进行仿真、模型检查、调试和运行时验证。 GeMoC 还支持从应用于每个 DSML 的一组模式生成完整的语义模型。这个语义模型是使用时钟来描述的约束规范语言(CCSL),为进行详尽的验证提供正式支持[11]。

我们的方法开启了在智能合约之上引入新功能的可能性,这些新功能可以由第三方定义。一种可能的应用是添加用于定义法律条款的特定语言,这些法律条款可用于在运行时对智能合约进行治理。例如,我们可以引入诸如终止合同或在现有合同条款中添加附录等概念。另一方面,明确定义了合约行为,就可以提供一个模拟环境来在运行时监控合约。

0x05 结论

这项工作为解决多链智能合约设计的可靠性问题提供了一个框架。虽然代码生成部分还没有完成,但我们构建了一些自动支持来描述合约的行为并协调交易的执行。主要贡献是使用模型驱动方法创建了多链交互模型的服务组合语义,可以将其转移到现有的验证工具中。

【论文笔记04】Model-driven approach for the design of multi-chainsmart contracts—用于设计多链智能合约的模型驱动方法相关推荐

  1. 2022安全与软工顶会中区块链智能合约相关论文

    2022安全与软工顶会中区块链智能合约相关论文 前言 安全顶会 S&P USENIX Security CCS NDSS 软工顶会 TOSEM TSE ISSTA FSE ASE ICSE 前 ...

  2. [论文笔记] Fast Quality Driven Selection of Composite Web Services (ECOWS, 2006)

    Time: 4.0 hours Jae-Ho Jang, Dong-Hoon Shin, Kyong-Ho Lee, "Fast Quality Driven Selection of Co ...

  3. [论文笔记] A model for correlated failures in N-version programming(IIE Trans, 2004)

    Time: 4.0 hours YS Dai, M Xie, KL Poh, SH Ng., 2004. A model for correlated failures in N-version pr ...

  4. 论文笔记——Deep Model Compression Distilling Knowledge from Noisy Teachers

    论文地址:https://arxiv.org/abs/1610.09650 主要思想 这篇文章就是用teacher-student模型,用一个teacher模型来训练一个student模型,同时对te ...

  5. 【论文笔记】A Unified Approach for Tracking UAVs in Infrared

    摘要 本文设计了一个统一的框架来追踪无人机,包括局部追踪器.相机运动估计模块.边界框回归模块.重检测模块和更新模块. 相机运动估计模块对局部追踪器运动做补偿,然后边界框回归模块来找到一个精准的边框.如 ...

  6. SysML-Sec A model Driven Approach for Designing Safe and Secure Systems

    SysML-Sec用于设计安全系统的模型驱动方法 摘要 安全性是开放式的,可以攻击嵌入的系统,并且必须仔细评估顺序才能确定对安全性的威胁.随后保护系统安全,即将安全机制集成到系统体系结构本身会影响系统 ...

  7. [论文笔记]Trajectory Data Driven V2V/V2I Mode Switching and Bandwidth Allocation for Vehicle Networks

    车辆的高机动性给车辆网络中高效可靠的通信带来挑战,其中的关键是如何实时处理大量的信道反馈信息以及如何更好地进行资源分配.本文提出一种利用轨迹数据的资源分配方法,其特点为减少CSI信息的反馈量并使V2V ...

  8. [区块链笔记1] 入坑区块链 智能合约solidity基础

    以太坊是一个分布式计算网络,提供了运行智能合约的分布式平台. 智能合约是在以太坊虚拟机上运行的应用程序. 以太坊拥有多种高级语言可以用来编写智能合约,最流行的是solidity,基于javascrip ...

  9. Face Swapping under Large Pose Variations: a 3D Model Based Approach论文阅读笔记

    题目:Face Swapping under Large Pose Variations: a 3D Model Based Approach 翻译:大姿态变化下的人脸交换:一种基于三维模型的方法 摘 ...

最新文章

  1. jQuery中hover与mouseover和mouseout的区别分析
  2. 如何处理Angular依赖注入的错误消息: NullInjectorError No provider for EffectsRootModule!
  3. OJ1053: 正弦函数(纯数学思想和编程思想两种方法实现)(C语言)
  4. 家庭问题(信息学奥赛一本通-T1362)
  5. Spring AOP 的切点切在Controller上没有起作用的问题。
  6. delphi--csv,txt文本转换成excel .
  7. 餐饮创业想赚钱,这5个思维方式少不了
  8. 分库分表面试题及答案
  9. 系统操作手册_辽宁高考志愿填报系统2019操作手册(考生版)
  10. video标签使用controls属性怎么去掉三个点
  11. Redis 缓存穿透、缓存雪崩、热点Key问题分析和解决方案
  12. IOS手机Charles抓包
  13. iOS开发之《英语词汇学习》
  14. 植发搞笑图片_植发失败实例:头发没长出来还更秃了?詹姆斯也没能幸免,可怕...
  15. oppo手机的屏幕常亮问题
  16. RemoteViews的用法
  17. 高项_第七章项目成本管理
  18. scrapy代理IP
  19. 无法添加内核模式驱动的打印机
  20. Java HashMap 排序

热门文章

  1. 连接两个路由器在同一网段
  2. 多台CentOS服务器时间同步(NTP时间同步)
  3. 华为云服务器被曝异常,罗永浩退网不退直播,知网开放个人查重服务,今日更多大新闻在此...
  4. vue模拟触发另一个按钮点击事件
  5. 晨魅--初学Linux系统
  6. 【微信小程序】反编译
  7. DNS负载均衡 例子
  8. 【自检电源快速解决显卡烧坏问题】
  9. HihoCoder 1634 Puzzle Game
  10. 拼接 sql 防注入