基于分布式密钥生成和属性基密码的多方跨链交易方案

2023-11-24 05:25马宇航吴星雨
计算机研究与发展 2023年11期
关键词:代币哈希合约

马宇航 张 亮,2,3 吴星雨 李 鸣

1(海南大学网络空间安全学院 海口 570228)

2(海南省Internet 信息检索重点实验室(海南大学)海口 570228)

3(上海市智能信息处理重点实验室(复旦大学)上海 200433)

4(上海区块链工程技术研究中心 上海 200433)

5(中国电子技术标准化研究院 北京 100007)

(1755918620@qq.com)

目前区块链技术及其应用正处于高速发展阶段,在智慧金融、供应链服务、数据共享、政府管理、数字医疗等领域的应用逐渐加深[1-3].区块链主要提供了一种去中心化的数据存储机制,网络中的每个节点都存储着完整的数据,少数节点被攻击和失效不影响整个系统的安全[4].区块链通过密码学和计算机科学等技术实现了基于代码的机器信任模式,使用技术来为信任做背书,在经济和文化方面都是一场深刻的变革.

在区块链发展早期,信息的交互仅仅是在各自的链上进行,大多数区块链是一个个独立的、封闭的体系,是一个个数据孤岛[5].随着时代的发展,单一的区块链无法满足复杂的业务需求.因此需要跨链技术来连接各个独立的区块链,来实现多个区块链的数据共享、业务合作和价值流通,实现多方共赢.

跨链是连接2 个或者多个独立区块链实现数据流通和价值转移操作的一种协议[6].以太坊创始人Vitalik 认为跨链是一种具体应用能力,区块链互操作主要指两条区块链之间进行资产转移、支付或信息交互的能力[7].目前跨链主要应用在资产转移、数据共享和服务协同这3 个方面.

在实现跨链业务时需要保证:信息的真实性、交易的原子性和事物的一致性[8].信息的真实性是指在交易时一条链传入另一条链的信息是真实的.交易的原子性是指交易作为一个整体被对待,要么全部成功,要么全部失败,不存在部分成功或部分失败的情况.事物的一致性是指2 条链上的跨链执行前后状态保持一致.

目前主流的跨链技术有:

1)公证人机制.不同区块链之间使用共同信任的第三方充当公证人进行跨链消息的验证和转发.公证人机制的优点是实现简单和效率高,缺点是中心化的风险[9].Ripple 的Interledger 协议,是公证人机制的代表项目[10].

2)哈希锁定技术.哈希时间锁定采用了哈希锁和时间锁,迫使资产接收方在截止时间内确定收款并产生收款证明给付款人,否则资产会归还.收款证明能够被付款人用来获取接收人区块链上的等价值资产或触发其他事件[11].哈希时间锁需要跨链双方支持智能合约,支持相同的哈希算法,并且在时间上也要做到同步,所以哈希锁定技术的适用性不强,一般用来进行相同区块链不同数字资产的交易.

3)侧链技术、中继技术.侧链被定义为可以验证来自其他区块链数据的区块链,是一种强耦合结构的跨链模式.采用双向锚定主链资产并使该资产可以在主链和侧链之间进行价值转移.中继在本质上是公证人机制和侧链机制的融合,使用中继区块链代替公证人.Cosmos,Polkadot,BTC-Relay 等是该机制的代表项目[12-13].

4)分布式私钥控制.该技术是基于密码学中的多方计算和门限密钥的一种技术.它采用分布式节点来控制区块链系统中各种资产的私钥,将数字资产的使用权和所有权进行分离,使得链上资产的控制权能够安全地转移到非中心化系统中,同时将原链上的资产映射到跨链中,实现不同区块链系统间的资产流通和价值转移[14].

跨链的数字资产交换主要依靠中心化交易所与去中心化交易所.

在中心化交易所,用户需要将自己的资产充值到交易所的钱包,交易所对用户的资产有绝对的控制权,中心化交易所无法保证用户资金的安全和透明.传统的中心化交易所有:币安(Binance)、火币(Huobi)等[15].虽然中心化交易所的交易效率更高,但是数字资产的安全性不高.2022 年全球第二大交易平台FTX 因挪用用户资产造成资金流动性不足而倒闭[16].FTX 的破产不但给用户造成了资产的损失,而且严重打击了区块链市场的信心.

