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