Roundabout:一种基于燃烧证明的比特币隐私保护方法*

2022-01-15 06:24肖冰冰李笑若祝丙南金晨光
计算机与数字工程 2021年12期
关键词:比特加密区块

李 政 肖冰冰 李笑若 祝丙南 金晨光

(1.河南大学软件学院 开封 475001)(2.河南省智能网络理论与关键技术国际联合实验室 开封 475001)

1 引言

区块链(Blockchain)作为比特币的底层技术最早由一名化名为中本聪(Nakamoto)的人在2008年的一篇名为《比特币:一种点对点电子现金系统》[1](《Bitcoin:A Peer-to-Peer Electronic Cash System》)文章中提出,但目前业界并没有形成一个统一的定义。狭义来讲,区块链是一种按照时间顺序将数据区块以链条的方式组合成特定数据结构,并以密码学方式保证不可篡改和不可伪造的去中心化共享总账(Decentralized shared ledger),能够安全存储简单的、有先后关系的、能在系统内验证的数据。广义的区块链技术则是利用加密链式区块结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用自动化脚本代码(智能合约)来编程和操作数据的一种全新的去中心化基础架构与分布式计算范式[2]。区块链技术主要具有分布式、去中心化、不可篡改、可追溯和匿名性的特点。区块链的分布式结构将数据分散储存在各个网络节点之上,各节点互相监督,整个工作流程中移除了传统第三方,信息互联互通而又无法被篡改,而各个节点内部各个数据区块以链式结构链接,每个区块内部都具有时间戳,从而增强了区块链的可验证性和可追溯性。

比特币是区块链目前为止最成功的应用场景,其最重要的三个组成部分为加密数字货币(cryptocurrency)、分布式账本(distributed ledger)、去中心网络(decentralized network)。所有的区块链系统都包括“分布式账本和去中心网络”这一对必备要素。比特币网络没有一个中心服务器,它是由众多全节点和轻节点组成的,这些节点形成一个去中心网络。区块链的每个网络结点通常被称为矿工,矿工产生的所有交易信息都需要通过P2P(Peer-to-peer)网络广播至所有节点,在收到交易信息后,矿工会将其打包至一个区块中。所有矿工通过共识算法来竞争记账权,率先完成共识算法的节点将结果也打包进区块,并将该区块广播给其余节点,其余节点验证交易和共识结果的正确性,验证成功之后,将该区块链接到本地的区块上。

比特币的脚本语言缺乏图灵完备性(Turing completeness),使用的UTXO(unspent transaction output,未使用交易输出)模型难以支持复杂的状态操作。为此,Vitalik在2013年发布了以太坊(Ethereum)白皮书《以太坊:下一代智能合约和去中心化应 用 平 台》[3](《A Next-Generation Smart Contract and Decentralized Application Platform》),提出了以太坊这一基于账户模型的区块链系统,其脚本语言具有图灵完备性。如果把比特币系统看成区块链1.0,则以太坊是当之无愧的升级增强版,是区块链2.0的典范[4](区块链研究者梅兰妮·斯万在其著作《区块链:新经济蓝图及导读》中,将区块链分为:区块链1.0,货币;区块链2.0,合约;区块链3.0,应用)。

2 比特币扩容问题

区块链没能大规模应用的一个重要原因是物理性能不高(特别对公有链)。比特币每10 min产生一个区块,一个区块的大小约为1M,区块中一条交易信息的大小约为250B,因此可以得出比特币的每秒交易速率(Transactions Per Second,TPS)为6.6,而PayPal平均每秒钟能支持193笔交易,Visa平均每秒钟能支持1667笔交易[5],比特币扩容是能否将其提升至主流支付工具地位要解决的首要问题。但在比特币设计之初,中本聪就曾指出,之所以将区块上限设置为1MB是因为比特币创建初期,全网算力低下,如果贸然将其设置太高,会导致粉尘攻击。同时,中本聪计划在区块高度达到11500时对其进行扩容,但由于中本聪的消失,比特币生态圈对是否扩容产生了巨大的分歧,为此业界已经召开了5次比特币拓展研讨会(又称比特币圆桌会议),期间提出了很多方法对比特币进行扩容,扩容又主要分为链上扩容和链下扩容,链上扩容包括增加区块大小、降低难度、Bitcoin-NG等;链下扩容包括隔离见证(SegWit)、有向无环图结构(DAG)、跨链、侧链、状态通道(以比特币闪电网络为代表)等[6]。其中2015年在香港提出的隔离见证通过优化区块链的数据结构,成功将1MB的限制最高提升至1.3MB[7]。提高区块链物理性能的另一个重要方向是改进共识算法(consensus algorithm),特别是从工作量证明(proof of work,POW)转向权益证明(proof of stake,POS)。以及在一些应用场景中使用联盟链或私有链而非公有链,也是绕开区块链物理性能瓶颈的重要方法。

