区块链的分布式系统
⑴ 区块链技术的分布式存储是什么
区块链技术的分布式存储就是数据不放在同一台主机上,它分散放在不同的主机上,而且这个数据不可更改。
⑵ 区块链 --- 分布式金融(DeFi)
DeFi是decentralized finance(分布式金融) 一词的缩写,通常是指基于以太坊的数字资产和金融智能合约,协议以及分布式应用程序(DApps)。
简单来说,DeFi就是将传统金融搬到区块链网络里,但相比传统金融,它通过区块链实现了去中心化,也就是去掉了中间人的角色,从而降低了中间环节带来的巨额成本。
DeFi最终要实现的是资产通证化,以智能合约功能性替代传统中心化的金融机构,使用户以更低的成本享受到金融服务,并且提升整个金融体系的运行效率,降低运行成本。同时打造一个面向全球开放的无国界金融体系,以打造开放、透明、安全全新的去中心化系统,让所有人都可以自由地进行交易。
随着区块链的迅速发展,DeFi的应用场景也在不断地丰富,而金融业是其中最有前景的行业。
与银行相似,用户可以存钱并从其他借入其资产的用户那里获得利息。但是,在这种情况下, 资产是数字的 ,智能合约将贷方与借款人联系起来,执行贷款条款并分配利息。这一切都发生了,而无需彼此信任或中间人银行。而且,由于区块链提供的透明性,通过减少中间商,贷方可以赚取更高的回报,并更清楚地了解风险。
去中心化交易所,简称DEX,DEX是使用智能合约执行交易规则,执行交易并在必要时安全处理资金的加密货币交易所。当使用DEX进行交易时,没有中心化交易所运营商,也无需注册,没有身份验证或提款费用。
DEX可以使用订单薄进行交易,比如你要用10个A换15个B,那么我记下来。然后一会又来了一个人说我要用15个B换10个A,我说太好了,正好配对上了。于是,我就在链上生成一笔交易,把你们俩的币互换。这个时候汇率其实就是给交易的双方做参考用的——建议你用这个汇率容易找到配对。这样一来,去中心化交易所只是把交易双方的需求匹配了一下放上链,就不存在智能合约读取链外汇率信息的问题了。
这方法有很多缺陷。无论这个DEX做得多么用户友好,它对比中心化交易所效率一定是很差的,首先币价波动的时候很难找到匹配,其次小币种肯定也很难找到匹配,然后交易延迟应该也不小。 但相对于中心交易所,它还是有唯一的优势——靠谱。
DEX还可以使用AMM(自动做市商)交易,即按照自己的供求关系计算汇率,以保证自己手中的币不会被别人低价买空。最简单的办法就是永远保证自己的A币和B币的数量是个定值,这样就算卖空了,亏损也是有限的,而且,市场总会把价格调到合适的水平——因为反正如果汇率低了就会有人买,汇率高了就会有人卖。
通过这种简单的方法,可以获得一个不需要从链外获得汇率信息就可以自动根据供求关系调整的市场。当然,这东西的弱点也很明显——如果一开始的汇率不在市场汇率附近,就会承受大量的亏损。而且AMM中还存在“无偿损失”。
稳定币是旨在保持特定价值的代币,通常与美元等法定货币挂钩。
例如,DAI是与美元挂钩并抵押以太坊(ETH)链上数字资产的稳定币。它的发行是通过一个借贷的智能合约,来实现的:每个人都可以通过抵押一定数量的ETH(以太币)来换取和美元1:1锚定的DAI。这里,DAI采用的是 超额抵押 的形式,对于每个DAI,在MakerDAO智能合约中锁定有1.50美元的以太坊作为抵押。
如果你抵押价值150美元的以太币,那么只能换来价值100美元的DAI。然后,这个智能合约中写定了,如果你在某个时间内归还这100美元的DAI并且付一部分利息,那么你就可以拿回自己抵押的以太币。
但是这里面有个问题——以太坊的价格是会变动的。而且,虚拟货币的价格变动可是相当剧烈的,如果遇上以太坊暴跌了怎么办?那么原本值150美元的以太坊可能瞬间就不到100美元了,这个时候抵押的资产不如我贷出来的资产多,DAI的价格就不可能再锚定美元,因为大家都能看到:DAI不值那么多钱了。
怎么解决这个问题呢?超额抵押的作用就显出来了——即便以太坊价格波动幅度再大,但是从150美元跌到100美元总归还需要些时间。而这就给资产清算的空间:首先,我们规定抵押物不得少于150%的贷款,也就是如果以太坊涨了没关系,但是一旦跌了,你得立刻补仓到150%,否则你的抵押物会进入清算的智能合约。
用来装DeFi的虚拟资产,可以用于转账等。
资产管理工具(也叫看板)就是专门提供钱包扫描服务,可以查看钱包的明细,还有历史记录。
最主要的三大资产管理工具是Debank、Zerion以及 Zapper。
一般来说,市场上会有很多挖矿的机会,这也是大家理财赚钱的机会。这时候,就有做资产管理,或者是提供理财的金融服务的机器人站出来说,我是专门帮你做赚钱生意的,只要你把钱给我,我就会去市场上找赚钱的机会,帮你去赚钱。
YFI是其中最主要的一种理财工具。
区块链世界的机器人都是去中心化治理的,也就是说,没有明确是归属于谁的。这种情况下,如果机器人出故障了,我们应该找谁的责任?应该怎么做?损失谁来负责?这种情况下,就需要保险机器人了,它是专门就是为其他机器人投保了。
区块链世界的机器人都是去中心化的,且公开透明的,自动执行的。这些机器人的升级、维护应该怎么做?如何来确保机器人的去中心化呢?
一般,是由很多人围着同一个机器人一起磋商,投票决定如何让机器人去升级、提供服务。DAO机器人就是帮助这些人跟机器人之间形成一种去中心化的治理关系的机器人。
专门提供一种资产价格的机器人,比如,刚刚举例的小c机器人收到一个比特币的时候,它是需要知道一个比特币到底值多少钱。否则,是没办法计算应该给小明贷款多少钱的。这种时候,预言机机机器人就会跑到小c面前,输入一个价格,告诉小c机器人,比特币现在价值1万美金。
以太坊是一个维护数字价值共享账本的区块链网络,几乎所有DeFi应用程序(称为智能合约或Dapp)都建立在以太坊区块链上,组成网络的参与者代替了中心权力机构,以分散的方式控制网络本地加密货币以太(ETH)的发行。
defipulse公布的 DeFi排名 ,该排名跟踪锁定全球DeFi智能合约中的实时价值。
MakerDAO在DeFi领域是毫无疑问的龙头,MakerDAO之于DeFi就如比特大陆之于 矿圈。
MakerDAO 成立于2014年,是以太坊上 自动化抵押贷款平台 ,同时也是稳定币 Dai 的提供者。MakerDAO 是建立在以太坊上的去中心化的衍生金融体系,它采用了双币模式,一种为稳定币 Dai,另一种为权益代币和管理型代币 MKR。Dai 于2017年12月主网上线。通过双币机制,MakerDAO使得整个去中心化的质押贷款体系得以运转。
Dai和美元进行1:1锚定,和其他稳定币一样,Dai也存在价格波动。和其他稳定币不一样的是,Dai是通过 超额抵押 加密数字货币,从而获得价值。USDT、TrueUSD 和 GUSD 这一类的中心化稳定币每发行1美元的代币背后都存在1美元的法币作为储备,而1 Dai背后是以超出1美元的数字资产作为储备。
与USDT、TrueUSD等不同的是,Dai的运行机制是公开透明的,这也是 Dai的优势之一。不仅 Dai本身透明,换取 Dai的抵押物以太坊的价值波动和数量也一样透明,对外公开可见。
Compound协议打造的是一个无中介的贷款平台,借方获得利益,贷方支付利息。(头等仓注:通常我们把代币存入借贷池的一方称为借方,向借贷池中借代币的一方称为贷方。)
Compound的新ERC-20代币简称cToken,使用户能更简便的进行借贷操作。例如,支持cDAI与DAI交换,DAI持有者就可以将代币借给cDAI用户。不是所有的钱包都支持交换,但在Eidoo钱包中,用户可以轻松地用cDAI交换DAI,从而出借DAI换取利息。如今,Compound总共支持8种cToken,锁定资产合计高达约等值于2亿美元:cDAI、cETH、cUSDC、cBAT、cWBTC、cSAI、cREP、cZRX。
借方可以随时从Compound中提取代币,自动、瞬时计算利息。如果是通过像Eidoo这样的非托管钱包来提币,无需任何中介(因为以太坊的去中心化协议就能做到)。
贷方则必须锁定代币作为抵押品,根据基础资产的雄厚薄弱,获取50-75%的信贷。
Compound协议还设有10%的利息作为准备金,而剩余的90%利息归借方。无任何费用,无协议代币。基于以太坊的信贷市场,形成了一个真正的去中心化流动池,以一种无中介、自主、快速的方式发放和获得贷款。
Synthetix是基于以太坊的 合成资产发行协议 。Synthetix目前支持发行的合成资产包括法币、加密货币、大宗商品。其中法币主要有美元(sUSD)、欧元(sEUR)、日元(sJPY),不过目前基本上以sUSD为主。加密货币方面有比特币(sBTC)和以太坊(sETH)等,此外,还有反向的加密资产,例如iBTC,当BTC价格下跌,iBTC价格上涨,从而获利。大宗商品方面当前以金(sXAU)和银(sXAG)为主。
Synthetix上交易是去中心化的模式进行的,且无须交易对手存在,也不用担心流动性和滑点问题。在其交易所上的交易都是通过智能合约执行的,是对智能合约的交易,而不是订单簿交易。这些都有其独特的交易体验和部分优势。
Synthetix跟其他资产发行协议一样,也需要进行资产抵押才能发行,例如MakerDAO协议要生成dai,需要抵押ETH。Synthetix也类似,但它抵押的是其原生代币SNX。用户只要在其智能合约中锁定一定量的SNX,即可发行合成资产。其中其质押率非常高,是其发行资产的750%,只有达到750%的目标阀值才有机会获得交易手续费和SNX新代币的奖励。
TVL就是每个DeFi协议的锁仓总价值,越高越好。
Dex就是交易量,越高越好。
活跃地址数量代表以太坊上的DeFi用户数,越多越好。
手续费越低越好。
以太坊作为一个基础设施,它的市值可以很高,但是,说到它与DeFi市值的比例,那以太坊的市值应当是越低越好,越高就说明这个市场越成熟。
参考链接:
https://zhuanlan.hu.com/p/206910261
https://zhuanlan.hu.com/p/366412971
https://zhuanlan.hu.com/p/377856331
https://www.hu.com/question/324838085/answer/1526607416
如有不对,烦请指出,感谢~
⑶ 区块链简介
Wikipedia对区块链的描述如下:
A blockchain, originally block chain, is a continuously growing list of records, called blocks, which are linked and secured using cryptography. Each block typically contains a cryptographic hash of the previous block, a timestamp and transaction data. By design, a blockchain is inherently resistant to modification of the data. It is "an open, distributed ledger that can record transactions between two parties efficiently and in a verifiable and permanent way". For use as a distributed ledger, a blockchain is typically managed by a peer-to-peer network collectively adhering to a protocol for validating new blocks. Once recorded, the data in any given block cannot be altered retroactively without the alteration of all subsequent blocks, which requires collusion of the network majority.
简单整理下,区块链系统包含下面这些元素:
数据:存储在区块链中的数据可以是交易记录,也可以是智能合约等信息;
区块:用于保存数据;区块有一个区块头,其中包含本区块的哈希值,前一区块头的哈希值及时间戳,区块ID等信息;
链:区块组成一个链表,第一个区块被称为创始块,后面区块按照上面提到方式添加到链上,而且只能添加不能删除修改;
分布式:他是一个分布式系统,与其他分布式系统不同的是,系统中的每个节点都会保存完整的数据(一些实践可能会不同,但至少要多数节点)
安全的:数据不会被篡改,每个区块都记录着他前一区块的哈希值,改变区块的内容其哈希值都会改变,意味着该区块后的所有区块都要修改;再者,所有节点都存储完整链表,如果说更改单一节点还有可能的话,那么更改所有(多数)节点基本上是难以实现的,所谓折一筷易,折百筷难。
透明的:任何节点的操作,其他节点都会感知到,存在链上的数据都会被验证,也进一步提供了安全互信。
去中心化:不存在中心节点,关键节点,从而提供了高可靠性,但同时也有分布式系统一致性问题,现在不同产品使用了不同的一致性算法,譬如比特币中的POW,以太坊POW+POS等等
从区块链的技术特点可以看到,他适合需要跨组织/个体的一些场景。
WIP
⑷ 区块链是一个环环相扣的什么计算系统
区块链是一个环环相扣的什么计算系统
区块链是一个环环相扣的什么计算系统,区块链是一个环环相扣的分布式计算系统,区块链是一个环环相扣的什么计算系统,区块链技术利用的是“块链式数据结构”来验证与存储数据的
区块链是一个环环相扣的什么计算系统1
区块链是一个环环相扣的什么计算系统
区块链是一个环环相扣的分布式计算系统;从应用视角来看,区块链是一个分布式的共享账本和数据库,具有去中心化、不可篡改、全程留痕、可以追溯、集体维护、公开透明等特点。
本文操作环境:windows7系统、Dell G3电脑。
区块链是一个环环相扣的分布式计算系统。
什么是区块链?
从科技层面来看,区块链涉及数学、密码学、互联网和计算机编程等很多科学技术问题。从应用视角来看,简单来说,区块链是一个分布式的共享账本和数据库,具有去中心化、不可篡改、全程留痕、可以追溯、集体维护、公开透明等特点。这些特点保证了区块链的“诚实”与“透明”,为区块链创造信任奠定基础。而区块链丰富的应用场景,基本上都基于区块链能够解决信息不对称问题,实现多个主体之间的协作信任与一致行动。
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),是比特币的一个重要概念,它本质上是一个去中心化的数据库,同时作为比特币的底层技术,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次比特币网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块 。
比特币白皮书英文原版 其实并未出现 blockchain 一词,而是使用的 chain of blocks。最早的比特币白皮书中文翻译版 [9] 中,将 chain of blocks 翻译成了区块链。这是“区块链”这一中文词最早的出现时间。
国家互联网信息办公室2019年1月10日发布《区块链信息服务管理规定》,自2019年2月15日起施行 。
作为核心技术自主创新的重要突破口,区块链的安全风险问题被视为当前制约行业健康发展的一大短板,频频发生的安全事件为业界敲响警钟。拥抱区块链,需要加快探索建立适应区块链技术机制的安全保障体系。
类型
公有区块链
公有区块链(Public Block Chains)是指:世界上任何个体或者团体都可以发送交易,且交易能够获得该区块链的有效确认,任何人都可以参与其共识过程。公有区块链是最早的区块链,也是应用最广泛的区块链,各大bitcoins系列的虚拟数字货币均基于公有区块链,世界上有且仅有一条该币种对应的区块链。
联合(行业)区块链
行业区块链(Consortium Block Chains):由某个群体内部指定多个预选的节点为记账人,每个块的生成由所有的预选节点共同决定(预选节点参与共识过程),其他接入节点可以参与交易,但不过问记账过程(本质上还是托管记账,只是变成分布式记账,预选节点的多少,如何决定每个块的记账者成为该区块链的主要风险点),其他任何人可以通过该区块链开放的API进行限定查询 。
私有区块链
私有区块链(Private Block Chains):仅仅使用区块链的总账技术进行记账,可以是一个公司,也可以是个人,独享该区块链的写入权限,本链与其他的分布式存储方案没有太大区别。传统金融都是想实验尝试私有区块链,而公链的应用例如bitcoin已经工业化,私链的应用产品还在摸索当中 。
特征
去中心化。区块链技术不依赖额外的第三方管理机构或硬件设施,没有中心管制,除了自成一体的区块链本身,通过分布式核算和存储,各个节点实现了信息自我验证、传递和管理。去中心化是区块链最突出最本质的特征。
开放性。区块链技术基础是开源的,除了交易各方的'私有信息被加密外,区块链的数据对所有人开放,任何人都可以通过公开的接口查询区块链数据和开发相关应用,因此整个系统信息高度透明。
独立性。基于协商一致的规范和协议(类似比特币采用的哈希算法等各种数学算法),整个区块链系统不依赖其他第三方,所有节点能够在系统内自动安全地验证、交换数据,不需要任何人为的干预。
安全性。只要不能掌控全部数据节点的51%,就无法肆意操控修改网络数据,这使区块链本身变得相对安全,避免了主观人为的数据变更。
匿名性。除非有法律规范要求,单从技术上来讲,各区块节点的身份信息不需要公开或验证,信息传递可以匿名进行 。
区块链是一个环环相扣的什么计算系统2
区块链作用
1. 区块链中的数据存储:块链式数据结构
在数据存储方面,区块链技术利用的是“块链式数据结构”来验证与存储数据的。块链式结构是什么意思呢?我们可以把它想象成铁链子,每一环我们可以看作是一个区块,很多环扣在一起就形成了区块链。
和普通存储数据的不同之处在于,在区块链上,后一个区块里的数据是包含前一个区块里的数据的。
2. 区块链中的数据更新:分布式节点共识算法
在数据更新方面,区块链技术是利用“分布式节点共识算法”来生成和更新数据。
每生成新的区块(也就是更新数据的时候),都需要通过一种算法获得全网 51% 以上节点的认可才能构成新的区块,说白了就是投票,超过半数人同意就可以生成,这就使得区块链上的数据不容篡改。
这一点我们可以把区块链理解成一个人人可以记账的账本,那么共识算法就是大家讨论、投票产生的、一致赞同的记账办法。
3. 区块链中的数据维护:密码学
区块链利用密码学的方式来保证数据传输和访问的安全,其所应用的密码学原理主要有哈希算法、Merkle 哈希树、椭圆曲线算法、Base58 等。这些原理,其实呢,都是通过一系列复杂的运算以及换算,来保证区块链上数据安全。
4. 区块链中的数据操作:智能合约
智能合约,是由计算机程序定义并自动执行的承诺协议,说白了,就是用代码执行的一套交易准则。
好比你在自动零售机买可乐,点击购买按键,付款后会自动掉出一瓶可乐给你。智能合约的突出优势就是,很大程度上避免了由信任产生的一系列问题。
二、区块链的作用
从区块链的定义中,不难看出它的一大特征就是可信任,最重要的是它还具有的去中心化、不可篡改、可追溯、匿名性等特点。
这些特点决定了它能够应用到许多行业,解决这些行业的痛点,赋能实体经济,这才是区块链逐渐被认可的原因。
据中国经济网报道,国务院发展研究中心信息中心研究员李广乾表示,“中国区块链的应用已从金融领域延伸到实体领域,电子信息存证、版权管理和交易、产品溯源、数字资产交易、物联网、智能制造、供应链管理等领域。”区块链技术已开始与实体经济产业深度融合,形成一批“产业区块链”项目,迎来产业区块链“百花齐放”的大时代。
接下来我们举几个区块链应用的领域,帮助大家理解区块链在我们生活中的作用。
1、 商品溯源
在我国,电商巨头京东,以及阿里旗下的蚂蚁金服,在区块链商品溯源方面都有一定的落地。电商企业通过开放区块链服务平台,帮助企业部署商品防伪追溯,已广泛应用于奶粉、保健品、大米等产品。2018 年“双 11”,通过区块链实现了来自上百个国家和地区的超过 1.5 亿件商品的溯源。
2 、 电子政务
基于区块链技术,能够解决传统电子政务面临的痛点,将政府、金融、监管等机构加入到区块链生态系统中,实现数据的共享。基于区块链的可追溯性,能够保证数据安全不被篡改;同时,由于在区块链系统中,维护数据安全的是各个节点,这样一来,政府事务便更加公开透明,便于监督。
根据链塔智库的报告,目前我国共有 17 项区块链电子政务应用,分别涉及七大细分场景:政府审计、数字身份、数据共享、涉公监管、电子票据、电子存证、出口监督等:
3、 电子发票
区块链电子票据已经成为区块链技术应用案例最多的应用场景。
去年 8 月 10 号,“全球第一张区块链电子发票”在深圳落地,腾讯金融科技为底层技术提供方。一年以来,深圳开出的区块链电子发票已有 800 万张,5300 多家企业或机构开通了区块链发票。
这些企业或机构涵盖的范围非常广泛,包括银行、地铁、出租车、金融保险、零售、地产、旅游、酒店餐饮等领域。人们只需要携带手机、依据手机上的支付记录,就可以实现随时开具区块链发票。
4. 供应链金融
金融的核心是“信用”,无论是贷款也好,还是融资也好,都离不开“信用”。区块链提供的“去中心化”思想正是解决信任问题的最合适的技术。分布式存储模式,能够推动商业银行、供应链核心企业等方面的信用信息共享,为企业和银行提供高效便捷的信息传递渠道。
三、区块链新浪潮开启,人才缺口大
我们可以发现,区块链正在渗透到我们的日常生活之中。近几年,我们看到全球很多高校也已经开设了区块链相关的课程,区块链学习和教育已经是大势所趋,这也正反映了当前市场对区块链人才的需求。
⑸ 区块链最直白的解释
近几年,“区块链”一词成了大热门,新闻媒体竞相报道,但大家或许对于区块链的认知还停留在雾里看花的阶段,今天我们就来揭开它的神秘面纱。
其实区块链的本质特别简单,一句话就可以解释:去中心化分布式数据库。
区块链的主要作用是用于存储信息,任何人都可以将信息写入,同时也可以读取,所以它是一个公开的数据库。
区块链的特点
要说分布式数据库这种技术,市场上早有存在,可不同的是,区块链虽然同为分布式数据库,但它没有管理员,是彻底去中心化的。
去中心化是区块链技术的颠覆性特点,它无需中心化代理,实现了一种点对点的直接交互,使得高效率、大规模、无中心化代理的信息交互方式成为了现实。
但是,没有了管理员,人人都可以往里面写入数据,怎么才能保证数据是可信的呢?被坏人改了怎么办?设计者早已想到了这些,这也证明了区块链是真正划时代的产物。
区块
区块链由一个个区块(block)组成。区块很像数据库的记录,每次写入数据,就是创建一个区块。
每个区块包含两个部分:
区块头(Head):记录当前区块的特征值
区块体(Body):实际数据
区块头包含了当前区块的多项特征值。
生成时间
实际数据(即区块体)的哈希
上一个区块的哈希
...
系统中每一个节点都拥有最新的完整数据库拷贝,修改单个节点的数据库是无效的,因为系统会自动比较,认为最多次出现的相同数据记录为真。同时数据的每一步记录都会被留存在区块链上,可以溯源每一步的往来信息。
这里,你需要理解什么叫哈希(hash),这是理解区块链必需的。
所谓"哈希"就是计算机可以对任意内容,计算出一个长度相同的特征值。区块链的 哈希长度是256位,这就是说,不管原始内容是什么,最后都会计算出一个256位的二进制数字。而且可以保证,只要原始内容不同,对应的哈希一定是不同的。
举例来说,字符串123的哈希是(十六进制),转成二进制就是256位,而且只有123能得到这个哈希。(理论上,其他字符串也有可能得到这个哈希,但是概率极低,可以近似认为不可能发生。)
因此,就有两个重要的推论。
推论1:每个区块的哈希都是不一样的,可以通过哈希标识区块。
推论2:如果区块的内容变了,它的哈希一定会改变。
哈希的不可修改性
区块与哈希是一一对应的,每个区块的哈希都是针对"区块头"(Head)计算的。也就是说,把区块头的各项特征值,按照顺序连接在一起,组成一个很长的字符串,再对这个字符串计算哈希。
Hash = SHA256( 区块头 )
上面就是区块哈希的计算公式,SHA256是区块链的哈希算法。注意,这个公式里面只包含区块头,不包含区块体,也就是说,哈希由区块头唯一决定。
前面说过,区块头包含很多内容,其中有当前区块体的哈希,还有上一个区块的哈希。这意味着,如果当前区块体的内容变了,或者上一个区块的哈希变了,一定会引起当前区块的哈希改变。
这一点对区块链有重大意义。如果有人修改了一个区块,该区块的哈希就变了。为了让后面的区块还能连到它(因为下一个区块包含上一个区块的哈希),该人必须依次修改后面所有的区块,否则被改掉的区块就脱离区块链了。由于后面要提到的原因,哈希的计算很耗时,短时间内修改多个区块几乎不可能发生,除非有人掌握了全网51%以上的计算能力。
正是通过这种联动机制,区块链保证了自身的可靠性,数据一旦写入,就无法被篡改。这就像历史一样,发生了就是发生了,从此再无法改变。
⑹ 三. 区块链系统的核心之一-分布式共识机制
拜占庭将军问题(Byzantine Generals Problem),是由莱斯利·兰波特在其同名论文中提出的分布式对等网络通信容错问题。
在分布式计算中,不同的计算机通过通讯交换信息达成共识而按照同一套协作策略行动。但有时候,系统中的成员计算机可能出错而发送错误的信息,用于传递信息的通讯网络也可能导致信息损坏,使得网络中不同的成员关于全体协作的策略得出不同结论,从而破坏系统一致性。这个难题被称为“拜占庭容错”,或者“两军问题”。
拜占庭假设是对现实世界的模型化。拜占庭将军问题被认为是容错性问题中最难的问题类型之一。拜占庭容错协议要求能够解决由于硬件错误、网络拥塞或断开以及遭到恶意攻击,其他计算机和网络可能出现不可预料的行为而带来的各种问题。并且拜占庭容错协议还要满足所要解决的问题要求的规范。
在拜占庭时代有一个墙高壁厚的城邦——拜占庭,高墙之内存放在世人无法想象多的财富。拜占庭被其他10个城邦所环绕,这10个城邦也很富饶,但和拜占庭相比就有天壤之别了。
拜占庭的十个邻居都觊觎它的财富,并希望侵略并占领它。但是,拜占庭的防御非常强大,任何单个城邦的入侵行动都会失败,而入侵者的军队也会被歼灭,使得该城邦自身遭到其他互相觊觎对方的九个城邦的入侵和劫掠。
拜占庭的防御很强,十个城邦中要有一半以上同时进攻才能攻破它。也就是说,如果有六个或者以上的相邻城邦一起进攻,他们就会成功并获得拜占庭的财富。然而,如果其中有一个或者更多城邦背叛了其他城邦,答应一起入侵但在其他城邦进攻的时候又不干了,也就导致只有五支或者更少的城邦的军队在同时进攻,那么所有的进攻城邦的军队都会被歼灭,并随后被其他的(包括背叛他们的那(几)个)城邦所入侵和劫掠。
这是一个由许多不互相信任的城邦构成的一个网络。城邦们必须一起努力以完成共同的使命。而且,各个城邦之间通讯和协调的唯一途径是通过信使骑马在城邦之间传递信息。城邦的决策者们无法聚集在一个地方开个会(所有的城邦的决策者都不互相信任自己的安全会在自己的城堡或者军队范围之外能够得到保障)。
城邦的决策者可以在任意时间以任意频率派出任意数量的信使到任意的对方。每条信息都包含如下的内容:“我城邦将在某一天的某个时间发动进攻,你城邦愿意加入吗?”。如果收信城邦同意了,该城邦就会在原信上附上一份签名了的或盖了图章的(以就是验证了的)回应然送回发信城邦。然后,再把新合并了的信息的拷贝一一发送给其他八个城邦,要求他们也如此这样做。最后的目标是,通过在原始信息链上盖上他们所有十个城邦的决策者的图章,让他们在时间上达成共识。最后的结果是,会有一个盖有十个同意同一时间发动进攻的图章信息包,和一些被抛弃了的包含部分但不是全部图章的信息包。
在这个过程中首先出现了第一个问题,就是如果每个城邦向其他九个城邦派出一名信使,那么就是十个城邦每个派出了九名信使,也就是在任何一个时间又总计90次的传输,并且每个城市分别收到九个信息,可能每一封都写着不同的进攻时间。
在这个过程中还有第二个问题,就是部分城邦会答应超过一个的攻击时间,故意背叛进攻发起人,所以他们将重新广播超过一条(甚至许许多多条)的信息包,由此产生许多甚至无数的足以淹没一切的杂音。
有了以上两个问题,整个网络系统可能迅速变质,并演变成不可信的信息和攻击时间相互矛盾的纠结体。
拜占庭假设是对现实网络世界的一种模型化。在现实网络世界中由于硬件错误、网络拥塞或断开以及遭到恶意攻击,网络可能出现许许多多不可预料的行为。拜占庭容错协议必须处理这些失效,并且还要使这些协议满足所要解决的问题所要求的规范。
对于拜占庭将军问题中本聪的区块链给出了比较圆满的解决方案。也就是比较圆满的解决了上述的两个问题。
拜占庭将军问题的第一个问题从本质上来讲就是时间和空间的障碍导致信息的不准确和不及时。
区块链对于第一个问题的解决方案是利用分布式存储技术和比特流技术(BT技术,一种新型的点对点传输技术,具有节点同时作为客户端和服务器端和没有中心服务器等特点),将整个网络系统内的所有交易信息汇总为一个统一的,分布式存储的,近乎实时同步更新的电子总账。统一的分布式共同账本就解决了空间障碍问题;而近乎同步进行的,实时的,持续的对所有账本备份的更新、对账则解决了时间障碍问题。
这个过程较具体一点的描述大概是将区块链系统内所有的交易活动的记录数据统一于一种标准化的总帐上;区块链系统的每一个节点都会保存一份总帐的备份;所有总帐的备份都是在实时的,持续的更新、对账、以及同步着。区块链系统的每一个节点能在这本总帐里记上添加记录;每一笔新添加的记录都会实时的广播到区块链系统内;所以在每一个节点上的每一份总帐的备份都是几乎同时更新的,并且所有的总帐的备份保持着同步。
拜占庭将军问题的第二个问题从本质上来讲就是关于信息过量问题和信息干扰问题。信息过量和信息干扰问题导致决策延迟,甚至决策系统崩溃而无法决策。
区块链对于第二个问题的解决方案是区块链系统的任何一个节点在发送每一笔新添加的记录时需要附带一条额外的信息。对区块链系统的任何一个节点来说这条额外的信息的获得都是有成本的,并且只能有一个节点可以获得。这样就解决了区块链系统的任何一个节点新添加额外信息时的信息多且乱而无法达成一致的问题。在这里,区块链系统的任何一个节点获得那条附带的额外的信息的过程就是著名的工作量证明机制。
共识机制主要解决区块链系统的数据如何记录和如何保存的问题。工作量证明机制就是要求区块链系统的节点通过做一定难度的工作得出一个结果的过程。
区块链系统中某节点生成了一笔新的交易记录,并且该节点将这笔新的交易记录向全网广播。全网各个节点收到这个交易记录并与其他所有准备打包进区块的交易记录共同组成交易记录列表。在列表内先对所有交易进行两两的哈希计算;再对以获得的哈希值进行哈希计算获得Merkle树和Merkle树的根值;把Merkle树的根值及其他相关字段组装成区块头。
各个节点将区块头的80字节数据加上一个不停的变更的区块头随机数一起进行不停的哈希运算(实际上这是一个双重哈希运算);不停的将哈希运算结果值与当前网络的目标值做对比,直到哈希运算结果值小于目标值,就获得了符合要求的哈希值,工作量证明也就完成了。
分布式的区块链系统是一个动态变化的系统(硬件的运算速度的增长,节点参与网络的程度的变化)。系统的不断变化必然带来系统的算力的不断变化。而算力的变化又会导致通过消耗算力(工作)来获得符合要求的哈希值的速度的不同。最终的结果会是区块链的增长速度会有巨大的不同。这是一个很大的问题。为了解决这个问题,区块链系统自动根据算力的变化对工作难度进行调整。也就是采用移动平均目标的方法来确定,难度控制为每小时生成区块的速度为某一个预定的平均数。
在区块链系统中一个符合要求的哈希值是由N个前导零构成,零的个数取决于网络的难度值。为了使区块的形成时间控制在大约十分钟左右,区块链系统采用了固定工作难度的难度算法。难度值每2016个区块调整一次零的个数。
新的难度值是根据前2015个区块(理论上应该是2016个区块,由于当初程序编写时的失误造成了用2015而不是2016)的出块时间来计算。
难度 = 目标值 * 前2015个区块生成所用的时间 / 1209600 (两周的秒钟数)
这样通过规定的算法,区块链系统就保证所有节点计算出的难度值都一致,区块的形成时间大约一致在十分钟左右。
(1)结果不可控制。其依赖机器进行哈希函数的运算来获得结果;计算结果是一个随机数;没有人能直接控制计算的结果。
(2)计算具有对称性。就是结果的获得和结果的验收需要的工作量是不同的。计算出结果所需要的工作量远远大于验收结果所需要的工作量。
(3)计算的难度自动控制。为了使区块的形成时间控制在大约十分钟左右,区块链系统自动控制了每一个符合要求的哈希获得为大约在十分钟左右。
第一,方法简单易行。
第二,系统达成共识容易,节点间不需要太多的信息交换。
第三,系统比较牢固可靠,任何破坏系统的企图都需要投入大到得不偿失的成本。
第一,消耗大量的算力,也就是浪费能源和其他资源。
第二,区块的确认时间比较长,并且难以缩短。
第三,新创立的区块链非常容易受到算力攻击。
第四,容易产生区块链分叉,稳定的区块链需要多个确认,并且这种状况可能不断持续下去。
第五,算力的逐渐集中导致与去中心化的系统设计基础的冲突日益明显。
权益证明机制是一种工作量证明机制的替代方法,试图解决工作量计算浪费的问题.目前其成功的应用是点点币区块链系统。
权益证明不要求区块链系统的节点完成一定数量的计算工作,而是要求区块链系统的节点对某些数量的钱展示所有权。
权益证明机制首先应用于点点币区块链系统中。
点点币区块链系统的区块生成时,节点需要构造一个“钱币权益”交易,即把自己的一些钱币和预先设定的奖励发给自己。进行哈希计算时,哈希值的计算只同交易输入、一些附加的固定数据以及当前时间(是一个表示自1970年1月1日距离当前时刻的秒数的正数)有关。然后,根据类似工作量证明的要求来检查这个哈希值是否正确。
点点币区块链系统的权益证明机制除了设定了哈希计算难度与交易输入的“币龄”成反比外,其与工作量证明机制非常类似。其中,币龄的定义为交易输入大小和它存在时间的乘积。权益证明机制中哈希值只和时间和固定的数据有关,因而没有办法通过多完成工作来快速获取它。
每个点点币区块链系统的交易的输出都有一定的几率来产生有效的正比于币龄和交易货币数量的工作。
第一,缩短了共识达成的时间。
第二,不再需要大量消耗能源。
第一,还是需要哈希计算。
第二,所有的确认都只是一个概率上的表达,而不是一个确定性的事情,有可能受到其他攻击影响。
授权股份证明机制类似于权益证明机制,是比特股BitShares采用的区块链公识算法。授权股份证明机制是民主选举和轮流执政相结合方式来确定区块的产生。
授权股份证明机制是先由节点选举若干代理人,由代理人验证和记账。其他方面和权益证明机制相似。
每个节点按其持股比例拥有相应的影响力,51%节点投票的结果将是不可逆且有约束力的。为达到及时而高效的方法达到51%批准的目标。每个节点可以将其投票权授予一名节点。获票数最多的前100位节点按既定时间表轮流产生区块。每名节点分配到一个时间段来生产区块。
所有的节点将收到等同于一个平均水平的区块所含交易费的10%作为报酬。
第一,大幅缩小参与验证和记账节点的数量,
第二,可以快速实现共识验证。
主要缺点就是仍然无法摆脱对代币的依赖。
在分布式计算上,不同的计算机透过讯息交换,尝试达成共识;但有时候,系统上协调计算或成员计算机可能因系统错误并交换错的讯息,导致影响最终的系统一致性。
拜占庭将军问题就根据错误计算机的数量,寻找可能的解决办法,这无法找到一个绝对的答案,但只可以用来验证一个机制的有效程度。
而拜占庭问题的可能解决方法为:
在 N ≥ 3F + 1 的情况下一致性是可能解决。其中,N为计算机总数,F为有问题计算机总数。信息在计算机间互相交换后,各计算机列出所有得到的信息,以大多数的结果作为解决办法。
第一,系统运转可以摆脱对代币的依赖,共识各节点由业务的参与方或者监管方组成,安全性与稳定性由业务相关方保证。
第二,共识的时延大约在2到5秒钟。
第三,共识效率高,可满足高频交易量的需求。
第一,当有1/3或以上记账人停止工作后,系统将无法提供服务;
第二,当有1/3或以上记账人联合作恶,可能系统会出现会留下密码学证据的分叉。
小蚁改良了实用拜占庭容错机制。该机制是由权益来选出记账人,然后记账人之间通过拜占庭容错算法来达成共识。
此算法在PBFT基础上进行了以下改进:
第一,将C/S架构的请求响应模式,改进为适合P2P网络的对等节点模式;
第二,将静态的共识参与节点改进为可动态进入、退出的动态共识参与节点;
第三,为共识参与节点的产生设计了一套基于持有权益比例的投票机制,通过投票决定共识参与节点(记账节点);
第四,在区块链中引入数字证书,解决了投票中对记账节点真实身份的认证问题。
第一,专业化的记账人;
第二,可以容忍任何类型的错误;
第三,记账由多人协同完成,每一个区块都有最终性,不会分产生区块链分叉;
第四,算法的可靠性有严格的数学证明来保证;
第一,当有1/3或以上记账人停止工作后,区块链系统将无法提供服务;
第二,当有1/3或以上记账人联合作恶,且其它所有的记账人被恰好分割为两个网络孤岛时,恶意记账人可以使区块链系统出现分叉,但是会留下密码学证据;
瑞波共识机制是全体节点选取出特殊节点组成特殊节点列表,由特殊节点列表内的节点达成共识。
初始特殊节点列表就像一个俱乐部,要接纳一个新成员,必须由51%的该俱乐部会员投票通过。共识遵循这核心成员的51%权力,外部人员则没有影响力。波共识机制将股东们与其投票权隔开,并因此比其他系统更中心化。
瑞波共识机制参与共识形成的只有特殊节点,大大的减少了共识形成的时间。在实践中,瑞波区块链系统达成共识需要3-6秒钟,远远快于比特币区块链系统的10分钟。同时瑞波区块链系统对并发交易的处理达到每秒数万笔,而比特币区块链系统只有每秒7笔。
瑞波共识机制处理节点意见分歧的方式也是不同的。瑞波的信任节点对于新区块的创造进行协商的时间是区块链更新前。先协商,达成共识后再对区块链进行更新。
由于瑞波共识机制的共识是由特殊节点达成的,普通节点并不需要维护一个完整的历史账本。各个节点可以根据自己的业务需要选择同步同步完整的历史账本或者任意最近几步的账本。这也意味着对存储空间和网络流量需求的减少。
瑞波共识机制取消了挖坑的发行货币机制,采用了原生货币(1000亿枚)的方式发币,从而大量的避免了挖矿的天量能耗。
⑺ 区块链技术的功能特征
区块链在本质上是一种分布式的存储系统,由于其采用了交易记账式的存储模型,也可以称其为分布式记账系统。北京木奇移动技术有限公司,专业的区块链开发公司,欢迎交流合作。下面讲一下区块链技术的功能特征。
在传统的平台技术中,中心决策是非常常见的一种数据处理方式,例如银行传统的转账方式中,交易信息要经过银行的中心服务器集群进行处理,通过层层的数据上传和指令分发完成两个账户间的交易。而区块链中的每笔交易都是交易人双方直接进行沟通和交易的,从发起交易到交易完成确认,不经过任何中介机构,所有节点都是平等的,具有完全相同的权限,这种在网络中点对点交易的模式,使区块链应用免于中介交易的风险。
需要注意的是,区块链虽然经常被称为分布式账本,甚至其本质就是一种分布式的存储系统,但区块链与常规的分布式系统不同,它的分布式结构更加特殊。分布式是与中心化相对应的一个概念,中心化结构中的所有分节点都只与中心节点进行数据交互,相互之间没有任何联系,因此中心节点需要承担全部的负载,一个中心化系统的效率基本只与中心节点的处理速度相关,同时一旦中心节点出现阻塞、死锁、宕机等问题,整个中心化系统就会随之停滞运行甚至直接崩溃。而分布式结构中的特点则是存在多个可以与其他节点的进行数据交互的节点,分布式网络存储技术则是将数据分散的存储于多台独立的机器设备上。这听起来有些拗口,但如果对其基于中心化特点进行分类描述就容易理解了,分布式结构包括了多中心化结构与去中心化结构。
多中心化系统是指由多个中心化系统构成的系统,其中每一个中心化系统都包括一个主节点和若干个从节点。在进行任务处理时,由主节点将任务拆解为多个分任务,并分别下发至其下属的多个从节点同时进行处理。从节点将处理结果回传至主节点后,主节点将对各个分任务的处理结果进行整合,最终完成任务。当然这只是一个简化的任务处理描述,多中心化系统可能存在多层主从结构,形成树状的任务分配结构。同时,从节点还可能听命于多个主节点的调配,基于复杂的任务管理机制,实现效率最大化。但多中心化与去中心的根本区别在于是否有一个中心节点控制着各个主节点的运行,如果最顶层的节点是多个节点,那么它就是去中心化,相反,如果顶层只有一个节点,它就是多中心化的。
在去中心化里,还有更为特殊的一种不存在任何中心的结构,可以称其为完全去中心化结构,这也就是点对点网络结构,这种结构在比特币网络中就有所体现。点对点网络结构的相对优点是高容错、节点拓展性强、隐私性强和数据一致等,但相应也存在冗余通信、消息延迟等问题。
图5 网络结构划分示意图
一般区块链领域内强调的”去中心化”,大多指的是系统的归属层面。系统归于社区和所有账户是去中心化的,系统归于机构甚至某个人则是中心化的。去中心化是区块链的共同特征,但点对点网络这种完全去中心化结构却在当前的应用较少,只有比特币、以太坊等公有链属于这种结构,因为全世界任何人都可以随时进入到系统中进行读取数据、发送可确认交易、竞争记账行为,这导致了其安全性和系统效率不能得到保障。私有链往往具有一个或多个中心对节点进行管控,所有操作均需得到该中心的许可并受其约束和限制,虽然其进行常规数据处理时采用去中心化的机制,但它在严格意义只是一种分布式的区块链部署模型。而联盟链则可被视为私有链的集合,是公有链在安全性与高效性上的妥协,它采用了多中心的技术架构。
区块链由于具有不可篡改的天然特点,基于共识算法保证数据一致,系统中的任何节点都无法篡改和伪造交易,所有交易内容都是确定的、没有争议的,交易将不存在信用风险,那么区块链系统也就具备了去信任化特征。
基于区块中承载内容由交易到智能合约的变化,区块链的去信任化有两个阶段,第一阶段是对区块链网络中 历史 交易行为真实性的信任,第二阶段是以智能合约规则为基础,对未来交易行为的信任。
第一阶段对 历史 行为真实性的信任,可以简单理解为区块链系统免除了证明 历史 交易的过程。当我们向别人说明某事曾经发生过时,需要有证据才能让别人相信,而这个证据往往需要一个有公信力的第三机构来证明,并通过验真手段提供信用保证。例如进行网络购物时购物平台提供的电子交易单是证据、在外用餐时餐厅提供的税务局发票是证据、或者在使用夫妻身份购房时机构提供的结婚证是证据。而在接受这些信息的人也需要对这些证据验真才能确信这些事确实是发生过的,与前文对应的,在出现网络购物纠纷时,需要查询购物平台的电子交易单是否真实存在;进行餐费报销时,需要对发票的签章进行核验;确认两人夫妻身份时,需要对结婚证的防伪标志进行核验。但区块链系统的数据被认为是不可篡改和伪造的,因此只要是向链上的其他节点说明一件 历史 发生的事就不需要任何第三方证明,因为数据块上的信息随时可以被拿出来直接考证,这便形成了区块链的 历史 交易去信任化。
第二阶段对未来交易行为的信任,因为在理想的状态下,区块链的智能合约是与业务绑定的,即智能合约在区块链系统中具备强制执行力。因为智能代码是完全公开的,且被记录在主链中被所有账户所储存。在智能合约被调用或是被某一机制触发后交易将被强制执行等操作,不存在抵赖的可能性。因此在区块链系统中的用户不必担心对方在未来的信用风险,这边形成了对未来交易去信任化。
在公有链中,每一个节点的账本都完整记录了所有交易,区块链不直接进行账户信息的实时记录,而是通过交易追溯的方式得出账户实时信息,同时由于任何人都可以创建区块链账户以形成区块链节点,那么公有链中的信息可以被认为是对所有人公开的,这就形成了区块链的开放与可追溯特征。且因公有链的代码往往是开源的,那么开放可追溯的不仅是系统中的交易数据,还有整个系统的交易规则,高度的公开透明化使区块链满足了许多需要公开数据的应用场景。
不过区块链基于比特币网络的基础上还发展出多种变体,例如比轻节点,以及私有链与联盟链等,这些变体不能满足严格意义上的开放可追溯。轻节点只能执行和验证交易,没有全部的交易数据可供回溯,因此轻节点不具备可追溯性。不过这一问题只是在于用户的选择,如果具备足够好的硬件环境,用户完全可以选择成为一个全节点而非轻节点,以便掌握全部数据。另外,加入私有链与联盟链是需要准入许可或者被验证的,读取权限是有选择性地对外开放,并非对全网公开,这也就不满足严格意义上的开放性。
⑻ 区块链技术中的分布式结构是什么
重庆金窝窝分析如下:
分布式结构是指区块链系统采用了开源的、去中心化的协议来保证数据的完备记录和存储。
区块链中每一笔交易信息由当节点发送给全网所有节点。因此,信息拦截者无法通过某个信息传播路径而成功拦截信息,因为每个节点均收到了该信息。
⑼ 区块链分布式应用是什么
分布式应用程序是主要存储在云计算平台上并同时在多个系统上运行的软件应用程序。这些系统在相同的网络上运行并相互通信,以完成特定的任务或命令。与分布式应用程序(ĐApp)相比,传统应用程序需要一个系统才能完成分配的任务。
通过在区块链网络上的各个节点之间存储信息块,一个系统的故障不会使区块链破产。当计算机或系统出现故障时,其他系统将充当备份并保持运行状态,而与停机的系统无关。一旦所有活动节点都收到并确认交易有效,该区块(即交易)将被添加到链(即总账)中以供公众访问。即使一个或两个节点退出网络,所有节点仍可以保持正常运行的能力,可确保用户不断以不间断且及时的方式记录和确认其交易。
链乔教育在线旗下学硕创新区块链技术工作站是中国教育部学校规划建设发展中心开展的“智慧学习工场2020-学硕创新工作站 ”唯一获准的“区块链技术专业”试点工作站。专业站立足为学生提供多样化成长路径,推进专业学位研究生产学研结合培养模式改革,构建应用型、复合型人才培养体系。
⑽ 区块链中的分布式是什么意思
区块链中的分布式是一种新的信息记录方式。是加密的,分布的是非常实用的一种信息记录的方式。这就好比老师给我们留了一道题,不是只给我们自己留的,而是给所有的人都留了一道题。