首页 > 其他分享 >区块链的基石:工作量证明机制,如何驱动数字货币革命?

区块链的基石:工作量证明机制,如何驱动数字货币革命?

时间:2024-07-21 19:08:15浏览次数:8  
标签:PoW token 钱包 工作量 区块 基石 节点 挖矿

1 工作量证明(PoW,Proof of Work)

为防止恶意攻击,节点需完成复杂计算任务(即“挖矿”)来证明他们的工作量。这是一种共识机制,确保只有合法的区块可被添入区块链。

第一代共识机制,比特币的基础,即“按劳取酬”,你付出多少工作量,就获得多少报酬。

网络世界里,劳动就是你为网络提供的计算服务(算力x时长),提供这种服务的全过程就是“挖矿”,能力越强获得越多。

2 PoW机制

主要是通过竞争记账的方式来解决区块链网络中各个节点的一致性问题,其原理:

  • 区块链中的每个节点都能自由参与数据处理,即打包区块
  • 为保证网络中的各个节点能达成一致,PoW就规定,当一笔交易产生后,每一个想要记账的节点都需要依靠自己的计算能力与他人竞争、争夺记账的权利
  • 最终,获得记账权的人,他所打包的区块会连接到区块链的链上,同时他处理的数据,也会被全网的其他节点记入各自的小账本中

PoW算法中最基本的技术原理是使用哈希法。假设求哈希值Hash(r),若原始数据为r(raw),则运算结果为R(Result)。

\[R=Hash(r) \]

哈希函数Hash()的特性是,对任意输入值r,得出结果R,并且无法从R反推回r。

当输入的原始数据r变动1比特时,其结果R值完全改变。在比特币的PoW算法中,引入算法难度d和随机值n,得到以下公式:

\[R_d=Hash(r+n) \]

该公式要求在填入随机值n的情况下,计算结果Rd的前d字节必须为0。

由于哈希函数结果的未知性,每个矿工都要做大量运算之后,才能得出正确结果,而算出结果广播给全网之后,其他节点只需要进行一次哈希运算即可校验。

PoW算法就是采用这种方式让计算消耗资源,而校验仅需一次。

3 PoW模型

token每一笔交易都会通过广播的方式,把交易内容发送到所有的节点。

我们知道计算Hash值的时候是包含Data数据的,总不能一笔交易就是一个Block,所以比特币还有一些其他的规定。如每个区块至少包含500笔交易,每笔交易至少以250字节,每一个区块的大小上限是2MB等。

所以挖矿的过程就是启动挖矿软件,成为一个节点,能够接收到系统中交易的广播消息,为了得到记账权当收到500笔交易的时候就开始执行上面工作量证明过程的计算。

当计算出满足条件的Hash值时就广播告诉其他节点,如果是第一个完成的就会获得记账权,也会获得奖励。

当然,其他节点也会做一下验证,因为Block中有Nonce值,所以只需要做一次Hash计算就可以了,这让验证变得非常容易。

4 优点

省资源

不需要挖矿,不需要大量耗费电力和能源。

更去中心化

相对于比特币等PoW类型的token,更加去中心化,相比PoW算法的51%算力攻击,PoS需要购买51%的token,成本更高,没有攻击意义。

避免通货膨胀

PoS机制的加密货币按一定的年利率新增货币,可以有效避免紧缩出现,保持基本稳定。

5 缺点

POS会面临发token的问题,起初只有创世块上有token,意味着只有这个节点可以挖矿,所以让token分散出去才能让网络壮大,所以早期采取的是POW+POS,即第一阶段POW挖矿,第二阶段POS挖矿,后来ERC20合约token出现后,可以只存在POS的挖矿形式。

开发者作恶:纯PoS机制的token,只能通过IPO的方式发行,这就导致“少数人”(通常是开发者)获得大量成本极低的token,很有可能造成大面积的抛售。

币龄其实就是时间,一旦挖矿者囤积一定的token,很久很久之后发起攻击,这样将很容易拿到记账权。

矿工可囤积token从而导致货币流通困难。

POS面临的最严重的一个问题就是无成本利益问题,在PoS系统中做任何事几乎没有成本,比如在PoS系统上挖矿几乎没有成本,这也就意味着分叉非常方便。

6 比特币钱包

关于比特币钱包,有两个概念,一个是指"钱包应用"丹一个是指"存放私钥的文件"。我们只需要知道钱包中有密钥就可以了。

钱包可分两大类:

  • 第一类是非确定性钱包,就是一对密钥,密钥之间没有关联性
  • 第二类是确定性钱包,所有的密钥都是由一个密钥生成的,这个密钥被称为钱包的种子sed)

使用确定性钱包只需要记住种子就可以,通过相同的种子会生成相同的密钥

通过种子生成密钥的方式也有很多种,最常使用的就是树状结构

通过这种方式生成的钱包就是我们常用的HD 钱包(分层确定性钱包)

7 钱包原理

生成助记词:

  1. 生成一个长度为 128~256 位 (bits) 的随机序列(熵)
  2. 取熵哈希后的前n位作为校验和(n=熵长度/32)
  3. 随机序列+校验和
  4. 把步骤三得到的结果每 11 位切割
  5. 步骤四得到的每 11 位字节匹配词库的一个词
  6. 步骤五得到的结果就是助记词串

关注我,紧跟本系列专栏文章,咱们下篇再续!