现存的去中心化交易所有Uniswap、MDEX 等.Uniswap 是基于以太坊建立的分布式加密交易平台,是去中心化的,它是一组部署到以太坊网络的合约,交易都在区块链上进行[17].去中心化交易所大部分在公链上运行,受限于参与跨链的区块链本身的出块时间和确认速度,影响了交易效率.这导致去中心化交易所更可能产生由于交换的加密货币价值的变化而造成的交易无法执行的问题,并且去中心化交易所的订单类型和功能较少.去中心化的交易大多数只能实现同一个区块链上不同合约资产的交换,对异构区块链之间的资产交换不完善.去中心化交易所的流动性波动很大,严重依赖交易平台的用户活跃度.

本文方案为实现一个去中心化的多方交易平台.该方案可以实现4 个目标:

1)去中心化资产存储.基于分布式密钥生成的跨链方式可以将异构区块链的数字资产质押到一个分布式系统中,由分布式系统中的节点共同保护秘密,可以避免中心化的危险.

2)良好的互操作性.在使用本文方案时,用户只需提供交易区块链上的公钥地址.本文方案可以屏蔽区块链底层技术和协议,将异构区块链上的资产映射到交易区块链上进行交易,实现异构区块链的跨链资产交易.

3)支持智能合约.将分布式系统中的资产映射到支持智能合约区块链上,这样可以屏蔽异构区块链的底层技术,它们的数字资产可以使用智能合约操作.

4)控制交易对象.使用属性密码进行访问控制,可以为用户提供丰富的访问控制策略,保护用户数字资产交易的安全.

1 背景和相关知识介绍

1.1 区块链与以太坊

2008 年,中本聪在比特币白皮书中提出区块链的概念.区块链技术是基于密码学、时间戳等技术来传输和验证数据,通过链式数据结构来存储数据,利用共识机制来生成和更新数据,并通过设计可编程智能合约来实现的一种全新去中心基础架构与分布式计算范式[18].

以太坊是一个开源的有智能合约功能的公共区块链平台,通过其专用加密货币以太币(Ether,ETH)提供去中心化的以太虚拟机(Ethereum virtual machine,EVM)来处理点对点合约.以太坊是一种用于在不受中心化监管机构管控的环境下构建应用程序和组织、持有资产、进行交易和通信的技术[19].

以太坊智能合约是存放在以太坊区块链具有特定地址的代码(功能)和数据(状态)集合.智能合约可以定义规则并通过代码自动执行.智能合约以以太坊特定的二进制字节码通过以太坊虚拟机运行于区块链上[20].

ERC-20 是在以太坊区块链上创建同质化代币的技术标准[21].同质化代币是指可以互换的代币,它们具有相同的类型和价值.ERC-20 允许开发者创建可以与其他产品和服务互操作的智能合约代币.ERC-20 规定了一些智能合约代币必须实现的函数和事件,以保证它们的可组合性和互操作性.

1.2 VSS 协议和分布式密钥生成技术

可验证的秘密分享是一种在密码学中用于安全地分发和恢复秘密信息的技术,它在普通的秘密分享的基础上增加了验证机制,以防止分发者或参与者作恶或出错.可验证的秘密分享有很多种方案,其中比较著名和广泛应用的是Feldman 方案,它是基于Shamir 方案构造的非交互式可验证秘密分享[22-27].

Feldman 方案的实现如下:

系统参数为:p是大素数,q是p-1的大素数因子,g是中的一个q阶元素,k是门限值,n是分享者数量.每一个参与者表示为Pj,其中j=1,2,…,n,门限值为t,且满足 1 ≤t≤n≤q.

1)共享分发.分发者D选择一个t-1次多项式

将要分享的秘密作为a0=s的值.把sj=f(j)modq作为共享秘密发送给参与者Pj,j=1,2,…,n.另外计算承诺

2)共享验证.每个参与者Pj检验收到的共享秘密,通过检验

如果等式成立,收到的sj有效.

