基于区块链技术的数字资产隐私保护设计与实践
MONEY CHINA / 2021年4月上财经界
E C O M O M IC
FORUM
■经济论坛
基于区块链技术的数字资产隐私保护设计与实践
普华商业集团有限公司王继辉王奇
摘要:随着人们对隐私信息保护的意识增强,区块链系统如何保护用户隐私问题、提高隐私防护能力将成为许多区块链开发人员重 点研究方向。在这一背景下,隐私公链大有可为。在区块链上使用隐私保护技术,同时不对区块链属性造成任何重大的改变,做到平 衡隐私保护与数据公开。本文从区块链数字资产的隐私保护解决了哪些问题、涉及的关键技术、设计与实践三个方面,阐述了区块链 数字资产隐私保护技术。
关键词:区块链数字资产隐私保护
_、引言
(一) 隐私保护概述
隐私保护通常是指使个人或集体不愿意被外人知道的信息得 到应有的保护。关于隐私保护,根据需要保护的对象可以分为个 人隐私保护和集体隐私保护,对于个人隐私保护来说,通常是指 保护人们在日常生活中不必也不愿意让别人了解的信息,属于个 人的秘密。而集体隐私保护通常是指保护同属一个利益共同体的 信息.往往这类信息会触及商业范畴,例如企业数据、财务情况等,这些对于集体来说皆属于重要资产,而且集体隐私因为所属关系 通常由多人知晓,故集体隐私泄露风险更大,泄露后损失也将波 及更多人的利益。
(二)数字资产隐私保护的重要性
具有分布式账本功能的区块链系统能够让每一个参与到该系 统的人都得到系统数据的完整备份,因此系统中所有的交易数据 便公开于每一个参与者,实现数据透明且不可篡改,这本身是区 块链的优势,但是在实际应用中,多数数据需要进行加强保护,对于这些被保护的隐私数据而言,区块链公开透明的特点又成为 其重大的不足。
通常,的交易被认为是匿名的。但事实上,这些 用区块链技术实现的体系可能是世界上最透明的支付 网络。所有的交易都是公开的、可追溯的,并且永久 性地存储在网络中。地址是定义的 分配和传送终点所需的唯一信息。虽然这些地址由用户的
钱包 软件匿名产生,可是一旦地址被使用,与其相关的所有的交易 历史便暴露了这些地址的存在。任何人都可以查看任何地址的 余额和所有交易。由于用户通常需要透露他们的身份以便换取 服务或商品,这样一来,地址就无法保持完全匿名。同时,由于区块链是无法更改的,所以一些当前无法被追踪的地址可能在未来就能被追踪到。对于如何在区块链中实现对政 府、企业、个人的隐私数据保护,是区块链技术应用能否大规模 落地亟待解决的问题。
二、数字资产隐私保护解决的问题
区块链技术能够在数字资产领域被广泛应用存重要原因之一 就是保护账户和交易的隐私性,不过随着对区块链技术的深入研 究,发现事实并非如此怎样实现对区块链上的数字资产的隐私 性进行保护,这也成为当下区块链技术向前发展的重要方向。去 中心化和开放性,意味着区块链上所有交易数据都是公开和透明 的;但对区块链应用方来说,&上所有的数据如链上的智能合约、交易信息等数据信息都是公开透明的,却不是他们所希望看到的 情况。因为很多时候,对于个人的医疗记录、交易记录等属于个 人隐私信息,对于集体的业务往来记录、资产状况、重要数据等 属于集体隐私信息甚至是商业机密,而对于隐私,不论是从人内 心角度还是从数据的价值角度出发,个人或是集体当然不希望隐 私被他人所知。
隐私保护在数字资产中尤为重要。虽然区块链一直推崇其匿 名性,从目前来看,在各类数字通证的交
易中,使用者无需使用 真名,而是利用交易地址作为交易标识,将交易地址和地址持有 人的真实身份的关联相互隔断,由此保护隐私,达到匿名的效果。但是重复使用公钥哈希值作为交易标识的数字通证交易显然能建 立关联,通过对这些具有关联性的信息进行推测,能够得到使用 者的敏感隐私信息,故此当下区块链的匿名性并不能保护区块链 使用者的隐私,需要采取一定的措施来实现对区块链上隐私数据 的保护,进而实现用户隐私保护基于区块链的数字资产的隐私 保护中重点是账户信息保护和交易数据保护。
(一)保护交易数据
保护交易数据是指对区块链作为分布式账本同步数据时存储
ii绿码怎么申请
f B k l C O M O I
f_ FORUM
L m经济论s
争当四好少年‘图1
的交易数据以及这些数据背后的交易习惯、资产M性等有价值的 数据进行保护。目前,基于区块链的数字资产相关应用场景中,因为区块链公幵透明的属性,交易记录通常是公开的,并没有采 用技术手段对这些数据进行保护。尤其是区块链技术在银行、保 险等金融领域逐渐进行深入应用,交易数据就成为了用户重要且 敏感的数据,通过对交易数据进行分析往往能够反映一些关于用 户收入和消费水平、财务状况等敏感信息,很可能造成用户的隐 私泄而对于企业用户来说,交易数据更是会涉及商业机密,一经泄露会对企业产生巨大的损失;
采用数字资产隐私保护技术,加入区块链网络的用户依旧可 以同步交易记录和数据,但此时的交易记录和数据是得到隐私保 护的,交易记录和数据不会泄露给非数据使用者,
(二)保护账户信息
区块链上可以被查看的账户信息包括地址、账户里的余额以 及历史交易信息,在区块链系统中,地址通常是由用户自己生成的,与现实中真实的用户身份没有直接联系,用户在生成和使用地址 时并不需要其他人参与,所以理论上来说相较于传统的现实生活 中账号而言,区块链系统中的地址是匿名的。但是实际情况确是,这样的保护方式强度较弱,这是因为用户通过地址作为账户信息 参与到区块链系统中时,必然会留下交易轨迹,又因为账户信息 与区块链地址有着对应关系,区块链地址虽然通常作为交易的输 入输出账号,但是实际上就相当于用户在区块链系统中对应的身 份信息,如果对交易数
据进行跟踪观察,再结合地址的1P等信息 是能够追踪到用户账户与交易之间的关联的,由此分析推测区块 链地址对应的真实身份。
账户信息对于个人或者组织来说都是十分重要的,存储并利 用个人及组织的账户余额、历史交易信息等进行对比分析可以掌握账户的的数字资产状况,获得账户的交易习惯,而这些关于资 产的信息也会帮助营销人员或者服务平台衡量账户对应的主体的 经济能力,或者利用账户信息得到用户真实信息使得相关机构可 以通过电话等邀请用户参加他们的活动或是购买商品服 务对用户进行骚扰。
通过数字资产隐私保护技术解决账户信息的隐私保护问题,使得用户的账户信息处于安全状态,保证用户对自己的数据拥有 自主权,不让不正当企图者有机可乘。
三、区块链数字资产隐私保护的关键技术
(一)零知识证明
根据百度百科可以得知,零知识证明是在10世纪80年代被S.Goldwasser、S.Micali及C.Rackoff所提出的一种涉及两方或多 方的协议。指证明者在不提供给验证者任何有关被证明消息信息 的情况下,依旧能够向验证者证明某个论断的正确性:证明举例:假如有一份文件被锁在一个非常安全的保险箱 内,该文件有且仅有一份.此时Alice想要向Bob证明她拥有 保险箱的密码,通常的办法是Alice直接把
密码告诉Bob,Bob 用密码打开保险箱,验证Alice的保险箱密码是正确的,但是这 样Alice就把密码泄露给了 我们现在将验证方式进行改进升 级,由Alice自己将保险箝打开并取出文件展示给Bob,进而证明 了Alice拥有保险箱的密码.后面这种方式的好处是Alice证明给 Bob自己拥有保险箱密码的同时并没有泄露密码,这就是零知识 证明。
零知识证明分为非交互式零知识和交互式零知识。其中交互 式要求验证者不断对证明者的知识进行提问,而非交互式通过额 外的机器和程序确定实验顺序,避免了串通的可能
零知识证明中最有名的一个算法zk-Snarks,是“
零知识简
MONEY CHINA / 2021年4月上财经界
洁无交互知识认证”的简称。zk-S rw k s将需要验证的交易内容 转化为两个多项式乘积相等的证明,并结合同态加密等高级技术,
在执行事务验证的同时保护隐藏的事务量。zk-SNARKs协议由 三个算法组成:Setup、Prover、Verify。zk-SNARKs的典型流 程如图1所示。
(l)Setup 算法接受一个以R1CS (Rank-1 Constranint System)的形式描述的谓词F作为输入,并输出两个公开的密钥:证明密钥pkF和验证密钥vkF。其中pkF用于生成证明,而任何丨 人都可以通过vkF验证该证明的有效性。针对任意一个谓词F,
该步骤仅需运行一次,生成的密钥可以反复用于关于该谓词的NP
语句而不会影响其安全性。尽管生成的两个密钥是公开的,但是 生成密钥过程中的所有中间运算结果都必须保密并且在密钥生成 后销毁,否则攻击者可以利用这些结果伪造证明,因此这个步骤 必须由可信机构进行。
产生证明密钥pkF:
(K U.R'v
⑷,!^。°■⑷,■.⑷卜+i
产生验证密钥VkF:
(fl1,’{’.#(*)’#(-)}峰叫,《0,’,广,9'产)
⑵Proven算法以pkF、一个公幵输入x,以及一个秘密输入 W作为输入,并输出一个证明<77。TT可以证明“对于公开输入F
和X,我知道某个秘密输入w,使得F(x,w)为真”,同时不暴露 任何关于秘禮输入w的信息。
-far tb c in p u t u. e x ecu te th e o u m p u ta tio a o f f(u)ub taiu iu g valuer for all
th r it<Tnm liary vturiftblm
~ a>«i|qi all xvlunt tu t itf iinnicr>*pUHl \iu'i«bk' poh-num ialii L(x)•• /〇(j~)-f
Hud sim ilarly /t(x).0(s)
-
<m〇kd th e p r t i w's variahk* \-alu<« lo th e en cry p ted variable potynauuife. .uni apply ;i rn-kntm'lrtit/t A-shifx ^' )■J^[ w iuiW ly
-一“fl«i —广•(#.⑷广 <U K U h n iU rly f*• f>
• I
-aMOgn th r w ia b k* \n lu«i c u n sistra ry poi>naiuiab
/⑷-…疒(r广疒(劣.疒立(*r•⑷、广
-«x«,p u tr tUr p roof .^,^)
⑶Verifier算法以vkF、x以及t t作为输入,并根据t t的有 效性输出“接受”或者“拒绝”〇
-parse a pro\ided proof as . g〇r.. g^p.
-assign input/output values to verifier's encr>fpted polynomials and add to 1:
g^B)=gj°^and simUarly for g^{t)and g〇A']
i~l
_ variable polynomials restriction check :
e=e ^9^-9^similarly for g^p and g〇r
_ variable values consistency check:
e{9^9^^ 9^)= e (S2-^)
-valid cqjerations chedc:
物)=e(9r,小9)
目前零知识证明在区块链中主要用于隐藏交易的发送方地
址、接收方地址、转账金额,用户具有对这些数据的完全控制权,
可以选择性地提供给其他人查看这些数据的密钥,这样谁拥有
了查看密钥谁才能看到交易内容:基于零知识证明机制的区块
链系统ZCash能够在不泄露交易转账的金额、发送方、接收方
的地址,也不泄露之前的交易发送方、接收方的地址的情况下,
就能够做出是有效支付还是无效支付的判断。对于有效的支付,
他们就可以从挖矿的角度给予确认,增强了用户交易时的隐私
和安全性。
(二)环签名
环签名的概念是2001年Rivest,Shamir和Tauman三人提
出的签名者模糊的数字签名,在环签名生成过程中,真正的签名
者任意选取一组成员(包含它自身)作为可能的签名者,用自己
的私钥和其他成员的公钥对文件进行签名,签名者选取的这组成
员称作环(Ring),生成的签名称作环签名(Ring Signature):环签
名是一个能够实现签名者无条件匿名的签名方案世界军事实力排名
环签名的特点:
(1) 签名者利用自己的私钥可以将签名中的一系列值首尾相 连,环签名因其签名值由一定的规则组成一个环而得名。
(2) 没有体建立过程,也无特殊的管理者。
(3) 不需要预先加入和撤出单个体,体的形成根据需要在 签名前由签名人自己指定,是一种自组织结构。
⑷不能追踪签名人身份,能通过验证确定签名者是其中某一
人,但无人能指出具体是哪一位成员=
环签名的安全性:
(1) 正确性:按照正确的签名步骤对消息进行签名,并且传播 过程签名不被篡改,则环签名满足验证等式。
(2) 无条件匿名性:攻击者即便非法获取了所有环成员的私钥,但能确定出真正签名者的概率不超过1/r,r是环中成员(可能的
签名者)的个数。
(3) 不可伪造性:环中其他成员不能伪造真实签名者的签名,攻击者即使在获得某个有效环签名的基础上也不能以不可忽略的
I优势成功伪造一个新消息的合法签名。
jj
经济论坛
CO M O M IC FORUM ▲图2
环签名在区块链中具体应用在于隐藏交易发送者和交易接收 者。门罗币就是采用环签名技术实现的一个匿名的数字加密货币, 具有以下两大特性:
(1) 不可追踪性:对每个交易输入,所有可能的交易发起者都
是可能的。
(2)
不可链接性:对任意两个交易输出,不能证明他们是否发 送给同一用户。
(三)同态加密
同态加密是一种密码学技术,但是不同于一般加密技术主要 用来保证数据的存储安全,同态加密技术主要解决的问题是数据 处理安全,相比于一般加密算法,同态加密算法不仅能够实现基 本的加密操作,还提供了一种对密文数据进行处理的功能。同态 加密技术的特点是计算后解密与解密后计算获得的结果相同,利 用这个特点可以使得没有密钥的人直接操作同态加密后的密文, 这样有几个好处:一是减少了密钥泄露风险;二是因为不需要传 输密钥进而减少通信代价;三是可以将计算的工作进行
转移,委 托给第三方对数据进行处理,同时不会泄露信息;四是解密方得 到的是最后的结果,对于过程中的密文内容无从得知,这样也可 以提高数据的安全14。
目前,同态加密技术通常用于区块链的数学运算中,比如在 联盟链中金融机构之间的对账,对资产数据进行加密是很有必要 的比如在fiscobcos 链实现同态加密的过程是:凡是上链的数 据可通过调用paillier 库完成加密,链上的密文数据可通过调用
paillier 预编译合约实现密文的同态加运算,密文返还回业务层后,
可通过调用paillier •库完成解密’得到执行结果。在使用同态加密
技术时,计算的数据和输出数据加密前都是十分简单的数字,但 是需要转换为复杂的密文,这个过程也比较耗时,同态加密算法 确实在现实应用中效率不高。
四、区块链数字资产隐私保护的设计与实践
本章内容从实际应用出发,以电子投票业务为例,对电子投
票业务在链上的应用实现进行详细说明,并通过架构设计图、功
能流程图对整个业务实现的功能流程进行说明,通过区块链隐私 保护技术实现对选民投票记录和数据隐私以及账户隐私的保护目 的,解决传统中心化电子投票系统的投票数据不够公开透明且容 易被篡改伪造,用户的隐私信息存在被泄露风险,选民无法验证 投票结果等痛点。
(一) 投票方案系统设计
该投票系统构建于DAPP 应用,通过RPC 与链上系统交互 合进行合约调用以实现用户数据上链,从而达到去中心化投票的 目的,并通过使用隐私保护算法实现账户、交易信息的隐私数据 保护,首先需要管理员通过使用合约部署工具进行合约部署,然 后通过使用DAPP 应用调用合约进行投票活动创建与设置,通过 设定活动开启时间,时间到后活动自动开启,这样用户才可以通 过DAPP 调用合约进行投票授权。当合约判定到达设定的投票开 始时间时开启投票通道,授权的用户即可进行投票发起操作,通 过合约执行实现数据上链=整体架构设计如图2所示。
(二) 投票方案功能流程说明海尔平板电视
本系统从模块划分,可分为七个模块,分别为合约部署模块、 活动管理模块、投票身份注册模块、投票登录模块、身份权限管 理模块、
投票模块以及投票结果查询模块。合约部署模块即为合
MONEY CHINA / 202丨年4月上财经界
投麟功能洗I f B
C<"*n )-----—|
11»| |
|
^m u") 1圆1-
i
U J S W I
1卜
|m R i t H|
t
|1-----叫I
戒烟▲图3
约的部署发布动作;活动管理模块包括活动创建、活动设置、活动开启、活动关闭以及活动取消;注册模块为可参与投票的用户 身份注册;登录模块为注册的可参与投票用户登录操作;身份权 限管理模块控制登录用户身份授权,包括管理员和普通投票用户 身份;投票模块负责投票动作发起;投票结果查询模块即为用户 投票结果查询与投票结果公布。功能流程图如图3所示。
综合上诉模块与流程分析,具体流程描述如下:
1、合约部署
投票合约使用C++编写,执行虚拟机为WASM虚拟机,活 动方首先通过合约部署接口进行投票合约发布,将投票合约部署 到区块链上。合约功能需包括活动创建方法、活动设置方法、活 动注销方法、开启投票方法、关闭投票方法、投票授权方法、身 份校验方法、创建投票方法、撤销投票方法、投票结果公布方法、管理员设置方法。
2、活动创建
管理员通过登录DAPP管理账户进行活动创建,包括创建活 动名称、设置开始结束时间、活动详情信息填写、抽奖规则设定,该创建记录执行合约之后直接数据上链,通过区块链浏览器可直 接查看,进行活动信息公开展示。
3、活动设置
管理账户通过活动设置接口对活动进行设置,包括设置活动 开始与结束时间、投票开始结束时间,用以对需要更改的活动起始时间与投票起始时间进行更改;活动时间即为限制用户注册登 录时间,即活动结束之后用户无法继续登录注册投票身份;投票 时间即为授权为可参与投票的账户可以投票与截止投票的时间限 制,即可投票时间内的有效投票数才能记为投票结果。除时间相 关设置之外还有活动规则设置,设置每日没人投票次数限制以及 投票目标个数限制。
4、开启投票
投票时间设置之后,合约自动会进行判定,准时开启投票通道,用户可在关闭投票之前进行投票操作,并将此阶段投票数记为选
蔚示准。
5、身份注册授权
身份注册即为账户投票报名确权登记,通过输入账户私钥加 密信息在合约进行备案,合约通过零知识计算获取对应投票账户 秘钥散列哈希标识,并录入可投票用户列表,如没有散列哈希标 识的账户不可投票。该项操作意为通过零知识证明技术对用户账 户信息进行隐藏,全程数据传输都是加密数据,节点无法知晓,
乌兰图雅 套马杆只有合约能够验证是为合法用户身份,并为账户办法加密的投票 许可票据。
6、用户登录
用户获取到合约颁发的投票许可票据之后,可执此票据进行 系统登录,这样用户的登录信息同样是为私密性登录,旁人无法 获知登录账户具体身份信息,但是可该账户进行验证,验证成功
jj W

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。