老k,柏链道捷CTO、清华阿尔山区块链研究中心高级工程师,超过17年的系统软件开发经验,在操作系统、编译器、虚拟机和符号执行方面都有实战经验。主持开发多个开眼项目,目前主要从事区块链底层系统开发工作。

这个系列的文章主要谈一下我对区块链中的共识机制的理解,欢迎跟大家一起交流、探讨。

前言

当今区块链的概念和产业已经遍布神州大地,创业言必区块链,在各种咖啡厅中你都可以听到周围的人谈论区块链,大部分从业者对区块链技术的一个认识是它是一个分布式账本技术,更有些人说区块链是各种计算机技术的组合,如P2P网络,数字签名,分布式系统,虚拟机等等,区块链本身并没有任何技术上的创新,这个说法几乎是正确的,除了区块链的共识机制。

作者认为从计算机技术的角度来讲,区块链的共识机制应该是一个伟大的技术创新,填补了计算机专业领域的一个空白。如果中本聪愿意发表学术论文的话,这应该也是21世纪以来最重要的学术论文之一。毫不讳言,区块链的共识机制是区块链的核心技术,没有之一。

免信任的共识机制

被扩展了的共识概念

当前正因为区块链热闹非凡,以至于区块链中的共识机制本来是计算机学科中分布式系统的概念,已经被扩展到很多社会科学。我们可以认为关于这些共识机制中说法中有广义的社科领域的共识和计算机领域的共识之分。

在一些区块链的讲座中,很多(特别是非计算机专业的)专家在谈区块链的时候,喜欢把共识这个名词扩展到社会学,或者人类发展史比较宏观的话题。比如人们通过共识进行协作,从而产生伟大的文明。有些谈到区块链的观点认为宗教,国家也是一种共识,这些说法站的地位比较高。

区块链共识机制的价值所在

但是从作者的角度,这和区块链的共识还是有一定的区别,如果我们非要把计算机领域的专业术语套用到其他学科的话。区块链的共识本质,要在一群完全不信任甚至不认识的节点或者人群中进行协作。这是一种免信任的协作方式,因为人类建立信任的壁垒确实太高了。

网上有些观点说区块链是建立信任的协作网络,这个说法不能说错也不能说对,其实可以这么表述,正是因为区块链是一种免信任的协作网络,所以它才是可信的。由于区块链中的参与方相互之间都是免信任,所以这种协作成本很低且可扩张性非常好,这是区块链共识机制的本来面目或者说区块链共识机制的价值所在。

为什么是免信任的区块链

事实上大部分非计算机领域的共识的说法都是需要建立信任的协作网络,如国家的建立,国际组织,公司联盟的建立,都是大家对某个组织或者机构的信任。而区块链的共识机制由于是免信任的,所以协作网络中的任意节点可以在任意时刻加入和退出。

这也是所谓的广义的社科领域中的共识机制所达不到的,任何联盟组织和国家都不会让任意成员任意时刻加入或者退出的。严格意义上来说,区块链中的联盟链显然不属于这种免信任的共识网络,联盟链的准入有一定的门槛,即需要一定的信任。

如果扩展来说,智能合约和通证经济都是一种共识机制。智能合约试图通过一种不可篡改的程序代码(合同即代码)形成多方的共识,而智能合约的参与方都是可以互不信任的。而通证经济试图通过某种经济激励达到一种共识让大家去协作完成某些任务和使命。这些都可以认为是一种免信任的共识。一旦是一个需要相互信任的协作网络,人类猜忌和贪婪的本性就有可能会暴露。所以我们都信任免信任的区块链。

结论

从计算机专业的角度讲,区块链的共识机制一种工具而已,并不能承载太多的社科领域的意义。它解决了在存在拜占庭错误(即可认为网络节点中有恶意节点,或者协作的人群中有叛徒)下,协作网络或者协作人群中如何达到共识的一种具体方法。后面的文章中我们主要会在计算机专业范畴内谈区块链的共识。

