掌桥专利:专业的专利平台
掌桥专利
首页

基于智能合约和可信计算技术的新型跨链系统

文献发布时间:2023-06-19 13:46:35


基于智能合约和可信计算技术的新型跨链系统

技术领域

本发明属于信息安全中的密码学领域,更具体的说是涉及一种基于智能合约和可信计算技术的新型跨链系统。

背景技术

自从2008年中本聪提出比特币以来,区块链的概念就吸引了全世界的关注。区块链作为一种开放的分类账本系统,有效地结合了密码学和分布式共识机制,保证了数据的透明性和防篡改性。由于区块链系统本身的优良特性,它被认为是数字货币的核心技术。到目前为止,区块链已经支持了数千个数字货币项目,排名前100位的数字货币价值已经超过了1万亿美元。此外,区块链技术还广泛应用于许多领域,如物联网,文件存储,以及数字版权管理(DRM)。

然而,由于区块链技术的不成熟阶段,仍然存在一些未解决的问题。在区块链面临的问题中,区块链之间的互操作性极大地限制了区块链的应用空间。目前,代币只能在其固有的区块链上转移,在这种情况下,所有区块链都是相互隔离的,很难在不同的区块链系统之间自由转移或交换资产。无论是公共链还是私人链,跨链技术都是实现价值互联、拯救区块链免于孤岛的关键。此外,它还是区块链扩张和连接的桥梁。

许多加密货币交换平台已经被建造作为不同区块链之间货币交换的代理。由于缺乏透明度,集中化的交易平台可能会迫使代币的价格被交易,并从差价中获利,这与区块链的本质背道而驰。更严重的是,这种集中交易模式脆弱不堪:2012年,比特币连续遭受三次黑客攻击,损失超过10万个比特币,在没有支付用户费用的情况下关闭。2015年,全球第三大比特币交易平台比特币的热门钱包遭到黑客攻击,损失1.9万枚比特币,价值约540万美元。此后,平台停止服务,关闭所有交易。2019年,加拿大最大的加密货币交易平台QuadrigaCX 损失了价值近2亿美元的加密货币。原因是唯一知道冷钱包密码的人意外死亡。

许多跨链技术也在迅速发展,以满足安全整合孤立的区块链岛的要求。现有的跨链方法从技术实现上具体分为以下四种方式:公证方案、侧链、哈希锁定、分布式私钥控制。公证方案类似于结合了密码学的中间人模型。两个交易参与者都需要完全信任第三方,这会削弱其安全性。在侧链方案中,用户需要使用相应的简化支付验证(SPV)证明来验证其他链上的交易,导致主链的软叉,从而不方便支持大量链的跨链交换。哈希锁技术的思想是在一定时间内创建一个小额支付渠道锁定存款,该技术已应用于闪电网络。它使恶意用户能够频繁请求交易,但拒绝兑现,导致一些令牌被长时间锁定。在分布式密钥控制方案,多个验证者基于安全多方计算和阈值签名技术实现货币交换,其中万链是代表性系统之一。在万链中,凭证是高风险的节点。只有当多个凭证节点同意一个跨链事务时,该事务才会被识别,从而导致系统吞吐量低和分布式特性差。 Tesseract是一个利用SGX可信执行环境的系统。然而,该项目所有客户的交易账户都由SGX管理,这是有风险的。为了设计一个更加分布式和兼容的跨链方案,李等[12]提出了一种新的结合边链和多重签名的结构。但是,他们的解决方案处于概念设计阶段,实施效果不佳,难以满足实际部署的需要。

发明内容

针对现有技术存在的不足,本发明的目的在于提供一种基于智能合约和可信计算技术的新型跨链系统实用代理链。在智能合约和可信计算技术的支持下,该系统支持不同区块链系统之间以更低的时间和成本进行公平的资产交换,有效的解决了不同区块链系统之间交换资产的难题。

为实现上述目的,本发明提供了如下技术方案:一种基于智能合约和可信计算技术的新型跨链系统,包括:

系统设置模块,用于部署令牌合约和DO系统;

TOG设置模块,用于建立一个TOG,其中,TOG中的任何TO都可将其TOG的参数传递给代理合约,同时每个TO单独向代理合约支付一定数量的服务保证金,判断存款总额和TOs数量是否符合TOG的预设参数,若是,则TOG将生效并接收唯一的组id,否则,TOG无效;