3 比特币隐私保护问题

3.1 区块链隐私保护

一般来说,隐私保护是指个人或集体不愿意被外人知道的信息得到应有的保护。隐私包含的范围很广,对于个人来说,最重要的隐私是个人的身份信息,即利用该信息可以直接或者间接地通过连接查询追溯到某个人,对于集体而言,隐私一般是指一个团体的各种行为的敏感信息。与隐私保护密切相关的一个概念是信息安全,两者之间有一定的联系,但两者关注的重点不同。信息安全关注的主要问题是数据的机密性、完整性和可用性,而隐私保护关注的主要问题是看系统是否提供了隐私信息的匿名性。通常来讲,隐私保护是信息安全问题的一种,可以把隐私保护看成是数据机密性问题的具体体现。例如,如果数据中包含了隐私信息,则数据机密性的破坏将造成隐私信息的泄露[8]。

由于交易脚本和网络节点的真实身份之间的复杂性,即使用户在区块链中使用随机地址,也只能提供相当有限的防护。通过监控未加密的网络和公共区块链遍历,再使用一些行为分析策略,很大概率就可以推断出某个地址或某几个地址的使用者。此外,在一些特殊的应用场景中,有些参与者希望上传到区块内的数据也得到一定的保护,不希望被一些恶意参与者获取,从而造成隐私泄露[9],瑞士苏黎世联邦理工学院和德国NEC欧洲实验室的学者们研究发现,即使采用了隐私保护措施,40%的比特币用户身份信息仍能够被识别出来[10]。总地来说,区块链的数据包含参与者的地址、交易金额、时间戳和发送者的签名。由于区块链网络的公共性质,通过数据挖掘可以很容易地追踪交易信息流,进而提取用户的真实身份或其他附加信息[11]。

3.2 常见的区块链隐私保护策略

最早在2010年7月比特币论坛管理者theymos提出了由于区块链的公开性所引发的隐私问题,从积极方面说,政府相关机构可以从中发现洗钱、行贿等犯罪的痕迹;而从消极方面说,用户的隐私却无从保障,随着研究的深入,越来越多研究者参与其中并提出了很多方法来尝试解决问题,如混币技术、零知识证明、盲签名、环签名等方法。

根据《区块链行业词典》的定义:混币服务(Mixing),就是用一种加密货币从其他人那里得到同样金额的加密货币[12]。原理是分离交易中的输入和输出地址,目的是提高加密货币的隐私性和匿名性,使其更难追踪加密货币的用途以及它属于谁。混币技术的原理十分简单,不过这种简单的技术仍然存在一些缺陷。首先,并不能确定所选的混币服务提供商都能忠实地完全进行混币操作,用户得不到保障。其次,即使完成了混币,这种混币服务和区块链的去中心化思想相悖,混币服务提供商内部也会保留一份记录用来匹配存入和提取,这同样存在很大的隐私泄露风险,无论服务供应商是主动还是被动。此外,还有一种相对而言去中心化的混币交易被叫做合币[13](coinjoin),在这个协议中,不同的用户共同创建一个单一的比特币交易,因为比特币的一个交易可以同时包含多个输入和输出,当每个用户都至少提供一个输入和输出时,这个交易就会同时拥有多个来自不同地址的输入,来自每个输入的签名都是分离并且相互独立的,所以这些不同的地址可以被不同的人所控制,而不需要任何一方来提取所有的私钥,使得每个收到比特币用户无法根据签名来确认发送方的身份。但Coinjoin并不能完全掩盖交易地址,由于每个用户输入的交易金额不尽相同,可以很容易地找到对应的输入输出。在基于Coinjoin的基础上,很多研究者做出了一些改进,例如coinjoinXT、Coinjumble、Coinmux、CoinJoiner等,但基本都没具体的项目落地。

零知识证明[14]早在1985年就被提出,是指在验证过程中不泄露任何有用信息的前提下通过验证。零知识证明在区块链上最著名的应用是zk-SNARKs(zero knowledge Succinct Non-interactive Argument of Knowledge),该技术具有非交互性、简洁性、公开可验证等特性。2016年zerocash就是利用zkSNARKs技术,在比特币的基础上进一步完善不足,采用零知识证明来提供完全的支付保密性的一种匿名性强的虚拟货币。将零知识证明应用到区块链中毫无疑问是一个巨大的进步,但同样也面临着巨大的挑战:一类是适用于隐私保护的区块链架构设计方案,包括隐秘交易所花资产存在性证明、匿名资产双花问题、匿名资产花费与转移、隐秘交易不可区分等技术挑战;另一类是零知识证明技术本身带来的挑战,包括参数初始化阶段、算法性能以及安全问题等技术挑战[15]。

