当前区块链已成为各国重点研究的技术之一。数字货币是区块链的一项重要应用,中国人民银行从2014年就开始研究数字货币,计划把数字货币和电子支付工具结合起来,替代一部分现金[1];2016年12月国务院将区块链写入《“十三五”国家信息化规划》[2];2019年,Facebook正式公开数字货币Libra计划,意在打造一套全球性的数字货币。作为货币,保障用户的隐私至关重要[3-7]。然而区块链上的每一笔交易都需向全网络公开,以便所有的用户验证此次交易是否合法、是否存在双重花费等问题。由于这种公开透明性,每笔交易的交易金额、地址都清晰地记录在链上,攻击者通过分析这些数据可以知晓哪些地址属于同一个人,甚至可以知道这个人在现实中的身份,对用户的隐私造成极大的威胁[8]。要保障用户的隐私必须做到匿名性和不可链接性。匿名性是指无法通过链上的交易知晓用户的真实身份;不可链接性是指无法将同一用户的不同地址链接起来且无法将同一用户的不同交易链接起来。
根据文献[8-11],区块链的匿名性为伪匿名性,通过对发布在区块链上的交易图谱进行分析能够获得用户交易地址的链接关系,甚至可以将用户地址和IP地址关联起来[12-13],因此并不能保护用户的隐私。然而区块链因其分布式的特点,传统的隐私保护方法在此并不能很好地适用。
本文提出了一种改进的数字货币混合方案,有混币需要的用户将资金委托给一组混币服务器,混币服务器群组在相互配合和监督下完成混合操作。该方法可以保证资金的安全性与混合的隐私性;对用户而言,可以节省计算与通信开销。
1 相关工作增强区块链用户隐私的方法有如Zerocoin[14]使用的零知识证明[15]等,但此类方法通常无法兼容比特币区块链。在比特币区块链中一般使用的隐私保护方法为混币,本文使用的即为混币方法。混币技术根据是否有混币中心分为中心化混币和去中心化混币。
2014年Bonneau等[16]提出了中心化混币方案Mixcoin,该方案通过引入中心化的混币服务器来打断交易的可链接性,增强区块链的隐私性。然而Mixcoin混币的安全性和隐私性依赖于混币服务器,如果混币服务器偷币或泄露混币细节,用户则无法阻止。Blindcoin[17]是由Valenta等提出的采用盲签名技术来改善Mixcoin缺陷的中心化混币方案,利用盲签名技术保障了混币中心在能为混币用户提供服务的同时无法将用户的输入地址和输出地址连接起来,但是此方法依然无法杜绝混币中心的作弊行为。
与中心化混币对应的是抛弃混币中心的去中心化混币方案。CoinJoin[18]允许所有参与者的交易合并成一个交易,只有当所有参与者确认自己的输出地址无误时才进行签名,确保资金将被转移到他们的地址。但是在混币过程中有用户恶意拒绝签名就会发生DoS(Denial of Service)攻击。CoinShuffle[19]和文献[20]解决了混币参与者知晓混币细节的问题,通过逐层解密并洗牌的过程使得即使混币参与者也无法得知其他人输入地址与输出地址的对应关系。但需要所有混币用户在混币过程中全程在线。CoinParty[21]提出了一种基于混合网络的去中心化混币方案,混币用户将比特币提交到混币服务器群组,之后的工作由混币服务器群组完成,无需用户在线,但混币金额固定。
本文提出了一种可自定义混合金额的基于混合网络的混币方案。该方案中,无需用户全程在线,只需将混合资金与经过层加密的输出地址提交给混币服务器群组,之后的工作由混币服务器群组来完成。混币服务器群组无法知晓混币细节,保证了混币的隐私性。混币服务器相互监督保证了混币的安全性。惩罚机制增加攻击成本,可减少攻击的发生。
2 协议设计数字货币的混合目的为:n个用户将输入地址
本方案主要有以下5个步骤。
(1) 初始化阶段,该阶段首先从所有提供混币服务的机构或个人中产生一个混币服务器群组,其中每个混币服务器代表一个不同的混币服务提供者。再由混币服务器群组生成一个由所有混币服务器共同控制的托管地址E。此阶段只涉及混币服务器,可以在实际混合操作之前的任何时间发生。
(2) 交互阶段,混币服务器群组接收混币参与者。该阶段是用户与混币服务群组唯一的交互阶段。想要进行混币操作的用户只需向任意混币服务器发送一个请求,并接收初始化阶段生成的托管地址E以及一组混合参数和条件。如果此用户同意这些条件,用户只需生成一个输出地址为E的交易,就可以将所需的资金提交到托管地址。该用户还生成一个或多个新的输出地址,并使用每个混币服务器的公钥为每个输出地址分层加密。
(3) 混合阶段。交互阶段完成后,混币服务器Mi对加密过的输出地址
(4) 在交易阶段,将托管地址的资金转移到打乱的输出地址。所有的混币服务器进行签名完成交易,确保恶意的混币服务器不能窃取资金或过早地停止混币进程。
(5) 解散。当混币服务结束后,等到区块链系统将交易记录到区块链上,并等待区块链系统再生成R个区块之后,此混币服务器群组解散。需要再次提供混合服务时,各混币服务器再随机组成另一个混币服务器群组。
当在混合过程中出现问题时进入问责程序,若有混币服务器行为不端,则其他混币服务器共同生成该混币服务器的私钥,接管该服务器的工作,混币正常进行。若发现混币用户行为不端,则退回诚实用户资金到原地址。允许混币服务器群组保留恶意用户的资金,从而至少提供了针对恶意用户DoS攻击的反应性保护。
2.2 方案的详细流程 2.2.1 初始化此步骤在接收混币用户的交互阶段之前进行,加快了混币的速度。首先构建混币服务器群组,每个有资格提供混币服务的机构或个人提供的一个混币服务即称为一个混币服务器,每个有资格提供混币服务的机构或个人可以有一个或多个混币服务器。混币服务器提供混币服务需要之前先随机匹配其他混币服务器,构成混币服务器群组。混币服务器群组交换各自的加密公钥
经过初始化后,进入交互阶段,开始接受混币参与者。这一阶段的目标是至少有
为了接入到混合网络,用户Uj选择任意一个混币服务器Mi作为接入点。Mi给Uj发送会话ID
当用户Uj验证了混合参数
该阶段的目的是对参与用户的输出地址进行有效且可验证的置换。使得包括所有混币服务器在内的所有人都不知道用户和输出地址间的对应关系。而且输出地址都不会被删除、替换、添加或修改,一旦有任何地址被删除、替换、添加或修改都能及时发现并找出恶意混币服务器。
当混币服务器Mi接收到经过加密的输出地址列表
|
图 1 地址混合过程 Figure 1 Overview of the address shuffling |
在该阶段,混币服务器群组将托管资金转移回用户打乱的输出地址。由于托管地址E是由所有混币服务器共同控制的,因此不能使用标准的椭圆曲线数字签名算法 (Elliptic Curve Digital Signature Algorithm, ECDSA),在此需要所有混币服务器共同签署交易。最后,将签名消息广播到比特币网络。
2.2.5 解散混币服务器群组将经过所有混币服务器签名过的混币交易提交到比特币网络,确保该交易,并在该交易所在区块之后生成R个区块的时间内混币用户无异议,则该混币服务器群组解散,每个混币服务器再重新匹配构建新的混币服务器群组。
2.2.6 问责在混合阶段失败时进入该阶段。此阶段主要有两项任务:(1) 判断哪个混币服务器或用户造成错误;(2) 修复错误或将托管资金转移回所有诚实的用户。混合阶段的设计只有2个出错的可能:要么混币服务器没有正确地解密第i个加密层,篡改了洗牌;要么恶意用户公布了一个不一致的层加密或不一致的验证信息,进行DoS攻击。处理方法如下:
混币服务器群组先检查混币同伴是否有违规行为。这样可以在不中止洗牌的情况下从这个错误中恢复。其他服务器重组Mi的私钥
第二种情况,Mi正确解密,但用户行为不当。任何行为不端的用户都可以通过重新组合初始化阶段用户提供的一组单独的校验和
不可链接性要求混币服务器和外部观察者无法将混币用户的输入地址和输出地址链接起来,参与混币的用户无法将其他用户的输入输出地址链接起来。对于混币服务器来说,其收到混币用户发来的输出地址是经过加密的,在混合阶段解密时,每个混币服务器只解密一层,地址的交换也是随机的,所以无法知晓输出地址;以秘钥分享的方式校验解密的正确性也确保了混币服务器无法通过输出地址的hash值得知混币用户对应的输出地址。对于外部观察者来说,只能看到多个地址中的资金转移到一个地址中,资金又从这个地址中分散到另外的多个地址中,而无法知晓这些地址间的关系。对于参与混币的用户来说,只是自己将输入地址中的资金转移到托管地址,而后资金又从托管地址回到自己的输出地址,对于其他用户的输入输出地址信息也无法知晓。所以本方案具有不可链接性。
3.1.2 低风险恶意混币服务器或用户可能会破坏混币过程。在此协议中,减少了这个问题的发生的可能性。混币用户需将其比特币转移到托管地址中,如果表现不诚实,混币服务器群组将扣留其资金。混币服务器也需要在提供混币服务前缴纳一定的保证金,若其破坏混币过程,保证金将不再返还。因为混币操作需要支付一定的混币费用,进行DoS和Sybil攻击需支付较大的代价,因此能有效地防范此类攻击。
3.2 功能分析表1为本文方法与文献[20]和[21]的对比。3种方法都能够兼容比特币系统。本文方法和文献[21]都基于混合网络,用户将资金转移到混币服务器创建的托管地址后,其他操作由混币服务器完成,用户能享受中心化混币的便捷。本方法相较于文献[20]和文献[21]可自定义混合金额,本文方法使用一个托管地址,混合操作结束后将资金返还到用户的输出地址,所以用户提交到托管地址的金额可以不同,只需最后输出地址中的资金保持一致即可。与文献[20]相比本方法需要额外的混合费用。
| 表 1 各混合方法功能对比 Table 1 Function comparison of methods |
相较于CoinShuffle[19]与文献[20]等去中心化混币方法中混币用户需全过程参与,本方案中混币用户只需要在交互阶段与混币服务器群组进行通信,并将需要混合的资金转移到指定的托管地址中,之后的输出地址混合及将资金转移到用户输出地址都由混币服务器完成,无需混币用户参与,节省了混币用户的计算和通信开销。另外,在CoinShuffle[19]和文献[20]中混币时间与混币用户数量n有关,随着混币用户数量n的增大,混币所用时间就会变长。在本方案中,混币所用时间与混币服务器数量m有关,即使混币用户很多,混币时间也不会有很明显的增加。
4 总结通过分析公共区块链记录的交易图谱[9-12, 23],比特币的匿名性已经被攻破。普通的比特币用户无法防范此类攻击。这些工作表明,需要一个以用户为中心的解决方案来重建比特币的金融隐私。因此,学者为了匿名和隐私进行一系列比特币混合服务研究[16-18]。然而,这些方法各有缺点。
本文提出了一种分布式混合方案,结合中心化和分布式混合的优点。在本方案中,用户先将混币资金转移到混币服务器群组共同控制的托管地址中,并提交经过层加密的输出地址,混币服务器群组使用解密混合网络混合输出地址,最后将托管地址中的资金转移回输出地址中。该方法能有效地抵抗公共区块链的分析攻击,能保障混币的安全性、不可链接性、匿名性等,并且输入金额可变,提高了混币的便利性。
| [1] |
杨承霖.财经观察: “央行数字货币”破茧还有多久[EB/OL]. (2019-12-18) [2020-01-13]. http://www.xinhuanet.com/2019-12/18/c_1125360605.htm.
|
| [2] |
王皓, 宋祥福, 柯俊明, 等. 数字货币中的区块链及其隐私保护机制[J].
信息网络安全, 2017(7): 32-39.
WANG H, SONG X F, KE J M, et al. Blockchain and privacy preserving mechanisms in cryptocurrency[J]. Netinfo Security, 2017(7): 32-39. DOI: 10.3969/j.issn.1671-1122.2017.07.005. |
| [3] |
付烁, 徐海霞, 李佩丽, 等. 数字货币的匿名性研究[J].
计算机学报, 2019, 42(5): 1045-1062.
FU S, XU H X, LI P L, et al. A survey on anonymity of digital currency[J]. Chinese Journal of Computers, 2019, 42(5): 1045-1062. DOI: 10.11897/SP.J.1016.2019.01045. |
| [4] |
袁勇, 王飞跃. 区块链技术发展现状与展望[J].
自动化学报, 2016, 42(4): 481-494.
YUAN Y, WANG F Y. Blockchain: the state of the art and future trends[J]. Acta Automatica Sinica, 2016, 42(4): 481-494. |
| [5] |
王宗慧, 张胜利, 金石, 等. 区块链数据隐私保护研究[J].
物联网学报, 2018, 2(3): 71-81.
WANG Z H, ZHANG S L, JIN S, et al. Survey on privacy preserving techniques for blockchain[J]. Chinese Journal on Internet of Things, 2018, 2(3): 71-81. |
| [6] |
祝烈煌, 高峰, 沈蒙, 等. 区块链隐私保护研究综述[J].
计算机研究与发展, 2017, 54(10): 2170-2186.
ZHU L H, GAO F, SHEN M, et al. Server on privacy preserving techniques for blockchain technology[J]. Journal of Computer Research and Development, 2017, 54(10): 2170-2186. DOI: 10.7544/issn1000-1239.2017.20170471. |
| [7] |
ZHANG R, XUE R, LIU L. Security and privacy on blockchain[J].
ACM Computing Surveys, 2019, 52(3): 1-34.
|
| [8] |
ANDROULAKI E, KARAME G O, ROESCHLIN M, et al. Evaluating user privacy in bitcoin [C]//Financial Cryptography and Data Security. Berlin: Springer, 2013: 34-51.
|
| [9] |
REID F, HARRIGAN M. An analysis of anonymity in the bitcoin system [C]//Proc of the 3rd IEEE Int Conf on Privacy, Security, Risk and Trust. Piscataway, NJ: IEEE, 2011: 1318-1326.
|
| [10] |
RON D, SHAMIR A. Quantitative analysis of the full bitcoin transaction graph [C]//Financial Cryptography. Berlin: Springer, 2013: 6-24.
|
| [11] |
MELKLEJOHN S, POMAROLE M, JORDAN G, et al. A fistful of bitcoins: Characterizing payments among men with no names [C]//Proc of the 13th ACM Internet Measurement Conf. New York: ACM, 2013: 127-140.
|
| [12] |
KOSHY P, KOSHY D, MCDANIEL P. An analysis of anonymity in bitcoin using P2P network traffic [C]//Financial Cryptography and Data Security. Berlin: Springer. 2014: 469-485.
|
| [13] |
BIRYUKOV A, PUSTOGAROV I. Bitcoin over tor isn’t a good idea [C]//2015 IEEE Symposium on Security and Privacy. Piscataway, NJ: IEEE, 2015: 122-134.
|
| [14] |
MIERS I, GARMAN C, GREEN M, et al. Zerocoin: Anonymous distributed e-cash from bitcoin [C]//2013 IEEE Symposium on Security and Privacy. Piscataway, NJ: IEEE, 2013: 397-411.
|
| [15] |
FEIGE U, FIAT A, SHAMIR A. Zero-knowledge proofs of identity[J].
Journal of Cryptology, 1988, 1(2): 77-94.
DOI: 10.1007/BF02351717. |
| [16] |
BONNEAU J, NARAYANAN A, MILLER A, et al. Mixcoin: anonymity for bitcoin with accountable mixes [C]//Financial Cryptography and Data Security. Berlin: Springer, 2014: 486-504.
|
| [17] |
VALENTA L, ROWAN B. Blindcoin: blinded, accountable mixes for bitcoin.[C]//Financial Cryptography and Data Security. Berlin: Springer, 2015: 112-126.
|
| [18] |
GREGORY M. CoinJoin: Bitcoin privacy for the real world [EB/OL]. (2013-08-22) [2020-01-13]. http://bitcointalk.org/index.php?topic=279249.0.
|
| [19] |
TIM R, PEDRO M S, ANIKET K. CoinShuffle: practical decentralized coin mixing for bitcoin [C]//European Symposium on Research in Computer Security (ESORICS). Berlin: Springer, 2014: 345-364.
|
| [20] |
WANG Q, LI X X, YU Y. Anonymity for bitcoin from secure escrow address[J].
IEEE Access, 2018, 6: 12336-12341.
DOI: 10.1109/ACCESS.2017.2787563. |
| [21] |
ZIEGELDORF J H, MATZUTT R, HENZE M, et al. Secure and anonymous decentralized Bitcoin mixing[J].
Future Generation Computer Systems, 2018, 80: 448-466.
DOI: 10.1016/j.future.2016.05.018. |
| [22] |
GENNARO R, JARECKI S, KRAWCZYK H, et al. Secure distributed key generation for discrete-log based cryptosystems[J].
Journal of Cryptology, 2007, 20(1): 51-83.
DOI: 10.1007/s00145-006-0347-3. |
| [23] |
SPAGNUOLO M, MAGGI F, ZANERO S. BitIodine: extracting intelligence from the bitcoin network [C]//Financial Cryptography and Data Security. Berlin: Springer, 2014: 457-468.
|
2021, Vol. 38

