AIgorand的基本原理
生活随笔
收集整理的這篇文章主要介紹了
AIgorand的基本原理
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
三難問題
- 安全性(雙花交易/女巫攻擊/洪流攻擊)
- 去中心化(挖礦POW機(jī)制,以太坊/比特幣)
- 規(guī)模擴(kuò)展性(Tps:每一秒交易的個數(shù))
現(xiàn)狀
- POW機(jī)制(挖礦),滿足了安全性和去中心化,但是限制了擴(kuò)展性。因此,每秒處理的交易的個數(shù)很少,大約每一秒僅僅可以處理7筆交易。
- POS機(jī)制(聯(lián)盟鏈的選舉機(jī)制),這個是否偏離了中心化?傳統(tǒng)的P2P機(jī)制,每一個節(jié)點(diǎn)的地位是相等的,如果采用POS機(jī)制里面的大節(jié)點(diǎn)的選舉機(jī)制,節(jié)點(diǎn)僅僅付出很少的代價,就可以進(jìn)行拒絕某些交易,甚至是將虛假交易包含進(jìn)入?yún)^(qū)塊等行為。
相關(guān)研究
- 分片
- 鏈下交易
- 有向無環(huán)圖
AIgorand優(yōu)勢
- 分叉的概率很低
- 算力要求很低,無需挖礦
- 出塊的速度很快
AIgorand介紹
?對于字符的介紹
- r:區(qū)塊的高度?
- Pay^r:這個區(qū)塊里面包含的所有交易
- Q^r-1:前一輪產(chǎn)生的種子
- H:哈希
- B^r:區(qū)塊的信息
- 接收時間?:對于任意一個參數(shù)?,(這個參數(shù)是指全網(wǎng)收到消息的用戶占據(jù)全網(wǎng)的百分比),在?時間內(nèi)全網(wǎng)n個人可以互相通信,?是指消息的大小,因?yàn)榫W(wǎng)絡(luò)傳輸?shù)南⒌拇笮『途W(wǎng)絡(luò)通信的速度息息相關(guān)。即,接收時間是評估針對指定大小消息在全網(wǎng)所有節(jié)點(diǎn)中傳播達(dá)到百分之幾占比所花費(fèi)的時間。
- :存在兩個應(yīng)用場景:1,區(qū)塊的同步;2,簽名
第r個區(qū)塊的產(chǎn)生
元素符號的介紹
- .H:是指將括號內(nèi)的元素進(jìn)行哈希運(yùn)算之后,將生成的哈希碼轉(zhuǎn)化為0到1之間的一個數(shù)
- P1:26/n n是全網(wǎng)的用戶,這個P1的目的是從全網(wǎng)中選取26個節(jié)點(diǎn)作為領(lǐng)導(dǎo)者
- :簽名信息
- l:是從我接收到的所有潛在領(lǐng)導(dǎo)者發(fā)給我的區(qū)塊和簽名中,選擇我支持的領(lǐng)導(dǎo)者,并且將其簽名進(jìn)行哈希以及轉(zhuǎn)化
算法的流程?
- 每一個用戶進(jìn)行簽名(SIG),其中1是算法的第一步,Q^r-1是第r-1輪的種子,這個種子產(chǎn)生一般在伴隨區(qū)塊產(chǎn)生之后誕生,種子具備隨機(jī)性和不可預(yù)測性。
- 用戶通過比較自身的簽名函數(shù)的哈希值判斷自己是否是Potional leader(潛在的領(lǐng)導(dǎo)者),這個驗(yàn)證的過程是不需要相互通信的,因此可以保證信息不會泄露。只有確認(rèn)自己是Potional leader(潛在的領(lǐng)導(dǎo)者),則創(chuàng)建區(qū)塊并進(jìn)行全網(wǎng)廣播
- 全網(wǎng)用戶根據(jù)收到的信息,確定初始值(區(qū)塊的哈希值)
- Verifier驗(yàn)證節(jié)點(diǎn)運(yùn)行BA*算法,這個算法是AIgorand的核心
- 用戶達(dá)成共識(共識會有兩種情況:1,大家對于一個有效的區(qū)塊達(dá)成共識;2,大家對于一個無效的區(qū)塊達(dá)成共識,這個無效的區(qū)塊被廢棄。),生成該輪區(qū)塊,并生成下一輪的種子
- 在生成下一輪的種子的時候,如果有領(lǐng)導(dǎo)者,則使用?,如果沒有對上一次的種子進(jìn)行哈希?
?BA*算法概覽
- BA*算法有一個核心的假設(shè),n>3t + 1,n是總共的人數(shù),t為壞人(壞人控制的人數(shù))的數(shù)量,這中假設(shè)是拜占庭容錯問題中十分常見。每個用戶擁有一個初始值(任意),通過BA*算法對于輸出達(dá)成一致的意見(滿足兩條共識性質(zhì))
- BA*算法是由BBA*算法和GC算法所構(gòu)成的。BBA*算法是解決二元初始值達(dá)成共識的算法
- GC算法可以看做是從二元初始數(shù)值到任意初始數(shù)值的一個橋梁
BBA*算法
符號介紹
- bi:初始默認(rèn)值,{0,1}
- #i(0):計數(shù),從個人用戶的自身來看,屬于0的個數(shù)。這個符號的用法:假設(shè)屬于0的人數(shù)超過了2t,就一直廣播0,如果不是判斷屬于1的人數(shù)的個數(shù)是否超過了2t,是的話就一直廣播1。如果都不滿足,先是等待計數(shù)0和1的個數(shù),循環(huán)執(zhí)行上述整個的流程。但是這個循環(huán)次數(shù)是有次數(shù)的限制的。
流程介紹?
?
- BBA*算法考慮的是二元的初始數(shù)值,用戶通過一系列的收集信息、更新私有值,并對新的私有數(shù)值進(jìn)行廣播的操作,最后以極大的概率達(dá)成共識。達(dá)成共識的概率取決于算法的循環(huán)次數(shù),每循環(huán)一次以1/3的概率達(dá)成共識。循環(huán)次數(shù)越多,達(dá)成共識的概率越多,AIgorand中循環(huán)的次數(shù)的上限是60次,達(dá)到循環(huán)的上限次數(shù)則輸出缺省值1。
- step3的時候是不會進(jìn)行終止判斷的,終止的用戶通過一直廣播自己的輸出值來引導(dǎo)其他用戶對于自己的輸出數(shù)值達(dá)成共識。
- 算法的直觀含義是:BBA*算法的目的就是為了對于寫入?yún)^(qū)塊鏈的數(shù)據(jù)區(qū)塊好人的個數(shù)大于壞人的個數(shù),但是這個區(qū)塊是誠實(shí)的,不包含虛假交易的。
- GC算法是由Micali在1997年提出的,這個算法由兩個部分組成:1,共識輸出;2,?對于輸出的確信程度的評價。其中2表示完全肯定;1表示比較確定;0表示完全的不確定。所以在0的時候輸出的是default,也就是后文的區(qū)塊鏈中的空的區(qū)塊。
- GC算法的用戶策略比較簡單,就是看收到相同信息的條數(shù)是否足夠多,從而廣播與輸出不同的數(shù)值。直觀上講,如果用戶收到足夠多的相同的信息,則表明有許多的誠實(shí)用戶的初始值是一致的。
AIgorand(將BA*算法應(yīng)用于區(qū)塊鏈)
- 注意事項(xiàng):每一個環(huán)節(jié)都要選取不同的Verifier節(jié)點(diǎn)(驗(yàn)證節(jié)點(diǎn)),因?yàn)槿绻看芜x取的都是固定的驗(yàn)證節(jié)點(diǎn),那么很可能會遭到壞人的攻擊,導(dǎo)致安全性問題。
符號的介紹
- ??:區(qū)塊
- :用戶i對于step s的簽名
- :初始值
- 和?:延遲的時間
注意事項(xiàng)
- 用戶在第r輪一開始的時候,就會計算自己每一個step的哈希值,來確定自己是否是Potional leader或者是整個流程的其中一步的Verifier。
- 用戶每一次廣播都需要發(fā)布自己的簽名,下面是對于整個的流程的介紹
- 因?yàn)檎\實(shí)用戶之間所差的時間不會超過一個?,因此等待時間一般為2個(1個用于消息的傳播,一個用于等待誤差)
流程的介紹
- step1:Potional Leader廣播區(qū)塊和自己的簽名
- step2:Verifier選擇初始值,并將選擇的結(jié)果和自己的簽名一起廣播,對應(yīng)GC算法的step1
- step3:對應(yīng)GC算法的step2,只有滿足條件的用戶才進(jìn)行廣播
- step4:對應(yīng)GC算法的step3,計算(vi,gi)和對(vi,gi)進(jìn)行轉(zhuǎn)換
- step3K+2,3,4......:對應(yīng)了BBA*算法的1,2,3步驟,終止條件類似于BBA的終止條件,這里的CERT^r為上一步中廣播的0(1)的用戶的集合(只有在終止的條件時才會出現(xiàn)),最終輸出的時候需要按照先前提到的方法進(jìn)行轉(zhuǎn)換。如果達(dá)到了3m+4步依舊沒有終止,輸出缺省值為空的區(qū)塊。
時間線
- 存在一個定理:保證了對于任意一個區(qū)塊,所有的用戶的開始時間和結(jié)束時間都幾乎是相同的,存在誤差,這也保障了AIgorand算法的同步性。這個定理的證明十分的復(fù)雜,核心思想是采用了歸納法,對于不同的輸出進(jìn)行分情況討論。
應(yīng)對女巫攻擊
- 用戶的資產(chǎn)是作為用戶被選取為Verifer的概率的指標(biāo),這個概率的指標(biāo)和資產(chǎn)數(shù)量是成正比的,圖中的w是指用戶的資產(chǎn)數(shù)量。通過確定哈希數(shù)值所屬的區(qū)間(區(qū)間長度為二項(xiàng)分布)來確定用戶的權(quán)重。
- 使用二項(xiàng)分布作為區(qū)間的好處是用戶是無法通過拆分資產(chǎn)來達(dá)到提高自身權(quán)重的目的,這個方法的本質(zhì)是隨機(jī)化的POS。?
參考鏈接
- BFTF第一期知享會——張季恒:Algorand的基本原理
- 對應(yīng)的ppt講義
總結(jié)
以上是生活随笔為你收集整理的AIgorand的基本原理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 五个经济特区(我国的5个经济特区)
- 下一篇: AIgorand的相关学习参考链接