学 报
4 区块链前沿热点
第3节详细介绍了区块链框架中的三项最核心 且最基本的技术:密码学、共识机制和区块链网络. 随着该技术被广泛应用,关于其隐私性、安全性和性 能等方面存在的问题和优化方案备受关注.本节将 介绍在区块链隐私保护、区块链攻击方案和区块链 可扩展性三个方面的研究进展.
41 区块链隐私保护
如上文介绍,区块链使用数字签名保障用户数 据的隐私性,如比特币系统使用椭圆曲线签名算法. 尽管无法直接从公钥地址反推出用户的私钥,但是 由于区块链历史数据全网可见,基于这些公开的数 据能够分析出用户相关隐私信息,在一定程度上破 坏了用户数据隐私性.
4.1.1 比特币匿名性分析
通常,货币类型的应用中,对交易匿名性的要求 格外高,因此区块链数字签名部分的技术改良也主 要见于一些货币的应用.此外,比特币是最广泛使用 的公有链,历史交易数据丰富,很多研究从不同的角 度分析了比特币的匿名性.分析过程通常是将获取 的信息抽象成网络或者图结构(如图27~图30),再
将交易的信息汇总,分析其静态动态规律[6869]. Reid等人[68]从这些信息中抽象出了交易网络 和用户网络.交易网络是一个有向图,如图27所示, 顶点表示交易,边表示了一个交易输出作为另一个 交易输入的关系.利用2009年~2011年的交易数 据获得交易网络图之后,对交易的累积出入度情况 进行分析.使用统计模型提炼出其静态分布情况并 进行动态分析,如交易网络边缘数量、密度和平均路 径长度.用户网络代表了用户之间的比特币流量,如 图28所示,顶点表示一个公钥地址,边表示公钥地 址之间比特币的转移.由于一个用户拥有大量的公 钥地址,因此仅仅利用上述网络是不完整的,不能直 观地显示出网络中各用户的比特币流动关系.
图27 交易网络抽象图
图28 用户网络抽象图
一笔交易中的多个输入通常来自同一账户,因 此可利用这一属性来收缩不完整网络中的顶点子 集.因此文中又构造了一个辅助网络,见图29,通过 找到其中非平凡的最大连通分量来对应到不同用 户.对用户网络使用相同的统计模型进行分析,得到 了其静态特征网络累积度的分布情况和动态特征, 如用户网络的边缘数量、密度和平均路径长度.除获 取上述信息,还有一些非网络信息,如果能将上述图 结构和非网络信息联系起来,则说明比特币网络的 匿名性还远远不够.文中给出了一个简单的例子,利 用theBitcoinFaucet网络提供的信息和已经提炼 出来的交易网络、用户网络,能够获取一周内接收比
7 0 1期 蔡晓晴等:区块链原理及其核心技术 1
《 计
算 机
学 报
》
图29 辅助网络示意图
特币的用户的地理定位IP地址的地图.
Fleder等人[69]构建的图与Reid等人[68]构建的 图非常类似.不过它的分析起点不是从交易网络和 用户网络图,而是从网络环境(如某些公开论坛).在 网络社交平台中收集一些粗糙的交易信息,再利用 这些粗略信息从交易记录中筛选合适的消息.再结 合Reid等人[68]方法构建图,可以从中获取用户参 与的其他活动,进而标记一些有着大流量的用户节 点.文中已成功将论坛中的账户对应的知名实体 SatoshiDICE分析出来,表明了比特币及其相似系
统中对于用户隐私性的保护还不足够.
Meiklejohn等人[70]追踪比特币的流动过程.通 过发起重识别攻击以及从网络论坛中采集信息,再 使用启发式聚集的方法将这些地址分组,最后再 通过重验证的方式确定每组对应的主要机构.在文 中虽然没有以一种图表的形式抽象出所有的交易, 但是其使用的聚集方法,一种与Reid等人[68]文中 相似,根据交易的输入进行聚集,另外一种是扩 展,是基于找零的变更地址关系进行聚集.这篇文 章在讨论比特币本身的匿名性强弱的背后,也希 望能够一定程度上帮助判断非法交易和维护交易 环境.Barber等人[71]定性地分析了比特币系统的易 受损性和系统中一些常见的攻击方式,并提出了一 种减少信任的方法来增强系统的匿名性.系统中共 有三类交易,分别为承诺交易、声明交易、撤款交易, 分别用于正常交易和有参与方作恶时.参与交易的 双方分别生成两对公私钥,用于签署不同的交易,保 障了不可链接性,见图30.这些论文都说明了基于 比特币系统提炼出的区块链技术在安全性上还远远 不够,比特币系统中的匿名性是通过假名的方式表 现的,并不是真正的匿名性,尽管并没有对应到个人 的真实信息,但是在有了足够的用户额外信息之后,
图30 通过减少信任增强系统匿名性
基于大数据的分析或者其他有针对性的攻击,假匿 名性系统无法提供承诺保障.
4.1.2 匿名性提升方案
针对上述问题,很多研究提出了改善区块链系 统匿名性的方案,主流方案有三种:混币技术、环签 名、零知识证明.
(1)混币技术
混币技术的基本思想是,通过多个标准交易中 的多地址合作,切断每笔交易的输入输出之间的联 系.最简单的混币技术通过在系统中增加一些中间 可信机构
①②
来完成零钱兑换等,减少了用户隐私暴 露的几率.显然,这种方式有着较为严重的局限性: 运营商可能会窃取资金,追踪货币,或者遭遇了倒闭 等情况.CoinJoin利用了比特币的多签名脚本,将多个 交易合并为一个交易.Dash引入了主节点,将Coin Join作为协议的一部分.主节点除了维持网络的安
全性之外,还提供CoinJoin隐私服务.用户可以向 主节点请求,进行单轮或多轮的混币服务.CoinJoin 的优点是简单高效,与原有比特币的脚本完全兼容; 且参与者之间不可能出现窃取他人货币的情况.但 缺点在于参与成员之间可能可以建立输入输出之间 的关联.Tumblebit是基于不可信中介的一类混币 技术,关键点在于使用cutandchoose、盲签名、多 签名和RSA加密技术,使得中介只能提供服务,而 不能将交易的输入输出建立联系.缺点在于需要发 送方、接收方和第三方进行多次交互.
(2)环签名
门罗币(Monero)是Cryptonote
③
的一个应用, 也是最有名的隐私保护数字货币之一.门罗币中首 先定义了不可链接性(Unlinkability)和不可追踪性8 0
1 计 算 机 学 报 2021年
① ②
③
BitcoinFogCompany.http://bitcoinfog.info/
TheBitcoinLaundry.http://www.bitcoinlaundry.com/ CryptonoteCurrencies—Anonymous3rdGen.AUGUST07, 2014.https://www.ccn.com/cryptonotemoreanonymous thanbitcoin/
《 计
算 机
学 报
》
(Untraceability)[72]
①
,后来加入了保密支付来保证(犜(=犜'+Δ狋,狋>0),δ狋(' !代表犜犚(从' 到! 的网 络传输时间,δ狋(( '代表犜犚'从' 到! 的网络传输时 间.见式(1):
狋('-狋''≈τ(+δ狋(' !-(τ'+δ狋'( ')
≈Δ狋+δ狋(' !-δ狋'( ' (1) 文章中要求满足δ狋(' !<δ狋'( ',假如这样,则狋''< 狋(',则满足了第一个条件.
(2)犜犚( 在区块链网络中被确认
文章中将一个在时间间隔[狋犽,狋犽+1]区块包含交 易犜犚' 的概率建模,见式(2):
狆ν(犽)=Pr犽'·
∏
犻犽=-10(1-Pr犻')=η犽'狆·∏
犻犽-=10(1-η犻'狆)(2) 同样,一个包含交易犜犚( 在同一时间间隔内生 成的概率,见式(3):狆((犽)=Pr犽(·
∏
犻犽=-10(1-Pr犻()=η犽(狆·犻∏
犽=-10(1-η犻(狆)(3) 如果在时间狋=狊·δ狋+狋0(狋0为两个交易犜犚' 和 犜犚( 共同存在与网络的时刻,δ狋是定义的相等时间 间隔)网络中的每个节点已收到至少交易犜犚' 或 犜犚犃,以下模型是适用的,见式(4):η犽(η犽(+1,η犽'η犽'+1, 犽<狊 η犽(=η犽(+1=η狊(,η犽'=η犽'+1=η狊', 烅烄
烆 其他(4) 在这里,要求,见式(5):
犻狊,η犻'+η犻(=η狊'+η狊( (5) 计算双花攻击成功的概率,文章中假设,犽、η犽'、 η犽(不交换他们新建模块.这样,正在挖掘犜犚' 的节
点生成新块所需的狋犵'时间与正在挖掘犜犚(、狋犵(的 节点所需的狋犵'时间无关.据此,满足第二个要求的 概率犘犛(2)计算,见式(6):
犘狊(2)=犘狉狅犫(狋犵(<狋犵')+1
2犘狉狅犫(狋犵(=狋犵')(6) 即犘狊(2)由两部分组成,一个对应包含犜犚( 的块首先 生成的事件,第二个对应包含犜犚( 和犜犚' 的块同 时生成的事件,即,狋犵(=狋犵'.在后一种情况下,包含 犜犚( 的块最终被比特币同行采用的概率是0.5.
在这里,犘狉狅犫(狋犵(<狋犵')和犘狉狅犫(狋犵(=狋犵')的计算, 见式(7)和(8).
犘狉狅犫(狋犵(<狋犵')=犵
∑
(∞=0狆((犵()·狆'(犵'>犵(|犵()=η0(狆(1-η0'狆)+犵
∑
(∞=0η犵((狆·(1-η犵'(狆)·犵
∏
(-1犼=0(1-η犼'狆)(1-η犼(狆) (7)
犘狉狅犫(狋犵(=狋犵')=犵
∑
(∞=1狆2η犵'(η犵((·犵∏
犼(=-01(1-η犼'狆)(1-η犼(狆)(8) (3)' 的服务时间小于' 可以检测到双花行为 时间
由于服务时间远远小于确认交易的时间,供应 商在提供it服务之前无法验证犜犚'是否包含在最 近的比特币块中.此外,即使'的客户端在向(提供 服务之前同时接收到犜犚( 和犜犚',在当前的Bitc oin实现中也不会向'传播任何消息/警告.因此,如
果需求(1)已经被满足,那么需求(3)在比特币客户 端中总是被满足.
此外,他们对于现有快速支付中防止双花攻击 的两种方法“UsingaListeningPeriod”和“Inserting ObserversintheNetwork”进行分析,说明其存
在的弊端.最后,他们提出了自己的的解决方法
“ForwardingDoubleSpendingAttemptsinthe Network”来对抗快速支付场景中的双花攻击.
Rosenfeld[77]研究了典型攻击背后的随机过程 及其成功概率,解释了比特币系统的基本架构,对抗 双花的对策以及这种保护的破坏方式.本文推导了 一次双花攻击成果的概率,讨论了什么情况下进行 双花攻击是经济的,并且证明了等待6个确认是绝 对安全的或等待时间长度是双花攻击的关键因素是 错误的.在文章中,对于双花攻击成功犪狕进行了计 算,见式(9),并以不同方式列表,讨论了双花攻击的 经济性.
犪狕=min狇
( )
狆,1max(狕+1,0)=1()
狆,狇 狕<0∨狇>狆狕+1
,狕0∧狇 烅烄
烆 狆
(9) 式中,狆表示该区块由诚实矿工发现的概率,狇表示 该区块由不诚实矿工发现的概率,狕表示诚实矿工 比非诚实矿工多挖的区块.
Bissias等人[78]提出并验证了一个新的区块链
Bissias等人[78]提出并验证了一个新的区块链