3)密钥恢复.当k个或者多于k个参与者恢复秘密时,每个参与者Pj向其他合作者广播自己的sj,当所有合作者的共享都被验证为有效时,合作者可根据拉格朗日多项式插值的方法计算出秘密s.秘密s的计算公式为:

分布式密钥生成(distributed key generation,DKG)是一种门限密码学的技术,可以让多个参与方协作生成和分发一个共同的密钥,而不需要任何可信的中心节点或者加解密操作[28-29].

DKG 通常包含3 个算法:共享算法、验证算法和重建算法.

1)共享算法.每个参与方通过一个分布式协议(如VSS 或PVSS)向其他参与方发送自己选择的秘密份额,并给出计算秘密的承诺.假设分布网络中存在n个节点,分布式网络中的第j个节点接收到质押资产请求后,在本地使用一个VSS 算法,为这次请求产生一个秘密值sj,并生成一个多项式:

其中t=n/2.并计算fi(x),x=1,2,…,n.将计算的fj(x)给第x个节点,计算第i个节点的承诺值:

其中i=0,1,…,t-1.每个用户验证自己收到的秘密.第x个用户收到第j个节点的值后,计算:

如式(7)成立,第x个用户收到的信息正确.第x个用户将收到的其他节点的正确信息保存下来,并发布验证通过的节点名单.然后所有节点进行投票选出存储秘密的节点,被选中的节点把存储秘密节点发送的值相加得到aj.使用椭圆曲线算法生成公钥PK′:

其中P为常数.

2)私钥还原算法.每个存储秘密节点将自己的秘密发送给用户.私钥S K′为

1.3 基于密文的属性密码

基于密文策略的属性加密(CP-ABE)可以实现细粒度的数据访问控制和保护用户隐私.在CP-ABE 中,数据拥有者可以根据一些预定义的属性来指定一个访问策略,并将该策略嵌入到密文中.用户的私钥则与一组属性相关联,只有当用户的属性满足密文的访问策略时,才能解密出数据.

数据拥有者不需要知道具体的接收者身份,只需要根据属性加密数据,降低了加密开销和管理复杂度.数据接收者只能解密符合自己属性的密文,保证了数据机密性和用户隐私.用户之间无法合谋攻击,因为不同用户的私钥与随机数和多项式相关,无法联合使用.数据拥有者可以灵活地指定基于属性的访问控制策略,支持与、或、非和门限等逻辑操作.

CP-ABE 主要有4 种算法:

Setup:只接受隐式的安全参数作为输入.输出公共参数PK和主密钥MK.

Encrypt(PK,M,A):输入PK、消息M和访问结构A,对M进行加密,产生密文CT.

Key Generation(MK,S):输入主密钥MK和描述密钥的属性集合S,输出私钥SK.其中,SK由属性来确定.

Decrypt(PK,CT,SK):输入公共参数PK、包含访问结构A的密文CT,以及私钥SK.注意这里的私钥由属性集合S生成.如果S能够满足A,则对CT进行解密并返回消息M.

我们选择Bethencourt,Sahai and Waters(BSW)CPABE 作为底层原语[30].

2 系统模型与系统假设

2.1 系统模型

整个多方交易系统由分布式网络、交易区块链和用户3 个部分组成,如图1 所示.

Fig.1 System architecture and function图1 系统架构与功能

1)分布式网络.该网络由一群分布式节点组成,这些节点有3 个特征:①分布式节点运行着分布式密钥生成算法,分布式节点会为每笔交易产生一个单独的秘密,节点之间不共享秘密.②每个节点需要向用户和其他节点提供秘密验证服务,每个节点都可以验证其他节点的秘密是否正确.③分布式节点可以通过验证交易的哈希值检验交易的真实性.分布式网络为用户生成一对对应的公私钥匙对用来锁定资产,提供给用户公钥地址并保存私钥.用户请求提取资产,验证用户提取资产的合法性,验证通过后将私钥交给用户.分布式网络为用户在交易区块链上生成代币,将用户资产映射到交易区块链上.分布式网络在用户提取资产后,将用户在交易区块链上映射的代币销毁.

