老K漫谈区块链的共识(1)——免信任的共识机制
老k,柏链道捷CTO、清华阿尔山区块链研究中心高级工程师,超过17年的系统软件开发经验,在操作系统、编译器、虚拟机和符号执行方面都有实战经验。主持开发多个开眼项目,目前主要从事区块链底层系统开发工作。
这个系列的文章主要谈一下我对区块链中的共识机制的理解,欢迎跟大家一起交流、探讨。
前言
当今区块链的概念和产业已经遍布神州大地,创业言必区块链,在各种咖啡厅中你都可以听到周围的人谈论区块链,大部分从业者对区块链技术的一个认识是它是一个分布式账本技术,更有些人说区块链是各种计算机技术的组合,如P2P网络,数字签名,分布式系统,虚拟机等等,区块链本身并没有任何技术上的创新,这个说法几乎是正确的,除了区块链的共识机制。
作者认为从计算机技术的角度来讲,区块链的共识机制应该是一个伟大的技术创新,填补了计算机专业领域的一个空白。如果中本聪愿意发表学术论文的话,这应该也是21世纪以来最重要的学术论文之一。毫不讳言,区块链的共识机制是区块链的核心技术,没有之一。
免信任的共识机制
被扩展了的共识概念
当前正因为区块链热闹非凡,以至于区块链中的共识机制本来是计算机学科中分布式系统的概念,已经被扩展到很多社会科学。我们可以认为关于这些共识机制中说法中有广义的社科领域的共识和计算机领域的共识之分。
在一些区块链的讲座中,很多(特别是非计算机专业的)专家在谈区块链的时候,喜欢把共识这个名词扩展到社会学,或者人类发展史比较宏观的话题。比如人们通过共识进行协作,从而产生伟大的文明。有些谈到区块链的观点认为宗教,国家也是一种共识,这些说法站的地位比较高。
区块链共识机制的价值所在
但是从作者的角度,这和区块链的共识还是有一定的区别,如果我们非要把计算机领域的专业术语套用到其他学科的话。区块链的共识本质,要在一群完全不信任甚至不认识的节点或者人群中进行协作。这是一种免信任的协作方式,因为人类建立信任的壁垒确实太高了。
网上有些观点说区块链是建立信任的协作网络,这个说法不能说错也不能说对,其实可以这么表述,正是因为区块链是一种免信任的协作网络,所以它才是可信的。由于区块链中的参与方相互之间都是免信任,所以这种协作成本很低且可扩张性非常好,这是区块链共识机制的本来面目或者说区块链共识机制的价值所在。
为什么是免信任的区块链
事实上大部分非计算机领域的共识的说法都是需要建立信任的协作网络,如国家的建立,国际组织,公司联盟的建立,都是大家对某个组织或者机构的信任。而区块链的共识机制由于是免信任的,所以协作网络中的任意节点可以在任意时刻加入和退出。
这也是所谓的广义的社科领域中的共识机制所达不到的,任何联盟组织和国家都不会让任意成员任意时刻加入或者退出的。严格意义上来说,区块链中的联盟链显然不属于这种免信任的共识网络,联盟链的准入有一定的门槛,即需要一定的信任。
如果扩展来说,智能合约和通证经济都是一种共识机制。智能合约试图通过一种不可篡改的程序代码(合同即代码)形成多方的共识,而智能合约的参与方都是可以互不信任的。而通证经济试图通过某种经济激励达到一种共识让大家去协作完成某些任务和使命。这些都可以认为是一种免信任的共识。一旦是一个需要相互信任的协作网络,人类猜忌和贪婪的本性就有可能会暴露。所以我们都信任免信任的区块链。
结论
从计算机专业的角度讲,区块链的共识机制一种工具而已,并不能承载太多的社科领域的意义。它解决了在存在拜占庭错误(即可认为网络节点中有恶意节点,或者协作的人群中有叛徒)下,协作网络或者协作人群中如何达到共识的一种具体方法。后面的文章中我们主要会在计算机专业范畴内谈区块链的共识。
老K漫谈区块链的共识(1)——免信任的共识机制的更多相关文章
- 老K漫谈区块链的共识(3)——分布式系统和区块链共识
1. 啥是分布式系统 当我们评价一个新的事物或者介绍一个新的技术的时候,我们不能架空历史和环境,新的事物不可能脱离历史和环境凭空诞生.任何新的事物和新的技术总是或多或少的,与旧的事件以及过去的技术有所 ...
- 区块链共识算法 PBFT(拜占庭容错)、PAXOS、RAFT简述
共识算法 区块链中最重要的便是共识算法,比特币使用的是POS(Proof of Work,工作量证明),以太币使用的是POS(Proof of Stake,股权证明)使得算理便的不怎么重要了,而今PO ...
- 区块链学习5:智能合约Smart contract原理及发展历程科普知识
☞ ░ 前往老猿Python博文目录 ░ 一.智能合约的定义 通俗来说,智能合约就是一种在计算机系统上,当一定条件满足的情况下可被自动执行的合约,智能合约体现为一段代码及其运行环境.例如银行信用卡的自 ...
- 以太坊开发DApp入门教程——区块链投票系统(一)
概述 对初学者,首先要了解以太坊开发相关的基本概念. 学习以太坊开发的一般前序知识要求,最好对以下技术已经有一些基本了解: 一种面向对象的开发语言,例如:Python,Ruby,Java... 前 ...
- eoLinker API-Shop 抓住区块链机遇,从这些API开始
区块链是分布式存储.点对点传输.共识机制.加密算法等计算机技术的新型应用模式.所谓共识机制是区块链系统中实现不同节点之间建立信任.获取权益的数学算法. 区块链目前分为三类: 公有区块链(PublicB ...
- 微软刚发布的区块链去中心化身份识别系统DID
https://mp.weixin.qq.com/s?__biz=MzAwMDU1MTE1OQ==&mid=2653549389&idx=1&sn=158f9feb10d76a ...
- HyperLedger Fabric 1.4 区块链技术定义(2.1)
区块链技术指使用点对点传输.共识机制.加密算法等技术,保证分布式数据库区块写入链中数据的一致性,达到去中心化和不可篡改的目的. 区块链就是一种特殊的分布式数据库,使用现有的各种成熟的技术, ...
- 以太坊(ethereum)开发DApp应用的入门区块链技术教程
概述 对初学者,首先要了解以太坊开发相关的基本概念. 学习以太坊开发的一般前序知识要求,最好对以下技术已经有一些基本了解: 一种面向对象的开发语言,例如:Python,Ruby,Java... 前 ...
- 从Go语言编码角度解释实现简易区块链
区块链技术 人们可以用许多不同的方式解释区块链技术,其中通过加密货币来看区块链一直是主流.大多数人接触区块链技术都是从比特币谈起,但比特币仅仅是众多加密货币的一种. 到底什么是区块链技术? 从金融学相 ...
随机推荐
- java正则表达式的忽略大小写
(?i)abc 表示abc都忽略大小写 a(?i)bc 表示bc忽略大小写 a((?i)b)c 表示只有b忽略大小写
- shiro源码篇 - shiro认证与授权,你值得拥有
前言 开心一刻 我和儿子有个共同的心愿,出国旅游.昨天儿子考试得了全班第一,我跟媳妇合计着带他出国见见世面,吃晚饭的时候,一家人开始了讨论这个.我:“儿子,你的心愿是什么?”,儿子:“吃汉堡包”,我: ...
- [UWP]为什么ContentControl的ControlTemplate里放两个ContentPresenter会出问题(绕口)
1. 简单的HeaderedContentControl 上周五收到反馈,在一个ContentControl的ControlTemplate中放两个ContentPresenter会出错.出错的例子是 ...
- vux环境配置
第一步 在vue项目中的package.json文件的dependencies中添加下面三行,即安装vux及其相关依赖 "vux":"^2.7.3", &quo ...
- .net DBHelper
DBHelper.cs是程序来连接数据的,也是一个程序必不可少的一个类(本人道行浅,目前这样认为).由于一个程序基本写一次,容易忘记.所有写在这里备注 首先是引用 using System.Data; ...
- 第一册:lesson twenty-one.
原文:Which book? A:Give me a book please,B. B:Which book? This one? A:No,not that one. The red one. B: ...
- asp.net-缓存技术-20180409
asp.net缓存技术有三种 1.页面输出缓存 2.页面部分缓存 3.页面数据缓存 ---------------------------------------------------------- ...
- 使用Mybatis Generator插件自动生成映射文件(cmd无法进入文件,dns服务器对区域没有权威等问题)遇到问题
使用Mybatis Genertor插件自动生MyBatis所需要的DAO接口,实体模型类,Mapping映射文件,将生成的代码赋值到项目工程中即可. 有命令行,Eclipse插 ...
- js实现ctrl+v上传图片
描述:实现类似QQ截图删上传图片的功能 a.需要的js插件 paste.image.js 地址:https://github.com/iyangyuan/pasteimg b.paste.image. ...
- JSJ——主数据类型和引用
变量有两种:primitive主数据类型和引用. Java注重类型.它不会让你做出把长颈鹿类型变量装进兔子类型变量中这种诡异又危险的举动——如果有人对长颈鹿调用“跳跃”这个方法会发生什么悲剧?并且它也 ...