拜占庭机制区块链,区块链解决拜占庭将军问题拜占庭创新社区块链

zhousys 区块链知识 2023-10-29 06:12 407

摘要:拜占庭创新社区块链拜占庭可靠性:拜占庭可靠性是块链技术的一个重要特性,它可以确保在分布式系统中多数节点的一致性,从而保证交易的安全性与准确性。拜占庭可靠性可以确...

拜占庭创新社区块链

拜占庭可靠性:拜占庭可靠性是块链技术的一个重要特性,它可以确保在分布式系统中多数节点的一致性,从而保证交易的安全性与准确性。拜占庭可靠性可以确保,即使某些节点出现故障或被攻击,系统仍然可以正常运行,而不会影响到整个系统的安全性。

去中心化:拜占庭创新社区块链技术具有去中心化的特性,它不依赖任何中心化的组织或机构,而是由多个参与者协同完成数据的共享、存储和确认。这种技术的去中心化特性可以确保系统的安全性,并且可以提供更高的效率和可靠性。

共识机制:拜占庭创新社区块链技术运用共识机制来确保系统的安全性和可靠性。共识机制是一种特殊的协议,它可以确保系统中的所有参与者都能够达成一致,从而确保系统的安全性和可靠性。共识机制可以通过使用不同的算法或技术,来确保系统的安全性,从而确保系统的可靠性。

㈠ 秦储承办 | 西部数博会暨第三届西安区块链产业发展论坛成功召开!

2022年6月17日下午,由 中共西安市委人才工作领导小组办公室、西安市大数据资源管理局指导,西安市区块链技术应用协会主办,秦储承办的“2022中国西部数字经济博览会暨第三届中国西安区块链产业发展论坛” (以下简称:论坛)成功召开,巴比特、西部网、环球网、中国报道、中国新闻、三秦都市报、大秦网、西安日报、西安晚报、华商报、华商网、凤凰风、新浪网、搜狐网、网易、腾讯网、链节点、8问、察访区块链等多家媒体为本届论坛提供报道支持。

本届论坛作为2022中国西部数字经济博览会的分论坛,论坛以“聚焦元宇宙·培育新业态·释放新动能”为主题,特邀 西安市大数据资源管理局孙伟副局长,中国书法家协会理事、陕西武警总队原司令员王春新,西安培华学院姜波理事长,陕西职业技术学院党委副书记、院长刘胜辉,中共西安市委网信办信息化处李永彬处长,西安浐灞生态区管委会产业发展促进局张艺副局长,西安市区块链技术应用协会檀敏会长,西安市区块链技术应用协会李伟鹏秘书长,西安市区块链技术应用协会赵亮监事长, 以及政府领导、主题演讲嘉宾、圆桌会议嘉宾、行业协会代表、区块链领域专家、财经媒体代表、本地企业代表等近500名嘉宾出席,共同探讨时代前沿话题,共话区块链产业未来发展趋势。

本届论坛在社会各界代表的大力支持下,设有 政府领导致辞、大咖主题演讲、颁奖仪式、签约仪式、嘉宾圆桌对话 等多个环节,以探索数字经济和实体经济的双向赋能道路,积极推进区块链产业的跨区域联动发展,释放区块链产业发展新动能,持续推动数字经济和实体经济融合发展。

本届论坛于6月17日下午14:00正式开启,在两位主持人对到场的政府领导和参会嘉宾进行简要介绍并表示热烈欢迎后,论坛正式开幕!

论坛伊始,西安市大数据资源管理局孙伟副局长为本次论坛致欢迎辞。 孙副局长在本次致辞中,重点介绍了我国区块链产业发展现状、我市数字经济发展成果等情况。

孙副局长在本次致辞中强调:

当前,全球经济仍处于脆弱复苏之中,数字经济已成为有效推动经济高质量发展的新动能和新引擎。作为数字经济产业的西部重镇,西安立足新发展阶段、贯彻新发展理念、构建新发展格局,在智慧城市、数字经济等方面已经取得了一定成效,西安大数据协会、区块链协会等行业组织的正向引导,更是为我市数字经济的未来发展奠定了坚实基础。

未来,西安将坚持创新驱动,营造良好数字生态,努力推动数字技术更好服务实体经济,营造开放、公平、公正、非歧视的数字经济发展环境,同时欢迎各企业落户西安,共建数字经济产业生态!

演讲嘉宾: 鲍大伟 金链盟区块链战略合作负责人

作为本届论坛的第一位主题演讲嘉宾,鲍大伟先生系统介绍了金链盟的定位、宗旨、技术优势、落地应用、人才培育体系、合作网络等多方面情况。

鲍大伟先生谈到:

作为中国最大的区块链组织、最具活力的区块链技术开源社区、最具国际影响力的区块链联盟之一,金链盟立足湾区,服务中国,以安全可控技术为特色,致力于提升金融服务实体经济能力。截止目前,金链盟已实现全链路国产化支持,200多个应用稳定生产运行,多案例取得良好的社会、经济效益;广受认可的区块链人才培育体系,成功培育了区块链专业人才3万余人,持续输出区块链产业中坚力量!

演讲嘉宾: 檀敏  西安市区块链技术应用协会会长

论坛现场,檀敏会长以“企业面临的难题和思考的问题”为切入点,详细介绍了数字技术对企业发展的推动作用、元宇宙产业格局等内容。

檀敏会长谈到:

企业渴望通过数字技术,在“市场需求、品牌打造、用户获取、用户粘性、增加盈利、产业升级”等方面得到突破,目前已经有部分企业取得成功。面对“数字藏品+实体经济+元宇宙”的未来大趋势,政府、行业协会、产业园区、先知先行企业和学术机构,都是元宇宙的重要推动者,跨行业、跨领域的技术融通与业务创新,有望促成日益繁荣的元宇宙产业格局。

在两位嘉宾的精彩演讲后,本届论坛迎来了首个签约仪式: “元农源--赋能实体经济 助力乡村振兴”战略合作签约仪式 (以下简称:签约仪式)。

赵祥兵   元农源总经理

刘志强  西安市阎良区数据信息服务中心主任

白昱   渭南市蒲城县大数据中心主任

郭红兵  洛川果投好苹果供应链管理有限公司董事长

张建波  兴平市辣椒产业协会会长

张迈  礼泉县小应村村委书记

付磊   陕西新知青网络科技有限公司总经理

陈清  大荔百果王冬枣合作社总经理

演讲嘉宾: 马千里  巴比特副总裁&META50人论坛秘书长

作为本届论坛的第三位主题演讲嘉宾,马千里秘书长以“元宇宙概念”为切入点,介绍了“未来元宇宙的产品形态、未来的元宇宙版权形态”等方面内容。

马千里先生提到:

随着元宇宙概念和关键技术的逐渐成熟,元宇宙被不断地应用到各个场景。在移动互联网时代,网页被APP取而代之,人们的交互性更便捷,只需点动手指,便可传达输出成千上万的信息;元宇宙时代的产品形态被NPC取而代之,AR/AI虚拟技术采用全景虚拟技术,提高沉浸感。

未来NPC的核心将会是底层协议(区块链)+虚拟数字人(视觉呈现)+AI(大规模决策),未来元宇宙中的版权形态将会催生出新的资产形态、新的创作主体以及新的组合状态,未来元宇宙的新型产业版图正在逐渐成型。

演讲嘉宾: 马强     区块链服务网络BSN发展联盟副理事长单位 、 红枣科技C00

论坛现场,马强先生系统阐述了区块链如何赋能数字经济、什么是NFT技术、NFT技术在元宇宙中的重要性、NFT的中国化技术体系等内容。

马强先生提到:

DDC网络是在区块链服务网络BSN之上,建立一个由多条开放联盟链组成的二级网络,并为NFT/DDC的生成提供现成的链环境和相关的智能合约、API和SDK。BSN-DDC基础网络秉承“像公有链一样透明、在国内完全合规、价格低廉、技术多样性”等八大核心理念,目前已建设泰安链、武汉链、文昌链、福州链等多条基于不同区块链技术的开放联盟链!

主持人: 李海峰  秦储科技运维总监

圆桌嘉宾:

李石   腾讯云西北总经理

姚尧   浪潮陕西区云装备总经理

王磊   华为云区块链产品总监

刘福华   亚马逊云科技西北业务总监

张磊   阿里云西北互联网业务总监

么益   金山云政企事业部公共事务总监

圆桌会议上,各嘉宾围绕着“元宇宙 - 下一代互联网与商业场景”这一主题,分别就“元宇宙的未来形态、元宇宙领域的发力方向、云计算在元宇宙产业的作用、值得关注的元宇宙应用场景”发表了各自观点。 正如诸位嘉宾所言:元宇宙赛道充满了想象空间,值得所有企业布局探索。

分享嘉宾: 鲍帅 深信科创信息技术公司联合创始人&COO

论坛现场,鲍帅先生以“区块链+自动驾驶”为切入点,分享了自动驾驶系统的商业落地问题、基于区块链的自动驾驶数据共享、基于区块链的自动驾驶数据共享等技术落地方向。

在鲍帅先生的精彩演讲后,本届论坛迎来了第二轮签约环节: 甘肃文交中心丝路数字藏品交易平台签约仪式 (以下简称:签约仪式)。

深耕文化融合新领域,锻造国际文交大平台,甘肃省文化产权交易中心始终秉持“文化对接资本,交易提升价值”的宗旨,不断推动文化与互联网的融合发展,全力打造一个文化要素跨行业、跨地域、专业化、精品化、特色化为一体的文化产业综合性服务平台。

甘肃文交中心丝路数字藏品交易平台 作为一站式数字商品产业服务平台,不断推动数字商品的确权、确真、确价、确信、确序,真正意义服务实体经济,促进数字商品的流通,推进文化与互联网、金融以及创意的深度融合。

王启明   甘肃文交丝路数藏交易平台总经理

孟凡盈   秦储科技总经理

王启明   甘肃文交丝路数藏交易平台总经理

杨宁   陕西叁贰贰文化创意发展有限公司总经理

演讲嘉宾: 杨永强  纸贵科技产品总监

作为本届论坛的第五位主题嘉宾,杨永强先生以“元宇宙赋能数字产业的应用实践”为切入点,举例分享了元宇宙在数字产业中的实践应用,以及未来元宇宙对于数字经济的影响。

杨永强先生提到:

作为跃向数字世界的重要方式,国内多个城市已经先后发布了元宇宙激励政策;作为整合多种新技术产生的新型社会形态,元宇宙已经在城市治理、数字孪生、数字藏品、数字艺术、城市展厅、文娱活动、虚拟数字人物等多行业多领域产业数字化转型过程中持续发力!

演讲嘉宾: 马立川   陕西省区块链与安全计算重点实验室副主任

