从零入门区块链和比特币(第二期)

news2024/11/24 0:29:14

欢迎来到我的区块链与比特币入门指南!如果你对区块链和比特币感兴趣,但不知道从何开始,那么你来对地方了。本博客将为你提供一个简明扼要的介绍,帮助你了解这个领域的基础知识,并引导你进一步探索这个激动人心的领域。

感兴趣的话可以看看第一期👉从零入门区块链和比特币(第一期)👈

目录

共识机制的价值

分布式环境下最大的挑战:

什么是共识机制:

主流共识算法简介

工作量证明 PoW

哈希函数的安全性:

PoW的优缺点

分叉问题1

分叉问题2

分叉问题3

分叉问题4

分叉问题5

分叉问题6

股权证明(Proof of Stake,PoS)

委托股权证明 (Delegated Proof of Stake,DPoS)

去中心化概念解读

区块链去中心化

关于比特币的去中心化:

去中心化的优点:


共识机制的价值

在中心化的软件里,再复杂的问题都可以避开使用复杂的算法逻辑(当然,如果能用算法统领,代码会更加简洁、高效),在开发设计上可以省却一定的麻烦。但在分布式软件开发中,节点间的互操作,节点行为的统一管理,没有算法理论作为支撑,根本无法实现。

分布式环境下最大的挑战:

信任 无信任环境:有人会作恶,作恶后果严重,无法挽回。 弱信任环境:有人会作恶,但是后果可以挽回校正。

什么是共识机制:

简单说就是大家达成意见一致。 区块链或分布式账本技术应用的一种无需依赖中央机构来鉴定和验证某一数值或交易的机制。共识机制是所有区块链和分布式账本应用的基础

主流共识算法简介

工作量证明 PoW

不劳动者不得食。为了获得权利你必须先付出一定的劳动,而且这个劳动成果是可以证明的。

为什么选择使用Hash(散列)函数来做工作量证明