2)交易区块链.其功能为:记录用户的数据和数字资产信息;为用户提供一个交易的平台,用户在交易区块链使用代币进行交易;为用户提供智能合约功能;在分布式节点质押的数字资产会映射到交易区块链上生成等额的代币,来供用户交易;根据分布式节点的请求,销毁代币;为用户在交易区块链提供注册服务.

3)用户.用户将资产打到分布式节点产生的公钥地址上,完成资产的质押.用户将交易验证提交给分布式节点,接受并验证分布式节点的秘密是否正确,如果秘密正确将秘密还原为数字资产对应的私钥.用户通过CP-ABE 进行访问控制,只有符合用户设定,访问控制策略才能和用户发生交易.

2.2 系统假设

分布式网络中一半的节点是诚实的,并且节点之间的通讯使用安全信道.分布式网络与用户的通讯同样使用安全信道.分布式网络可以调用交易区块链的智能合约接口.

交易区块链是和以太坊协议相同的公链,可以运行虚拟机,支持智能合约.

交易币是交易区块链产生的数字货币.多方交易系统使用交易币奖励用户存入数字资产,交易币还可以用来支付多方交易系统的服务.

2.3 智能合约

交易区块链上部署的智能合约主要包括代币合约和交易合约,它们为用户提供与代币相关的服务.

1)代币合约.代币合约是符合ERC20 标准的合约.调用函数mint(uintamount),生成输入数量的代币.调用函数burn(uintamount),销毁输入数量的代币.调用函数transferFrom(addresssender,addressrecipient,uintamount),将输入数额的代币从地址sender转到地址recipient.

2)交易合约.使用哈希时间锁来保证交易公平的合约.函数newContract(

输入接收者地址receiver、哈希锁hashlock、时间锁timelock、代币地址tokenContract和发送数量amount创建新交易,合约会返回一个contractId.在规定时间内,调用withdraw(

输入对应的contractId和preimage,如果验证通过,交易合约将资金转入地址receiver,在设定的时间内,用户无法访问自己的refund函数取走自己的资金.如果超过函数newContract设定的时间锁的时间,调用函数refund(bytes32contractId)将资金返回给用户.时间锁是由newContract函数传入的时间参数不同而设置的.参数preimage为一段字符串,在本文中作为哈希函数的原值.

发送方将原值的哈希值发给接收方,并设定接收方在时间锁设定时间1 内凭借哈希值的原值来解锁发送方的合约.接受方设定在时间锁设定时间2 内凭借哈希值的原值来解锁发送方的合约.此时,发送方虽然知道哈希值的原值,但由于时间锁的缘故,他无权解锁合约取走资金.这种设计可以避免发送方在给接收方共享了密钥后取走自己资金的行为.一旦发送方在时间2 内使用原值取走接收方的资金,接收方就知道了原值,就可以在时间1 内取走发送方的资金.时间2 要小于时间1,为接收方留出充足的时间取走资金.若在时间锁规定的时间内双方没有用哈希值的原值进行解锁,那么在锁定时间之后双方无法解锁,双方通过refund函数取走自己的资金.通过哈希锁和时间锁的巧妙配合,保证了交易的原子性.

3 基于分布式密钥生成和属性密码的多方跨链交易方案

多方交易系统就是一个去中心化的银行,是一个去中心化的交易平台.用户在分布式网络和交易区块链上注册相当于在银行开账户,将数字资产质押到多方交易系统相当于把钱存入银行账户.用户使用CP-ABE 设置访问控制就是设置交易条件.用户在多方交易系统中转换数字资产种类,就相当于银行将本国货币兑换为外币.用户在数字资产缴纳的服务费相当于银行兑换外币时交的服务费和税费.如图2 所示,用户3 将比特币存入多方交易系统中,多方交易系统将资产转换为火币和以太币;用户1使用多方交易系统将火币交换为用户3 的比特币;用户2 使用多方交易系统将以太币交换为用户3 的比特币.

Fig.2 Diagram of multi-party transactions图2 多方交易示意图

基于DKG 和属性基密码的多方跨链交易方案分为资产质押、资产交易和资产提取.在资产质押前首先进行用户注册,用户使用多方交易系统需要在交易区块链上注册账户.

3.1 资产质押

资产质押是用户将资产锁定到分布式网络上的操作,如图3 所示.

Fig.3 Diagram of asset pledge图3 资产质押示意图

首先,用户向分布式网络提交质押资产请求,将自己在交易区块链上的账户地址、数字资产的种类、p、q和g发给分布式网络(p是大素数,q是p-1的大素数因子,g是中的一个q阶元素).然后,分布式网络使用DKG 的共享算法,为这个用户生成公钥PK′.

然后,用户将数字资产转入公钥地址,将交易信息提供给分布式网络.如表1 所示,交易信息为交易哈希值、转账金额、转账发出地址、转账接收地址和转账时间.之后,分布式网络查阅交易哈希值代表的交易信息,验证转账接收地址是否为PK′、交易的金额是否与用户请求金额一致、转账时间是否在分布式节点提供PK′之后,全部一致则代表验证用户提供的交易信息正确.验证通过后节点将产生的秘密与用户的信息存入节点数据表,节点数据表存储数据的种类与类型,如表2 所示.

Table 2 Table of Node Data表2 节点数据表

分布式网络验证用户提供的交易信息,验证通过后,使用代币合约调用函数mint,在交易区块链上生成ERC20 标准的等额代币,调用函数transferFrom将代币转账到用户的账号地址,将代币合约的地址存入节点数据表.

最后,分布式网络将代币合约地址提供给用户,用户在交易区块链上添加代币.

3.2 资产交易

用户可以通过设置访问控制策略来控制与自己发生交易的用户条件,只有满足条件才能和用户发生交易.

1)用户1 调用Setup算法生成公共参数PK和主密钥MK.

2)用户1 设置访问控制策略A,与满足策略的人进行交易.用户可以将金额、币种、汇率、时间设为属性进行访问控制.汇率为用户的代币除以交易用户的代币.

