区块链作为公开账本解决了各方信任问题,但却带来了一个新的问题:用户的隐私如何得到保证?这在传统的集中式系统中,不存在此问题,或者说只有“可信”第三方拥有上帝视角。如果在区块链上用户的交易信息被恶意敌手进行分析和利用,将给用户带来严重的威胁。隐私保护问题不仅在公链中需要考虑,在部署商业应用的联盟链中显得更为迫切。如何解决公开、透明与隐私保护之间的矛盾,一直是区块链技术发展的重要方向,至今仍未完全解决。并且在一些特定的应用场景,需要根据实际需求结合各种密码组件设计相应的隐私保护算法。
比特币没有提供真正的匿名性,可以称为伪匿名性,是因为比特币的账户地址从其对应的公钥中直接得到,不与用户在真实世界中的身份绑定,而现实中则使用CA(Certificate Authority)进行身份认证。比特币在区块链上的所有交易都是公开的,因此任何人都可以追踪到某个地址的交易。虽然创建新地址进行交易看来起增加了匿名性,但仍然不能解决所有交易都被公开的事实。论文【1】对用户地址间的关系进行了分析,结果如图1。而在联盟链应用场景中,例如银行间的转账,如果采用区块链系统进行记录交易,虽然严格一致的账本省去了繁琐的对账工作,但没有任何一家银行希望自己的资金往来完全暴露。并且欧盟于2018年5月实施了GDPR【2】(General Data Protection Regulation),这意味着在欧盟的企业如果想将用户的个人数据进行上链,那么必须保证用户数据的链上隐私性。
图1. 比特币地址关系图
针对链上的一笔交易而言,接收者地址、发送者地址以及交易金额都是需要考虑的问题,以及除此之外的附加数据。对接收者和发送者地址的隐私保护我们称为匿名性;对交易金额的隐私保护我们称为机密性。在保证匿名性和机密性的同时,要达成多方校验和共识,我们称之为公开可验证性。常用在区块链隐私保护中的高级密码组件/方法如下:
目前有不少区块链上的隐私保护项目,将其分为两类,一种基于UTXO,另一种基于账户性。基于UTXO的项目有Mixcoin【14】、Zcash【15】、Monero【16】和Hawk【17】等。基于账户性的项目有Zether【18】和AZTEC【19】等。本文给出了区块链隐私保护的学习知识图谱,有兴趣的小伙伴可以一起多交流。
图2. 隐私保护知识图谱
参考文献:
【1】Meiklejohn S, Pomarole M, Jordan G, et al. A fistful of bitcoins: characterizing payments among men with no names[C]//Proceedings of the 2013 conference on Internet measurement conference. 2013: 127-140.
【2】Voigt P, Von dem Bussche A. The eu general data protection regulation (gdpr)[J]. A Practical Guide, 1st Ed., Cham: Springer International Publishing, 2017.
【3】Abe M, Okamoto T. Provably secure partially blind signatures[C]//Annual International Cryptology Conference. Springer, Berlin, Heidelberg, 2000: 271-286.
【4】Liu J K, Wei V K, Wong D S. Linkable spontaneous anonymous group signature for ad hoc groups[C]//Australasian Conference on Information Security and Privacy. Springer, Berlin, Heidelberg, 2004: 325-335.
【5】Fujisaki E, Suzuki K. Traceable ring signature[C]//International Workshop on Public Key Cryptography. Springer, Berlin, Heidelberg, 2007: 181-200.
【6】Parno B, Howell J, Gentry C, et al. Pinocchio: Nearly practical verifiable computation[C]//2013 IEEE Symposium on Security and Privacy. IEEE, 2013: 238-252.
【7】Ben-Sasson E, Bentov I, Horesh Y, et al. Scalable, transparent, and post-quantum secure computational integrity[J]. IACR Cryptology ePrint Archive, 2018, 2018: 46.
【8】Bünz B, Bootle J, Boneh D, et al. Bulletproofs: Short proofs for confidential transactions and more[C]//2018 IEEE Symposium on Security and Privacy (SP). IEEE, 2018: 315-334.
【9】Brakerski Z, Gentry C, Vaikuntanathan V. (Leveled) fully homomorphic encryption without bootstrapping[J]. ACM Transactions on Computation Theory (TOCT), 2014, 6(3): 1-36.
【10】https://en.wikipedia.org/wiki/Paillier_cryptosystem
【11】Pedersen T P. Non-interactive and information-theoretic secure verifiable secret sharing[C]//Annual international cryptology conference. Springer, Berlin, Heidelberg, 1991: 129-140.
【12】https://en.wikipedia.org/wiki/Elliptic-curve_cryptography
【13】McKeen F, Alexandrovich I, Berenzon A, et al. Innovative instructions and software model for isolated execution[J]. Hasp@ isca, 2013, 10(1).
【14】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.
【15】Sasson E B, Chiesa A, Garman C, et al. Zerocash: Decentralized anonymous payments from bitcoin[C]//2014 IEEE Symposium on Security and Privacy. IEEE, 2014: 459-474.
【16】Noether S, Mackenzie A. Ring confidential transactions[J]. Ledger, 2016, 1: 1-18.
【17】Kosba A, Miller A, Shi E, et al. Hawk: The blockchain model of cryptography and privacy-preserving smart contracts[C]//2016 IEEE symposium on security and privacy (SP). IEEE, 2016: 839-858.
【18】Bünz B, Agrawal S, Zamani M, et al. Zether: Towards Privacy in a Smart Contract World[J]. IACR Cryptology ePrint Archive, 2019, 2019: 191.
【19】Williamson Z J. The aztec protocol[J]. https://github.com/AztecProtocol/AZTEC, 2018.