>科技>>正文

比特镇魂曲04(上)果然是凶手的比特币地址

原标题:比特镇魂曲04(上)果然是凶手的比特币地址

来源/素为

本集关键词:匿名性、区块链浏览器、多重签名的地址、客户端软件、全节点、轻节点、脑钱包、纸钱包、助记词、冷钱包、NYC、AML、混币、暗网、洋葱路由、PGP加密、P2P、Napster、非对称密码学体系、《密码学新方向》、HashCash、“双花”、零知识证明、盲签名技术、eCash、David Chaum、B-money、BitGold、密码朋克、Adam Back、戴维、哈尔·芬尼、尼克·萨博、中本聪

小素机器人,快跟我讲讲案件调查的后续进展,狐狸尾巴是如何被你们抓到的?

️ 先别急,主人,我问你,在区块链的浪潮中,人们都说比特币是哈耶克“货币的非国家化”理念的实现,是用密码学特别是公私钥体系保障了持有者的匿名性,它用技术手段实现了对私人财富的隐私保护……

确实如此,大家都这么说。不过,保护隐私值得称赞,但也给违法犯罪分子提供了庇护所,由于比特币难以被政府用传统方法监管,导致利用比特币洗钱、从事非法交易的情况,也屡有发生。

️ 嗯,如果用英语来表达比特币的“匿名性”,你准备用什么词语?

哈哈,虽然我英语不太好,但“匿名”还是知道的,是anonymity。

️ 然而你错了,比特币并非anonymity,它的特性只是pseudonymity,即“化名”。

什么叫“化名”?

️ 就像中山樵、李得胜、鲁迅、马克·吐温……这些全都是化名。

素为也是pseudonymity。

️ 对,pseudonymity指的是使用一个假名字来掩盖真实的身份,艺名、笔名、网名、昵称、代号,这些都是。

那么,pseudonymity到底与anonymity有何区别呢?为什么你说“化名”不等于真正的“匿名”呢?

️ 因为“匿名”anonymity是指的更为彻底的隐匿方式:不能识别身份(Non-identifiable)、不能追踪痕迹(Untrackable)、不能接触到人(Unreachable)。

干嘛要定义这么严苛的要求呢?

️ 因为很多自由主义者对数字加密货币抱着极高的期待,他们想彻底的隐匿身份,而不仅仅满足于用一个化名作为代号,因为他们认为这样对保护他们的财产隐私安全是不够的。你看比特币的体系,它给用户分配了“地址”,而地址和该地址上的UTXO,即“未交易输出”,通俗的说就是余额,都是全网公开的,任何人想查询,都是可以查到的。

怎么查?

️ 可以用各种比特币网络提供的命令接口查询,当然,如果你不是程序员,也可以通过“区块链浏览器”网页服务查询。

什么是“区块链浏览器”?

️ 就是一种面向普通用户的web服务,在网页上可以查看比特币网络的各种信息,包括区块编号、哈希值、时间、每一笔交易的明细、挖矿难度等等。本质上,区块链浏览器就是一个查询比特币网络信息的网页工具。

哦,程序员用的命令接口不太友好,所以普通人需要这么一个相对容易理解的“区块链浏览器”。

️ 是的,本质上,区块链浏览器的底层仍然是通过程序命令接口接入比特币网络获取各种基础信息。老牌区块链浏览器的代表是https://www.blockchain.info,数据及时权威;而近来有一些区块链浏览器服务非常的丰富和灵活,比如 https://tokenview.com,当然,这仅是我个人喜好,并不代表信誉担保呢!

Blockexplorer.com是历史上第一个区块链浏览器,从2010年11月运营至今

为什么要这样说?

️ 因为区块链浏览器实际上搭建的是用户与区块链网络之间的桥梁,区块链浏览器上的数据是否真实,我们很难去一一验证,只能去默认相信它。所以,我的推荐只是从它的易用性和可用性角度来说的。

TokenView这个区块链浏览器平台如何丰富灵活了?