作为本届论坛的最后一位主题分享嘉宾,马立川副主任从“区块链赋能可信数字经济建设”为切入点,系统阐述了国内外产业现状、国内产业发展趋势、陕西省数字经济各业态数据、数字经济发展面临的挑战等内容。

马立川副主任表示:

数字经济是打造新发展格局的关键要素,数字经济里最核心的是数据,如若能通过推动传统数字要素革新与传统产业广泛深度融合给予实现资源利用最大化、规模经济泛在化供需均衡方面展现了很大的一个潜力。

有了传统数据要素核心重组加上数据要素畅通,这样一来就能够融合发展强大的国内市场,也能够大力拓展国外的贸易市场。

本届论坛的颁奖仪式由西安市区块链技术应用协会檀敏会长、李伟鹏秘书长、赵亮监事长担任颁奖嘉宾,分别颁发 【元宇宙产业技术领军品牌】 和 【数字文化产业创新品牌】 两项大奖,获奖企业如下:

元宇宙产业技术领军品牌:

金链盟、阿里云、腾讯云、华为云、金山云、浪潮、亚马逊云科技、纸贵科技、趣链科技、秦储科技、红枣科技、飞蝶XR科技、矩池云、艺元科技

数字文化产业创新品牌:

灵境藏品、秦储数藏、红洞数藏、无界版图

主持人: 马千里   巴比特副总裁、META50人论坛秘书长

圆桌嘉宾:

杨锦帆   西北政法大学法治与科技发展研究室主任

祁鲁   厦门市云大物智数据研究院院长

张耀森  福建省区块链协会副秘书长

张玮   南京区块链产业应用协会副会长、艺元科技总经理

韩奎   秦储产品总监

陈思琪   灵境藏品商务负责人

第二轮圆桌会议上,各嘉宾围绕着“区块链技术推动数字文化产业高质量发展”这一主题,共同就“区块链技术如何助力我国文化产业数字化、文化产业数字化催生新消费新业态、数字文化产业面临的问题与挑战、如何推动数字文化产业高质量规范化发展、数字藏品的未来重点布局方向”等问题进行了探讨, 数字文化产业凭借开放性、低门槛和互动性等优势,进一步延长文化产业链,促进结构优化,形成线上线下一体化发展新趋势!

㈡ 区块链的共识机制

一、区块链共识机制的目标

区块链是什么?简单而言,区块链是一种去中心化的数据库,或可以叫作分布式账本(distributed ledger)。传统上所有的数据库都是中心化的,例如一间银行的账本就储存在银行的中心服务器里。中心化数据库的弊端是数据的安全及正确性全系于数据库运营方(即银行),因为任何能够访问中心化数据库的人(如银行职员或黑客)都可以破坏或修改其中的数据。


而区块链技术则容许数据库存放在全球成千上万的电脑上,每个人的账本通过点对点网络进行同步,网络中任何用户一旦增加一笔交易,交易信息将通过网络通知其他用户验证,记录到各自的账本中。区块链之所以得其名是因为它是由一个个包含交易信息的区块(block)从后向前有序链接起来的数据结构。


很多人对区块链的疑问是,如果每一个用户都拥有一个独立的账本,那么是否意味着可以在自己的账本上添加任意的交易信息,而成千上万个账本又如何保证记账的一致性? 解决记账一致性问题正是区块链共识机制的目标 。区块链共识机制旨在保证分布式系统里所有节点中的数据完全相同并且能够对某个提案(proposal)(例如是一项交易纪录)达成一致。然而分布式系统由于引入了多个节点,所以系统中会出现各种非常复杂的情况;随着节点数量的增加,节点失效或故障、节点之间的网络通信受到干扰甚至阻断等就变成了常见的问题,解决分布式系统中的各种边界条件和意外情况也增加了解决分布式一致性问题的难度。


区块链又可分为三种:


公有链:全世界任何人都可以随时进入系统中读取数据、发送可确认交易、竞争记账的区块链。公有链通常被认为是“完全去中心化“的,因为没有任何人或机构可以控制或篡改其中数据的读写。公有链一般会通过代币机制鼓励参与者竞争记账,来确保数据的安全性。


联盟链:联盟链是指有若干个机构共同参与管理的区块链。每个机构都运行着一个或多个节点,其中的数据只允许系统内不同的机构进行读写和发送交易,并且共同来记录交易数据。这类区块链被认为是“部分去中心化”。


私有链:指其写入权限是由某个组织和机构控制的区块链。参与节点的资格会被严格的限制,由于参与的节点是有限和可控的,因此私有链往往可以有极快的交易速度、更好的隐私保护、更低的交易成本、不容易被恶意攻击、并且能够做到身份认证等金融行业必须的要求。相比中心化数据库,私有链能够防止机构内单节点故意隐瞒或篡改数据。即使发生错误,也能够迅速发现来源,因此许多大型金融机构在目前更加倾向于使用私有链技术。

二、区块链共识机制的分类

解决分布式一致性问题的难度催生了数种共识机制,它们各有其优缺点,亦适用于不同的环境及问题。被众人常识的共识机制有:


l PoW(Proof of Work)工作量证明机制

l PoS(Proof of Stake)股权/权益证明机制

l DPoS(Delegated Proof of Stake)股份授权证明机制

l PBFT(Practical Byzantine Fault Tolerance)实用拜占庭容错算法

l DBFT(Delegated Byzantine Fault Tolerance)授权拜占庭容错算法

l SCP (Stellar Consensus Protocol ) 恒星共识协议

l RPCA(Ripple Protocol Consensus Algorithm)Ripple共识算法

l Pool验证池共识机制


(一)PoW(Proof of Work)工作量证明机制


1. 基本介绍


在该机制中,网络上的每一个节点都在使用SHA256哈希函数(hash function) 运算一个不断变化的区块头的哈希值 (hash sum)。 共识要求算出的值必须等于或小于某个给定的值。 在分布式网络中,所有的参与者都需要使用不同的随机数来持续计算该哈希值,直至达到目标为止。当一个节点的算出确切的值,其他所有的节点必须相互确认该值的正确性。之后新区块中的交易将被验证以防欺诈。


在比特币中,以上运算哈希值的节点被称作“矿工”,而PoW的过程被称为“挖矿”。挖矿是一个耗时的过程,所以也提出了相应的激励机制(例如向矿工授予一小部分比特币)。PoW的优点是完全的去中心化,其缺点是消耗大量算力造成了的资源浪费,达成共识的周期也比较长,共识效率低下,因此其不是很适合商业使用。



2. 加密货币的应用实例


比特币(Bitcoin) 及莱特币(Litecoin)。以太坊(Ethereum) 的前三个阶段(Frontier前沿、Homestead家园、Metropolis大都会)皆采用PoW机制,其第四个阶段 (Serenity宁静) 将采用权益证明机制。PoW适用于公有链。


PoW机制虽然已经成功证明了其长期稳定和相对公平,但在现有框架下,采用PoW的“挖矿”形式,将消耗大量的能源。其消耗的能源只是不停的去做SHA256的运算来保证工作量公平,并没有其他的存在意义。而目前BTC所能达到的交易效率为约5TPS(5笔/秒),以太坊目前受到单区块GAS总额的上限,所能达到的交易频率大约是25TPS,与平均千次每秒、峰值能达到万次每秒处理效率的VISA和MASTERCARD相差甚远。


3. 简图理解模式



(ps:其中A、B、C、D计算哈希值的过程即为“挖矿”,为了犒劳时间成本的付出,机制会以一定数量的比特币作为激励。)


(Ps:PoS模式下,你的“挖矿”收益正比于你的币龄(币的数量*天数),而与电脑的计算性能无关。我们可以认为任何具有概率性事件的累计都是工作量证明,如淘金。假设矿石含金量为p% 质量, 当你得到一定量黄金时,我们可以认为你一定挖掘了1/p 质量的矿石。而且得到的黄金数量越多,这个证明越可靠。)


(二)PoS(Proof of Stake)股权/权益证明机制


1.基本介绍


PoS要求人们证明货币数量的所有权,其相信拥有货币数量多的人攻击网络的可能性低。基于账户余额的选择是非常不公平的,因为单一最富有的人势必在网络中占主导地位,所以提出了许多解决方案。


在股权证明机制中,每当创建一个区块时,矿工需要创建一个称为“币权”的交易,这个交易会按照一定比例预先将一些币发给矿工。然后股权证明机制根据每个节点持有代币的比例和时间(币龄), 依据算法等比例地降低节点的挖矿难度,以加快节点寻找随机数的速度,缩短达成共识所需的时间。


与PoW相比,PoS可以节省更多的能源,更有效率。但是由于挖矿成本接近于0,因此可能会遭受攻击。且PoS在本质上仍然需要网络中的节点进行挖矿运算,所以它同样难以应用于商业领域。



2.数字货币的应用实例


PoS机制下较为成熟的数字货币是点点币(Peercoin)和未来币(NXT),相比于PoW,PoS机制节省了能源,引入了" 币天 "这个概念来参与随机运算。PoS机制能够让更多的持币人参与到记账这个工作中去,而不需要额外购买设备(矿机、显卡等)。每个单位代币的运算能力与其持有的时间长成正相关,即持有人持有的代币数量越多、时间越长,其所能签署、生产下一个区块的概率越大。一旦其签署了下一个区块,持币人持有的币天即清零,重新进入新的循环。


PoS适用于公有链。


3.区块签署人的产生方式


在PoS机制下,因为区块的签署人由随机产生,则一些持币人会长期、大额持有代币以获得更大概率地产生区块,尽可能多的去清零他的"币天"。因此整个网络中的流通代币会减少,从而不利于代币在链上的流通,价格也更容易受到波动。由于可能会存在少量大户持有整个网络中大多数代币的情况,整个网络有可能会随着运行时间的增长而越来越趋向于中心化。相对于PoW而言,PoS机制下作恶的成本很低,因此对于分叉或是双重支付的攻击,需要更多的机制来保证共识。稳定情况下,每秒大约能产生12笔交易,但因为网络延迟及共识问题,需要约60秒才能完整广播共识区块。长期来看,生成区块(即清零"币天")的速度远低于网络传播和广播的速度,因此在PoS机制下需要对生成区块进行"限速",来保证主网的稳定运行。


4.简图理解模式




(PS:拥有越多“股份”权益的人越容易获取账权。是指获得多少货币,取决于你挖矿贡献的工作量,电脑性能越好,分给你的矿就会越多。)


(在纯POS体系中,如NXT,没有挖矿过程,初始的股权分配已经固定,之后只是股权在交易者之中流转,非常类似于现实世界的股票。)


(三)DPoS(Delegated Proof of Stake)股份授权证明机制


1.基本介绍