4 相关技术及适应性改进

4.1 共识

燃烧证明[16]PoB(Proof of Burn)在一定程度上而言是一种绿色、低能耗的共识机制,并不是通过挖矿来竞争记账权。PoB和Pos类似,挖矿权与自身持在链上所占的权重的多少有关,不同之处在于,PoB共识机制是通过燃烧虚拟货币(将虚拟货币发送到特定的黑洞地址上)来增加获得记账权的概率,但这种行为会对原有的虚拟货币系统造成不可逆转的损失。同样也有人认为燃烧证明所烧毁的虚拟货币是通过消耗能源计算而来,并不能称得上环保。因此,我们选择在PoB共识的基础上做出一些改进,不再将虚拟货币发送到黑洞地址,而是将矿工本应用来燃烧的比特币发送到某个特定的地址上,让网络中参与共识的矿工和持币者双方均能获益。

在Roundabout中,将原来根据虚拟货币的数量来挖掘区块改为根据一个特定的值(Degree)。Degree的获取主要有两种途径,第一种也是最主要的一种根据所输入到特定地址的比特币UTXO数量和面值,UTXO的数量越多,总面值越高,则获得Degree的数量越多;第二种方法是在轮次结束后,将手中的代币(将其命名为Vessel币,更多的细节会在下文中提到)直接转入下一轮次的地址中时,会比从其他地址转入获得更高的Degree,因此可以看出,稳定长久的参与到系统中的参与者会获得更多的奖励。在一轮选举结束之后,所有的参与者的Degree将全部清零。为了防止出现一个比较富有的参与者连续取得记账权,出现类似于51%攻击情况发生,系统会将其投入的资金冻结,强制参加下一轮共识,而且并不会获得Degree奖励。

4.2 交易和Vessel币

在该系统中,每个参与者都至少拥有一个Roundabout账户地址,用来存放Vessel币和计算Degree,在竞争记账权阶段,如果一个矿工计划发送一定数量的比特币UTXO模型到指定的地址,需要先向系统登记地址即将发起的交易地址和金额,系统收到比特币之后,会将收到的比特币UTXO模型进行加密,作为链上代币的UTXO模型的第一个输入。因此,每个Vessel币的UTXO模型对应比特币的一个UTXO模型,这样就保证了Vessel币的价值。

在区块生成的过程中,用户之间可以将Vessel币进行交易,为了使系统能够健康持久的运行,交易双方应当提供一定的手续费,这个费用将会作为记账者的报酬,在获得记账权的时候转移到其地址中。在一轮结束时,用户既可以将自己账户中的Vessel币兑换为等额的比特币,转移到指定的比特币地址中;也可以继续参加下一轮共识,直接转入下一轮共识的地址,如前文所述,这样会获得更高的Degree。如果选择继续参加下一轮共识,参与者的Roundabout地址中所持有的Vessel币总额保持不变,但Vessel币所对应的UTXO模型会被重新打乱分发。同样的,如果选择将Vessel币兑换为比特币,所得到的也不是原来的比特币。

值得注意的是,Vessel币本身并没有价值,Vessel币和比特币的关系就像法币和黄金的关系,法币由国家信用和黄金储备背书,而Vessel币则是与比特币挂钩,仅仅是比特币在Roundabout链上的表现形式。Vessel币的唯一获取方式就是通过原来比特币的UTXO模型转化,无法通过其他任何方式产生。

5 性能分析

5.1 数据安全

在2018年,区块链协议公司Blockstream的密码学家Maxwell、Wuille[17]等提出了一种名为Mu-Sig的Schnorr签名方案,理论上可替代当前比特币的ECDSA签名算法,而现在,Blockstream已经把MuSig从一篇学术论文,转变成可用的代码,并进行了开源。

MuSig签名是一种聚合签名方案,其主要特点是将将来自多个参与者的签名和公钥聚合到单个设备,但不需要提供公钥对应的私钥。根据Blockstream公司所提供的官方文件,MuSig最大的优势有两点:1)无论签名者设置如何,验证者都会看到相同的短的、常量大小的签名。在区块链系统中,验证效率是最重要的考虑因素,用签名者细节来给验证者增加负担,是不合理的,除非是安全需要,否则是无必要的。此外,MuSig签名方案能够提高隐私性,因为它们隐藏了确切的签名者策略。2)为普通公钥模型提供可证安全性。这意味着签名者可完全灵活地使用普通的密钥对进行多重签名,而不需要提供任何关于这些密钥产生或控制的特定方式的额外信息。有关密钥生成的信息,可能很难在比特币的环境中提供,因为各个签名者具有不同的和限制性的密钥管理策略。

MuSig加密方案中,聚合公钥的生成方式为

