揭秘中本聪:一个人用一台电脑挖出110万个比特币?

2020 年 9 月 02 日

揭秘中本聪:一个人用一台电脑挖出110万个比特币?

塞尔吉奥·德曼·勒纳(Sergio Dermain Lerner)以研究原始比特币采矿方式而出名。在最近的研究中,·勒纳发现“中本聪”是一个人而非一个团队,并且是用一台电脑挖出了 110 多万枚比特币。

7 年解密“中本聪”

中本聪在 2009 年留下比特币后就消失无踪。中本聪是一个人还是一个团队?他当时是如何挖出比特币的?围绕着“中本聪”,后来的人们有很多疑问。

2013 年 4 月 17 日,勒纳在发表的第一份研究报告中指出,中本聪的挖矿代码对 ExtraNonce 字段的增量与默认比特币代码的增量不同,这使得他得以发现中本聪的挖矿特点。他表示,比特币最初的挖矿绝大多数都是由一名矿工完成的,并精确地计算出这名矿工挖到了 1814400 枚比特币,其中 63% 的比特币(约 110 万枚)从被挖出来后就未被使用过。

去年,勒纳在《The Return of The Deniers and The Revenge of Patoshi》文章中提出了“Patoshi 模式”,该模型显示了比特币在最初几个月的开采情况。由于比特币代码的一个老缺陷使得矿工 Patoshi 开采的区块与其他矿商的 nonce 模式不同。大多数人认为这个矿工就是中本聪。


Patoshi 模式   来源:Sergio Darmain Lerner 的博客

中本聪用一台电脑挖出 110 万枚比特币?

最近,勒纳开始调整研究方向,以区块 nonce(随机数)字段上最低有效字节(LSB)的不规则模式为突破口,来了解中本聪开采比特币区块的原始方式。6 月份,勒纳在发布的一篇博文里分享了他的研究成果。

勒纳表示,矿工 Patoshi 可能在当时故意限制了自己的算力,即 Patoshi 在在每个“区块间隔”的前 5 分钟内,该矿工都会将矿机关停。勒纳认为这不是随机事件,因为矿工在前五分钟内找到哈希难题解决方案的概率为 0.39,而像 Satoshi 这样的主要矿工在 5 分钟内未获得任何成功的可能性几乎为零。

目前还不清楚为什么 Satoshi 会这样做,有一种解释是,他可能想给其他矿工开采比特币的机会。因为当时没有矿工挖比特币,中本聪想要尽可能多的人参与到比特币挖矿中。勒纳得出结论认为,在达到 16000 的区块高度之前,中本聪的哈希率达到了总哈希率的 99%。


中本聪在比特币哈希率中所占的份额,资料来源: Dan Held

其他研究人员又进一步扩大了勒纳的研究发现:TechMiX 报道称,根据随机数 LSB 值的频率分布,中本聪开采的所有区块都可以划归于五个篮子。

在每次尝试解决采矿难题时,随机数都会有所增加。很明显,中本聪所使用的设备并没有用到完整的可用随机数空间,而只是关注其中的特定有限范围。勒纳的最新研究结果表明,中本聪曾逐渐下调随机数值:

通过重现性采矿可以看到,Potashi 采矿算法在扫描内部随机数时,有选择较大随机数的强烈趋势。这种趋势表明随机数开始减少,这与中本聪初代客户端 0.1 版本的取向正好相反。

这就带来了一个有趣的结论,甚至有望最终破解中本聪当初采矿时使用的是什么设备这一重大谜团:

在对两个子范围进行分析时,随机数的失衡情况开始减弱,这可以证明 Patoshi 当时在并行扫描 5 个子范围,同时又在各子范围之内进行顺序扫描。这与目前人们提出的,Patoshi 初始部署使用 50 台独立计算机(或者其他高度解耦型系统)建立采矿场的理论相矛盾。反而,这更多地支持了“Patoshi 使用的是高端 CPU 中的多线程资源”这一结论。

