比特币挖矿到底在计算什么?
BTC 的价值就是交易渠道本身。一组新制造出来的比特币提供了把旧的比特币从一个帐户转移到另一个帐户的数学保证。这个安全保证背后的代价是大量的计算力。生产这么一个安全通道是需要消耗大量能源的,所以整个比特币用户群体,奖励那个造币者(目前是 50 BTC)。
简单说,我的理解就是,现在世界上所有的比特币背后都是用运行计算机的能量产生出来的,它们的总价值,(到现在一共有大约 12w 组比特币被生产出来,每组 50 个,市场价格大约 7.3 美金一个),应该是少于消耗掉的能源的总市场价值的。不过我想,用于生产比特币的能源大都原本就是不用也被浪费掉的资源。
一个没有中心节点的“银行”是怎么让大家信任并工作起来的呢?
答案是,这个 p2p 网络上每个节点都记录了比特币诞生以来的每笔交易的详单,并从中可以推测出每个比特币唯一的属于谁。这样你接受一笔交易时,就能知道别人给你的钱是不是合法的。
从最基本的说起:
每个帐户其实就是一对公私匙,有私匙的人就是帐户的主人。如果 A 要给 B 转一笔钱,A 就把钱的数量加上 B 的公匙,用自己的钥匙签名。而 B 看到这个签名,就可以了解,的确是 A 转给了他如数的比特币。
那么这笔交易需要一个见证人,担保交易发生过。这样,以后 B 想用这笔钱的时候才是合法的。担保人就是整个使用比特币的网络。
A 在发起这笔交易的时候,必须把签过名的交易单尽量的广播到 p2p 网络上,最终会让每个节点都知道这件事。B 从 p2p 网络上不断的收到别人的确认信息。当它收到足够多的确认信息后,就认为 A 的确发出了这条交易单。这以后,B 就可以自由使用这笔钱了。
当 B 使用 A 转给它的钱给 C 时,也会广播给足够多(最终所有人都收到)的人让他们担保。每个担保人只有确信 B 有足够多的钱可以支付的时候才做确认。本质上,BTC 网络并没有记录每一块钱属于谁,它记录的是从诞生起到当前的每一笔交易,并推算出每个帐户里有多少钱。任何人试图确认一个交易单时,它需要确认的是转出帐号上有没有那么多钱。
比特币需要解决的核心问题是,如何避免一笔钱被花两次。
整个帐单序列是一环套一环的。每个人在完整的全局帐单上签上新的一笔的时候,都需要利用前面信息生成后面的。这个帐单序列被称为 chain of blocks 。每个区块里面包含有若干条经过确认并 hash 签名(难以伪造)的交易记录。每个区块都和全局表上的上一个区块有关联。每条帐单都会通过 p2p 网络最终被转发给制造新区块的节点上。
这个制造新区块的过程被叫做挖矿,制造新区块就是把最近收到的帐单打包在刚制造的区块里。这个打包的过程即制作的过程,只有极其稀少的几率被制造成功。(你可以理解成把新收到的帐单合在一起,一次成型不可修改,如果制造失败就要再来一次)一旦制造成功,你就把新的区块(被认为是对老的全局区块链的延续)广播出去。
因为是 p2p 网络,可能有许多人都在同时制造新的区块,但有一个排序机制保证只有最优(最难,花费最大计算时间的)的那个新区块被网络群体接受,挂在全局的区块链上。重复一次,整个比特币网络只有一个全局帐单表,每个节点都完整的保存有一份。
这个全局帐单表会越来越大,区块链越来越长,在最新的部分,必然有许多分茬。这是因为 p2p 网络的挖矿过程是分开并行进行的,每条新帐单也不能立刻广播给所有的节点。每个挖矿的节点都有责任把他新收到的,在他认可的老的全局帐单上不存在的帐单,合在他准备制造的新区块中。一旦新区块被制造出来,就立刻广播出去,争取得到更多人的认可。主要是得到那些想挖矿的人的认可,这些人会在这个区块的基础上制造新的区块。
如果 p2p 网络过大,交易帐单不能尽量的迅速的广播到全网络。就会出来 p2p 的网络的局部保持有小群体共同认可的一份全局帐单。多个全局帐单的分支同时发展是有可能的。因为每个小群体都可能认为他们看见的那部分更长更有效。但是,只有有人发现另一条分支更长,它就会转换阵营。所以,有一定的可能性,你的帐单被一个小群体接受,但在一段时间后,被更大的阵营抛弃。
不过,算法参数决定了,新的区块产生速度很慢,如果你的帐单被多达 6 个人确认,基本上就保证了它合并到的那份全局帐单,就是 p2p 网络全体认可的。
既然生成新区块费时费力,制造出新区块的几率好象买彩票中大奖,还有那么多人去执行程序计算出新区块呢?答案是,每个制造出新区块的人,都有权利构造一条帐单声明老天给了我 50比特币。这个规则是被所有比特币用户共同承认的。把制造区块等同于成挖金矿 (mining) 只是一个形象上的比喻。实际上,没有人可以把金子挖出来囤积。每个新区块必须包含全局表上的上一个区块的 hash 值,BTC 网络自我调节难度,让每 10 分钟大约产生一个新区块。如果你 10 分钟内没制造出新的区块,差不多就是说你前面 10 分钟干的活白干了。从最新版的区块继续演算。
所以更恰当的比喻是买彩票。一个每 10 分钟开一次的彩票。你不停的花钱买,10 分钟内开中了就是你的,开不中先买的都作废,然后下一轮。
数学上怎样保证挖矿的过程需要消耗大量的 CPU 时间?并只有很小的几率成功?
这里用到一个叫做 Hashcash 的系统。它最早是为了改善 email spam 的问题被发明出来的。
就是给一段特定信息(比如这封 email 是从谁发给谁)加一个特定的 hash 头。这个 hash 头需要大量的 CPU 时间计算出来。发 spam 的人没有那么多 CPU 时间为群发的每一封 email 计算一个符合要求的 hash 头,所以认为有这个合法 hash 头的 email 不太可能是 spam (花了 CPU 时间在上面)
这个算法就是,为你想保护的信息,找到一串数字,附加上去后,使用某种公认的 hash 算法,比如 SHA-2 ,算出一个 hash 值。如果 hash 值由一长串 0 打头(具体多少个决定了难度),那么就成功了。
为一段信息,找到这串数字,在目前来说,除了暴力尝试没有什么好的方法。也就是随机更换数字,换一次就 hash 一次比对。在一个可以预期的尝试次数后,一般都能找到想找的数字。
每个想挖矿赚比特币的人,不停的从比特币网络上监听信息。如果有人发布了新的合法的区块,他就合并到本地的全局表里。并重置自己的计算过程,从新得到的区块开始。如果有新发布的交易单,也记录下来。不断的把最新的区块的 hash 值、新收到的交易单,自己获得 50比特币的那条奖励单合并在一起,计算 SHA-256 ,看看结果是否满足条件。一旦满足,就把这个新的区块广播出去。
当足够的人认可它,(以它为基础计算后面的区块),他也就获得了那 50比特币。
为了匹配比特币的经济规模。所有的 比特币client 都被设置成,每 210000 个区块,生产新区块的人被认可凭空获得的比特币数量比之前的少一半(如果这个时候他还在包内写上自己获得 50比特币,其他人不会确认他的这个区块)。这会让比特币的总量增速变缓。新的区块产生的速度是由难度来调节的。这个难度会由 p2p 网络根据最近生产区块的速度自动调节。所以即使日后计算能力增加,也能保证大约 10 分钟一个的速度。
而且,随着生产新区块的收益减少,愿意贡献自己的 CPU 来挖矿的节点也会变少。(如果减少太多,只需要减少难度即可)
最终,p2p 网络不再凭空制造出新的比特币,这个时候制造新的区块的动力是什么呢?那就是交易税。因为没有什么人愿意生产新的区块,发起交易就变的困难。(没有区块可以容纳交易单)希望交易被确认的人可以声明,如果有人制造出新的区块接纳他的交易单,他会支付一小笔交易税给他。当许多人都这么做的时候,制造区块又变的有利可图了。只不过,直接上不再有新的比特币诞生,只是在这些比特币用户之间流通。
总有一些比特币会消失,主要是那些帐号的私匙丢失了,没有任何人可以转移走帐户上的钱。不能流通的货币就不是货币了。但最终比特币总体会达到一个比较大的规模,准确说是两千一百万个。但比特币本身是可以切割的,比如你可以支付给别人 0.01 个比特币。所以比特币本身会升值,总数也一直够用。
仅5天,比特币连续跌破5000、4000、3500美元大关,一日跌幅高达17{b2012ba45bed8df9e27a732d113bf0adaf0cdaf119415d399cb31156a09f2387},比特币要崩盘了吗?
近期比特币持续大跌,多家平台显示,截至目前,逼近3800美元关口,刷新2017年9月以来新低,从高点下跌约80{b2012ba45bed8df9e27a732d113bf0adaf0cdaf119415d399cb31156a09f2387}。此次比特币大跌的起因众说纷纭,但是我认为归根到底它一直是一个包装华丽的骗局,是骗局就早晚会破。此次比特币横盘几个月,触发的是比特币现金的“硬分叉”。此次“硬分叉”,实际上凸显了之前所谓比特币总量有限的说法是不靠谱的,因此引发了比特币价格的大跌。
雪上加霜的是,最近美国加强了对虚拟货币的监管,这也是另外一个引发比特币下跌的主要原因。另外,区块链概念热潮今年开始消退。很多人也开始意识到,区块链应用到实际场景中还面临诸多困难,这或许只是一个“美丽的梦想”。同时,我认为,区块链作为数据库而言,在更新过程中其实是在浪费资源。
不过,值得注意的是,现在比特币的价格只是暴跌,就目前的情况而言还是“破而不灭”。我预计比特币的价格仍会继续出现所谓“进两步退三步”的反弹,吸引其他的人继续接盘,比特币“割韭菜”的行为也会延续,因为掌控比特币的市场“大鳄”们不会让其就此破灭。
21万一个的比特币,自己能挖到吗?
当然是可以自己挖的,只不过效率很慢,按照当前的比特币全网算力难度,如果使用家用电脑的话,即便是按照当前市面上最先进的显卡,时间周期也需要1400多年。并且前提还能够保证当前的全网算力难度在这1400多年的时间里不变。
所以我们能够看到当前的比特币的价格与它的全网算力难度是成正比关系的。尤其是从2020年下半年开始,市面上大部分的显卡一直处在一个相对应的缺货状态,尤其是顶端的显卡。这部分的显卡只要放出去,基本上就能够被及时的秒光。
那么是什么人在积极的购买这些显卡,他们又要拿这些显卡做什么?
是一部分用来挖掘以太坊的矿工,以太坊当前的价格是1800美元折合人民币11000元左右,位于当前的加密数字货币排行榜市值第二。以太坊ETH目前确实是可以用家用电脑来贡献自己算力的,基本上一天下来按照当前的价格以及当前以太坊的算力,除过自己的电费一天能够赚个40~50元左右。
所以当前有一部分的聪明人把自己的电脑配置升级,然后贡献出自己的家用电脑算力,去挖掘除了比特币以外的其他数字货币。如果想寄希望于当前能够达到20多万元一枚的比特币的话,那么必须得用专业的矿机去进行相对应的算力贡献。
比特币挖矿的实质就是穷举,就等同于一道复杂的计算题,谁先能够率先答出这个题的答案谁就能获得当前6.25枚比特币的奖励。穷举贡献算力就是为了提高自己的区块计算和打包能力,而区块率先打包的那个矿工,就能够获得当前6.25枚比特币的奖励,这也就是整个比特币底层区块链网络运行的机制。
而如果想利用自己的家用电脑去挖掘其他的加密数字货币,来获取相对应的代币回馈的话,首先得计算自己的电脑性能,然后按照特定的程序运行方式去计算打包节点,最后还得综合计算一下电费和你的机器折旧。
因为专业的挖矿会非常损耗自己的显卡和内存,有很多的专业矿场,都会把即将淘汰的矿卡以二手的价格放在市场上出售,尤其是在比特币价格大跌的时候,基本上都是按斤甩卖。所以想赚这份钱就一定得综合计算自己的回报率,而不要为了一点点面前的蝇头小利而得不偿失。