什么是Hash函数:简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。 特点 扛碰撞能力 抗篡改能力( https://www.zhihu.com/question/26762707 ) PoW的出现使得攻击者必须仔细计算他的成本

哈希函数的安全性:

1.抗碰撞性(Collision Resistance): 哈希函数应该能够抵抗碰撞攻击,即找到两个不同的输入,但它们的哈希值相同的情况。一个好的哈希函数应该使得碰撞攻击的难度非常大。
2.单向性(One-way Property): 好的哈希函数应该是单向的,即给定一个哈希值,很难找到对应的原始输入。这意味着无法从哈希值反推出原始数据。
3.快速性(Speed): 哈希函数应该能够快速计算出哈希值。在实际应用中,效率很重要,因为哈希函数可能需要在大量数据上进行操作。
4.抗碰撞性与单向性的结合: 现代哈希函数如SHA-256和SHA-3等具有良好的抗碰撞性和单向性。它们被广泛用于密码学应用,包括数字签名、消息认证码(MAC)等。
5.安全性分析: 哈希函数的安全性通常通过数学分析和实际测试来评估。密码学家会对哈希函数进行严格的数学分析,以确保其安全性。同时,也会对其进行实际测试,验证其在实际应用中的表现。

总的来说,现代哈希函数通常被认为是安全的,但在使用时仍应谨慎,避免出现意外情况。

PoW的优缺点

优点:

完全去去中心化,节点自有进出,比特币经过了进十年的发展中间经过了黑客攻击、政策限制等不利因素,仍然自我正常运行证明了该工作机制的伟大之处。

缺点:

POW依赖计算机通过数学运算获取记账权,造成了电力和计算机硬件资源消耗巨大,每次达成共识需要全网所有节点共同参与运算,运行效率低。 总的来说,把PoW与直接民主投票选取是不恰当的,虽然有全网所有的节点参与,但本质上是短跑比赛,跑得最快的赢得选举。但是Hash算法的不确定性,导致每次赛跑每个选手会受到不确定的buff或debuff,结果有很大的不确定性,所以每个选手都有机会。

分叉问题1

当有两个候选区块同时想要延长最长区块链时,分叉事件就会发生。 正常情况下,分叉发生在两名矿工在较短的时间内,各自都算得了工作量证明解的时候。两个矿工在各自的候选区块一发现解,便立即传播自己的“获胜”区块到网络中,先是传播给邻近的节点而后传播到整个网络。每个收到有效区块的节点都会将其并入并延长区块链。 如果该节点在随后又收到了另一个候选区块,而这个区块又拥有同样父区块,那么节点会将这个区块连接到候选链上。其结果是,一些节点收到了一个候选区块,而另一些节点收到了另一个候选区块,这时两个不同版本的区块链就出现了。

分叉问题2

我们看到两个矿工几乎同时挖到了两个不同的区块。为了便于跟踪这个分叉事件,我们设定有一个被标记为红色的、来自加拿大的区块,还有一个被标记为绿色的、来自澳大利亚的区块。 假设有这样一种情况,一个在加拿大的矿工发现了“红色”区块的工作量证明解,在“蓝色”的父区块上延长了块链。几乎同一时刻,一个澳大利亚的矿工找到了“绿色”区块的解,也延长了“蓝色”区块。那么现在我们就有了两个区块:一个是源于加拿大的“红色”区块;另一个是源于澳大利亚的“绿色”。这两个区块都是有效的,均包含有效的工作量证明解并延长同一个父区块。这个两个区块可能包含了几乎相同的交易,只是在交易的排序上有些许不同。

分叉问题3

比特币网络中邻近(网络拓扑上的邻近,而非地理上的)加拿大的节点会首先收到“红色”区块,并建立一个最大累计难度的区块,“红色”区块为这个链的最后一个区块(蓝色-红色),同时忽略晚一些到达的“绿色”区块。 相比之下,离澳大利亚更近的节点会判定“绿色”区块胜出,并以它为最后一个区块来延长区块链(蓝色-绿色),忽略晚几秒到达的“红色”区块。 那些首先收到“红色”区块的节点,会即刻以这个区块为父区块来产生新的候选区块,并尝试寻找这个候选区块的工作量证明解。同样地,接受“绿色”区块的节点会以这个区块为链的顶点开始生成新块,延长这个链。

分叉问题4

分叉问题几乎总是在一个区块内就被解决了 (Why?)。 网络中的一部分算力专注于“红色”区块为父区块,在其之上建立新的区块;另一部分算力则专注在“绿色”区块上。即便算力在这两个阵营中平均分配,也总有一个阵营抢在另一个阵营前发现工作量证明解并将其传播出去。 在这个例子中我们可以打个比方,假如工作在“绿色”区块上的矿工找到了一个“粉色”区块延长了区块链(蓝色-绿色-粉色),他们会立刻传播这个新区块,整个网络会都会认为这个区块是有效的,如上图所示。

分叉问题5

所有在上一轮选择“绿色”区块为胜出者的节点会直接将这条链延长一个区块。 然而,那些选择“红色”区块为胜出者的节点现在会看到两个链:“蓝色-绿色-粉色”和“蓝色-红色”。如上图所示,这些节点会根据结果将“蓝色-绿色-粉色”这条链设置为主链,将“蓝色-红色”这条链设置为备用链。这些节点接纳了新的更长的链,被迫改变了原有对区块链的观点,这就叫做链的重新共识。 因为“”区块做为父区块已经不在最长链上,导致了他们的候选区块已经成为了“孤块”,所以现在任何原本想要在“蓝色-红色”链上延长区块链的矿工都会停下来。

分叉问题6

全网将“蓝色-绿色-粉色”这条链识别为主链,“粉色”区块为这条链的最后一个区块。全部矿工立刻将他们产生的候选区块的父区块切换为“粉色”,来延长“蓝色-绿色-粉色”这条链。 从理论上来说,两个区块的分叉是有可能的,这种情况发生在因先前分叉而相互对立起来的矿工,又几乎同时发现了两个不同区块的解。然而,这种情况发生的几率是很低的。单区块分叉每周都会发生,而双块分叉则非常罕见。 比特币将区块间隔设计为10分钟,是在更快速的交易确认和更低的分叉概率间作出的妥协。更短的区块产生间隔会让交易清算更快地完成,也会导致更加频繁地区块链分叉。与之相对地,更长的间隔会减少分叉数量,却会导致更长的清算时间。

股权证明(Proof of Stake,PoS)

确实是一种不同于比特币的共识机制,其核心理念是通过持有代币来获取记账权,而不是依赖算力。在PoS中,节点的记账权重与其持有的代币数量成正比。
PoS的确有一些优点,例如节能、减少中心化风险等。然而,也存在一些批评和争议,其中包括“资本主义”的指责。一些人认为,PoS可能会导致富人更富,因为他们能够通过持有更多的代币来获得更多的记账权,从而获取更多的奖励。这可能导致权力和财富集中在少数几个大型持有者手中,加剧了财富分配不均的问题。
这种批评的程度和影响因具体的PoS系统而异,而且也有一些针对这些问题的改进和调整。例如,一些PoS系统采取了随机性或轮换机制,以降低富人攫取所有权益的风险。此外,一些PoS系统还采取了治理机制,以确保更广泛的社区参与和决策权。尽管如此,这些问题仍然是PoS系统面临的挑战之一,需要持续的关注和改进。

委托股权证明 (Delegated Proof of Stake,DPoS)

先了解一下美国的选举人制度 所有持币者先选出受托人负责签署区块:选举过程比较类似由股东会选举出董事会(101人代表),代替股东会做出日常营运决策。授权董事会后,决策会更有效率 (相较于PoW每10分钟产生一个区块,DPoS每3秒钟即可产生一个区块。) 册成为候选受托人需要支付一笔保证金(约10 XTS),就像是参与民意代表选举前缴纳的保证金一样,一般来说担任受托人约两周后才可达到损益平衡,这促进了受托人的稳定性,确保至少会挖满两周的矿。

惩罚机制为:不按排程产生区块的节点将在下一轮被投票剔除,也会被没收之前缴纳的保证金。 缺点: 虽然恶意的节点将在下一轮投票被踢出,但单个恶意区块在短期仍有可能是有效的状态。

去中心化概念解读

区块链去中心化

V神认为区块链去中心化,有3个维度:

架构去中心化(Architectural (de)centralization):系统由多少机器组成,能承受多少机器不在线服务依然维持。

政治去中心化(Political (de)centralization):组成系统的集群由多少人控制

逻辑去中心化(Logical (de)centralization): 从这个系统所设计的接口和数据结构来看,它更像一台完整的单一设备,还是更像一个由无数单位组成的集群?

传统的去中心化理解

关于比特币的去中心化:

架构去中心化:不存在单点故障

政治去中心化:算力面前人人平等

逻辑中心化: 每个区块链网络都存在自己的一个普遍性的共识,同时系统的行为更像一台单独的计算机。

去中心化的优点:

容错性:去中心化系统不太可能因为某一个局部的意外故障而停止工作,因为它依赖于许多独立工作的组件,它的容错能力更强。

抗攻击性:对去中心化系统进行攻击破坏的成本相比中心化系统更高。从经济效益上来说,这是抢劫一个房子和抢劫一片村庄的差别。

抗勾结性: 去中心化系统的参与者们,很难相互勾结。而传统企业和政府的领导层,往往会为了自身的利益,以损害客户、员工和公众利益的方式,相互勾结。(说中文的矿场 vs 说英文的开发者)

结语:看我这么努力的份上,麻烦点赞收藏加关注,有问题在评论区call爆我,我一定会改的。谢谢!

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

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

相关文章

四:物联网ARM开发

一:ARM体系结构概述 1:控制外设led灯还有一些按键这些就要用到gpio,采集传感器的数据需要adc进行转化数据格式,特殊的外设和传感器是通过特殊的协议接口去进行连接的比如一些轴传感器和主控器的连接是通过spi,IIC 控制…

Python+Django网站指纹信息侦测探查

程序示例精选 PythonDjango网站指纹信息侦测探查 如需安装运行环境或远程调试,见文章底部个人QQ名片,由专业技术人员远程协助! 前言 这篇博客针对《PythonDjango网站指纹信息侦测探查》编写代码,代码整洁,规则&#…

Docker与Linux容器:“探索容器化技术的奥秘”

目录 一、Docker概述 二、容器技术的起源: 三、Linux容器 四、Docker的出现 五、Docker容器特点: 六、Docker三大概念: 容器: 镜像: 仓库: 七、Docker容器常用命令 一、Docker概述 在云原生时代&…

玩机进阶教程------高通刷机 纯adb脚本操作刷写分区 备份分区的一些简单操作步骤解析

目前来说大多数刷机平台都是使用官方提供的工具。但一般这类工具刷写校验较多。例如小米刷机平台miflash和高通qpst平台。都对于电脑系统刷写环境有一定的要求。而且平台刷写校验md5等等。虽然可以通过修改脚本去除类似校验。但还是有必要了解一些纯adb脚本来刷写9008固件的方法…

智能变频三模正弦波控制器

智能变频三模正弦波控制器 前言一、图片介绍总结 前言 不敢动,完全不敢动。多做笔记,完全了解之后再说吧 一、图片介绍 轮毂电机 主角登场 淘宝关于这款控制器的介绍 当然不同的型号功能不同 学习线插上就会转,可以使用继电器控制通断。 电门…

[论文阅读] 3D感知相关论文简单摘要

Adaptive Fusion of Single-View and Multi-View Depth for Autonomous Driving 提出了一个单、多视图融合深度估计系统,它自适应地集成了高置信度的单视图和多视图结果 动态选择两个分支之间的高置信度区域执行融合 提出了一个双分支网络,即一个以单…

本地生活服务平台哪家强,怎么申请成为服务商?

当下,本地生活服务已经成为了多家互联网大厂布局的重要板块,在巨大的市场需求和强大的资本加持下,不少人都看到了本地生活服务平台广阔的前景和收益空间。在此背景下,许多普通人都跃跃欲试,想要成为本地生活服务商&…

Spark AQE 导致的 Driver OOM问题

背景 最近在做Spark 3.1 升级 Spark 3.5的过程中,遇到了一批SQL在运行的过程中 Driver OOM的情况,排查到是AQE开启导致的问题,再次分析记录一下,顺便了解一下Spark中指标的事件处理情况 结论 SQLAppStatusListener 类在内存中存…

怎么用PHP语言实现远程控制电器

怎么用PHP语言实现远程控制电器呢? 本文描述了使用PHP语言调用HTTP接口,实现控制电器,通过控制电器的电源线路来实现电器控制。 可选用产品:可根据实际场景需求,选择对应的规格 序号设备名称厂商1智能WiFi通断器AC3统…

Vue从0-1学会如何自定义封装v-指令

文章目录 介绍使用1. 理解指令2. 创建自定义指令3. 注册指令4. 使用自定义指令5. 自定义指令的钩子函数6. 传递参数和修饰符7. 总结 介绍 自定义封装 v-指令是 Vue.js 中非常强大的功能之一,它可以让我们扩展 Vue.js 的模板语法,为 HTML 元素添加自定义行…

Kubernetes学习-核心概念篇(一) 初识Kubernetes

🏷️个人主页:牵着猫散步的鼠鼠 🏷️系列专栏:Kubernetes渐进式学习-专栏 🏷️个人学习笔记,若有缺误,欢迎评论区指正 目录 1. 前言 2. 什么是Kubernetes 3. 为什么需要Kubernetes 3.1. 应…

JAVA实现easyExcel批量导入

注解类型描述ExcelProperty导入指定当前字段对应excel中的那一列。可以根据名字或者Index去匹配。当然也可以不写,默认第一个字段就是index0,以此类推。千万注意,要么全部不写,要么全部用index,要么全部用名字去匹配。…

网络安全实训Day15

写在前面 电子垃圾,堂堂恢复连载。本来不想分天数梳理了,但是最后要写实训报告,报告里还要有实训日记记录每日学的东西,干脆发这里留个档,到时候写报告提供一个思路。 网络空间安全实训-渗透测试 渗透测试概述 定义 一…

python flask 假死情况处理+https证书添加

前言 当使用flask编写了后台程序跑在服务器端的时候,有时候虽然后台中显示在运行,但是页面无法访问,出现这个情况可以使用如下方法修改代码,进而防止假死,另外记录下flask下证书的添加。 假死处理 出现进程存在&…

(MSFT.O)微软2024财年Q3营收619亿美元

在科技的浩渺宇宙中,一颗璀璨星辰再度闪耀其光芒——(MSFT.O)微软公司于2024财政年度第三季展现出惊人的财务表现,实现总营业收入达到令人咋舌的6190亿美元。这一辉煌成就不仅突显了微软作为全球技术领导者之一的地位,更引发了业界内外对这家…

华为OD机试 - 跳格子3 - 动态规划(Java 2024 C卷 200分)

华为OD机试 2024C卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试(JAVA)真题(A卷B卷C卷)》。 刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试…

FORM调用标准AP\AR\GL\FA界面

EBS FORM客户化界面有时候数据需要追溯打开AP\AR\GL\FA等界面: 一种打开日记账的方式: PROCEDURE SHOW_JOURNAL ISparent_form_id FormModule;child_form_id FormModule; BEGINclose_jrn;parent_form_id : FIND_FORM(:SYSTEM.CURRENT_FORM);COPY(TO…

代码随想录算法训练营DAY38|C++动态规划Part.1|动态规划理论基础、509.斐波那契数、70.爬楼梯、746.使用最小花费爬楼梯

文章目录 动态规划理论基础什么是动态规划动态规划的解题步骤DP数组以及下标的含义递推公式DP数组初始化DP数组遍历顺序打印DP数组动态规划五部曲 动态规划应该如何debug 509.斐波那契数什么是斐波那契数列动态规划五部曲确定dp数组下标以及含义确定递推公式dp数组如何初始化确…

免费的单片机物联网MQTT平台选择

目的是多设备接入中控,平台只做转发。 选择巴法云:巴法科技&巴法云-巴法设备云-巴法物联网云平台 clientId是私钥uid: 多设备 clientId 填同一个 uid 都是可以的。平台应该是加了后缀区分。 支持自定义topic,操作简单&#x…

关于我在 uniapp 开发过程中遇到的问题(更新中...)

目录 uniapp 勾选自带的隐私政策 出现的问题 是否忽略版本兼容检查提示 勾选了uniapp的消息推送 打包后弹出 push module was not added when packaging, please refertohttps://ask.dcloud.net.cn /article/283 关于uniapp的真机调试 一直等待问题 或者 正在建立链接 在…