老K漫谈区块链的共识(1)——免信任的共识机制的更多相关文章

  1. 老K漫谈区块链的共识(3)——分布式系统和区块链共识

    1. 啥是分布式系统 当我们评价一个新的事物或者介绍一个新的技术的时候,我们不能架空历史和环境,新的事物不可能脱离历史和环境凭空诞生.任何新的事物和新的技术总是或多或少的,与旧的事件以及过去的技术有所 ...

  2. 区块链共识算法 PBFT(拜占庭容错)、PAXOS、RAFT简述

    共识算法 区块链中最重要的便是共识算法,比特币使用的是POS(Proof of Work,工作量证明),以太币使用的是POS(Proof of Stake,股权证明)使得算理便的不怎么重要了,而今PO ...

  3. 区块链学习5:智能合约Smart contract原理及发展历程科普知识

    ☞ ░ 前往老猿Python博文目录 ░ 一.智能合约的定义 通俗来说,智能合约就是一种在计算机系统上,当一定条件满足的情况下可被自动执行的合约,智能合约体现为一段代码及其运行环境.例如银行信用卡的自 ...

  4. 以太坊开发DApp入门教程——区块链投票系统(一)

    概述 对初学者,首先要了解以太坊开发相关的基本概念.   学习以太坊开发的一般前序知识要求,最好对以下技术已经有一些基本了解: 一种面向对象的开发语言,例如:Python,Ruby,Java... 前 ...

  5. eoLinker API-Shop 抓住区块链机遇,从这些API开始

    区块链是分布式存储.点对点传输.共识机制.加密算法等计算机技术的新型应用模式.所谓共识机制是区块链系统中实现不同节点之间建立信任.获取权益的数学算法. 区块链目前分为三类: 公有区块链(PublicB ...

  6. 微软刚发布的区块链去中心化身份识别系统DID

    https://mp.weixin.qq.com/s?__biz=MzAwMDU1MTE1OQ==&mid=2653549389&idx=1&sn=158f9feb10d76a ...

  7. HyperLedger Fabric 1.4 区块链技术定义(2.1)

    区块链技术指使用点对点传输.共识机制.加密算法等技术,保证分布式数据库区块写入链中数据的一致性,达到去中心化和不可篡改的目的.       区块链就是一种特殊的分布式数据库,使用现有的各种成熟的技术, ...

  8. 以太坊(ethereum)开发DApp应用的入门区块链技术教程

    概述 对初学者,首先要了解以太坊开发相关的基本概念.   学习以太坊开发的一般前序知识要求,最好对以下技术已经有一些基本了解: 一种面向对象的开发语言,例如:Python,Ruby,Java... 前 ...

  9. 从Go语言编码角度解释实现简易区块链

    区块链技术 人们可以用许多不同的方式解释区块链技术,其中通过加密货币来看区块链一直是主流.大多数人接触区块链技术都是从比特币谈起,但比特币仅仅是众多加密货币的一种. 到底什么是区块链技术? 从金融学相 ...

随机推荐

  1. session 控制单点登录

    在我登录成功之后,我会 session.setAttribute("user", userMap);//设置session 所以就写了一个监听器来控制登录的. package or ...

  2. SharePoint如何配置Ipad跳转等问题

    如何配置Ipad跳转 Apple iPad 设备上不支持 SharePoint 标准视图.用户可以改用移动视图在 iPad 设备上查看 SharePoint 内容.默认情况下,iPad 用户被重定向到 ...

  3. Django 系列博客(七)

    Django 系列博客(七) 前言 本篇博客介绍 Django 中的视图层中的相关参数,HttpRequest 对象.HttpResponse 对象.JsonResponse,以及视图层的两种响应方式 ...

  4. 关于Vue数组操作

    Vue的数组操作的实现代码大致如下: const aryMethods = ['push', 'pop', 'shift', 'unshift', 'splice', 'sort', 'reverse ...

  5. LeetCode哈希表

    1. Two Sum https://leetcode.com/problems/two-sum/description/ 不使用额外空间需要n*n的复杂度 class Solution { publ ...

  6. 数据可视化 seaborn绘图(2)

    统计关系可视化 最常用的关系可视化的函数是relplot seaborn.relplot(x=None, y=None, hue=None, size=None, style=None, data=N ...

  7. .net使用websocket

    专业挖坑21年     1.前 言 网上找了很多资料,可能是自己找的路子不对吧,都找不到适合我这样萌新的文章,大多.net环境使用的websocket都是在说一个通信的案例,学起来的确很吃力,自己也挖 ...

  8. mysql存储过程调用含out参数

    mysql 数据库有以下存储过程: CREATE DEFINER=`root`@`localhost` PROCEDURE `hovertreeTest`( IN `Param1` INT, ), O ...

  9. 解决org.hibernate.HibernateException: identifier of an instance of com.ahd.entity.Order was altered from2 to 0

    错误信息 严重: Servlet.service() for servlet [springmvc] in context with path [/order] threw exception [Re ...

  10. springMVC_03注解完成hello案例

    1.导入jar包 commons-logging-1.1.1.jar jackson-annotations-2.5.4.jar jackson-core-2.5.4.jar jackson-data ...