CN114936853A - 基于可信执行环境的链下交易协议与交易认证方法 - Google Patents

基于可信执行环境的链下交易协议与交易认证方法 Download PDF

Info

Publication number
CN114936853A
CN114936853A CN202210571235.0A CN202210571235A CN114936853A CN 114936853 A CN114936853 A CN 114936853A CN 202210571235 A CN202210571235 A CN 202210571235A CN 114936853 A CN114936853 A CN 114936853A
Authority
CN
China
Prior art keywords
transaction
deposit
chain
execution environment
user
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.)
Pending
Application number
CN202210571235.0A
Other languages
English (en)
Inventor
张鹏
邓嘉琦
顾宁
卢暾
蒋睿
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fudan University
Original Assignee
Fudan University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fudan University filed Critical Fudan University
Priority to CN202210571235.0A priority Critical patent/CN114936853A/zh
Publication of CN114936853A publication Critical patent/CN114936853A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Payment architectures, schemes or protocols
    • G06Q20/22Payment schemes or models
    • G06Q20/223Payment schemes or models based on the use of peer-to-peer networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange

Abstract

本发明属于区块链技术领域,具体为一种基于可信执行环境的链下交易协议与交易认证方法;本发明设计了点对点的链下交易方式,将交易放在链下执行;设计了基于zk‑SNARK的交易认证方式;设计了基于可信执行环境对链下数字资产的管理机制。本发明通过将链上交易转移到链下执行,累计链下交易只将最终结果写入到区块链上,从而降低交易费用、减少交易确认时间。

Description

