日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 物聯(lián)網(wǎng) > 區(qū)塊鏈
[導(dǎo)讀] 概述 1.1 引言 Algorand 稱(chēng)其突破了”公鏈不可能三角“,項(xiàng)目創(chuàng)始人是圖靈獎(jiǎng)得主、MIT CSAIL 實(shí)驗(yàn)室的 Silvio Micali 教授。Algorand 提出

概述

1.1 引言

Algorand 稱(chēng)其突破了”公鏈不可能三角“,項(xiàng)目創(chuàng)始人是圖靈獎(jiǎng)得主、MIT CSAIL 實(shí)驗(yàn)室的 Silvio Micali 教授。Algorand 提出的共識(shí)協(xié)議是項(xiàng)目的一大亮點(diǎn),本文主要分析 Algorand 共識(shí)協(xié)議的工作原理,并分析其優(yōu)缺點(diǎn)。

1.2 Algorand 設(shè)計(jì)的初衷

Algorand 想解決的核心問(wèn)題是:去中心化網(wǎng)絡(luò)中低延時(shí)(Latency)和高置信度(Confidence)之間的矛盾[1]。

其中,延時(shí)指從發(fā)起交易到確認(rèn)交易所需要的時(shí)間;置信度指的是發(fā)出的交易不會(huì)再被更改的概率。

比特幣網(wǎng)絡(luò)中,為了提高交易的置信度,用戶(hù)必須等待 6 個(gè)區(qū)塊確認(rèn)(約 1 個(gè)小時(shí))的確認(rèn)延時(shí);而如果選擇低延時(shí),比如少于 6 個(gè)確認(rèn),甚至是 0 確認(rèn),則必然導(dǎo)致低置信度,增加“雙花”攻擊的可能。雙花問(wèn)題是絕大多數(shù)加密數(shù)字貨幣的核心問(wèn)題。比特幣中采用 PoW 共識(shí)來(lái)解決,但鏈本身仍然有分叉的可能,并且需要較長(zhǎng)的共識(shí)達(dá)成過(guò)程和確認(rèn)時(shí)間。

同時(shí) Algorand 還想解決比特幣中 PoW 挖礦耗費(fèi)巨大資源、交易確認(rèn)時(shí)間長(zhǎng)、易分叉、網(wǎng)絡(luò)呈中心化趨勢(shì),可擴(kuò)展性差等問(wèn)題。

1.3 Algorand 是什么?

根據(jù)官方描述,Algorand 是一個(gè)采用 permissionless 的純 PoS 共識(shí)的公鏈項(xiàng)目,結(jié)合改進(jìn)的拜占庭共識(shí)協(xié)議,可實(shí)現(xiàn)快速的交易確認(rèn),幾乎不會(huì)分叉,并且用戶(hù)數(shù)可無(wú)限擴(kuò)展,不會(huì)影響交易確認(rèn)速度。同時(shí)兼顧“可擴(kuò)展、安全性、去中心化”這個(gè)“公鏈不可能三角”[2]。

(注:”公鏈不可能三角“的正確性和具體定義存在較多爭(zhēng)議[7]。在 Algorand 中:可擴(kuò)展性指在較大用戶(hù)規(guī)模下仍可實(shí)現(xiàn)較高的吞吐量[8],安全性指的是可以對(duì)抗惡意攻擊[9],去中心化指的是網(wǎng)絡(luò)完全開(kāi)放,成為節(jié)點(diǎn)沒(méi)有任何門(mén)檻[10]。)

· 可擴(kuò)展性:Algorand 通過(guò)可驗(yàn)證隨機(jī)函數(shù)(VRF)隨機(jī)選擇區(qū)塊的生產(chǎn)者和驗(yàn)證者,一旦得知被選中,生產(chǎn)者或驗(yàn)證者只需廣播一個(gè)簡(jiǎn)短的消息即可證明自己的身份。每產(chǎn)生一個(gè)新區(qū)塊在網(wǎng)絡(luò)中需要交換的消息不會(huì)隨著用戶(hù)數(shù)的增大而改變,,因此即使用戶(hù)規(guī)模增大,系統(tǒng)仍可保持較高的 TPS(每秒處理的交易數(shù))。Algorand 的 TPS 是比特幣的 125 倍。

· 安全性:由于采用了上述的 VRF 隨機(jī)選取生產(chǎn)者和驗(yàn)證者,并且選取的過(guò)程完全由節(jié)點(diǎn)獨(dú)立完成,因此Algorand 網(wǎng)絡(luò)中的攻擊者無(wú)法預(yù)先得知下一個(gè)區(qū)塊生產(chǎn)者和驗(yàn)證者,從而也就無(wú)法完成攻擊。具體來(lái)說(shuō),生產(chǎn)者和驗(yàn)證者的身份只有在他們確定自己被選中并廣播對(duì)應(yīng)的證明信息時(shí)才會(huì)被披露,這時(shí)攻擊者即使立刻采取各種攻擊手段,也無(wú)法阻止關(guān)于新區(qū)塊的正確消息在網(wǎng)絡(luò)中的傳播。

