《Node.js区块链开发》一3.2 PoW:工作量证明机制

简介:

本节书摘来华章计算机《Node.js区块链开发》一书中的第3章 ,第3.2节,朱志文 著 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

3.2 PoW:工作量证明机制

1.基本原理
PoW(Proof of Work)是比特币采用的共识机制,也是最早的一种机制。理解起来也很简单,就是“按劳取酬”,你付出多少劳动(工作),就会获得多少报酬(比特币等加密货币)。在网络世界里,这里的劳动就是你为网络提供的计算服务(算力×时长),提供这种服务的过程就是“挖矿”。
那么“报酬”该怎么分配呢?如果是真的矿藏,显然在均匀分布的前提下,人们“挖矿”所得的“报酬”与各自提供的算力成正比,通俗一点说就是,能力越强、付出的越多,获得的就越多。
2.优点
机制本身当然很复杂,有很多细节,比如“挖矿”难度自动调整、区块奖励逐步减半等,这些因素都是基于经济学原理设置的,以吸引和鼓励更多的人参与。
理想状态下,这种机制可以吸引很多用户参与其中,特别是越先参与的,获得的就越多,会促使区块链产品的初始阶段迅速发展,节点网络迅速扩大。在CPU挖矿的时代,比特币吸引了很多人参与“挖矿”,这点就是很好的证明。通过“挖矿”的方式发行新币,把比特币分散给个人,实现了相对意义上的公平(比起那些不用挖矿,直接IPO的币要公平得多)。
3.缺点
1)算力是计算机硬件(CPU、GPU等)提供的,需要耗费电力,是对能源的直接消耗,与人类追求节能、清洁、环保的理念相悖。不过,如果非要给区块链产品找寻“货币价值”的意义,那么这方面应该是最有力的证据。
2)这种机制发展到今天,算力的提供已经不再是单纯的CPU了,而是逐步发展到GPU、FPGA乃至ASIC矿机。用户也从个人挖矿发展到大的矿池、矿场,算力集中越来越明显。这与去中心化的方向背道而驰,渐行渐远,网络的安全也逐渐受到威胁。有证据证明,Ghash(一个矿池)就曾经对赌博网站实施了双花攻击(简单地说就是一笔钱花两次)。
3)区块链产品区块奖励按照一定的周期减半,当“挖矿”的成本高于挖矿的收益时,人们“挖矿”的积极性就会降低,会有大量算力减少,网络的安全性也将进一步降低。

相关文章
|
9天前
|
Web App开发 JavaScript 前端开发
Node.js 是一种基于 Chrome V8 引擎的后端开发技术,以其高效、灵活著称。本文将介绍 Node.js 的基础概念
Node.js 是一种基于 Chrome V8 引擎的后端开发技术,以其高效、灵活著称。本文将介绍 Node.js 的基础概念,包括事件驱动、单线程模型和模块系统;探讨其安装配置、核心模块使用、实战应用如搭建 Web 服务器、文件操作及实时通信;分析项目结构与开发流程,讨论其优势与挑战,并通过案例展示 Node.js 在实际项目中的应用,旨在帮助开发者更好地掌握这一强大工具。
30 1
|
14天前
|
Web App开发 JavaScript 前端开发
深入浅出Node.js后端开发
【10月更文挑战第40天】在这篇文章中,我们将一起探索Node.js的奥秘,从基础概念到实际应用,逐步揭示如何利用Node.js构建高效、可扩展的后端服务。通过实际案例分析,我们将了解Node.js在现代Web开发中的应用,以及如何克服常见的开发挑战。无论你是初学者还是有一定经验的开发者,这篇文章都将为你提供宝贵的见解和实用的技巧,帮助你在Node.js的道路上更进一步。
27 4
|
24天前
|
Web App开发 存储 JavaScript
深入浅出Node.js后端开发
【10月更文挑战第31天】本文将引导你进入Node.js的奇妙世界,探索其如何革新后端开发。通过浅显易懂的语言和实际代码示例,我们将一起学习Node.js的核心概念、搭建开发环境,以及实现一个简单但完整的Web应用。无论你是编程新手还是希望拓展技术的开发者,这篇文章都将为你打开一扇通往高效后端开发的大门。
|
19天前
|
Web App开发 JavaScript 前端开发
深入浅出Node.js后端开发
【10月更文挑战第36天】本文将引导您探索Node.js的世界,通过实际案例揭示其背后的原理和实践方法。从基础的安装到高级的异步处理,我们将一起构建一个简单的后端服务,并讨论如何优化性能。无论您是新手还是有经验的开发者,这篇文章都将为您提供新的视角和深入的理解。
|
19天前
|
JavaScript 安全 中间件
深入浅出Node.js中间件机制
【10月更文挑战第36天】在探索Node.js的奥秘之旅中,中间件的概念如同魔法一般,它让复杂的请求处理变得优雅而高效。本文将带你领略这一机制的魅力,从概念到实践,一步步揭示如何利用中间件简化和增强你的应用。
|
25天前
|
Web App开发 JavaScript 前端开发
深入浅出Node.js后端开发
【10月更文挑战第30天】本文将通过一个Node.js的简单示例,引导你进入Node.js的世界。我们将从基础概念讲起,然后一步步深入到代码实现,最后总结Node.js在后端开发中的优势和应用场景。无论你是前端开发者还是后端新手,这篇文章都将为你打开一扇了解Node.js的大门。
46 2
|
1月前
|
消息中间件 JavaScript 中间件
深入浅出Node.js中间件机制
【10月更文挑战第24天】在Node.js的世界里,中间件如同厨房中的调料,为后端服务增添风味。本文将带你走进Node.js的中间件机制,从基础概念到实际应用,一探究竟。通过生动的比喻和直观的代码示例,我们将一起解锁中间件的奥秘,让你轻松成为后端料理高手。
28 1
|
2月前
|
SQL JavaScript 关系型数据库
node博客小项目:接口开发、连接mysql数据库
【10月更文挑战第14天】node博客小项目:接口开发、连接mysql数据库
|
22天前
|
Web App开发 JavaScript 前端开发
探索后端开发:Node.js与Express的完美结合
【10月更文挑战第33天】本文将带领读者深入了解Node.js和Express的强强联手,通过实际案例揭示它们如何简化后端开发流程,提升应用性能。我们将一起探索这两个技术的核心概念、优势以及它们如何共同作用于现代Web开发中。准备好,让我们一起开启这场技术之旅!
37 0
|
2月前
|
Web App开发 存储 JavaScript
深入浅出Node.js后端开发
【10月更文挑战第7天】本文将带你进入Node.js的世界,从基本概念、环境搭建到实际案例,逐步深入探索Node.js在后端开发中的应用。我们将通过一个简单的在线聊天室项目,学习如何利用Node.js进行网络编程和数据处理,让你对Node.js有更全面的认识。
19 3