基于可信执行环境的链下交易协议与交易认证方法
技术领域
本发明属于区块链技术领域,具体的说,涉及一种基于可信执行环境的链下交易协议与交易认证方法。
背景技术
近年来,具有去中心化与不可篡改的特性的数字货币吸引了大量用户,如比特币、以太坊等,越来越多的人愿意采用加密数字货币进行交易,而区块链作为数字货币的底层技术也被大众所熟知。区块链是一种按照时间顺序将区块以链条的方式组合成特定的数据结构,并以密码学方式保证的不可篡改的去中心化共享账本。
区块链由区块组成,区块中记录了交易信息以及上一个区块的哈希值,通过这种方式将每一个区块链接在一起,保证了区块中信息无法被篡改的属性。作为去中心化的分布式账本,每个人都可以对账本进行维护,因此区块链需要共识机制来保证账本数据的一致性,目前被广泛使用的共识机制有POW、POS、DPOS等,这也使得用户可以不再需要信任额外的第三方。
随着区块链技术的不断发展,该技术被广泛的应用于各种场景:例如京东智臻链为用户提供商品溯源的功能,一件商品从生产到售卖整个过程的全部信息将会被记录在区块链上,用户可以查看到自己购买商品的全部信息来鉴别商品的质量,真伪等情况。此外,区块链在金融、医疗等场景中也有着广泛的应用。
目前,区块链平台有以太坊、超级账本(Hyperledger Fabric)、polkadot等。其中以太坊由于支持图灵完备的智能合约,作为区块链2.0的代表最为流行。目前基于以太坊的应用大约有2900个,每日需要处理交易一百多万笔。然而,在如此高的交易量上,以太坊的系统吞吐量TPS只有15.4,无法满足大部分用户的需求。
提高交易吞吐量能够大量减少用户等待交易确认的时间,提升用户体验,让以太坊、比特币等区块链平台在更多的应用场景中发挥其价值,这对区块链的发展有着至关重要的作用。因此,如何提高区块链交易吞吐量是目前非常值得探讨的问题。
发明内容
针对上述现有技术的不足,本发明提供了一种基于可信执行环境的点对点链下交易方法,其能解决链上交易慢交易时间长的问题,同时可信执行环境(TEE)通过硬件隔离技术将CPU划分出可信区域,可信区域中的代码能够正确的执行且能够有效防止外部袭击,为链下数字资产的交易提供安全保障。其次,对于将数字资产交由可信节点进行托管的轻节点用户,本发明采用基于可信执行环境的zk-SNARK(零知识证明)交易认证机制,使其能够对节点执行交易情况进行验证,并通过可信执行环境提高了zk-SNARK算法的安全性。。
本发明采用的技术方案具体如下。
本发明提供一种基于可信执行环境的链下交易协议与交易认证方法,可信执行环境可信执行环境(TEE)通过硬件隔离技术将CPU划分出可信区域,可信区域中的代码能够正确的执行且能够有效防止外部袭击;具体步骤如下:
一、生成存款协议
用户使用链下交易网络,需要将一定的数字资产转移到链下。转移资产的具体过程如下,用户需要在区块链上执行一笔交易,将需要转移到链下的数字资产发送到指定地址。交易成功后用户将交易信息发送给可信节点,节点会对交易信息进行认证,认证成功后会在可信执行环境中生成存款ID,作为该笔链下存款的唯一标识,每一笔存款包含如下属性:
属性 说明
value 存款余额
depID 存款ID
pubID 节点公钥
sig 存款签名
state 存款状态
nonce 交易次数
其中存款生成的签名sig,用于对存款的所有权进行验证;存款状态state默认初始值为True,用于确认当前存款状态防止多笔交易同时执行;nonce初始值为0,每执行一笔交易nonce值加1,交易前会对nonce值进行比对,防止双花。
二、链下交易协议
执行交易时,节点首先查看但前存款状态state值,确认存款未在执行其他交易后修改存款状态state值为False,保证交易执行期间不会存在其他交易与其并发执行。同时在可信执行环境中保留该存款当前的nonce值。在执行交易需要修改存款余额时,先确定当前存款信息的nonce值与保存在可信执行环境中的nonce值是否相等,若相等则修改余额并且nonce值加1。当交易完成后重新修改存款状态state为True。该方法的具体流程如算法1所示。
Figure BDA0003659284020000031
三、退出机制
用户在退出链下交易网络时,可信执行环境会先对用户的身份进行验证。验证成功后,可信执行环境会检查当前存款是否含有未完成的交易,如未有未完成的交易,可信执行环境将获取当前存款余额,并发起一笔交易,将存款转移到用户指定的区块链账户上。由于关闭交易的过程完全由可信执行环境中的代码逻辑完成,因此用户不需要担心写入区块链交易的正确性。
本发明进一步提供一种基于上述链下交易的交易认证方法,其基于zk-SNARK的交易认证,具体方法如下:
用户将数字资产转移到基于可信执行环境的链下交易网络后,会为每笔存款余额以及产生的交易生成承诺,该承诺主要用于对链下交易的认证。当轻节点用户发送交易认证请求时,节点会通过zk-SNARKS生成认证信息交给轻节点,轻节点对该认证信息进行核验。
zk-snark由于其零知识、非交互、简洁等特性被广泛的应用于区块链领域当中,该方法能够在不揭露任何有用信息的情况下验证一笔交易的真实性。在基于可信执行环境的链下交易网络中对zk-SNARKS算法进行了实现,并通过可信执行环境对部分功能进行安全保护,有效的提高了交易认证的安全性。基于可信执行环境的zk-snark算法TZ=(Gen,Setup,Prove,Verify)包含如下功能:
1.Gen(1λ)->pp:预处理算法需要输入一个随机生成的安全参数λ,返回一个公共参数列表pp。
2.Setup(C)->(sp,sv):生成算法对数字运算电路C进行处理,并通过公共参数列表pp生成两组参数SP和SV,SP放送给证明方用于生成证明,SV发送给验证方用于验证证明;
3.Prove(sp,x,w)->π:证明算法生成一个简短的零知识证明π,并发送给验证方。生成证明的过程中需要用到生成算法中生成的SP,公共输入x,私密输入w。
4.Verify(sv,x,π)->{0,1}:验证算法通过公共输入x以及SV对收到的证明进行验证,返回验证的结果信息。
在zk-snark算法中,pp公共参数列表如果泄漏,便能够伪造证明。该过程需要确保安全参数λ的随机性,以及保证公共参数列表的安全,防止验证信息的泄漏,因此Gen,Setup部分内容将在可信执行环境中实现。此外,在Prove过程中需要私密输入w,在交易认证过程中w为用户交易的明文信息,因此在生成证明时与w相关的加密处理过程均在可信执行环境中实现,而Verify过程只需要对收到的证明进行核验,因此不需要与可信执行环境进行交互;
轻节点对链下交易的认证主要包含以下三种类型:
存款生成认证:用户将数字资产转移到链下后会生成对应存款,用户可以发送请求验证是否生成相应数额的链下数字资产。在认证过程中链上交易TX会作为公共输入,存款金额value以及存款nonce值、存款状态、存款签名将作为私密输入。电路会对生成的存款金额以及转移资产的交易金额进行比对,保证链下存款生成的正确性。
交易执行认证:交易执行后,用户可以验证交易是否执行成功,发送的数字资产是否到达相应的账户中。验证过程中轻节点要确认交易的执行情况,确保交易对象为发送的交易请求中的收款人。其次还需要确认新生成的存款余额是否为当前余额减去交易余额。因此交易生成的公共输入为存款ID、交易执行信息,当前存款信息以及新生成的存款信息。私密输入为存款明文余额、交易金额、收款人。
存款释放认证:用户验证是否有一笔数字资产已经成功转移到用户指定的链上账户当中。当用户发起释放存款请求时,节点会获取存款信息数据,并在可信执行环境对存款状态进行验证后,将明文余额以及区块链账户公钥写入到合约中,并返回交易信息。因此验证该过程需要的公共输入为存款ID、转移链下资产的账户公钥、存款信息、链上交易哈希。私密输入为链下存款的最终余额。
和现有技术相比,本发明的有益效果在于:
1、本发明将链上交易转移到链下执行,将多笔链下交易累计,并将累计结果写入到区块链上,从而减少链上的交易费用以及交易确认时间。
2、本发明将数字资产交由链下节点管理,通过节点与节点之间的安全通信来完成交易。节点管理的数字资产由可信执行环境提供安全保障。交易的执行在可信执行环境中完成,保证交易的安全性。
3、本发明隐藏链下交易信息,保证用户隐私安全。所有交易信息在可信执行环境中加密处理,防止交易信息被恶意修改以及用户数据泄露。
4、本发明提供安全可靠的交易认证手段。任意用户都可以通过交易认证过程来核验交易的是否被正确执行。
附图说明
图1为本发明的链下交易协议架构图示。
图2为本发明的交易认证架构图示。
图3为本发明实施例1图示。
图4为本发明实施例2图示。
具体实施方式
下面结合附图和实施例对本发明的技术方案进行详细阐述。
图1为本发明的链下交易协议架构图示。链下交易协议中包含三种交易类型:存款生成,交易执行,存款释放。其中存款生成与存款释放过程通过链上合约与区块链进行交互,交易执行过程通过可信执行环境来保证链下交易的安全性。
图2为本发明的交易认证架构图示。在交易执行过程中会同时为该交易生成证明,用户可以向节点发送认证请求来获取交易证明进行核验,在链下交易网络中交易认证可以分为三种类型:存款生成认证会对链下资产生成的过程进行核验,交易执行认证可以对链下数字资产的转移情况进行核验,存款释放认证可以对释放的存款金额的正确性进行核验。
基于本发明介绍的链下交易协议与交易认证方法以及以太坊平台实现了链下可信交易平台,为用户提供了一个安全自由去中心化的链下交易渠道。该系统使用python语言以及django框架编程实现,使用Solidty编写智能合约完成与以太坊的交互。
实施例1
如图3所示,用户可以在链下可信交易平台中执行链下交易,用户输入执行交易的存款ID,接收者存款ID,交易金额。节点接收到交易请求执行交易,修改交易双方存款金额。节点成功执行交易后返还用户交易的详细信息。
实施例2
如图4所示,轻节点用户可以向节点发送某一笔交易的认证请求,节点会返回该交易的证明,用户可以通过证明对该交易进行核验。