如图4 所示,Alice 拥有比特币,她接受将自己的数字资产转换为以太币,转换汇率为8~10,转换金额为2~10 ETH,Alice 在2022 年10 月2 日到2022 年11月2 日期间接受资产转换.

Fig.4 Access control policy of Alice图4 Alice 的访问控制策略

在实际情况下用户可以设置多个币种、汇率、金额和时间来实现多样化的数字资产转换.如图5所示,Bob 支持将自己的数字资产转换为以太币和火币.以太币的汇率为8~10,转换金额为2~10 ETH,转换时间为2022 年10 月2 日到2022 年11 月2 日期间.火币的汇率为2~4,转换金额为5~8 HT,转换时间为2022 年10 月2 日到2022 年11 月20 日期间.

Fig.5 Access control policy of Bob图5 Bob 的访问控制策略

用户1 部署一个一号交易合约,使用Encrypt(PK,M,A)算法,加密一号交易合约的地址与preimage的哈希值,生成密文CT.然后将密文CT、公共参数PK和主密钥MK上传到数据库.

3)用户2 查询数据库,寻找符合条件的用户.然后,下载符合条件用户的数据包.用户2 将自己的数字资产信息作为属性集合S和下载的主密钥MK,调用Key Generation(MK,S)为生成私钥SK.其中,SK由属性来确定.

4)用户2 使用生成的私钥SK、下载的公共参数PK和密文CT,调用Decrypt(PK,CT,SK)算法进行解密.如果属性集合S满足访问控制策略A,用户2 就获得用户1 的一号交易合约地址和preimage的哈希值,就可以与用户1 交易.用户1 调用交易合约,将preimage的哈希值作为hashlock和将时间1 作为timelock,调用newContract函数将代币存入一号交易合约.用户2 验证一号交易合约的信息后,部署二号交易合约,将preimage的哈希值赋值给hashlock和将时间2 赋值给timelock,调用newContract函数将代币存入二号交易合约.二号交易合约中设定时间2 小于一号交易合约的时间1,这样可以为用户2 留下充足的时间取走用户1 的数字资产.如果用户1 使用preimage取走二号交易合约资产,用户2 就收到了preimage的值,就可以取走一号交易合约的资产.超过时间,双方都通过refund函数取走自己的代币.

3.3 资产提取