由于PoS的种种弊端,由此比特股首创的权益代表证明机制 DPoS(Delegated Proof of Stake)应运而生。DPoS 机制中的核心的要素是选举,每个系统原生代币的持有者在区块链里面都可以参与选举,所持有的代币余额即为投票权重。通过投票,股东可以选举出理事会成员,也可以就关系平台发展方向的议题表明态度,这一切构成了社区自治的基础。股东除了自己投票参与选举外,还可以通过将自己的选举票数授权给自己信任的其它账户来代表自己投票。


具体来说, DPoS由比特股(Bitshares)项目组发明。股权拥有着选举他们的代表来进行区块的生成和验证。DPoS类似于现代企业董事会制度,比特股系统将代币持有者称为股东,由股东投票选出101名代表, 然后由这些代表负责生成和验证区块。 持币者若想称为一名代表,需先用自己的公钥去区块链注册,获得一个长度为32位的特有身份标识符,股东可以对这个标识符以交易的形式进行投票,得票数前101位被选为代表。

代表们轮流产生区块,收益(交易手续费)平分。DPoS的优点在于大幅减少了参与区块验证和记账的节点数量,从而缩短了共识验证所需要的时间,大幅提高了交易效率。从某种角度来说,DPoS可以理解为多中心系统,兼具去中心化和中心化优势。优点:大幅缩小参与验证和记账节点的数量,可以达到秒级的共识验证。缺点:投票积极性不高,绝大部分代币持有者未参与投票;另整个共识机制还是依赖于代币,很多商业应用是不需要代币存在的。


DPoS机制要求在产生下一个区块之前,必须验证上一个区块已经被受信任节点所签署。相比于PoS的" 全民挖矿 ",DPoS则是利用类似" 代表大会 "的制度来直接选取可信任节点,由这些可信任节点(即见证人)来代替其他持币人行使权力,见证人节点要求长期在线,从而解决了因为PoS签署区块人不是经常在线而可能导致的产块延误等一系列问题。 DPoS机制通常能达到万次每秒的交易速度,在网络延迟低的情况下可以达到十万秒级别,非常适合企业级的应用。 因为公信宝数据交易所对于数据交易频率要求高,更要求长期稳定性,因此DPoS是非常不错的选择。



2. 股份授权证明机制下的机构与系统


理事会是区块链网络的权力机构,理事会的人选由系统股东(即持币人)选举产生,理事会成员有权发起议案和对议案进行投票表决。


理事会的重要职责之一是根据需要调整系统的可变参数,这些参数包括:


l 费用相关:各种交易类型的费率。

l 授权相关:对接入网络的第三方平台收费及补贴相关参数。

l 区块生产相关:区块生产间隔时间,区块奖励。

l 身份审核相关:审核验证异常机构账户的信息情况。

l 同时,关系到理事会利益的事项将不通过理事会设定。


在Finchain系统中,见证人负责收集网络运行时广播出来的各种交易并打包到区块中,其工作类似于比特币网络中的矿工,在采用 PoW(工作量证明)的比特币网络中,由一种获奖概率取决于哈希算力的抽彩票方式来决定哪个矿工节点产生下一个区块。而在采用 DPoS 机制的金融链网络中,通过理事会投票决定见证人的数量,由持币人投票来决定见证人人选。入选的活跃见证人按顺序打包交易并生产区块,在每一轮区块生产之后,见证人会在随机洗牌决定新的顺序后进入下一轮的区块生产。


3. DPoS的应用实例


比特股(bitshares) 采用DPoS。DPoS主要适用于联盟链。


4.简图理解模式





(四)PBFT(Practical Byzantine Fault Tolerance)实用拜占庭容错算法


1. 基本介绍


PBFT是一种基于严格数学证明的算法,需要经过三个阶段的信息交互和局部共识来达成最终的一致输出。三个阶段分别为预备 (pre-prepare)、准备 (prepare)、落实 (commit)。PBFT算法证明系统中只要有2/3比例以上的正常节点,就能保证最终一定可以输出一致的共识结果。换言之,在使用PBFT算法的系统中,至多可以容忍不超过系统全部节点数量1/3的失效节点 (包括有意误导、故意破坏系统、超时、重复发送消息、伪造签名等的节点,又称为”拜占庭”节点)。



2. PBFT的应用实例


著名联盟链Hyperledger Fabric v0.6采用的是PBFT,v1.0又推出PBFT的改进版本SBFT。PBFT主要适用于私有链和联盟链。


3. 简图理解模式




上图显示了一个简化的PBFT的协议通信模式,其中C为客户端,0 – 3表示服务节点,其中0为主节点,3为故障节点。整个协议的基本过程如下:


(1) 客户端发送请求,激活主节点的服务操作;

(2) 当主节点接收请求后,启动三阶段的协议以向各从节点广播请求;

(a) 序号分配阶段,主节点给请求赋值一个序号n,广播序号分配消息和客户端的请求消息m,并将构造pre-prepare消息给各从节点;

(b) 交互阶段,从节点接收pre-prepare消息,向其他服务节点广播prepare消息;

(c) 序号确认阶段,各节点对视图内的请求和次序进行验证后,广播commit消息,执行收到的客户端的请求并给客户端响应。

(3) 客户端等待来自不同节点的响应,若有m+1个响应相同,则该响应即为运算的结果;



(五)DBFT(Delegated Byzantine Fault Tolerance)授权拜占庭容错算法


1. 基本介绍


DBFT建基于PBFT的基础上,在这个机制当中,存在两种参与者,一种是专业记账的“超级节点”,一种是系统当中不参与记账的普通用户。普通用户基于持有权益的比例来投票选出超级节点,当需要通过一项共识(记账)时,在这些超级节点中随机推选出一名发言人拟定方案,然后由其他超级节点根据拜占庭容错算法(见上文),即少数服从多数的原则进行表态。如果超过2/3的超级节点表示同意发言人方案,则共识达成。这个提案就成为最终发布的区块,并且该区块是不可逆的,所有里面的交易都是百分之百确认的。如果在一定时间内还未达成一致的提案,或者发现有非法交易的话,可以由其他超级节点重新发起提案,重复投票过程,直至达成共识。



2. DBFT的应用实例


国内加密货币及区块链平台NEO是 DBFT算法的研发者及采用者。


3. 简图理解模式




假设系统中只有四个由普通用户投票选出的超级节点,当需要通过一项共识时,系统就会从代表中随机选出一名发言人拟定方案。发言人会将拟好的方案交给每位代表,每位代表先判断发言人的计算结果与它们自身纪录的是否一致,再与其它代表商讨验证计算结果是否正确。如果2/3的代表一致表示发言人方案的计算结果是正确的,那么方案就此通过。


如果只有不到2/3的代表达成共识,将随机选出一名新的发言人,再重复上述流程。这个体系旨在保护系统不受无法行使职能的领袖影响。


上图假设全体节点都是诚实的,达成100%共识,将对方案A(区块)进行验证。



鉴于发言人是随机选出的一名代表,因此他可能会不诚实或出现故障。上图假设发言人给3名代表中的2名发送了恶意信息(方案B),同时给1名代表发送了正确信息(方案A)。


在这种情况下该恶意信息(方案B)无法通过。中间与右边的代表自身的计算结果与发言人发送的不一致,因此就不能验证发言人拟定的方案,导致2人拒绝通过方案。左边的代表因接收了正确信息,与自身的计算结果相符,因此能确认方案,继而成功完成1次验证。但本方案仍无法通过,因为不足2/3的代表达成共识。接着将随机选出一名新发言人,重新开始共识流程。




上图假设发言人是诚实的,但其中1名代表出现了异常;右边的代表向其他代表发送了不正确的信息(B)。


在这种情况下发言人拟定的正确信息(A)依然可以获得验证,因为左边与中间诚实的代表都可以验证由诚实的发言人拟定的方案,达成2/3的共识。代表也可以判断到底是发言人向右边的节点说谎还是右边的节点不诚实。


(六)SCP (Stellar Consensus Protocol ) 恒星共识协议


1. 基本介绍


SCP 是 Stellar (一种基于互联网的去中心化全球支付协议) 研发及使用的共识算法,其建基于联邦拜占庭协议 (Federated Byzantine Agreement) 。传统的非联邦拜占庭协议(如上文的PBFT和DBFT)虽然确保可以通过分布式的方法达成共识,并达到拜占庭容错 (至多可以容忍不超过系统全部节点数量1/3的失效节点),它是一个中心化的系统 — 网络中节点的数量和身份必须提前知晓且验证过。而联邦拜占庭协议的不同之处在于它能够去中心化的同时,又可以做到拜占庭容错。


[…]


(七)RPCA(Ripple Protocol Consensus Algorithm)Ripple共识算法


1. 基本介绍


RPCA是Ripple(一种基于互联网的开源支付协议,可以实现去中心化的货币兑换、支付与清算功能)研发及使用的共识算法。在 Ripple 的网络中,交易由客户端(应用)发起,经过追踪节点(tracking node)或验证节点(validating node)把交易广播到整个网络中。追踪节点的主要功能是分发交易信息以及响应客户端的账本请求。验证节点除包含追踪节点的所有功能外,还能够通过共识协议,在账本中增加新的账本实例数据。


Ripple 的共识达成发生在验证节点之间,每个验证节点都预先配置了一份可信任节点名单,称为 UNL(Unique Node List)。在名单上的节点可对交易达成进行投票。共识过程如下:


(1) 每个验证节点会不断收到从网络发送过来的交易,通过与本地账本数据验证后,不合法的交易直接丢弃,合法的交易将汇总成交易候选集(candidate set)。交易候选集里面还包括之前共识过程无法确认而遗留下来的交易。

(2) 每个验证节点把自己的交易候选集作为提案发送给其他验证节点。

(3) 验证节点在收到其他节点发来的提案后,如果不是来自UNL上的节点,则忽略该提案;如果是来自UNL上的节点,就会对比提案中的交易和本地的交易候选集,如果有相同的交易,该交易就获得一票。在一定时间内,当交易获得超过50%的票数时,则该交易进入下一轮。没有超过50%的交易,将留待下一次共识过程去确认。

(4) 验证节点把超过50%票数的交易作为提案发给其他节点,同时提高所需票数的阈值到60%,重复步骤(3)、步骤(4),直到阈值达到80%。

(5) 验证节点把经过80%UNL节点确认的交易正式写入本地的账本数据中,称为最后关闭账本(last closed ledger),即账本最后(最新)的状态。


在Ripple的共识算法中,参与投票节点的身份是事先知道的,因此,算法的效率比PoW等匿名共识算法要高效,交易的确认时间只需几秒钟。这点也决定了该共识算法只适合于联盟链或私有链。Ripple共识算法的拜占庭容错(BFT)能力为(n-1)/5,即可以容忍整个网络中20%的节点出现拜占庭错误而不影响正确的共识。



2. 简图理解模式


共识过程节点交互示意图:



共识算法流程:



(八)POOL验证池共识机制