· 去中心化:Algorand 中每一輪的區(qū)塊生產(chǎn)者和驗(yàn)證者都是隨機(jī)選取的,并且加入網(wǎng)絡(luò)沒(méi)有任何門(mén)檻,因此是完全去中心化的。

下面詳細(xì)介紹 Algorand 的共識(shí)協(xié)議。

lgorand 協(xié)議詳述

幾乎所有公鏈項(xiàng)目的區(qū)塊產(chǎn)生和共識(shí)的過(guò)程都可以抽象為兩個(gè)步驟:

1. 選擇出區(qū)塊生產(chǎn)者,生成新區(qū)塊

2. 其他節(jié)點(diǎn)對(duì)新區(qū)塊達(dá)成共識(shí)

以上步驟周而復(fù)始,最終形成一條“不可篡改”的區(qū)塊鏈。

整個(gè)共識(shí)過(guò)程雖然簡(jiǎn)單,但在實(shí)際實(shí)現(xiàn)中,必須解決幾個(gè)關(guān)鍵問(wèn)題:

· 如何選擇區(qū)塊生產(chǎn)者,且保證公平和不可被預(yù)測(cè)?

· 如何對(duì)新區(qū)塊達(dá)成共識(shí)?

· 如何避免分叉?

· 如何提高安全性?

· 如何擴(kuò)展到更大規(guī)模的用戶(hù)?

比特幣采用哈希函數(shù)的隨機(jī)性來(lái)確保公平,采用工作量證明(PoW)達(dá)成共識(shí),同時(shí)能夠在一定程度上抵抗算力攻擊。然而比特幣仍然面臨上述消耗計(jì)算資源、確認(rèn)時(shí)間長(zhǎng)、易分叉以及擴(kuò)展性差等問(wèn)題。以 Qtum 為代表的采用純權(quán)益證明(PoS)共識(shí)機(jī)制的項(xiàng)目,同樣采用了哈希函數(shù),并且不需要消耗大量的計(jì)算資源,然而仍然面臨易分叉、安全性及擴(kuò)展性的問(wèn)題。

Algorand 提出了一種新的共識(shí)機(jī)制解決上述 5 個(gè)問(wèn)題。

2.1 基礎(chǔ)知識(shí)

正式介紹 Algorand 共識(shí)協(xié)議之前,本文假設(shè)讀者基本了解以下名詞的含義:

· 哈希函數(shù)(Hash)

· 公鑰/私鑰

· 數(shù)字簽名

· 交易

· 區(qū)塊

· 賬本

· 共識(shí)

· 拜占庭協(xié)議(Byzantine Agreement,BA)

· 誠(chéng)實(shí)節(jié)點(diǎn)

· 攻擊節(jié)點(diǎn)

· P2P 通信

如果讀者對(duì)上述概念不理解,請(qǐng)先搜索相關(guān)關(guān)鍵詞進(jìn)一步了解,再閱讀以下內(nèi)容。

2.2 Algorand 的基本過(guò)程

Algorand 協(xié)議可以按照時(shí)間順序劃分為不同輪次,每一輪都會(huì)達(dá)成共識(shí)并生成新區(qū)塊。其典型的通用過(guò)程如下:

1. 每一輪共識(shí)開(kāi)始時(shí),隨機(jī)選出潛在的 leaders,各自生成新區(qū)塊,對(duì)新區(qū)塊進(jìn)行簽名和廣播

2. 隨機(jī)選出驗(yàn)證組,對(duì) leaders 廣播的新區(qū)塊進(jìn)行驗(yàn)證,達(dá)成共識(shí)后廣播確認(rèn)新區(qū)塊,進(jìn)入下一輪

接下來(lái)具體討論 Algorand 共識(shí)協(xié)議細(xì)節(jié),本節(jié)主要參考[4]。

2.3 保證 Algorand 的隨機(jī)性:可驗(yàn)證隨機(jī)函數(shù)

Algorand 利用 VRF 來(lái)選擇區(qū)塊生產(chǎn)者和驗(yàn)證者,保證所有共識(shí)參與者都是隨機(jī)地、公平地被選出的??沈?yàn)證隨機(jī)函數(shù)(VRF,Verifiable Random FuncTIon)是由 Micali 教授等提出的一種偽隨機(jī)函數(shù),和普通的隨機(jī)函數(shù)一樣,對(duì)于不同輸入,其輸出也具有隨機(jī)性(嚴(yán)格來(lái)說(shuō)是“偽隨機(jī)”)。其獨(dú)特之處在于調(diào)用者可以提供一個(gè)證明,表明這個(gè)隨機(jī)輸出確實(shí)由該調(diào)用者產(chǎn)生。

