首页 > 编程语言 >《分布式技术原理与算法解析》学习笔记Day05

《分布式技术原理与算法解析》学习笔记Day05

时间:2023-02-08 19:25:59浏览次数:44  
标签:PoW PoS Day05 算法 记账 区块 节点 分布式

分布式共识

什么是分布式共识?

分布式共识就是在多个节点均可独自操作或记录的情况下,使得所有节点针对某个状态达成一致的过程。

有哪些常见的分布式共识算法?

一般有3种分布式共识算法:

  • PoW(Proof-of-Work,工作量证明)
  • PoS(Proff-of-Stake,权益证明)
  • DPoS(Delegated Proof of Stake,委托权益证明)

什么是区块链?

区块链是一种链式数据结构,由包含交易信息的区块通过哈希指针、根据时间顺序连接而成,也是一种分布式数据库。区块是区块链的主要组成部分,每个区块由区块头和区块内容数据构成。区块头记录了时间戳,并用于保证区块链的连接性,区块内容数据中包含了多条交易信息。

PoW

分布式共识包括两个关键点:获得记账权和所有节点或服务器达成一致。

PoW算法十一每个节点或者服务器的计算能力(即算力)来竞争记账权的机制,它是一种使用工作量证明机制的共识算法。也就是说,谁的计算力强、工作能力强,谁获得记账权的可能性就越大。

PoW算法获取记账权的原理:利用区块index、前一个区块的哈希值、交易的时间戳、区块数据和nonce值,通过SHA256哈希算法计算出一个哈希值,并判断前k个值是否都为 0。如果不是则递增nonce值,重新按照上述方法计算,如果是,则本次计算的哈希值为要解决的题目的正确答案。谁先计算出正确答案,谁就获得这个区块的记账权。

这里的nonce值是用来找到一个满足哈希值的数字,k是哈希值前导零的个数,标记了计算的难度,0越多计算难度越大。

PoW算法的优点是相对公平、有容错机制、完全去中心化、简单易懂、容易实现。

PoW算法的缺点是不适合私有链或者联盟链,共识效率很低,每秒完成交易量少,存在阻塞和资源浪费问题,交易的服务费高。

比特币采用的是PoW共识算法。

PoS

PoS的核心原理是由系统权益代表算力来决定区块记账权,拥有的权益越大获得记账权的概率就越大。

这里的权益是指每个节点占有货币的数量和时间,而货币就是节点所获得的奖励。PoS算法充分利用了分布式在线记账重的奖励,鼓励“利滚利”。

基于PoS算法获得区块记账权的方法与机遇PoW的方法类似,不同之处在于:节点计算获取记账权的方式不一样,PoW是利用区块的index、前一个区块的哈希值、交易的时间戳、区块数据和nonce值,通过SHA256哈希算法计算出一个哈希值,并判断前k个值是否都为0。而PoS是根据节点拥有感的股权或者权益进行计算的,每个节点在计算自己记账权时,通过计算自己的股权或权益来评估,如果发现自己的权益最大,则将自己的区块广播给其他节点。

PoS将算力竞争转变为权益竞争。与PoW相比,PoS不需要消耗大量的电力就能保证区块链网络的安全性,同时也不需要在每个区块中创建新的货币来激励记账者参与当前网络运行,这也缩短了达成共识所需要的时间。

PoS算法中持币越多或者持币越久,币龄就会越高,持币人就越容易挖到区块并得到激励,而持币少的人基本没有机会,这样整个系统的安全性实际上会被持币数量较大的一部分人掌握,容易出现垄断现象。

PoS算法的优点是资源消耗低、达成共识周期短、交易服务费低。

PoS算法的缺点是每秒完成的交易量较低、容易被垄断以及无法处理分叉链的情况。

以太坊采用的是PoS共识算法。

DPoS

在DPoS算法中,通常会选出K个受托节点,它们的权利是完全相等的。受托节点之间争取记账权也是根据算力进行竞争的。只要受托节点提供的算力不稳定、计算机宕机或者利用手中的权利作恶,随时可以被握着货币的普通节点投票踢出整个系统,而后备的受托节点可以随时顶上去。

DPoS是在PoW和PoS的基础上改进的,它的优点在于:

  1. 由投票选举出的若干信誉度高的受托人记账,解决了所有节点均参与竞争导致消息量大,达成一致周期长灯问题。
  2. 每隔一段时间会调整受托人,避免受托人造假和独权。

DPoS算法的优点在于能耗更低、每秒完成交易量高、无垄断情况、交易服务费低、更加安全。
DPoS算法的缺点:持币人投票的积极性不高。

DPoS算法的缺点在于:故障问题解决效率低,易出现安全隐患,同时持币人投票的积极性并不高。

以太股、EOS等使用的是DPoS。

标签:PoW,PoS,Day05,算法,记账,区块,节点,分布式
From: https://www.cnblogs.com/wing011203/p/17103002.html

相关文章

  • 分布式缓存上云手册,架构师人手一份,赶紧收藏!
    本文我们将探讨云上的分布式缓存,以及为什么它能够适用于高数据量和高负载的环境。分布式缓存是基于云的应用程序的一个重要方面,无论是企业内部、公共或混合云环境。它促进了......
  • 快速幂算法
    <center>基础算法</center>快速幂快速幂就是快速算底数的n次幂。其时间复杂度为O(log₂N),朴素的直接乘的复杂度为O(N),显然快速幂效率有很大的提高。解决问题:计算一个......
  • 前端页面分页算法 js+php
    实现效果: 实现思路:通过当前选中页码数值和总页码数量,计算返回结果,以数组的形式返回。遍历数组内容,完成页面渲染。 php算法:/***getNavigatePage**@......
  • 算法基础
    参考:csdn,沓沓781,http://t.csdn.cn/HG47y 函数基础定义一个函数包括:返回类型、函数名称、形参列表、函数体例如:intsum(intn){intsum=0;for(......
  • 感知机:学习算法之原始形式【统计学习方法】
    概述学习问题训练数据集:$$T={(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)}$$其中,$x_i\in\mathcalX\subseteq\boldsymbolR^n,y_i\in\mathcalY={+1,-1}$损失函数:$$L(w,b)=\su......
  • 程序员必备的数据库知识 2:Join 算法
    前言连接(Join)是关系数据库重要特性,它和事务常被作为数据库与文件系统的两个重要区别项。程序员江湖一直流传着某某baba的神秘开发宝典,其中数据库部分有重要一条避免过多表......
  • MFS分布式文件系统安装配置【转】
    一、地址规划   主控服务器MasterServer:192.168.11.100      安装Master角色   元数据日志服务器MetaLoggerServer:192.168.11.103     ......
  • 【经典算法】双指针(尺取法):爱,是双向奔赴,还是你追我赶?
    一、前言双指针法又称尺取法,顾名思义,在区间操作时,使用两个指针同时遍历区间,从而实现高效操作。两个指针,就像是一男一女,他们遍历区间的过程,又何尝不像是一对男女彼此追求爱......
  • 程序员必备的数据库知识 2:Join 算法
    前言连接(Join)是关系数据库重要特性,它和事务常被作为数据库与文件系统的两个重要区别项。程序员江湖一直流传着某某baba的神秘开发宝典,其中数据库部分有重要一条避免过多......
  • 分布式系统02—分布式事务解决方案
    二阶段提交二阶段提交(Two-phaseCommit)是指,在计算机网络以及数据库领域内,为了使基于分布式系统架构下的所有节点在进行事务提交时保持一致性而设计的一种算法(Algorithm)。......