找回密码
 立即注册
  • QQ空间
  • 回复
  • 收藏

数学之美 大数?宇宙尘埃和比特币的地址哪个多?

南宫少主new 2020-2-7 12:30 874人围观 资讯

数学之美 大数?宇宙尘埃和比特币的地址哪个多?

编者按:本文由Seabook海叔的技术分享,转载请注明来自Seabook海叔,并联系作者获得授权。

大家好,我的名字叫Seabook,或者大家可以叫我海叔。我是澳大利亚Deakin大学的在读博士生,我的主要研究方向是区块链底层,今天开始我将为大家带来一个干货区块链的系列,主要以区块链的技术为主。风格尽量往: 简单易懂 诙谐幽默

为了更清楚的讲清楚后面 比特币是的技术原理(挖矿,数字签名,钱包地址等),我们先要了解一系列的基本知识点:

  • 什么是Bit,Byte,decimal vs hexadecimal vs binary. 一位?一个字节?2进制,10进制,16进制 ?Hash, what is SHA256? 数学之美 大数字?1000,000,000,000 一个trillion算大吗? 地球上有多少沙子?一杯水里面有多少分子?Cryptography, 加密学,大学最容易挂科的科目?对称加密,非对称加密?

我们今天就看一下什么是数学之美? 大数字?

同学:大数字是什么?比杨幂还好看? 这个和比特币又有猪关系?

海叔:大家有没有想过一个问题,在互联网应用中,比如说我要注册一个邮箱地址: seabook1024@gmail.com,系统告诉我 这个用户已经存在了,请选器其他的用户名。同样的是电话号码,QQ号,微信号,等等。那比特币里面有没有这个问题呢?

同学:往死里想,有? 没有???疑问???

数学之美 大数?宇宙尘埃和比特币的地址哪个多?

海叔: 理论是有可能的,但是这个可能性几乎是0,因为比特币的地址的数量实在是太大了,到底有多大,我们来用数学分析一下。由于我们还没有讲比特币的地址是如何生成的,所以这边先直接给出一个答案。

比特币使用了RIPEMD160哈希函数,会有2^160个比特币地址。这个数字是:

1,461,501,637,330,902,918,203,684,832,716,283,019,655,932,542,976

这个数字中文怎么读我不知道,英文叫做Quindecillion, 参见下表。10^48次方

数学之美 大数?宇宙尘埃和比特币的地址哪个多?

这是一个荒谬的数字,称它为“天文数字”也是对其巨大的侮辱。那究竟有多大呢?我们可以和地球上的沙子做一个对比,这样大家可能会有一些直观的认识。根据夏威夷大学的研究世界上所有的沙滩上总共有2^63粒沙子[1].

然后我们讲宇宙, 就目前人们对宇宙已知的情况,我们生活在地球,地球是在太阳系里面的一个行星,太阳系在Milky Way银河系中,在一个银河系中有超过100 billion的star (太阳是star,地球只是planet)。 整个宇宙类似的银河系有超过100 billion。所以全宇宙拥有的星星(Star)的数量大约是 100 billion * 100 billion =

100,000,000,000 * 100,000,000,000 = 10, 000,000,000,000,000,000,000 = 10^21 [2]

数学之美 大数?宇宙尘埃和比特币的地址哪个多?

我们假设全宇宙的星星有和地球一样多的沙子,那全宇宙的沙子粒总和就是:

totalSandsInUniverse = 2^63 * 10^21 = 9.223372e+39 // 全宇宙沙子总和
totalBitcoinAddresses = 2^160 = 1.4615016e+48

我们可以看出,经过简单的计算之后,比特币所有可能的地址 竟然 比全宇宙所有沙子加在一起还要多,大家是不是头脑大爆炸了。

数学之美 大数?宇宙尘埃和比特币的地址哪个多?

海叔:这个就是大数字之美, 这个数字之大,可以大过全宇宙的星辰沙粒的总和,

可以大到让全世界的最牛B的电脑都没有可能对比特币的地址进行暴力破解成功,我们只能感叹自己的渺小,宇宙的博大,数学的美丽。

最后我们看一下比特币core维护人,ripple币的创始人之一对破解比特币地址的分析:

原文如下:

The most sensible way to attempt the attack (which is still insane) is to generate random private keys, calculate the corresponding addresses, and then see if that address has a non-zero balance. I believe there are 2^160 possible addresses. So even if there are 1,000,000,000 addresses with non-zero balances, your odds of getting a non-zero balance on a single key are 1 in 2^128.

So brute-forcing a single bitcoin address with a non-zero balance (assuming there are a billion of them, which is generous), is as hard as, say, brute-forcing a given 128-bit AES key.

海叔翻译如下:

尝试攻击比特币(仍然是疯狂的),最明智的方法是生成随机私钥,计算相应的地址,然后查看该地址是否有余额。我们知道可能有2^160个地址。因此,即使有1,000,000,000个具有非零余额的地址,在一个随机私钥上找到比特币获得非零余额地址的几率也是1/2^128。

因此,找到比特币获得非零余额地址(假设有十亿个比特币)和暴力破解的128位AES密钥一样困难。

截图如下:

数学之美 大数?宇宙尘埃和比特币的地址哪个多?

海叔总结: 之前我们说了,比特币背后确实是有很多数学,密码安全学的基础来保障它的安全性,可靠性,不是拍脑袋想的。同样作为加密货币的创世币,确实让全世界的人为之疯狂。

[1] This information is according to a study done by the University of Hawaii. The link seems to be down, but this study is often cited by other reputable sources: The Guardian, NPR, and the NSA among others.

[2] This information is from the study of this website link


鲜花

握手

雷人

路过

鸡蛋
我有话说......