VRF 可以有多種實(shí)現(xiàn)方式,Micali 等人在其原始論文中提供了一種較復(fù)雜的實(shí)現(xiàn)方式[3]。Algorand 利用哈希函數(shù)和數(shù)字簽名的特性,提供了一種較為簡(jiǎn)單的 VRF 實(shí)現(xiàn)。具體實(shí)現(xiàn)方式是調(diào)用者 i 將輸入 m 通過(guò)數(shù)字簽名和哈希函數(shù)映射為固定長(zhǎng)度的輸出 H[SIGi(m)],即 m -》 H[SIGi(m)]。

對(duì)于任何輸入 m,不同的調(diào)用者 i 生成的數(shù)字簽名 SIGi(m) 都是唯一的;而對(duì)于不同輸入,哈希函數(shù) H 的輸出具有隨機(jī)性,因此上述映射符合 VRF 的”隨機(jī)性“要求。同時(shí),由于 i 的數(shù)字簽名 SIGi(m) 可通過(guò)其公鑰對(duì)其身份進(jìn)行驗(yàn)證,因此其也符合 VRF ”可驗(yàn)證“ 的特性,SIGi(m) 就是 VRF 中提到的”證明“。

這個(gè)函數(shù)特別適合在所有節(jié)點(diǎn)中隨機(jī)選擇出共識(shí)的參與者,下面具體討論。

2.3.1 隨機(jī)選出每一輪的區(qū)塊生產(chǎn)者(Leader)

每一輪共識(shí)開(kāi)始時(shí),每個(gè)節(jié)點(diǎn)都可以通過(guò)以下 VRF 獨(dú)立地驗(yàn)證自己是否是潛在的 leader:

.H[SIG(r, 1, Q(r-1))] 《= 1 / SIZE(PK(r-k))

其中,H 是哈希運(yùn)算;SIG 是簽名運(yùn)算;r 是目前的輪次;Q(r-1) 為與 r-1 輪的種子(將在后續(xù) 2.6 節(jié)中解釋?zhuān)?;SIZE(PK(r-k)) 是在 r-k 輪所有符合要求的公鑰的數(shù)量(為什么是 r-k ?k 為回溯系數(shù),也將在 2.6 節(jié)中闡述);公式開(kāi)始的 。 表示將哈希結(jié)果轉(zhuǎn)化為小數(shù)位,從而保證結(jié)果為[0,1)的某個(gè)值。

節(jié)點(diǎn)通過(guò)自己的私鑰計(jì)算上面簽名的哈希值是否符合要求,從而知道自己是否屬于候選的 leader,在此過(guò)程中無(wú)需和其他節(jié)點(diǎn)交換信息。由于哈希函數(shù)輸出的隨機(jī)性,可以認(rèn)為符合要求的候選節(jié)點(diǎn)都是隨機(jī)選出的。候選節(jié)點(diǎn)隨后可以生成新區(qū)塊,并向全網(wǎng)提供簽名證實(shí)自己的身份。如果有多個(gè)候選 leader,最終上述哈希值最小的 leader 將在后續(xù)的共識(shí)中成為本輪最終的 leader。Leader 產(chǎn)生的區(qū)塊 Br 包含了本輪的所有交易和上述的證明信息,由驗(yàn)證組成員進(jìn)行共識(shí)驗(yàn)證。

2.3.2 隨機(jī)選出每一輪每一階段的驗(yàn)證組

驗(yàn)證組成員的選擇與上述過(guò)程類(lèi)似,在每一輪和每一階段(step),所有節(jié)點(diǎn)都可以獨(dú)立驗(yàn)證自己是否屬于驗(yàn)證組成員:

.H[SIG(r, s, Q(r-1))] 《= n / SIZE(PK(r-k))

其中 s 為本輪所處的不同階段,Algorand 在每一輪的各個(gè)階段都有不同的驗(yàn)證組,從而進(jìn)一步保證安全性;n 為預(yù)期的驗(yàn)證組成員數(shù)量,可以人為設(shè)定;其他參數(shù)含義不再重復(fù)。

與候選 leader 一樣,每一階段的驗(yàn)證組成員均隨機(jī)選出,驗(yàn)證節(jié)點(diǎn)在證實(shí)自己身份后,可以開(kāi)始參與共識(shí)驗(yàn)證過(guò)程,揭露自己的簽名即可證明其身份。

2.3.3 引入權(quán)益證明(Proof-of-Stake,PoS)機(jī)制

上述的隨機(jī)選擇過(guò)程沒(méi)有考慮 Token 持有者的權(quán)重,惡意節(jié)點(diǎn)可能通過(guò)大量生成有效私鑰從而有極大概率成為區(qū)塊的生產(chǎn)者和驗(yàn)證者。

Algorand 在其公布的實(shí)現(xiàn)建議中引入了名為 Honest Majority of Money (HMM)的條件假設(shè),其基本思想來(lái)源于 PoS 共識(shí)機(jī)制,即在上述隨機(jī)選擇過(guò)程中引入代幣持有量(Stake)作為權(quán)重,持有量多的節(jié)點(diǎn)被選中的概率較高,而代幣持有者往往更傾向于保護(hù)網(wǎng)絡(luò)的安全性。具體可以表示為如下公式:

