每一本讲区块链技术的书籍,几乎都会讲到拜占庭将军问题,看到这个词语时,我曾经一度认为有一位名叫拜占庭的将军带领着一支庞大的军队打仗时遇到了难题,但查阅了一些资料后,发现实际上并没有拜占庭将军,也没有这
上期介绍了在互联网上传统的信任建立方式。然而传统的信任建立方式概况的说存在五个问题。第一个问题是成本高。要维持一个中心化的机构,开销很大。第二个问题是独立性、客观性成疑。中心化的机构在很多情况下有利益冲突,容易受外界因素左右。第三个问题是安全性不高,容易成为攻击目标,形成单点故障。第四个问题是容易产生性能瓶颈,效率不高。第五个问题是容易造假。当前再互联网久为人诟病的刷单、刷榜问题,就是一个对传统信任建立方式来说挥之不去的梦魇。
拜占庭将军问题其实是虚构出来的一个故事,是为了方便通俗地介绍分布式系统所面临的难题。
在区块链的交流和学习中,「共识算法」是一个很频繁被提起的词汇,正是因为共识算法的存在,区块链的可信性才能被保证。
“区块链”技术最初是由一位化名中本聪的人为比特币(一种数字货币)而设计出的一种特殊的数据库技术,它基于密码学中的椭圆曲线数字签名算法(ECDSA)来实现去中心化的P2P系统设计。但区块链的作用不仅仅局限在比特币上。现在,人们在使用“区块链”这个词时,有的时候是指数据结构,有时是指数据库,有时则是指数据库技术,但无论是哪种含义,都和比特币没有必然的联系。
“共识机制是区块链的灵魂。”这是业内经常能听到的一句话,共识机制在区块链中的地位可想而知。那么到底什么是共识机制呢?我们不妨从拜占庭将军问题说起。
拜占庭容错(Byzantine Fault Tolerance,BFT)是一种在分布式计算系统中实现容错的重要机制,旨在确保系统在存在恶意或故障节点的情况下仍能正常运作。本文将详细介绍拜占庭容错算法的基本原理、实现方法及其在实际应用中的重要性。
Tenermint是个能够在多机器上安全一致地复制应用的软件。 安全是指无论多达1/3的机器出现何种类型的故障,Tendermint都可以正常工作。 一致是指每个正确运行的机器都可以获取完全相同的交易日志并计算相同的状态。 在分布式系统中,安全一致地复制至关重要;从货币到选举再到基础设施管理等广泛应用容错方面,它都有着着重要作用。
技术定义是:共识机制是一个群体决策的流程,群体中的个体会执行和支持对群体其他个人最好的决定。这是一个个体需要支持大多数人决定的解决方式,不管他们意愿如何。
区块链是一种分布式的、去中心化的、不可篡改的数据存储技术,它可以实现数据的安全共享和价值转移。区块链有两种主要的类型:公链和联盟链。
Proof Of Work,也就是工作量证明。工作量证明系统(或者说协议、函数),是一种应对拒绝服务攻击和其他服务滥用的经济对策。它要求发起者进行一定量的运算,也就意味着需要消耗计算机一定的时间。这种系统要求得到证明的过程是低效且漫长的,可是校验则是高效且迅速,概括起来就是求解难,验证容易。
但凡关于区块链或比特币相关的书籍,就算是相关问题深入探讨都绕不开一个永恒的话题——拜占庭将军问题(The Byzantine Generals Problem)。每一个想理解和掌握区块链技术原理的人也无法“逃过”拜占庭将军的“手掌心”,网络上关于拜占庭将军问题的讨论、描述、讲解多如牛毛,很多区块链大神,用了论文级别最科学,最严谨的算法、公式来推理,讲解,试图让人们更透彻的理解区块链技术是如何迎刃而解拜占庭将军问题的核心,往往却事与愿违,而本文试图化繁为简,让非技术人员也能理解拜占庭将军问题的前世今生。
区块链是一个融合了点对点传输(P2P),加密算法等技术的分布式数据库,它必须基于计算机网络来进行。 📷 分布式记账的方式带来了的好处就是大家都来记账,每个人手里都有一本完整的账本(数据),某部分(节点)的账本(数据)的丢失不会导致整个账本(数据)的丢失,因为账本(数据)是全网所有(节点)共有,即这个数据有无数个备份,随时可以恢复。 而且随着节点的增加,账本(数据)也越来越安全,很难摧毁。 当然,另外一个好处就是,任意一个或部分(节点)的账本(数据)的篡改,都不可能被全网认同,对于数据的篡改几乎不可能,除非你
这是filecoin协议里面对 PFT的解释,power概念就是矿工的影响力(influence),“Power”是filecoin系统的投票权力的大小度量,根据矿工贡献的Power来计算矿工的投票权有多大,根据信达雅的基本要求,所以称为“影响力容错”。之前曾经考虑过“权利容错”和“权益容错”,“权利”这个词本身表达不了大小的概念,而“权益”又跟Proof of Stake(权益证明:EC共识是在这个基础上进行的,有必要区分)有冲突,于是小编把这个词翻译成影响力容错。或许有更贴切的表达方式,欢迎讨论!
Tendermint是跨链Cosmos项目的核心技术。本文主要介绍以下内容: (1)Tendermint的网络层级框架图 (2)Tendermint模块组成及共识算法原理 (3)Tendermint工作流程
这两年,区块链的技术可以说是非常的火爆,不了解点什么都不好说自己是在互联网混的,有人将区块链称之为互联网2.0,可以说区块链将对现有的互联网技术进行改造升级。那么,就让我们一起来了解下什么是区块链吧。
区块链(Blockchain)技术自身仍然在飞速发展中,目前还缺乏统一的规范和标准。Wikipedia 给出的定义为:
它是区块链的根基。无论公链或是联盟链,共识机制都从基础上限制了区块链的交易处理能力和扩展性。
有人说人工智能是生产力的变革,让机器思考更多,干更多的活,让人少做点;那么区块链是一种解放生产关系的技术,区块链是在互联网的基础上发展而来,互联网让信息的传播突破了空间和时间的维度,信息变成一种宝贵的资源,而区块链更进一步,解决了在不可信信道上传输可信信息、价值转移的问题,而共识机制解决了区块链如何在分布式场景下达成一致性的问题。 什么是共识? 如果把人类社会理解成为一个超大规模的分布式系统,地球上的每个人都是独一无二的分布式节点,没有两个人是完全一样的,有句话叫人以类聚,物以群分。一个社会不同阶层、不同
我们前面简单的了解了下什么是区块链,那么我们现在整体来看下具体区块链的定义: 区块链技术是一个保证了最终一致性的数据库 。说是数据库因为在区块链上我们的数据是保存在节点上的,数据存储在数据节点上相当于我们说的数据库。数据保持一直是我们在每个节点的上的数据交换都不会进行篡改,并且每个节点都会同步数据。保证数据的有效性。 从数据结构上来说是基于时间序列的链式数据块结构。 从节点图上来看,节点都是互相冗余备份。冗余备份:每个节点上都会有相同的数据备份。 才操作上看。是建立在密码学的公私钥管理体系管理账户的
目录 1. 引言 2. 区块链介绍 2.1 区块链的起源 2.2 区块链分类和共识算法的选择 3. PBFT 算法介绍 3.1 拜占庭将军问题 3.1.2 口头消息 3.1.3 签名消息 3.2 PBFT 算法流程 3.3 PBFT 算法改进动机 4. PBFT 算法改进 4.1 改进思路 4.2 椭圆曲线 4.3 数字签名 4.4 聚合签名 4.5 改进 PBFT 5. 总结与思考 参考文献 1. 引言 📷 📷 📷 2. 区块链介绍 2.1 区块链的起源 📷 📷 📷 📷 2.2 区块链分类和共识算法的
不管你是从事任何职业,最近身边是不是总有人对你说:"诶你知道吗,现在web3.0可火了!“
这样的需求背后,是开发者想把一些数据上链,让智能合约管理和运算,以达成业务上的共识,但又不希望数据公开可见,避免链上其他未授权参与者读取,导致信息泄露。
而由于地域上特殊原因,你们这10支军队不能集合在一起单点进攻,必须在分开的状态下同时包围攻击敌国。如果是单支军队单独进攻的话是毫无胜算的,除非有至少有6支军队同时调遣一起袭击才能攻下敌国。你们分散在敌国的四周,依靠通信兵相互通信来协商进攻意向和进攻时间。
本文从技术角度全面了解 Cosmos 项目, Tendermint 是什么,Cosmos SDK 要解决什么,如何进行跨链,如何解决扩展性问题。
同步网络,即整个网络环境里存在一个最大的延迟上界。也就是说,我知道一个消息发给Alice,一秒钟之内(确定的时间)可以到达。
本文,作者首先介绍了拜占庭问题和口头消息算法;其次,详细讨论以HyperLedger1.0为基础的系统架构和数据库事务处理流程,并分析该架构与传统中心化数据库的主要区别;最后,以南京政务网建设为例子阐述区块链技术的具体应用。 图 作者 | 丁艺明 拜占庭问题 探究区块链其源头,我们不得不追溯到“拜占庭将军问题”。它是整个区块链技术核心思想的真正根源,也直接决定了区块链技术的种种与众不同的颠覆性特质。 在2013年获得计算机科学领域最高奖项图灵奖的31年前,莱斯利·兰伯特(Leslie Lamport)加入斯
● 稳定性、可靠性、持续性。因为它是一个分布式的网络架构,没有一个中心节点可以被打击或者攻击,所以在整体的技术布置方面有着更强的稳定性、可靠性和持续性。
随着技术浪潮的涌动,国家政策的推动,区块链又慢慢的进入了我们的视野中。在 2020 年初这个时刻,不妨我们再回头看看区块链的发展,聊聊区块链中的几个技术点,为新的一年打打基础。
本文从分布式系统角度讨论了区块链中的几种创新模式:不可变模式、异步和共识以及网络容错可靠性。 不可变模式 区块链是不可变的。 分布式系统已经在相当一段时间内依靠不变性来消除异常。 比如日志结构的文件系统、日志结构的合并树和Copy-On-Write(写时复制)是分布式系统中用于模拟不可变数据结构的常见模式/技巧。 区块链以类似于事件溯源Event Sourcing的方式来处理事务,这是分布式计算中用于处理事实和操作的常用技术。 不是用最新数据覆盖旧数据,而是创建一个包含所有事件/行动的只能不断追加app
一家区块链测试公司宣称其发现了一些相当令人震惊的结论:几个月前价值高达40亿美元的区块链协议EOS,实际上可能并不属于区块链。
以太坊分叉在早些时候就已经开始执行了,但是这并不意味这开发者可以明确表示这次系统的更新已经完成。 作为世界上第二大区块链的大改变之一,以太坊硬分叉是一个有风险且复杂的过程。为了成功完成这次转变,所有节点(运行系统的电脑)都需要安装更新–在全球化平台上同时发生的一次以太坊系统的转变。但是,对于拜占庭分叉这件事,其实并不完全是像它发生的那样。 由于软件更新是在硬分叉前几天才发布,相当大一部分网络还没有做出相应地改变。其实,最受欢迎的以太坊客户端Parity钱包有25.1%更新,Geth钱包有58.4%已经更新
一、区块链 1.1区块链是什么 关于区块链有着不同的定义,有的是从技术的应用层面,有的是从技术层面,这里我根据不同的解释,汇总出了一个技术层面上的定义 区块链的本质是一个分布式数据库,每一个节点的数据
区块链本身只是一种数据的记录格式, 与传统的记录格式不同的是, 区块链是将产生的数据按照一定的时间间隔, 分成一个个的数据块记录, 然后再根据数据块的先后关系串联起来, 也就是所谓的区块链了.
2018年是区块链技术开发的一个风口,在经历逐年高涨的区块链技术开发浪潮后,不单单是高新科技企业、包括传统企业、甚至是个人初创者都接入其中,试图在区块链技术开发普及之前,实现转型或者谋求未来市场!而在这个空白的领域下,抢时间,就是抢市场!所以区块链技术开发的安全性便成为了考虑的重点!
互联网是因为高速、大量传递信息,而改变了世界。比特币则弥补了互联网不能点对点转账、不能确保信息准确可靠的功能缺陷,因此创造了巨大价值。
这项技术深入研究由Chjango Unchained编写。本文比较了不同的共识系统,它们为EOS和Tendermint提供了关于每种基础技术以及它们有什么样的独特地类似证明(PoS)能力。
以下内容根据陈婧现场演讲,区块链大本营(blockchain_camp)再不改变作者的原意的情况下进行了精心的整理:
01— 拜占庭将军问题的起源 拜占庭位于如今的土耳其的伊斯坦布尔,是东罗马帝国的首都。由于当时拜占庭罗马帝国国土辽阔,为了防御目的,因此每个军队都分隔很远,将军与将军之间只能靠信差传消息。 在战争的时候,拜占庭军队内所有将军和副官必需达成一致的共识,决定是否有赢的机会才去攻打敌人的阵营。但是,在军队内有可能存有叛徒和敌军的间谍,左右将军们的决定又扰乱整体军队的秩序。在进行共识时,结果并不代表大多数人的意见。这时候,在已知有成员谋反的情况下,其余忠诚的将军在不受叛徒的影响下如何达成一致的协议,拜占庭问题就此形
Tenermint 是一个软件,用于在多台机器安全一致地复制一个应用。所谓安全,指的是即使有多达 1/3 的机器出现任意故障的情况下, Tendermint 仍然能够正常工作。所谓一致,指的是每一个正常工作的机器都会有着同样的交易日志,计算相同的状态。安全一致的复制是分布式系统中一个至关重要的问题:从货币到选举,到基础设施规划,它在广泛应用的容错中承担了一个极其重要的角色。
最近大火的区块链到底解决了什么问题?其实解决的是建立了一套让一群互不信任的人达成共识的机制。
原文地址:https://blog.csdn.net/u012562943/article/details/60779241
拜占庭将军问题首先是由Leslie Lamport等人在1982年提出,被称为The Byzantine Generals Problem或者Byzantine Failure。这个问题是这样描述的:
接触区块链的同学,多少都听说过拜占庭将军问题,经常看到或听到某某区块链使用某某算法解决了拜占庭将军问题,那么究竟什么是拜占庭将军问题呢什么是拜占庭将军问题 也被称为“拜占庭容错”、“拜占庭将军问题”。 拜占庭将军问题是Leslie Lamport(2013年的图灵讲得住)用来为描述分布式系统一致性问题(Distributed Consensus)在论文中抽象出来一个著名的例子。 这个例子大意是这样的: 拜占庭帝国想要进攻一个强大的敌人,为此派出了10支军队去包围这个敌人。这个敌人虽不比拜占庭帝国,但也足以抵
本篇专栏 ←持续记录本人自学两年走过无数弯路的智能合约学习笔记和经验总结 如果喜欢拜托三连支持~
本文目录 分布式系统问题 工作证明POW 比特币的价值 参考 分布式系统问题 拜占庭将军问题 一组拜占庭将军分别各率领一支军队共同围困一座城市。为了简化问题,将各支军队的行动策略限定为进攻或撤
Calibra的数字主管Ben Maurer在2月19日的斯坦福区块链会议上推出了Facebook的编程语言Move。Move语言由Facebook公司发明,旨在为Libra区块链奠定安全和可编程的基础。
FLP 不可能原理(FLP impossibility):在网络可靠,存在节点失效(即便只有一个)的最小化异步模型系统中,不存在一个可以解决一致性问题的确定性算法。1985年 FLP 原理实际上说明对于允许节点失效情况下,纯粹异步系统无法确保一致性在有限时间内完成。 科学告诉你什么是不可能的;工程则告诉你,付出一些代价,我可以把它变成可能。
最近三个月更新了 8 篇分布式理论和算法的文章,发现这些知识点虽然有一丢丢小枯燥,但是非常重要,于是每篇我都用故事的方式进行讲解,力求每篇都能让大家都能看懂,是不是很用心呢?
领取专属 10元无门槛券
手把手带您无忧上云