开发者社区> 华章计算机> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

《Node.js区块链开发》——第3章 共识机制,可编程的利益转移规则3.1 机制,左右产品走向的根源

简介:
+关注继续查看

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

第3章

共识机制,可编程的利益转移规则

前面两章曾经说过,区块链产品都是去中心化的,去中心化的基础就是P2P节点众多,那么如何吸引用户加入网络成为节点呢?又有哪些激励机制呢?同时,开发的重点是让多个节点维护一个数据库,那么如何决定写入哪个节点?何时写入?一旦写入,又如何保证不被其他的节点更改(不可逆)呢?回答这些问题的答案就是共识机制。
共识机制,可编程的利益转移规则。谈到共识机制,不得不说的是,编程开发这么多年,我们尝试过很多方法,试图通过某种激励手段提高用户黏性以留住用户。比如常见的积分机制、用户等级等,但是没有任何一种方式能与区块链的共识机制相提并论。每一个区块链产品本身就是一个小社会,一个由利益驱动的自适应组织,这个组织的运行需要由共识机制来规范。
本章将回答“为什么区块链产品无须监管”,主要内容包括机制的作用、共识机制的种类、它们各自的优缺点以及亿书的改进计划。

3.1 机制,左右产品走向的根源

“机制”一词原指机器的构造和动作原理,在社会学中可以表述为“协调各个部分之间的关系以更好地发挥作用的具体运行方式。”
我在工作中曾遇到过一位好领导,他非常公道正派,一切事情按规矩来办,处理问题用制度说话。在他的领导下,整个部门的员工都富有激情、心无旁骛、专心工作,上级领导也非常认可,升职加薪是常有的事情,人人都能收获满满。后来因为工作调整,我们很多人去了新部门,之后大家反映,再也没有了当初的激情,因为工作不一定被认可,付出不一定有收获。
类似的情况可能很多人都遇到过,这样的情况最能直接反映一个社会、组织或部门当中机制的运行规律。在任何一个系统中,机制都起着基础性的作用,左右着系统的发展和走向。在理想状态下,良好的机制可以使一个社会系统接近于一个自适应系统(在外部条件发生不确定变化时,能自动地迅速做出正确的反应)。正常的生物机体(如人体)就具有这种机制和能力。
机制的构建是一项复杂的系统工程。对于区块链产品而言,共识机制包含各种激励制度和具体算法,比如交易费用、区块奖励等。机制的关键因素是人,评判一个机制的好坏,往往要通过一段时间的观察,看看人参与和执行的积极性是否能够持续。如果不能持续,那么就预示着机制已经失败,系统或产品也将消亡。
实际上,区块链产品的目标就是要建立一个“无须监管的自适应经济系统”。目前来看,支撑这个自适应经济系统的机制,常用的有三种,它们分别是PoW、PoS和DPoS,而且它们都能在现实生活中找到对应的经济模型。这些机制吸引人们参与其中,组成安全网络,并有序的运行。从长期来看,它们各有优缺点。
下面就来看看这些机制的演进过程。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Java初学者作业——编写Java程序,实现判断所输入字符的类型(数字、小写字母、大写字母或其他字符)
Java初学者作业——编写Java程序,实现判断所输入字符的类型(数字、小写字母、大写字母或其他字符)
65 0
【Java 并发编程】线程锁机制 ( 悲观锁 | 乐观锁 | CAS 三大问题 | ABA 问题 | 循环时间长问题 | 多个共享变量原子性问题 )
【Java 并发编程】线程锁机制 ( 悲观锁 | 乐观锁 | CAS 三大问题 | ABA 问题 | 循环时间长问题 | 多个共享变量原子性问题 )
65 0
吐血整理-高级程序员必备Java并发编程原理,没时间看建议收藏
吐血整理-高级程序员必备Java并发编程原理,没时间看建议收藏
31 0
Java编程:基于socket实现局域网双人联机对战五子棋
Java编程:基于socket实现局域网双人联机对战五子棋
291 0
MyEclipse2015整合SSM框架:详解Mybatis逆向工程配置一对一关联表,查询结果排序问题
MyEclipse2015整合SSM框架:详解Mybatis逆向工程配置一对一关联表,查询结果排序问题http://www.bieryun.com/3343.html 先说问题:在搭建SSM(Spring+SpringMVC+Mybatis)框架,从后台数据库查询出数据提供给前端页面进行分页显示时候,发现分页查询出来的结果在前端页面上显示并不是按照主键 id 排序的,而是先按照关联表id,也就是主表外键的 id 分成不同的部门(我这里是employee 和 department) ,每个部门中再按照 id 顺序显示记录。
1904 0
MyEclipse2015整合SSM框架:详解Mybatis逆向工程配置一对一关联表,查询结果排序问题
MyEclipse2015整合SSM框架:详解Mybatis逆向工程配置一对一关联表,查询结果排序问题 先说问题:在搭建SSM(Spring+SpringMVC+Mybatis)框架,从后台数据库查询出数据提供给前端页面进行分页显示时候,发现分页查询出来的结果在前端页面上显示并不是按照主键 id 排序的,而是先按照关联表id,也就是主表外键的 id 分成不同的部门(我这里是employee 和 department) ,每个部门中再按照 id 顺序显示记录。
2382 0
《Linux命令行与shell脚本编程大全》第二十五章 创建与数据库、web及电子邮件相关的脚本
25.1 MySQL数据库 /* 但是我在虚拟机上安装的时候居然不提示输入密码。 这个可以参考http://blog.csdn.net/sinat_21302587/article/details/76870457 导致登录的时候不知道账号密码。
1549 0
《JavaScript面向对象编程指南(第2版)》——1.6 面向对象的程序设计
现在,我们就来详细了解每个概念。当然,如果您在面向对象程序设计方面是一个新手,或者不能确定自己是否真的理解了这些概念,那也不必太过担心。以后我们还会通过一些代码来为您具体分析它们。尽管这些概念说起来好像很复杂、很高级,但一旦我们进入真正的实践,事情往往就会简单得多。
1475 0
Java网络编程和NIO详解1:JAVA 中原生的 socket 通信机制
JAVA 中原生的 socket 通信机制 摘要:本文属于原创,欢迎转载,转载请保留出处:https://github.com/jasonGeng88/blog 当前环境 jdk == 1.8 知识点 socket 的连接处理 IO 输入、输出流的处理 请求数据格式处理 请求模型优化 场景 今天,和大家聊一下 JAVA 中的 socket 通信问题。
1035 0
ExtJS之面向对象编程基本知识
1:支持命名空间              // 定义一个命名空间        Ext.namespace("Ext.wentao");        // 在命名空间上定义一个类        Ext.
586 0
10057
文章
0
问答
来源圈子
更多
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载