.H[SIG(r, 1, Q(r-1))] 《= (a(i,r) / M) * (1 / SIZE(PK(r-k)))

其中,a(i,r) / M 為節(jié)點(diǎn)所持有的幣的數(shù)量占代幣總數(shù) M 的權(quán)重。其余過(guò)程與前面描述一直。

2.4 Algorand 如何對(duì)新區(qū)塊達(dá)成共識(shí):改進(jìn)的拜占庭協(xié)議 BA*

Algorand 中驗(yàn)證者對(duì)新區(qū)塊達(dá)成共識(shí)的過(guò)程,實(shí)際上是一種改進(jìn)的拜占庭協(xié)議(ByzanTIne Agreement),Algorand 稱(chēng)其為 BA*。

BA* 由一種改進(jìn)的二元拜占庭協(xié)議(Binary ByzanTIne Agreement,BBA)和分級(jí)共識(shí)協(xié)議(Graded Consensus,Protocol GC)組合而成[5]。

2.4.1 改進(jìn)的二元拜占庭協(xié)議 BBA*

Algorand 引入的 BBA* 是一個(gè)改進(jìn)的二元拜占庭協(xié)議(所謂二元,即只能達(dá)成 0 或 1 兩種共識(shí))。BBA* 可以在誠(chéng)實(shí)節(jié)點(diǎn)超過(guò) ? 的情況下,快速達(dá)成共識(shí)。其具體過(guò)程是一個(gè) 3 步循環(huán),循環(huán)中每一步都有 ? 的概率達(dá)成共識(shí)。

節(jié)點(diǎn)之間需要進(jìn)行 P2P 通信,假設(shè)被選中的驗(yàn)證節(jié)點(diǎn)中有 t 個(gè)惡意節(jié)點(diǎn),驗(yàn)證組總的節(jié)點(diǎn)數(shù)為 n 》= 3t + 1,即惡意節(jié)點(diǎn)不超過(guò) ? 。協(xié)議過(guò)程如下:

上述協(xié)議中各符號(hào)的具體含義可參考[4]。所有驗(yàn)證節(jié)點(diǎn)i都有一個(gè)初始值 bi(bi = 0 或 1),協(xié)議開(kāi)始時(shí),每個(gè)驗(yàn)證節(jié)點(diǎn)都會(huì)向其他驗(yàn)證節(jié)點(diǎn)發(fā)送各自的初始值,

協(xié)議第一步(Step 1)是歸 0 過(guò)程:

如果某驗(yàn)證節(jié)點(diǎn) i 收到 0 的總數(shù)超過(guò)總驗(yàn)證節(jié)點(diǎn)數(shù)的 ? ,輸出共識(shí)結(jié)果為 0,共識(shí)結(jié)束,不再執(zhí)行后面所有步驟

如果某驗(yàn)證節(jié)點(diǎn) i 收到 1 的總數(shù)超過(guò)總驗(yàn)證節(jié)點(diǎn)數(shù)的 ?,則該驗(yàn)證節(jié)點(diǎn)把自己的 bi 設(shè)為 1

如果收到的 0 或 1 都沒(méi)超過(guò) ?, 則驗(yàn)證節(jié)點(diǎn)把自己的 bi 設(shè)為 0

第一步結(jié)束節(jié)點(diǎn)再次向其他節(jié)點(diǎn)發(fā)送各自的 bi

第二步(Step 2)為歸 1 過(guò)程:

如果某驗(yàn)證節(jié)點(diǎn) i 收到 1 的總數(shù)超過(guò)總驗(yàn)證節(jié)點(diǎn)數(shù)的 ? ,輸出共識(shí)結(jié)果為 1,共識(shí)結(jié)束,不再執(zhí)行后面所有步驟

如果某驗(yàn)證節(jié)點(diǎn) i 收到 0 的總數(shù)超過(guò)總驗(yàn)證節(jié)點(diǎn)數(shù)的 ?,則該驗(yàn)證節(jié)點(diǎn)把自己的 bi 設(shè)為 0

如果收到的 0 或 1 都沒(méi)超過(guò) ?, 則驗(yàn)證節(jié)點(diǎn)把自己的 bi 設(shè)為 1

第二步結(jié)束節(jié)點(diǎn)再次向其他節(jié)點(diǎn)發(fā)送各自的 bi

第三步(Step 3)為重新設(shè)定初始值的過(guò)程:

如果某驗(yàn)證節(jié)點(diǎn) i 收到 0 的總數(shù)超過(guò)總驗(yàn)證節(jié)點(diǎn)數(shù)的 ?,設(shè)定 bi = 0