️ 它提供了“富豪榜”、“大额交易监测”等服务。在“富豪榜”,我们可以很直观地查看到哪些地址拥有的比特币数量最多;而在“大额交易监测”中,我们可以设置阀值和时间段,从而把发生在特定时间段的大额交易全部呈现出来。

TokenView区块链浏览器上的比特币富豪榜

我在想,如果是程序员,或许可以搭建出更加灵活和有针对性的应用,例如一个比特币从“挖”出,到后续的各种流转,相关的交易包含在哪几个区块中,交易的对象之间还有哪些交易,这些关系都可以在一张大图表上清晰呈现。

️ 你说的非常对,所以你可以看到,目前拥有比特币最多的地址是3D2oetdNuZUqQHPJmcMDDHYoqkyNVsFk9r ,它上面有138660多个比特币,而且它的每一笔输入和输出都显示的清清楚楚。

也正是因此,你才断言,比特币网络是pseudonymity“化名”,而不是纯粹的anonymity“匿名”?

️ 是呀!盯住“化名”,再结合社会工程学方法,例如银行等金融机构、合规的数字货币交易所要求的KYC和AML相关政策,比特币网络所谓的匿名性就彻底成为了公开网络了。

KYC我知道,是Know-Your-Customer的缩写,即要求用户实名制登记。这AML是啥?

️ AML是Anti-Money Laundering,反洗钱。

在严密的政策监管下,“化名”终究只是火上的纸——包不住真相啊!

️ 所以刚刚那个比特币富豪榜首位的地址,它的标签是Bitfinex-coldwallet,属于一家数字货币交易所的冷钱包。

什么冷钱包?甚至,什么是“钱包”?

️ “钱包”是一种形象的说法而已,我们一般把能够提供收发比特币操作的软件叫做“钱包”。所谓收发比特币操作,例如可以提供私钥签名,或者进行公钥验证。你可以在比特币官网http://bitcoin.org选择适合的钱包软件下载,包括PC、Mac、Linux等桌面版本的,也包括安卓和苹果手机上用的APP,当然,也有在网页上可以打开直接用的应用。

我在这里 https://github.com/bitcoin/bitcoin下载了比特币核心客户端软件,也就是你说的钱包,可对?

️ 这Bitcoin Core是最正宗、最经典的比特币客户端软件。

比特币钱包软件界面

安装它倒是很快,但开始运行之后,初始化却是漫长而痛苦的过程,让我的电脑昼夜不停的同步了两个月的数据,我查了一下,有近200G的数据被下载到了本地,这里面都是些什么呀?

️ 这近200G的数据,就是比特币区块文件呀!

哦?

️ 可记得区块链就是全网同步的分布式账本吗?每个节点都有一套全网账本数据,当你开始运行钱包软件,系统就会通过P2P的方式从其它的节点中下载全网账本数据,这样,你的客户端也就是在运行一个比特币节点了呀!

哦,原来过去十年间所有的比特币交易,都在我这里有一套账目的备份呀!难怪有人说,要禁绝比特币是不可能的,除非有人能把世界上所有的电脑和硬盘都销毁,或者把互联网关闭。

️ 你运行的这种需要下载并同步全网区块数据的客户端软件,被称为“全节点钱包”,它默认运行时保存全部的历史区块数据的,所以某种意义上是安全性最高的钱包软件。你可以在这个网址https://bitnodes.earn.com看到,目前全世界有大约有1万个“全节点”,主要分布在美国、欧洲、中国。

居然只有大约1万个节点?

bitnodes.earn.com截图,显示目前全世界的节点数量和分布

️ 不排除有漏掉没统计在内的,如果你的全节点做得足够隐蔽,或者其它原因,可能无法被它的探测程序发现,但,大多数用户并不需要运行“全节点”钱包软件,却是不争的事实。

我觉得全部的区块数据都在自己的电脑里,这样是最踏实、最有安全感呢!因为,所有的验证都是基于自己所拥有的数据来实现,尽最大可能减少了被欺诈的风险。