Claims (2)

1.一种基于可信执行环境的链下交易方法,其特征在于,包括如下步骤:
(1)生成存款
用户使用链下交易网络,将一定的数字资产转移到链下,生成存款协议;具体过程如下:
用户在区块链上执行一笔交易,将需要转移到链下的数字资产发送到指定地址,交易成功后用户将交易信息发送给可信节点,节点对交易信息进行认证,认证成功后在可信执行环境中生成存款ID,作为该笔链下存款的唯一标识,每一笔存款包含的属性包括:value、depID、pubID、sig、state、nonce;其中:
value表示存款余额,depID表示存款ID,pubID表示节点公约;存款生成的签名sig,用于对存款的所有权进行验证;存款状态state默认初始值为True,用于确认当前存款状态防止多笔交易同时执行;nonce表示交易次数,其初始值为0,每执行一笔交易nonce值加1,交易前会对nonce值进行比对,防止双花;
(2)执行交易
执行交易时,节点首先查看当前存款状态state值,确认存款未在执行其他交易后修改存款状态state值为False,保证交易执行期间不会存在其他交易与其并发执行,同时在可信执行环境中保留该存款当前的nonce值;在执行交易需要修改存款余额时,先确定当前存款信息的nonce值与保存在可信执行环境中的nonce值是否相等,若相等则修改余额并且nonce值加1,当交易完成后重新修改存款状态state为True;
(3)退出链下交易
用户在退出链下交易网络时,可信执行环境先对用户的身份进行验证,验证成功后,可信执行环境检查当前存款是否含有未完成的交易,如未有未完成的交易,可信执行环境将获取当前存款余额,并发起一笔交易,将存款转移到用户指定的区块链账户上;关闭交易的过程由可信执行环境中的代码逻辑完成。
2.一种基于权利要求1所述的链下交易的交易认证方法,其特征在于,其采用基于zk-SNARK的交易认证方法对链下交易进行认证,具体如下:
用户将数字资产转移到基于可信执行环境的链下交易网络后,为每笔存款余额以及产生的交易生成承诺,该承诺主要用于对链下交易的认证;当轻节点用户发送交易认证请求时,节点通过zk-SNARKS生成认证信息交给轻节点,轻节点对该认证信息进行核验;其中:
基于可信执行环境的zk-snark算法TZ=(Gen,Setup,Prove,Verify)包含如下功能:一)Gen(1λ)->pp:预处理算法通过输入一个随机生成的安全参数λ,返回一个公共参数列表pp;
二)Setup(C)->(SP,SV):生成算法对数字运算电路C进行处理,并通过公共参数列表pp生成两组参数SP和SV,SP放送给证明方用于生成证明,SV发送给验证方用于验证证明;三)Prove(SP,x,w)->π:证明算法生成一个简短的零知识证明π,并发送给验证方,生成证明的过程中用到生成算法中生成的SP,公共输入x以及私密输入w;
四)Verify(SV,x,π)->{0,1}:验证算法通过公共输入x以及SV对收到的证明进行验证,返回验证的结果信息;
在zk-snark算法中,需要确保安全参数λ的随机性以防止pp公共参数列表泄漏,因此Gen,Setup部分的内容将在可信执行环境中实现;此外,在Prove过程中需要私密输入w,在交易认证过程中w为用户交易的明文信息,因此在生成证明时与w相关的加密处理过程均在可信执行环境中实现;
轻节点对链下交易的认证主要包含以下三种类型:
存款生成认证:用户将数字资产转移到链下后会生成对应存款,用户发送请求验证是否生成相应数额的链下数字资产;在认证过程中链上交易TX会作为公共输入x,存款金额value以及存款nonce值、存款状态、存款签名将作为私密输入w,数字运算电路C对生成的存款金额以及转移资产的交易金额进行比对,保证链下存款生成的正确性;
交易执行认证:交易执行后,用户验证交易是否执行成功,发送的数字资产是否到达相应的账户中验证过程中轻节点要确认交易的执行情况,确保交易对象为发送的交易请求中的收款人,其次还需要确认新生成的存款余额是否为当前余额减去交易余额;因此交易生成的公共输入x为存款ID、交易执行信息,当前存款信息以及新生成的存款信息,私密输入w为存款明文余额、交易金额、收款人;
存款释放认证:用户验证是否有一笔数字资产已经成功转移到用户指定的链上区块链账户当中;当用户发起释放存款请求时,节点获取存款信息数据,在可信执行环境对存款状态进行验证后,将明文余额以及区块链账户公钥写入到合约中,并返回交易信息;因此验证该过程需要的公共输入x为存款ID、转移链下资产的账户公钥、存款信息和链上交易哈希,私密输入w为链下存款的最终余额。
CN202210571235.0A 2022-05-24 2022-05-24 基于可信执行环境的链下交易协议与交易认证方法 Pending CN114936853A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210571235.0A CN114936853A (zh) 2022-05-24 2022-05-24 基于可信执行环境的链下交易协议与交易认证方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210571235.0A CN114936853A (zh) 2022-05-24 2022-05-24 基于可信执行环境的链下交易协议与交易认证方法