在该加密方案中,L的值取决于所有公钥的值,这种非线性方式可以有效防止流氓密钥。

MuSig的加密流程为

1)签名防选择自己的随机密钥ki,根据ki计算Ri=(ki×G),广播分发Ri。一般选择椭圆曲线原点为G。

2)签名方收集到所有的Ri之后,计算:

3)生成自己的签名si并发送:

4)生成聚合签名:

5)验证签名过程:

在一轮结束后,每个参与者生成自己的私钥,在最后将UTXO模型进行加密。通过MuSig加密方法,在保证数据安全可靠的前提下,加快了验证速率,降低了储存成本。

在区块链数据安全分析过程中,一般可以将数据简略的分为两种类型[18]:第一种被称为“元数据”(metadata),这是没有直接记录在区块链上的任何一种数据,如个人身份信息、交换记录、网络信息等。第二种则为“假名”(pseudonyms),如每笔交易的交易金额、交易用户等。值得注意的是,如果要分类时间信息,则需要将时间信息进一步细分,如时间戳属于“假名”范畴,而广播过程中的外部时间记录则为“元数据”。

在Roundabout中,对于这两种数据的保护主要通过以下五种途径:1)在一轮次开始的时候,分发到Roundabout账户中的Vessel币虽然和发送到指定地址的比特币额度相同,但该账户中的Vessel币的UTXO模型并不能和比特币的UTXO模型一一对应;2)UTXO转移过程中,使用哈希锁定,在遭到攻击时撤销交易;3)在分发Vessel币的时候,并不会将这个过程广播,每个参与者只知道自己账户的余额;4)采用MuSig加密方法在两轮次中间加密,既保证了加密过程的安全可靠,又阻断了比特币和Vessel币的外部联系;5)并在轮次结束时采用混币策略,使用一笔交易将账户中所有的比特币一次分发完成;6)长期稳定参与系统的参与者起到了干扰噪声的作用。通过多次打乱这两种数据,随机分发数据,在系统内最大化了数据的混乱度,增大了数据的追溯难度。根据罗卡定律,凡有接触必留痕迹,在外界与系统的交互过程中,一部分假名信息的保护仍存在乏力的地方,存在着一定的隐私泄露风险,这需要参与者尽量采取安全可靠的措施保护自己的账户信息,以免发生泄露风险。

5.2 物理性能

TPS和区块大小以呈正相关,和出块时间呈负相关。事实上,区块10min和1MB都只是理论值,在实际运行过程中,往往有所偏差,经常达不到这一水平。图2为连续25个区块的大小,平均值仅约为0.34MB。当然,出块时间也是不固定的,比特币系统会每2016个区块调整一次难度系数,使其平均值保持在10min。

在模拟比特币运行的实验中,通过对比出块速度,将出块时间设置为7min,表现了较好的稳定性,运行20次时,其平均值约为7.4min。同时提高区块大小,将其设置为5MB,此时的TPS约为50。由于实验条件所限,现实运行过程中会受到机器性能,网络环境之类的影响,但通过动态调整出块时间和区块大小,应该会有更好的表现。

Roundabout采用了类似闪电网络的思想策略,并没有将所有的交易全部广播到区块链上,仅在一个小型的区块链内小范围传播,这样有助于缓解比特币系统日益严重的公地悲剧问题。由于比特币性能的限制,导致交易的手续费越来越高,很多矿工拒绝打包低手续费交易,在Roundabout中,通过增大区块容量,提高系统的交易速率,可以有效提高低手续费交易的被打包几率。但长期来讲,手续费的提高是一个市场经济问题,在自由市场中,供给、需求和价格会自动达成一定的平衡,虽然这个平衡可能对一些用户群体不利。

6 结语

随着研究的不断深入,区块链技术已经从单纯的技术探讨走向了应用落地的阶段。有些企业已经结合自身业务摸索出了颇具特色的应用场景,更多的企业还处于不断探索和验证的阶段。在可预见的将来,区块链将会拓展更多的应用场景,尤其是一些和区块链的特点极其贴切的场景,金融服务方面有数字货币、清算业务、众筹等场景,还有一些诸如资源共享、贸易管理、物联网的场景。当然,区块链只是一种技术,要利用好这种技术需要很多方面的考量,根据具体的使用场景来仔细考虑设计方案,有理由相信,区块链技术落地的案例会越来越多。这也会进一步促进新技术在传统行业中的应用,带来更多的创新业务和场景。

猜你喜欢
比特加密区块
保护数据按需创建多种加密磁盘
《红楼梦》的数字化述评——兼及区块链的启示
电力安全防护加密装置
区块链助跑财资管理
一场区块链引发的全民狂欢
区块链助力企业创新
比特币还能投资吗
比特币分裂
加密与解密
比特币一年涨135%重回5530元