智能合约(Smart contract)是一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。智能合约概念于1995年由Nick Szabo首次提出。其定义为:一个智能合约是一套以数字形式定义的承诺(commitment),包括合约参与方可以在上面执行这些承诺的协议。 智能合约是一种计算机协议,一旦部署就能实现自我执行和自我验证,在分布式计算、物联网等领域都有广阔的应用前景。智能合约全生命周期包括合约生成、合约发布、合约执行等3个部分。通过编写智能合约为基础的溯源系统,每一个参与角色之间是相互独立的个体,但个体之间相互监管,遵守智能合约进行高效公平透明交易。映射在网络中就是节点互相监督、共同参与,避免了中心数据库的集权管理。一旦智能合约开始执行,溯源数据的采集记录由各个独立的节点记录,数据所形成的前后区块生成的哈希索引 连接会导致数据无法篡改,这样也使溯源过程更加便捷和可信。
针对溯源多环节操作,区块链技术可以有效避免 数据中心化被篡改的风险,但是由于区块链本身的存储量太小,难以满足溯源实际的存储需求,而IPFS 作为一种去中心化的文件存储协议,可以有效弥补区块链在存储方面的不足。 溯源供应链中多个操作节点相互联系但又独立操作。区块链结合IPFS的去中心化网状结构不存在对某个节点的依赖,溯源各个操作节点根据自己的实际操作完成数据上链。IPFS是基于内容寻址的存储方式,溯源具体操作内容所对应的哈希存储至区块链中,通过访问哈希地址可以对操作信息进行有效查看,这种查询方式较区块链查询更加便捷直观。相比较于传统模式,依靠溯源联盟链各个节点提供的存储空间和通信带宽的存储方式更加轻量 级和低成本。
以太坊是目前较为成熟且极具代表性的免费开源的智能合约技术平台,可部署智能合约并为创建它的用户提供编程开发应用。以太坊区块链整体架构的主要功能分别为底层服务、核心技术层和顶层服务应用3个大层。 底层服务包括P2P网络、LevelDB数据库以及密码学算法等多个基础技术服务,目的是为了保证以太坊区块链系统的平稳运行。核心技术层包括共识算法等以太坊虚拟机和RPC调用的核心元件,这是以太坊核心组成部分。顶层服务应用是指基于以太坊平台并且结合自身专有业务,应用服务有API接口、智能合约和去中心化等。
工作流技术是实现企业业务流程自动化的核心技术,它通过对企业业务流程的建模、仿真分析、过程机构优化、流程管理与集成,最终实现企业业务过程的优化、调整和重组。工作流技术与协同系统研究是当今最具吸引力的研究领域之一,许多研究机构、国内外专家学者和软件开发公司都开发出了各具特色的工作流产品和研究原型。 跨组织工作流往往具有过程异构、组织自治性和协同复杂性等特点。首先每个组织都有自己的业务过程,但在跨组织工作流的协同环境中,不同组织的业务过程在服务对象、行业标准、运行环境和技术基础等方面都有很大的差异,如何对不同企业的业务过程进行统一的描述,或者说如何实现跨组织业务过程见语义一致性,是跨组织工作流调度要解决的关键问题。其次,每个企业都有自己的私有资源,如何把企业共享的部分资源进行合理的分配也是跨组织工作流面临的问题 四种常见模式:
模式描述:在一个流程实例中,各个活动按顺序依次执行。模式所解决的问题:流程需要保证一系列活动的执行顺序。模式应用举例:在一个银行贷款审批流程中,审批人员在决定同意或者拒绝贷款前必须审查贷款申请人的信用状况,即流程的执行顺序必须是先检查贷款申请人信用状况,再决定同意或拒绝贷款。
模式描述:在一个流程实例中,根据不同的条件,会有不同的执行路径。模式所解决的问题:流程需要根据运行时的数据,决定流向哪一个路径分支。模式应用举例:在一个计费流程中,根据客户选择的付款方式进行扣费。
模式描述:在一个流程实例中,存在两个或者多个执行路径平行执行,但这些平行的路径之间没有关联,平行路径的执行没有确定的顺序关系。模式所解决的问题:流程需要把一个路径平行拆分成两个或多个路径而不关心路径的执行顺序。模式应用举例:在一个货物处理流程中,客户付款之后需要平行启动发货、通知客户的活动。
模式描述:在一个流程实例中,有些活动是需要多次执行的。模式所解决的问题:在流程中需要回流到某一个以前的节点。模式应用举例:在一个审批流程中,如果经理不审批,则审批发起人需要重新提交审批申请,直到经理审批同意。
智能合约实现了特定于领域的逻辑,以充当自动的、可信任的中介。典型的应用包括多方会计、投票、拍卖和带有奖励分配的谜题解决游戏。许多公开报道的攻击已经导致数亿美元的以太被盗或以其他方式丢失。此外,合同一旦部署就不能被修补。这就强调了智能合约部署前安全审计和分析的重要性。约可以被多个用户同时调用,多个提交的事务的顺序由矿工通过共识协议非确定性地决定。契约可以同步调用其他契约,也可以异步调用链外服务,这些服务不以预先确定的顺序返回。由于以太坊合约是有状态的,合约数据的变化在调用之间持续存在。因此,从一组调用契约的事务中预测结果,需要对并发交互事务的不确定性顺序进行推理。开发人员在编写契约时通常假定契约的某种序列化执行顺序,常常会遗漏只有在复杂的交错中才会看到的不需要的行为。从历史上看,对交叉执行的推理对人类审计师来说一直是困难的。因此,允许开发人员、审计人员和智能合约用户增加合约预期行为的信心的工具是有用的。 以太坊智能合约中的某些并发bug是已知的。之前的工作强调了契约对异步回调的敏感性;以及一对事务在重新排序时如何导致合约显示不同的以太传输输出。然而,由于事件的出乎意料的顺序而引起的bug的普遍性——例如。对通过事务和回调调用的契约函数的调用——迄今为止,既没有经过系统测试,也没有完全理解。关键的挑战是,在分布在许多事务上的多个事件下分析契约,会导致所分析的状态空间中的组合崩溃。现有的工具通过检查单个事件或单个事件对的属性来缩小搜索空间。例如,臭名昭著的DAO可重入性bug可以通过检查一个函数是否可以在单个事务执行中调用自己来发现,而Oyente工具可以检查一对事件是否存在事务排序bug。
1.2020-10-30~2020-11-30 熟悉以太坊智能合约与python 2.2020-12-01~2021-02-28 分析智能合约中的工作流模式 3.2021-03-01~2021-06-01 实验并完成毕业论文
[1] 杨信廷,王明亭,徐大明,等.基于区块链的农产品追溯系统信息存储模型与查询方法[J].农业工程学报,2019,35(22):323-330 [2] 2018. Ethereum Github. https://github.com/ethereum/EIPs/issues/738. Accessed:2018-05-05. [3]Tan Wenrsquo;an, Zhu Liang.Cooperative Technology and Application of Cross-Organizational Workflow base on role-theory.International on Mechatronic Sciences, Electric Engineering and Computer.CFP1357N-PRT ISBN:978-1-4799-2564-3,2013 [4] Leonardo Mendonccedil;a de Moura and Nikolaj Bjoslash;rner. 2008. Z3: An Efficient SMT Solver. In TACAS (LNCS), Vol. 4963. Springer, 337–340. [5]Dimitar Dimitrov, Veselin Raychev, Martin T. Vechev, and Eric Koskinen. 2014.Commutativity race detection. In PLDI. ACM, 305–315 [6] Karthikeyan Bhargavan, Antoine Delignat-Lavaud, Ceacute;dric Fournet, Anitha Gollamudi, Georges Gonthier, Nadim Kobeissi, Natalia Kulatova, Aseem Rastogi,Thomas Sibut-Pinote, Nikhil Swamy, and Santiago Zanella-Beacute;guelin. 2016. Formal Verification of Smart Contracts: Short Paper. In PLAS. ACM, 91–96 [7] Yoichi Hirai. 2017. Defining the Ethereum Virtual Machine for Interactive Theorem Provers. In 1st Workshop on Trusted Smart Contracts (LNCS), Vol. 10323.Springer, 520–535. [8] Sukrit Kalra, Seep Goel, Mohan Dhawan, and Subodh Sharma. 2018. Zeus:Analyzing Safety of Smart Contracts. In NDSS [9] Loi Luu, Duc-Hiep Chu, Hrishi Olickel, Prateek Saxena, and Aquinas Hobor. 2016.Making Smart Contracts Smarter. In CCS. ACM, 254–269. [10] Pallavi Maiya, Aditya Kanade, and Rupak Majumdar. 2014. Race detection for Android applications. In PLDI. ACM, 316–325. [11] Ivica Nikolić, Aashish Kolluri, Ilya Sergey, Prateek Saxena, and Aquinas Hobor.2018. Finding The Greedy, Prodigal, and Suicidal Contracts at Scale. CoRRabs/1802.06038 (2018). [12] Veselin Raychev, Martin T. Vechev, and Manu Sridharan. 2013. Effective race detection for event-driven programs. In OOPSLA. ACM, 151–166. [13] Ilya Sergey and Aquinas Hobor. 2017. A Concurrent Perspective on Smart Contracts. In 1st Workshop on Trusted Smart Contracts. [14] Brian Goetz, Tim Peierls, Joshua J. Bloch, Joseph Bowbeer, David Holmes, and Doug Lea. 2006. Java Concurrency in Practice. Addison-Wesley [15] Nick Szabo. 1996. Smart Contracts: Building Blocks for Digital Markets [16] Gavin Wood. 2014. Ethereum: A Secure Decentralised Generalised Transaction Ledger. https://ethereum.github.io/yellowpaper/paper.pdf [17] Nicola Atzei, Massimo Bartoletti, and Tiziana Cimoli. 2017. A Survey of Attacks on Ethereum Smart Contracts (SoK). In POST (LNCS), Vol. 10204. Springer, 164–186. [18] Leslie Lamport. 1978. Time, Clocks, and the Ordering of Events in a Distributed System. Commun. ACM 21, 7 (1978), 558–565. [19] Cormac Flanagan and Stephen N. Freund. 2009. FastTrack: efficient and precise dynamic race detection. In PLDI. ACM, 121–133. [20] Petar Tsankov, Andrei Marian Dan, Dana Drachsler Cohen, Arthur Gervais, Florian Buenzli, and Martin T. Vechev. 2018. Securify: Practical Security Analysis of Smart Contracts. CoRR abs/1806.01143 (2018). |
以上是毕业论文文献综述,课题毕业论文、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。