本文由币乎(bihu.com)优质内容计划支持
“区块链”这个陌生的技术词汇在2018年会越来越多地进入人们的视野。
在我看来,区块链技术不但有可能改变人们的生活,甚至有可能重塑世界。 区块链是一种分布式数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一次比特币网络交易的信息,用于验证其信息的有效性和生成下一个区块,它解决了各方如何建立信任的问题,却也同时带来了一个新的问题:
隐私如何得到保护?
当用户的所有交易信息都暴露在大众面前,如果这些交易信息被恶意挖掘及利用,将给用户隐私带来严重的威胁。
区块链的隐私问题 也许大家首先会有一个疑惑:比特币等区块链技术不是“匿名”的吗,为什么会有隐私问题?
要回答这个问题,我们首先要区分“化名”和“匿名”这两个概念。化名很好理解,就是我们在网络中使用的一个与真实身份无关的身份。
例如在比特币系统的交易中,使用者无需使用真名,而是采用公钥哈希值作为交易标识。在这个例子中,公钥哈希值就可以代表使用者的身份,与真名无关,因此比特币是具备化名性的。 但匿名跟化名是不同的。在计算机科学中,匿名指的是具备无关联性(unlinkability)的化名。
所谓无关联性,就是指站在攻击者的角度,无法将用户与系统之间的任意两次交互进行关联。在比特币中,由于用户反复使用公钥哈希值作为交易标识,交易之间显然能建立关联。因此比特币并不具备匿名性。 若单个地址进行交易并不能确保匿名性,那么多个地址又如何?
答案依然是否定的:用户X利用多个账户在一定时间内向用户Y进行转账,攻击者可以很大概率猜测这几个地址属于同一个用户,而将这多个地址都归为一个地址簇。
除了上述情况,零钱地址也会暴露用户地址的关联性。用户X向用户Y转账40,总计付款50,因此零钱返回10。攻击者会很大概率推测账户D是零钱地址,从而将账户D和E进行关联。
如何在保障隐私的情况下实现区块链的特性(交易可验证,历史可查等)呢?
下面我们介绍最典型的匿名化方案:达世币(Dash)
达氏币(Dash) 达氏币使用了一种称之为合币(CoinJoin)的关键技术。简单地说,所谓合币技术就是通过一些主节点(master node)来将多个用户(至少3个)的多笔交易进行混合、形成单一交易的技术。在合币中,每个用户都会提供一个输入输出地址,然后将其送到主节点进行混合(即任意交换输入输出地址)。
交易只能以规定面额(0.1, 1, 10, 100)为单位来进行,这样就增加了攻击者从数额的角度来猜测交易关联度的难度。同时,主节点要保证乱序输出。如图4所示,不同的颜色代表此金额来自不同用户,DASH是达氏币的货币标识。通过混合,黄色用户完成了对绿色用户进行转账10 DASH。而外界很难从混淆后的交易中发现这笔交易。
合币中一个关键的保护隐私的角色就是主节点,因为主节点依然存在被攻击者控制的可能性。为了解决这个问题,达氏币中引入了链式混合(chaining)以及盲化(blinding)技术。所谓链式混合,就是指用户的交易会随机选择多个主节点,并在这些主节点中依次进行混合,最后输出;所谓盲化技术,就是指用户不直接将输入输出地址发送到交易池,而是随机选择一个主节点,让它将输入输出传递到一个指定的主节点,这样后一个主节点就很难获取用户的真实身份。
通过这两个技术,除非攻击者控制了很多的主节点,否则几乎不可能对指定交易进行关联。 除了防范交易数额以及输入输出地址的关联攻击,达氏币还防范了交易时间上的关联攻击。每个用户往往都会具备自己的交易习惯,例如每天的交易时间段以及短时间内进行多笔交易等等。这些时间信息也会一定程度暴露用户身份。为了解决这个问题,达氏币提出了被动(passive)匿名化的方案,保证用户客户端以固定的时间间隔发起交易请求,来参与主节点的混合。
网友评论