Pool验证池共识机制是基于传统的分布式一致性算法(Paxos和Raft)的基础上开发的机制。Paxos算法是1990年提出的一种基于消息传递且具有高度容错特性的一致性算法。过去, Paxos一直是分布式协议的标准,但是Paxos难于理解,更难以实现。Raft则是在2013年发布的一个比Paxos简单又能实现Paxos所解决问题的一致性算法。Paxos和Raft达成共识的过程皆如同选举一样,参选者需要说服大多数选民(服务器)投票给他,一旦选定后就跟随其操作。Paxos和Raft的区别在于选举的具体过程不同。而Pool验证池共识机制即是在这两种成熟的分布式一致性算法的基础上,辅之以数据验证的机制。






㈢ 区块链的技术原理是什么

区块链技术涉及的关键点包括:去中心化(册芦陪Decentralized)、去信任(Trustless)、集体维护(Collectivelymaintain)、可靠数据库(ReliableDatabase)、时间戳(Timestamp)、非对称加密(AsymmetricCryptography)等。

区块链技术重新定义了网络中信用的生成方式:在系统中,参与者无需了解其他人的背景资料,也不需要借助第三方机构的担保或保证,区块链技术保障了系统对价值转移的活动进行记录、传输、存储,其最后的结果一定是可信的。

(3)拜占庭创新社区块链扩展阅读

区块链技术原理的来源可归纳为一个数学问题:拜占庭将军问题。拜占庭将军问题延伸到互联网生活中来,其内涵可概括为:在互联网大背景下,当需要与不熟悉的对手方进行价值交换活动时,人们如何才能防止不会被其中的恶意破坏者欺骗、迷惑从而做出错误的决策。

进一步将拜占庭将军问题延伸到技术领域中来,其内涵可概括为:在缺少可信任州蠢的中央节点和可信任的通道的情况哗此下,分布在网络中的各个节点应如何达成共识。区块链技术解决了闻名已久的拜占庭将军问题——它提供了一种无需信任单个节点、还能创建共识网络的方法。

㈣ 理论上区块链怎么解决拜占庭将军问题

拜占庭将军问题(以下简称“共识问题”)的正式表述是:如何在一个不基于信任的分布式网络中就信息达成共识?这个表述听起来有些晦涩,但其本质并不复杂,下面的例子与共识问题虽然并不完全一致,但却有助于我们的理解[9]。

想象一下在遥远的拜占庭时代,有一个富饶的城邦,金银珠宝绫罗绸缎应有尽有,它的领主哆啦A梦独享着这一切奢华与荣耀。而在城邦的外围,四位拜占庭将军大雄、胖虎、小夫和静香都觊觎着哆啦A梦的财富,于是他们决定联手攻占哆啦A梦的城邦。根据双方的实力对比,必须有超过半数的将军同时发起进攻方能克敌制胜,因此获胜条件就是四人中至少三个人可以就进攻时间达成一致。那么四位将军的胜算有多少呢?

这个问题的答案就要取决于四个人的合作方式了,如果是集中式系统,有一个盟主,比如胖虎(相当于中央服务器),那么他们的胜利是毫无悬念的,因为就进攻时间达成一致非常简单,只要胖虎召集大雄、小夫和静香开个会讨论一下就可以了,即使大家意见有分歧胖虎也可以在最后予以定夺。下面让我们回到拜占庭将军问题的假设里,在不基于信任的分布式网络中,四位将军的胜算又如何呢?

?

首先由于四位将军之间缺乏信任,因此聚到小黑屋里开个密谋会的可能性被排除了(一旦在小黑屋里被胖虎绑架了怎么办?);其次由于没有盟主,四个人的意见都会被同等的看重。在这种情况下,四位将军只能通过信使在各自营地之间传递消息,来商定进攻时间了。比如大雄觉得早上6点是发动进攻的好时机,他就会派信使将自己的意见告诉胖虎、小夫和静香,与此同时,胖虎可能认为晚上9点发动突袭更好,小夫更喜欢下午3点出击,而静香希望是上午10点,他们三人也会在同一时间派出自己的信使。这样一来,在第一轮通信结束后,四位将军每个人都有了四个可供选择的进攻时间,他们各自要在下一轮通信中把自己选定的时间告知另外三人。由于四个人的决策都是独立做出的,因此最终的选择结果就有256种可能,而只有当三人以上都恰好选择了同一时间的时候,共识才被达成,而这样的结果才64种,也就是说达成共识的概率仅为1/4。这还只是四位将军的情况,如果将军的人数是10人,100人,1000人呢?我们稍加计算就可以发现随着人数的增加,达成共识的希望会变得越来越渺茫。

把上面例子中的将军换成计算机网络中的节点,把信使换成节点之间的通信,把进攻时间换成需要达成共识的信息,你就可以理解共识问题所描述的困境了。达成共识的能力对于一个支付系统来说重要性不言而喻,如果你给家里汇了一笔钱买车,第二天去银行核实的时候柜台告诉你“关于你汇了多少钱的问题,我们的系统里有三个版本的记录”,这样的银行你显然是不敢把钱存进去的。在比特币出现之前共识问题是很难被完美解决的,要保证达成共识就需要采用集中式系统(除非节点满足特定条件),要想去中心化共识就无法保证。那么区块链技术又是如何解决这一难题的呢?(关注公众号weoption,回复“区块链”,可查看全文。)

㈤ 女科学家段斯斯:在区块链“江湖”背后“双手互搏”

段斯斯在清华大学高等研究院。(受访者供图)

段斯斯在清华大学高等研究院担任研究员。她工作的地方摆放的东西很少,装备不过是三台电脑。奇崛险怪的攻防进退,只在脑海里酝酿,在键盘上推演,找不到任何“硝烟”的痕迹。

她的研究方向是“拜占庭容错算法”,旨在防范分布式系统内各节点因“敌人破坏”导致的网络崩溃。形象地说,她在进行一场高智商的“双手互博”。第一步,假想一个可能的漏洞或“敌人”;第二步,找到让“敌人”失效的办法;第三步,让同行们相信她解决的是个“真问题”。

段斯斯这样定义自己:介于科学家与工程师之间。她不像网络工程师那样直接同黑客“斗法”,她用数学和逻辑的力量设下让“敌人”无能为力的规则。

“我们中间有匪。”段斯斯用“杀人 游戏 ”用语比喻她研究的“拜占庭将军问题”。“匪传递假消息,误导好人的判断,仗自然就打输了。我要做的是制定一个协议,确保即便有匪,好人也不会输。”

上世纪八十年代初提出“拜占庭将军问题”时,还没人知道什么是区块链。正是对这一问题不断地务虚研究,才撑起如今的区块链技术。现在,中国已把区块链视作核心技术自主创新的重要突破口。

一开始,段斯斯选择的方向有点冷门,不明就里的人以为那是在解奥数题,她也遭遇过科学期刊的拒稿。区块链兴起后,人们看到网络安全协议的重要性,她的学术成就才被更多人看到。

今年1月,段斯斯入选《麻省理工 科技 评论》2021年中国区“35岁以下 科技 创新35人”,获奖理由是她提出多个业界指标性拜占庭容错协议,在分布式系统、区块链和应用密码学领域取得突出成果。

搭上新兴技术的快车,段斯斯说自己挺走运的,可运气的解释力毕竟有限。她硕博阶段本就不多的女同学,多数没有继续搞学术。支持她不放弃的原因,是“这挺有意思的”。

让段斯斯觉得有意思的正是她自己想出来的各种刁钻问题。在她看来,发现问题有时比找到答案更重要。

“女巫攻击”“硬分叉”“梅克尔树”“非对称加密”……被要求科普这些区块链圈的“黑话”时,段斯斯就像在智力竞赛节目中按下抢答器,思维很快,语速也很快,且很快就把问题说明白了。

段斯斯本科就读于香港大学电机电子工程系,2014年获美国加州大学戴维斯分校计算机博士学位,毕业后曾就职于美国橡树岭国家实验室和马里兰大学,2020年举家回国。

“我觉得国内发展快,工作节奏也快,我比较向往发展这一点,尤其在计算机领域,尽管会比较累。”她说。

年轻有为、事业有趣、家庭圆满,周围人说她是“人生赢家”,她却认为自己的生活“一地鸡毛”。她是两个男孩儿的妈妈,一个6岁,一个4岁。她曾经一手抱娃,一手写代码。

她打小不服输,想做的事就停不下来,这也反映在工作风格中。“别人写代码可以零敲碎打,可我习惯一口气写下去。”

解决一个段斯斯式的问题要写上万行代码,至少得花个把月工夫。现在这位“带娃科学家”最渴望的是大块的时间。“一旦被打断,再回来就忘记自己当时是怎么想的了。”她说。

段斯斯分享了一条有关“时间管理”的经验:如果你遇到5分钟之内可以解决的事,那么现在就解决它,拖到后面做肯定不止5分钟。

㈥ 拜占庭将军很忙—《区块链思维》第21块

无论在链圈,还是在币圈混,经常听到一个名词“拜占庭将军问题”。

到底拜占庭是啥,拜占庭将军怎么啦,到处都被提及,这位将军好忙啊!

先说拜占庭这个地方。很久很久以前的欧洲,建立在比中世纪还古老的时期,历史上就是东罗马帝国,跨越了千年的历史期盼。

扯远了,回到正题,什么是拜占庭将军问题。

拜占庭这个地方异常坚固,同时被十个独立邻邦环伺,分别有一位将军,单独攻城必败,只有一半以上的将军同时攻打才能破城。

十位将军为了协调一致,在那个古老的时代,累死传令兵,要么飞鸽传书(那时的欧洲比中国落后,好像没有这个高速通信手段)。十位将军相互通信一次就需要90次传信,每位将军都有各自的攻城计划,要想达成统一就需要往复传递不知道多少次。

我们可以假设一个场景,一个桌子上坐着十位将军,每个人各自说着自己的想法,同时听其他九位的说法,但是信息的传递不是实时的,有快有慢,有早有晚。想明白了吗?也就是说,这十位将军如果想达成一致,理论上有可能,实际上他们的有生之年都实现不了,难怪拜占庭帝国经历了千年也没有被这十位将军攻破。

中本聪这个神人,利用互联网信息传递的及时性特点,引入时间戳可以明确知道“谁先说、谁后说”的特性,创造性地加入挖矿机制(就是用计算机算随机数满足一定难度才算成功)比拼各位将军的智商来决定谁做本次进攻的统帅,使用非对称加密保证信息传输的安全性等等手段融合到比特币中,用实例说明自己破解了这个历史难题“拜占庭将军问题”。从而向世人证明解决60亿人口的互信问题是有去中心化解决方案地。

币圈和链圈的朋友很焦虑的另一个关键问题就是:这个圈子概念太TM多。除了这个“拜占庭将军问题”,还有一个“拜占庭容错”,这是什么鬼?这两个是一样的吗?这两个是故意有一个被写错了吗?还是说我的智商税没交够?其实,你都说对了。