Publications (1)

Publication Number Publication Date
CN114936853A true CN114936853A (zh) 2022-08-23

Family

ID=82864315

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210571235.0A Pending CN114936853A (zh) 2022-05-24 2022-05-24 基于可信执行环境的链下交易协议与交易认证方法

Country Status (1)

Country Link
CN (1) CN114936853A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116562874A (zh) * 2023-04-27 2023-08-08 北京交通大学 一种基于零知识证明的隐私保护跨链交易验证方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116562874A (zh) * 2023-04-27 2023-08-08 北京交通大学 一种基于零知识证明的隐私保护跨链交易验证方法
CN116562874B (zh) * 2023-04-27 2024-01-02 北京交通大学 一种基于零知识证明的隐私保护跨链交易验证方法

Similar Documents

Publication Publication Date Title
CN108833081B (zh) 一种基于区块链的设备组网认证方法
US20220247572A1 (en) Secure dynamic threshold signature scheme employing trusted hardware
WO2021184963A1 (zh) 调用合约的方法及装置
CN109242675B (zh) 基于区块链的资产发布方法及装置、电子设备
US11212081B2 (en) Method for signing a new block in a decentralized blockchain consensus network
JP2022180596A (ja) ブロックチェーンで実施されるイベントロック暗号化の方法及びシステム
CN110288480B (zh) 一种区块链的私密交易方法及装置
JP7102425B2 (ja) コンピュータにより実装されるシステム及び方法
JP2021507564A (ja) 低エントロピーパスワードを用いてブロックチェーントランザクションを許可するためのコンピュータ実装されたシステム及び方法
TW201944757A (zh) 適於提升即時離線區塊鏈交易安全性的電腦實施系統與方法
US11488144B2 (en) System and method of multi-round token distribution using a blockchain network
Zhu et al. Hybrid blockchain design for privacy preserving crowdsourcing platform
US20200204338A1 (en) Securing public key cryptographic algorithms
CN111737715A (zh) 一种去中心化的电子合同在线签署的方法及系统
KR20200019944A (ko) 블록체인 네트워크에서 계층적 토큰 분산을 위한 시스템 및 방법
US20200202349A1 (en) Multiple asset transactions
Jeon et al. RMBC: Randomized mesh blockchain using DBFT consensus algorithm
CN114760071B (zh) 基于零知识证明的跨域数字证书管理方法、系统和介质
Jonathan et al. Security issues and vulnerabilities on a blockchain system: A review
US20200202344A1 (en) Private asset transactions
JP6911231B1 (ja) デジタル資産データパケットの信頼性検証システム
CN114936853A (zh) 基于可信执行环境的链下交易协议与交易认证方法
US11507945B2 (en) Method and system for usage of cryptocurrency, preventing financial crime
Singh et al. Blockchain applications, opportunities, challenges and risks: a survey
Boontaetae et al. RDI: Real digital identity based on decentralized PKI

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