用户将资产从分布式网络中提取的操作,如图6所示.

Fig.6 Diagram of asset extraction图6 资产提取示意图

用户向分布式网络提交资产提取申请,提取申请需要传递的数据如表3 所示.分布式网络中的节点通过查询代币合约地址,验证代币的所有账户与申请账户是否一致,验证资产种类与资产数量是否一致.节点验证这笔数字资产的所有权通过后,分布式网络中的节点将会把各自的秘密提供给用户,用户收集一半以上节点的秘密就可以使用DKG 的私钥还原算法,还原出私钥SK′,取走数字资产.一半以上存储秘密的节点向用户分享秘密之后,分布式网络调用代币合约burn函数销毁对应资产的代币,并从节点数据表中删除相关信息.

Table 3 Extraction Application Information表3 提取申请信息

3.4 激励与付费机制

用户可以在多方交易系统上选择符合自己需求的数字资产类型进行交易.用户质押和提取自己的数字资产不需要付费,而用户交换其他种类的数字资产需要付一定的服务费.这笔服务费一部分会给多方交易系统用来维护交易系统,另一部分会奖励给数字资产在交易中被使用的用户.

多方交易系统鼓励用户将自己的数字资产存入多方交易系统中,多方交易系统中的数字资产的数额大小和种类影响用户的交易效率.用户进行数字资产转换的选择越多,交易越容易发生,所以用户存入的数字资产金额越大、存储时间越长和设置交换的数字资产策略越多,多方交易系统给予用户的奖励越多,奖励为交易区块链的交易币.另一方面,多方交易方案会给服务提供者奖励.分布式网络中的节点成功完成资产质押、资产提取等服务,多方交易系统都会给分布式节点奖励交易币.

用户进行数字资产转换时需要根据交易的数字资产金额付一定比例的服务费,一部分服务费用来奖励用户,另一部分兑换为交易区块链的交易币付给多方交易系统的服务者.

4 实验结果与分析

实验在VMware Workstation 16 的Ubuntu 22.04.2 LTS 虚拟机上进行,Intel®Core™ i5-8300H CPU @2.30 GHz × 2,8 GB RAM.实验的区块链平台为以太坊的Go 语言平台(Go-Ethereum).此外,我们通过启动多个节点来模拟不同的客户端,同时将交易发送到区块链上.

开展实验研究的主要目的有3 个:

1)研究CP-ABE 运行时间与策略数量的关系、CP-ABE 运行时间与日期设定的关系.

2)研究分布式节点数量与私钥还原时间的关系、分布式节点数量对共享算法的影响.

3)部署和使用代币合约所需要的gas 消耗,部署和使用交易合约所需要的gas 消耗.

如图7 所示,策略数量的增加影响CP-ABE 解密算法的运行时间,加密与私钥生成算法的运行时间会增加,其中私钥生成算法的运行时间增加得最多.

Fig.7 Effect of access control policy on running time of CPABE图7 访问控制策略对CP-ABE 运行时间的影响

如图8 所示,随着日期的变化,CP-ABE 的加密时间、解密时间和私钥生成时间几乎不变,所以日期的变化不影响CP-ABE 的运行时间.

Fig.8 Effect of data changes on running time of CP-ABE图8 日期变化对CP-ABE 运行时间的影响

如图9 所示,随着节点的增加,DKG 共享算法与私钥还原算法的时间都会增加.但是随着节点数量的增加,私钥还原算法的时间增长速率加大.本文的DKG 算法是基于可验证的秘密分享设计的,所以DKG 算法的私钥还原效率受拉格朗日插值法的限制.尽管私钥还原的速度随节点增长的速度变化较快,但是节点数为300 时DKG 算法也仅需0.07 s,性能足以满足要求.

Fig.9 Effect of node number on running time of DKG图9 节点数量对DKG 运行时间的影响

如图10 所示,分布式节点部署ERC20 标准代币合约时消耗的gas 值最大,而使用mint函数生成代币和用burn函数销毁代币的gas 值消耗较小.

Fig.10 Gas consumption of ERC20 token contract图10 ERC20 代币合约的gas 消耗