“拜占庭将军问题”假设所有十个将军都是好的,都想攻破拜占庭,只是达成共识很难,比特币提供了好人达成共识的方案。

“拜占庭容错”是说十个将军可以很好地达成共识。但是,如果其中出了坏人,怎么解决?

如果十个将军中出现了坏人(叫叛徒也行),进攻计划是否会永远无法达成共识呢?

“拜占庭容错”告诉大家,是可以达成地,并且,还能找出这些“叛徒”是谁。只是,10个将军中叛徒的数量不能超过3个,超出了就无法“容错”,也找不出这些叛徒是谁。对应的公式就是:3n+1。其中3n+1是将军总数(区块链的账本/矿机总数),n是能够“容错”的“叛徒”(恶意记错账)总数。

对于十个将军来说,最多容忍三个叛徒,多了就彻底没戏啦。为了比特币的容错能力越来越强,就需要更多的节点,这样才能容忍并找出更多的叛徒。懂了吧。

小结一下:拜占庭将军问题是假设都是好人前提下如何达成共识,拜占庭容错就是全网最多能够容忍多少叛徒并且能找出他们。

请交智商税到如下地址:

国税BTC到Kcash:

地税ETH及各种原生Token到 Imtoken:

不交税的,祝你做“韭菜”一切顺利 :D

㈦ 区块链技术的六大核心算法

区块链技术的六大核心算法
区块链核心算法一:拜占庭协定
拜占庭的故事大概是这么说的:拜占庭帝国拥有巨大的财富,周围10个邻邦垂诞已久,但拜占庭高墙耸立,固若金汤,没有一个单独的邻邦能够成功入侵。任何单个邻邦入侵的都会失败,同时也有可能自身被其他9个邻邦入侵。拜占庭帝国防御能力如此之强,至少要有十个邻邦中的一半以上同时进攻,才有可能攻破。然而,如果其中的一个或者几个邻邦本身答应好一起进攻,但实际过程出现背叛,那么入侵者可能都会被歼灭。于是每一方都小心行事,不敢轻易相信邻国。这就是拜占庭将军问题。
在这个分布式网络里:每个将军都有一份实时与其他将军同步的消息账本。账本里有每个将军的签名都是可以验证身份的。如果有哪些消息不一致,可以知道消息不一致的是哪些将军。尽管有消息不一致的,只要超过半数同意进攻,少数服从多数,共识达成。
由此,在一个分布式的系统中,尽管有坏人,坏人可以做任意事情(不受protocol限制),比如不响应、发送错误信息、对不同节点发送不同决定、不同错误节点联合起来干坏事等等。但是,只要大多数人是好人,就完全有可能去中心化地实现共识
区块链核心算法二:非对称加密技术
在上述拜占庭协定中,如果10个将军中的几个同时发起消息,势必会造成系统的混乱,造成各说各的攻击时间方案,行动难以一致。谁都可以发起进攻的信息,但由谁来发出呢?其实这只要加入一个成本就可以了,即:一段时间内只有一个节点可以传播信息。当某个节点发出统一进攻的消息后,各个节点收到发起者的消息必须签名盖章,确认各自的身份。
在如今看来,非对称加密技术完全可以解决这个签名问题。非对称加密算法的加密和解密使用不同的两个密钥.这两个密钥就是我们经常听到的”公钥”和”私钥”。公钥和私钥一般成对出现, 如果消息使用公钥加密,那么需要该公钥对应的私钥才能解密; 同样,如果消息使用私钥加密,那么需要该私钥对应的公钥才能解密。
区块链核心算法三:容错问题
我们假设在此网络中,消息可能会丢失、损坏、延迟、重复发送,并且接受的顺序与发送的顺序不一致。此外,节点的行为可以是任意的:可以随时加入、退出网络,可以丢弃消息、伪造消息、停止工作等,还可能发生各种人为或非人为的故障。我们的算法对由共识节点组成的共识系统,提供的容错能力,这种容错能力同时包含安全性和可用性,并适用于任何网络环境。
区块链核心算法四:Paxos 算法(一致性算法)
Paxos算法解决的问题是一个分布式系统如何就某个值(决议)达成一致。一个典型的场景是,在一个分布式数据库系统中,如果各节点的初始状态一致,每个节点都执行相同的操作序列,那么他们最后能得到一个一致的状态。为保证每个节点执行相同的命令序列,需要在每一条指令上执行一个“一致性算法”以保证每个节点看到的指令一致。一个通用的一致性算法可以应用在许多场景中,是分布式计算中的重要问题。节点通信存在两种模型:共享内存和消息传递。Paxos算法就是一种基于消息传递模型的一致性算法。
区块链核心算法五:共识机制
区块链共识算法主要是工作量证明和权益证明。拿比特币来说,其实从技术角度来看可以把PoW看做重复使用的Hashcash,生成工作量证明在概率上来说是一个随机的过程。开采新的机密货币,生成区块时,必须得到所有参与者的同意,那矿工必须得到区块中所有数据的PoW工作证明。与此同时矿工还要时时观察调整这项工作的难度,因为对网络要求是平均每10分钟生成一个区块。
区块链核心算法六:分布式存储
分布式存储是一种数据存储技术,通过网络使用每台机器上的磁盘空间,并将这些分散的存储资源构成一个虚拟的存储设备,数据分散的存储在网络中的各个角落。所以,分布式存储技术并不是每台电脑都存放完整的数据,而是把数据切割后存放在不同的电脑里。就像存放100个鸡蛋,不是放在同一个篮子里,而是分开放在不同的地方,加起来的总和是100个。

㈧ 区块链私享会第四期:从野蛮生长到大浪淘沙

本文由【区块链研习社】优质颤兆拿内容计划支持,更多关于区块链的深度好文,请点击 区块链研习社

2018年3月24日下午,每周一期的“区块链私享会”郑州专场在郑东新区建业总部港如期举行。来自传统互联网及各领域的区块链投资人、从业者共20余人参加了本次活动。

本期“区块链私享会”邀请了迷你投合伙人 史雅鲲 。史雅鲲作为 股权众筹 领域的长期从业者,结合自己的从业经验,就如何转型区块链投资以及转型过程中的一些思考进行了深度分享。史雅鲲说:"因为传统创业者融资难、传统投资方资金退出期长等传统投资领域的痛点,从而催生了ICO这种融资方式的不理性爆发,因此带来的泡沫和炒作之风值得我们深思,99%以上的Token不具备任何 投资价值 。"

并对结合区块链技术的金融跨境支付、资产证券化、保单等金融应用场景进行了举例讲解。史雅鲲坦言,区块链行业必须经过大浪淘沙的过程,以及适当的市场教育,才能使从业者行为变得更加规范。而传统投资人的逐步进场茄搭,也会推动整个行业的理性发展。

面对火热的区块链技术,我们要在主动拥抱的同时用审慎的眼光去对待。区块链 不可篡改 去中心化 等特性带来的最大变革在于对整个底层商业逻辑的颠覆,未来的机会属于真正有价值的区块链应用,以及基于现有生态的优秀Token体系设计。

迷你投合伙人 史雅鲲

区块链研习社郑州分社负责人、资深区块链投资人黄豆进行了“ 区块链资产配置及投资策略” 的分享。分析了推动市场行情的根本原因以及区块链市场波动规律,总结了区块链资产的 交易法则 。作为传统金融领域出身的专业人士,黄豆还从资产配置的角度提出了针对新兴投资者的区块链资猜笑产配置策略,并对2018年需重点关注的投资方向与大家进行了充分交流。

区块链研习社郑州分社负责人 黄豆

河南移动互联网大会发起人、V5公益发起人,圈内人称“魔王”的王炎也分享了他在区块链行业跌宕起伏的经历,为原本就阅历丰富的人生增添了一份更加传奇的色彩。

河南移动互联网大会发起人、V5公益发起人 王炎

几位嘉宾含金量十足的分享,引来大家积极的讨论和互动,锐旗资本CEO 周宜游 通过部分案例指出了区块链行业存在的机遇和风险,并与大家分享了自己评判项目的原则。锐旗资本合伙人 王伟 指出,互联网+区块链+金融未来会实现真正意义上的普惠金融。云和数据总经理 郭凯 就区块链教育培训领域的机会进行了个人解读。在场人员就区块链创业、投资等相关内容进行了深度的交流与探讨。

锐旗资本CEO 周宜游

锐旗资本 王伟

云和数据总经理 郭凯

“区块链私享会”由全国最大的区块链知识社群、最大的分布式协作组织—— 区块链研习社 发起,郑州专场由区块链研习社郑州分社与河南互联网链圈联合主办,目前已成功举办四期。未来我们将不断扩大“区块链私享会”的受众面,引入更多领域的经验、思想和资源,持续为河南地区的区块链爱好者及从业者提供开放、包容的线下学习交流与创业合作的平台,大力推进中原地区区块链产业取得规范化发展。

㈨ 如何用最简单的方式解读区块链

大家最近天天都能听到区块链这个词,那什么是区块链呢?“分布式、难以篡改、一致存储”等解释太技术化且较为干涩。我这里来通俗的科普下:区块链主要为了解决互不信任的个体之间的信任问题。

举个通俗的例子:话说老李和老王一个村,老李最近手头有点紧,想向老王借点钱。老王呢,担心借了老李后他赖账怎么办,于是找来“德高望重”的村长,不过想想,村长也不可信,以前村长还偷过别人家的地瓜啊!怎么办?

区块链的方法是:老王借了1000块钱给老李后,然后用大喇叭在村里大喊“我老王今天借了老李1000元钱,大家都赶紧记录下”,于是村里的所有人都记录在了自己家里的账本上,谨慎的保管了起来。这下可好,老李再也赖不过了,村里即便有不守信的人,那还是好人多呀,老李也不可能找村里全部的人偷偷抹掉自己的借钱记录的。就这样,区块链解决了互不信任的老王和老李之间的借钱的信任问题。

在没有出现区块链之前,我们是如何解决互不信任个体间的信任问题呢?简单啊,找两者都信任的“德高望重”的“见证人”就好了,例如故事里的村长,例如买卖双方之间的支付宝,例如公证处等等。不过可能这类“见证人”也不一定一直诚信下去,所以区块链干脆就让大家都作为见证人。

老王放心了,但老李头疼啊!老李要等村里人都记录好了才能拿到借给他的钱,谁家还没个大爷大妈手脚慢一些的。所以目前区块链距离应用还有一定的距离,效率问题需要得到大幅提升才可以。

回想一下,你平时是怎么和别人交易的:一件漂亮的衣服,你可以在实体店挑好,确认好了对方衣服质量不错,对方确认你的钱是真钱,那么我们面对面一手交钱一手拿货。

