比特币的宇宙与星空
文 | 史中
创造比特币的中本聪,大概拥有 110 万枚比特币。
如果按照最近比特币 6 万美元一枚的价格,中本聪有 660 亿美元。这么算的话,目前的世界首富毫无疑问是——马斯克。。。
对,马斯克的身家大概是 2100 亿美元。即便你有 110 万枚比特币,还是不及马斯克三分之一。
但问题是,马斯克的钱,人家一分也不给你啊。。。
你可能被整笑了:“中本聪的钱能给我是咋的?”
诶,他不给,你可以自己拿啊!
严格来说,你把马斯克的钱拿走,肯定会犯法;但是你把中本聪的币拿走,不会犯法。
最近有点儿时间,中哥就出一个教程,手把手教你把中本聪的币拿走,让我们开始吧!
(一)让你安心睡大觉的“二百五十六扇门”
要想拿走,得先知道币在哪。
比特币是“加密数字货币”,我知道很多人一听到“加密”就有点儿蒙圈,觉得只有学霸才能懂。
应该这么说,如果你的目标只是“拿走中本聪的比特币”,而不是像中本聪一样创世出一套完整的比特币系统,那么中哥可以负责任地告诉你:你完全不用任何加密知识。
因为在比特币的世界里,所有的钱就这么大摇大摆地摆在那里,只要你*去拿*,它就是你的。
是不是有点儿蒙圈?这他喵的是在说比特币么?怎么跟别人说的不一样?其实是一样的,只是很多人都没有*从头*给你讲比特币的原理。
大家都喜欢天上掉馅饼,咱就从一个爽文场景开始:
你结束了牛马的一天,下班路上捡了个饭盒,打开一看,里面都™是金币。
你会肿么办?
我猜很多人的选择都是一样的:不声张,找个地方把金币藏起来。
接下来才是真正的难题:藏哪?
床底下?大衣柜?保险箱?微波炉?糕点盒?去院子里挖个坑埋了?上面再放一只死狗,上面再种一株珍稀植物?
这些地方当然都可以,但都有一定概率被其他人发现,只是概率有大有小。放在这些地方,你都不能百分百放心,肯定晚上睡不好觉。
其实,中本聪在构想比特币大厦时,首先就是要解决这个“基石”问题:
能不能设计一个空间,让你、我、他可以在里面放心地藏金币嘞?
如果用沉重的钢筋混凝土造一个这样的世界,那成本肯定海了去了。于是,中本聪选了一种完全没有重量的东西——数字。
这个数字世界是什么样的呢?
咱们继续来想象:
你手里捧着小饭盒,面前有两扇门,左边写着 0,右边写着 1。
你得选择其中一扇门穿过去。不用有压力,没有奖励也没有惩罚,真就随便选。假设你选了 1 吧。
穿过 1 这扇门,你又看到两扇门,还是左边写着 0,右边写着 1。你还得继续选择一扇门通过。
穿过这扇门,又有两扇门。
以此类推。
当你穿过第 256 道门之后,面前出现了一个星球。
星球不大,就像《小王子》里说的那么大,坐在上面,一天能看 44 次日落那种。
你可以把一饭盒金币藏在这颗星球上。
其实不是藏,大喇喇放地上就行。
然后你转身回到我们的世界,指着老板鼻子骂一顿,最后写一个“世界这么大,老子去看看”的辞职告知书甩他脸上。
当你想用这些金币享受人生的时候,只需要再推开那些门,去你的星球上拿一颗半颗金币回来一卖,就妥了。
有了这“二百五十六扇门”,您就实现了睡眠自由,想啥时候睡啥时候睡,睡死过去都行。
只要别人不撬开你的脑袋,就不知道你有金币,更不会知道你的金币在哪。
当然,这里有个关键问题:你得他喵的记住自己推开二百五十六扇门的顺序!
如果你忘了,中间推错了哪怕一扇门,你最后抵达的都不是之前那颗星球,而是看上去类似的另一颗,上面没有你的饭盒。。。
如果你永远想不起来,你的金币就永远留在之前那颗星星上了。虽说别人拿不到,可你也拿不到。
所以要是稳妥起见。。。最好还是把“门的顺序”写纸上。
你写在纸上的东西,大概就是一串数字:001101011101100101....(总共 256 位)
现在问题变成了:你的纸条不能被别人偷看了去。否则别人也可以拿走你的金币了。
本质上你的门没有“上锁”,也不用钥匙。
非要说的话,这个开门的顺序就是你的钥匙。
以上,其实就是比特币存储的基础原理——它没有用到密码,只是使用了简单的数学假想出这样的“二百五十六道门”和“多如恒河之沙的星球”。
你是不是意识到了什么?
中本聪老哥的比特币,不也这么直接放在某个星球上吗?
也就是说:你只要胡乱开门,多多尝试不一样的顺序,有可能恰好碰上跟中本聪开门的顺序完全一样!此时你就能登上他的星星,把比特币拿走。
只要 256 次全对哦~~
怎么样,虽然有点难,但好像还有点儿希望吧?
而且根据研究,中本聪的比特币不止放在一颗星球上, 而是散落在几百甚至上千个星球上。你只要碰对任何一个星球,都可以有所斩获!是不是成功率又大大增加了呢?
成功率到底是多少嘞?
既然一切都构建在数学之上,那么概率是能计算出来的,我们不妨算算。
(二)做一次比特币宇宙里的“赌狗”?
每次你有 2 个选项,要连选 256 次,所以可能的情况总共有 2²⁵⁶ 个。
算一下,这个数是:
115,792,089,237,316,195,423,570,985,008,687,907,853,269,984,665,640,564,039,457,584,007,913,129,639,936
这个数有多大呢?约等于 1 后面跟 77 个零。
这基本赶上了宇宙中的原子数量。
你不妨这样理解:比特币用数学做了个“魔法”,把宇宙中每一个原子都变成了一颗星球。
你随便登录一颗星球,它恰好是另一个人登陆过的,可能性微乎其微。
说白了,如果用世界上最快的计算机一个星球一个星球地遍历尝试,你要想确定性地登陆中本聪那颗星球,(运气差的话)最多得耗费几十亿年。
这里介绍一个“信息熵”的概念。
所谓信息熵,可以理解为信息被“瞎蒙”出来的难易程度。越容易被蒙出来,信息熵越小。
而中本聪设计的这个“比特币宇宙”,信息熵极大。
但即便如此,如果运气够好,你仍然可能在尝试的第一次就碰巧登陆了中本聪星球!
就算天王老子来了,这种撞大运的概率也不!为!零!!
说到这,你有没有冲动想碰碰运气?
没问题,咱们就来实操一把,体验赌狗的刺激。
明确一下,现在我们的目标是:选 256 个数,然后输入比特币的钱包程序里查看,看看是不是恰巧有余额。
下面开始。
第一步:撒面。
其实你随便写 256 个“0、1”组成的数字就行。但这里为了专业一点,咱还是搞个仪式感。
你找个骰子🎲扔一下,如果是 1、2、3 点,就写个 0,如果是 4、5、6 点,就写个 1。怎么样,有点儿“奉天承运”的味儿了吧?
比如写出来是这样:
0100001111110101110110010010000010100110100010000100011100010110110010011011111010000011110010000011011111001000010101000001011101100110000110111000010011011011110011100101011110011010000010011100000100001001000001110011100111101011100011001110101101110001
这串数字就像你随便挖了一勺面粉,里面的面粉颗粒以各种姿势随机排列。
哦对,写的时候要注意一下格式,每写满 11 个数字就换行。写满 256 个,意味着你会写到 24 行第 3 个数。
诶,为啥要这么写嘞?第 24 排咋还多出来 3 个数?这让强迫症怎么活?
其实不是多出来 3 个数,是少了 8 个数。
后面 8 个数,需要我们对前面 256 个数字进行计算才能得到——它的学名叫做“校验和”。
第二步:揉面。
我们要对前面 256 个数字进行一种名叫 SHA-256 的运算。
你可以把 SHA-256 理解为一个方程,任何一个数输入进去,它都能给出一个结果,而且这个结果还很规整,一定是长度为 256 位的二进制数。
这个方程非常复杂,充斥着各种杂糅和重复。
它有点儿像我们揉面,本来分离的面粉,经过反复揉搓最后就变成了一整个面团。
这个面团就叫“哈希值”(Hash)。
当然,我们真实生活中的揉面是很随性的,同样的面粉每次揉出来的面团都不一样。
但数学公式是非常严谨的,只要初始值不变,用 SHA-256 算法“揉”出来的结果就永远是一样的。
多说一句,既然是方程,就可以用手算。
有一个头铁的老哥真的用手算了一次 SHA-256,我把链接贴在底部,对具体计算步骤感兴趣的同学可以去看看老哥的自虐过程。
作为 21 世纪的人类,我真诚地建议你用电脑算。。。
如果你有 Mac 电脑,可以打开“终端”,然后把下面的指令复制进去,一回车就能得到结果。
echo 0100001111110101110110010010000010100110100010000100011100010110110010011011111010000011110010000011011111001000010101000001011101100110000110111000010011011011110011100101011110011010000010011100000100001001000001110011100111101011100011001110101101110001 | shasum -a 256 -0
如果你是 Windows 电脑,不太方便,你就直接让 ChatGPT 帮忙算就好了。
如果你算对了,得到的哈希值一定是这个:
3F38F4FC5FB00C2A6D0648B16E4D67C206D055524163BDADF4BBD288931AE51D
这是十六进制形式,你还得让 ChatGPT 把它变回二进制,也就是下面这样:
0011111100111000111101001111110001011111101100000000110000101010011011010000011001001000101100010110111001001101011001111100001000000110110100000101010101010010010000010110001110111101101011011111010010111011110100101000100010010011000110101110010100011101
第三步,出锅。
我们把这个老幺长的哈希数列的前八位挑出来,也就是 00111111。
把它补到之前随机数的最后面,得到一个 264 位的完全体数列:
010000111111010111011001001000001010011010001000010001110001011011001001101111101000001111001000001101111100100001010100000101110110011000011011100001001101101111001110010101111001101000001001110000010000100100000111001110011110101110001100111010110111000100111111
OK,你的私钥🥖已经可以出锅啦!
需要强调的是,虽然这个数字有 264 位,但对你来说,它和之前的 256 位的数字“信息熵”是一样大的。
因为一旦选定了前面的 256 个数,后面的 8 个数字就是确定的嘛,没有信息增量。
但如果你不小心把前面的数字抄错了,校验和就会变化,比特币钱包就可以提醒你输错了——“校验”的意义就在于此。
看到这儿,最难的部分其实已经过去了。
接下来就是验证我们是不是押中了中本聪钱包的“开奖时刻”!
(三)遗忘狂魔的福音:助记词
刚才我让你每排放 11 个数字。
因为每 11 个数字,其实对应了一个单词。
话说,在中本聪神隐之后,仍然有一些技术大牛自发维护着比特币系统,他们不断提出“改进提案”,为比特币系统添砖加瓦。
其中最牛X的提案配享太庙——可以获得 BIP 编号(Bitcoin Improvement Proposals) 。
我们接下来要说的 BIP-39,就是比特币历史上的第 39 个重要提案,它的内容是:
大家记这么多 0 和 1 太辛苦,还容易抄错。不如把每 11 个二进制数字作为一组,映射成一个单词。
11 个二进制数字,总共有 2048 种排列可能,这意味着只要选出 2048 个单词,就能等效标记出所有情况了!
去查 BIP-39 的提案原文,你很容易看到这个列表,链接我放最后了。这里我也直接完整截一张图给你看看,点鸡可以放大:
接下来,你需要查这个表格,把每一行数字对应的英文单词给找到,然后写下来,总共 24 个单词。
具体来说,刚才那串数字等于这些单词:
dumb put else escape love merge cheap spare sight salad bench conduct giant second hundred slab old evoke drastic attack pact shoe punch child
这就是你的“助记词”。
注意,这个助记词的“信息熵”和你最开始掷骰子选出的 256 个字还是一样的,也是可以相互转化的。
虽然这些单词拼成的句子没有实际意义,但是不是好记多了?
而且比特币核心团队对中国非常友善,还在 BIP-39 里贴心地给出了简体、繁体两种中文助记词方案,各自也都是 2048 个字,给你截图看一下:
本质上来说,用什么语言都一样,只要编号相同,中文字和英文词的作用就是相同的。
只不过在现实中,大家还是习惯用英文的,咱们就入乡随俗。
接下来,咱们去下载一个支持比特币的数字钱包,把这 24 个助记词输入进去。
开奖时刻来了。
当当!这个星球上比特币的余额是——0。
别伤心,如果你看懂了之前的概率,就知道这个结果并不意外。
比特币宇宙的绝绝绝大多数星球都是这样荒凉的——汹涌的宇宙之风中,有人能来驻足几秒,已经是非常浪漫的相遇了。
如果你珍惜这段缘,不想告别这个星球,你可以常回来看看。
当然,如果你想让这个缘分再发展一点儿,你可以。。。搞点比特币放在这个星球上。。。
之前我把整个方法形容为“赌狗”,是因为咱们要用它来“邂逅”中本聪的星球。但这个方法的实际作用,本来就是让你邂逅自己的星球。
你找不到中本聪的私钥,别人当然也找不到你的私钥,这颗“星球”不就是你专属的么?
就像小王子那样,他生活在一个叫做 B-612 的小行星。
星星上有两座活火山,一座死火山,有一些毛虫、有风,有一些杂草。总之,这是一个普通到极点的星星。
但是小王子的家在那里,因为在这个小小星球上,有一支玫瑰。
有了这个玫瑰,B-612 对于小王子来说,就瞬间不同于其他所有的星星。
这便是“意义”浮现的过程。
当然,如果比特币只有这个层面的意义,那么它也只是和《小王子》一样的寓言。
之所以比特币被这么多人认识、使用和讨论,在于它可以“从一个星球挪到另一个星球”。
也就是转账的能力。
实际上,为了实现转账能力,它必须附加一整套精巧的模块,而真正所谓的“加密”,也是从这一步开始的。
假如你成功登陆了中本聪的星球,接下来,怎么把他的币转到自己的星球上嘞?
(四)从门到窗:卡宇宙的 Bug
只要叫“转账”,就得有个基本特点:我可以主动转给你,但不能强迫你转给我。
它是一种不可逆的单向能力。
单向的能力,一般要基于“单向的结构”。
我们不妨来一步步设计这个结构:
如果我想把 1 颗比特币放到小王子的星球上,我肯定不能让他告诉我他怎么选的这 256 扇门,也就是“私钥”。
因为我一旦知道他的私钥,不仅可以把币转给他,还可以把他的币转给我。
这是可逆的,不符合要求。
有没有一种方法,既能定位出小王子的星球,还不会泄露他的私钥呢?
中本聪使用的办法很巧妙——小王子不用给我看他的“门”,只给我看他的“窗”。
这里使用了“椭圆曲线算法”。(具体来说是椭圆曲线算法中的一种:secp256k1)
你想象眼前有一个曲线,这个图形对应了一个方程。方程大概长这样:
y²≡x³+ax+b(mod p)
这里的 p 是一个超大素数。
公式不重要。你只需要理解这里的关键,一个包含了素数特性的椭圆曲线中,有一种特别的“个性”:
A 点坐标经过 x 次的变换可以轻松推出 B 点坐标,
但是用 B 点和 A 点这两个坐标却不能推倒出 x 这个数是多少。
这张图上是一个椭圆曲线,图中的 P 是 A 点坐标。你可以把 P 和 Q 两点连线,得到 R,然后你再把 R 点作为新的 Q 点,与 P 连线,不断重复 x 次,最终得到 B 点坐标。
毕竟是密码学皇冠上的明珠,椭圆曲线理解起来有点儿门槛,我找到一个不错的参考资料,附在最后。
这里你只要知道:这个性质,正好用符合“不可逆”的要求。
现在我们就规定一个固定点作为 A 点,然后拿手里的私钥作为 x,这不就能推出 B 点坐标了吗?
我就把 B 点坐标作为我的星球的标识,不就行了吗?
诶,这个 B 点坐标,也被称为我们私钥对应的公钥。
私钥变成公钥,就像面包做成热狗。
虽然“私钥”“公钥”“椭圆曲线”之类的名字高大上,但本质上,这就是数学家们先发现了宇宙的一个 Bug,中本聪又发明了一个系统,疯狂卡这个 Bug。
热狗(公钥)想要变回面包(私钥),已经不可能了。
那我要给小王子转币,他告诉我他的公钥就可以了吗?万万不可!!!
当时中本聪设计比特币的时候,留了个心眼儿:
椭圆曲线算法现在看起来是个宇宙级 Bug, 将来哪一天,万一 Bug 修复了呢?万一有个数学家研究出来可逆的方法,那不就完蛋了吗?
所以他最终决定,在公钥的基础上,再叠加两层不可逆的哈希运算(第一层是 SHA-256,第二层是 RIPEMD160),最后把格式统一(用 Base58check 编码),算出来一串亲妈都不认识的数字。
黑客要想破解比特币系统,就要同时破解椭圆曲线和 SHA-256 这两个宇宙级 Bug,可谓难上加难。
(事实证明,这个操作还为比特币系统带来了意想不到的好处,我们后面说。)
公钥转化成地址,就像热狗变成了套餐。
这个亲妈都不认识的数字,就称为你的“钱包地址”。
我们总结一下:
1、每个钱包地址都对应着一个公钥,而每个公钥又对应着一个私钥。换句话说,你选定了一个私钥时,冥冥之中你的公钥和地址都已经确定了。
2、只不过,别人拿到你的地址也反推不出你的公钥,拿到你的公钥也反推不出你的私钥。你的币永远只能由掌握私钥的人(你自己)来支配。
如果回到我们《小王子》的比喻,就是:
1、每个星球不仅有一扇门,还有一扇窗。但是从门到窗需要跳转几个数学谜题组成的单向虫洞,从门能走到窗,从窗却走不到门。
2、币离开这个星球必须通过门,但是币进入这个星球通过窗就行(通过门更行)。
3、由于所有的窗户都是公开的,人人都可以通过这个窗户往里面“投币”,当然只能投币不能拿币,就跟功德箱似的。
4、而且窗户是透明的,人人都可以看到里面。也就是说,你只要知道一个地址,你就能看到里面有多少币,不仅如此,历史上每一次有币进出,数量、时间也全都记录在案。
怎么样,这个设计是不是巧夺天工?
但你有没有感到,这里隐约有个新问题。
我把它称为“视奸问题”。
虽然你自己的星球上的币没人能动,但却是所有人能看啊!
就像你在自己家睡觉,虽然没有坏人进来干(四声)扰你,但是墙壁都是玻璃的,所有人都参观你睡觉也受不了啊。。。
而且细思极恐,这些动账信息(数额、时间)保不齐也会透露一些星球主人的身份或时区。
想象一下:
你好不容易撞了宇宙级狗屎运,找到中本聪的钱包,把币转给了自己,成了比特币大亨。
但有坏人通过这些动账信息定位到了现实生活中的你,用最高效的破解方法——枪——逼着你把私钥交出来。
那数学世界里“门&窗”的设计再精巧,有卵用否?
中本聪早就想到了这个问题,他的解决方案是“一次性星球”。
这是个天才的构想,只不过在具体的实现方案上,稍微有点儿“失水准”。
我们一起来看看。
(五)“次抛星球”和“隐秘的丝线”
假设:我在“A 星球”上有 2 个币,现在我想给小王子的星球转 1 个币。
这时,我必须得先找好另一个星球,就简称“B 星球”吧。
小王子会告诉我他的“星球地址”。然后我发起转账。
注意!此时这 2 个币都会从我的 A 星球的门出去,其中一个币通过窗户落进小王子的星球,另一个币会通过窗户落入“B 星球”。
币都从 A 星球跑了,看上去非常不对劲!但你仔细想,你剩下的币是一分钱都没少的,只不过落到了 B 星球。
而且你也知道怎么去 B 星球,毕竟 B 星球和 A 星球一样,都是你亲手选的嘛!
这个“一次性星球”的设计,就叫 UTXO(Unspent Transaction Output),中文是“未花费交易输出”,也就是没花的钱也要输出。
这样一来,所有的钱都是“看上去没被花过的钱”。(有点绕,你品品)
它的好处很明显:如果有坏人想要追踪某个地址的资金流,他就很难判断到底哪个是收款星球,哪个是找零星球。
当然人的行为还是有深层规律的。如果使用大数据,有可能发现蛛丝马迹,我们在《比特币追凶》和《暗网生死疲劳》里,都讲过这个技术劈开黑暗拯救世界的故事。
但毕竟,追踪的难度大多了,你要不是什么十恶不赦的大坏蛋,不会有人花这么大的代价分析你的比特币资金流。
UTXO 是一个天才的设计,但这里有个非常不优雅的特性,那就是你每次转账,都得换一个星球(地址),都得重新记录一次私钥,万一搞丢了最后那个私钥,你的币就永远留在那个星球上了。。。这太瘆人了呀!!
中本聪的意思是,想要安全,就得这么搞,别 BB 了。
他设计的比特币钱包软件里,预留了 100 个星球的位置,也就是可以放 100 个私钥,一次转账就废掉一个。100 个用完,你还得重新放进去 100 个。
复杂吧?
幸亏,真正的好东西终会进化!
中本聪神隐之后,比特币的后继开发者们找到了一个特别优雅的方法,让你只需要记住 A 星球,就能按照一种算法,计算出 BCDEFG.... 星球的位置。
这就是大名鼎鼎的 BIP-44 提案。
提案里的方法其实很容易理解:
首先,你有一个256 位的随机数,这是你进入 A 星球的私钥,没错吧?
然后,你还得选出另一个 256 位的随机数,这个数字叫 A 星球的“链码”。
最后,你需要把比特币核心团队研究的“秘钥派生算法”拿来。这个算法工作时需要三样东西:私钥、链码、序号。
前两样你已经有了,序号是啥?你可以简单理解为就是:1、2、3 这样的顺序。
这三样输入派生算法,你会得到一个“B 星球”的私钥,同时也会得到“B 星球”的链码。
对于一个固定的星球来说,私钥和链码都是永远不变的。但序号你可以随便改。
所以只要把序号定为 1、2、3、4、5,你就可以为 A 星球派生出 B、C、D、E、F 五个星球。它们是 A 星球的“子星球”。
如果你去 B 星球,用它的私钥和链码再派生出 G、H、I、J、K 五个星球,它们就是 B 星球的“子星球”,是 A 星球的“孙星球”。
如此类推,你只靠 A 星球和它的链码,就派生出无数个子子孙孙星球。
这招就叫“分层确定钱包”——HD Wallet。
你看,这样的话你只需要记住两串数字(私钥和链码),比中本聪的方案不知高到哪里去了吧?
但是话说回来,你仍然需要记住两串数字。。。
比特币开发者社区的老铁们觉得还不够,他们集思广益,想到了一个更优的办法!
(六)属于你的亿万颗“私人星球”
他们使用了一个“秘钥衍生”算法:用 24 个助记词来衍生出 A 星球的私钥和链码。
这样的话,效果炸裂:
1、你需要记住的,仍然只是 24 个单词;
2、但你能控制的,却是无数个星球的私钥!
注意,在这种情况下,这 24 个助记词就不等同于你的私钥了——助记词可以推导出私钥和链码,但私钥和链码反推不出助记词。
想想看,这套系统具备一个神奇的特性:
在外人看来,所有的星球都一样,但是从你“月之暗面”的角度看,却像蜘蛛侠一样,用无数隐秘的丝线把这些星球串联起来。
这种分层确定的模式,有很多非常实用的场景,我给你举俩例子:
1、由于单向推倒的特性,父星球是纯纯的“渣男”。它能确定哪些是自己的子星球,但子星球并不知道谁是自己的父星球。
也就是说,父星球可以随时动子星球上的币,但是子星球无法动父星球的币。
这种情况下,你作为一个比特币大亨,就可以雇佣一些小弟,每个人帮你管理一些资产。
你只需要给他们一个子星球的私钥就行,为了管理方便,他们还可以用这个子星球派生出孙星球等等,但是哪天你对他们的工作不满意,就可以直接收回他们手中的币。(当然这种情况最好使用多签钱包,相当于把私钥分成几份,篇幅有限就不多说了。)
2、子星球之间,也并不知道彼此的存在。
由于计算子星球需要“父私钥”、“父链码”和“序号”,这三个要素子星球都不知道。从子星球的角度看,它就是这样孤独地存在着,跟谁都没有关系。
这样设计的精巧之处在于“最小化关系链”:
1)坏人即便知道了你的某个星球的公钥,也不能推算出它和哪些星球是兄弟关系;
2)坏人即便偷到了你的某个星球的私钥,由于不知道链码,它也只能动这个星球上的币,不能动它的下级星球的币;
3)就算某个星球的私钥和链码都泄露了,坏人也只能动它的下级星球的币,层级比它高的一律动不了。
但是,这里有个小问题,如果使用公钥和链码,是有可能推出所有子星球的公钥的。虽然只有公钥不能动账,但是却可以了解所有子星球的谱系关系。
你还记得我们之前卖的关子吗?
由于中本聪谨慎的设计,他没有把公钥直接当做地址,而是又做了两层加密才生成地址。
这就在“公钥”前面又加了一层黑洞,即便是公钥也不可能从地址被推算出来,这就让黑客即便只是倒推“分层钱包之间的关系”,也是不可能的。
说到这,我猜你也明白了,比特币的机制之所以极其安全,是因为最要紧的地方全都有“密码超级英雄”在守护,有的最关键的地方甚至不只有一个英雄,而是站了一整个“复联”。
这套安全机制能保护你的币,自然也能保护中本聪的币。所以,即便所谓的“方法”就在这里,你破解中本聪钱包的概率也是“宇宙毁灭”级别的。
你肯定知道,中哥写这篇文章不是带你破解中本聪钱包的,而是和你一起走一遍“破解失败”的旅程,带你体会比特币宇宙中,那种饱满的、震慑人心的数学之美。
价值来自于共识,无论是黄金、法币还是比特币,皆是如此。
但在最后,我完全不想讨论比特币的价值。我想讨论的是,用来储存比特币的,那些“星球”的价值。
也许你不一定和我有共鸣,但我非常想试试。
(六)重要的东西,眼睛是看不见的
我们重新回到童话《小王子》。
小王子的故事里出现了 8 个星球,他自己居住的星球,他短暂拜访的六个星球,他最终拜访的地球。
这几颗星球到底有什么特别呢?
在旁人看来,它们没有任何特别,甚至他们之间也没有区别。但小王子不会同意。
他先后抵达了这些星球,并且在这些星球上遇到了不同的生灵,与他们进行了互动。这些记忆是个人化的,其中所背负的信息对小王子本人来说是真实存在的。
像是有某个灵魂专属的“链码”,在冥冥中定义了他的生命轨迹。
正如小王子遇到的那只狐狸所说:
“对我来说,你无非是个孩子,和其他成千上万个孩子没有什么区别。我不需要你。你也不需要我。对你来说,我无非是只狐狸,和其他成千上万只狐狸没有什么不同。但如果你驯化了我,那我们就会彼此需要。你对我来说是独一无二的,我对你来说也是独一无二的……”
地球上有一座盛开着 5000 朵玫瑰的花园,花朵娇艳欲滴,却与小王子的玫瑰不同。
如果向前追溯,一颗玫瑰的种子随机飘到了小王子的 B-126 星上,那才是所有的开端。
重要的是:你我这样的普通人,也和小王子一样。
我们平等而泯然,却拥有各自的狐狸、各自的玫瑰。而这种特殊,可能只源自某个谁也不能预先知道的种子,也许是——256 次掷骰子。
真正重要的东西,眼睛是看不见的。
作家陈春成写过一篇短小的故事,《竹峰寺》。
在特殊的历史时期,竹峰寺住持为了防止镇寺之宝“蛱蝶碑”被毁,趁着夜色把它藏起来。
从此,这块石碑好似人间蒸发了,即便历史已改换了旋律,它也继续沉寂,再不露真容。
几十年后,“我”来寺庙小住。因为我的老屋已被拆迁,仅剩一把钥匙,作为和孩提时空的玄妙连接。我私心想在寺庙附近找到一个绝对安全的地方把钥匙藏起来。
“我”想把钥匙藏在一个无人知道的,千秋万载不会动摇的地方。只要不去取它,就能一直藏到世界末日。但又不能把钥匙扔进湖中或悬崖下,必须要“我”想取,就能够取到的地方。
什么时候来取,不一定,但这种可能性必须保留。这一点可能性会将我和它永远地联系在一起。
“我”苦心寻找藏钥匙的地点,却意外参悟了老住持的心意,于是,两个“藏东西的人”,跨越几十年的时光走到了一处。
原来,几十年前的夜里,老师傅和信赖的徒弟一起到寺庙外的小溪上,把小石桥搬走扔进山涧,用“蛱蝶碑”铺在原处取而代之。
这些年,各色寻找蛱蝶碑的人都从上面匆匆行过,无一人参透真相,而碑上的经文却默默驮负,摆渡了无明众生。
“我”摸黑走到了桥底,借手电微光饱览了“蛱蝶碑”威严婉丽的文字,最后一次握紧连接着故乡旧时光的钥匙,把它塞进了桥墩的缝隙。
“我”当然没有告诉任何人,两个秘密就此同眠。
在这个世界上,知道中本聪私钥的人只有中本聪吗?
想到这个问题,我脑海里划过一道闪电。
中本聪的 110 万个比特币,如今已经成了比特币世界的“定海神针”,它们如果永远沉睡,一切都会继续。
一旦其中有一个币被移动分毫,都会让所有人恐慌,因为这些“星球”的复活意味着中本聪不仅在世,而且可以甩卖掉所有的比特币。不用真的卖,这个“可能性”已足够让比特币的价值共识崩塌。
事实是,这些年中本聪的钱包地址如死去的火山一样沉寂。
那些星球的岩浆已经凝结,窗棂沉默黯然,只是时不时有些比特币信徒向里面投一些币,仿佛以此能贴近这位神秘的“造物主”,聊表敬意。
这个世界上正在活着的人,已经死去的和尚未出生的人,他们曾经或将会发现中本聪的遗藏吗?
假如真有绝顶聪明的人,破解了中本聪的某一颗私钥,面对放在星球上价值连城的比特币,他最好的选择是什么?
没错,当然是在此驻足片刻,然后悄然离开,让这个秘密在时间的浪涌中继续长眠。
我们的世界线不会因此产生任何波澜。
唯有他知道,在那个瞬间,自己曾与一个骄傲的灵魂对视。
参考资料:
老哥手搓比特币私钥
https://armantheparman.com/bitcoin-seed-with-dice/
椭圆曲线在密码学中的原理
https://www.allaboutcircuits.com/technical-articles/elliptic-curve-cryptography-in-embedded-systems/
BIP-39(助记词提案)
https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki
BIP-44(分层确定钱包提案)
https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki
往期推荐:
👉不腐的罪证:比特币白夜追凶纪实
👉暗网生死疲劳:枭首、重生与漫长的自由之歌
一枝
心锚
再自我介绍一下吧。我叫史中,是一个倾心故事的科技记者。我的日常是和各路大神聊天。如果想和我做朋友,可以搜索微信:shizhongmax。
哦对了,如果喜欢文章,请别吝惜你的“在看”或“分享”。让有趣的灵魂有机会相遇,会是一件很美好的事情。
Thx with in Beijing
免责声明:上述内容仅代表发帖人个人观点,不构成本平台的任何投资建议。