如图11 所示,分布式节点部署交易合约时消耗的gas 值最大,使用newContract函数锁定代币和使用refund函数取回代币的gas 值消耗较小,使用withdraw函数交易代币的gas 消耗也不大.

Fig.11 Gas consumption of trading contract图11 交易合约的gas 消耗

5 系统分析

5.1 安全性分析

影响本方案交易的安全主要有3 个方面:DKG算法、属性基密码和交易合约.

DKG 算法是基于Feldman 方案,Feldman 方案是基于Shamir方案构造的非交互式可验证秘密分享.DKG 算法可抵抗(n-1)/2 个恶意的参与者,由于秘密被公开,所以该方案只是计算安全的(根据密码学中的计算离散对数的困难性所得).每个节点的秘密是由本地随机生成的.在节点都独立的情况下,节点无法获得其他节点的秘密值,因为节点之间分享的承诺值 αi是基于离散对数困难问题的.另外DKG 算法还原私钥是使用秘密分享还原的,可以抵抗(n-1)/2个恶意节点的合谋攻击.DKG 算法假设一半的节点是诚实的,在这个假设下系统是安全的.

在属性密码方面,我们选择Bethencourt,Sahai and Waters(BSW)CP-ABE 作为底层原语.这个方案如果没有多项式时间内的攻击者,则被证明是安全的.

交易合约采用的哈希时间锁机制可以保证交易双方的原子性,即一连串不可再分的交易,即要么全部发生,要么全部不发生.使用交易合约的双方在设定的时间未结束之前无法取走自己的资金,只能使用对方设定的哈希锁的原值取走对方的资金,一旦发送使用哈希原值取走发送方的资金,接收方马上就可得到哈希原值取走资金.中间的时间差,保证了接收方有充足的时间取走资产.设定的时间结束后,交易未发生,双方都可以取走自己的资金,实现了交易的原子性.

5.2 效率分析

影响整体方案交易效率的因素主要是区块链交易效率和DKG 算法.在资产质押与资产提取时,本文方案速度受到参与跨链的区块链的出块时间和确认速度的限制.其余交易都是在交易区块链上使用代币交易,交易速度仅与交易区块链的出块时间与确认速度有关.DKG 算法的效率影响总的跨链交易效率.基于Feldman 方案可验证秘密分享方案的DKG 算法,在保证信息可验证的同时兼顾了效率.虽然DKG 算法存在随节点数量增加导致秘密还原时间增加的问题,但是基本满足方案设计需求.未来,优化DKG 算法可以提升整体方案的效率.

6 结语

本文使用分布式密钥生成与CP-ABE 实现了去中心化的数字资产交易方案.本方案具有4 个特点.

1)去中心化存储资产.本文方案使用分布式网络存储资金,单个节点保存一部分秘密,获得一半节点的秘密才可以还原出私钥.同时分布式网络将用户资产映射到交易区块链账户上.

2)提供智能合约服务.在本文方案中,用户在交易区块链上进行交易.不支持智能合约操作的数字资产,也可以在多方交易系统上使用智能合约.

3)互操作性.本文方案只需用户提供交易区块链上的公钥地址、屏蔽区块链底层技术和协议,将异构区块链上的资产映射到交易区块链上进行交易,实现异构区块链的跨链资产交易.

4)使用CP-ABE 实现交易控制.用户将自己的资产存入多方交易系统中,通过使用CP-ABE 设置访问策略来保护自己的数字资产不被交换为其他种类的资产,同时还控制数字资产交换的金额、汇率和时间.

作者贡献声明:马宇航提出算法思路,完成实验并撰写论文;张亮指导研究方案,设计并修改论文;吴星雨与李鸣参与方案修改和论文修改.

猜你喜欢
代币哈希合约
首次代币发行监管的行为经济学路径
央行等七部门叫停各类代币发行融资
央行等七部门叫停各类代币发行融资
央行等七部门叫停各类代币发行融资
基于OpenCV与均值哈希算法的人脸相似识别系统
基于维度分解的哈希多维快速流分类算法
基于同态哈希函数的云数据完整性验证算法
一种基于Bigram二级哈希的中文索引结构
合约必守,谁能例外!——对“情势变更”制度不可寄于过高期望