《Node.js区块链开发》——第3章 共识机制,可编程的利益转移规则 3.1 机制,左右产品走向的根源
本节书摘来自华章计算机《Node.js区块链开发》一书中的第3章,第3.1节,作者 朱志文,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
共识机制,可编程的利益转移规则前面两章曾经说过,区块链产品都是去中心化的,去中心化的基础就是P2P节点众多,那么如何吸引用户加入网络成为节点呢?又有哪些激励机制呢?同时,开发的重点是让多个节点维护一个数据库,那么如何决定写入哪个节点?何时写入?一旦写入,又如何保证不被其他的节点更改(不可逆)呢?回答这些问题的答案就是共识机制。
共识机制,可编程的利益转移规则。谈到共识机制,不得不说的是,编程开发这么多年,我们尝试过很多方法,试图通过某种激励手段提高用户黏性以留住用户。比如常见的积分机制、用户等级等,但是没有任何一种方式能与区块链的共识机制相提并论。每一个区块链产品本身就是一个小社会,一个由利益驱动的自适应组织,这个组织的运行需要由共识机制来规范。
本章将回答“为什么区块链产品无须监管”,主要内容包括机制的作用、共识机制的种类、它们各自的优缺点以及亿书的改进计划。
3.1 机制,左右产品走向的根源“机制”一词原指机器的构造和动作原理,在社会学中可以表述为“协调各个部分之间的关系以更好地发挥作用的具体运行方式。”
我在工作中曾遇到过一位好领导,他非常公道正派,一切事情按规矩来办,处理问题用制度说话。在他的领导下,整个部门的员工都富有激情、心无旁骛、专心工作,上级领导也非常认可,升职加薪是常有的事情,人人都能收获满满。后来因为工作调整,我们很多人去了新部门,之后大家反映,再也没有了当初的激情,因为工作不一定被认可,付出不一定有收获。
类似的情况可能很多人都遇到过,这样的情况最能直接反映一个社会、组织或部门当中机制的运行规律。在任何一个系统中,机制都起着基础性的作用,左右着系统的发展和走向。在理想状态下,良好的机制可以使一个社会系统接近于一个自适应系统(在外部条件发生不确定变化时,能自动地迅速做出正确的反应)。正常的生物机体(如人体)就具有这种机制和能力。
机制的构建是一项复杂的系统工程。对于区块链产品而言,共识机制包含各种激励制度和具体算法,比如交易费用、区块奖励等。机制的关键因素是人,评判一个机制的好坏,往往要通过一段时间的观察,看看人参与和执行的积极性是否能够持续。如果不能持续,那么就预示着机制已经失败,系统或产品也将消亡。
实际上,区块链产品的目标就是要建立一个“无须监管的自适应经济系统”。目前来看,支撑这个自适应经济系统的机制,常用的有三种,它们分别是PoW、PoS和DPoS,而且它们都能在现实生活中找到对应的经济模型。这些机制吸引人们参与其中,组成安全网络,并有序的运行。从长期来看,它们各有优缺点。
下面就来看看这些机制的演进过程。
一个基于DPoS共识算法的区块链案例解析 前面我们介绍了PoW以及PoS的案例,我们会发现它们都有一些缺点,比如PoW耗费能源比较多,而PoS是持有的币越多,成功挖矿的几率越大,这会造成贫富差距越来越大,并且人们都不太愿意消耗自己的币。 而我们的DPoS,全名为Delegated Proof of Stake,也就是股份授权证明就解决了这些不足。 DPoS就是大家投票选出一定数量的节点来挖矿,用户拥有的票的数量和他持有的币数量有关。这就和股份制公司很像了,大家投票选出董事会成员。 这些被选出来的拥有挖矿权的节点的挖矿权力是一模一样的。 如果某个节点挖到了矿,那么他就要将获得的币分一些给投票给他的人。
区块链之旅(三)智能合约与共识机制 智能合约是一套以数字形式定义的约定,包括合约参与方可以在上面执行这些约定的协议。智能合约的基本思想是,各种各样的合约条款可以嵌入到我们使用的硬件和软件中,从而使得攻击者需要很大的代价去攻击。
相关文章
- 全面解读PHP-JS和jQuery
- Handlebars的基本用法 Handlebars.js使用介绍 http://handlebarsjs.com/ Handlebars.js 模板引擎 javascript/jquery模板引擎——Handlebars初体验 handlebars.js 入门(1) 作为一名前端的你,必须掌握的模板引擎:Handlebars 前端数据模板handlebars与jquery整
- Vue - 实现用 JS 调用自定义组件 / 类似 ElementUI 弹框组件(在 js 文件中通过 this.xxx 方式调用并显示自定义弹框模态框组件)
- 《Node.js区块链开发》——1.3 加密货币就是货币
- 《Node.js区块链开发》——第2章 区块链,承载人类信用的基石2.1 利益,现实世界的内在驱动力
- 《Node.js区块链开发》——2.2 信用,决定着利益转移的方向
- 《Node.js区块链开发》——2.3 未来趋势
- 《Node.js区块链开发》——2.5 风险提示
- 《Node.js区块链开发》——2.7 参考
- PEG.js 介绍与基础使用
- 【HarmonyOS】【JS】【布局】鸿蒙js开发input 输入框弹出输入法时上方布局被挤扁?
- 【HarmonyOS】【JS】鸿蒙Js camera怎么拍照并使用image显示出来
- js指定元素滚动条回到0
- 《Node.js区块链开发》——3.4 DPoS:授权股权证明机制
- underscore.js
- JS高阶---对象创建模式(5种)
- 《Node.js区块链开发》——1.4 加密货币可靠吗
- 《Node.js区块链开发》——2.3 未来趋势
- 《Node.js区块链开发》——3.3 PoS:股权证明机制
- js或jQ监测div的高度
- js 给json添加新的字段,或者添加一组数据,在JS数组指定位置删除、插入、替换元素
- 【HarmonyOS】【JS】【布局】鸿蒙js开发input 输入框弹出输入法时上方布局被挤扁?
- 【cocos2d-js官方文档】五、Cocos2d-JS v3.0的新Action API
- 【 D3.js 入门系列 --- 7 】 理解 update, enter, exit 的使用
- 配置 node.js 环境
- JS判断指定dom元素是否在屏幕内的方法实例
- 从零开始学 Web 之 Vue.js(四)Vue的Ajax请求和跨域
- js-原生Js汉语拼音首字母匹配城市名
- 功能/项目 js json转csv json格式的数据生成为csv文件
- Node.js URL模块