区块链学习(7) 共识

在之前的文章中已经说过了比特币是一种去中心化的分布式账本,因此各节点之间是相互不信任的。那么比特币网络中的所有参与者如何达成对任意一个所有权的共识呢?这篇文章就会介绍如何解决这个问题。

比特币的共识由所有节点的4个独立过程相互作用而产生:

1.每个节点(挖矿节点)依据标准对每个交易进行独立验证

2.挖矿节点通过完成工作量证明,将交易记录独立打包进新区块

3.每个节点独立的对新区块进行校验并组装进区块链

4.每个节点对区块链进行独立选择,在工作量证明机制下选择累计工作量最大的区块链

同时,挖矿也会获得一定比特币的奖励,挖矿是一种激励机制,这种机制实现了去中心化的安全。有了挖矿的奖励,矿工们就有了工作的动力。。矿工通过创造一个新区块得到的比特币数量大约每四年减少一半。也就是说开始时为2009年1月每个区块奖励50个比特币,然后到2012年11月减 半为每个区块奖励25个比特币。直到2140年。届时所有的比特币全部发行完毕。那矿工们的主要收益就会来源于交易费。

工作量证明算法

矿工们通过反复计算哈希值来获得记账权,为了保证10分钟左右只有一个人可以记账,就必须要提高记账的难度,使得Hash的结果必须以若干个0开头。同是为了满足这个条件,在进行Hash时引入一个随机数变量。之前文章在介绍区块头的时候就提到过 nonce(随机数),矿工们就通过用不同 nonce值去计算区块头的哈希值直到计算所得哈希值小于难度值。难度值越小,计算的难度就越大,打个比方,不断扔一个骰子以得到小于一个特定点数的游戏。第一局小于6。只要你不扔出6, 你就会赢。然后下一局小于2。那么只能扔1才行。

最长链选择

当有两名矿工在几乎在相同的时间内,各自都算得了工作量证明解,便立即传播自己的区块到网络中,先是传播给邻近的节点而后传播到整个网络。每个收到有效区块的节点都会将其并入并延长区块链,这样就会产生两条不同的链。 比如下图产生两个区块#3458A和#3458B,节点或选择工作量最大的一条,在整个区块链网络中有些节点会接受了#3458A,有些节点接受#3458B。

收到#3458A的(挖矿)节点,会立刻以这个区块为父区块来产生新的候选区块,并尝试寻找这个候选区块的工作量证明解。同样地,接受#3458B区块的节点会以这个区块为链的顶点开始生成新块,延长这个链(下面称为B链)。假设选择#3458B区块的节点先计算出下一个区块#3459B,并广播到全网,这是下面的链比上面的链长,则选择的更长的链。

原文地址:https://www.cnblogs.com/mambakb/p/9738473.html

时间: 2024-09-30 07:31:54

区块链学习(7) 共识的相关文章

区块链上的共识机制

前言 区块链上的共识机制有多种,没有一种共识机制是完美无缺的,同时也意味着没有一种共识机制是适合所有应用场景的. PoW:Proof of Work,工作量证明 依赖机器进行数学运算来获取记账权,资源消耗相比其他共识机制高.可监管性弱,同时每次达成共识需要全网共同参与运算,性能效率比较低,容错性方面允许全网50%节点出错1. 优缺点2: 优点:完全去中心化,节点自由进出: 缺点:目前bitcoin已经吸引全球大部分的算力,其它再用Pow共识机制的区块链应用很难获得相同的算力来保障自身的安全:挖矿

[老k说区块链]区块链中的共识(1)— 免信任的共识机制

老k,柏链道捷CTO.清华阿尔山区块链研究中心高级工程师,超过17年的系统软件开发经验,在操作系统.编译器.虚拟机和符号执行方面都有实战经验.主持开发多个开眼项目,目前主要从事区块链底层系统开发工作. 这个系列的文章主要谈一下我对区块链中的共识机制的理解,欢迎跟大家一起交流.探讨. 前言 当今区块链的概念和产业已经遍布神州大地,创业言必区块链,在各种咖啡厅中你都可以听到周围的人谈论区块链,大部分从业者对区块链技术的一个认识是它是一个分布式账本技术,更有些人说区块链是各种计算机技术的组合,如P2P