要是我们隔着十万八千里,彼此既不认识也不信任还是想交易呢?那就要有我们都信任的第三方了,也就是达成所谓的共识机制。比如:你可以在淘宝通过第三方见证担保完成交易,钱先给支付宝——支付宝收款让卖家发货——卖家发货——你确认收货——支付宝再把钱给卖家。

但是,倘若这个中心化的机构作恶了,马爸爸撕了账本,不承认你给了钱,或者和卖家联合起来骗你钱,那可怎么办?

又或者政府借了你一100万,最后用超发货币的方式还给你钱,100万缩水到1万,由你来承受通货膨胀的损失,你又怎么办?

有没有不被任何政府、组织机构控制,能公开透明的完成仲裁,记录了就不被篡改,没有跑路风险的第三方呢?

别着急,我们的主角区块链技术解决就是这样的问题——你们之间的交易可以被所有在这个区块链系统的人见证,大家的小账本里头都会记录你们的交易。B如果否认收了A的钱,或者A说自己借了300块钱,都会被路人甲乙丙丁质疑。具体是如何做到的呢?

1)系统给每个人都发了个小账本,让每个人都有记账的权利,咱们称之为分布式记账。

2)为了鼓励大家帮别人记账,系统代码设定将比特币这样的代币奖励给记账者,为了防止一堆人记账堵死,还将代币设为有限个,甲乙丙丁需要通过系统规定的机制进行计算,算的最快最好的才能获得记账的权利,记录之后通过系统广播给大家,所有人复制一份相同的账本,这个通过计算获得奖励的过程就叫挖矿,记账的路人甲乙丙丁就是矿工。

3)有一天,最初记录这笔交易的甲Game Over了,这个账本却还是存在在其他人的账本里,A和B谁想否认都不行。我们把通过代码写好了如何仲裁和分配,无需银行、政府、企业等中心化组织机构作为第三方见证(去中心化),直接点对点(P2P)交易的方式,称为去中心化。

4)系统把多个交易打包成区块,按时间顺序链接起来成为最后人手一本的账本,这就是区块链技术

其实把区块链简单理解为账本不过是最浅显的解读了,把它的每个特点拆分开来,所能应用的领域很多很多。

现在传统金融行业、券商、投资机构正在跑步入场,物联网, 游戏 ,储存,版权,防伪,征信,支付,预测市场(赌博之类)、社区等众多领域已经开始了区块链的 探索 应用。

互联网让万物皆可连,区块链能否让所连皆可信呢?

我用天地自然运化的奇石解读一下区块链:

所有科学、哲学、道义⋯⋯天地都包涵着。任何一个事物、任何一种文化都与天地道化有关。

区块链自然逃不脱天地运化法:即顺然、随然、无穷、无常。

它就是这块奇石,其表面整体上的数据运化,一是,整体向着无形无象。二是线点守着一个规律:即无常之道。就是说它们每条线,每个点,追求的都不是一个闭合的目标和一个局限的目的。这样说大家我好理解了:一个画家要画一只鸡,是有目的的,有终结相的,而奇石,大自然造化时,是没有终结相的。所以相不闭合,线、点数据也不终结。区块连接之技术,就是这个天运之道。无常运化无形无象,永无终结。(无中心化,就是无形无相,形式不封闭,结构不封闭,思想不封闭⋯⋯如“石”办事就行)。

山东曲阜孔子灵石馆

大家好,我是皮皮,我在这里用几个生活小例子给大家解读一下什么叫区块链?

去中心化,不可篡改级,分布式存贮的,以加密信息做链接地址的数据区块链接系统,叫区块链

这玩意本来就是许多高 科技 的复合品,没法简单,再简单也是一大段话,而且未必能说清楚

区块链(Blockchain)严格的定义是指通过基于密码学技术设计的共识机制方式,在对等网络中多个节点共同维护一个持续增长,由时间戳和有序记录数据块所构建的链式列表账本的分布式数据库技术。该技术方案让参与系统中的任意多个节点,把一段时间系统内全部信息交流的数据,通过密码学算法计算和记录到一个数据块(block),并且生成该数据块的指纹用于链接(chain)下个数据块和校验,系统所有参与节点来共同认定记录是否为真。

区块链是一种类似于NoSQL(非关系型数据库)这样的技术解决方案统称,并不是某种特定技术,能够通过很多编程语言和架构来实现区块链技术。并且实现区块链的方式种类也有很多,目前常见的包括POW(Proof of Work,工作量证明),POS(Proof of Stake,权益证明),DPOS(Delegate Proof of Stake,股份授权证明机制)等。

区块链的概念首次在论文《比特币:一种点对点的电子现金系统(Bitcoin: A Peer-to-Peer Electronic Cash System)》中提出,作者为自称中本聪(Satoshi Nakamoto)的个人(或团体)。因此可以把比特币看成区块链的首个在金融支付领域中的应用。

【通俗解释】

无论多大的系统或者多小的网站,一般在它背后都有数据库。那么这个数据库由谁来维护?在一般情况下,谁负责运营这个网络或者系统,那么就由谁来进行维护。如果是微信数据库肯定是腾讯团队维护,淘宝的数据库就是阿里的团队在维护。大家一定认为这种方式是天经地义的,但是区块链技术却不是这样。

如果我们把数据库想象成是一个账本:比如支付宝就是很典型的账本,任何数据的改变就是记账型的。数据库的维护我们可以认为是很简单的记账方式。在区块链的世界也是这样,区块链系统中的每一个人都有机会参与记账。系统会在一段时间内,可能选择十秒钟内,也可能十分钟,选出这段时间记账最快最好的人,由这个人来记账,他会把这段时间数据库的变化和账本的变化记在一个区块(block)中,我们可以把这个区块想象成一页纸上,系统在确认记录正确后,会把过去账本的数据指纹链接(chain)这张纸上,然后把这张纸发给整个系统里面其他的所有人。然后周而复始,系统会寻找下一个记账又快又好的人,而系统中的其他所有人都会获得整个账本的副本。这也就意味着这个系统每一个人都有一模一样的账本,这种技术,我们就称之为区块链技术(Blockchain),也称为分布式账本技术。

由于每个人(计算机)都有一模一样的账本,并且每个人(计算机)都有着完全相等的权利,因此不会由于单个人(计算机)失去联系或宕机,而导致整个系统崩溃。既然有一模一样的账本,就意味着所有的数据都是公开透明的,每一个人可以看到每一个账户上到底有什么数字变化。它非常有趣的特性就是,其中的数据无法篡改。因为系统会自动比较,会认为相同数量最多的账本是真的账本,少部分和别人数量不一样的账本是虚假的账本。在这种情况下,任何人篡改自己的账本是没有任何意义的,因为除非你能够篡改整个系统里面大部分节点。如果整个系统节点只有五个、十个节点也许还容易做到,但是如果有上万个甚至上十万个,并且还分布在互联网上的任何角落,除非某个人能控制世界上大多数的电脑,否则不太可能篡改这样大型的区块链。

【要素】

结合区块链的定义,我们认为必须具有如下四点要素才能被称为公开区块链技术,如果只具有前3点要素,我们将认为其为私有区块链技术(私有链)。

1、点对点的对等网络(权力对等、物理点对点连接)

2、可验证的数据结构(可验证的PKC体系,不可篡改数据库)

3、分布式的共识机制(解决拜占庭将军问题,解决双重支付)

4、纳什均衡的博弈设计(合作是演化稳定的策略)

【特性】

结合定义区块链的定义,区块链会现实出四个主要的特性:去中心化(Decentralized)、去信任(Trustless)、集体维护(Collectively maintain)、可靠数据库(Reliable Database)。并且由四个特性会引申出另外2个特性:开源(Open Source)、隐私保护(Anonymity)。如果一个系统不具备这些特征,将不能视其为基于区块链技术的应用。

去中心化(Decentralized):整个网络没有中心化的硬件或者管理机构,任意节点之间的权利和义务都是均等的,且任一节点的损坏或者失去都会不影响整个系统的运作。因此也可以认为区块链系统具有极好的健壮性。

去信任(Trustless):参与整个系统中的每个节点之间进行数据交换是无需互相信任的,整个系统的运作规则是公开透明的,所有的数据内容也是公开的,因此在系统指定的规则范围和时间范围内,节点之间是不能也无法欺骗其它节点。

集体维护(Collectively maintain):系统中的数据块由整个系统中所有具有维护功能的节点来共同维护的,而这些具有维护功能的节点是任何人都可以参与的。

可靠数据库(Reliable Database):整个系统将通过分数据库的形式,让每个参与节点都能获得一份完整数据库的拷贝。除非能够同时控制整个系统中超过51%的节点,否则单个节点上对数据库的修改是无效的,也无法影响其他节点上的数据内容。因此参与系统中的节点越多和计算能力越强,该系统中的数据安全性越高。

开源(Open Source):由于整个系统的运作规则必须是公开透明的,所以对于程序而言,整个系统必定会是开源的。

隐私保护(Anonymity):由于节点和节点之间是无需互相信任的,因此节点和节点之间无需公开身份,在系统中的每个参与的节点的隐私都是受到保护的。

【区块链意义之一 :解决拜占庭将军问题】

区块链解决的核心问题不是“数字货币”,而是在信息不对称、不确定的环境下,如何建立满足经济活动赖以发生、发展的“信任”生态体系。而这个问题称之为“拜占庭将军问题”,也可称为“拜占庭容错”或者“两军问题”,这是一个分布式系统中进行信息机交互时面临的难题,即在整个网络中的任意节点都无法信任与之通信的对方时,如何能创建出共识基础来进行安全的信息交互而无需担心数据被篡改。区块链使用算法证明机制来保证整个网络的安全,借助它,整个系统中的所有节点能够在去信任的环境下自动安全的交换数据。更多介绍请参见《比特币与拜占庭将军问题》。

【区块链意义之二:实现跨国价值转移】

互联网诞生最初,最早核心解决的问题是信息制造和传输,我们可以通过互联网将信息快速生成并且复制到全世界每一个有着网络的角落,但是它尚始终不能解决价值转移和信用转移。这里所谓的价值转移是指,在网络中每个人都能够认可和确认的方式,将某一部分价值精确的从某一个地址转移到另一个地址,而且必须确保当价值转移后,原来的地址减少了被转移的部分,而新的地址增加了所转移的价值。这里说的价值可以是货币资产,也可以是某种实体资产或者虚拟资产(包括有价证券、金融衍生品等)。而这操作的结果必须获得所有参与方的认可,且其结果不能受到任何某一方的操纵。