️ 虽然最安全,但也是成本最高的方案哇!大多数的用户可能并不需要这么高成本的安全加持哟!他们会嫌“全节点”太重了:只想即来即用,不想消耗漫长的区块同步时间;只有较少量比特币需要管理,犯不着为它专门去配个固态硬盘。

那,有什么解决方案?

️ 方案就是“轻节点”,运行轻节点软件钱包,用户只保存区块头(Block Header)就可以了,虽然不能自己验证交易,但是可以通过联入比特币网络,从其它节点上查找到相应的信息,进而就可以知道网络是否认可此交易,丝毫不影响普通用户收发比特币的操作。

啊~有意思!

️ 我似乎觉得,说比特币客户端软件是“钱包”似乎不太妥。

哦?

️ 因为,无论是全节点钱包还是轻钱包,它的“钱包”实际上都是藏在一个电脑文件里:在你初次运行这个软件时,软件会自动生成一个钱包软件;然而,你可以备份、删除这个文件,以及用你从别处得到的备份文件来替换它,从而将它变成“另一个”钱包。

也就是说,钱包真正的本质不是软件,而是软件操作的那个文件。

️ 是的,因为私钥就以某种形式藏在那个文件里,而不在其它任何地方。

所以,文件也不是本质,而是藏在其中的私钥。

️ 没错,你还记得我们之前介绍过的,有了私钥,就可以推出公钥,而有了公钥,比特币地址也是可以算出的;而若这些过程反过来,却都不行。

那么,真正需要备份和好好保管的就是私钥。

️ 因此有人干脆把私钥背下来,删掉电脑文件,因为电脑文件有被木马盗走的风险,那么,存在自己脑袋里面是最保险的嘛!这就是所谓的“脑钱包”。

呃,难以置信,这么一长串毫无自然语言意义的字符串背下来,我看这世界上也没几个人能做到。

️ 嗯,所以,有的人是把它打印在一张纸上,然后锁到保险柜里,这即是所谓的“纸钱包”。

貌似可以看得见摸得着的纸,给人一种安全的错觉,其实安全性可能还不如电脑文件呢!

️ 没关系,人们总是在不断创新的。有的人造出了专门的“硬件钱包”,还有人通过一定的索引规则将一长串毫无自然语言意义的字符串转化为相对易记的“助记词”,以使“脑钱包”方式变得可用。

这个方式确实不错,用具备自然语义的“助记词”来代替对人类记忆不友好的私钥,这样,在安全性和易记性之间就达成了平衡,是可行的。

️ 当然,你也可以干脆从头开始就用一句有意义的话作为“种子(seed)”,来生成私钥。

是哦~从一句有意义的话生成私钥,这既方便记忆,又不失安全性。

️ 甚至,运用比特币源代码中提供的规则,断开互联网在单机电脑上操作,生成私钥,再从中推算出公钥和地址,只把地址抄到互联网终端里,用于接收比特币。私钥甚至公钥都没有公布过,原始的生成私钥的“种子”也只在创建者的脑海里。这是怎样高安全性的策略呀!

这样折腾,把比特币的安全特性简直运用到了极限。

️ 这就叫“冷钱包”,因为它的私钥和公钥都是没有联过网的,所以是“冷”的。

哦~原来是这个“冷”法儿呢!

️ 冷钱包可以直接用地址接收币,也可以在离线状态下用私钥对交易进行签名,再将签署结果拿到网络中进行广播,隔离联网的“热”环境,最大可能保障比特币的安全,所以受到广大交易所的亲睐。

对了,我发现这个交易所的冷钱包地址与一般的比特币地址有点儿不一样,一般的比特币地址都是1开头,这个地址是3开头的,这是什么情况?

️ 以1还是3开头,这个与是不是冷钱包没有关系。以3开头的是“多重签名的比特币钱包地址”。

多重签名?

️ 普通的以1开头的地址,一把私钥对应一个地址,只要这一把私钥签名即可花费地址上的比特币;而以3开头的地址,则需要多个私钥均签署,才能动用地址上的币。

