共识机制:区块链技术的根基
Chapter-1:什么是共识机制?
技术定义是:共识机制是一个群体决策的流程,群体中的个体会执行和支持对群体其他个人最好的决定。这是一个个体需要支持大多数人决定的解决方式,不管他们意愿如何。
简单地说,这仅仅是一个群体决策的方式,举例说明,10个人的小团体,要决策出对他们所有人最有利的决定,每一个人都提出一个方案,但是大多数人只会支持那个对他们最有利的方案,而其他人只能服从这个决定,不管个人意愿如何。
共识机制不仅仅是同意大多数同意的决定,同时需要同意那个对所有人都最有利的方案,因此,它是一个网络共赢的决定。区块链共识模型是在网络世界中创造平等和公平,用于达成共识的共识系统叫做共识理论。
区块链共识模型包括以下内容:
达成一致:机制将收集群体中所有一致意见
合作:群体中每个人都是为了更好地达成一致,从而群体利益一致
合作:个体都考虑群体,而不考虑他们个人利益
平等的权利:每一个个体参与者都有相同投票的权利,这意味着每一个人的投票都非常重要
参与:每个在网络中的个体都需要参与投票,没有人能够逃避或者仅仅在集体中而不投票
积极性:群体中每个成员都是相同的活跃度,没有人需要承担群体中的更多的责任
不同的共识机制:
Chapter-2: 拜占庭容错问题
拜占庭容错是一个特殊错误事项的系统,它叫拜占庭将军问题。你可以在一台分布式计算机系统中经历这种情形,通常是共识系统失灵。
系统组件处理更加相互冲突的信息,共识系统只有在所有因素都正常工作的状态下才能正常工作。因此,当其中一个系统组件失灵的时候,会导致整个系统奔溃。
失灵的组件通常是由拜占庭容错系统的不一致导致,这也是为什么这些去中心化网络的共识系统使用感并不理想。
专家称之为“拜占庭将军问题”,是否仍然令人困惑?让我用一个共识的例子来说明。
想象有一群将军,每个将军都有一支他们自己的拜占庭战士队伍。他们将要攻占一座城市,因此他们需要计划攻占的战术。
你可能会认为这是徒劳的,因为这个只是一个小问题。将军们可以通过一个信使来沟通,但是当中一些背信弃义的将军可能试图破坏整个攻占计划。
他们可以通过信使传达一些不真实的信息,甚至信使可能是敌人派来潜伏的卧底。
信使也有可能传达错误的信息蓄意破坏整个攻占计划。
这就是为什么需要小心谨慎。第一,所有将军们必须达成了一致的攻占决定;第二,保证不会出现任何的叛徒,否则整个任务都会失败。
这看起来很简单,但实际上,并不是。根据研究,平均3n+1个将军中就会有n个叛徒出现,4个将军对付一个叛徒,这也是相当棘手了。
Chapter-3:为什么我们需要共识机制?
拜占庭问题主要就是为了达成一致。即使出现一个错误,节点们也不能达成一致,或者将达成一致的难度系数提高。
另外,共识机制并不是真的解决这类型问题,它们的初衷是在任何情况下都能够达成一个特殊目标。区块链共识模型将比拜占庭更加可靠,以及容错性更高。
Chapter-4: 区块链:去中心化网络组织数据的架构
重新看一下区块链技术,获得一个整体网络的全貌 ——组织数据库的新方式 ——可以存储网络中任何变化的内容 ——所有数据都将像物质一样被放进区块中
因此,在区块链中你将不会看到任何去中心化,这是因为区块链本身不提供去中心化的环境。这也是为什么我们需要共识机制来保证我们的系统是完全去中心化的。
因此,区块链技术仅仅是创造了一个结构化的数据库,并不会执行去中心化的流程。这就是为什么区块链技术被称为去中心化网络的架构而已。
Chapter-5:共识机制:网络的灵魂
这个方式相当简洁。区块链共识模型仅仅是达成一致的方式,然而任何去中心化系统都离不开共识机制。
节点是否相互信任也不重要,网络会遵循一定的原则去达成集体的一致。因此,你需要了解所有类型的共识机制。
目前为止我们没有发现有某一种共识机制存在所有区块链技术项目中的。我们来看一下不同的共识机制。
Chapter-6:不同类型的共识机制
所有共识机制列表
Proof-of-Work 工作量证明
Proof-of-Stake 权益证明
Delegated Proof-of-Stake 委托权益证明
Leased Proof-Of-Stake 租用权益证明
Proof of Elapsed Time 过去时间证明
Practical Byzantine Fault Tolerance 实用拜占庭容错
Simplified Byzantine Fault Tolerance 简单拜占庭容错
Delegated Byzantine Fault Tolerance 委托拜占庭容错
Directed Acyclic Graphs 有向非循环图
Proof-of-Activity 活动量证明
Proof-of-Importance 重要性证明
Proof-of-Capacity 容量证明
Proof-of-Burn 燃烧证明
Proof-of-Weight 重量证明
Proof of Work工作量证明
工作量证明是第一个区块链共识机制。许多区块链项目都是用共识机制来验证交易以及产生相关区块的。
去中心化账本系统收集所有关于区块的信息,然而需要一个对所有交易区块作特殊贡献的角色。
承担这些任务的所有个体节点叫矿工,它们完成这些任务的过程叫“挖矿”。
这项技术背后最核心的原则是解决复杂的数学问题以及很容易得到答案。
这个数学问题是什么?这些数学问题就是,消耗大量计算机计算能力,去解决哈希函数(Hash Function),或者在不知道输入值的情况下找到输出值,另外一个就是整数分解(integer factorization),这也包含大量猜谜过程。
当服务器遭受DDoS攻击或者去解决共识系统难题需要消耗大量算力,这时矿工就派上用场。用数学等式解决整个问题的答案就叫哈希。
然而工作量证明有很多缺陷。由于网络增长得过于庞大,需要消耗大量算力,这个过程也增加了系统整体的敏感性。
为什么系统变得如此敏感?
区块链共识顺序依靠准确的数据和信息。然而系统速度极慢。如果一个问题非常复杂,将耗费大量时间去产生一个区块。
交易被延迟,然后整个工作流程将停滞。如果区块产生问题不能在一定时间内解决,那么区块产生将成为一个幻想。然而如果问题被系统很容易解决了,这又可能导致DDoS攻击。同时,解决方案需要被进一步仔细检查,因为不是所有节点都能够发现潜在的错误。
如果他们能够做到,网络将失去最重要的特性——透明。
工作量证明如何应用在一个区块链网络中?
首先,矿工解决所有猜谜问题,然后产生新区块,然后验证交易。无法说明一个猜谜难题有多复杂,这取决于用户数量最大值,当时算力的最小值,以及网络整体容量。
新区块在哈希函数被解决之后产生,以及每一个新产生区块都包含前一个区块的哈希函数值。通过这种方式,网络增加了保护性以及可以组织任何暴力攻击。一旦一个矿工解决了谜题,一个新区块将产生,然后交易信息被验证。
工作量证明共识机制实际被用于何处?
被应用最广泛的就是比特币,比特币是第一个采用这种共识机制的加密数字货币。区块链共识模式允许根据网络整体算力,动态改变算力谜题的难度。
产生一个新区块需要10分钟。其他加密货币例如莱特币,也是采用同样的共识机制。
另外一个工作量证明的区块链,以太坊,平台上3-4个大项目都是采用工作量证明。然而,以太坊在逐渐过渡至权益证明。
为什么区块链技术优先采用工作量证明?
为什么其他区块链项目会优先采用工作量证明?这是因为工作量证明提供DDoS攻击保护,以及降低整体权益挖矿。
工作量证明给黑客攻击造成不小的难度,因为整个系统有大量算力以及其他要求。这就是为什么虽然黑客能攻击区块链共识模型,但需要耗费大量时间,以及攻击难度会使整体成本过高。
另外,没有矿工能够左右整个网络,因为决策不是根据金钱数量,而是根据你拥有能够创造新区块的算力决定的。
工作量证明共识机制主要受到的批评?
没有一个共识机制是完美的,工作量证明也不例外。它有许多优点,同时也带来很多缺陷。主要被诟病以下方面:
消耗大量能源
区块链网络包含数百万计的用于解决哈希问题的定制芯片,这个过程要求大量的能源支撑。
目前,比特币拥有每秒200亿哈希算力。网络中矿工使用一些特殊设计的芯片,这为网络增加了一层防止僵尸网络攻击(botnet attack)的保护。工作量证明的区块链网络的保护层消耗大量密集型能源。算力的增加逐渐成为全球能耗的一个问题——矿工也面临增加大量电力成本。
解决这个问题的最好方式是寻找便宜的能源。
图片新闻
最新活动更多
-
即日-12.5立即观看>> 松下新能源中国布局:锂一次电池新品介绍
-
12月12日火热报名中>>> STM32全球线上峰会
-
12月19日立即报名>> 【线下会议】OFweek 2024(第九届)物联网产业大会
-
1月8日火热报名中>> Allegro助力汽车电气化和底盘解决方案优化在线研讨会
-
精彩回顾立即查看>> 2024工程师系列—工业电子技术在线会议
-
精彩回顾立即查看>> 【线下论坛】华邦电子与莱迪思联合技术论坛
推荐专题
发表评论
请输入评论内容...
请输入评论/评论长度6~500个字
暂无评论
暂无评论