令牌生成模块,用于将一定量的存款转移到有效的TOG存款池,并将该交易记录和一定量的服务费放入代理合约,之后代理合约将利用DO从一个负责任的网站获取交易记录并验证,并验证通过后,代理合约通过调用EC令牌合约,在实用代理链上自动为客户生成相同数量的EC令牌;

令牌交换模块,用于利用客户在EC上的原始密钥对

令牌撤回模块,用于支持客户撤回其在实用代理链上的令牌。

作为本发明的进一步改进,所述系统设置模块部署令牌合约和DO系统的具体步骤如下:

步骤1:首先声明该系统支持所有ECs使用的签名算法,并且EC必须支持多个签名地址,实用代理链系统在开始时将一个值初始化为有效多重签名的阈值比例,然后部署令牌合约和DO系统;

步骤2:部署令牌合约,为客户端管理令牌,每个令牌合约负责一种类型的EC 令牌;

步骤3:部署DO系统,实现基于TC架构系统的数据仓库系统DO,首先一个应用程序触发TC合约内的请求,然后,Relay将来自TC合约的消息传递到Enclave,Relay查询的外部数据源的流量,接下来,Relay将来自Enclave的响应转发给TC合约,最后,TC Contract根据请求中的参数callbackFID调用合适的响应函数,将结果传递给应用程序约定;

步骤4:在所有令牌合约中部署和注册代理合约,以确保只有代理合约可以在这些令牌合约中调用generate()和withDraw();

其中,步骤1中所述的ECs是现有链Existing Chain,步骤2中所述的函数generate() 的输入包括接收者的地址和表示令牌数量的值,withDraw()的参数包含客户端的地址和客户端想要提取的令牌数,步骤3中所述的基于Town crier(TC)架构系统的数据仓库系统DO中,TC有三个组件:TC合约、Enclave和Relay,TC合约是与代理合约直接互动的重要组成部分。

作为本发明的进一步改进,所述TOG设置模块,用于建立一个TOG的具体步骤如下:

步骤5,将希望注册一个新的TOG的n个TO作为特定EC上的客户服务对象,将这些服务对象相互通信,收集实际代理链上的收件人地址列表addlist、他们的公钥列表

步骤6,TOs中的一个TO用这些参数触发TOGsetup(),以获取这个新TOG的组号groupnum,TOG中的每个TO调用TOGvaild()来分别转移存款,当每个TO 都已经转移了存款,并且TOs的存款总额等于他们以前要求的存款时,组号 groupnum生效,且TOG正式提供代理服务;

其中,步骤5和步骤6所述的英文缩写中,TOs是指trading operators,TOG是指trading group。

作为本发明的进一步改进,所述令牌生成模块生成令牌的具体步骤如下:

步骤7,选择一个具有高信誉的TOG,并将ECdeposit'转移到TOG的ECdepositpool;然后客户端用函数askForToken()提出自己的需求,函数 AskForToken()会自动在DO内触发request();

步骤8,DO系统在确定R的发起者确实是客户的EC地址后,驱动DO系统从外部 EC网站获取数据,并将解析结果(R中的真实交易费用)放入带有transferToken() 的代理合约中,如果来自DO的数据与客户端的参数一致,则代理合约通过在令牌合约中触发generate()来为实用代理链中的客户端的EC令牌帐户生成值为 ECdeposit'的EC令牌。

作为本发明的进一步改进,所述令牌交换模块进行交换令牌的具体步骤如下:步骤9,客户A向名为Relayer的EM公开发布一个订单,其中包括TokenECA 的金额、根据参考利率计算的TokenECB的金额及其与

步骤10,客户B将用

作为本发明的进一步改进,所述令牌撤回模块撤回令牌的具体步骤如下:

步骤11,客户利用askForthdraw()请求TOG撤回其价值subtoken的令牌,请求后,代理合约通过触发相关令牌合约中的withDraw()来收回客户的令牌,然后这个客户请求的TOG用有效的R’把subtoken从它的ECdepositpool转移到客户在EC上的地址,并且用proof()上传R’;

步骤12,在确定R’中参与者的身份是正确的之后,DO解析并返回“R″中的实际交易金额subfee',通过比较,代理合约使用judge()给出了一个公正的判决,如果TOG拒绝将资产从其存款池转移给要求提款甚至超过Tproof的客户,客户有权调用arbitration()以惩罚TOG;

其中,R’为多重签名。

本发明的有益效果,本系统充分考虑了系统的安全性和实用性,并给出了合理的设计和实现。总之,本系统有以下四个特点:

兼容性好。只要区块链支持多签名技术,区块链的客户就可以将自己的资产映射到实用代理链上相应类型的令牌。这样客户端就可以按照公平交换协议方便地交换令牌。

相当大的灵活性。贸易经营者可以自发组成一个贸易集团,为客户提供加密货币兑换服务。与此同时,客户可以根据集团的存款和集团成员的声誉,自由选择合适的交易集团来获得服务。

高可靠性。依托智能合约技术,本发明建立了一个可问责的信誉系统和分布式仲裁机制,使系统能够可靠运行,抵御多种攻击(如重放事务攻击和拒绝服务攻击)。

实用性强。本系统利用Town crier作为数据仓库,并对其进行自适应修改,以实现链外状态传输。此外,还设计了交易组的解散策略和具体的奖惩方案。最后,在以太网测试链上完成了实际的部署和测试。测试结果表明,该系统具有实用价值。

与公证方案相比,本系统方案依赖于使用多重签名技术的组,保证了少量恶意团队成员不能随机消费其存款池中的资产,实现了更好的分布式性能。与侧链不同,本系统方案不需要特殊目的载体,减少了贸易运营商的存储负担。整个交易过程对所有参与者都是透明的。在哈希锁定方法中,恶意客户可以频繁请求交易,但拒绝兑现,导致另一方的存款被长时间锁定。虽然本系统解决方案实际上是一种代理服务的公共模式,但只要交易集团拥有较高的声誉和足够的存款,它就有机会直观地与潜在客户达成交易。此外,基于可信硬件架构,实用代理链比分布式私钥控制更有效。

附图说明

图1为实用代理链系统的体系结构;

图2为Town crier系统的体系架构;

图3为实用代理链系统的具体流程;

图4为本发明所述系统方案的流程框图。

具体实施方式

下面将结合附图所给出的实施例对本发明做进一步的详述。

首先说明书提及实用代理链系统相关基础概念做进一步解释

(1)实用代理链

实用代理链是支持智能合约的区块链系统,是整个系统的关键实体。它包括五个实体:交易运营商(TO)、交易运营商集团(TOG)、客户、智能合约和用户。 T0是想提供代币兑换服务并通过代币兑换获得报酬的组织或个人;TOG是多个 TOs的组,是声明令牌交换服务的最小单元。假设TOG中的所有T

(2)现有链(Existing Chain EC)

ECs是支持多重签名的现有区块链系统,如比特币、以太网等。如果用户A 想与用户B在不同的EC上交换资产,他们必须在代理链上注册为客户。特别是,代理链应该支持所有ECs使用的签名算法。

(3)区块链的结构(Data Oracle DO)

DO是一个数据馈送系统,可以将外部数据源(比如Https网站)的内容以可问责的方式发送给代理链AgentChain。图1显示了由三个部分组成的实用代理链系统的体系结构

参照图1至4所示,本实施例的一种基于智能合约和可信计算技术的新型跨链系统实用代理链,该系统由初系统设置模块、TOG设置模块、令牌生成模块、令牌交换模块和令牌撤回模块该五个模块实现,如图4所示。该方案的具体实现步骤如下:

模块一:系统设置模块具体由四个步骤实现:

步骤1:首先声明该系统支持所有ECs使用的签名算法,并且EC必须支持多个签名地址。实用代理链系统在开始时将一个值初始化为有效多重签名的阈值比例,然后部署令牌合约和DO系统。

步骤2:部署令牌合约,为客户端管理令牌,每个令牌合约负责一种类型的 EC令牌。为了满足系统要求,本发明的令牌合约在ERC20标准的基础上进行了部分修改:首先,本系统表示了一个名为generate()的新函数,该函数被触发以从TOG的存款中扣除一定数量的存款,从而为客户生成相同数量的代币。 generate()的输入包括接收者的地址和表示令牌数量的值。其次,本系统添加了一个函数withDraw(),根据客户的需要提取一定数量的令牌,并将相同数量的存款添加到TOG的存款中。withDraw()的参数包含客户端的地址和客户端想要提取的令牌数。第三,为了确保只有代理合约允许调用令牌合约中的上述功能,本系统要求代理合约的地址必须在所有令牌合约中注册,并且这些功能应该在执行之前确定消息是否来自代理合约。

步骤3:部署D0系统,实现基于Town crier(TC)架构系统的数据仓库系统(D0)(见图2)。TC有三个组件:TC合约(它接受来自代理合约的数据流请求,并从TC返回相应的结果)、Enclave(它存储用于抓取和解析外部数据源的TC 代码)和Relay(它代表Enclave负责数据流获取和转发)。TC合约是与代理合约直接互动的重要组成部分。首先一个应用程序(系统中的代理合约)触发TC合约内的请求。然后,Relay将来自TC合约的消息传递到Enclave,并Relay查询来自Enclave的外部数据源的流量。接下来,中继将来自Relay的响应转发给TC合约。最后,TC Contract根据请求中的参数callbackFID调用合适的响应函数,将结果传递给应用程序约定。

步骤4:在所有令牌合约中部署和注册代理合约,以确保只有代理合约可以在这些令牌合约中调用generate()和withDraw()。经过上述过程,实用代理链系统能够提供服务。

模块二:TOG设置模块具体由两个步骤实现:

步骤5:n个TO希望注册一个新的TOG,为特定EC上的客户服务。这些服务对象将相互通信,以收集实际代理链上的收件人地址列表addlist、他们的公钥列表

步骤6:TOs中的一个TO用这些参数触发TOGsetup(),以获取这个新TOG 的组号groupnum,该组号仍然无效。为了使该TOG有效,TOG中的每个TO都必须调用TOGvaild()来分别转移存款。只有当每个TO都已经转移了存款,并且 TOs的存款总额等于他们以前要求的存款时,TOG才能正式提供代理服务。

模块三:令牌生成模块

步骤7:当客户打算将其在EC中的原始资产映射到实际代理链上的ERC20 令牌时,它选择一个具有高信誉的TOG,并将ECdeposit’转移到TOG的 ECdepositpool(将此交易表示为R)。然后客户端用函数askForToken()提出自己的需求,函数AskForToken()会自动在DO内触发request()。

步骤8:DO系统在确定R的发起者确实是客户的EC地址后,驱动DO系统从外部EC网站获取数据,并将解析结果(R中的真实交易费用)放入带有 transferToken()的代理合约中。如果来自DO的数据与客户端的参数一致,则代理合约通过在令牌合约中触发generate()来为实用代理链中的客户端的EC令牌帐户生成值为ECdeposit’的EC令牌。为了确保客户身份的一致性,要求客户在本系统上的EC令牌帐户与其在EC上的帐户地址相关联。像比特币Cash中的CashAddr一样,可以选择特定的地址映射规则,并在映射结果的头部添加一个标识符,以区分令牌账户的类型。在不考虑汇率的情况下,ECs上的资产被同等地映射到和实用代理链上的令牌。

模块四:令牌交换模块

在将资产映射到实用代理链后,客户可以利用他们在EC上的原始密钥对

步骤9:客户A希望用0x协议将令牌TokenECA交换到TokenECB,它将向名为Relayer的EM公开发布一个订单,其中包括TokenECA的金额、根据参考利率计算的TokenECB的金额及其与

步骤10:客户B将TokenECB换成TokenECA,B将用

模块五:令牌撤回模块

步骤11:客户想要撤回其在实际代理链上的令牌时,它利用askForthdraw() 请求TOG撤回其价值subtoken的令牌。请求后,代理合约通过触发相关令牌合约中的withDraw()来收回客户的令牌。然后这个客户请求的TOG应该用有效的多重签名(把这个事务表示为R’)把subtoken从它的ECdepositpool转移到客户在EC上的地址,并且用proof()上传R’。

步骤12:在确定R’中参与者的身份是正确的之后,DO解析并返回“R”中的实际交易金额subfee’。通过比较,代理合约使用judge()给出了一个公正的判决。如果TOG拒绝将资产从其存款池转移给要求提款甚至超过Tproof的客户,客户有权调用arbitration()以惩罚TOG。

综上所述,本发明提出了一种基于智能合约和可信计算技术的新型跨链系统称为实用代理链。本方案系统中的各种交易币可以映射到实际代理链上的相应令牌进行交易,前提是它们的区块链支持多重签名。一些交易运营商自发地在现有的区块链上使用多签名技术形成一个服务存款池,并使用精心设计的称为代理合约的智能合约注册一个交易组以获取利润。所有交易集团都以竞争的方式提供跨链交易服务。有兑换货币要求的客户可以根据代理合约中记录的集团存款和集团成员的信誉,自由选择适当的交易集团来请求服务(将资产映射到令牌或提取令牌)。该系统还结合了Town crier作为获取跨链交易状态的可靠 Oracle数据系统,并结合了匹配的交换协议,以确保链上令牌交换的公平性。

以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

技术分类

06120113804878