作者简介:魔都架构师,多家大厂后端一线研发经验,在分布式系统设计、数据平台架构和AI应用开发等领域都有丰富实践经验。

各大技术社区头部专家博主。具有丰富的引领团队经验,深厚业务架构和解决方案的积累。

负责:

  • 中央/分销预订系统性能优化
  • 活动&券等营销中台建设
  • 交易平台及数据中台等架构和开发设计
  • 车联网核心平台-物联网连接平台、大数据平台架构设计及优化
  • LLM Agent应用开发
  • 区块链应用开发

目前主攻市级软件项目设计、构建服务全社会的应用系统。

参考:

本文由博客一文多发平台 OpenWrite 发布!

标签:PoW,token,钱包,工作量,区块,基石,节点,挖矿
From: https://www.cnblogs.com/JavaEdge/p/18314839

相关文章

  • 【软件工程造价师必修课:概念篇】6.软件开发工作量评估方法
    根据调整后软件开发规模,评估工作量,公式如下:AE=(S*PDR)*SWF*RDF式中:AE:调整后的评估工作量,单位为人时;S:调整后规模,单位为功能点;PDR:功能点耗时率,单位为人时每功能点。PDR的取值可参见调整因子列表;SWF:软件因素调整因子,包含业务领域、应用类型及质量特性调整因子,上述调整因子的......
  • “构建以太坊超级集群:解锁区块链应用新纪元,引领未来金融科技潮流!“
    一、环境准备1.虚拟机系统为ubuntu22.042.将ubuntu的软件镜像源更换为国内的镜像源(命令如下)sudovim/etc/apt/source.list(vim下载与使用自行百度)将文件内容清空,然后复制下方代码粘贴,保存退出即可。debhttps://mirrors.aliyun.com/ubuntu/jammymainrestrictedu......
  • 基于springboot的教师工作量管理系统 毕业设计 springboot+Vue+mysql
    介绍在教育领域,对教师工作量的准确评估和有效管理对于保障教学质量、合理分配资源以及激励教师积极性具有至关重要的意义。然而,传统的教师工作量管理方式往往依赖于手工记录和繁琐的统计,容易出现误差、效率低下且缺乏透明度。本基于SpringBoot的教师工作量管理系统旨在为......
  • C++ 数据抽象:构建高效、可维护的代码基石
    C++数据抽象:构建高效、可维护的代码基石在软件开发中,数据抽象是一个核心概念,它允许我们隐藏实现细节,仅通过公共接口与外部世界交互。这种封装机制不仅提高了代码的安全性,还促进了代码的复用和可维护性。C++作为一门强大的面向对象编程语言,通过类(Classes)和接口(Interfaces,尽......
  • Profinet转Modbus模块减轻通讯编程工作量实现Modbus通讯
    巴图自动化PN转Modbus模块(BT-MDPN10)能够实现Profinet协议与Modbus协议之间的转换,使得Profinet协议设备与Modbus协议设备进行连接并能够相互通信。通过使用巴图自动化Profinet转Modbus模块(BT-MDPN10),用户无需编写复杂的通信程序或进行繁琐的协议转换,只需简单配置通讯参数。在实......
  • Visual Studio 2013俄语环境基石:‘mfc120rus.dll’解析与丢失修复全案
    mfc120rus.dll是一个动态链接库(DLL)文件,与MicrosoftFoundationClasses(MFC)相关。MFC是一个广泛使用的C++类库,用于简化Windows应用程序的开发。mfc120rus.dll特别地,是MFC库的俄语版本,用于支持俄语字符集和语言环境,它是MFC12.0版本的一部分,常用于VisualStudio2013中编译的......
  • 【提交ACM出版 | EI&Scopus检索稳定 | 高录用 | 数字经济、区块链、人工智能相关主题
    2024年数字经济,区块链与人工智能国际学术会议(DEBAI2024)为第五届大数据与社会科学国际学术会议(ICBDSS2024)的分会,将于2024年8月23-25日在中国-广州隆重举行。为了让更多的学者有机会参与会议分享交流经验。本次会议主要围绕“数字经济,区块链与人工智能等研究领域展开讨论。目前......
  • Python:彻底告别微信截图,摆脱屏幕限制,一键截图整张表,几秒钟完成8000分钟工作量
    目录摘要Excel截图的痛点传统截图方法的弊端Python自动化:办公效率的革命技术解决方案实现代码核心优势结果展示结语:自动化,让工作更简单摘要在数字化办公时代,Excel表格的分享与汇报变得日益频繁。但传统截图方式在面对超长表格或海量数据时显得力不从心。本文将介......
  • 数字化区块链设计与应用技术的落实意义
    在一个快速数字化的世界里,老四区块链生态应用网络脱颖而出,成为重塑数字经济格局的先锋,坚定地专注于有形和实用的价值。这种演变的一个具体证明来自于一些大企业的参与,他们准备用他们潜在的改变游戏规则的贡献来撼动该网络生态系统。该网络不仅仅是一种数字货币。除了其概念......
  • 区块的显示和隐藏
    在HTML、CSS和JavaScript的组合编程中,控制区块的显示和隐藏可以通过多种方式实现。以下是一些常见的方法:CSS显示和隐藏:使用CSS的display属性来控制元素的显示和隐藏。例如:.hidden{display:none;}然后,你可以通过添加或移除hidden类来控制元素的显示和隐藏:document.......