比特币的共识协议

news2025/1/13 10:00:45

目录

前言

一、铸币交易

     1.铸币权

     2.铸币交易(coinbase tx)

3.输入和输出

二、小型的区块链

1.见下图所示

2.哈希指针

3.双花攻击

三、块头块身,全节点轻节点

1.块头(block head)

2.块身

3.全节点full node(fully validating node)

4.轻节点light(weight) node

四、共识协议

1.分布式的共识(distributed consensus)

2.hash rate

3.比特币中的共识协议Consensus in Bitcoin

4.两个等长的分叉

5.比特币铸币规则


前言

     本文为整理记录学习比特币的共识协议的笔记。图片清晰度可能不够高,希望这不影响您的观看体验。如果有任何错误,请随时指出,感谢您的阅读

一、铸币交易

     1.铸币权

          通过某种方法,用户A获得了发行货币的权利

     2.铸币交易(coinbase tx)

          A把钱转给B,需要有A的签名和B的地址 

          在比特币系统中,收款的地址是通过公钥推算(用B的公钥取哈希,然后经过转换得到)

          交易过程中,A的公钥要让B和所有节点知道

          原因:验证A的签名,A用私钥签名,B用公钥验证 交易时,A要用B的公钥加密,收到后B用自己的私钥解密

          在交易中可以避免有人故意伪造A的签名:coinbase tx(左边那个框框)的输出存有A的公钥的哈希它一定要=转账交易内的A的公钥,否则交易无法进行

以下图片是一个铸币交易

简单解释如下图

     把交易写在区块链里,然后A拿到钱后给B和C各5个比特币 该交易要有A的签名,证明是经过A同意的,同时这个交易还要说明从哪而来

3.输入和输出

     比特币系统中,每个交易都包含输入和输出两个部分

     输入部分说明币的来源,输出部分给出收款人的公钥的哈希

     比特币系统内部没有提供查询某个人的比特币地址的功能,要通过其他渠道 比如:某个电商网站它接受比特币支付,那它就会在网站上公开它的地址(公钥)

二、小型的区块链

1.见下图所示

2.哈希指针

图中有两种哈希指针

     一种是连接各个区块,串起来变成一个 。一种是指向前面某个交易(图中后面的c指向前面的c)

     这二种指针说明币的来源是有记录的,同时可以防范双花攻击

3.双花攻击

     double spend attack 简单来讲是,一笔钱被花了两次

三、块头块身,全节点轻节点

1.块头(block head)

包含宏观信息

       ①比特币的版本协议(version)

       ②区块链中指向前一个区块的指针(hash of previous block number)

       ③默克尔树的根哈希值(Merkle root hash)(保证块身里面的交易列表无法被篡改)

       ④挖矿的难度目标域值(target)

       ⑤随机数(nonce)

       ⑥H(block header)≤target中这个目标域值的编码(nBits)

2.块身

     交易列表(transaction list)

3.全节点full node(fully validating node)

     数目少,保存区块链的所有信息,验证每一个交易

4.轻节点light(weight) node

     数目多,不能独立验证交易的合法性,比如是否是双花攻击

四、共识协议

1.分布式的共识(distributed consensus)

     简单例子:分布式的哈希表(distributed hash table)

     系统里有很多机器,共同维护一个全局的哈希表。此时需要取得的共识内容是key-value pair(键值对),比如有的人在a这台机器插入value pair('a'→12345),别人在另一台机器也能读出

     拓展:CAP Theorem  

     3个性质--C:Consistency  A:Availability P:Partition tolerance  

     任何一个分布式系统,比如说分布式哈希表,三个性质最多只能满足两个

2.hash rate

     比特币中的共识是去中心化账本里的内容(内容由有记账权的节点决定)获得记账权方法:靠算力 (puzzle friendly),每秒钟可以试多少nonce,称为hash rate

     账户数量的多少不会影响hash rate,也不会受到女巫攻击的影响

     比特币争夺记账权的过程:挖矿mining

     争夺记账节点的人:矿工miner

     女巫攻击(sybil attack):在投票中,故意弄出超过总数一半的账号,操纵投票结构

3.比特币中的共识协议Consensus in Bitcoin

     存在的原因:在比特币系统中,某些节点可能是有恶意的

     存在恶意节点如何设置共识协议:按照算力来决定,每个节点都可以在本地组装出一个候选区块把它认为合法的交易放进,然后开始尝试nonce值。成功的获得记账权