总结下来,中本聪当时使用的是一台多线程电脑来挖矿。为了避免冗余,中本聪将每个线程限制在一个独特的、非重叠的随机数空间内。在比特币挖矿期间,每尝试解决哈希难题失败一次,随机数就会增加。因此,“Patoshi 模式”可能不是出于自愿创建的,而是中本聪独特的挖矿设备的副作用。勒纳对此也表示认同。

如果勒纳的结论是正确的,那么中本聪是一个人、而非一支团队的结论将变得更为可信,而勒纳研究了长达 7 年的“Patoshi 模式”也将被破解。

当然,这也是对克雷格·赖特(Craig Wright)自称中本聪行为的一次有力打击,此前他曾多次表示,他使用数十台计算机来挖掘早期比特币。

延伸阅读

https://cointelegraph.com/news/researcher-re-mined-satoshi-s-bitcoin-blocks-to-discover-his-secrets

2020 年 9 月 02 日 07:00 1391

评论

发布
暂无评论
发现更多内容

在项目中随手把haseMap改成了currenHaseMap差点被公司给开除了

java金融

Java 后端 BigDecimal金额 Arrays.asList

一款跨平台免费的开源 SQL 编辑器和数据库管理器!

JackTian

数据库 sql GitHub 开源项目 实用工具

软件设计原则

yupi

[安利] 可能会让你爱上书写的工具组合!

猴哥一一 cium

Typora markdown markdown编辑器 玩转写作平台

如何做好职场印象管理?

石云升

职场 印象管理 职场形象

[架构师训练营] 2 依赖倒置

悬浮

架构师训练营第三周学习总结

张明森

由一次管理后台定时推送功能引发的对 RabbitMQ 延迟队列的思考 (二)

LSJ

Java RabbitMQ 延迟队列 优先级队列

啥是CPU缓存?又如何提高缓存命中率呢?

八两

架构师训练营 - 第 2 周命题作业

红了哟

【Golang runtime学习笔记-启动过程分析】

卓丁

golang 初始化 runtime 汇编 go汇编

从拼多多突破阿里和京东两大巨头绞杀,市值破千亿美金来看职业价值链

非著名程序员

程序员 程序人生 职业规划 程序员成长 职业成长

实现一个redis命令--nonzerodecr

老胡爱分享

redis 源码分析 源码阅读

Git 基础知识学习

LeoBing

把主机放在家里

centos Homework

区块链系列教程之:比特币的钱包与交易

程序那些事

比特币 区块链 智能合约 钱包 交易

终于有人把 java代理 讲清楚了,万字详解!

java金融

Java jdk 后端 动态代理 cglib

策略模式解析

七哥爱编程

设计模式 策略模式

golang-pprof实战笔记

卓丁

golang pprof 性能分析

Java操作Excel竟如此简单

生命在于折腾

Java EasyExcel

Java世界的“烂”包管理

阿喜伯

maven Git Submodule

ArrayList哪种循环效率更好你真的清楚吗

java金融

Java 后端 ArrayList 循环效率 方式

架构师训练营 - 第2周学习总结

红了哟

SpringIOC 是依赖倒置吗?

yupi

效率思维模式与Zombie Scrum

Worktile

敏捷开发

大话设计模式 | 3. SOLID原则

Puran

设计模式

优化工程师逻辑视角下的微信“拍一拍”功能

Earth_Polarbear

人工智能 微信 系统工程 优化逻辑

游戏夜读 | RPG的美式和日式

game1night

2020最新阿里Java高级面试题(首发,50道附答案)

互联网架构师小马

Kafka面试题:基础27问,必须都会的呀!

Java小咖秀

大数据 kafka 分布式 队列 延时消息

在 React 仓库中的那些 package

teabyii

源码 前端 React

揭秘中本聪:一个人用一台电脑挖出110万个比特币?-InfoQ