哦,就像银行的联名账户那样!

️ 是,不过比联名账户的规则更灵活:假设有一笔比特币我们5个人同时拥有,可以设定规则为,至少3把私钥签署才能花费其上的比特币,至于哪3把钥匙则不做要求,当然,也可以设置2把或4把。这种多重签名的地址设置起来比一般地址要麻烦一点,但它在商业上很流行。

确实很适合合伙人使用。

️ 事实上,在商业领域中,除了合伙经营和共同财产,多重签名还有很多应用场景,比如中介担保、股权监督、数字遗产等。

数字遗产是怎么设置?

️ 假设有位老人有两个孩子,有一笔数字财产可在其去世后作为遗产继承,但是他担心孩子过早获得了财产会不利于成长,又担心万一自己突然去世,还没来得及转移密钥所有权,比特币的多重签名就提供了解决方案:可以配置两把私钥分别给两个孩子,任何一方都不能单独动用这笔财产,只有在老人去世后,两把私钥均签名,才能继承到遗产。

似乎能解决一些问题,如果老人的遗产就是比特币的话,这确实狠方便。

️ 对了,主人,刚刚提到冷钱包,还记得我们调查的案子吗?凶手在临刑前会见其妻时说的“是非成败转头空,青山依旧在,几度夕阳红”,他可不是在忏悔哦~

难道,它实际上是……

️ 是生成比特币私钥的“种子”。

我早就预料到,凶手临行前说的话,没那么简单,果然是生成比特币私钥的“种子”。不过,这“种子”得到比特币私钥的过程是怎样的呢?

️ 比特币私钥是一串256bit的二进制数,有2的256次方那么多个,可以写为2^256(这个数字是通过椭圆曲线的幂来定义的,所以,准确来说只有1.158×(10^77)-1个,这个数字略小于2^256),如果是比特币钱包软件自动生成,那就是随机的私钥;而如果要从“种子”转换来,实际上就是把它转化为256bit的二进制数字,当然,要转化为钱包软件可导入的格式(Wallet ImportFormat),还需要再转化为64位的十六进制数字(每位代表4比特),之后再用base58重新编码……

不能简单点儿吗?

️ 看来你跟凶手的妻子一样,都是普通人。没问题,就用网上提供的现成的脑钱包工具,例如http://brainwalletx.github.io或者https://www.bitaddress.org,都行。如果凶手的妻子是程序员,或许她可以进行更复杂的操作,采取一些独特的方法来得到私钥、公钥和地址,但是她并不擅长计算机技术,所以她只会用网上提供的脑钱包工具,输入“种子”那句话,然后点击按钮,用最普通的方法一键生成私钥、公钥和地址。

脑钱包示例界面

我要是她,我就先拿“种子”进行哈希,再拿哈希结果生私钥,或者拿私钥再当成“种子”进行一次计算,总之就是让你们猜得到开头,却不知过程,进而猜不到结果!

️ 没错,当然可以这样做,但是那样的话,他们的朋友老张就没有办法把比特币发给他们了,他们生成地址的规则最初是这样约定的,就是用最普通的“脑钱包”的方式。

你刚才说……老张给他们这个地址发送比特币了?

️ 是的,发了一笔不小数额的比特币。

通过“大额交易监测”发现的?

️ 不全是。

哦?怎么说?

️ 由于老张是矿场主,所以我们很快就确定了他名下的比特币地址,并进行了“大额交易监测”,发现那一段时间,他总共向外输出了117.72208个币的交易输出。

“总共”是什么意思?

️ 并非一次交易输出的。分了多次零散的交易,分别打给了19个不同的地址。

这19个地址是?

️ 这19个都是新地址,只进行过这一次输入交易,而且很快又都将币输出到各种不同的地址去了。

这说明什么?

️ 这些特征说明,这19个地址极有可能是属于“混币”服务组织的。

混币~?