4.两个等长的分叉

如下图

     如果两个节点同时获得记账权,会出现两个等长的分叉 。此时,该接收哪个呢?

     比特币缺省情况下,每个节点接收自己最早收到的那个节点,不同节点根据在网络中位置的不同

     接受/不接收区块 接收区块:沿着你的区块往下继续扩展。不接收则反之

     出现两个节点同时获得记账权的情况,这种等长的临时性的分叉会维持一段时间,直到某个节点胜出 胜出的是最长合法链,输掉的是orphan block,会被丢弃掉

5.比特币铸币规则

     获得记账权的节点可以决定哪些交易被写进下一个区块。但是比特币想要合法的交易都可以被写进。比特币协议中就规定获得记账权的节点在发布的区块里,可以有一个特殊的交易(铸币交易),在该交易里可以发布一定数量的比特币

     铸币交易是比特币系统中发行新的比特币的东西

     唯一方法:最初每次能造50比特币(初次奖励),但在21万比特币后,奖励减半

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1833477.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

操作系统入门系列-MIT6.828(操作系统工程)学习笔记(六)---- 初窥操作系统启动流程(xv6启动)

系列文章目录 操作系统入门系列-MIT6.S081(操作系统)学习笔记(一)---- 操作系统介绍与接口示例 操作系统入门系列-MIT6.828(操作系统工程)学习笔记(二)----课程实验环境搭建&#x…

数据库系统概论(个人笔记)(第四部分)

数据库系统概论(个人笔记) 文章目录 数据库系统概论(个人笔记)4、中间的SQL4.1 连接表达式4.2 视图4.3 事务4.4 完整性约束4.5 SQL数据类型和模式4.6 SQL中的索引定义4.7 授权 4、中间的SQL 4.1 连接表达式 Join Expressions Join…

10.无代码爬虫软件做网页数据抓取流程——工作流程设置与数据预览

首先,多数情况下免费版本的功能,已经可以满足绝大多数采集需求,想了解八爪鱼采集器版本区别的详情,请访问这篇帖子:https://blog.csdn.net/cctv1123/article/details/139581468 八爪鱼采集器免费版和个人版、团队版下…

视频监控平台:通过网络SDK对TCL网络摄像机进行PTZ控制 的源代码介绍及分享

目录 一、视频监控平台介绍 (一)概述 (二)视频接入能力介绍 (三)功能介绍 二、TCL网络摄像机 (一)360度全景自动旋转: (二)高清夜视和全彩…

五、路由协议

目录 一、为何划分子网? 二、静态路由 三、OSPF 3.1、OSPF原理 3.1.1、ospf四步过程 3.2、OSPF区域划分 3.2.1、为什么划区域? 3.2.2、划分规则 3.3、OSPF参数 3.4、五种报文 3.4.1、hello报文 3.4.2、DD报文 3.4.2、LSR、LSU、LSAck报文 3…

黄仁勋:下一波AI的浪潮是物理AI

B站:啥都会一点的研究生公众号:啥都会一点的研究生 最近AI圈又发生了啥? 快手视频生成大模型“可灵”开放邀测,效果对标 Sora 在OpenAl文生视频大模型Sora发布后,国内企业争相入局,快手视频生成大模型可…

MySQL之优化服务器设置和复制(一)

优化服务器设置 操作系统状态 CPU密集型的机器 CPU密集型服务器的vmstat输出通常在us列会有一个很高的值,报告了花费在非内核代码上的CPU时钟;也可能在sy列有很高的值,表示系统CPU利用率,超过20%就足以令人不安了。在大部分情况下&#xff…

pyqt 鼠绘椭圆 椭圆标注

目录 pyqt 椭圆标注 四个方向可以调整,调整时,另一端固定,只调整当前端,椭圆参数保存加载json pyqt 画椭圆中心点固定,调整是,两端一起调整。 pyqt 椭圆标注 四个方向可以调整,调整时,另一端固定,只调整当前端,椭圆参数保存加载json import sys import json from …

React@16.x(32)useDebugValue

目录 1&#xff0c;介绍2&#xff0c;作用 1&#xff0c;介绍 从一个例子开始&#xff1a; export default function App() {const [n, setN] useState(0);const refH1 useRef();useEffect(() > {console.log("父组件");});return <h1 ref{refH1}>{n}&l…

