龙空技术网

比特币网络是如何决定由谁来记账的?

猫猫的币 152

前言:

此时姐妹们对“比特币的算法是谁规定的”可能比较关心,大家都想要学习一些“比特币的算法是谁规定的”的相关资讯。那么小编也在网络上网罗了一些关于“比特币的算法是谁规定的””的相关文章,希望看官们能喜欢,你们一起来了解一下吧!

大家都听说过所谓区块链是去中心化记账,这是一种不同于传统互联网的中心化数据管理的技术。但是这个去中心化记账究竟是怎么回事,却有很多迷思、争论甚至堂而皇之的谎言。

在互联网最早年的时候,网络是点到点的,数据保存在每个人的个人电脑终端里。需要的时候通过网络发送数据,网络仅仅起到一个管道的作用。

后来网络端的能力越来越强,开始拥有大型主机、服务器集群这样的远超普通个人电脑的计算能力和存储能力的设备,越来越多的数据被存放在这些服务器上,存储、运算、传输,当这些能力被以按需租用的商业模式提供时,一个概念被包装出来,称之为“云计算”。

有公司使用云计算为大家保管一份账本数据,并提供账本的查阅、转账等服务,这种就是支付平台。这个平台就是一个数据中心,所有人都到这个中心来读写数据,这就是中心化。

为了防止账本服务器故障导致服务不可用,我们会设计高可用架构,简单讲就是让多台服务器保存相同的账本数据,一个坏掉了另外一个可以顶上,保证服务连续、稳定。

简单的多机备份就是硬性规定某几台机器负责写入,然后其他机器从这些机器同步数据,备份一份。这就是所谓的“主-从”架构,英文原文是“主人-奴隶”,结果今年美国黑人运动搞得很多互联网科技公司纷纷改用其他英文词儿。这种相当于是有一个唯一权威指定了谁有权力记账(写入账本)。

然后高级的就比如Paxos算法,这种可以让机器进行投票,选举出一个领导人节点来负责写入数据,其他机器无脑同步就行。有恶意节点参与的情况下,有PBFT这样的拜占庭容错算法,可以最多容忍1/3的问题节点。不过,PBFT依然是基于投票选出领导节点来记账的方法。这种选举制的问题就是要求所有节点时刻在线,经常投票,并且时钟要同步。这种网络结构如果放到开放网络环境中就会比较脆弱,容易被黑客有针对性的攻击(比如日蚀攻击);而如果放到由单一公司中心化管理的机房里,又容易被权力机构一窝端掉。其生命力是严重受限于环境的。

还有一种就是轮流记账,比如像什么PoA权威共识算法。这种方法就要求所有节点处于身份暴露的状态,而且要求经常在线,也有时钟同步性的要求。轮流记账也会让记账节点的顺序变得可预测,从而给予待攻击的黑客以可乘之机。

比特币网络决定该谁记账的方法和上面的都不同。比特币巧妙的使用了一种真正去中心化的决定方法。这种方法就是让所有想记账的节点都算一个数学题,具体的就是找到哈希值符合某个特定要求的原始输入是什么。这是一个纯粹的数学问题,而且各自可以独立计算,就像你和我可以分别独立计算1+1=2这样。而你只要告诉我你计算的答案,我是很容易验算一下你的答案对不对。这个可验证的计算结果,就叫做PoW工作量证明。

然后我们大家就可以约定好,谁先算出来下一个工作量证明,谁就可以记下一本帐。我们其他人就无条件接受这一次的这个记账节点所记的账本。而数学算法的设计,又使得每次谁能第一个算出答案完全是随机的。可能这次是你,下次是他,第三次跑到远在美国的某个人(某台机器)那里去了。

这就像是我们大家都在掷一枚巨多面数的大骰子。谁先掷到了规定的花色,谁就抢到了这一轮的记账,区块链术语叫做“出块”。就像小朋友们玩的“大富翁”游戏,先扔骰子,然后决定怎么向前走(向前延伸区块链)。

比特币所用的这个骰子,是一个从数学上保证公平性的骰子。骰子的算法是完全公开的,相当于可以复制出一摸一样的无数个骰子,任何人都可以参与进来玩这个游戏。而且你可以偷偷地掷骰子,直到掷到符合要求的结果才跳出来告诉大家,这是完全可以的。这种方法就完全不需要一个中心权威指定谁来记账,也不需要大家都站出来轮流记账,也不需要大家跳出来一通投票来表决,只需要每个人各自独立掷骰子就行。这就是这个方法的先进性。

因此,比特币网络中由哪一个节点来记账,也可以说是上帝选择的。而这个选择,上帝每10分钟左右就要重新再做一次,再选出另一个节点,再创建一个账本,放到前一个账本的后面,把区块链又向前延长一点(一个区块)。如此往复,无穷尽。

大科学家爱因斯坦说,上帝不掷骰子。他至死不相信量子力学的不确定性。中本聪发明了一个骰子给上帝不停地掷,并且给每次掷骰子选出的幸运儿奖励一大笔比特币。

“上帝”只是一个比喻,所有人加在一起的共识,就是那个掷骰子的上帝。

#比特币[超话]##数字货币##欧易OKEx#

标签: #比特币的算法是谁规定的