基于DPOS委托權(quán)益證明的QOS公共鏈介紹
委托權(quán)益證明(DPOS)因其可擴展性、節(jié)能性和較低的成本成為一種開創(chuàng)性的共識算法。
當我們談到較低的成本時,我們指的是EOS,它的效率隨著沒有分散化的批評而提高,因為只有21家EOS礦商在進行驗證。驗證器的數(shù)量是DPOS區(qū)塊鏈的一個重要參數(shù)。DPOS面臨的一個重要問題是其經(jīng)濟模塊的實現(xiàn)需要投入大量的資源。
QOS公共鏈基于Cosmos團隊引入的著名DPOS框架tendermint。Cosmos已經(jīng)在tendermint上建立了網(wǎng)絡,QOS是不是在重復Cosmos的工作?作為Cosmos社區(qū)的積極成員,我們進行重構(gòu)的動機是提高DPOS的性能,讓區(qū)塊鏈做它應該做的事情,即業(yè)務邏輯。
我們關(guān)心的是什么
在宇宙中的分布
幾乎所有的加密貨幣項目都使用LevelDB, LevelDB最多支持幾百個tps。任何報告tps數(shù)量超過幾百個,并且沒有自己的定制數(shù)據(jù)庫的人都在撒謊?!狤min Gün Sirer
根據(jù)本文的討論,在區(qū)塊鏈的世界中,存儲是tps的主要瓶頸。自從宇宙的測試網(wǎng)建立以來,我們一直在密切觀察它的運行統(tǒng)計數(shù)據(jù)。為了實現(xiàn)驗證-委托模塊和分發(fā),對數(shù)據(jù)庫進行了大量的訪問。在權(quán)益游戲中,基本上只有驗證器和很少的委托器。驗證器檢查驗證的收益,并每隔幾個塊執(zhí)行取款委托技巧以最大化利潤。雖然委派者不能有一個詳細的損益表,但是數(shù)據(jù)庫會不時地編寫,以更新它的獎勵金額,以便使用查詢。
什么是可以妥協(xié)的?
在Cosmos中,委托程序需要幾周的時間才能通過斷開鍵收回它的代幣。代表的報酬是否正確地按一定的高度分配也是不透明的。我們并沒有聽到很多抱怨。在現(xiàn)實世界中,從銀行取出存款和收入從來都不是實時的。我們接受。當延遲退出的原因是為了保證整個系統(tǒng)的穩(wěn)定性和性能時,妥協(xié)聽起來是合理的。
QOS的分布解決方案
分發(fā)周期是什么樣的(從委托方的角度)
分發(fā)周期
分布周期是一種鏈上周期性沉積,網(wǎng)絡在此基礎上以較小的代價獲得較高的效率和穩(wěn)定性。
創(chuàng)建委托之后,將啟動一個分發(fā)周期,其長度由$ delegator_incom__height定義。分發(fā)請求,如獎勵/增加/減少綁定代幣,或在此循環(huán)中修改委托參數(shù),直到下一個循環(huán)的第一個塊才會生效。
相同配置的主要修改(例如,是否進行再投資)在同一周期內(nèi)進行多次,將在此期間的最后一次修改的基礎上應用于下一個周期。只有最后的修改才算數(shù)。
Unbonding
驗證器將在非綁定操作之后添加另一個檢查點,非綁定代幣的數(shù)量將在$unbond_return_height期間之后返回到委托方的帳戶。$unbond_return_height應該比$ delegator_incom__height長得多。在QOS的鏈上治理檢查中參數(shù)變化的建議,并確保這種定量關(guān)系。
黏結(jié)立即生效,但回報將首先計算,分布式在下一個周期。委托關(guān)系解除的計算如下:
· 下一個分布:獎勵x + y;
· 如果所有QOSs鍵合為unbonding: y = 0;
· 如果只有一部分的QOS保稅黏結(jié),x 》 y 》 0
再投資
委托程序可以指定并稍后修改是否重新投資(通過$ is_complex參數(shù))。再投資意味著上一個周期產(chǎn)生的收入被自動綁定,并參與下一個周期的回報。否則,利潤將自動轉(zhuǎn)入委托方的賬戶。通過再投資,人們不再有動力不斷地做一個回收委托的把戲,而是把網(wǎng)絡資源留給了業(yè)務邏輯。
再投資可以持續(xù)、自動地擴大委托開采的投資規(guī)模,這是一個不錯的選擇,但需要注意的是,保稅代幣贖回需要通過參數(shù)$unbond_return_height定義的凍結(jié)期,才能返回到委托方的賬戶。盲目擴大委托債券的規(guī)模不利于流動性。
實施
QOS分布中的數(shù)據(jù)和邏輯流
對于QOS分發(fā)周期中的每個塊,分發(fā)abci將獲得一個委托方列表,這些委托方應該通過調(diào)用distributeearningbyvalidators方法獲得相同高度的獎勵。這個列表存儲在數(shù)據(jù)庫中。當$ delegator_incom__height較小時,委托列表的長度會更大。對于Cosmos,它可以被看作是一個循環(huán)分布的特殊情況,因為它的$ delegator_incom__height是1,等待獲得獎勵的委托列表是在驗證器上設置的整個委托。
委托-驗證器對的綁定代幣存儲在delegatorearningstartinfo中。當委托程序位于當前塊的分發(fā)列表中時,它最多會被每個$ delegator_incom__height塊所觸及。
在QOS中,如果$ delegator_incom__height = 17280,因此 1 天的平均塊時間為 5 秒,則同一分量器列表的分布計算大致將縮減為 Cosmos 中的 1/17280,但應執(zhí)行一些額外的工作,如再投資,周期也減弱了代幣持有者頻繁委托退出的愿望。由于 QOS 在主網(wǎng)的最初幾年中通貨膨脹率相對較高,因此該周期有助于減少涉及分配的網(wǎng)絡負載。
對于非綁定委托方,我們將其綁定塊的獎勵直接返回到他們的帳戶,而非綁定代幣必須在塊的高度行中等待。
可以說,QOS中的分布計算被劃分為 $delegator_income_period_height 。對于發(fā)行版的最終用戶(即驗證者和委托者),如果 $delegator income period height 長,則24小時,在最壞的情況下,他們可能錯過23.9986(假設平均阻塞時間為5秒)/20天的獎勵,這與真實世界中的T+1類似。然而,一個足夠聰明的客戶端程序可以通過簡單地計算連接高度和 delegator_income_period_height來估算用戶的興趣。
結(jié)論
在傳統(tǒng)互聯(lián)網(wǎng)應用領域,我們工作的一大部分就是優(yōu)化軟件架構(gòu)的各個層面,以實現(xiàn)更高的標準。我們相信,在區(qū)塊鏈領域還有更多的優(yōu)化。本文介紹了 QOS 通過為 DPOS 實施一個不斷發(fā)展的經(jīng)濟模塊而實現(xiàn)的改進。QOS分布周期通過粘合高度對委托方進行切分,在最佳情況下,將分布計算減少到1/$ delegator_incom__height。