如果某驗(yàn)證節(jié)點(diǎn) i 收到 1 的總數(shù)超過(guò)總驗(yàn)證節(jié)點(diǎn)數(shù)的 ?,設(shè)定 bi = 1

如果收到的 0 或 1 都沒(méi)超過(guò) ?,則每個(gè)驗(yàn)證節(jié)點(diǎn)會(huì)對(duì)某個(gè)和本輪本階段相關(guān)的信息進(jìn)行簽名,并對(duì)簽名求哈希。bi 被設(shè)置為這些哈希值中最小哈希的最低有效位(仍然是 0 或 1)

之后返回第一步,直到達(dá)成共識(shí)

在 Algorand 中, BBA* 的結(jié)果是對(duì)是否接受某個(gè)區(qū)塊達(dá)成共識(shí),共識(shí)結(jié)果只有接受(0)或拒絕(1)兩種情況。

2.4.2 分級(jí)共識(shí)協(xié)議 GC

上述 BBA* 只適用于二元情況,當(dāng)需要對(duì)任意值達(dá)成共識(shí),需要引入分級(jí)共識(shí)協(xié)議,將任意值問(wèn)題轉(zhuǎn)化為二元問(wèn)題:

Algorand 采用的 GC 分為兩步(上圖來(lái)自 Algorand 白皮書(shū)[4],為了和文中其他部分對(duì)應(yīng),將兩個(gè)步驟命名為 Step 2 和 3),協(xié)議開(kāi)始時(shí),每個(gè)驗(yàn)證節(jié)點(diǎn)i各自都有一個(gè)初始值 vi(在 Algorand 中即候選的新區(qū)塊的哈希):

第一步 (Step 2),所有驗(yàn)證節(jié)點(diǎn)將各自的 vi 發(fā)給其他所有驗(yàn)證節(jié)點(diǎn);

第二步(Step 3),對(duì)于某個(gè)x值,當(dāng)且僅當(dāng)節(jié)點(diǎn)收到其他驗(yàn)證節(jié)點(diǎn)發(fā)來(lái)該 x 值的總次數(shù)(多次收到同一節(jié)點(diǎn)發(fā)送的x值,只算一次)超過(guò)總驗(yàn)證節(jié)點(diǎn)數(shù)的 ? 時(shí),這個(gè)節(jié)點(diǎn)會(huì)對(duì)其它節(jié)點(diǎn)發(fā)送值 x:

經(jīng)過(guò) GC,每個(gè)節(jié)點(diǎn)都會(huì)輸出一個(gè)值對(duì) (vi, gi),輸出規(guī)則:

· 當(dāng)收到 x 的總次數(shù)超過(guò)總驗(yàn)證節(jié)點(diǎn)數(shù)的 ? 時(shí),設(shè)定 vi = x, gi = 2;

· 當(dāng)收到 x 的總次數(shù)超過(guò)總驗(yàn)證節(jié)點(diǎn)數(shù)的 ? 時(shí),設(shè)定 vi = x, gi = 1;

· 否則,設(shè)定 vi = 空, gi = 0;

簡(jiǎn)單來(lái)說(shuō),分級(jí)共識(shí)的作用是從多個(gè)可能的候選新區(qū)塊中選擇被大多數(shù)認(rèn)可的一個(gè)作為最終候選的區(qū)塊,再通過(guò)上面的 BBA* 最終達(dá)成共識(shí)。

2.4.3 BA* = GC + BBA*

改進(jìn)的拜占庭協(xié)議 BA* 結(jié)合了上述 GC 和 BBA*,先通過(guò) GC 把任意值問(wèn)題(從多個(gè)區(qū)塊中選擇一個(gè)候選)轉(zhuǎn)化為二元問(wèn)題(接收或拒絕新區(qū)塊?),再利用 BBA* 達(dá)成快速二元拜占庭共識(shí),從而可以快速對(duì)任意值達(dá)成共識(shí),其共識(shí)過(guò)程如下[4]:

BA* 的第一步,和第二步,所有驗(yàn)證節(jié)點(diǎn) i 執(zhí)行 2.4.2 中分級(jí)共識(shí) GC,各自得到一個(gè)關(guān)于新區(qū)塊的數(shù)值對(duì) (vi, gi),其中 vi 為驗(yàn)證節(jié)點(diǎn) i 認(rèn)為的候選區(qū)塊哈希(有可能為空),gi = 0 或 1 或 2 。

第三步,所有驗(yàn)證節(jié)點(diǎn)根據(jù)各自的 (vi, gi) 設(shè)定 BBA* 的初始值,如果 gi = 2,則設(shè)定初始值為 0,如果 gi = 0 或 1, 則設(shè)定初始值為 1 。之后進(jìn)行 2.4.1 中的 BBA* 共識(shí)過(guò)程:

· 若共識(shí)結(jié)果為 0,則最終輸出結(jié)果為 vi(非空新區(qū)塊)

· 若共識(shí)結(jié)果為 1, 則最終輸出結(jié)果為空(即新區(qū)塊為空)

