CN113419736B - 一种在Tangle区块链系统上支持智能合约协议的方法 - Google Patents
一种在Tangle区块链系统上支持智能合约协议的方法 Download PDFInfo
- Publication number
- CN113419736B CN113419736B CN202110635777.5A CN202110635777A CN113419736B CN 113419736 B CN113419736 B CN 113419736B CN 202110635777 A CN202110635777 A CN 202110635777A CN 113419736 B CN113419736 B CN 113419736B
- Authority
- CN
- China
- Prior art keywords
- intelligent contract
- tangle
- contract
- intelligent
- transaction
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Business, Economics & Management (AREA)
- Databases & Information Systems (AREA)
- Health & Medical Sciences (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Medical Informatics (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供一种在Tangle区块链系统上支持智能合约协议的方法,其包括创建Tangle节点,在Tangle节点中创建智能合约的SDK,在Tangle节点上支持智能合约的协议,其包括在Tangle节点上支持智能合约的数据结构;在Tangle节点上部署智能合约,基于等值交换机制执行智能合约;基于可信执行环境TEE验证智能合约。应用本发明在继承第三代区块链高扩展性、无手续费等优点之基础上,扩展了第三代图结构区块链对于智能合约的支持,可以防止智能合约的恶意部署及执行,保障执行的安全性与可验证性,能够将常规程序代码编译为符合所提Tangle智能合约要求的程序,方便开发者,具备无手续费、延迟低、去中心化、扩展性好等特点。
Description
技术领域
本发明涉及区块链技术领域,尤其涉及一种在Tangle区块链系统上支持智能合约协议的方法。
背景技术
区块链是一个去中心的数据存储系统,其具有良好的互操作性,可追溯性、可靠性、自主交互、隐私性,安全性等性质,因此具有广泛的应用场景,正受到全世界范围内的广泛关注。其中,以以太坊(Ethereum)为首的第二代区块链,在第一代区块链(如:Bitcoin)之基础上,支持了智能合约,极大地扩展了区块链的应用场景。但是,由于第一、二代区块链均采用链式结构,且基于PoW或类PoW的共识机制,导致它们存在以下几个缺点:1).吞吐量低;2).可扩展性差;3).需要挖矿;4).交易手续费高;5).矿池挖矿引起的中心化问题。
第一代区块链技术中,以比特币为代表的技术开创了数字货币的潮流,但它的价值主要体现在数字货币的发行与交易上。第二代区块链技术以以太坊为代表极大地拓展了比特币的应用,其核心创新是在区块链上引入了智能合约。智能合约能够为缔约的多方提供安全可信赖的去中心化应用程序,这使得人们能够基于智能合约框架开发出适用于众多领域的区块链应用,比如交易的自动执行、金融资产处置、多重签名合约、云计算、物联网、共享经济等。
然而,第一、二代区块链技术有下列缺点:扩展性低(即交易吞吐量不会随节点的增加而成比例提升,比如:比特币平均每秒处理7笔交易,以太坊为20笔)、消耗大量的算力和能量、交易手续费高、交易延时长。当前物联网正获得空前的发展,物联网中设备数量与产生的数据量以指数级增长,然而物联网设备的处理能力低且能量受限。上述第一、二代区块链技术的缺点使得他们不能很好地用于物联网。为解决上述问题,以Tangle为代表的第三代区块链应时而生。第三代区块链不再采取第一、二代区块链的链式架构,而选择一个图状结构,因此它超越了前两代区块链架构所带来的限制,可实现近乎无限的可扩展性,支持实时交易,无交易手续费,且消耗极低的能量与算力。因此,第三代区块链能够很好地应用于物联网中。
从实际意义上讲,第三代区块链已经不再是传统意义上的区块链,它们已经摆脱了传统链式结构的束缚,而是采用诸如DAG(Directed acyclic graph,有向无环图)的结构,这使得它们超越了普通区块链架构所带来的上述限制。表(1)给出了第三代区块链与前两代之比较。
表(1)
从表(1)中可以观察到第三代区块链的众多优势,比如:高吞吐量,无交易手续费。但是,众多第三代区块链在设计之初并未考虑对于智能合约的支持,而且由于第三代区块链的创新性结构与共识机制,第二代区块链的智能合约方案也不能直接地被移植到第三代区块链上。因此,针对基于图结构的第三代区块链(以Tangle为例),本申请提供一种方案,在继承其优点且兼容原有协议之基础上,提供对于智能合约的支持。
该专利所提方案之意义,类似于第二代区块链在第一代区块链的基础上支持智能合约。但是,到目前为止,基于智能合约的DApp(Decentralized application,分布式应用程序)仅有2700个,而其中仅有600个处于活跃状态。以下缺点被认为是导致智能合约不能被广泛使用的原因:1).昂贵的手续费;2).智能合约的一次调用会被多数矿工重复执行;3).智能合约调用后响应时间长;4).安全问题。
然而,现有的主流第三代区块链技术(如Tangle,RaiBlocks,Skycoin)都不支持智能合约。这大大限制了他们的应用领域。在本研究中,以Tangle为研究目标,对其提供智能合约支持。
智能合约能够为缔约的多方提供安全可信赖的去中心化应用程序,且可以自动执行、无须参与方的相互信任,因此,极大地提高了节点间执行合约的效率。随着区块链技术的发展,智能合约已经成为区块链的最基本的功能,有巨大的前途与远景。比如在法院执法系统上可以执行自愿签约、自动履行、智能审判、智能执行;在供应链管理应用上可以给产品分配标识码从而可以准确跟踪其动向等。
表(2)总结了第一、二、三代典型区块链中智能合约的特征,以下分别阐述。以太坊是在比特币的基础上第一个支持智能合约的区块链技术。在以太坊中,合约以二进制代码形式存储于网络中,下载后须在以太坊虚拟机中来执行。然而,该智能合约有下列缺点:1).合约需网络中所有节点重复运行、验证,从而消耗极大的算力及网络带宽,2).合约的执行需较高的手续费,3).合约的验证与确认延时长,4).合约中存在安全漏洞。因此,合约的应用受到极大的应用。
企业操作系统(Enterprise Operating System,EOS)作为一个以太坊的改进被提出来。在EOS中,用户不需要提供交易手续费,智能合约的执行只需要通过数十个超级节点来执行(超级节点会在网络中通过选举产生)。尽管EOS还处于开发阶段,但大量实验测试显示:使用了BFT-DPoS共识协议的EOS最快能够以500毫秒的间隔时间产生区块,比以太坊快了将近30倍。然而EOS也有着致命的缺陷,为了提高BFT-DPoS共识协议效率而设立的超级节点,使得EOS不再那么“去中心化”,这违背了区块链技术去中心化的根本。
表(2):第一、二、三代典型区块链中智能合约的特征比较。
FastKitten最近被提出,它针对不支持智能合约的区块链系统,使系统能在链外(即第三方平台)高效地执行智能合约。FastKitten使用了可信执行环境(TrustedExecution Environment,TEE)来确保智能合约执行时的安全性及隐私性。然而,FastKitten协议要求合约的参与方向第三方支付押金及手续费,第三方才会帮忙执行合约。第三方的存在使得智能合约的执行同样不再那么“去中心化”。
TEE在近几年得到广泛关注,ARM、AMD、Intel相继提出了TrustZone、AMD memoryencryption与SGX Software Guard Extensions。TEE可用于区块链中,其基本思想是:对于待执行的智能合约,用户需要在TEE中创建一个安全沙盒,然后在沙盒内执行合约并返回一个信息摘要。其他用户可以根据这个摘要,向Intel提供的Attestation Service来验证智能合约是否被正确执行,以此来确保智能合约的安全性。TEE用于区块链的例子包括:将智能合约执行托管与第三方的协议FastKitten,对比特币与以太坊的缺点进行改进的BiteBTC,将智能合约执行与验证过程解耦的Shadoweth(公有区块链上的私有智能合约)和Town crier(面向智能合约的可验证数据供给系统)等等。由此可见,在区块链中应用TEE技术已经是一种趋势。
相比传统的网络技术,由于去中心化的区块链具有效率高、安全性强等特点,因此受到了国内和国外研究者的广泛关注。近年来,区块链技术已经跨越了货币交易时代而进入智能合约时代。
目前,澳门区块链与智能合约的研究刚刚起步,但却受到了政府、媒体和科研机构的广泛关注。区块链相关技术之发展不仅能提高的科学研究水平,亦能加快澳门产业转型,在助力特色金融发展之同时,也推动中国与葡语国家之间的经济贸易发展。
国内,已有北京、广州、杭州、西安等地的研究机构均对区块链及其应用进行了深入的研究,一些研究工作已经达到国际先进水平。比如,现有技术(蔡维德,郁莲,王荣,刘娜,and邓恩艳,“基于区块链的应用系统开发方法研究,”软件学报,vol.28,no.6,pp.1474–1487,2017.)提出了一个名为Beihangchain的权限区块链,其包含独特的共识机制、接口和设计;并在该链中提出了账户区块链(Account Blockchain,ABC)和交易区块链(TradingBlockchain,TBC)的双链设计模型,ABC仅用于存储帐户信息与交易信息,TBC用于存储对交易有用的信息并执行相关交易。Beihangchain可被用于如版权保护和电子支付等不同的应用中。现有技术(钱卫宁,邵奇峰,朱燕超,金澈清,and周傲英,“区块链与可信数据管理:问题与方法,”软件学报,no.1,pp.150–159,2018.)对区块链的特性进行分析与研究,从可信数据管理角度,介绍了区块链相关的技术和研究进展,包括分布式共识、智能合约、资料溯源等,并分析了应用对可信数据管理所提出的需求和研究挑战。现有技术(祝烈煌et al.,“区块链隐私保护研究综述,”计算机研究与发展,pp.2170–2186,2017.)介绍了区块链技术中隐私保护遇到的问题和挑战,分别从网络层、交易层和应用层详细阐述了区块链隐私保护面临的威胁及其防护对策。现有技术(喻辉,张宗洋,and刘建伟,“比特币区块链扩容技术研究,”计算机研究与发展,vol.54,no.10,pp.2390–2403,2017.)以提升区块链容量为目标对比特币展开深入研究,该论文分析比特币当前网络状态,根据比特币事务数据,统计交易延迟情况;并针对区块链的扩容方案分析可行性,研究扩容效果。小蚁区块链(NeoDocsBuilder,“Neo,”NeoDocsBuilder..)从仅支持货币交易的平台升级为支持智能合约平台。另外,万维链Wanchain使用智能合约来完成跨链交易。
国际上,区块链的研究亦受到广泛关注。在现有技术(G.Zyskind,O.Nathan,andA.Pentland,“Enigma:Decentralized computation platform with guaranteedprivacy,”arXiv Prepr.arXiv1506.03471,2015.)中,作者通过使hashtable的加密方法,在实现陌生人之间信息共享的同时,也保护了用户的个人隐私;在现有技术(G.Zyskind,O.Nathan,and others,“Decentralizing privacy:Using blockchain to protectpersonal data,”in Security and Privacy Workshops(SPW),2015IEEE,2015,pp.180–184.)中,作者基于区块链提出了一个去中心化的个人信息管理系统,在无需第三方信任机构的情况下,仍可保证用户在此系统中安全地掌管他们的数据;在现有技术(S.Wilkinson,J.Lowry,and T.Boshevski,“Metadisk a blockchain-based decentralized filestorage application,”Tech.Report.Tech.Rep.,2014.)中,作者使用主链记录服务交易,使用侧链存储指定的档案,达成了去中心存储之目的。在现有技术(L.Brunjes andM.J.Gabbay,“UTxO-vs account-based smart contract blockchain programmingparadigms,”arXiv Prepr.arXiv2003.14271,2020.)中,作者对于两个不同平台的智能合约协议,研究了底层平台的架构以及相应的数学模型对编程风格的影响。在现有技术(H.Wang,H.Qin,M.Zhao,X.Wei,H.Shen,and W.Susilo,“Blockchain-based fair paymentsmart contract for public cloud storage auditing,”Inf.Sci.(Ny).,vol.519,pp.348–362,2020.)中,作者提出了一个基于区块链的公平支付智能合约,用于公共云存储审计。
在本申请中,以面向物联网的第三代区块链——Tangle——为例,研究如何在第三代区块链上支持智能合约,并避免上述的第二代区块链智能合约的缺点。然而,想要在第三代区块链上支持智能合约并不容易,最主要的挑战在于如何在不改变Tangle现有数据结构与共识机制的情况下,实现智能合约的部署、调用、运行与验证。具体来说,Tangle设计之初并未考虑对于智能合约的支持,因此应如何在Tangle上部署智能合约就是研究的首要问题;其次,在Tangle上没有矿工且无激励机制,新交易由交易发起人自行发布,并在发布时验证两笔其它交易。但是智能合约如由调用者自己执行显然会存在安全问题,从而需要考虑Tangle上的智能合约应由谁执行,以及执行后应如何验证结果的合规性;此外,智能合约之复杂程度各异,且可能存在恶意的智能合约程序(如:死循环),从而应该考虑如何公平地衡量智能合约之工作量以及防止恶意合约程序。
幸运的是,近几年正高速发展的可信执行环境(Trusted executionenvironment,TEE)技术为实现本发明的目标提供了可能。TEE环境是处理器内部的安全区域,它保证在其内部加载的代码和数据的机密性与完整性,而无需担心来自系统其它部分(如:操作系统,其它应用)的安全威胁。当前,众多处理器厂商已经开发了针对它们处理器的TEE支持,如Intel Software Guard Extensions(Intel SGX),ARM TrustZone,AMDmemory encryption。在本申请所公开的方案中,以用户基数最大的Intel CPU所支持的SGX技术作为底层技术之一,让智能合约程序在TEE中执行,从而公平地衡量智能合约之工作量,并保证智能合约运行的合规性。然而,要想让智能合约程序能够在TEE中执行并不容易,需要合约开发者特别针对Intel SGX进行开发,这极大地增加开发难度和工作量,不利于第三代区块链的智能合约的普及和应用。因此需要考虑如何降低基于TEE的智能合约的开发难度,简化开发流程。
发明内容
本发明的主要目的是提供一种无手续费、延迟低、去中心化、扩展性好的在Tangle区块链系统上支持智能合约协议的方法。
为了实现上述主要目的,本发明提供的一种在Tangle区块链系统上支持智能合约协议的方法,包括以下步骤:创建Tangle节点,其中,Tangle节点包括Tangle代理、智能合约组件、交易组件;在Tangle节点中创建智能合约的SDK;在Tangle节点上支持智能合约的协议,其包括在Tangle节点上支持智能合约的数据结构;在Tangle节点上部署智能合约;基于等值交换机制执行智能合约;基于可信执行环境TEE验证智能合约。
进一步的方案中,在Tangle节点上支持智能合约的数据结构包括:在原有账单交易的基础上,提出智能合约部署交易和智能合约调用交易,利用账单交易中的消息字段去承载智能合约信息,该信息为智能合约的二进制代码,其中,智能合约部署交易的消息字段包含有智能合约部署字段,智能合约调用交易的的消息字段包含有智能合约调用字段、前序智能合约验证字段、前序智能合约执行字段。
更进一步的方案中,智能合约调用字段用于调用已经部署的智能合约,前序智能合约验证字段用于存储前序智能合约的验证结果,前序智能合约执行字段用于存储前序智能合约的执行结果。
更进一步的方案中,在Tangle节点上部署智能合约包括:当在Tangle节点部署智能合约时,通过编译程序将该智能合约编译成二进制代码,利用共识机制PoW计算Nonce值,并验证前序账单交易;创建智能合约部署交易,所述智能合约部署交易头部字段包含所述Nonce值,其消息字段包含欲部署的智能合约二进制代码;将所述智能合约部署交易发布到Tangle节点上。
更进一步的方案中,基于等值交换机制执行智能合约包括:当Tangle节点为调用智能合约SC104而发布一个新的智能合约调用交易时,需先帮助执行智能合约调用交易115中的智能合约SC103,其中,智能合约SC104和SC103在执行时所消耗的CPU指令数近似,其执行结果存储于前序智能合约执行字段;验证前序智能合约执行的结果,并将验证结果存储于前序智能合约验证字段;将该新的智能合约调用交易发布到Tangle节点上。
更进一步的方案中,当一个Tangle节点发现智能合约调用交易中存在错误信息时,通过调用FPC共识来仲裁。
更进一步的方案中,基于可信执行环境TEE验证智能合约包括:采用Intel SGX的Remote Attestation框架对智能合约进行验证。
更进一步的方案中,当Tangle节点A要验证Tangle节点B所执行的智能合约结果时,Tangle节点A会向Tangle节点B发起一个远程验证,并结合Tangle节点B的ID对该智能合约在可信执行环境TEE中生成的数字摘要进行验证,即可判断出Tangle节点B的智能合约是否被正确执行。
更进一步的方案中,在Tangle节点中创建智能合约的SDK包括:基于可信执行环境TEE的构建智能合约函数链接库,通过引用函数链接库在Tangle节点上的地址以进行调用智能合约;运行智能合约时,将所需函数链接库下载至本地,即可令智能合约被正常执行;构建Tangle节点智能合约的TEE工具链,该TEE工具链包含有编译程序、验证器以及执行环境,其中,验证器用于对生成的智能合约程序进行验证,执行环境通过库操作系统LibOS向智能合约程序的可信应用提供完整的系统服务。
更进一步的方案中,所述编译程序包括:在所有编译操作之前,为原始代码添加用于生成SGX Attestation的代码,并添加用于验证输入参数签名的代码;将源码文档转译为汇编代码文件、扫描并统计各个基本代码块的指令数;通过汇编器将汇编代码文件翻译成机器指令;通过链接器将一个或多个由编译程序或汇编器生成的目标文件外加库,连结为一个可执行文件。
由此可见,本发明公开一种在第三代图结构区块链(Tangle)上支持智能合约的方法,该方法在继承第三代区块链高扩展性、无手续费等优点之基础上,扩展了第三代图结构区块链对于智能合约的支持。该方法包含第三代区块链上智能合约的部署、调用、执行、验证机制,以及面向开发者的合约开发函数链接库、编译工具以及运行环境。在智能合约的部署及执行中,使用等值交换机制(即合约调用者付出与之需求相若的工作量)来防止智能合约的恶意部署及执行;在智能合约的执行与验证中,基于可信执行环境来保障执行的安全性与可验证性;所提供的合约开发函数链接库、编译工具以及运行环境在编译阶段为代码添加指令计数器,以用于等值交换中工作量的度量;此外,该工具能够将常规程序代码编译为符合本发明所提Tangle智能合约要求的程序,方便开发者。
进一步的,本发明基于等值交换(而非激励)的智能合约调用与运行机制。该机制利用Tangle交易发布者需验证前序交易之思想,令合约调用者付出与之需求相若的工作量,达到在无需手续费的前提下,用户间互助的运行智能合约,同时保证了合约调用与运行的公平性和安全性。
进一步的,在本发明中,被调用的智能合约无需重复执行也能保证合规性。在本项目所提方案中,所有智能合约被要求在TEE中执行,合约结果的合规性由可信硬件签名的凭证作为担保。
进一步的,本发明提供面向等值交换的智能合约TEE编译工具。该工具在编译阶段为代码添加指令计数器,以用于等值交换中工作量的度量;此外,该工具能够将常规程序代码编译为符合本发明所提Tangle智能合约要求的程序,而无需开发人员特别学习智能合约与TEE环境下的应用开发技术,即可快速上手开发能够在Tangle上运行的合约,利于所提方案之推广与普及。
附图说明
图1是本发明一种在Tangle区块链系统上支持智能合约协议的方法实施例中Tangle区块链系统的原理图。
图2是本发明一种在Tangle区块链系统上支持智能合约协议的方法实施例中Tangle节点上支持智能合约的数据结构的原理图。
图3是本发明一种在Tangle区块链系统上支持智能合约协议的方法实施例中智能合约的部署、执行及验证的原理图。
图4是本发明一种在Tangle区块链系统上支持智能合约协议的方法实施例中基于可信执行环境TEE验证智能合约的原理图。
图5是本发明一种在Tangle区块链系统上支持智能合约协议的方法实施例中构建Tangle节点智能合约的TEE工具链的原理图。
图6是本发明一种在Tangle区块链系统上支持智能合约协议的方法实施例中为智能合约添加指令计数器的原理图。
图7是本发明一种在Tangle区块链系统上支持智能合约协议的方法实施例中LibOS的基本原理图。
以下结合附图及实施例对本发明作进一步说明。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例的附图,对本发明实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于所描述的本发明的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的一种在Tangle区块链系统上支持智能合约协议的方法,包括以下步骤:
首先,执行步骤S1,创建Tangle节点,其中,Tangle节点包括Tangle代理、智能合约组件、交易组件。
其中,Tangle代理(TangleAgent)包括readTX模块10、writeTX模块9,用于从Tangle网络中进行交易读取(readTX)和交易写入(writeTX)。
其中,智能合约组件(Smart Contract Component)包含四个子模块:用于智能合约部署的deploySC模块、用于智能合约调用的invokeSC模块、用于智能合约启动的lauchSC模块、用于智能合约验证的verifySC模块。
其中,交易组件(Transaction Component)用于管理交易,其包含四个子模块:用于交易生成的generateTX模块5、用于交易验证的validateTrans模块6、用于账户余额查询的checkBalance模块7、用于交易地址生成的generateAddr模块8。
其中,本实施例的智能合约协议主要具有2个功能:智能合约部署与调用。如图1所示,这2个功能涉及智能合约组件的四个子模块:deploySC模块1、invokeSC模块2、lauchSC模块3以及verifySC模块4。
智能合约部署的过程如下:先调用deploySC模块1,这将获取智能合约SDK(即SCSDK,其包含函数链接库及编译工具)所创建的一个智能合约;然后,调用generateTX模块5生成一个智能合约部署交易;之后,调用validateTrans模块6验证通过readTX模块10下载的前序交易(从而完成智能合约部署的条件)并返回generateTX模块5;最后,通过、writeTX模块9将该智能合约部署交易发布至Tangle网络中。
智能合约调用的过程如下:首先,通过invokeSC模块2,调用verifySC模块4与lauchSC模块3中分别验证与执行前序智能合约(从而完成智能合约调用的条件),接着,获得验证与执行结果后,invokeSC模块2调用generateTX模块5生成一个智能合约调用交易,其后的操作同智能合约部署。其中,lauchSC模块3启动的智能合约在TEE中执行。
然后,执行步骤S2,在Tangle节点中创建智能合约的SDK。
其中,开发合约程序需要使用智能合约SDK。Tangle节点智能合约的SDK(即SCSDK)原型开发主要在于实现图5中Compilation阶段的Preprocess与Compile,以及Execution阶段的LibOS。
Preprocess:其主要功能是:为输入的智能合约源码添加用于生成SGXAttestation的代码,并对添加用于验证输入参数签名的代码。
Compile:其主要功能是:将源码档转译为汇编代码文件、扫描并统计各个基本代码块的指令数等。
LibOS:在TEE中运行智能合约需要LibOS,但由于LibOS体积太大,存放于Tangle上的智能合约并没有连结LibOS。本本实施例参考现有的TEE LibOS方案Haven,GrapheneSGX,SCONE和Occlum,采取两种添加LibOS的方案:(a)在LauchSC时连结LibOS,(b)在TEE中动态加载LibOS,来解决上述问题。
然后,执行步骤S3,在Tangle节点上支持智能合约的协议,其包括在Tangle节点上支持智能合约的数据结构;在Tangle节点上部署智能合约;基于等值交换机制执行智能合约;基于可信执行环境TEE验证智能合约。
可见,在Tangle上支持智能合约的协议。其主要包含:Tangle上智能合约的部署机制;基于等值交换的智能合约运行机制(即令合约调用者付出与之需求相若的工作量),该机制令智能合约的执行无需手续费,同时防止恶意合约程序;基于可信执行环境(Trustedexecution environment,TEE)的智能合约合规性验证机制,让合约结果的合规性由可信硬件签名的凭证作为担保。
在本实施例中,在不改变Tangle原有交易数据结构的前提下,在其上支持智能合约,有两个显著的特征:
1).在智能合约的部署及执行中,提出等值交换机制(即合约调用者付出与之需求相若的工作量)来防止智能合约的恶意部署及执行。
2).在智能合约的执行与验证中,基于Intel SGX(Software Guard Extensions,SGX)提供的可信执行环境(Trusted Execution Environment;for short,TEE)来保障执行的安全性与验证的合规性。其基本思想是:SGX在处理器上实现的TEE安全沙盒(即为运行中的程序提供隔离的环境,并严格控制其中的程序所能访问的资源),使得处于TEE之外的代码无法窥探或者修改沙盒内部的代码和数据,同时沙盒内部代码的执行也不会影响外部环境,并利用专门的外部接口用于支持与外部环境的数据交换。可以在TEE中部署智能合约程序,这些应用程序被称为Enclave程序,就是前面所提到的安全沙盒。部署在TEE中的Enclave程序可以被验证是否被准确初始化以及正确地执行。
在本实施例中,在Tangle节点上支持智能合约的数据结构包括:在原有账单交易的基础上,提出智能合约部署交易和智能合约调用交易,利用账单交易中的消息字段去承载智能合约信息,该信息为智能合约的二进制代码,其中,智能合约部署交易的消息字段包含有智能合约部署字段,智能合约调用交易的的消息字段包含有智能合约调用字段、前序智能合约验证字段、前序智能合约执行字段。
其中,智能合约调用字段用于调用已经部署的智能合约,前序智能合约验证字段用于存储前序智能合约的验证结果,前序智能合约执行字段用于存储前序智能合约的执行结果。
具体的,在Tangle原交易数据结构的基础上,本发明提出一种支持智能合约的数据结构,称Tangle原有交易为账单交易,并解释如下:
账单交易(ledger transaction;for short,LedgerTX)。如图2(1)所示,其数据结构由头部(Header)和消息(Message)构成。其中,头部字段包括Address,Value等字段,用于描述交易对象、交易金额等信息。消息字段记录账单交易明细。
为支持智能合约,本实施例定义两种新的交易,其利用账单交易中的消息字段去承载智能合约(即它的二进制代码)信息。
智能合约部署交易(SmartContract Deployment Transaction;for short,SCDeploy TX):如图2(2)所示,其数据结构和账单交易的数据结构一样,不同之处在于消息字段。该消息字段包含了智能合约部署字段(SC deployment)。
智能合约调用交易(SmartContract Invocation Transaction;for short,SCInvoke TX):如图2(3)所示,其数据结构和账单交易的数据结构一样,不同之处在于消息字段。这里的消息字段包含1).智能合约调用字段(SC invocation)、2).前序智能合约验证字段(Previous SC verification)、3).前序智能合约执行字段(Previous SC execution)。其中,智能合约调用字段调用已经部署的智能合约,前序智能合约验证字段存储前序智能合约的验证结果,前序智能合约执行字段存储前序智能合约的执行结果。
在本实施例中,在Tangle节点上部署智能合约包括:当在Tangle节点部署智能合约时,通过编译程序将该智能合约编译成二进制代码,利用共识机制PoW计算Nonce值,并验证前序账单交易;创建智能合约部署交易,所述智能合约部署交易头部字段包含所述Nonce值,其消息字段包含欲部署的智能合约二进制代码;将所述智能合约部署交易发布到Tangle节点上。
具体的,智能合约需要先部署到Tangle上方可被其它节点调用。如图3所示,智能合约的部署过程如下:当一个节点希望部署一个智能合约时,先通过本发明提供的编译程序,将该智能合约编译成二进制代码。然后他利用PoW(ProofofWork)计算一个符合要求的Nonce值,并验证两条前序账单交易。其次,创建一个智能合约部署交易,该交易头部字段包含该Nonce等,其消息字段包含欲部署的智能合约二进制代码(如图3中SC DeployTX 103中的SC 103等)。最后,将该交易发布到Tangle上(如图3中SC Deploy TX 103连结到所验证的LedgerTX99等)。当然,这里利用PoW计算Nonce用于防止节点恶意部署无用的智能合约。
在本实施例中,基于等值交换机制执行智能合约包括:当Tangle节点为调用智能合约SC104而发布一个新的智能合约调用交易时,需先帮助执行智能合约调用交易115中的智能合约SC103,其中,智能合约SC104和SC103在执行时所消耗的CPU指令数近似,其执行结果存储于前序智能合约执行字段;验证前序智能合约执行的结果,并将验证结果存储于前序智能合约验证字段;将该新的智能合约调用交易发布到Tangle节点上。
其中,当一个Tangle节点发现智能合约调用交易中存在错误信息时,通过调用FPC共识来仲裁。
具体的,为实现合约执行的公平性,并缓解恶意合约程序(如死循环)造成的破坏,本实施例提出了等值交换的机制。该机制借鉴了Tangle中交易发布者需验证前序交易之思想。在基于等值交换的智能合约执行中,当用户想要他人帮忙执行一个智能合约时,该节点也需帮助他人执行与之请求的合约复杂度相若的智能合约。如图3所示,当节点为调用智能合约SC104而发布一个新的智能合约调用交易(New SC Invoke TX)时,需先帮助执行SCInvoke TX 115中的智能合约SC103,其中SC104和SC103在执行时所消耗的CPU指令数近似,其执行结果存储于Previous SC execution字段;然后验证前序智能合约执行的结果,并将验证结果存储于Previous SC verification;在这之后,节点方可将该新交易发布到Tangle上。当然,智能合约需在TEE中运行以保障其执行过程的安全性。
当一个节点发现Tangle交易中存在错误信息时,他可调用FPC共识(FastProbabilistic Consensus)来仲裁。其基本思想是:与其他节点一起协作找出当前一个置信度较高的交易,后续的交易会优先链接到包含该交易的分支上,从而避免在包含错误交易的Tangle分支上继续执行和验证。
在本实施例中,基于可信执行环境TEE验证智能合约包括:采用Intel SGX的Remote Attestation框架对智能合约进行验证。
当Tangle节点A要验证Tangle节点B所执行的智能合约结果时,Tangle节点A会向Tangle节点B发起一个远程验证,并结合Tangle节点B的ID对该智能合约在可信执行环境TEE中生成的数字摘要进行验证,即可判断出Tangle节点B的智能合约是否被正确执行。
具体的,在智能合约协议中,当一个节点发布新的智能合约调用交易(如图3中的New SC Invoke TX)时,除了执行一个前序智能合约外,它还需要验证其它节点的智能合约执行结果的合规性(如图3中SC Invoke TX115中的Previous SC execution字段包含该执行结果及一个Attestation)。为此,该节点先得到此Attestation,然后向IntelAttestation service核实该Attestation,进而验证该智能合约执行结果的合规性。
为实现智能合约验证机制,采用Intel SGX的Remote Attestation框架,但是需要对其每一个步骤进行修改。
在该Remote Attestation框架下,当Verifier(如节点A)要验证Prover(如节点B)所执行的智能合约结果时,Verifier会向Prover发起一个Remote Attestation,并结合Prover的ID对该智能合约在TEE中生成的Quote(即摘要)进行验证,从而Verifier就知道该智能合约是否被正确执行。如图4所示,具体验证步骤如下:
1).Verifier的Challenger向Prover的Application(其为TEE环境之外的应用程序)发起一个Challenge,该Challenge包含待验证的智能合约的相关参数。
2).Application会向Application Enclave发送请求。
3).Application Enclave根据请求,先把对应程序的初始化日志以及数据生成一个数字摘要,然后调用EREPORT指令生成报告并返回给Application。
4).Application把该报告转发给Quoting Enclave。
5).Quoting Enclave先验证这个报告的真实性与完整性,然后用AttestationKey对其进行签名,生成一个Quote返回给Application。
6).Application把Quote和相关的数据发送给Verifier。
7).Verifier会利用Intel提供的Attestation Verification Service来对Quote进行认证。如果Quote认证成功,则说明该智能合约被正确执行。反之,Verifier调用FPC来进行仲裁,决定当前交易应该添加到哪个分支。
在步骤S2中,在Tangle节点中创建智能合约的SDK包括:基于可信执行环境TEE的构建智能合约函数链接库,通过引用函数链接库在Tangle节点上的地址以进行调用智能合约;运行智能合约时,将所需函数链接库下载至本地,即可令智能合约被正常执行;构建Tangle节点智能合约的TEE工具链,该TEE工具链包含有编译程序、验证器以及执行环境,其中,验证器用于对生成的智能合约程序进行验证,执行环境通过库操作系统LibOS向智能合约程序的可信应用提供完整的系统服务。
所述编译程序包括:在所有编译操作之前,为原始代码添加用于生成SGXAttestation的代码,并添加用于验证输入参数签名的代码;将源码文档转译为汇编代码文件、扫描并统计各个基本代码块的指令数;通过汇编器将汇编代码文件翻译成机器指令;通过链接器将一个或多个由编译程序或汇编器生成的目标文件外加库,连结为一个可执行文件。
具体的,Tangle节点的智能合约SDK向开发者提供了智能合约开发中所需的函数链接库、编译工具与执行环境,以下将详细介绍它们的设计思路与技术路线。需要说明的是,由于编译工具与执行环境的设计与实现极其复杂,上述内容的工作将基于众多开源项目,比如:LLVM,musl libc,ZYIDS等。
基于可信执行环境TEE的构建智能合约函数链接库包括:在智能合约开发的过程中,会有大量的功能(如:余额查询、转账)被反复使用,这些常用的功能如能被封装为函数链接库,则可被合约直接调用,减少开发者的重复工作,提高开发效率。此外,当这些函数是被动态链接时,则可减小智能合约程序的体积,降低Tangle的网络与存储负载。特别地,这些函数也应该在TEE中运行,并遵循本发明方案的要求。
其中,函数链接库可像普通智能合约一样被部署在Tangle上,其它智能合约透过引用函数链接库在Tangle上的地址以进行调用。运行合约时,执行者只需将所需函数链接库下载至本地,即可令合约被正常执行。此外,函数链接库可透过迭代升级来增加新的函数以及修复BUG,且任何人都可以开发新的函数。
具体的,本实施例提供一种智能合约编译工具与执行环境:根据本发明所提的Tangle智能合约方案,智能合约程序应满足以下几点要求:必须在TEE环境(如:SGX)中执行;必须能够对运行的指令进行准确地计数;必须能够对从外部获取的数据给出来源证明;必须能够在执行结束后生成由可信硬件签名的担保。
显然,这些要求如果全部由合约开发者来满足将对开发造成极大的难度,甚至带来安全问题,所以本实施例设计有Tangle智能合约的TEE工具链,以令由该工具输出的合约程序满足上述要求。如图5所示,图5展示了该工具链的工作流程,该工具链包含:编译程序(Compiler)、验证器(Validator)以及执行环境(Execution Environments)。
编译程序:与常见编译程序的编译过程类似,所设计的编译程序的主要工作流程为:
1).Preprocess:在所有编译操作之前,需要先为原始代码添加用于生成SGXAttestation的代码。此外,对于带有输入参数的公共函数,需要添加输入参数的签名验证,并将签名作为返回值,以保输入参数没有被篡改。之后,代码将接受常规的预处理操作。
2).Compile:程序被转译为汇编代码。为实现指令计数器,保留一个寄存器作为指令计数器,并在汇编代码的每个基本块(没有分支的线性代码序列)的开始处插入该基本块中的指令数。如图6所示,图6给出了指令计数器的一个示例,其中寄存器r15用于指令计数器,其在每个基本块开始处增加该基本块的指令数,比如:如果程序执行到第一个红色行,因为该行所处的代码块共有1条指令,则将r15寄存器的值自增1。
3).Assemble:汇编器将把汇编语言代码翻译成机器指令。
4).Link:链接器将一个或多个由编译程序或汇编器生成的目标文件外加库,连结为一个可执行文件(ELF)。
验证器:为了保证开发者所提供的合约是满足要求的,还需要设计一个验证器(Validator),以对生成的合约程序进行验证。只有经过Validator验证并签名的合约程序,最终才会被接受并执行。
验证器首先对合约程序进行反汇编,以验证合约是否满足上述的4个要求;然后,从反汇编的结果,得到作为程序非可信部分的指令集合,验证其中是否存在危险指令(比如:用于退出安全区的EEXIT、用于启用/禁用CPU某些功能的XRSTOR)。合约程序不会使用这些指令,因此禁止它们不会限制合约的功能;此后,验证器还会检查目标合约程序是否符合LibOS之要求(LibOS会在下一节进行说明);最后,如果目标合约能够通过检查,验证器会给该合约签名。
执行环境:为了令开发者无需特别针对TEE环境进行开发,使用LibOS(libraryoperating systems)技术,比如Haven,GrapheneSGX,SCONE,Occlum,其基本原理如图7所示。其中,Host OS及在其上运行的其它应用均是不可信的,而需要被保护的应用以及LibOS运行在TEE enclave中。LibOS向Enclave内的可信应用提供完整的系统服务,应用不需要分割和修改即可得到Enclave保护。Enclave Platform Adaption Layer负责调用SGXDrivers以初始化TEE Enclave。
因此,本发明面向Tangle的智能合约SDK设计。其主要包含:基于TEE的智能合约函数链接库,以减少智能合约开发过程中的重复工作;智能合约编译工具与运行环境,该工具能够将常规程序代码编译为符合本发明所提Tangle智能合约要求的程序,而无需开发人员特别学习智能合约与TEE环境下的应用开发技术。
在本发明中,基于Intel SGX的TEE环境,执行Tangle智能合约。然而为实现提出的基于等值交换的智慧合约机制,需要对原TEE编译工具进行修改。比如,使该工具能够在执行智能合约程序中加入其执行所需的指令数。在本发明中,基于Intel SGX的TEE环境,执行Tangle智能合约。然而为实现提出的基于等值交换的智慧合约机制,需要对原TEE编译工具进行修改。比如,使该工具能够在执行智能合约程序中加入其执行所需的指令数。
由此可见,本发明公开一种在第三代图结构区块链(Tangle)上支持智能合约的方法,该方法在继承第三代区块链高扩展性、无手续费等优点之基础上,扩展了第三代图结构区块链对于智能合约的支持。该方法包含第三代区块链上智能合约的部署、调用、执行、验证机制,以及面向开发者的合约开发函数链接库、编译工具以及运行环境。在智能合约的部署及执行中,使用等值交换机制(即合约调用者付出与之需求相若的工作量)来防止智能合约的恶意部署及执行;在智能合约的执行与验证中,基于可信执行环境来保障执行的安全性与可验证性;所提供的合约开发函数链接库、编译工具以及运行环境在编译阶段为代码添加指令计数器,以用于等值交换中工作量的度量;此外,该工具能够将常规程序代码编译为符合本发明所提Tangle智能合约要求的程序,方便开发者。
进一步的,本发明基于等值交换(而非激励)的智能合约调用与运行机制。该机制利用Tangle交易发布者需验证前序交易之思想,令合约调用者付出与之需求相若的工作量,达到在无需手续费的前提下,用户间互助的运行智能合约,同时保证了合约调用与运行的公平性和安全性。
进一步的,在本发明中,被调用的智能合约无需重复执行也能保证合规性。在本项目所提方案中,所有智能合约被要求在TEE中执行,合约结果的合规性由可信硬件签名的凭证作为担保。
进一步的,本发明提供面向等值交换的智能合约TEE编译工具。该工具在编译阶段为代码添加指令计数器,以用于等值交换中工作量的度量;此外,该工具能够将常规程序代码编译为符合本发明所提Tangle智能合约要求的程序,而无需开发人员特别学习智能合约与TEE环境下的应用开发技术,即可快速上手开发能够在Tangle上运行的合约,利于所提方案之推广与普及。
需要说明的是,以上仅为本发明的优选实施例,但发明的设计构思并不局限于此,凡利用此构思对本发明做出的非实质性修改,也均落入本发明的保护范围之内。
Claims (7)
1.一种在Tangle区块链系统上支持智能合约协议的方法,其特征在于,包括:
创建Tangle节点,其中,Tangle节点包括Tangle代理、智能合约组件、交易组件;
在Tangle节点中创建智能合约的SDK;
在Tangle节点上支持智能合约的协议,其包括:
在Tangle节点上支持智能合约的数据结构,包括在原有账单交易的基础上,提出智能合约部署交易和智能合约调用交易,利用账单交易中的消息字段去承载智能合约信息,该信息为智能合约的二进制代码,其中,智能合约部署交易的消息字段包含有智能合约部署字段,智能合约调用交易的的消息字段包含有智能合约调用字段、前序智能合约验证字段、前序智能合约执行字段;
在Tangle节点上部署智能合约,包括:当在Tangle节点部署智能合约时,通过编译程序将该智能合约编译成二进制代码,利用共识机制PoW计算Nonce值,并验证前序账单交易;创建智能合约部署交易,所述智能合约部署交易头部字段包含所述Nonce值,其消息字段包含欲部署的智能合约二进制代码;将所述智能合约部署交易发布到Tangle节点上;
基于等值交换机制执行智能合约,包括:当Tangle节点为调用智能合约SC104而发布一个新的智能合约调用交易时,需先帮助执行智能合约调用交易115中的智能合约SC103,其中,智能合约SC104和SC103在执行时所消耗的CPU指令数近似,其执行结果存储于前序智能合约执行字段;验证前序智能合约执行的结果,并将验证结果存储于前序智能合约验证字段;将该新的智能合约调用交易发布到Tangle节点上;
基于可信执行环境TEE验证智能合约。
2.根据权利要求1所述的方法,其特征在于:
智能合约调用字段用于调用已经部署的智能合约,前序智能合约验证字段用于存储前序智能合约的验证结果,前序智能合约执行字段用于存储前序智能合约的执行结果。
3.根据权利要求1所述的方法,其特征在于:
当一个Tangle节点发现智能合约调用交易中存在错误信息时,通过调用FPC共识来仲裁。
4.根据权利要求1所述的方法,其特征在于:
基于可信执行环境TEE验证智能合约包括:采用Intel SGX 的Remote Attestation框架对智能合约进行验证。
5.根据权利要求4所述的方法,其特征在于:
当Tangle节点A要验证Tangle节点B所执行的智能合约结果时,Tangle节点A会向Tangle节点B发起一个远程验证,并结合Tangle节点B的ID对该智能合约在可信执行环境TEE中生成的数字摘要进行验证,即可判断出Tangle节点B的智能合约是否被正确执行。
6.根据权利要求1至5任一项所述的方法,其特征在于:
在Tangle节点中创建智能合约的SDK包括:
基于可信执行环境TEE的构建智能合约函数链接库,通过引用函数链接库在Tangle节点上的地址以进行调用智能合约;运行智能合约时,将所需函数链接库下载至本地,即可令智能合约被正常执行;
构建Tangle节点智能合约的TEE工具链,该TEE工具链包含有编译程序、验证器以及执行环境,其中,验证器用于对生成的智能合约程序进行验证,执行环境通过库操作系统LibOS向智能合约程序的可信应用提供完整的系统服务。
7.根据权利要求6所述的方法,其特征在于:
所述编译程序包括:
在所有编译操作之前,为原始代码添加用于生成SGX Attestation的代码,并添加用于验证输入参数签名的代码;
将源码文档转译为汇编代码文件、扫描并统计各个基本代码块的指令数;
通过汇编器将汇编代码文件翻译成机器指令;
通过链接器将一个或多个由编译程序或汇编器生成的目标文件外加库,连结为一个可执行文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110635777.5A CN113419736B (zh) | 2021-06-08 | 2021-06-08 | 一种在Tangle区块链系统上支持智能合约协议的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110635777.5A CN113419736B (zh) | 2021-06-08 | 2021-06-08 | 一种在Tangle区块链系统上支持智能合约协议的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113419736A CN113419736A (zh) | 2021-09-21 |
CN113419736B true CN113419736B (zh) | 2023-08-25 |
Family
ID=77788021
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110635777.5A Active CN113419736B (zh) | 2021-06-08 | 2021-06-08 | 一种在Tangle区块链系统上支持智能合约协议的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113419736B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114726583B (zh) * | 2022-03-14 | 2023-10-20 | 湖南天河国云科技有限公司 | 基于区块链分布式标识的可信硬件跨链交易隐私保护系统及方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3462313A1 (de) * | 2017-09-27 | 2019-04-03 | Siemens Aktiengesellschaft | Verfahren und verteiltes datenbanksystem zum rechnergestützten ausführen eines programmcodes |
CN111445328A (zh) * | 2020-03-16 | 2020-07-24 | 西安交通大学 | 一种跨链网关交互系统和方法以及供应链数据管理方法 |
CN111930833A (zh) * | 2020-07-07 | 2020-11-13 | 杭州云象网络技术有限公司 | 一种信贷资产区块链构建方法及系统 |
CN111949672A (zh) * | 2020-07-30 | 2020-11-17 | 杭州电子科技大学 | 一种支持物联网数据增量更新的区块链存储方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11057366B2 (en) * | 2018-08-21 | 2021-07-06 | HYPR Corp. | Federated identity management with decentralized computing platforms |
-
2021
- 2021-06-08 CN CN202110635777.5A patent/CN113419736B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3462313A1 (de) * | 2017-09-27 | 2019-04-03 | Siemens Aktiengesellschaft | Verfahren und verteiltes datenbanksystem zum rechnergestützten ausführen eines programmcodes |
CN111445328A (zh) * | 2020-03-16 | 2020-07-24 | 西安交通大学 | 一种跨链网关交互系统和方法以及供应链数据管理方法 |
CN111930833A (zh) * | 2020-07-07 | 2020-11-13 | 杭州云象网络技术有限公司 | 一种信贷资产区块链构建方法及系统 |
CN111949672A (zh) * | 2020-07-30 | 2020-11-17 | 杭州电子科技大学 | 一种支持物联网数据增量更新的区块链存储方法 |
Non-Patent Citations (1)
Title |
---|
"基于分布式账本的存证系统研究与实现";陈炯舒;《中国优秀硕士学位论文全文数据库(社会科学Ⅰ辑)》;第G120-235页 * |
Also Published As
Publication number | Publication date |
---|---|
CN113419736A (zh) | 2021-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Seijas et al. | Scripting smart contracts for distributed ledger technology | |
Samreen et al. | Reentrancy vulnerability identification in ethereum smart contracts | |
Alkhalifah et al. | A taxonomy of blockchain threats and vulnerabilities | |
CN109003185B (zh) | 一种智能合约的建立方法、装置、计算设备及存储介质 | |
Teslya et al. | Blockchain platforms overview for industrial IoT purposes | |
US11443307B2 (en) | Cross-border resource transfer authenticity verification method, device and electronic equipment | |
CN109347651B (zh) | 基于msvl的区块链系统建模和安全性验证的方法及系统 | |
US20230245080A1 (en) | Convergent Consensus Method for Distributed Ledger Transaction Processing | |
KR101878870B1 (ko) | 블록체인 기반의 사용자 식별 관리 및 토큰 발행 관리를 위한 분산 원장 장치 및 분산 원장 방법 | |
CN111738724B (zh) | 跨境资源转移真实性审核方法及装置、电子设备 | |
Cui et al. | VRust: Automated vulnerability detection for solana smart contracts | |
Qin et al. | The blockchain imitation game | |
Knecht | Mandala: a smart contract programming language | |
CN113419736B (zh) | 一种在Tangle区块链系统上支持智能合约协议的方法 | |
Cao et al. | A survey on security in consensus and smart contracts | |
Hao | Research of the 51% attack based on blockchain | |
Franzoni | Blockchain and smart contracts in the Fashion industry | |
Singh et al. | Account abstraction via singleton entrypoint contract and verifying paymaster | |
Yi et al. | Bitcoin, Ethereum, Smart Contracts and Blockchain Types | |
Tripković et al. | Using ethereum smart contracts for payment´ transactions | |
Cai et al. | Advanced Blockchain Technology: Frameworks and Enterprise-Level Practices | |
Zhu et al. | Blockchain-based software architecture development for service requirements with smart contracts | |
Su | Lifecycle optimization of smart contract for flexibility | |
Wüst et al. | Bitcontracts: Adding Expressive Smart Contracts to Legacy Cryptocurrencies. | |
Baby et al. | A review analysis on smart contract vulnerabilities using blockchain |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |