CN111652618A - 一种去中心化的不可链接的跨链原子交易方法 - Google Patents
一种去中心化的不可链接的跨链原子交易方法 Download PDFInfo
- Publication number
- CN111652618A CN111652618A CN202010672839.5A CN202010672839A CN111652618A CN 111652618 A CN111652618 A CN 111652618A CN 202010672839 A CN202010672839 A CN 202010672839A CN 111652618 A CN111652618 A CN 111652618A
- Authority
- CN
- China
- Prior art keywords
- module
- transaction
- hash
- contract
- time locking
- 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.)
- Granted
Links
Images
Classifications
-
- 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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
-
- 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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3825—Use of electronic signatures
-
- 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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3827—Use of message hashing
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Computer Security & Cryptography (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明公开了一种去中心化的不可链接的跨链原子交易方法,技术方案是构建由交易初始化模块、发起交易模块、响应交易模块、哈希时间锁定合约模块、金额获取模块组成的隐私安全***;交易初始化模块构造具有加法哈希同态性的哈希函数,发送方的发起交易模块发起交易;接收方的响应交易模块响应交易;发送方的发起交易模块、接收方的哈希时间锁定合约模块和金额获取模块相互配合解锁合约,使发送方获得锁定金额;接收方的响应交易模块、发送方的哈希时间锁定合约模块和金额获取模块相互配合解锁合约,接收方获得锁定金额。本发明实现了去中心化的不可链接的跨链原子交易,使得无法根据哈希值追踪到交易参与者,保护了跨链交易的安全性。
Description
技术领域
本发明涉及跨链技术领域的提高交易安全性的方法,尤其是一种去中心化的基于哈希时间锁定技术的跨链原子交易方法。
背景技术
区块链是一种由多方共同维护,使用密码学保证传输和访问安全,能够实现数据一致存储、难以篡改、防止抵赖的分布式账本技术。自从比特币被提出以来,成百上千的区块链项目涌现在公众的眼前,应用于医疗健康、金融贸易、资产管理等领域,但带来了不同区块链之间互通性的问题。目前,区块链之间的互通性极大程度地限制了区块链的应用空间。不论对于公有链还是私有链,跨链技术是实现价值互联网的关键,它是把区块链从分散的孤岛中拯救出来的良药,是区块链向外拓展和连接的桥梁,有利于实现价值互联网。现有主流的跨链技术包括公证人机制、侧链/中继、哈希时间锁定和分布式私钥控制。仅针对跨链资产交易而言,其中公证人机制存在中心化的风险;侧链无法完成两个不同架构区块链的跨链操作,仅适用于侧链和主链的跨链交易;中继技术需要额外搭建一条中继链,不仅浪费资源并且用户需要承担该链恶意行为的风险;分布式私钥控制技术需要底层区块链的智能合约语言图灵完备,场景有限;哈希时间锁定技术中双方可自行完成,无需第三方参与,具有简单高效的优点。
区块链起源于中本聪在2008年提出的比特币***,本质上是一个不依赖第三方的数据库。是指通过去中心化和去信任的方式集体维护一个可靠数据库的技术方案。区块链有着去中心、公开性、匿名性和不可篡改等特点。区块链中的每一笔交易都要经过***中大多数参与者的一致同意才能进行确认入账。一旦输入,信息就永远不会被删除。
哈希时间锁定技术最早源于2013年BitcoinTalk论坛里的一场讨论,Tier Nolan提出了原子交换思路,实现跨链交易的原子性,经过改进技术方案后被称为哈希锁定方法,而技术的落地与2016年比特币的闪电网络有关联。闪电网络(Lighting Network)是JosephPoon和Thaddeus Dryja发布的***《比特币闪电网络:可扩展的链外即时付款》中提出的,本质上是运用哈希时间锁定智能合约(Hashed Time Lock Contract)来安全地处理“0确认”交易的一种机制,通过巧妙设置“智能合约”,用户可以在闪电网络上进行未确认的交易。哈希时间锁定技术是一种可对不同区块链项目之间进行货币交易、互换的技术。在传统的交易所进行不同货币的交易,交易者需要先把自己的货币提前抵押给交易所,这带来了一定的交易风险,并且交易所需要收取高额的手续费。而在哈希时间锁定技术中,只需要发送者和接收者双方进行交易即可,期间不需要任何交易所平台,保证了交易的原子性,交易要么成功即双方成功进行资产交易,要么失败即双方未获取对方的资产也没损失自身的钱。概括来说就是通过资产锁定并设置相应的时间和解锁条件来实现公平交易。
椭圆曲线密码学(Elliptic curve cryptography)是一种基于椭圆曲线数学建立的公开密钥加密的算法。椭圆曲线在密码学中的使用是在1985年由NealKoblitz和VictorMiller分别独立提出的。椭圆曲线密码学有很多不同形式,但所有形式都依赖于解决椭圆曲线离散对数问题的困难性上。椭圆曲线密码学提供比RSA加密算法更小的密钥和等级更高的安全,一般认为160比特的椭圆曲线密钥提供的安全强度与1024比特RSA密钥相当。
哈希锁定方法虽然可以实现去中心化的跨链原子资产交易,但由于交易双方使用相同的哈希值,可被恶意节点通过该哈希值连接用户在不同区块链上的地址,追踪跨链资金的来源和去向,无法保证跨链交易的隐私,泄露了参与者的资金流向,从而导致用户个人财产信息受到侵害,使得跨链交易的安全性受到威胁。如何解决跨链领域的隐私安全保护问题是本领域技术人员极为关注的技术问题。
发明内容
本发明要解决的技术问题是:提出一种去中心化的不可链接的跨链原子交易方法,实现在不失原子性和去中心化的前提下,跨链资产交易不被任何恶意节点链接,保护跨链交易参与者的隐私,以保护交易的安全性。
本发明主要思想是使用椭圆曲线构造一个特殊的哈希函数,该函数具有加法哈希同态性,即如果c=a+b,则H(c)=H(a)+H(b)。使用此性质实现在用户双方锁定不同哈希值的情况下,无法根据哈希值追踪到发送方和接收方,确保交易的原子性,并解决交易双方的匿名性,保证交易的安全。
本发明包括以下步骤:
第一步,构建隐私安全***。隐私安全***由交易初始化模块、发起交易模块、响应交易模块、哈希时间锁定合约模块、金额获取模块这五个功能模块组成。该隐私安全***部署在参与交易的双方(即发送方和接收方)所处的不同的区块链上。假设发送方所在的链为Block1,接收方所在的链为Block2。为了描述方便,令Block1上部署的交易初始化模块、发起交易模块、响应交易模块、哈希时间锁定合约模块、金额获取模块为第一交易初始化模块、第一发起交易模块、第一响应交易模块、第一哈希时间锁定合约模块、第一金额获取模块;令Block2上部署的交易初始化模块、发起交易模块、响应交易模块、哈希时间锁定合约模块、金额获取模块为第二交易初始化模块、第二发起交易模块、第二响应交易模块、第二哈希时间锁定合约模块、第二金额获取模块。
第一交易初始化模块与第一发起交易模块相连。第一交易初始化模块生成哈希函数为H(x),并将哈希函数H(x)发送给第一发起交易模块。
第二交易初始化模块与第二响应交易模块相连。第二交易初始化模块生成哈希函数为H(x),并将哈希函数H(x)发送给第二响应交易模块。
第一发起交易模块与第一交易初始化模块、第二响应交易模块、第一哈希时间锁定合约模块、第二哈希时间锁定合约模块相连。第一发起交易模块随机选取三个正整数,令为a,b,c,保证c=a+b,并计算H(a)、H(b)。将H(a)、H(b)和c通过非对称加密算法发送给第二响应交易模块。随机选择H(a)或H(b)(其中,a为H(a)的原像,b为H(b)的原像)中任意一个(为了描述清楚,此处令为H(a))发送给第一哈希时间锁定合约模块。第一发起交易模块还将哈希原像b(其中a或b的选择是根据第二哈希时间锁定合约模块的哈希值决定,若第一发起交易模块发送给第一哈希时间锁定合约模块的是H(a),第二哈希时间锁定合约模块的哈希值会是H(b),此时第一发起交易模块发送的是哈希原像b)发送给第二哈希时间锁定合约模块。
第二响应交易模块与第二交易初始化模块、第二哈希时间锁定合约模块、第一发起交易模块、第一哈希时间锁定合约模块相连。第二响应交易模块从第一发起交易模块接收H(a)、H(b)和c,选取与第一哈希时间锁定合约模块部署的不同的哈希值(第一哈希时间锁定合约模块中部署的哈希值为H(a),则此处选择H(b)),将选取的哈希值H(b)发送给第二哈希时间锁定合约模块。第二响应交易模块还将哈希原像a(其中a或b的选择根据第一哈希时间锁定合约模块的哈希值决定,因为第一发起交易模块发送给第一哈希时间锁定合约模块的是H(a),因此此时的哈希原像为a)发送给第一哈希时间锁定合约模块。
第一哈希时间锁定合约模块与第一发起交易模块、第二响应交易模块、第一金额获取模块相连。第一哈希时间锁定合约模块从第一发起交易模块接收哈希值H(a),在Block1上部署第一哈希时间锁定合约。第一哈希时间锁定合约模块从第二响应交易模块接收哈希原像a,将哈希原像a和接收方地址(发送方和接收方链下通信可知)发送给第一金额获取模块。
第二哈希时间锁定合约模块与第二响应交易模块、第一发起交易模块、第二金额获取模块相连。第二哈希时间锁定合约模块从第二响应交易模块接收哈希值即H(b),在Block2上部署第二哈希时间锁定合约。第二哈希时间锁定合约模块从第一发起交易模块接收哈希原像b,将哈希原像b和发送方地址(发送方和接收方链下通信可知)发送给第二金额获取模块。
第二金额获取模块与第二哈希时间锁定合约模块相连。第二金额获取模块接收第二哈希时间锁定合约模块的哈希原像b和发送方地址,向区块链上的交易金额解锁脚本P2SH(Andresen G.脚本哈希[J].Consulted,2012,6:2012.)发送哈希原像b,运行P2SH脚本,验证脚本的运行结果为真后,将接收方锁定的金额发送给发送方地址。
第一金额获取模块与第一哈希时间锁定合约模块相连。第一金额获取模块接收第一哈希时间锁定合约模块的哈希原像a和接收方地址,向P2SH脚本发送对应的哈希原像a,运行P2SH脚本,验证脚本的运行结果为真后,将发送方锁定的金额发送给接收方地址。
第二发起交易模块连接关系与第一发起交易模块相同,与第一发起交易模块功能相同。在接收方所在的链Block2的交易过程中,第二发起交易模块不做工作。
第一响应交易模块连接关系与第二响应交易模块相同,与第二响应交易模块功能相同。在发送方所在的链Block1的交易过程中,第一响应交易模块不做工作。
第二步,第一交易初始化模块生成哈希函数H(x),方法是:
2.1定义区块链中的椭圆曲线公共参数(q,Fq,G),q为素数,Fq是一个素数域,生成元G为椭圆曲线基点。对于有限域Fq上的椭圆曲线方程为:y2=x3+a1x+b1modq,其中a1,b1∈Fq,满足条件通过椭圆曲线方程得到的点集命名为E(Fq),是椭圆曲线方程在射影平面上的点集外加一个无穷远点θ的集合。
2.2规定安全参数λ∈N,哈希函数为H(x)=x·G,λ的含义为当哈希函数的输入x大于或等于λ位时,哈希函数是安全的。其中·为椭圆曲线上的点乘运算,x是H(x)的原像。将哈希函数值看作有限域的元素,嵌入到椭圆曲线上,映射为椭圆曲线上一个点。用密码学语言来表达就是H(x)定义为H:{0,1}*→E(Fq),其中{0,1}*表示任意长度的字符串。哈希函数H(x)的安全性依赖于椭圆曲线离散对数问题的困难性,满足哈希函数的单向性和抗碰撞性等安全性要求。
2.3将哈希函数H(x)发送给第一发起交易模块。
第三步,第一发起交易模块从键盘接收发送方的发起交易指令,发起交易。
方法是:
3.2第一发起交易模块将H(a)、H(b)和c采用非对称加密算法进行加密,并将加密后的H(a)、H(b)和c发送给第二响应交易模块。
3.3第一发起交易模块随机选择H(a)或H(b)进行如下操作,此处假设选择H(a):
3.3.1第一发起交易模块在Block1上通过哈希锁和时间锁脚本组件(Herlihy M.原子跨链交换[C]//2018年ACM分布式计算原理研讨会论文集。2018:245-254.)创建第一哈希时间锁定合约,并将Blocl1链上发送方账户金额VA采用P2SH锁定,只有当接收方出示正确的哈希值原像,才调用第一金额获取模块进行P2SH解锁。发送方使用自己的私钥对账户中金额进行签名,第一哈希时间锁定合约内容为:在时间范围2ΔT内(T是人为设定的时长,一般设置60min),如果接收到H(a)的原像a(因为哈希函数是单向的,所以只有原像的拥有者才能提供该哈希值真正的原像),则将锁定的金额VA发送给Block1上接收方的地址(发送方和接收方链下通信可知),转第四步;如果时间到达了2ΔT,未收到原像a,则将锁定的金额返还给Block1上发送方的地址,表示此次交易不成功,终止交易,转第二步。
第四步,第二响应交易模块从键盘接收接收方的响应交易指令,响应交易。
方法是:
4.1第二响应交易模块从键盘接收接收方的响应交易指令,并接收第一发起交易模块发来的H(a)、H(b)和c,对H(a)、H(b)和c进行正确性判断,即判断H(c)=H(a)+H(b)是否成立。如果成立,转4.2;如果不成立,则告知第一发起交易模块选取随机数有误,转第三步,由发送方重新发起交易。
4.2第二响应交易模块检查Block1中是否正确部署第一哈希时间锁定合约,即检查Block1上是否出现合约内容包含接收方地址的第一哈希时间锁定合约,以判断发送方是否诚实,若出现,表示正确部署,转4.3,若不出现,说明没有正确部署,转第三步。
4.3第二响应交易模块判断发送方要交易的金额VA是否为协商金额,判断第一哈希时间锁定合约内容中的哈希值是否为接收到的哈希值H(a),若满足,第二响应交易模块选取与第一哈希时间锁定合约模块使用的哈希值不同的另一个哈希值,此时为H(b)。第二响应交易模块在Block2上通过哈希锁和时间锁脚本组件创建第二哈希时间锁定合约,并将Block2链上接收方账户金额VA进行P2SH锁定,只有当发送方出示正确的哈希值原像,才调用第一金额获取模块进行P2SH解锁。接收方使用自己的私钥对账户中金额进行签名,第二哈希时间锁定合约内容为:在时间范围ΔT内,如果收到H(b)的原像b,将锁定的金额VB发送给Block2上发送方的地址(发送方和接收方链下通信可知),转第五步;如果时间到达了ΔT,未收到原像b,则将锁定的金额VB返还给Block2上接收方的地址,表示此次交易不成功,终止交易,转第二步。
第五步,第一发起交易模块、第二哈希时间锁定合约模块、第二金额获取模块相互配合,解锁合约,使得发送方获得锁定金额。方法是:
5.1第一发起交易模块检查Block2上是否正确部署第二哈希锁定合约,即检查Block2上是否出现包含发送方地址的第二哈希时间锁定合约,若正确部署,转5.2;若没有正确部署第二哈希锁定合约,转第三步,重新发起交易。
5.2第一发起交易模块将H(b)的原像b发送给第二哈希时间锁定合约模块。
5.3第二哈希时间锁定合约模块判断在时间范围ΔT内是否收到哈希原像b,如果在ΔT内收到b,则第二哈希时间锁定合约模块将发送方地址和原像b发送给第二金额获取模块,转5.4;如果时间到达了ΔT,未收到原像b,则终止交易,转第二步。
5.4第二金额获取模块向P2SH脚本发送对应的哈希值原像b,运行P2SH脚本,验证P2SH脚本的运行结果是否为真,若为真,第二金额获取模块将锁定的金额VB发送给发送方在Block2上的地址,转第六步;若为假,转5.2,重新发送哈希值原像。
第六步,第二响应交易模块、第一哈希时间锁定合约模块、第一金额获取模块相互配合,解锁合约,使得接收方获得锁定金额。方法是:
6.1第二响应交易模块通过计算a=c-b,得到Block1上第一哈希时间锁定合约的原像a,并将H(a)的原像a发送给第一哈希时间锁定合约模块
6.2第一哈希时间锁定合约模块判断在时间范围2ΔT内是否收到哈希原像a,如果在2ΔT内收到a,则第一哈希时间锁定合约模块将接收方地址和原像a发送给第一金额获取模块,转6.3;如果时间到达了2ΔT,未收到原像a,则终止交易,转第二步。
6.3第一金额获取模块向P2SH脚本发送对应的哈希原像a,运行P2SH脚本,验证P2SH脚本的运行结果是否为真,若为真,第一金额获取模块将锁定的金额VA发送给接收方在Block1的地址,跨链原子交易到此完成,转第七步;如果运行结果为假,转6.1,重新发送哈希值原像。
第七步,结束。
采用本发明可以达到以下技术效果:
本发明使用基于椭圆曲线构造的一种特殊的哈希函数,该哈希函数具有加法哈希同态性,满足哈希函数的单向性和抗碰撞性等安全性要求,确保交易的安全性。
本发明利用构造的特殊哈希函数以及哈希时间锁定技术,可以达到以下技术效果:实现了去中心化的不可链接的跨链原子交易,保护了跨链交易参与方的隐私,解决了恶意节点追踪哈希锁定参与方的资金流向问题。
附图说明
图1是本发明总体流程图;
图2是本发明第一步构建的隐私安全***逻辑结构图。
具体实施方式
如图1所示,本发明包括以下步骤:
第一步,构建隐私安全***。隐私安全***如图2所示,由交易初始化模块、发起交易模块、响应交易模块、哈希时间锁定合约模块、金额获取模块这五个功能模块组成。隐私安全***部署在参与交易的双方(即发送方和接收方)所处的不同的区块链上。假设发送方所在的链为Block1,接收方所在的链为Block2。如图2所示,令Block1上部署的交易初始化模块、发起交易模块、响应交易模块、哈希时间锁定合约模块、金额获取模块为第一交易初始化模块、第一发起交易模块、第一响应交易模块、第一哈希时间锁定合约模块、第一金额获取模块;令Block2上部署的交易初始化模块、发起交易模块、响应交易模块、哈希时间锁定合约模块、金额获取模块为第二交易初始化模块、第二发起交易模块、第二响应交易模块、第二哈希时间锁定合约模块、第二金额获取模块。
第一交易初始化模块与第一发起交易模块相连。第一交易初始化模块生成哈希函数为H(x),并将哈希函数H(x)发送给第一发起交易模块。
第二交易初始化模块与第二响应交易模块相连。第二交易初始化模块生成哈希函数为H(x),并将哈希函数H(x)发送给第二响应交易模块。
第一发起交易模块与第一交易初始化模块、第二响应交易模块、第一哈希时间锁定合约模块、第二哈希时间锁定合约模块相连。第一发起交易模块随机选取三个正整数,令为a,b,c,保证c=a+b,并计算H(a)、H(b)。将H(a)、H(b)和c通过非对称加密算法发送给第二响应交易模块。随机选择H(a)或H(b)(其中,a为H(a)的原像,b为H(b)的原像)中任意一个(此处令为H(a))发送给第一哈希时间锁定合约模块。第一发起交易模块还将哈希原像b(其中a或b的选择是根据第二哈希时间锁定合约模块的哈希值决定,若第一发起交易模块发送给第一哈希时间锁定合约模块的是H(a),第二哈希时间锁定合约模块的哈希值会是H(b),此时第一发起交易模块发送的是哈希原像b)发送给第二哈希时间锁定合约模块。
第二响应交易模块与第二交易初始化模块、第二哈希时间锁定合约模块、第一发起交易模块、第一哈希时间锁定合约模块相连。第二响应交易模块从第一发起交易模块接收H(a)、H(b)和c,选取与第一哈希时间锁定合约模块部署的不同的哈希值(由于第一哈希时间锁定合约模块中部署的哈希值为H(a),因此此处选择H(b)),将选取的哈希值H(b)发送给第二哈希时间锁定合约模块。第二响应交易模块还将哈希原像a(其中a或b的选择根据第一哈希时间锁定合约模块的哈希值决定,因为第一发起交易模块发送给第一哈希时间锁定合约模块的是H(a),因此此时的哈希原像为a)发送给第一哈希时间锁定合约模块。
第一哈希时间锁定合约模块与第一发起交易模块、第二响应交易模块、第一金额获取模块相连。第一哈希时间锁定合约模块从第一发起交易模块接收哈希值H(a),在Block1上部署第一哈希时间锁定合约。第一哈希时间锁定合约模块从第二响应交易模块接收哈希原像a,将哈希原像a和接收方地址发送给第一金额获取模块。
第二哈希时间锁定合约模块与第二响应交易模块、第一发起交易模块、第二金额获取模块相连。第二哈希时间锁定合约模块从第二响应交易模块接收哈希值即H(b),在Block2上部署第二哈希时间锁定合约。第二哈希时间锁定合约模块从第一发起交易模块接收哈希原像b,将哈希原像b和发送方地址发送给第二金额获取模块。
第二金额获取模块与第二哈希时间锁定合约模块相连。第二金额获取模块接收第二哈希时间锁定合约模块的哈希原像b和发送方地址,向区块链上的交易金额解锁脚本P2SH发送哈希原像b,运行P2SH脚本,验证脚本的运行结果为真后,将接收方锁定的金额发送给发送方地址。
第一金额获取模块与第一哈希时间锁定合约模块相连。第一金额获取模块接收第一哈希时间锁定合约模块的哈希原像a和接收方地址,向P2SH脚本发送对应的哈希原像a,运行P2SH脚本,验证脚本的运行结果为真后,将发送方锁定的金额发送给接收方地址。
第二发起交易模块连接关系与第一发起交易模块相同,与第一发起交易模块功能相同。在接收方所在的链Block2的交易过程中,第二发起交易模块不做工作。为使得图2清晰,也为了说明接收方的第二发起交易模块不参与工作,图2中的第二发起交易模块没有画连接关系。
第一响应交易模块连接关系与第二响应交易模块相同,与第二响应交易模块功能相同。在发送方所在的链Block1的交易过程中,第一响应交易模块不做工作。为使得图2清晰,也为了说明发送方的第一响应交易模块不参与工作,图2中的第一响应交易模块没有画连接关系。
第二步,第一交易初始化模块生成哈希函数H(x),方法是:
2.1定义区块链中的椭圆曲线公共参数(q,Fq,G),q为素数,Fq是一个素数域,生成元G为椭圆曲线基点。对于有限域Fq上的椭圆曲线方程为:y2=x3+a1x+b1modq,其中a1,b1∈Fq,满足条件通过椭圆曲线方程得到的点集命名为E(Fq),是椭圆曲线方程在射影平面上的点集外加一个无穷远点θ的集合。
2.2规定安全参数λ∈N,哈希函数为H(x)=x·G,λ的含义为当哈希函数的输入x大于或等于λ位时,哈希函数是安全的。其中·为椭圆曲线上的点乘运算,x是H(x)的原像。将哈希函数值看作有限域的元素,嵌入到椭圆曲线上,映射为椭圆曲线上一个点。
2.3将哈希函数H(x)发送给第一发起交易模块。
第三步,第一发起交易模块从键盘接收发送方的发起交易指令,发起交易。
方法是:
3.2第一发起交易模块将H(a)、H(b)和c采用非对称加密算法进行加密,并将加密后的H(a)、H(b)和c发送给第二响应交易模块。
3.3第一发起交易模块随机选择H(a)或H(b)进行如下操作,此处假设选择H(a):
3.3.1第一发起交易模块在Block1上通过哈希锁和时间锁脚本组件创建哈希时间锁定合约,并将Block1链上发送方账户金额VA采用P2SH锁定,只有当接收方出示正确的哈希值原像,才调用第一金额获取模块进行P2SH解锁。发送方使用自己的私钥对账户中金额进行签名,第一哈希时间锁定合约内容为:在时间范围2ΔT内(T是人为设定的时长,一般设置60min),如果接收到H(a)的原像a,则将锁定的金额VA发送给Block1上接收方的地址,转第四步;如果时间到达了2ΔT,未收到原像a,则将锁定的金额返还给Block1上发送方的地址,表示此次交易不成功,终止交易,转第二步。
第四步,第二响应交易模块从键盘接收接收方的响应交易指令,响应交易。
方法是:
4.1第二响应交易模块从键盘接收接收方的响应交易指令,并接收第一发起交易模块发来的H(a)、H(b)和c,对H(a)、H(b)和c进行正确性判断,即判断H(c)=H(a)+H(b)是否成立。如果成立,转4.2;如果不成立,则告知第一发起交易模块选取随机数有误,转第三步,由发送方重新发起交易。
4.2第二响应交易模块检查Block1中是否正确部署第一哈希时间锁定合约,即检查Block1上是否出现合约内容包含接收方地址的第一哈希时间锁定合约,以判断发送方是否诚实,若出现,表示正确部署,转4.3,若不出现,说明没有正确部署,转第三步。
4.3第二响应交易模块判断发送方要交易的金额VA是否为协商金额,判断第一哈希时间锁定合约内容中的哈希值是否为接收到的哈希值H(a),若满足,第二响应交易模块选取与第一哈希时间锁定合约模块使用的哈希值不同的另一个哈希值,此时为H(b)。第二响应交易模块在Block2上通过哈希锁和时间锁脚本组件创建第二哈希时间锁定合约,并将Block2链上接收方账户金额VA进行P2SH锁定,只有当发送方出示正确的哈希值原像,才调用第一金额获取模块进行P2SH解锁。接收方使用自己的私钥对账户中金额进行签名,第二哈希时间锁定合约内容为:在时间范围ΔT内,如果收到H(b)的原像b,将锁定的金额VB发送给Block2上发送方的地址,转第五步;如果时间到达了ΔT,未收到原像b,则将锁定的金额VB返还给Block2上接收方的地址,表示此次交易不成功,终止交易,转第二步。
第五步,第一发起交易模块、第二哈希时间锁定合约模块、第二金额获取模块相互配合,解锁合约,使得发送方获得锁定金额。方法是:
5.1第一发起交易模块检查Block2上是否正确部署第二哈希锁定合约,即检查Block2上是否出现包含发送方地址的第二哈希时间锁定合约,若正确部署,转5.2;若没有正确部署第二哈希锁定合约,转第三步,重新发起交易。
5.2第一发起交易模块将H(b)的原像b发送给第二哈希时间锁定合约模块。
5.3第二哈希时间锁定合约模块判断在时间范围ΔT内是否收到哈希原像b,如果在ΔT内收到b,则第二哈希时间锁定合约模块将发送方地址和原像b发送给第二金额获取模块,转5.4;如果时间到达了ΔT,未收到原像b,则终止交易,转第二步。
5.4第二金额获取模块向P2SH脚本发送对应的哈希值原像b,运行P2SH脚本,验证脚本的运行结果是否为真,若为真,第二金额获取模块将锁定的金额VB发送给发送方在Block2上的地址,转第六步;若为假,转5.2,重新发送哈希值原像。
第六步,第二响应交易模块、第一哈希时间锁定合约模块、第一金额获取模块相互配合,解锁合约,使得接收方获得锁定金额。方法是:
6.1第二响应交易模块通过计算a=c-b,得到Block1上第一哈希时间锁定合约的原像a,并将H(a)的原像a发送给第一哈希时间锁定合约模块。
6.2第一哈希时间锁定合约模块判断在时间范围2ΔT内是否收到哈希原像a,如果在2ΔT内收到a,则第一哈希时间锁定合约模块将接收方地址和原像a发送给第一金额获取模块,转6.3;如果时间到达了2ΔT,未收到原像a,则终止交易,转第二步。
6.3第一金额获取模块向P2SH脚本发送对应的哈希原像a,运行P2SH脚本,验证P2SH脚本的运行结果是否为真,若为真,第一金额获取模块将锁定的金额VA发送给接收方在Block1的地址,跨链原子交易到此完成,转第七步;如果运行结果为假,转6.1,重新发送哈希值原像。
第七步,结束。
Claims (4)
1.一种去中心化的不可链接的跨链原子交易方法,其特征在于包括以下步骤:
第一步,构建隐私安全***;隐私安全***由交易初始化模块、发起交易模块、响应交易模块、哈希时间锁定合约模块、金额获取模块组成;隐私安全***部署在参与交易的双方即发送方和接收方所处的不同的区块链上;令Block1上部署的交易初始化模块、发起交易模块、响应交易模块、哈希时间锁定合约模块、金额获取模块为第一交易初始化模块、第一发起交易模块、第一响应交易模块、第一哈希时间锁定合约模块、第一金额获取模块,Block1为发送方所在的链;令Block2上部署的交易初始化模块、发起交易模块、响应交易模块、哈希时间锁定合约模块、金额获取模块为第二交易初始化模块、第二发起交易模块、第二响应交易模块、第二哈希时间锁定合约模块、第二金额获取模块,Block2为接收方所在的链;
第一交易初始化模块与第一发起交易模块相连,第一交易初始化模块生成哈希函数为H(x),并将H(x)发送给第一发起交易模块;
第二交易初始化模块与第二响应交易模块相连,第二交易初始化模块生成哈希函数为H(x),并将哈希函数H(x)发送给第二响应交易模块;
第一发起交易模块与第一交易初始化模块、第二响应交易模块、第一哈希时间锁定合约模块、第二哈希时间锁定合约模块相连;第一发起交易模块随机选取三个正整数a,b,c,保证c=a+b,并计算H(a)、H(b);将H(a)、H(b)和c加密发送给第二响应交易模块;随机选择H(a)或H(b)中任意一个,令为H(a),发送给第一哈希时间锁定合约模块;第一发起交易模块还将哈希原像b发送给第二哈希时间锁定合约模块;
第二响应交易模块与第二交易初始化模块、第二哈希时间锁定合约模块、第一发起交易模块、第一哈希时间锁定合约模块相连;第二响应交易模块从第一发起交易模块接收H(a)、H(b)和c,选取与第一哈希时间锁定合约模块部署的不同的哈希值H(b),将H(b)发送给第二哈希时间锁定合约模块;第二响应交易模块还将哈希原像a发送给第一哈希时间锁定合约模块;
第一哈希时间锁定合约模块与第一发起交易模块、第二响应交易模块、第一金额获取模块相连;第一哈希时间锁定合约模块从第一发起交易模块接收哈希值H(a),在Block1上部署第一哈希时间锁定合约;第一哈希时间锁定合约模块从第二响应交易模块接收哈希原像a,将哈希原像a和接收方地址发送给第一金额获取模块;
第二哈希时间锁定合约模块与第二响应交易模块、第一发起交易模块、第二金额获取模块相连;第二哈希时间锁定合约模块从第二响应交易模块接收哈希值H(b),在Block2上部署第二哈希时间锁定合约;第二哈希时间锁定合约模块从第一发起交易模块接收哈希原像b,将哈希原像b和发送方地址发送给第二金额获取模块;
第二金额获取模块与第二哈希时间锁定合约模块相连;第二金额获取模块接收第二哈希时间锁定合约模块的哈希原像b和发送方地址,向区块链上的交易金额解锁脚本P2SH发送哈希原像b,运行P2SH脚本,若验证P2SH的运行结果为真,将接收方锁定的金额发送给发送方地址;
第一金额获取模块与第一哈希时间锁定合约模块相连;第一金额获取模块接收第一哈希时间锁定合约模块的哈希原像a和接收方地址,向P2SH脚本发送对应的哈希原像a,运行P2SH脚本,若验证脚本的运行结果为真,将发送方锁定的金额发送给接收方地址;
第二步,第一交易初始化模块生成哈希函数H(x),方法是:
2.1定义区块链中的椭圆曲线公共参数(q,Fq,G),q为素数,Fq是一个素数域,生成元G为椭圆曲线基点;对于有限域Fq上的椭圆曲线方程为:y2=x3+a1x+b1modq,其中a1,b1∈Fq,满足条件通过椭圆曲线方程得到的点集命名为E(Fq),是椭圆曲线方程在射影平面上的点集外加一个无穷远点θ的集合;
2.2规定安全参数λ∈N,哈希函数为H(x)=x·G,λ的含义为当哈希函数的输入x大于或等于λ位时,哈希函数是安全的;其中·为椭圆曲线上的点乘运算,x是H(x)的原像;将哈希函数值看作有限域的元素,嵌入到椭圆曲线上,映射为椭圆曲线上一个点;H(x)定义为H:{0,1}*→E(Fq),其中{0,1}*表示任意长度的字符串;
2.3将哈希函数H(x)发送给第一发起交易模块;
第三步,第一发起交易模块从键盘接收发送方的发起交易指令,发起交易,方法是:
3.2第一发起交易模块对H(a)、H(b)和c进行加密,并将加密后的H(a)、H(b)和c发送给第二响应交易模块;
3.3第一发起交易模块随机选择H(a)或H(b)进行如下操作,令选择H(a):
3.3.1第一发起交易模块在Block1上创建第一哈希时间锁定合约,并将Block1链上发送方账户金额VA采用P2SH锁定,发送方使用自己的私钥对账户中金额进行签名;第一哈希时间锁定合约内容为:在时间范围2ΔT内,如果接收到H(a)的原像a,则将锁定的金额VA发送给Block1上接收方的地址,转第四步;如果时间到达了2ΔT,未收到原像a,则将锁定的金额返还给Block1上发送方的地址,转第二步;
第四步,第二响应交易模块从键盘接收接收方的响应交易指令,响应交易,方法是:
4.1第二响应交易模块从键盘接收接收方的响应交易指令,并接收第一发起交易模块发来的H(a)、H(b)和c,对H(a)、H(b)和c进行正确性判断,即判断H(c)=H(a)+H(b)是否成立;如果成立,转4.2;如果不成立,则告知第一发起交易模块选取随机数有误,转第三步;
4.2第二响应交易模块检查Block1中是否正确部署第一哈希时间锁定合约,即检查Block1上是否出现包含接收方地址的第一哈希时间锁定合约,若出现,表示正确部署,转4.3,若不出现,说明没有正确部署,转第三步;
4.3第二响应交易模块判断发送方要交易的金额VA是否为协商金额,判断第一哈希时间锁定合约内容中的哈希值是否为接收到的哈希值H(a),若满足,第二响应交易模块选取与第一哈希时间锁定合约模块使用的哈希值不同的另一个哈希值H(b);第二响应交易模块在Block2上创建第二哈希时间锁定合约,并将Block2链上接收方账户金额VA进行P2SH锁定;接收方使用自己的私钥对账户中金额进行签名,第二哈希时间锁定合约内容为:在时间范围ΔT内,如果收到H(b)的原像b,将锁定的金额VB发送给Block2上发送方的地址,转第五步;如果时间到达了ΔT,未收到原像b,则将锁定的金额VB返还给Block2上接收方的地址,转第二步;
第五步,第一发起交易模块、第二哈希时间锁定合约模块、第二金额获取模块相互配合,解锁合约,使得发送方获得锁定金额,方法是:
5.1第一发起交易模块检查Block2上是否正确部署第二哈希锁定合约,即检查Block2上是否出现包含发送方地址的第二哈希时间锁定合约,若正确部署,转5.2;若没有正确部署第二哈希锁定合约,转第三步;
5.2第一发起交易模块将H(b)的原像b发送给第二哈希时间锁定合约模块;
5.3第二哈希时间锁定合约模块判断在时间范围ΔT内是否收到哈希原像b,如果在ΔT内收到b,则第二哈希时间锁定合约模块将发送方地址和原像b发送给第二金额获取模块,转5.4;如果时间到达了ΔT,未收到原像b,则终止交易,转第二步;
5.4第二金额获取模块向P2SH脚本发送对应的哈希值原像b,运行P2SH脚本,验证P2SH脚本的运行结果是否为真,若为真,第二金额获取模块将锁定的金额VB发送给发送方在Block2上的地址,转第六步;若为假,转5.2;
第六步,第二响应交易模块、第一哈希时间锁定合约模块、第一金额获取模块相互配合,解锁合约,使得接收方获得锁定金额,方法是:
6.1第二响应交易模块通过计算a=c-b,得到Block1上第一哈希时间锁定合约的原像a,并将H(a)的原像a发送给第一哈希时间锁定合约模块;
6.2第一哈希时间锁定合约模块判断在时间范围2ΔT内是否收到哈希原像a,如果在2ΔT内收到a,则第一哈希时间锁定合约模块将接收方地址和原像a发送给第一金额获取模块,转6.3;如果时间到达了2ΔT,未收到原像a,则终止交易,转第二步;
6.3第一金额获取模块向P2SH脚本发送对应的哈希原像a,运行P2SH脚本,验证P2SH脚本的运行结果是否为真,若为真,第一金额获取模块将锁定的金额VA发送给接收方在Block1的地址,跨链原子交易到此完成,转第七步;如果运行结果为假,转6.1;
第七步,结束。
2.如权利要求1所述的一种去中心化的不可链接的跨链原子交易方法,其特征在于3.2步第一发起交易模块采用非对称加密算法对H(a)、H(b)和c进行加密。
3.如权利要求1所述的一种去中心化的不可链接的跨链原子交易方法,其特征在于3.3.1步第一发起交易模块在Block1上通过哈希锁和时间锁脚本组件创建第一哈希时间锁定合约;所述4.3步第二响应交易模块在Block2上通过哈希锁和时间锁脚本组件创建第二哈希时间锁定合约。
4.如权利要求1所述的一种去中心化的不可链接的跨链原子交易方法,其特征在于所述ΔT为60min。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010672839.5A CN111652618B (zh) | 2020-07-14 | 2020-07-14 | 一种去中心化的不可链接的跨链原子交易方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010672839.5A CN111652618B (zh) | 2020-07-14 | 2020-07-14 | 一种去中心化的不可链接的跨链原子交易方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111652618A true CN111652618A (zh) | 2020-09-11 |
CN111652618B CN111652618B (zh) | 2022-09-02 |
Family
ID=72350653
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010672839.5A Active CN111652618B (zh) | 2020-07-14 | 2020-07-14 | 一种去中心化的不可链接的跨链原子交易方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111652618B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112488707A (zh) * | 2020-11-24 | 2021-03-12 | 泰康保险集团股份有限公司 | 一种业务流转监管方法和*** |
CN112636930A (zh) * | 2020-12-31 | 2021-04-09 | 重庆邮电大学 | 一种基于原子交换的资产交易方法和*** |
CN112804262A (zh) * | 2021-03-19 | 2021-05-14 | 北京万物智链科技有限公司 | 一种区块链跨链通信中的安全保障方法及*** |
CN113159741A (zh) * | 2020-11-05 | 2021-07-23 | 北京跨联元焕网络科技有限公司 | 满足utxo和智能合约互交换的跨链交易方法及模型 |
CN113205418A (zh) * | 2021-05-06 | 2021-08-03 | 杭州复杂美科技有限公司 | 跨链交易方法、计算机设备和存储介质 |
CN113538150A (zh) * | 2021-07-28 | 2021-10-22 | 浙江数秦科技有限公司 | 一种区块链资产跨链交易方法 |
CN113627906A (zh) * | 2021-08-31 | 2021-11-09 | 浙江大学 | 哈希锁定和侧链技术的跨链交易方法、***、可存储介质 |
CN113763163A (zh) * | 2021-07-22 | 2021-12-07 | 中山大学 | 一种区块链支付通道网络交易手续费分配方法及*** |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109685489A (zh) * | 2018-12-28 | 2019-04-26 | 杭州云象网络技术有限公司 | 一种区块链之间的资产跨链交易方法 |
US20200051041A1 (en) * | 2018-08-10 | 2020-02-13 | Hajoon Ko | System and method for arbitrating a blockchain transaction |
CN111091382A (zh) * | 2018-10-24 | 2020-05-01 | 成都高新信息技术研究院 | 一种区块链资产去中心化跨链交易方法与*** |
-
2020
- 2020-07-14 CN CN202010672839.5A patent/CN111652618B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200051041A1 (en) * | 2018-08-10 | 2020-02-13 | Hajoon Ko | System and method for arbitrating a blockchain transaction |
CN111091382A (zh) * | 2018-10-24 | 2020-05-01 | 成都高新信息技术研究院 | 一种区块链资产去中心化跨链交易方法与*** |
CN109685489A (zh) * | 2018-12-28 | 2019-04-26 | 杭州云象网络技术有限公司 | 一种区块链之间的资产跨链交易方法 |
Non-Patent Citations (1)
Title |
---|
魏昂: "一种改进的区块链跨链技术", 《网络空间安全》 * |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113159741A (zh) * | 2020-11-05 | 2021-07-23 | 北京跨联元焕网络科技有限公司 | 满足utxo和智能合约互交换的跨链交易方法及模型 |
CN112488707A (zh) * | 2020-11-24 | 2021-03-12 | 泰康保险集团股份有限公司 | 一种业务流转监管方法和*** |
CN112488707B (zh) * | 2020-11-24 | 2023-06-23 | 泰康保险集团股份有限公司 | 一种业务流转监管方法和*** |
CN112636930A (zh) * | 2020-12-31 | 2021-04-09 | 重庆邮电大学 | 一种基于原子交换的资产交易方法和*** |
CN112636930B (zh) * | 2020-12-31 | 2022-05-03 | 重庆邮电大学 | 一种基于原子交换的资产交易方法和*** |
CN112804262A (zh) * | 2021-03-19 | 2021-05-14 | 北京万物智链科技有限公司 | 一种区块链跨链通信中的安全保障方法及*** |
CN112804262B (zh) * | 2021-03-19 | 2021-07-27 | 北京万物智链科技有限公司 | 一种区块链跨链通信中的安全保障方法及*** |
CN113205418B (zh) * | 2021-05-06 | 2022-09-13 | 杭州复杂美科技有限公司 | 跨链交易方法、计算机设备和存储介质 |
CN113205418A (zh) * | 2021-05-06 | 2021-08-03 | 杭州复杂美科技有限公司 | 跨链交易方法、计算机设备和存储介质 |
CN113763163B (zh) * | 2021-07-22 | 2023-11-17 | 中山大学 | 一种区块链支付通道网络交易手续费分配方法及*** |
CN113763163A (zh) * | 2021-07-22 | 2021-12-07 | 中山大学 | 一种区块链支付通道网络交易手续费分配方法及*** |
CN113538150A (zh) * | 2021-07-28 | 2021-10-22 | 浙江数秦科技有限公司 | 一种区块链资产跨链交易方法 |
CN113538150B (zh) * | 2021-07-28 | 2024-04-05 | 浙江数秦科技有限公司 | 一种区块链资产跨链交易方法 |
CN113627906B (zh) * | 2021-08-31 | 2022-03-25 | 浙江大学 | 哈希锁定和侧链技术的跨链交易方法、***、可存储介质 |
CN113627906A (zh) * | 2021-08-31 | 2021-11-09 | 浙江大学 | 哈希锁定和侧链技术的跨链交易方法、***、可存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111652618B (zh) | 2022-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111652618B (zh) | 一种去中心化的不可链接的跨链原子交易方法 | |
CN106899698B (zh) | 一种区块链之间的跨链互操作方法 | |
EP0348812B1 (en) | Authentication method and apparatus therefor | |
Noether et al. | Ring confidential transactions | |
KR0146437B1 (ko) | 인증교환 방법, 복원형 전자서명 방법, 부가형 전자서명 방법, 키교환 방법, 복원형 다중전자서명 방법, 부가형 다중전자서명 방법 및 블라인드 전자서명 방법 | |
CN112950367B (zh) | 生成和执行智能合约交易的方法及装置 | |
US4309569A (en) | Method of providing digital signatures | |
US5493614A (en) | Private signature and proof systems | |
CN109858281A (zh) | 一种基于零知识证明的区块链账户模型隐私保护方法 | |
Vaudenay | Hidden collisions on DSS | |
CN104782077A (zh) | 密码证书重发 | |
US20230368195A1 (en) | System and method for transferring resources using a blockchain | |
CN110009354A (zh) | 一种区块链中基于群签名的投票方法 | |
CN111738857B (zh) | 应用于区块链的隐匿支付证明的生成与验证方法及装置 | |
US20240163098A1 (en) | Computer-implemented methods and systems for controlling tasks implemented by a cyclically-ordered set of nodes participating in a blockchain network | |
CN110930153A (zh) | 基于隐藏第三方账号的区块链隐私数据管理方法和*** | |
CN113344705B (zh) | 基于区块链的数据共享方法和*** | |
US20240179211A1 (en) | Computer-implemented system and method for controlling processing steps of a distributed system | |
US6697946B1 (en) | Message recovery signature apparatus | |
CN112184245A (zh) | 一种跨区块链的交易身份确认方法及装置 | |
JP2003513480A (ja) | エンティティの真正性および/またはメッセージの完全性を証明するための方法 | |
CN112950183B (zh) | 跨链数据互换方法、***、装置、电子设备 | |
CN112348674A (zh) | 一种区块链的交易数据存储与获取方法及装置 | |
Zou et al. | A new digital signature primitive and its application in blockchain | |
Ahmedova et al. | Generation and distribution secret encryption keys with parameter |
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 |