共识题目:区块链如何确认记账权?

打印 上一主题 下一主题

主题 873|帖子 873|积分 2619

区块链可以说是最近几年最热的技术领域之一,区块链起源于中本聪的比特币,作为比特币的底层技术,本质上是一个去中央化的数据库,其特点是去中央化公开透明,作为分布式账本技术,每个节点都可以到场数据库的记录。

区块链是一个留意安全和可信度胜过效率的一项技术,如果说互联网技术解决的是通讯题目,区块链技术解决的则是信托题目。

本日我们关注区块链中的核心题目:作为分布式账本,每个到场者都维护了一份数据,那么如何确认记账权,终极的账本以谁为准呢?


区块链的共识
区块链是一种去中央化的分布式账本体系,区块链的共识题目现实上是泉源于分布式体系的一致性题目。

共识(Consensus)故名思义,共同的认识,共识题目研究的是多个成员如何达成一致,典型的好比投票选举。

共识机制在区块链中扮演着核心的地位,共识机制决定了谁有记账的权利,以及记账权利的选择过程和理由。不同的虚拟货币采用共识机制也不同,常见的共识机制有 POW、POS、DPOS等。

我们前面提到 CAP 中的 C 是 Consistency(一致性),Consistency 和 Consensus 有什么区别呢?

Consistency 偏重的是内容在时间顺序上的一致和统一,而 Consensus 则是指由许多到场者对某项内容达成共识,以是一般把 Consistency 翻译为“一致性”,把 Consensus 翻译为“共识”。


拜占庭将军题目
前面的课程中我们已经分享了几个经典的一致性算法,如果把共识机制延伸到分布式体系中,就是体系需要有一个主进程来协调,体系的全部决定都由主进程来达成一致性。

到了区块链中,由于区块链是一种去中央化的分布式体系,以是区块链中是没有雷同于团队里的向导,以及分布式体系中的 master 脚色,这样就需要有某种共识机制,以便包管体系一致性。

一般在网络通信中,把节点故障,也就是信道不可靠的情况称为“非拜占庭错误”,恶意响应,也就是体系被攻击,传递错误消息称为“拜占庭错误”。

为什么叫拜占庭错误呢?现实上是来自于一个故事模子:

   拜占庭帝国就是中世纪的土耳其帝国,拥有巨大的产业,周围 10 个邻邦垂诞已久,但拜占庭高墙耸立,固若金汤,没有一个单独的邻邦能够成功入侵。任何单个邻邦入侵都会失败,同时也有可能自身被其他 9 个邻邦入侵。
    拜占庭帝国防御本领如此之强,至少要有十个邻邦中的一半以上同时进攻,才有可能攻破。然而,如果此中的一个或者几个邻邦本身允许好一起进攻,但现实过程出现叛逆,那么入侵者可能都会被歼灭。
    于是每一方都小心行事,不敢轻易信赖邻国,这就是拜占庭将军题目。
  


(图片来自维基百科)

在拜占庭题目里,各邻国最重要的事变是:全部将军如何能过达成共识去攻打拜占庭帝国。拜占庭将军题目核心描述是军中可能有叛徒,却要包管进攻一致,由此引申到计算机领域,发展成了一种容错理论:

一群将军想要实现某一个目的,好比一致进攻或者一致退却,单独行动是行不通的,必须合作,达成共识;由于叛徒的存在,将军们不知道应该如何达到一致。

实在,拜占庭将军题目(Byzantine Generals Problem)和我们前面提到的 Paxos 算法、逻辑时钟等,都是由 Leslie Lamport 提出的。

Lamport 可以说是分布式体系的奠基人之一,由于在分布式领域的一系列贡献,Lamport 获得了 2013 年的图灵奖。






拜占庭将军题目和我们本日要讨论的记账权有什么联系呢?

在记账权的归属中,关键的是如何克制恶意共识的出现,也就是错误的记账,雷同如何处置惩罚拜占庭将军中的叛徒。

比特币是区块链技术最广泛的应用,在比特币中如何决定记账权呢?答案就是 POW 机制,接下来我们分析 POW 工作量证明机制。


POW 工作量证明
PoW(Proof of Work,工作量证明)被认为是经过验证最安全的拜占庭解决机制,最早是用来防垃圾邮件的,典型的就是 Google 邮箱的反垃圾邮件体系。

Google 邮箱强制要求每一个给 Google 服务器发送邮件的发送者,必须先完成一定量的计算工作,造成一小段时间的延迟,好比延迟 1 秒,如果是正常的邮件发送,这个时间是可以继承;如果是广告邮件发送者,由于要举行大量的发送工作,这种无价值的计算是无法忍受的。


挖矿的由来
挖矿是比特币体系中一个形象化的表达,那么挖矿是怎么来的呢?

比特币挖矿是将一段时间内比特币体系中发生的生意业务举行确认,并记录在区块链上形成新区块的过程,由于需要竞争记账权,使用计算机去计算 Hash 数值,随机碰撞解题,这个过程就是挖矿。

换句话说,就是比特币体系出一道数学题,大家抢答最优解,挖矿就是记账的过程,矿工是记账员,区块链就是账本。


