原文标题:《一种金融级安全的区块链资产交易系统》 图 1 同态性 如图 1 所示,记原始数据为 m,转换方法为 R,转换后数据为 c,操作处理为 F。m 可以经过 R,从而被转换为 c,再对 c 进行操作 F 得到 c』,有: C』 =F(c)= F(R(m)) (1) 而对 m,先经过操作 F 得到 m』,再对 m』进行转换 R,得到 c』,有: C』 =R(m』)= R(F(m)) (2) 如果两者相等,则称转换 R 针对操作 F 具有同态性。椭圆曲线加密算法的公私钥转换具有针对加法的同态性,另外存在特定的加密算法的明文和密文之间具有加法或者乘法同态性而这一类加密算法又被称为同态加密算法(见图 2)。 图 2 同态加密 如图 3 所示,在区块链网络中,A 当前余额 100 元,B 当前余额 50 元,A 要向 B 转账 10 元,需要区块链节点记账,但用户不希望让区块链节点知道交易金额以及最新余额。同态加密技术对用户的交易数据用其公钥进行加密保护,交易时都是密文运算,最终账本中加密保存,非业务参与方无法看到具体的余额和转账额,即使节点被攻破,获取到账本记录也无法解密。 图 3 同态加密前后对比 但是同态加密后的交易金额以及最新余额对区块链不可见,如果交易后出现账户余额小于零,这样的交易是无效的,因此采用环签名技术对同态加密后的交易数据进行合法性校验,可以保证交易的有效性。 3.2 环签名技术 2001 年,Rivest、Shamir 和 Tauman 3 位密码学家首次提出环签名 [11]。环签名是签名者本人在完全匿名的情况下,在签名参数公开后,除了签名者本人,其他任何人都不能确定真正的签名者是哪一个环成员。普通类型的加密签名可以跟踪交易,知道各自的发送者和接受者,而基于一次性环签名的协议允许用户实现不可链接性。环签名是一种特殊的群签名,没有可信中心,没有群的建立过程,对于验证者来说,签名人是完全正确匿名的。环签名还可以作用于交易金额上,保证交易金额的合法性。 如图 4 所示,由一定数量的成员节点组成一个「环」,环中的每个成员各有自己的私钥和公钥,私钥只会由本节点保存不会对外公开,而公钥会公开给环内的其他成员以及必要的验证者。当环中的其中一个成员需要对某个信息进行签名时,会使用自己的私钥和环中其他成员的公钥,对信息执行环签名算法得到签名,然后把信息和签名发送给验证者。验证者收到信息和签名后,使用环中所有成员的公钥对信息和环签名进行环验签。通过对交易信息的环签名和环验签,可以保证资产交易过程中的业务合法性。 图 4 环签名技术 4 整体架构 4.1 系统架构 在区块链系统处理流程中,一笔交易从最初被应用层提交到接入节点,经过共识网络达成各节点的共识,然后分别被各个节点启动的智能合约执行后,才会最终记录到区块链的账本中。 如图 5 所示,本文提出的基于同态加密和环签名的资产交易系统,应用层发送交易请求后,区块链接入层进行同态加密操作,用以加密用户提交的交易数据,然后进入共识处理层,只有当交易数据加密后才会广播到区块链上的其它节点进行共识。此时,交易数据已经是密文,其它业务无关方无法窃听交易的具体内容。 图 5 系统架构图 同态运算会在智能合约中被调用,执行具体的运算逻辑,运算的对象是密文,运算结果为真实结果对应的密文,环验签保证该密文的业务合法性,最终该密文被存储到区块链账本中。一笔交易请求在本文系统中的数据流图如图 6 所示。 图 6 交易数据流图 4.2 合约架构 如图 7 所示,当智能合约组件接收到交易请求后,会首先进行同态运算和环验签操作,注意这里的交易请求已经在区块链接入层进行过同态加密操作。对交易数据进行环验签操作,验签不通过则放弃该交易,只有验签通过才会进入合约代码执行模块继续执行该交易对应的智能合约逻辑。执行完毕后提交,将交易密文进行落盘操作。 图 7 合约架构 5 具体设计与实现 5.1 金融资产交易方案设计 金融资产包括存款、积分、供应链应收账款、证券、股票、基金等,其中资产余额、交易金额等都是重要的敏感信息,不允许非业务相关方面查看。区块链本身所采用的哈希、签名机制可以在开放的网络环境中保障账本数据的防篡改、可追溯。这样的设计使得账本数据对每个参与方可见,任何组织都可以访问到相同的数据,如果将用户的隐私数据放到区块链上将会放大用户隐私泄露的风险。本系统可广泛应用于积分流通、应收账款流转、资产证券化等金融资产交易厂家,解决交易过程中资产余额、交易金额等敏感信息暴露的痛点问题。本文以转账为例,说明本系统是如何设计和实现利用同态加密技术,在保证业务逻辑正确的前提下保护用户隐私。 如图 8 所示,假设账户 A 初始余额为 def(实际明文为 100),账户 B 余额为 jkl(实际明文为 50),账户 A 向账户 B 转账 10,转账额经过区块链接入层的同态加密模块,分别使用账户 A 和账户 B 的公钥进行加密,被转换成密文 xyz。该笔转账交易经过区块链的共识处理层使各节点达成共识后,交由智能合约层具体执行,智能合约调用同态运算模块,分别对账户 A 和账户 B 的余额做加减操作,操作的数据均为密文。得到转账后的余额分别为 ghi(实际明文为 90)和 opq(实际明文为 60),把转账后的余额密文直接存进数据账本内。至此,用户的敏感数据可以经过加密后才送到区块链各节点执行,却仍然保证执行结果的正确性。区块链用户无法对密文的数据解密得到明文数据,所以无法掌握该账户信息,保护了用户隐私。 图 8 同态加密资产交易方案 5.2 金融资产交易具体实现 金融资产交易涉及交易双方的资产运算、资产余额校验等环节,数据一般以明文的形式处理,增加了用户隐私信息泄露的风险,采用同态环签名技术对交易数据进行加密保护后,可保证资产在正常交易的同时敏感数据不可见。以转账为例,介绍同态环签名技术是如何运用在转账交易过程中的,具体做法是在发起交易时,对交易进行环签名,在区块链上进行环签名校验。假设现有账户 A 的当前余额明文为 ma0,当前密钥为 sa0,非对称加密私钥为 da,公钥为 Pa;账户 B 的当前余额明文为 mb0,当前密钥为 sb0,非对称加密私钥为 db,公钥为 Pb。账户 A 向账户 B 转账,转账额明文为 mt,交易流程如图 9 所示。 图 9 基于同态加密和环签名的资产交易流程图 对其中使用到的函数解析如下: 系统公共常量:在椭圆曲线上找到某个点作为整个系统的公有常量,在接下来的 T、Sign 和 Verify 函数内被引用。 对金额的保护函数:m』 = T(m,s)(「』」符号为密文标识符,下文同)。 把明文金额 m,使用密钥 s,经过不可逆的加密函数 T,得到金额密文 m』;其中,密钥 s 由金额持有者私下保存。 对金额密文的同态加函数:m3』 = Add(m1』,m2』)(满足关系 m3 = m1 + m2);对金额密文的同态减函数:m3』 = Sub(m1』,m2』)(满足关系 m3 = m1-m2),为对金额密文的同态加法函数和同态减法函数,其中入参 m1』和 m2』是经过上述 T 函数加密的密文,即 m1』 = T(m1,s1)、m2』 = T(m2,s2),s1 和 s2 可以且一般情况下不相等;注意,金额持有者在调用这两个函数时,需要把实际金额和密钥也同时做加法或者减法,并把计算得出到最新金额和最新密钥私下保存,例如在调用 m3』= Add(m1』,m2』)时,需要同时计算 m3=m1+m2,s3=s1+s2,然后把最新金额 m3 和最新密钥 s3 私下保存,因为想对 m3』作进一步(加或减)计算(然后进行下述环签名)时,需要知道 m3 和 s3。 对金额的环签名函数:sign = Sign(m,s)(m 为金额明文,s 为密钥,sign 为签名);对金额密文的环验签函数:true / false = Verify(m』,sign)(m』为金额密文,sign 为签名)。 非对称加密函数:msg』 = Enc(msg,P)(msg 为明文,P 为公钥,msg』为密文);非对称解密函数:msg =Dec(msg』,d)(msg』为密文,d 为私钥,msg 为明文)。 普通的非对称加密解密只是为了把实际转账额和(临时的)转账密钥私下发给对手方,具体流程主要分 3 个阶段。 (1)初始化阶段:得到账户 A 和账户 B 分别的转账前余额密文 ma0』和 mb0』。 (2)账户 A 发起转账:根据转账前余额 ma0、转账前密钥 sa0、转账前余额密文 ma0』、转账额 mt, 经过计算得出转账后余额 ma1、转账后密钥 sa1、转账额密文 mt』(上链)、转账后余额密文 ma1』(上链)、对转账后余额的环签名 sig(上链,为了证明转账后余额非负)、对转账额 mt 和转账密钥 st 的加密密文 cipher(上链,为了把转账额和临时密钥私密传给账户 B)。其中,mt』、ma1』、sig 上链后,智能合约会使用环验签验证 ma1』的合法性。 (3)账户 B 接收转账:根据转账前余额 mb0、转账前密钥 sb0、转账前余额密文 mb0』、转账额 mt、转账密钥 st、转账额密文 mt』,计算得出转账后余额 mb1、转账后密钥 sb1、转账后余额密文 mb1』(上链)。 6 分析与评估 6.1 性能分析 本文所介绍的系统运行在 4 节点机器上,单台机器配置 16CPU,主频 2. 6GHz,32G 内存,分别执行普通的资产转移交易和经过同态加密与环签名认证的资产转移交易,具体对比结果参见表 1(本试验为多次试验,表 1 展示数据为多次平均数据去除小数点)。 表 1 两种交易单线程处理效率对比 由试验结果分析可知,在交易量高频发生的场景下,使用经过同态加密与环签名保护的资产转移交易,与普通的资产转移交易对比,会有一定程度的性能上的损耗。通过对具体业务场景的评估分析,将本系统投入在实时性要求和交易频率较低的交易场景中,可发现性能并无太多影响,基本满足业务需求。 6.2 效果评估 本系统利用同态加密技术和环签名技术,构建了一个安全可靠的区块链交易系统,该系统具有如下几个特性: (1)保密性。利用同态加密技术对交易信息进行加密,区块链账本同样只存储密文,交易信息对链上的其他用户不可见,有效地保护了用户交易隐私。 (2)合法性。同态加密后的交易信息无法验证是否合法,利用环签名技术对交易金额进行环签名和环验签,保证了所做交易的业务合法性。 (3)易用性。同态加密和环签名均以独立模块接入区块链系统,系统改造成本低,易用性强。 7 结束语 本文基于同态加密和环签名技术设计构建了一种区块链资产交易方法,利用同态加密对交易信息进行加密保护,同时使用环签名对交易信息进行合法性验证,以保证交易有效。同态加密和环签名技术作为加密性和隐匿性较强的技术,在如今对区块链隐私保护要求越来越高的情形下,将被更多地应用到不同的业务场景中。总之,本文所介绍的系统在经济性、实用性和易用性等方面能使区块链系统以最小的成本完成改造,但由于同态加密和环签名操作使得系统性能有所下降,在实时性要求不高、交易频度较低且保密等级较高的金融场景中使用系统表现良好。未来笔者将持续探索同态加密和环签名在更多金融业务场景下的应用效果,以及更多隐私保护相关技术的场景应用和落地。 参考文献 [1] He P, Yu Y, Zhang YF, Bao YK. Survey onblockchaintechnology and its application prospect[J]. Computer Science,2017,44(4):1-7. [2] Tschorsch F, Scheuermann B. Bitcoin andbeyond: A technical survey on decentralized digital currencies [R]. IEEE Communications Surveys & Tutorials, 2016,18(3):2084-2123. [3] 祝烈煌, 高峰, 沈蒙, 等. 区块链隐私保护研究综述 [J]. 计算机研究与发展, 2017, 54(10):2170-2186. [4] Bonneau J, Narayanan A, Miller A, et al. Mixcoin: Anonymity for bitcoin with accountable mixes[C]. International Conference on Financial Cryptography and Data Security. Springer, Berlin, Heidelberg, 2014: 486-504. [5] Valenta L, Rowan B. Blindcoin: Blinded, accountable mixes for bitcoin[C]. International Conference on Financial Cryptography and Data Security. Springer, Berlin, Heidelberg, 2015: 112-126. [6] Noether S. Ring signature confidential transactions for Monero [ J ]. IACR Cryptology ePrint Archive, 2015:1098. [7] Miers I, Garman C, Green M, et al. Zerocoin: Anonymous distributed e-cash from bitcoin [ C ]. 2013 IEEE Symposium on Security and Privacy. IEEE, 2013:397-411. [8] Heilman E, Alshenibr L, Baldimtsi F, et al. Tumblebit: An untrusted bitcoin-compatible anonymous payment hub[C]. Network and Distributed System Security Symposium. 2017. [9] Rivest R L, Shamir A, Tauman Y. How to leak a secret[C]. International Conference on the Theory and Application of Cryptology and Information Security. Springer, Berlin, Heidelberg, 2001: 552-565. Ablockchain asset trading system based on homomorphic encryption and ring signature FENG Haoming, CHEN Hang, LIU Yanping (Industrial and Commercial Bank of China, Software Development Center, Blockchain Laboratory, Guangzhou 510665, China) Abstract: A blockchain asset trading system based on homomorphic encryption and ring signatures is proposed.Through homomorphic encryption technology, user transaction information can be encrypted to make it invisible to other users, while ring signatures can verify the homomorphic encrypted cipher text, it is checked for business legitimacy to ensure the legitimacy of the transaction. This method can protect the originally open and transparent user asset transaction information on the blockchain. It has the characteristics of decentralization, security, reliability, and high ease of use. It can effectively protect the privacy of users and facilitate the enhancement of the zone. Blockchain's privacy protection function for user transaction information in financial asset transaction scenarios is conducive to promoting the implementation and development of blockchain privacy protection technology in financial scenarios. Key words: blockchain; homomorphic encryption; ring signature; finance asset trading; privacy protection 作者简介 冯浩铭:中国工商银行软件开发中心区块链实验室技术骨干,工行区块链技术平台「工银玺链」团队架构师,对密码学、共识算法、以太坊、超级账本等区块链理论及产品有深入研究,具有多年区块链平台设计、开发及应用的实践经验,获发明专利多项 陈杭:中国工商银行软件开发中心区块链实验室成员,工行区块链技术平台「工银玺链」团队工程师,主要研究智能合约虚拟机技术、安全多方计算、超级账本等 刘彦平:中国工商银行软件开发中心区块链实验室成员,「工银玺链」团队产品经理,主要负责工商银行区块链应用场景规划、区块链产品功能设计、区块链产品及应用推广、区块链前瞻性研究等工作 论文引用格式: 冯浩铭,陈杭,刘彦平. 一种金融级安全的区块链资产交易系统 [J]. 信息通信技术与政策, 2020(1):61-68. 本文刊于《信息通信技术与政策》2020 年第 1 期 来源链接:weixin.qq.com —- 编译者/作者:区块律动BlockBeat 玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。 |
硬核:一种金融级安全的区块链资产交易系统
2020-03-12 区块律动BlockBeat 来源:区块链网络
LOADING...