用户可以独立生成任意数量的区块链地址,不需要通过注册或认证,并且同一用户生成的不同地址可以单独使用,彼此间不存在任何关系。仅通过地址无法关联到用户的真实身份,该机制能够隐藏用户在区块链上不同操作的记录。
区块链系统通过 P2P 网络传输数据,采用flooding广播协议传播消息。接受节点是无法判断消息来源是直接发起者还是转发者,从而保护真实发起者的身份。
假名机制和广播机制能够在一定程度上保护用户的隐私安全,但在实际应用中,区块链用户的隐私仍然面临很多威胁。 主要原因是区块链为了保证去中心化系统的正确性和安全性,所有节点共同维护一致的分布式账本,记录区块链中所有的历史数据,为了所有节点都能验证账本的正确性,账本中所有数据要保持公开,所以账本数据能够被攻击者轻易获得,可通过分析公开的记录,来窥探用户的隐私。此外,区块链系统还采用去中心化网路进行通信,在公链中,节点加入网络不需要任何身份认证,这样增强了系统的扩展性,但也导致攻击者可以自由部署节点加入网络,监听网络中节点的隐私和通信信息。
这里,将区块链隐私威胁分为三个方面:
·交易隐私威胁。攻击者可以通过分析交易记录获得,例如特定账户的资金余额、交易详情、特定资金的流向等信息。
·身份隐私威胁。攻击者在分析交易数据的基础上,通过结合一些背景知识获得交易者的身份信息。
·恶意节点可以轻易接入网络,监听网络层的通信数据。
·用户行为和区块链服务商导致的隐私泄露。
这里主要分析交易层面的隐私威胁。 对于交易隐私方面的威胁,可以对具有关联性的区块链地址进行聚类分析,能够得到许多有价值的信息,比如可以发现不同地址之间的资金关系,尤其对一些特殊账户,这种方法效果更好。还可以跟踪某些特殊交易,比如针对大额交易或者涉嫌盗窃等恶意行为的交易,可以通过持续监控后续的交易信息,追踪资金流向。 对于身份隐私方面的威胁,由于区块链交易中存在很多潜在信息,利用这些潜在信息有可能推测出交易数据背后的身份隐私,比如大多数多输入交易都是由同一个用户发起,这被很多研究者作为启发式推测条件使用,还有在同一个coinbase交易中的多个输出地址属于同一个用户集合、找零地址和输入地址隶属于同一个用户等等,利用这些信息都可以发现不同地址之间的关联性,降低区块链地址的匿名性。
通过分析交易层的攻击方法,可以看出攻击者主要是通过分析公开的区块链交易数据获得隐私信息.因此,交易层保护机制的侧重点是在满足区块链正常运行的基础上,防止恶意节点获得准确的交易数据,这主要有三类方法:
·通过将交易内容的部分数据进行混淆,使攻击者无法获得准确的数据,增加分析难度。难点在于不破坏交易结果的条件下,防止攻击者发现不同地址之间的关系。
·地址混淆机制(“混币”机制)
·通过将交易信息加密,使攻击者无法获得具体的交易信息,从而无法开展分析。这种方案的难点在于实现加密的同时,必须保证原有的验证机制不受影响。
·门罗币、Zcash(零知识证明zk-SNARKs)
·通过发布少量或者不发布交易数据,减少攻击者能够获得的信息,增加分析难度。
·闪电网络、联盟链和私有链
其中,这里主要分析地址混淆技术的各种方法。
地址混淆机制有多种不同的实现形式,根据具体操作者的不同,分为中心化混币和去中心化混币两类技术:
中心化混币技术需要中心化混币服务商参与,帮助混币用户进行混币操作。
去中心化混币技术由所有参与混币的用户按照协议,自发进行混币交易。
两类实现技术有各自的优缺点,中心化混币技术便于用户使用,但混币服务商存在安全隐患。去中心化混币技术安全性更强,但需要用户寻找混币同伴,并与其他混币用户交互构造混币交易,使用不便。
此外,针对地址混淆机制中各类实现技术,提出三个度量指标:
·资产安全性
经过地址混淆操作后,用户能在约定时间之前取回自己参与混币的资产(扣除手续费)。
·外部隐私性
用户参与混币交易的输入、输出地址的关系,被外部攻击者关联的可能性。
·内部隐私性
用户参与混币交易的输入、输出地址的关系,被参与混币过程的攻击者关联的可能性。
首先来大致介绍一下中心化混币,
它的基本模型由四个阶段构成,分别是协商、输入、输出、结束。
基础的中心化混币服务主要存在两个问题,分别是:
·中心化混币服务提供商的行为存在一定特征
·存在内部作恶的风险
针对存在的问题,研究者们提出了增加中心化混币协议 外部隐私性、内部隐私性和资产安全性的相应技术。实现机制如下:
·随机化机制
·基于电子签名的承诺机制:Mixcoin协议
·基于盲签名技术的隐藏机制:Blindcoin协议
随机化机制减少混币服务商的特定行为特征,增加攻击者分析的难度,从而增强外部隐私性;
其中,随机化机制减少混币服务商的特定行为特征,增加攻击者分析的难度,从而增强外部隐私性;要求混币服务商对协商阶段的参数进行电子签名作为承诺,以防服务商盗窃用户资产,增强了资产安全性;
基于盲签名技术的隐藏机制通过在协商阶段,使用盲签名技术,在保持承诺机制的前提下保护关键参数不对服务商可见,从而对服务商隐藏用户的输入输出地址之间的关系,提供了内部隐私性。
其中,对基于电子签名的承诺机制,会介绍Mixcoin协议,对基于盲签名技术的隐藏机制,会介绍Blindcoin协议。 接下来详细介绍各个部分。
首先介绍中心化混币的基本模型。
·中心化混币大致思路是服务商帮助希望进行混币交易的用户找到同伴,构造混币交易,并从中收取一定的手续费。在这个过程中,混币服务商作为中介角色分别与各用户进行交易,接收到用户的资产后,进行随机混淆,然后返回给对应的目的地址。通过将不同用户的资产互相交换,达到混淆地址的效果,而分析攻击只能将所有参与混币服务的地址聚类到一起,难以分辨出属于单一用户的账户地址。
·基本模型如图所示,具体的流程主要分为协商、输入、输出及结束这 4 个阶段
1. 协商阶段:希望参与混币的用户,与混币服务商进行协商,约定用于混币的输入地址、输出地址、服务商的接受地址、返回地址、混币金额、混币输入输出时间、混币手续费等相关参数。
2. 输入阶段:用户按照协商阶段商定的相关参数,在约定时间之前将约定资产从输入地址发送到服务商指定的接受地址。
3. 输出阶段:服务商在约定时间之前,将扣除手续费后的资产,通过返回地址发送到用户指定的输出地址.
4. 结束阶段:如果协议正常运行结束,服务商和用户销毁协商阶段留下的记录,保护用户隐私。
但是中心化混币服务主要存在两方面的问题:
一方面,中心化混币服务商的行为存在一定特征,比如混币交易在时间上的规律、抽取一定比率的手续费、 存在一个常用的地址池等。攻击者可以通过这些特征进行混币交易的分析,将用户的输入输出地址关联起来,难以满足外部隐私性。
另一方面,中心化混币服务商存在内部作恶的风险,无法保证在接受到用户输入资产后将对应资产返还给用户。在区块链系统中,所有链上地址都是算法生成的假名,因此用户无法证明自己的资产是否被窃取,平台也难以提供证据自证清白。此外,服务提供商也无法保证删除了用户输入输出关联关系的记录,因此不能保证资产安全性和内部隐私性。
那么为了防止攻击者根据平台固定的手续费等配置,来关联混币用户的输入输出地址,使用随机化机制在输出阶段,人为制造交易时间、手续费等信息的随机性,掩盖混币交易的特征。 这里举两个具体实现随机化机制的例子:
中心化混币平台Bitcoin Fog将收取的手续费设定为一个范围之间的随机值,并在用户指定时间内随机挑选时间将资产返还到输出地址。这一方案可以减少外部攻击者根据混币特征关联用户地址的可能,在一定程度上保护用户隐私。
但是在实际应用中,用户为了防止中心化混币服务商泄漏用户隐私,会将资产在多家混币服务商依次进行混淆,此时,连续的混币交易存在的手续费特征会暴露用户隐私。为解决这一问题
Mixcoin协议设计了随机的、全有或全无(all-or-nothing)的手续费机制,混币服务提供商以约定好的概率,将部分用户的混币金额全部留做手续费,其他用户的混币金额全额返还。
总结这两个方法,采用随机化机制主要增强了中心化混币方案的外部隐私性,防止外部攻击者通过混币交易的固定特征,来分析用户的混币过程。但不能提供内部隐私性与资产安全性,混币服务商可能盗窃用户资产或者泄漏用户地址关系等隐私信息。
然后再来看基于电子签名的承诺机制
由于在区块链系统中,中心化的混币服务商没有实体身份作为信誉担保,可能出现盗窃用户资产的行为,用户很难相信混币服务商。同时,用户的账户地址也不存在对应的身份,因而服务商难以自证清白。为了保护用户资产安全,混币服务商利用数字签名技术的不可伪造和不可抵赖的特性,增加承诺机制帮助用户证明平台的是否存在窃取行为。在协商阶段,混币服务商需要提供身份对应的电子签名作为承诺。承诺包括约定的输入输出地址、混淆资产金额、约定时间等信息,并用混币服务商的长期公钥对应的私钥进行签名。
服务提供商通过维护自己的“虚拟声誉”,也就是使用代表身份的长期有效公钥,使得用户信任服务商。使用该公钥对应私钥的签名向用户承诺平台不会出现盗窃行为;否则,用户可以通公开该承诺以及不符合承诺的区块链记录,向其他用户证明该平台存在盗窃行为,破坏服务商的声誉。承诺机制在一定程度上保障了用户资产安全,另一方面也避免了用户恶意造谣。
基于这种思想,出现了Mixcoin 协议,通过电子签名增强资产安全性,这个协议的核心步骤如图所示,在协商阶段加入承诺机制,服务商需要对协商参数进行签名作为承诺,用户得到承诺后再向服务提供商支付混币资产。如果服务提供商没有按照承诺在约定时间之前返回资产,那么用户在结束阶段可以公示,协商阶段收到的承诺与区块链记录证明服务提供商违背承诺。
虽然Mixcoin 协议通过承诺机制在一定程度上保护了用户资产安全,但是该协议无法提供内部隐私性,就是平台无法证明已如约销毁用户混币记录,用户也无法进行验证。因此,用户为了保护自己的混币隐私不被恶意平台泄漏,通常采用在多个平台连续混币的方式。但这带来了较高的手续费,也留下了更多的混币记录,给攻击者提供了更多特征进行分析。
为了提供中心化混币的内部隐私性,需要服务商在不知道用户输入输出地址对应关系的情况下,进行输入和输出阶段,利用盲签名技术可以达到这一目的。它是一种特殊的数字签名技术,签名者对消息 进行签名的过程中并不知道消息内容是什么。
盲签名技术满足两条性质,分别是:
1.被签名消息对签名者是不可见的,也就是说签名者不知道他所签署消息的具体内容。
2. 签名消息不可追踪,当签名消息被去盲化公布后,签名者无法将去盲化签名与盲化签名对应上。
其中,第 1 条性质保证了签名消息的内容隐私性,第 2 条性质保证了签名请求者的身份隐私性。 盲签名技术的整体流程如图所示,主要分为 4 个步骤:
1. 签名申请者首先将消息进行盲化操作,将盲化消息发给签名者。
2. 签名者对盲化消息进行签名操作,将盲化签名返回签名申请者。
3. 签名申请者对收到的盲化签名再作去盲变换,得出的就是签名者对原数据的签名。
4. 签名申请者可以公布原始消息与去盲化签名,由验证者进行验证。
这是盲签名技术,那么如何通过盲签名技术来保障中心化混币的内部隐私性呢?
就出现了Blindcoin协议,这个协议保留了Mixcoin 协议的随机化手续费、承诺等机制,并在此基础之上,通过盲签名技术使得混币用户的输入输出地址关系对服务商不可见。
核心步骤如图所示,Blindcoin协议协议首先修改了协商阶段的签名部分,服务商对用户输出地址的承诺进行盲签名。然后,用户对盲化签名进行去盲化操作,得到针对真实输出地址的签名,并作为输出地址获取混币资产的凭证交给服务商,服务商可以验证该签名的正确性以及是否使用过。由于服务商在协商阶段知道用户的输入地址但不知道输出地址,而在输出阶段知道输出地址而不知道对应的输入地址,因而无法判断用户输入输出地址的关系。盲签名技术可以有效增强中心化混币方案的内部隐私性,为了同时保持 MixCoin协议的可审计特性,协议还需要在公开的账本中,记录下盲签名和去盲签名的内容,达到时间戳认证的效果。这一设计不会暴露用户的隐私,而一旦混币服务商未履行承诺,用户可以公示服务商的承诺,并使用在区块链账本中存储的消息作为违约证据。
尽管中心化混币技术在一定程度上保障了资产安全性和隐私性,但依赖的混币服务商仍会带来一些潜在风险,比如遭受黑客攻击进而盗窃用户资产。所以研究者提出了一系列去中心化的混币协议,通过多方参与的协议代替中心化混币服务提供商,使得用户不需要先将自己的资产发送给混币服务商,而是在网络中找到其他需要混币的用户,通过多方参与者运行协议的方式构造一致的混币交易,确认后签名使得交易生效。这一系列协议从根本上解决了中心化混币存在的信任问题,同时节省了混币服务提供商收取的手续费,但是也存在着一些不足,比如寻找其他混币用户存在困难、容易让外部攻击者混入并监听混币关系甚至进行拒绝服务攻击导致混币失败。 下面,会从这两个方面介绍去中心化混币,分别是基本模型和实现机制。
基本模型
·4个阶段:协商、混淆、确认、结束
实现机制
·多方混币技术:思路、优点、缺点
·双方混币技术:思路、优点、缺点
首先来看基本模型,分为协商、混淆、确认及结束等 4 个阶段,在图中,红色节点表示混入的攻击者。与中心化混币协议的区别主要在于,执行的角色由中心化混币服务器转变为参与混币的用户多方共同完成。
1. 协商阶段:用户寻找参与混币的其他同伴,协商去中心化混币协议需要的参数,例如各用户混币输入输出地址、混币金额等参数.
2. 混淆阶段:参与混币的用户根据协议对所有输出地址进行混淆,隐藏用户输入、输出地址之间的关联关系.
3. 确认阶段:混币用户根据混淆阶段得到混淆后的交易输出构造混币交易,确定无误后进行广播,将混币资产发送到各用户指定的输出地址.
4. 结束阶段:如果混币协议正常结束,那么参与混币的用户销毁此次混币过程相关记录。如果过程出现错误中止,那么参与混币的用户找出并且排除造成错误的用户。
最后是去中心化混币的两类实现机制:多方混币技术和双方混币技术。
多方混币技术主要思路是 n 个参与方约定相等的混币金额,参与者数量要求大于等于 3,且隐私保护程度与参与者数量成正相关,构建 n-to-n 的多签名交易,保证每个交易输出都是相等的金额,外部攻击者无法通过分析交易分辨不同的输出,从而无法分析每个输出与输入地址之间的关联关系,保障外部隐私性。
多方混币技术的优点在于多参与方增强了地址混淆的外部隐私性,多参与方构造一笔交易也能节省交易费。缺点在于参与者数量的上升会增大攻击者混入的概率,攻击者可以在协议过程中监听并分析,其他参与者的输入输出地址关联关系,威胁内部隐私性,甚至还会进行拒绝服务攻击中断协议进程。
为了防止恶意攻击者参与混币,研究者提出将单次混币操作限定在两个用户之间进行,称为双方混币技术,可以降低恶意攻击者混入的概率,也可以减小攻击者攻击的危害。
双方混币协议的核心思想在于,将多个参与者进行一次混币交易,改为混币用户多次寻找不同的混币同伴,进行多轮双方混币,最终达到相同外部隐私性的混币效果。
这类协议的优点在于攻击者为了获取用户资产流动,必须参与该用户的每一轮混币,但这概率上难以达到,从而减少了攻击者的威胁,提升了协议的隐私性,并且每次的混币操作简单。 缺陷在于多轮混币需要在区块链账本上发布多次交易,增加了交易费的支出,也带来了额外的时间花费。 这就是去中心化混币技术的基本实现机制。
中心化混币
·基本模型:协商、输入、输出、结束
·存在问题
·实现机制:随机化机制、电子签名承诺机制、盲签名技术隐藏机制
去中心化混币
·基本模型:协商、混淆、确认、结束
·实现机制:多方混币技术、双方混币技术
总结一下,本文主要总结了交易层面的隐私威胁,并针对交易层的隐私保护机制,详细介绍了其中地址混淆机制的各类实现方法及优缺点,后续会继续深入学习其他隐私保护机制。