無(wú)論哪種情況,BA* 都可以在驗(yàn)證節(jié)點(diǎn)中達(dá)成共識(shí),從而確定新區(qū)塊及其包含的交易(有可能為空區(qū)塊)。

2.5 Algorand 區(qū)塊鏈分叉的可能性

Algorand 實(shí)際采用的是經(jīng)典拜占庭共識(shí)的升級(jí)版 BA*,它和以比特幣為代表的中本聰共識(shí)的最大區(qū)別在于分叉的可能性。后者由于完全去中心化,節(jié)點(diǎn)之間無(wú)法完全通信,因此可能僅在部分節(jié)點(diǎn)間達(dá)成共識(shí),容易發(fā)生分叉。

Algorand 可以通過(guò)設(shè)定最大可接受的錯(cuò)誤概率 F 調(diào)整分叉的概率。在 Algorand 提供的兩種實(shí)現(xiàn)中,其分叉概率分別為 10^-12 和 10^-18,在現(xiàn)實(shí)中分叉僅存在理論上的可能。為給讀者一個(gè)直觀概念,假設(shè) Algorand 每秒生成一個(gè)區(qū)塊,10^-18 的概率意味著從宇宙大爆炸至今的時(shí)間內(nèi),只有可能發(fā)生一次分叉,可見(jiàn)其概率極低。

即使真的發(fā)生分叉,Algorand 仍可以從分叉中恢復(fù):

· Algorand 遵守中本聰共識(shí)中的最長(zhǎng)鏈法則

· 如果有多條最長(zhǎng)鏈,則選擇包含非空區(qū)塊的最長(zhǎng)鏈

· 如果仍相同,則可以具體根據(jù)區(qū)塊哈希值進(jìn)行排序選擇

2.6 Algorand 如何保證安全性

上述的共識(shí)算法在理想情況下可以實(shí)現(xiàn)去中心化環(huán)境下較快速的拜占庭共識(shí),數(shù)字簽名和 VRF 本身的安全性也對(duì)系統(tǒng)安全提供了基本的保障。除此之外,Algorand 還引入了以下機(jī)制,進(jìn)一步提升安全性:

種子 Q(r)

Algorand 中的隨機(jī)性主要靠 VRF 保證,每輪隨機(jī)的選出 leader 及驗(yàn)證組。一個(gè)比較直接的想法是把上一區(qū)塊 B(r-1) 作為隨機(jī)函數(shù)的輸入。但這種方法將給惡意節(jié)點(diǎn)帶來(lái)一定的優(yōu)勢(shì):因?yàn)閰^(qū)塊和其包含的交易高度相關(guān),惡意節(jié)點(diǎn)可以通過(guò)調(diào)整區(qū)塊中包含的交易集,獲得多個(gè)輸出,并選擇對(duì)其最有利的交易集產(chǎn)生新區(qū)塊,從而提高自己在下一輪中成為 leader 或驗(yàn)證組的概率。

為解決這一問(wèn)題,Algorand 引入了一個(gè)隨機(jī)的、不斷更新的種子參數(shù) Q(r),Q(r) 與交易集本身相互獨(dú)立,因此惡意節(jié)點(diǎn)無(wú)法通過(guò)調(diào)整交易集而獲利。

當(dāng)區(qū)塊非空時(shí),Q(r) = H(SIG(Q(r-1),r) (其中,SIG 為 本輪 leader 的簽名)

當(dāng)區(qū)塊為空時(shí),Q(r) = H(Q(r-1),r)

可以看出,Q(r) 在每一輪都發(fā)生變化,且與交易本身無(wú)關(guān)。可以證明,當(dāng) Q(r-1) 是隨機(jī)的,則 Q(r) 也是隨機(jī)的。因此惡意節(jié)點(diǎn)無(wú)法通過(guò)改變交易集影響下一個(gè)種子的生成。其中,Q(1)的定義沒(méi)有在相關(guān)文獻(xiàn)中找到。

回溯系數(shù) k

種子參數(shù)降低了惡意節(jié)點(diǎn)預(yù)測(cè) leader 的可能性,但擁有多個(gè)潛在 leader 的惡意節(jié)點(diǎn)仍可以有比普通節(jié)點(diǎn)更高的概率成為下一個(gè)區(qū)塊的 leader,但這個(gè)概率會(huì)隨著區(qū)塊的變多而逐漸變小。因此,Algorand 引入了一個(gè)回溯系數(shù) k,第 r 輪的候選組只從 r-k 輪已存在的候選組中選取,惡意節(jié)點(diǎn)在 r-k 輪能夠影響第 r 輪候選組的概率極低。

一次性公鑰

上一節(jié)中提到,Algorand 從協(xié)議層面的分叉僅在理論上可能發(fā)生。在實(shí)際中,如果惡意節(jié)點(diǎn)可以?huà)冻制渌?jié)點(diǎn),仍可以在驗(yàn)證組被公開(kāi)的瞬間,強(qiáng)制這些節(jié)點(diǎn)重新簽名新的區(qū)塊,從而產(chǎn)生短暫的分叉。Algorand 引入了一種一次性公鑰的機(jī)制,以杜絕這種可能性。