在目前的互联网中也有各种各样的金融体系,也有许多政府银行提供或者第三方提供的支付系统,但是它还是依靠中心化的方案来解决。所谓中心化的方案,就是通过某个公司或者政府信用作为背书,将所有的价值转移计算放在一个中心服务器(集群)中,尽管所有的计算也是由程序自动完成,但是却必须信任这个中心化的人或者机构。事实上通过中心化的信用背书来解决,也只能将信用局限在一定的机构、地区或者国家的范围之内。由此可以看出,必须要解决的这个根本问题,那就是信用。所以价值转移的核心问题是跨国信用共识。

在如此纷繁复杂的全球体系中,要凭空建立一个全球性的信用共识体系是很难的,由于每个国家的政治、经济和文化情况不同,对于两个国家的企业和政府完全互信是几乎做不到的,这也就意味着无论是以个人抑或企业政府的信用进行背书,对于跨国之间的价值交换即使可以完成,也有着巨大的时间和经济成本。但是在漫长的人类 历史 中,无论每个国家的宗教、政治和文化是如何的不同,唯一能取得共识的是数学(基础科学)。因此,可以毫不夸张的说,数学(算法)是全球文明的最大公约数,也是全球人类获得最多共识的基础。如果我们以数学算法(程序)作为背书,所有的规则都建立一个公开透明的数学算法(程序)之上,能够让所有不同政治文化背景的人群获得共识。

【未来的发展】

互联网将使得全球之间的互动越来越紧密,伴随而来的就是巨大的信任鸿沟。目前现有的主流数据库技术架构都是私密且中心化的,在这个架构上是永远无法解决价值转移和互信问题。所以区块链技术有可能将成为下一代数据库架构。通过去中心化技术,将能够在大数据的基础上完成数学(算法)背书、全球互信这个巨大的进步。

区块链技术作为一种特定分布式存取数据技术,它通过网络中多个参与计算的节点开共同参与数据的计算和记录,并且互相验证其信息的有效性(防伪)。从这一点来,区块链技术也是一种特定的数据库技术。互联网刚刚进入大数据时代,但是从目前来看,大数据还处于非常基础的阶段。但是当进入到区块链数据库阶段,将进入到真正的强信任背书的大数据时代。这里面的所有数据都获得坚不可摧的质量,任何人都没有能力也没有必要去质疑。

也许我们现在正处在一个重大的转折点之上——和工业革命所带来的深刻变革几乎相同的重大转折的早期阶段。不仅仅是新技术指数级、数字化和组合式的进步与变革,更多的惊喜也许还会在我们前面。在未来的24个月里,这个星球所增长的计算机算力和记录的数据将会超过所有 历史 阶段的总和。在过去的24个月里,这个增值可能已经超过了1000倍。这些数字化的数据信息还在以比摩尔定律更快的速度增长。区块链技术将不仅仅应用在金融支付领域,而是将会扩展到目前所有应用范围,诸如去中心化的微博、微信、搜索、租房,甚至是打车软件都有可能会出现。因为区块链将可以让人类无地域限制的、去信任的方式来进行大规模协作。

区块链是一种技术,基于这项技术产生很多应用,包括与数据和信息相关的一切行业业务,比特币就是其中最为人熟知的一种应用。对于区块链的通俗解释就是,假如在网上买一只口红,首先找到心仪的产品和卖家下单,先把钱给中间平台,等到卖家发货买家确认收货以后,中间平台再把钱转给卖家,因为信任问题买卖家之间都依赖于中间平台,而区块链作为去中心化的分布式账本数据库,则着力于去掉这个中间平台但同时又解决信任问题。在区块链中每个人拥有自己的记账本,用来记录发生的每一件事,假如在交易中出现卖家拿钱不发货的行为,这一条记录将永久存在不可修改,不需要互相交换信息,区块链的世界会选择在同一个时间节点记录最快质量最好的那个人的记账本进行复制发送并串联,最后越叠越厚形成区块。

大家在谈论虚拟货币时,往往离不开区块链这个概念,那么区块链到底是个神马玩意呢?

区块链是一种底层技术,本质上是一个去中心化的分布式账本数据库。听起来好像十分高端,遥不可及,其实是很容易理解的。

举个例子,假如要在淘宝上购买商品,那么一般首先要做的就是打开淘宝,找到想要的商品并下单将钱支付给作为交易中介的淘宝。等收到商品并确认收货后淘宝便会将货款打给卖家。这本来只是我和卖家的交易,但却多了个“中心”,即淘宝。

在交易进行的过程中,这个“中心”拥有无限大的权力,甚至随意修改账单。因此,“中心”往往需要强大的后台为其背书。

于是,有一个名叫中本聪的男人想要干掉这个权力无穷大的中心,他想创造一个去中心化的系统,在这个系统里,每个人都是中心,都有记账的权力。于是,他创造了比特币。

在比特币的系统中,每个人都有一个小账本用以记录发生的每一笔交易。一笔交易只有经过大部分人确认后才有效。如果卖家不发货,那么每个人的小账本都会将这件事记录下来,让他无处可逃。

这时候大家可能会有疑问,既然只是一个公开的账本,那么为什么又要叫区块链呢?这就涉及到了共识问题,区块链系统是一个由众多“中心”组成的系统,整个区块链是属于所有参与记账的个体的。这时候就产生了新的问题,一个系统必须要有秩序才能长远的存在。假如记账者可以不计成本地胡作非为,那就可能出现本来只是购买一台手机,但收到的却是一台特斯拉的情况。

于是,中本聪发明了一种名为PoW的共识方式。这种方式提高了记账者记账的成本,让其不能轻易作恶。PoW通过密码学的方式要求记账者需要通过竞争计算能力来获取记账权,第一个计算出结果的记账者即可获得一个由若干笔交易打包而来的区块的记账权,同时获得一定的代币作为奖励。这就是我们俗称的“挖矿”。

既然记账者已经将一个包含了若干笔交易的区块记录了下来,那么系统就需要进行整理排序,不可能让无数的区块杂乱无章地分布在系统中。于是就需要把所有区块按照时间顺序首尾相连链接链接起来,这时,区块链便诞生了。区块链的核心是技术。

㈩ 区块链 --- 共识算法

PoW算法是一种防止分布式服务资源被滥用、拒绝服务攻击的机制。它要求节点进行适量消耗时间和资源的复杂运算,并且其运算结果能被其他节点快速验算,以耗用时间、能源做担保,以确保服务与资源被真正的需求所使用。

PoW算法中最基本的技术原理是使用哈希算法。假设求哈希值Hash(r),若原始数据为r(raw),则运算结果为R(Result)。

R = Hash(r)

哈希函数Hash()的特性是,对于任意输入值r,得出结果R,并且无法从R反推回r。当输入的原始数据r变动1比特时,其结果R值完全改变。在比特币的PoW算法中,引入算法难度d和随机值n,得到以下公式:

Rd = Hash(r+n)

该公式要求在填入随机值n的情况下,计算结果Rd的前d字节必须为0。由于哈希函数结果的未知性,每个矿工都要做大量运算之后,才能得出正确结果,而算出结果广播给全网之后,其他节点只需要进行一次哈希运算即可校验。PoW算法就是采用这种方式让计算消耗资源,而校验仅需一次。

 

PoS算法要求节点验证者必须质押一定的资金才有挖矿打包资格,并且区域链系统在选定打包节点时使用随机的方式,当节点质押的资金越多时,其被选定打包区块的概率越大。

POS模式下,每个币每天产生1币龄,比如你持有100个币,总共持有了30天,那么,此时你的币龄就为3000。这个时候,如果你验证了一个POS区块,你的币龄就会被清空为0,同时从区块中获得相对应的数字货币利息。

节点通过PoS算法出块的过程如下:普通的节点要成为出块节点,首先要进行资产的质押,当轮到自己出块时,打包区块,然后向全网广播,其他验证节点将会校验区块的合法性。

 

DPoS算法和PoS算法相似,也采用股份和权益质押。

但不同的是,DPoS算法采用委托质押的方式,类似于用全民选举代表的方式选出N个超级节点记账出块。

选民把自己的选票投给某个节点,如果某个节点当选记账节点,那么该记账节点往往在获取出块奖励后,可以采用任意方式来回报自己的选民。

这N个记账节点将轮流出块,并且节点之间相互监督,如果其作恶,那么会被扣除质押金。

通过信任少量的诚信节点,可以去除区块签名过程中不必要的步骤,提高了交易的速度。
 

拜占庭问题:

拜占庭是古代东罗马帝国的首都,为了防御在每块封地都驻扎一支由单个将军带领的军队,将军之间只能靠信差传递消息。在战争时,所有将军必须达成共识,决定是否共同开战。

但是,在军队内可能有叛徒,这些人将影响将军们达成共识。拜占庭将军问题是指在已知有将军是叛徒的情况下,剩余的将军如何达成一致决策的问题。

BFT:

BFT即拜占庭容错,拜占庭容错技术是一类分布式计算领域的容错技术。拜占庭假设是对现实世界的模型化,由于硬件错误、网络拥塞或中断以及遭到恶意攻击等原因,计算机和网络可能出现不可预料的行为。拜占庭容错技术被设计用来处理这些异常行为,并满足所要解决的问题的规范要求。

拜占庭容错系统

发生故障的节点被称为 拜占庭节点 ,而正常的节点即为 非拜占庭节点

假设分布式系统拥有n台节点,并假设整个系统拜占庭节点不超过m台(n ≥ 3m + 1),拜占庭容错系统需要满足如下两个条件:

另外,拜占庭容错系统需要达成如下两个指标:

PBFT即实用拜占庭容错算法,解决了原始拜占庭容错算法效率不高的问题,算法的时间复杂度是O(n^2),使得在实际系统应用中可以解决拜占庭容错问题
 

PBFT是一种状态机副本复制算法,所有的副本在一个视图(view)轮换的过程中操作,主节点通过视图编号以及节点数集合来确定,即:主节点 p = v mod |R|。v:视图编号,|R|节点个数,p:主节点编号。

PBFT算法的共识过程如下:客户端(Client)发起消息请求(request),并广播转发至每一个副本节点(Replica),由其中一个主节点(Leader)发起提案消息pre-prepare,并广播。其他节点获取原始消息,在校验完成后发送prepare消息。每个节点收到2f+1个prepare消息,即认为已经准备完毕,并发送commit消息。当节点收到2f+1个commit消息,客户端收到f+1个相同的reply消息时,说明客户端发起的请求已经达成全网共识。

具体流程如下

客户端c向主节点p发送<REQUEST, o, t, c>请求。o: 请求的具体操作,t: 请求时客户端追加的时间戳,c:客户端标识。REQUEST: 包含消息内容m,以及消息摘要d(m)。客户端对请求进行签名。

主节点收到客户端的请求,需要进行以下交验:

a. 客户端请求消息签名是否正确。

非法请求丢弃。正确请求,分配一个编号n,编号n主要用于对客户端的请求进行排序。然后广播一条<<PRE-PREPARE, v, n, d>, m>消息给其他副本节点。v:视图编号,d客户端消息摘要,m消息内容。<PRE-PREPARE, v, n, d>进行主节点签名。n是要在某一个范围区间内的[h, H],具体原因参见 垃圾回收 章节。