️ 我们前面提过,因为比特币网络的匿名性其实只是一套“化名”机制,所以结合NYC、AML等社会政策,一切账户及交易都是可以追溯到操作者的现实身份的。于是,为了满足部分人群追求隐匿性的需求,有组织便提供Mixing或者说是Coin Shuffle,即“混币”服务。

哦~混币服务不在政策监管范围内?

️ 比特币是世界范围内的互联网应用,而且与交易所不同的是,它不直接与法定货币发生关联,所以难以监管。而且,混币服务就是让数字货币的传输轨迹被打断,让其变得不可追溯。假设A和B在一段时间内都是用了混币服务,那么,A的币的传输轨迹就可以指向B的输出对象,而B的币则会打给A的接收方,用户越多,混得越乱,想捋清楚也越难。

这还只是比特币一个币种的混币情况,如果考虑现如今上百种有价值的数字货币,异种币之间互相混,那就更复杂了。

️ 任它再复杂,有几个规律是不会变的:第一,输入和输出的总量是基本等值的。所谓“基本”,就是考虑混币平台收取一定的费用问题,这个好确定,去几个混币网站查一下行情就知道了;还要考虑一定的交易费。所以,当我们抓住发送账户和疑似接收账户这两端,放在一个时间段内进行对比,如果发现输入和输出总量是等值的,那么,就证明我们的猜测是正确的。

嗯!

️ 第二个规律是,必然是在一段有限的较短的时间内完成。因为从用户的心理考虑,他实际上是信任混币平台,才会把币打给混币平台提供的地址的,但混币平台没有监管,随时都有跑路的可能,所以,币被混币平台方掌握的时间应该是越短越好。

有道理,是狐狸都会露出尾巴。混币相关的交易与正常的交易在特征上是有很大差异的。

️ 第三个规律也是如此,混币的目的是为了切断溯源,所以它要在有限的成本内把传输路径设计得越零散越好,然而,有个词叫“弄巧成拙”,你弄得越零散,说明越发有鬼。有些东西是伪造不来的,比如那些只用过一次的新地址,每当我看到这种账号,我就感觉到惊悚——它们不是人类用的,是机器伪造的文明假象。

暴殄天物!这样浪费比特币地址,不怕被用完吗?

️ 还真不怕用完,哈哈~前面我们说过,比特币私钥有接近2的256次方(2^256)那么多,也就是地址有这么多,或者更准确说是1.158×(10^77)-1个,而在宇宙可见部分,大约也只有10的80次方(10^80)个原子,因此,倘若生成的数字足够随机,那么,生成两个相同的比特币地址的概率只是比你任选宇宙间的两个原子又恰好选得一样的概率略大。

OK!那么,基于上述三个规律,你们有什么发现吗?

️ 在一段时间内,老张的地址总共向外发出了117.72208个比特币,凶手提供给其妻子的地址恰好在这一段时间内陆陆续续收到了105.63061个比特币,扣除掉大约10%的混币费用和合理的比特币网络交易费,这两个数字是对得上的;而且,发出时接收的地址和接收时发送的地址都是很零散的,这绝对是弄巧成拙,一大堆的一次性地址,虽然在人的肉眼看来很繁杂,但如果用机器来处理,理出线索简直是手到擒来……

所以,真相只有一个!

️ 还不能这样断言,因为从117.72208到105.63061,中间的价值传输路径是断的。

哦,能够证明这一段价值传输路径的证据在提供混币服务的组织手中。

——————————————————————

《素为求智录》第二季 回顾链接

——————————————————————

《素为求智录》第一季1-15集 回顾链接

欢迎互动

《比特镇魂曲》明天将继续连载,欢迎添加“小素机器人”的个人微信号 Lawup1,找到志同道合的小伙伴,大家一起来聊‘法律与区块链、人工智能等信息科技’,您的真知灼见将有机会出现在后续的连载中哦~返回搜狐,查看更多

责任编辑:

声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。
阅读 ()
投诉
免费获取
今日搜狐热点
今日推荐