具體原理是所有節(jié)點(diǎn)在加入 Algorand 網(wǎng)絡(luò)時(shí)(即發(fā)生第一筆交易時(shí)),都生成足夠多的一次性公鑰,并公布。這些公鑰將用作后續(xù)所有輪次的簽名驗(yàn)證,并且每個(gè)公鑰只使用一次,一旦被使用后就銷(xiāo)毀。一次性公鑰的生成過(guò)程需要一定的時(shí)間,在 Algorand 的典型實(shí)現(xiàn)中,每個(gè)新節(jié)點(diǎn)需要約 1 小時(shí)來(lái)生成未來(lái) 10^6 輪的所有公鑰(約 180 MB 數(shù)據(jù))。雖然這增加了節(jié)點(diǎn)加入時(shí)的門(mén)檻,但可以從根本上杜絕上述分叉攻擊:因?yàn)橐坏┖灻瓿?,公鑰即被銷(xiāo)毀,即使被惡意節(jié)點(diǎn)劫持,也無(wú)法再次簽名產(chǎn)生分叉。

2.7 Algorand 的可擴(kuò)展性

對(duì)于目前大多數(shù)去中心化區(qū)塊鏈,如比特幣,以太坊以及 Qtum 等,可擴(kuò)展性的主要瓶頸在于所有鏈上計(jì)算都要進(jìn)行全網(wǎng)驗(yàn)證,而達(dá)成全網(wǎng)共識(shí)往往需要一定的時(shí)間。Algorand 采用 PoS+VRF 機(jī)制進(jìn)行隨機(jī)選擇區(qū)塊生產(chǎn)者和驗(yàn)證者,無(wú)論網(wǎng)絡(luò)中有多少節(jié)點(diǎn),每一輪都只需要在少數(shù)節(jié)點(diǎn)上進(jìn)行驗(yàn)證,大大提高了共識(shí)速度,提高可擴(kuò)展性。同時(shí),Algorand 還采用了改進(jìn)的拜占庭共識(shí) BA*,該協(xié)議可以減少共識(shí)節(jié)點(diǎn)之間的通信量,從而進(jìn)一步提高共識(shí)速度。

此前 Algorand 發(fā)布了其性能測(cè)試數(shù)據(jù),結(jié)果表明,在 1000 臺(tái) EC2 服務(wù)器(AWS 虛擬云服務(wù)器)、500,000 用戶(hù)場(chǎng)景下,Algorand 網(wǎng)絡(luò)確認(rèn)時(shí)間穩(wěn)定為 1 分鐘,吞吐量約為比特幣網(wǎng)絡(luò)的 125 倍。(比特幣約為 7 TPS)且吞吐量不會(huì)隨著節(jié)點(diǎn)數(shù)的變多而明顯下降[1]。

Algorand 的優(yōu)缺點(diǎn)

通過(guò)上述分析,Algorand 基本解決了第 2 節(jié)開(kāi)頭提出的一系列問(wèn)題:

· 通過(guò) PoS 和可驗(yàn)證隨機(jī)函數(shù)(VRF)實(shí)現(xiàn)區(qū)塊生產(chǎn)者和驗(yàn)證者的選擇

· 通過(guò)改進(jìn)的拜占庭共識(shí) BA* 對(duì)新產(chǎn)生的區(qū)塊達(dá)成共識(shí)

· 通過(guò)一定的參數(shù)設(shè)計(jì),從數(shù)學(xué)上將分叉的概率降至極低值

· 引入種子參數(shù),回溯系數(shù)以及一次性公鑰等機(jī)制進(jìn)一步增強(qiáng)安全性

· 每一輪都只進(jìn)行局部驗(yàn)證,并通過(guò)減少節(jié)點(diǎn)間通信量進(jìn)一步提升系統(tǒng)的吞吐量,提高可擴(kuò)展性

Algorand 在可擴(kuò)展性,安全性和去中心化程度三個(gè)方面達(dá)到了一個(gè)很好的均衡,但這不意味著其真的打破了所謂的”不可能三角“。

可擴(kuò)展性方面:本質(zhì)上還是通過(guò)較少的驗(yàn)證節(jié)點(diǎn)對(duì)所有交易進(jìn)行驗(yàn)證,當(dāng)網(wǎng)絡(luò)中全節(jié)點(diǎn)變多時(shí),只能保證性能不下降太多,不是真正意義上的可擴(kuò)展。另外,每一輪驗(yàn)證節(jié)點(diǎn)之間的通信依賴(lài)于所處的網(wǎng)絡(luò)狀態(tài),網(wǎng)絡(luò)不穩(wěn)定將導(dǎo)致共識(shí)時(shí)間變長(zhǎng),影響 TPS。官方稱(chēng) Algorand 在 Permissinoed 環(huán)境下將有更好的性能[4],原因可能在于 Permissionless 環(huán)境下節(jié)點(diǎn)所處環(huán)境有太多不確定性,會(huì)在一定程度上影響可擴(kuò)展性。