副本节点i收到主节点的PRE-PREPARE消息,需要进行以下交验:

a. 主节点PRE-PREPARE消息签名是否正确。

b. 当前副本节点是否已经收到了一条在同一v下并且编号也是n,但是签名不同的PRE-PREPARE信息。

c. d与m的摘要是否一致。

d. n是否在区间[h, H]内。

非法请求丢弃。正确请求,副本节点i向其他节点包括主节点发送一条<PREPARE, v, n, d, i>消息, v, n, d, m与上述PRE-PREPARE消息内容相同,i是当前副本节点编号。<PREPARE, v, n, d, i>进行副本节点i的签名。记录PRE-PREPARE和PREPARE消息到log中,用于View Change过程中恢复未完成的请求操作。

主节点和副本节点收到PREPARE消息,需要进行以下交验:

a. 副本节点PREPARE消息签名是否正确。

b. 当前副本节点是否已经收到了同一视图v下的n。

c. n是否在区间[h, H]内。

d. d是否和当前已收到PRE-PPREPARE中的d相同

非法请求丢弃。如果副本节点i收到了2f+1个验证通过的PREPARE消息,则向其他节点包括主节点发送一条<COMMIT, v, n, d, i>消息,v, n, d, i与上述PREPARE消息内容相同。<COMMIT, v, n, d, i>进行副本节点i的签名。记录COMMIT消息到日志中,用于View Change过程中恢复未完成的请求操作。记录其他副本节点发送的PREPARE消息到log中。

主节点和副本节点收到COMMIT消息,需要进行以下交验:

a. 副本节点COMMIT消息签名是否正确。

b. 当前副本节点是否已经收到了同一视图v下的n。

c. d与m的摘要是否一致。

d. n是否在区间[h, H]内。

非法请求丢弃。如果副本节点i收到了2f+1个验证通过的COMMIT消息,说明当前网络中的大部分节点已经达成共识,运行客户端的请求操作o,并返回<REPLY, v, t, c, i, r>给客户端,r:是请求操作结果,客户端如果收到f+1个相同的REPLY消息,说明客户端发起的请求已经达成全网共识,否则客户端需要判断是否重新发送请求给主节点。记录其他副本节点发送的COMMIT消息到log中。
 

如果主节点作恶,它可能会给不同的请求编上相同的序号,或者不去分配序号,或者让相邻的序号不连续。备份节点应当有职责来主动检查这些序号的合法性。

如果主节点掉线或者作恶不广播客户端的请求,客户端设置超时机制,超时的话,向所有副本节点广播请求消息。副本节点检测出主节点作恶或者下线,发起View Change协议。

View Change协议

副本节点向其他节点广播<VIEW-CHANGE, v+1, n, C , P , i>消息。n是最新的stable checkpoint的编号, C 2f+1验证过的CheckPoint消息集合, P 是当前副本节点未完成的请求的PRE-PREPARE和PREPARE消息集合。

当主节点p = v + 1 mod |R|收到 2f 个有效的VIEW-CHANGE消息后,向其他节点广播<NEW-VIEW, v+1, V , O >消息。 V 是有效的VIEW-CHANGE消息集合。 O 是主节点重新发起的未经完成的PRE-PREPARE消息集合。PRE-PREPARE消息集合的选取规则:

副本节点收到主节点的NEW-VIEW消息,验证有效性,有效的话,进入v+1状态,并且开始 O 中的PRE-PREPARE消息处理流程。
 

在上述算法流程中,为了确保在View Change的过程中,能够恢复先前的请求,每一个副本节点都记录一些消息到本地的log中,当执行请求后副本节点需要把之前该请求的记录消息清除掉。

最简单的做法是在Reply消息后,再执行一次当前状态的共识同步,这样做的成本比较高,因此可以在执行完多条请求K(例如:100条)后执行一次状态同步。这个状态同步消息就是CheckPoint消息。

副本节点i发送<CheckPoint, n, d, i>给其他节点,n是当前节点所保留的最后一个视图请求编号,d是对当前状态的一个摘要,该CheckPoint消息记录到log中。如果副本节点i收到了2f+1个验证过的CheckPoint消息,则清除先前日志中的消息,并以n作为当前一个stable checkpoint。

这是理想情况,实际上当副本节点i向其他节点发出CheckPoint消息后,其他节点还没有完成K条请求,所以不会立即对i的请求作出响应,它还会按照自己的节奏,向前行进,但此时发出的CheckPoint并未形成stable。

为了防止i的处理请求过快,设置一个上文提到的 高低水位区间[h, H] 来解决这个问题。低水位h等于上一个stable checkpoint的编号,高水位H = h + L,其中L是我们指定的数值,等于checkpoint周期处理请求数K的整数倍,可以设置为L = 2K。当副本节点i处理请求超过高水位H时,此时就会停止脚步,等待stable checkpoint发生变化,再继续前进。
 

在区块链场景中,一般适合于对强一致性有要求的私有链和联盟链场景。例如,在IBM主导的区块链超级账本项目中,PBFT是一个可选的共识协议。在Hyperledger的Fabric项目中,共识模块被设计成可插拔的模块,支持像PBFT、Raft等共识算法。
 

 

Raft基于领导者驱动的共识模型,其中将选举一位杰出的领导者(Leader),而该Leader将完全负责管理集群,Leader负责管理Raft集群的所有节点之间的复制日志。
 

下图中,将在启动过程中选择集群的Leader(S1),并为来自客户端的所有命令/请求提供服务。 Raft集群中的所有节点都维护一个分布式日志(复制日志)以存储和提交由客户端发出的命令(日志条目)。 Leader接受来自客户端的日志条目,并在Raft集群中的所有关注者(S2,S3,S4,S5)之间复制它们。

在Raft集群中,需要满足最少数量的节点才能提供预期的级别共识保证, 这也称为法定人数。 在Raft集群中执行操作所需的最少投票数为 (N / 2 +1) ,其中N是组中成员总数,即 投票至少超过一半 ,这也就是为什么集群节点通常为奇数的原因。 因此,在上面的示例中,我们至少需要3个节点才能具有共识保证。

如果法定仲裁节点由于任何原因不可用,也就是投票没有超过半数,则此次协商没有达成一致,并且无法提交新日志。

 

数据存储:Tidb/TiKV

日志:阿里巴巴的 DLedger

服务发现:Consul& etcd

集群调度:HashiCorp Nomad
 

只能容纳故障节点(CFT),不容纳作恶节点

顺序投票,只能串行apply,因此高并发场景下性能差
 

Raft通过解决围绕Leader选举的三个主要子问题,管理分布式日志和算法的安全性功能来解决分布式共识问题。

当我们启动一个新的Raft集群或某个领导者不可用时,将通过集群中所有成员节点之间协商来选举一个新的领导者。 因此,在给定的实例中,Raft集群的节点可以处于以下任何状态: 追随者(Follower),候选人(Candidate)或领导者(Leader)。

系统刚开始启动的时候,所有节点都是follower,在一段时间内如果它们没有收到Leader的心跳信号,follower就会转化为Candidate;

如果某个Candidate节点收到大多数节点的票,则这个Candidate就可以转化为Leader,其余的Candidate节点都会回到Follower状态;

一旦一个Leader发现系统中存在一个Leader节点比自己拥有更高的任期(Term),它就会转换为Follower。

Raft使用基于心跳的RPC机制来检测何时开始新的选举。 在正常期间, Leader 会定期向所有可用的 Follower 发送心跳消息(实际中可能把日志和心跳一起发过去)。 因此,其他节点以 Follower 状态启动,只要它从当前 Leader 那里收到周期性的心跳,就一直保持在 Follower 状态。

Follower 达到其超时时间时,它将通过以下方式启动选举程序:

根据 Candidate 从集群中其他节点收到的响应,可以得出选举的三个结果。

共识算法的实现一般是基于复制状态机(Replicated state machines),何为 复制状态机

简单来说: 相同的初识状态 + 相同的输入 = 相同的结束状态 。不同节点要以相同且确定性的函数来处理输入,而不要引入一下不确定的值,比如本地时间等。使用replicated log是一个很不错的注意,log具有持久化、保序的特点,是大多数分布式系统的基石。

有了Leader之后,客户端所有并发的请求可以在Leader这边形成一个有序的日志(状态)序列,以此来表示这些请求的先后处理顺序。Leader然后将自己的日志序列发送Follower,保持整个系统的全局一致性。注意并不是强一致性,而是 最终一致性

日志由有序编号(log index)的日志条目组成。每个日志条目包含它被创建时的任期号(term),和日志中包含的数据组成,日志包含的数据可以为任何类型,从简单类型到区块链的区块。每个日志条目可以用[ term, index, data]序列对表示,其中term表示任期, index表示索引号,data表示日志数据。

Leader 尝试在集群中的大多数节点上执行复制命令。 如果复制成功,则将命令提交给集群,并将响应发送回客户端。类似两阶段提交(2PC),不过与2PC的区别在于,leader只需要超过一半节点同意(处于工作状态)即可。

leader follower 都可能crash,那么 follower 维护的日志与 leader 相比可能出现以下情况

当出现了leader与follower不一致的情况,leader强制follower复制自己的log, Leader会从后往前试 ,每次AppendEntries失败后尝试前一个日志条目(递减nextIndex值), 直到成功找到每个Follower的日志一致位置点(基于上述的两条保证),然后向后逐条覆盖Followers在该位置之后的条目 。所以丢失的或者多出来的条目可能会持续多个任期。
 

要求候选人的日志至少与其他节点一样最新。如果不是,则跟随者节点将不投票给候选者。

意味着每个提交的条目都必须存在于这些服务器中的至少一个中。如果候选人的日志至少与该多数日志中的其他日志一样最新,则它将保存所有已提交的条目,避免了日志回滚事件的发生。

即任一任期内最多一个leader被选出。这一点非常重要,在一个复制集中任何时刻只能有一个leader。系统中同时有多余一个leader,被称之为脑裂(brain split),这是非常严重的问题,会导致数据的覆盖丢失。在raft中,两点保证了这个属性:

因此, 某一任期内一定只有一个leader
 

当集群中节点的状态发生变化(集群配置发生变化)时,系统容易受到系统故障。 因此,为防止这种情况,Raft使用了一种称为两阶段的方法来更改集群成员身份。 因此,在这种方法中,集群在实现新的成员身份配置之前首先更改为中间状态(称为联合共识)。 联合共识使系统即使在配置之间进行转换时也可用于响应客户端请求,它的主要目的是提升分布式系统的可用性。

相关推荐

评论列表
  • 这篇文章还没有收到评论,赶紧来抢沙发吧~
关闭

用微信“扫一扫”