暗网空间(DarkNetSpace)深入浅出之三——高级篇
1.暗网空间匿名基础构架
1.1 比特币匿名性弱点
比特币通过以下三点来支持匿名性:
1)地址生成无需实名认证;
2)通过地址不能对应到真实身份;
3)同一拥有者的不同地址之间没有直接关联,无法得知某一用户的全部比特币金额。
比特币的匿名性是不充分的,原因如下:
1、交易公开。只需知道一个地址就可以找到关联人的一系列地址。另外,在论坛、微博、TWITTER、REDDIT、BBS等留下的许多信息,通过大数据分析可以汇总起来,会发现一系列的线索,除非你谨慎得像中本聪。
2、与法币的兑换环节。比特币兑换所的实名认证,是有效的反匿名措施,其他要求实名的比特币服务商也如此,完全可以通过兑换所的提款地址和充值地址来找出某个人的所有交易和地址。有人说可以用假身份证件来逃过,在目前这是可行的,但以后兑换所的身份验证一定会越来越严格。
3、交易的汇总输入会暴露拥有人的其他地址。一旦你发送钱包中的大部分币给某人或某兑换所,基本上会把你的全部地址都暴露无遗。因为交易会汇总大部分地址中的币打出去。
4、协议监听。比特币的通讯协议未加密,向外打款时,协议分析软件可以监听某一网络范围内的所有新交易,找出IP地址与比特币地址的对应关系。如果在全国部署了这种监控系统,那定位到你的单位或小区就不是问题,再结合运营商网络的IP纪录,查找到真正人。(当然可以用TOR、VPN之类穿越)。
5、伪装合法节点的大数据分析,目前全球只有7400个完全节点,其他不完全节点与这些节点通讯来获得新交易信息,我们如果有足够的资金,可以建立几百或几千个完全节点,与7400个现存完全节点和其他不完全节点通讯,因而有可能追踪到新交易的发起IP地址。
因而,就目前来看,这几年几个兑换所被盗走的比特币都很少动,以上几个匿名性弱点应该是主要原因。
1.2 比特币块链的混币
为了解决以上隐私问题,有些网站提供了混币服务。混币原理是割裂输入地址和输出地址之间的关系。
1、混币原理(CoinJoin):许多人参与,一个交易中包括大量输入和输出,很难在输入和输出中找出每个人的对应对,输入与输出之间的联系被事实上割裂。多次混币、每次少量币,效果更好。
2、以中心化网站(Blockchain.info)、Darkwallet(分布式的,混币需求要通过暗钱包服务器收集),但是这些中心化和分布式服务都需要服务器,在服务器上会有混币纪录,不是很安全。Blockchain.info就有混币纪录,一段时间后才删除,以应付有可能的司法检查。
3、Darkwallet引入Stealth Address隐身地址,打乱了块链的交易连续性,同时采用了CoinJoin混币模式并对通讯进行加密,在较大程度上加强了匿名性。但Darkwallet是分布式的,混币需求要通过暗钱包服务器收集,这些中心化和分布式服务都需要服务器,在服务器上会有混币纪录,不是很安全。另外,Darkwallet是基于比特币块链的,隐身地址用于比特币网络得到的匿名性有一定局限性:比特币块链本身是公开透明可追踪的,隐身交易之前的块链交易都可查,隐身交易之后的输出也有后续的交易可供追查,因而匿名性有限。
1.3 暗网空间采用的匿名技术
1.3.1 TOR
Tor是一个匿名网络,安装有tor软件的全球所有客户端连接成为一个宏大的匿名网络。用户通过tor匿名网络连接到任何网站,而不会暴露自己的实际IP地址。Tor网络有两个关键技术保证安全:
访问路由选择是一个关键技术,由用户端自动选择路由,每个tor节点只知道某个数据包的上一节点和下一节点,不知道数据包的源地址和目的地址。
数据层级加密技术。用户端用指定的tor节点的公钥加密,把原始数据用要经过的tor节点的公钥按顺序一层层加密好,传输出去后由每个tor节点解密一层,到tor出口节点解密出最后的原始数据,因而中间的tor节点无法知道数据内容。
暗网空间采用Tor技术来隐藏比特币钱包的真实IP地址,以防被比特币协议监听软件监听到新交易,从而推导出真实IP与比特币地址的对应关系。
1.3.2环签名(Ring Signature)
环签名是一种全新的匿名签名技术,有以下几个特点:
无需其他用户参与。实际签名者可在所有用户中任意选取参与签名的用户来产生一个环签名方案,而不必通知被选用户,也不需要其他环成员的协助,所需要的仅仅是他们的公钥而已。
不可伪造性:外部攻击者在不知道任何成员的私钥情况下,即便能够从一个产生环签名的随机预言模型中得到任何消息的签名,他也不能成功伪造一个合法签名。
无条件匿名性:即无法追踪签名者的身份。攻击者即便非法获得了所有可能的签名者私钥,他能确定真正签名者的概率不超过1/n,其中n为可能签名者的个数。该特性是环签名本身的特性,体现其安全性。不过在暗网是不能让攻击者得到私钥的,否则可以解密所有交易,得到所有暗网币。
如上图所示,用Alice, Bob 和Carol的公钥对交易签名,三者都可以验证这个交易是对的。但是无法分辨出来,到底三者中的哪一位签名了交易。
暗网空间中使用环签名技术,收集了众多公钥,然后生成环签名,使得攻击者无法确定是由哪个用户签名并且发送了暗网币,相当于隐藏了发送者,实现了一次混币。
1.3.3隐身地址(Stealth Address)
隐身地址是由Bytecoin重要的匿名技术,把实际交易与公开地址割裂开来,没法从公开地址中找到任何对应交易,但是收款人还是能够用这个地址收到币。
其具体使用场景如下:
A公布一个隐身地址的公钥Q1
B向另一个公钥Q2支付、并且在交易中公布B的公钥P,Q2与Q1有密码学联系。
A扫描交易,发现P,用P和自己Q1对应的私钥,生成比特币地址,验证地址是否匹配。如果匹配,生成地址私钥,拿回币。
暗网空间使用该技术,割裂了公示地址和块链地址的关系,无法通过块链地址推导出公示地址,即隐藏了接收者,使得交易链不可追踪。
1.3.4交易远程释放技术(Transaction Remote Release)
这是暗网空间独创的匿名技术,针对比特币协议监听和大量合法节点大数据分析两种攻击方式而设计。其基本原理是借鉴TOR思想,把本地的新交易层层加密,每经过一个节点解密一层,传输到远程节点释放,每个节点只知道前后节点IP,不知道数据内容。Tor进行协议外加密,能防止比特币协议监听,但是不能防止大量节点大数据分析攻击,而TRR采用协议内加密,能避免这两种攻击。实现条件:
每个节点有一个公开的、用于数据加密的公钥和私钥对,与加密货币地址无关。
每个节点向其他节点公开数据加密的公钥和IP地址。
每个发起TTR的节点,临时生成一个或几个不公开的数据加密公钥,作为路由节点返回数据的加密公钥。
TRR使用场景描述如下:
生成新交易,不释放。
获得在线节点和公钥列表,随机选取3-5个节点形成一条路由。
把新交易、路由信息、临时加密公钥按照路由顺序用对应节点的公钥加密。比如路由是S->A->B->C,则把新交易数据先用C的公钥加密,再用B公钥加密,再用A公钥加密,向A发送TRR请求。
A收到数据,用自己的私钥解密,找到B的IP地址和端口,向B传输;B也如此;
C解密后,发现没有后向IP地址了,释放交易。
每个节点出现错误则放弃,用临时加密公钥加密后,返回错误状态。
本技术沿着随机路由加密传输,中转节点不知道交易内容是什么,释放节点知道交易内容,但不知道源IP地址是什么。因而使用该TRR技术,即便在连接不上TOR网络的情况下,也能防止伪装节点的大数据分析攻击。
暗网空间独创TRR技术,有效防止伪装节点的大数据分析攻击,该技术可用于任何加密货币的块链上。
2.暗网空间与其他匿名特性加密货币的比较
暗网空间是目前唯一一个以匿名为主题的加密货币应用系统,以下是与其他匿名币的比较。
2.1 Darkcoin
Darkcoin使用的匿名技术是:Darksend引入了Coinjoin分布式混币服务。Coinjoin的混币,分析者有可能通过输入地址的金额和输出地址的金额对比,分析出混币的输入和输出地址对。另外Darksend不开源,有纪录混币历史的可能性;
而暗网币的环签名则是块链上的混币服务,这种混币具有相同金额的输入,并且使用了多个别人的公钥,只知道是从这一群人中的一个发送的,但无法判断是哪一个,也无法通过金额分析来判断输入输出对。暗网币还支持TOR和TRR技术,引入了隐身地址,比Darkcoin的匿名性强。
2.2 Zerocoin/Zerocash
Zerocoin是一种去中心化的混币技术,把一定数量如1个比特币转化为zerocoin,采用零知识证明技术花费zerocoin或转化为其他zerocoin,使得在零币之中的交易不可追踪。Zerocoin是一种全新匿名技术,但远远未到实用阶段,原因如下:
(1)性能问题,zerocoin零知识证明,至少占45KB空间和450ms的验证时间(128位的密钥长度),必须全网广播和存贮,并且由每个节点验证,将带来巨大的块链长度和验证时间。
(2) Zerocoin的局限性。Zerocoin不能用来支付,不能拆分金额,不能隐藏金额,可以通过金额对比来获得混币输入和输出地址的对应关系。
Zerocash是Zerocoin的升级版本,使用密码学承诺,把零知识证明所需容量减少了97.7%,把验证速度减少了98.6%,可以用来支付,输入金额可变,可以隐藏输入金额,比Zerocoin先进了许多。
Zerocoin/Zerocash存在两个致命问题。第一是它们的初始数据定义,必须定义一个数N,由P和Q两个质数相乘得到,如果N足够大,别人就无法推断出P和Q,也就无法双花。但初始生成人不能保存P和Q值,否则可以随意双花,而且无法检测。但是无法验证P和Q是否被保存了。第二个问题是,Zerocoin/Zerocash的开发团队由政府官方资助,这很让人担心。
2.3 Bytecoin
Bytecoin是最早引入环签名和隐身地址的加密货币。暗网币就是在Bytecoin基础之上进行开发和创新的。Bytecoin不支持Tor,通讯未加密,无法隐匿上网地址,容易被协议监听,从而分析钱包地址和IP地址的对应关系。
Bytecoin是命令行钱包,使用上不方便,暗网币有图形化钱包、即将推出在线钱包、手机钱包和轻钱包。
Bytecoin没有块链应用,仅为匿名而匿名。我们认为匿名技术是一个基础技术,在其上发展多种应用如P2P兑换所、块链商城等,才有可能让匿名币更广泛地被用户所接受。
2.4其他币种
Anoncoin:仅支持Tor和另一个匿名网络i2p。
Blackcoin:未采用匿名技术,并非匿名币。
Moreno:与Bytecoin一样支持环签名和隐身地址,在Bytecoin基础上发展了GPU挖矿。
Boolberry来自Bytecoin,一样支持环签名和隐身地址,但不支持TOR和TRR,没有任何匿名应用。
StealthCoin:通过StealthSend采用环签名,正在研发中。
XCurrency:通讯加密,支持环签名,不支持隐身地址。
因而暗网币是加密货币行业中最为匿名、唯一支持应用的匿名币种。
3.实现匿名应用的技术难点
在暗网空间中实现匿名应用有较大的技术难度,这种难度体现在环签名和、隐身地址两种匿名技术,以及脚本系统上。
3.1匿名应用的技术要求
P2P交易的技术要求:
(1)接收者地址是块链可见的,否则购买的资产无法发送到购买者名下;
(2)能把暗网币封在块链上
(3)能把封在暗网币向原地址或其他地址转发。
块链商城的技术要求:
(1)能把暗网币封在块链上
(2)能把封在暗网币向原地址或其他地址转发。
(3)担保交易,2-of-3多签名担保地址
POS机制的技术要求:
(1)能验证POS交易的发送者发送的币属于他自己
(2)能验证POS交易的接收者也是他自己
3.2现实的技术障碍
现实的技术障碍:
(1)环签名隐藏了交易发送者,成为P2P交易的接收者地址可见、POS机制的接收者证明的技术障碍。
(2)隐身地址隐藏了交易接收者,成为P2P交易的接收者地址验证、POS机制的发送者证明的技术障碍。
(3)无脚本系统,成为把币封在块链的技术障碍。
(4)无多签名地址,成为块链商城担保交易的障碍。
暗网空间的开发将在匿名技术的基础上,克服以上技术难点,实现P2P兑换所、块链商城、POS机制以及其他匿名应用。
Scan QR code with WeChat