区块链为什么有共识机制?

区块链中为什么需要一种共识机制呢?我们都知道加密货币大部分是采用去中心化的区块链设计,每个节点都是各处分散且平行的,因此需要有一套制度来维护系统的运作顺序与公平性,这就是共识机制设计的意义所在. 对于一些人来说,可能还不清楚共识机制是什么概念,这里我就简单来讲讲. 区块链中的共识机制简单来说,是由谁取得了一个区块链的打包权(或称记帐权),且可获取打包这个区块的奖励,或是任何人想进行破坏,就会有一定的惩罚. 第二点要讲的是分布式记账及"挖矿" 以前的中心式记账需要一个组委会来记录比分,这

区块链学习路线

2018年春节最火热的概念应该就是区块链了,从百度的莱茨狗和网易星球刷屏朋友圈,到3点钟区块链无眠群的大火, 大佬们纷纷进军区块链,不了解区块链好像错过了什么,这里把自己学习区块链过程中的一些资料进行索引,可以循序渐进的了解区块链技术及其应用. 一.目标 比特币发展历史,挖矿以及相关应用 区块链底层技术,如共识算法, 侧链技术, 密码学知识等,理解PKI基本知识和原理 研究以太坊技术,了解ERC20,能够自行开发DAPP 熟悉Hyperledger Fabric 1.0架构,了解其业务流程和设计

区块链学习(一)

从事C++服务器开发六年多了,主要是做并发服务器和游戏相关开发,区块链技术新兴起,自己也是很感兴趣,我是零基础学区块链的,给自己设定了一个规划,先读一读区块链相关的基础和概念,以及基本算法,然后用成熟的引擎做一个demo,接下来不断深入学习. 什么是区块链? 一两句话很难解释清楚,至少我自己还不能概括的很全面.我自己的理解是区块链技术包含了很多功能,如点对点传输,分布式数据存储,利用加密和共识算法实现数据的统一.区块链是多个技术的合理应用和创新,我觉得应该在以后的学习中不断去理解. 什么是比特币

区块链学习(2)--以太坊中基本概念

1.以太币单位换算.以太坊的单位,沿袭了科学界的传统,用做过杰出贡献的数学.密码学专家的名字命名.以太坊的最小单位是 Wei. Kwei(Babbage)= 10 的 3 次方 Wei Mwei(Lovelace)= 10 的 6 次方 Wei Gwei(Shannon)= 10 的 9 次方 Wei MicroEther(Szabo)= 10 的 12 次方 Wei MilliEther(Finney)= 10 的 15 次方 Wei Ether = 10 的 18 次方 Wei 2.以太坊账

区块链学习一基本知识

一.什么是区块链 在符合现实社会法律法规前提下,可治理的,依赖于密码学算法和博弈经济性设计,基于共识算法,对发生在主体间的价值创造,价值转移,价值交换,以及涉及到各个价值主体由机器驱动的业务流程,在多个对等的主体间形成的共识,从而达到共享业务状态,共享价值状态,即共享账本,加速资源配置和价值流通,最终提高生产力的目的. 区块链的本质是共识,共识才能形成公认的价值. 二.区块链的共性1.共识(consensus)区块链的本质是共识,共识才能形成公认的市场价值. 2.可验证性(validity) 3

区块链学习记录

[深度]终于把区块链的技术与应用讲清楚了(57张PPT) bitcoin 比特币源码学习笔记(一) VC编译调试比特币源码 以太坊官网 以太坊Github 以太坊go-ethereum项目源码本地环境搭建

区块链学习之:区块链初识

区块链初识: 区块链是一种特殊的分布式数据库技术的实现. 区块链的主要作用是储存信息.任何需要保存的信息,都可以写入区块链,也可以从里面读取,所以它是数据库. 其次,任何人都可以架设服务器,加入区块链网络,成为一个节点.区块链的世界里面,没有中心节点,每个节点都是平等的,都保存着整个数据库.你可以向任何一个节点,写入/读取数据,因为所有节点最后都会同步,保证区块链一致. 分布式数据库并非新发明,市场上早有此类产品.但是,区块链有一个革命性特点. 区块链没有管理员,它是彻底无中心的.其他的数据库都