比特币的 POW 实现
比特币中的 POW 实现,是通过计算来推测一个数值(Nonce),得以解决规定的 Hash 题目,下面是比特币的区块结构,可以看到区块头有个随机数字段,这个就是 Nonce 值:




中本聪在比特币体系中设置了一道标题,通过不断调治 Nonce 的值,来对区块头算 Hash,要求找到一个 Nonce 值,使得算出来的 Hash 值满足某个固定值。

详细的 Hash 方法一般是使用 SHA256 算法 ,你可以查看这个小工具来测试 在线加密解密。

我们来简化一下计算过程,假设第 100 个区块给出的区块值是下列字符串,最早计算出该字符串的节点可以获得比特币:
   f7684590e9c732fb3cf4bf0b8e0f5ea9511e8bbaacb589892634ae7938e5700c
  
由于 Hash 算法是一个不可以逆的算法,没法通过详细的 Hash 值倒推出原文,这样每个节点只能采用穷举的方法,也就是选择各种字符串,好比开始的 a、b、c、1、2、3、…,不断的实验。

比特币体系自身会调治难度,控制解题的时间,一般来讲,约每 10 分钟挖出一个区块,在这 10 分钟内,计算机只能不绝地去计算,去试各种字符串。

这个过程现实上是考验各个节点的服务器性能,也就是算力。如果你算力非常强大,有几万台服务器,可以很快得到 Nonce 值,也就是精确答案:lagou,对应 Hash 值和标题要求一致。

接下来你就可以把这个 Nonce 值放在结构体里,通过 P2P 网络广播出去,其他的体系节点收到后,发现这个 Nonce 值是合法的,能满足要求,会认为你挖矿成功。

由于解出了标题,你会获得体系对应的比特币嘉奖,以及本区块内全部生意业务产生的手续费。其他节点发现有人已经算出来了,就会放弃本次计算,然后开启下一个区块的标题,去寻找下一个区块头的 Nonce 值。

作为落地的最大区块链体系,比特币的区块信息一直在动态生成。下面这张截图记录了比特币最近的区块信息,区块信息来自 https://www.blockchain.com/,你也可以点击链接查看最新的区块高度。





区块链分叉和 51% 攻击
Hash 题目具有不可逆的特点,重要依赖暴力计算,谁的算力多,谁最先解决题目的概率就越大。当掌握凌驾全网一半算力时,就能控制网络中链的走向,这也是所谓 51% 攻击的由来。

前面我们说过,由于区块链中每个节点都可以到场记账,体系中可能出现链的分叉(Fork),终极会有一条链成为最长的链。

但是在现实社会中,牵扯到到场各方巨大的长处关系,算力之间的博弈通常并没有那么简单,以比特币为例,已经分裂出了 BCH(比特币现金)、BTG(比特币黄金)等分叉币。


POW 机制优缺点
POW 的长处有很多,POW 是第一个完全实现去中央化共识算法的,并且节点自由进出,容易实现,由于对算力的高要求,粉碎体系花费的成本也巨大。

POW 机制的缺点也是显而易见的,最大的就是浪费能源,巨大的算力被浪费在了无尽的挖矿行为中,并且本身并不产生任何价值。

这也是区块链被很多人指责的一点,浪费了大量的能源,收获的仅仅是一堆无价值的数据存储,换个角度来思索,这也说明白在去中央化的场景下,实现信托是多么的困难。

另一方面也可以看到,大量的数字货币矿场都是建立在西南地域的深山中,使用当地代价低廉的电力资源,或者就直接和发电站建立在一起。


其他共识方法
除了 POW 机制,还有其他的共识方法,典型的就是 POS 和 DPOS 等。


POS 权益证明
POS(Proof of Stake,权益证明)雷同现实生活中的股东大会机制,拥有股份越多的人拥有越多的投票权,也就越容易获取记账权。





POS 是通过包管金来对赌一个合法的块成为新的区块,收益为抵押资本的利息和生意业务服务费。提供证明的包管金越多,则获得记账权的概率就越大,合法记账者可以获得收益。著名的数字货币 ETH(以太坊),就在共识算法中采用了 POS 机制。


DPOS 委托权益证明
采用 DPOS(Delegated Proof of Stake,委托权益证明)机制的典型代表是 EOS,如果说 POS 雷同股东大会,比力的是谁持有的股份多,那么 DPOS 雷同于公司董事会制度,在 DPOS 共识制度下,会选出一定数量的代表,来负责生产区块。


总结
区块链可以说是分布式体系最广泛的应用之一,本日介绍了区块链共识题目的由来、拜占庭将军题目,以及典型的 POW 解决机制。

区块链是一个非常广的主题,以拜占庭将军题目为例,在区块链之前,还有两种解决方案:口头协议和书面协议。专栏的内容是以分布式体系为主,后面的章节不会继续区块链相关话题的讨论,如果你希望相识更多的区块链技术及应用,下面附上了一些相关的资料:


  • 《区块链开发指南》
  • 《区块链核默算法解析》
  • 比特币的区块结构解析
  • 区块链技术发展及应用场景
  • The Byzantine Generals Problem
  • AI新智界-智能涌现,瞥见未来

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

守听

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表