時(shí)間:2022-04-20|瀏覽:18531
區(qū)塊鏈核心算法一:拜占庭協(xié)議
拜占庭的故事大概是這樣的:拜占庭帝國財(cái)源廣進(jìn),周邊10個(gè)鄰居由來已久,但拜占庭屹立不倒,沒有一個(gè)鄰居能成功入侵。單個(gè)鄰居的任何入侵都將失敗,并且本身可能會被其他 9 個(gè)鄰居入侵。拜占庭帝國的防御能力如此之強(qiáng),以至于周邊十國至少有一半同時(shí)進(jìn)攻,才有可能突破。但是,如果一個(gè)或幾個(gè)鄰居自己答應(yīng)一起進(jìn)攻,但實(shí)際過程卻是背叛,那么入侵者就可以全軍覆沒。所以雙方都謹(jǐn)慎行事,不敢輕易相信鄰國。這就是拜占庭將軍問題。
區(qū)塊鏈論壇 區(qū)塊鏈中文社區(qū)_區(qū)塊鏈開發(fā)公司哪家好區(qū)塊鏈開發(fā)_區(qū)塊鏈的所有的算法
在這個(gè)分布式網(wǎng)絡(luò)中:每個(gè)將軍都有一個(gè)與其他將軍實(shí)時(shí)同步的消息賬本。賬本中每個(gè)將軍的簽名可以驗(yàn)證身份。如果有任何消息不一致,您可以知道消息不一致是哪些將軍。雖然消息不一致,但只要過半數(shù)的人同意出擊,少數(shù)服從多數(shù),就能達(dá)成共識。
因此,在分布式系統(tǒng)中,雖然有壞人,但壞人可以做任何事情(不受限制),例如不響應(yīng)、發(fā)送錯(cuò)誤信息、向不同節(jié)點(diǎn)發(fā)送不同決策、不同錯(cuò)誤節(jié)點(diǎn)聯(lián)合起來做壞事等。 . 但是,只要大多數(shù)人都是好人,完全有可能以去中心化的方式達(dá)成共識
區(qū)塊鏈核心算法二:非對稱加密技術(shù)
區(qū)塊鏈論壇 區(qū)塊鏈中文社區(qū)_區(qū)塊鏈開發(fā)公司哪家好區(qū)塊鏈開發(fā)_區(qū)塊鏈的所有的算法
上面提到的拜占庭協(xié)議中,如果10位將軍中的幾位同時(shí)發(fā)送消息,勢必會造成系統(tǒng)混亂,導(dǎo)致各自談?wù)撟约旱倪M(jìn)攻時(shí)間計(jì)劃,行動難以統(tǒng)一. 任何人都可以發(fā)起攻擊,但誰發(fā)送呢?其實(shí)只需要增加一個(gè)成本,即:在一段時(shí)間內(nèi)只有一個(gè)節(jié)點(diǎn)可以傳播信息。當(dāng)一個(gè)節(jié)點(diǎn)發(fā)送統(tǒng)一的攻擊消息時(shí),每個(gè)節(jié)點(diǎn)都必須對來自發(fā)起者的消息進(jìn)行簽名和密封,以確認(rèn)自己的身份。
在今天看來區(qū)塊鏈的所有的算法,非對稱加密技術(shù)可以徹底解決這個(gè)簽名問題。非對稱加密算法的加密和解密使用兩個(gè)不同的密鑰。這兩個(gè)密鑰就是我們常說的“公鑰”和“私鑰”。公鑰和私鑰通常成對出現(xiàn)。如果消息是用公鑰加密的,則需要公鑰對應(yīng)的私鑰才能解密;類似地,如果消息是用私鑰加密的,則需要私鑰對應(yīng)的公鑰才能解密。
區(qū)塊鏈的所有的算法_區(qū)塊鏈論壇 區(qū)塊鏈中文社區(qū)_區(qū)塊鏈開發(fā)公司哪家好區(qū)塊鏈開發(fā)
區(qū)塊鏈核心算法3:容錯(cuò)
我們假設(shè)在這個(gè)網(wǎng)絡(luò)中,消息可能會丟失、損壞、延遲、重復(fù)發(fā)送以及接收順序與發(fā)送順序不一致。此外,節(jié)點(diǎn)的行為可以是任意的:可以隨時(shí)加入和離開網(wǎng)絡(luò)、丟棄消息、偽造消息、停止工作等,并可能發(fā)生各種人為或非人為的故障。我們的算法為由共識節(jié)點(diǎn)組成的共識系統(tǒng)提供容錯(cuò)性,包括安全性和可用性,適用于任何網(wǎng)絡(luò)環(huán)境。
區(qū)塊鏈核心算法4:Paxos算法(一致性算法)
Paxos 算法解決的問題是分布式系統(tǒng)如何就某個(gè)值(分辨率)達(dá)成一致。一個(gè)典型的場景是,在分布式數(shù)據(jù)庫系統(tǒng)中,如果每個(gè)節(jié)點(diǎn)的初始狀態(tài)是一致的,并且每個(gè)節(jié)點(diǎn)執(zhí)行相同的操作序列,那么它們最終可以得到一致的狀態(tài)。為了保證每個(gè)節(jié)點(diǎn)執(zhí)行相同的命令序列,需要對每條指令執(zhí)行“一致性算法”,以保證每個(gè)節(jié)點(diǎn)看到的指令是一致的。一個(gè)通用的共識算法可以應(yīng)用在很多場景中,是分布式計(jì)算中的一個(gè)重要問題。節(jié)點(diǎn)通信有兩種模型:共享內(nèi)存和消息傳遞。Paxos 算法是一種基于消息傳遞模型的共識算法。
區(qū)塊鏈核心算法5:共識機(jī)制
區(qū)塊鏈共識算法主要是工作量證明和權(quán)益證明。以比特幣為例,從技術(shù)角度來看,PoW其實(shí)可以認(rèn)為是可重用的,而產(chǎn)生工作量證明在概率上是一個(gè)隨機(jī)過程。挖礦一種新的加密貨幣,在生成區(qū)塊時(shí),必須征得所有參與者的同意,并且礦工必須獲得區(qū)塊中所有數(shù)據(jù)的PoW工作證明。同時(shí),礦工還要不時(shí)觀察和調(diào)整這項(xiàng)工作的難度,因?yàn)榫W(wǎng)絡(luò)要求是平均每 10 分鐘產(chǎn)生一個(gè)區(qū)塊。
區(qū)塊鏈核心算法六:分布式存儲
分布式存儲是一種數(shù)據(jù)存儲技術(shù)區(qū)塊鏈的所有的算法,它通過網(wǎng)絡(luò)利用每臺機(jī)器上的磁盤空間,將這些分散的存儲資源組成一個(gè)虛擬存儲設(shè)備,數(shù)據(jù)存儲在網(wǎng)絡(luò)的各個(gè)角落。因此,分布式存儲技術(shù)并不是將完整的數(shù)據(jù)存儲在每臺計(jì)算機(jī)上,而是將數(shù)據(jù)切分后存儲在不同的計(jì)算機(jī)上。這就像存放100個(gè)雞蛋,不是在同一個(gè)籃子里,而是在不同的地方,加起來就是100個(gè)雞蛋。
熱點(diǎn):加密貨幣 區(qū)塊鏈 區(qū)塊鏈開發(fā) 區(qū)塊鏈技術(shù) 挖礦 數(shù)據(jù) 比特幣 比特幣