C++语法02 输出语句与分隔

目录 标准输出语句 题目&#xff1a;小知的位置 小知的位置参考代码 如何输出算式的结果&#xff1f; 题目&#xff1a;难题 难题参考代码 如何分隔多个算式输出的内容&#xff1f; 题目&#xff1a;两道题目 两道题目参考代码 标准输出语句 标准输出指令&#xff1a…

一小时搞定JavaScript(1)——JS基础

前言,本篇文章是依据bilibili博主(波波酱老师)的学习笔记,波波酱老师讲的很好,很适合速成!!! 文章目录 1.基本语法1.1 JS语言的特点1.2 创建一个JS文件1.3 输入与输出1.4 变量1.4.1 命名规则1.4.2 变量声明数字类型字符串类型布尔类型未定义类型 1.4.3 类型转换隐式转换显示转…

【html】如何利用id选择器实现主题切换

今天给大家介绍一种方法来实现主题切换的效果 效果图&#xff1a; 源码&#xff1a; <!DOCTYPE html> <html lang"zh"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initia…

【Linux 12】进程控制

文章目录 &#x1f308; Ⅰ 进程创建01. fork 函数介绍02. 写时拷贝03. fork 常规用法04. fork 调用失败的原因 &#x1f308; Ⅱ 进程终止01. 进程退出场景02. 常见退出方法 &#x1f308; Ⅲ 进程等待01. 进程等待必要性02. 进程等待的方法2.1 wait 方法2.2 waitpid 方法 03.…

AI大模型浪潮席卷而来,你准备好乘风破浪成为行业翘楚了吗?

揭秘AI大模型浪潮&#xff1a;你准备好乘风破浪了吗&#xff1f; 在繁华的都市中&#xff0c;程序员小李一直默默耕耘在代码的海洋中。然而&#xff0c;随着AI大模型技术的迅猛发展&#xff0c;他发现自己仿佛置身于一场没有硝烟的战争中。身边的同事纷纷掌握了新技术&#xf…

AI绘图StableDiffusion最强大模型盘点 - 诸神乱战

玩了这么久的StableDiffusion&#xff0c;Civitai和HF上的各种大模型和LORA也都基本玩了个遍。 自己也一直想做一期盘点&#xff0c;选出我自己心中最好或者最有意思的那几个大模型。 毕竟每次看着模型库里几十个大模型&#xff0c;是个人都遭不住。 我在这篇文章中&#xf…

C++之模板(一)

1、为什么需要模板 将具有相同逻辑的一段代码提供一份模板&#xff0c;当我们需要处理不同类型的时候&#xff0c;可以通过数据类型当作参数来传递&#xff0c;从而实例化出对应类型的处理版本。 2、模板的定义 也是一种静态多态。 3、模板的分类 4、函数模板 5、函数模板的使…

大模型企业落地:汽车行业知识大模型应用

前言 在当今这个信息爆炸的时代&#xff0c;知识管理成为了企业提升核心竞争力的关键。特别是在汽车行业这样一个技术密集、信息量庞大的领域&#xff0c;如何高效管理和利用知识资源&#xff0c;成为了每个企业必须面对的挑战。 汽车行业的知识管理痛点 汽车行业作为现代工…

百货商场:打造品质生活

走进我们的百货商场&#xff0c;仿佛置身于一个五彩斑斓的梦幻世界。百货&#xff0c;不仅仅是购物的场所&#xff0c;更是一种品质生活的体验。 在这里&#xff0c;您可以找到最适合自己的商品选择。从家居用品到时尚服饰&#xff0c;从美食佳肴到美妆护肤&#xff0c;每一样商…

多态深度剖析

前言 继承是多态的基础&#xff0c; 如果对于继承的知识还不够了解&#xff0c; 可以去阅读上一篇文章 继承深度剖析 基本概念与定义 概念&#xff1a; 通俗来说&#xff0c;就是多种形态。具体点就是去完成某个行为&#xff0c; 当不同的对象去完成时会产生出不同的状…

数据资产入表-数据分级分类标准-数据分类

2021年9月1日&#xff0c;《中华人民共和国数据安全法》正式施行&#xff0c;明确规定“国家建立数据分类分级保护制度”&#xff0c;数据分级分类是数据安全管理的重要措施&#xff0c;它涉及到对数据资产的识别、分类和定级&#xff0c;是保障数据合规的前提。 数据分类&…