我一直对比特币很感兴趣,但无法理解它的原理。这几天我琢磨了一下,终于想通了。知识必须要输出才能真正成为自己的知识,所以我用文字来分享,一共6500字。请耐心看完。
比特币是一种用高级数学知识构建的数字货币。人之所以看不懂,是因为看不懂里面的数学知识,容易迷茫。这篇文章适合初学者。只讲比特币的骨骼结构,不太具体的血管和经络。在你搞清楚比特币的基本概念和底层逻辑之后,你就可以深入研究细节了。
比特币是什么?
比特币是一串数字。要想理解这一串数字的含义,首先要了解比特币的三个基本概念:私钥、公钥和地址。它们也是一串数字。
私人密钥
私钥由256个二进制数字组成,即256个0或1。我们可以拿一个硬币,0为正,1为负,扔256次,记录每次的结果,得到一个私钥。这就是私钥的生成方式。同时,当硬币被投掷256次时,你能想象出多少种结果?具体数字我就不说了。总数大约等于宇宙中所有原子的总和。这意味着私钥的数量理论上是有限的,但实际上几乎是无限的。也就是说,你随机生成一个私钥后,别人很难像你一样随机生成一个私钥,“撞衫”的概率等于0。
那么私钥有什么用呢?私钥就是密码,私钥是比特币的核心。任何知道私钥的人都可以拿走私钥里的比特币。这件事必须保密,你永远也不要忘记。一旦忘记,就找不到密码服务了。忘了就是忘了。
公开密钥
公钥是由私钥产生并由不可逆椭圆曲线密码算法生成的另一串数字。
这个算法使用了一些高级的数学知识。我们不需要弄清楚。我们只需要相信它的一个特性。这个算法是绝对不可逆的。也就是说,可以从私钥计算出公钥,但不能从公钥推导出私钥。也就是说,结果可以由原因得知,但原因不能由结果推导出来。这种想法经常被用于构建比特币。
这个算法是公开的。知道私钥后,计算机可以瞬间计算出公钥。这里的目的只有一个,就是保护私钥。嗯,顾名思义,公钥是可以公开的。当你把比特币转给别人时,你必须报告你的公钥。你可以理解为是私钥的体双,也可以看作是私钥和地址之间的桥梁。
同时需要强调的是,私钥和公钥是一一对应的,即没有一个私钥对应多个公钥,也没有一个公钥对应多个私钥。这对于确保不会出现混乱非常重要。
地址
地址是公钥通过另一种哈希算法计算出来的一串数字,也是公开的。知道公钥后,计算机也能瞬间算出地址。同样,它是不可逆的,不可能从地址计算出公钥。同时,公钥和地址是一一对应的。我们可以理解为只是另一种推导算法,本质上和私钥推导公钥是一样的。
地址有什么用?如果我们想让别人转一些比特币给我们,我们只需要把地址发给别人就可以了。地址是收款账号。
贸易
理解了这三个基本概念,我们就有了密码和账户,就可以交易比特币了。
首先,我们需要下载一个比特币钱包软件。一般来说,软件会自动产生一个私钥,是一个256位的数。同时根据算法,你的公钥和地址会一起生成。当然,你也可以自己抛硬币256次,记录下来,然后导入软件,同样会生成一个新的钱包。生产一个比特币钱包就这么简单,记住,私钥的总数大约和宇宙中原子的总和一样。无论是软件随机生成,还是你抛硬币,结果都不会“撞衫”。
我们想把比特币转给别人。首先,问别人要地址。地址是一串数字,我们可以手动复制。当然,地址也可以产生二维码。你只要用手机扫描一下,填上你要转账的比特币数量,我们输入私钥的密码,你的比特币就被转账了。和微信支付一样,比特币的使用还是很简单的。
重点来了。比特币是怎么产生的?它存放在哪里?比特币由谁管理?
首先需要强调的是,比特币是去中心化的,也就是说没有中心机构,没有中心服务器。
传统集权,比如你要开银行,就得找个房子做总部。房子里有员工,不用请保安,也不用请大厅经理。但是,你们总有负责接待客户和记账的员工吧?你有笔记本或者服务器可以用来记账,储存起来以后对账吗?然后有人来存钱,有人来找你借钱,你算清楚账,算好利息,银行就开了。如果发展的好,还可以开几个分店。这个类比是为了说明这是一些最基本的东西。无论是传统银行还是比特币,都必须有。
去中心化的比特币呢?它的总部在哪里?它的记账人员在哪里?它的记账服务器在哪里?
创始人中本聪是这样设计的。
首先,他设计了一个软件(也就是挖矿软件)。当这个软件在网络中运行时,比特币的第一个分支就建立了。然后中本聪和别人分享了这个软件。有人下载安装运行后,第二个分支成立了,第三个,第四个,无数个。该软件是开放的,任何人都可以下载。没有门槛,只要你的电脑能成功安装。目前不考虑计算能力的表现,软件需要同步的数据大概是一个t,只要你的硬盘够用,你的电脑就是一个比特币服务器(节点)。因为大家安装的软件一样,节点之间没有总部分支。每个人都有相同的权限,分散在世界各地,也就是分散和去中心化的意思。
有了服务器,谁来记账?
这个软件还开发了一个系统,让世界各地的矿工一天24小时心甘情愿地打开他们的计算机作为服务器,并认真记录每笔交易的账目。
首先这个软件设计了一个区块,是电子账本,指定了两点。
1.这个电子账本(块)每10分钟左右就会生成一次。每个块记录以前的交易顺序,一个块(簿记簿)连接到另一个块。一旦被总结为永远,这就是区块链。
2.此区块(电子书)的最大大小不能超过1M。
那你为什么每10分钟左右生成一个记账本(块)?首先,记账本(块)肯定是用来记账的,生成的是电子账本(块),也就是说这个电子账本(块)记录的是之前的交易单。只有生成了这个块,才能认为之前的订单是真正的交易成功。那么,我们在买卖比特币的时候,并不是实时到账的,那我们为什么要这样设计呢?实时到账多方便。
这里,是比特币去中心化相对于传统中心化银行的不足。集中式银行之所以能实时到账,是因为它有中心服务器,数据传到总部就能确认。去中心化呢?对于每一台电脑来说,即使10分钟成交1亿单,也能在几秒钟内处理完毕。如果每笔订单后都生成一个block(记账本),那不是一秒钟就生成一个block(记账本)吗?那太多街区了。还有一个问题。世界上有那么多服务器。因为网速和电脑性能不一样,每个分公司记录的数据都会不一样,容易造成混乱。所以要设定一个时间段,确定一个区块(记账本),然后继续记录下面的订单。中本聪的设计周期约为10分钟。
那你说说为什么不能超过1M?1M是什么概念?现在随便一张图都超过1M,这个大小保证了全世界的服务器都能快速同步。但是如果有很多交易单呢?1M肯定记不住,所以没记录的订单只能慢慢排队。所以我们把比特币转给别人,并不是实时到账的。我们要等矿商录下来,才能确认交易成功。也许中本聪一开始没想到比特币会这么受欢迎?(跳过这个问题,在目前来看,确实是一个缺陷,因为这个尺寸引发了BCH的诞生。有兴趣的可以去了解一下。)
那么如何在10分钟左右控制一个街区呢?同时还有一个问题,如何让大家主动记账?这两个问题用一种方法一起解决了。
中本聪就是这样设计的。为了让越来越多的人加入挖矿(记账)队伍,每10分钟左右,每生成一个区块(记账本),就会赠送一个比特币作为奖励。谁先打包记录账单就给谁,直接录入你设定的地址。
当初我们一次奖励50个比特币,50个比特币。现在如果算上20万个比特币,就是1000万人民币。每10分钟左右,你就会变成千万富翁。所以大家才会想尽办法记账。
对了,奖励这个也是产生比特币的唯一途径。比特币不是无限生产的。中本聪在源代码中规定,每四年,奖励在原有基础上减半。目前每次奖励只有12.5。所以,到2140年,奖励将等于0。当时总共有2100万个比特币。
有机智的朋友会问,那奖励越来越少了,以后就没人采(记账)了。不是,其实你每次打包记账,除了系统奖励,还有你打包订单的手续费。也就是说,你要给别人转账比特币要交手续费。比特币持续升值,矿工未来靠手续费就能过得很好。
话说回来,既然有奖励激励大家记账,如何在10分钟左右控制一块?
其实不难。不就是拖延时间吗?可以用数学知识解决。
首先假设一个区块生成后,大家开始下一个的记账,你的电脑很快就会收集到附近节点的订单装箱记账单。毕竟一块(记账本)是1M,那么对于电脑来说能花多少时间呢?然后,要不要吼我记账,给我打赏?没那么容易。
据说系统要控制时间。账单入账后,现在大家也没什么事可做了。让我给你一道数学题。这是一个简单的数学问题,但即使是高性能的计算机也需要很长时间才能解决。
为什么简单?因为它本质上和掷硬币游戏一样。
首先,我们来回顾一下。公钥通过一种叫做哈希函数的运算得到地址,对吧?这个算法是不可逆的。必须先确定前一个数(公钥),然后才能通过哈希函数获得后一个数(地址)。
特别地,任何由哈希函数计算的数字都是0和1的二进制数字串。
所以,哈希函数运算,本质上可以理解为抛硬币。毕竟不是正面(0)就是反面(1)。
现在不是应该拖延的时候吗?如果我让你连续扔256次,规定前100次通关前全是零。如果你扔了1,你就要重新开始。在这种情况下,会花很多时间吗?
好了,现在记录了账单,如果把账单当成公钥,前50次都通过哈希设置为0,就算你把账单打包了,奖励也是你的。但是,有一个问题。如果每个人都计算一次,没有人用0计算前50次的结果呢?毕竟前50次都得是0,概率多小啊。一次都没有。好吧,继续数。
因为账单是确定的数据,哈希它结果是确定的。为了继续计算,您可以在您的账单中添加一个随机数。这意味着您已经更改了您的公钥,然后通过哈希计算它。如果之前的50次在某个计算中都是0,那么恭喜你,你可以马上把你的记录账单和这个随机数上报给系统。收到您的信息后,您会立即进行计算和验证。如果是对的,那么好吧,你赢了,大家都承认你是第一个算出来的,奖励归你。同时区块(记账本)确认,全网立刻同步你的记账单(区块),从而开始新一轮的竞争。
有的朋友会想,能不能用什么方法提前知道这个随机数?
事实上,你不能这样做。哈希函数的特性决定了你只能从原因推导出结果,而不能从结果推导出结果。所以,你只能不断找理由推导出结果,然后看你设置进去的某个随机数,看得出的结果是否符合系统的要求。
在这里,好的数学伙伴应该早就想到了。要想控制好时间,关键点在于要求系统前面连续多少位是0,每增加一位,难度就成倍增加。所以只要系统检测出当前全球在线的计算能力,然后报一个合适的数字,就能把时间拖到死。当然,有些幸运的人可能真的只能算一次。两块之间的时间间隔可能很短,可能会有不好的时候。世界上所有的计算,久久得不到答案。但是,这毕竟是一个概率的问题。从长远来看,时间还是控制得稳一点。
现在,你看,所有的矿工都在疯狂地挖坑(记账),却不是真的记账。记账是一瞬间的事。原来全世界浪费了无数的电力。事实上,他们是在用电脑猜测一个数字,并一直算下去。就像抛硬币一样,他们在做一件故意拖延时间的事情。当然,因为奖励,这一切对于矿工来说都是值得的。
比特币的流通
在这里,什么是比特币,比特币是怎么来的,什么是区块链,什么是挖矿?原理大家都懂。现在来说说比特币的流通。
从上面我们知道,比特币是通过挖矿(记账)获得回报的,这是产生比特币的唯一途径。矿工拿到比特币后,可以通过交易所卖给别人变现。同样,如果你需要比特币,可以在交易所花钱购买。当然,如果两个人认识,也可以绕过交易所,线下交易。
因为比特币总量有限,只能通过挖掘产生,而且有人喜欢把硬币存起来作为收藏品,所以每天流通的比特币数量有限。如果某些资本家提前囤积了大量的比特币,就可以用他们的资金去炒比特币,不断提高比特币的价值,然后在高位抛出,让无知的小白接手。然后,比特币市值暴跌。大家绝望的时候,就用钱抄底。等他们攒够了钱,又开始了拉高的游戏。
因为比特币是去中心化的,任何国家都无法监管,买卖都是自由的。谁的钱多,比特币多,谁就能主导比特币的涨跌。当然,随着越来越多的人关注比特币,也有太多的人加入其中。比特币分散在不同资本手中,大家对涨跌的看法很难统一,价格也变得相对稳定。
采矿一定要赚钱吗?
可以想象,第一批矿工在中本聪的宣传下,随机生成一个私钥,然后算出公钥,算出地址,下载安装记账软件。因为没多少人抢着记账,所以很容易就拿到了很多比特币。现在,他们是亿万富翁。
但是,有一个很现实的问题。起初比特币一文不值,私钥就是这么一长串数字,所以第一代矿工挖到的比特币大多因为没有妥善保管私钥而被永久遗忘。是的,没有私钥,任何人都不能使用它们。虽然他们没有消失,但他们只是失去了流通。他们只能等待,等待某人,无意中生成一个私钥,刚好匹配,然后才能再次循环。但是,如前所述,私钥几乎是无限的,比连续中1000万大奖的彩票更难遇到。但是,还是有梦想的。万一实现了呢?
总的来说,早期的矿工肯定是赚钱的。但随着资金对比特币的不断炒作,挖矿的成本也随着比特币的涨跌而变化。如果比特币跌得太厉害,会让他们连电费都赚不回来。赚钱赔钱也要看运气。挖矿并不意味着一定的稳定盈利。
比特币为什么有价值?
作为虚拟的数字货币,最高的时候价值40万人民币左右。比特币为什么值这么多钱?毕竟比特币本身只是一串数字。了解了比特币的基础知识后,我试图找到它有价值的答案。
1.在底层逻辑上是无懈可击的,安全的。持有比特币私钥就像购买宇宙中的一个原子。你不说,别人也不会知道你买的原子在哪里。毕竟宇宙太大了。
2.作为一种虚拟货币,它已经得到了全球许多资本的认可。很多国家默许比特币的存在,很多大企业接受比特币支付,普通人也跟风使用比特币。足够多的人选择相信,这是一种信仰。
3.其总数量有限,2100万件。也就是说,作为一种去中心化的虚拟货币,它不会超支,所以不会膨胀。相反,随着其他货币不断超支,只会相对越来越值钱。
4.只要知道对方的地址,无论他在世界的哪个角落,都可以向其转账。有了比特币,可以快速跨境转账,手续费比传统银行低很多,很受大资本家欢迎。
5.它是分散的,所以,它是非常私人的。你给某人转账,除了你俩没人知道这个交易是谁做的。生活在这种特性下,比特币成为了很多犯罪分子敛财洗钱的工具,一些犯罪分子也用它来收取赎金。以前一些贪官只能把现金藏在床底下。现在,他们可以把它换成比特币来藏钱。他们受贿的时候也可以把现金换成比特币。比特币已经成为犯罪分子的完美工具,因此,正因为如此,许多国家都拒绝比特币。
比特币的交易完全匿名吗?
比特币,它只是私有的,而不是匿名的,不可检测的。
因为比特币地址是公开的,毕竟你想让别人给你转账,你得提供你的一个地址吧?而且,一旦你的地址暴露,任何人都可以查到这个地址里有多少钱,或者是发给你的哪个地址,你总能查到出处。源头是挖矿的报酬。也就是说,如果警察发现一个地址被某些人用来做坏事,他们只需要盯着它,直到你去交易所兑现,或者去购物,那么你的身份就暴露了。
不过这毕竟是全球流通的数字货币,交易简单。如果你不心疼每笔交易的手续费,你完全可以把你的比特币调头,分块存到多个地址,然后在全球不同的交易所提取。这样,就很难追踪了。
说到这里,我的比特币学习经验分享就要结束了。了解比特币的骨骼结构后,好的数学伙伴可以深入研究其中应用的数学知识。
但是,我要提醒你,中国禁止比特币交易。作为一个普通人,目前最好的态度就是懂得观望,但最好不要加入。毕竟水这么深,你是抓不住的,哈哈。
还是那句话,我只是一个爱学习的书呆子。如有不妥之处,请委婉指出。如果有爱学习的小伙伴不懂,请留言。