老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. Spring-WebSocket 教程

    WebSocket 教程 概述 WebSocket 是什么? WebSocket 是一种网络通信协议.RFC6455 定义了它的通信标准. WebSocket 是 HTML5 开始提供的一种在单个 T ...

  2. 如何像Python高手(Pythonista)一样编程

    最近在网上看到一篇介绍Pythonic编程的文章:Code Like a Pythonista: Idiomatic Python,其实作者在2006的PyCon会议后就写了这篇文章,写这篇文章的主要 ...

  3. haproxy(8):haproxy代理MySQL要考虑的问题

    HaProxy系列文章:http://www.cnblogs.com/f-ck-need-u/p/7576137.html haproxy可以通过 TCP协议 来代理MySQL.但是两个问题必须考虑: ...

  4. python装饰器1:函数装饰器详解

    装饰器1:函数装饰器 装饰器2:类装饰器 装饰器3:进阶 先混个眼熟 谁可以作为装饰器(可以将谁编写成装饰器): 函数 方法 实现了__call__的可调用类 装饰器可以去装饰谁(谁可以被装饰): 函 ...

  5. 安装LoadRunner时提示缺少vc2005_sp1_with_atl_fix_redist解决方案

    操作系统重装后,安装LoadRunner11时,会报缺少vc2005_sp1_with_atl_fix_redist错误,类似下图所示: LR自动安装失败,在网上下载此组件安装后依然提示此信息,最终解 ...

  6. [转]How To Send Transactional Email In A NodeJS App Using The Mailgun API

    https://www.npmjs.com/package/mailgun-js 本文转自:https://www.mailgun.com/blog/how-to-send-transactional ...

  7. .net 公共基础类

    using WL.Infrastructure.Http; using System; using System.Collections.Generic; using System.IO; using ...

  8. c#实战开发:以太坊私链搭建(一)

    1.第一步环境搭建 运行环境:window  客户端版本:Go语言geth 下载地址https://ethereum.github.io/go-ethereum/downloads/ 以太坊API中文 ...

  9. 使用wubi安装ubuntu14.04出现的常见错误的解决办法

    花了一天的时间终于安装上了Ubuntu14.04,过程坎坷,是血泪史,开始报“cannot download the metalink and therefore the ISO”错误,解决后,又报“ ...

  10. WarShall算法

    1.引言 图的连通性问题是图论研究的重要问题之一,在实际中有着广泛的应用.例如在通信网络的联通问题中,运输路线的规划问题等等都涉及图的连通性.因此传递闭包的计算需要一个高效率的算法,一个著名的算法就是 ...