安全性方面:Algorand 本質(zhì)上采用的還是拜占庭共識(shí),惡意節(jié)點(diǎn)不能超過(guò) ?,而比特幣可以在惡意節(jié)點(diǎn)數(shù)小于 ? 的情況下保證安全。

去中心化方面:Algorand 采用 PoS 共識(shí)和 VRF 決定區(qū)塊生產(chǎn)者和驗(yàn)證者,擁有較多代幣的節(jié)點(diǎn)在 PoS 過(guò)程中被選中的概率較高,且 Staking 獎(jiǎng)勵(lì)向大戶(hù)集中,有一定的中心化趨勢(shì);而 VRF 選舉機(jī)制的引入讓鏈上計(jì)算只由部分節(jié)點(diǎn)進(jìn)行驗(yàn)證,損失了去中心化系統(tǒng)全網(wǎng)驗(yàn)證的特性。

此外,Algorand 的主網(wǎng)剛剛發(fā)布[6],此前所有結(jié)果均是理想環(huán)境下的數(shù)據(jù),且部分代碼未開(kāi)源,虛擬機(jī)相關(guān)設(shè)計(jì)也暫未提及,其實(shí)現(xiàn)的復(fù)雜度、穩(wěn)定性和實(shí)際性能還有待時(shí)間的檢驗(yàn)。

總結(jié)

Algorand 通過(guò)創(chuàng)新共識(shí)協(xié)議設(shè)計(jì),同時(shí)實(shí)現(xiàn)了較高的可擴(kuò)展性,較好的安全性和一定程度的去中心化,并且所有結(jié)論都有較為嚴(yán)格的數(shù)學(xué)證明,是一種較為創(chuàng)新和嚴(yán)謹(jǐn)?shù)墓沧R(shí)機(jī)制,目前較適用于有一定準(zhǔn)入門(mén)檻的去中心化、高吞吐量加密數(shù)字貨幣項(xiàng)目。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動(dòng)電源

在工業(yè)自動(dòng)化蓬勃發(fā)展的當(dāng)下,工業(yè)電機(jī)作為核心動(dòng)力設(shè)備,其驅(qū)動(dòng)電源的性能直接關(guān)系到整個(gè)系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動(dòng)勢(shì)抑制與過(guò)流保護(hù)是驅(qū)動(dòng)電源設(shè)計(jì)中至關(guān)重要的兩個(gè)環(huán)節(jié),集成化方案的設(shè)計(jì)成為提升電機(jī)驅(qū)動(dòng)性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動(dòng)電源

LED 驅(qū)動(dòng)電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個(gè)照明設(shè)備的使用壽命。然而,在實(shí)際應(yīng)用中,LED 驅(qū)動(dòng)電源易損壞的問(wèn)題卻十分常見(jiàn),不僅增加了維護(hù)成本,還影響了用戶(hù)體驗(yàn)。要解決這一問(wèn)題,需從設(shè)計(jì)、生...

關(guān)鍵字: 驅(qū)動(dòng)電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動(dòng)電源的公式,電感內(nèi)電流波動(dòng)大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計(jì) 驅(qū)動(dòng)電源

電動(dòng)汽車(chē)(EV)作為新能源汽車(chē)的重要代表,正逐漸成為全球汽車(chē)產(chǎn)業(yè)的重要發(fā)展方向。電動(dòng)汽車(chē)的核心技術(shù)之一是電機(jī)驅(qū)動(dòng)控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機(jī)驅(qū)動(dòng)系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動(dòng)汽車(chē)的動(dòng)力性能和...

關(guān)鍵字: 電動(dòng)汽車(chē) 新能源 驅(qū)動(dòng)電源

在現(xiàn)代城市建設(shè)中,街道及停車(chē)場(chǎng)照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(fā)光二極管(LED)因其獨(dú)特的優(yōu)勢(shì)逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動(dòng)電源 LED

LED通用照明設(shè)計(jì)工程師會(huì)遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動(dòng)電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動(dòng)電源的電磁干擾(EMI)問(wèn)題成為了一個(gè)不可忽視的挑戰(zhàn)。電磁干擾不僅會(huì)影響LED燈具的正常工作,還可能對(duì)周?chē)娮釉O(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來(lái)解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動(dòng)電源

開(kāi)關(guān)電源具有效率高的特性,而且開(kāi)關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(xiàn)在的LED驅(qū)動(dòng)電源

關(guān)鍵字: LED 驅(qū)動(dòng)電源 開(kāi)關(guān)電源

LED驅(qū)動(dòng)電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動(dòng)LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動(dòng)電源
關(guān)閉