您的位置:首頁 > 區(qū)塊鏈 >

Decred是通過工作量證明與權益證明的挖礦系統(tǒng) 支持兩種Staking

2019-09-12 11:36:15 來源: 區(qū)塊網(wǎng)

Decred 是一種類似于比特幣的加密貨幣,通過工作量證明與權益證明的混合挖礦系統(tǒng),確保少數(shù)組織無法主導交易流程,且無法在沒有社區(qū)投入的情

Decred 是一種類似于比特幣的加密貨幣,通過工作量證明與權益證明的混合挖礦系統(tǒng),確保少數(shù)組織無法主導交易流程,且無法在沒有社區(qū)投入的情況下擅自更改 Decred。相應地,Decred 的出塊獎勵60%為 PoW 礦工所有,30%歸 PoS 投票者所有,其余10%則屬于 Decred 財庫,由持票者投票決定如何使用。Decred 的代幣為 DCR,總量為 2100萬枚。

不同于 Cosmos 直接抵押代幣的設計,Decred 網(wǎng)絡的 Staking 是通過“買票”的方式進行的:用戶通過錢包購買 Staking 所需票,等待票被選中,選中后即可獲得收益。由于票被選中時要求錢包在線,因此對于多數(shù)普通用戶而言,通過支付少量手續(xù)費來委托“投票服務提供商”代為 Staking 無疑是更為穩(wěn)妥的選擇。HashQuark 現(xiàn)已開放 DCR 投票,歡迎前來投票(https://dcr.hashquark.io)!

在項目實現(xiàn)方面,Decred 是以比特幣的 go 語言實現(xiàn) BTCD 的代碼為基礎擴展 PoS 相關特性。本文從比較 Decred 和比特幣的數(shù)據(jù)結構入手,逐步探究其如何通過不同的“交易”類型來實現(xiàn)買票、中票和退票的機制。

數(shù)據(jù)結構

Decred 的區(qū)塊和交易數(shù)據(jù)結構沿用于比特幣,賬戶也采用了 UTXO 模型。本文將依次對比 Decred 與比特幣的區(qū)塊、交易等結構。

區(qū)塊結構

Decred 和比特幣的區(qū)塊結構都由兩部分構成:區(qū)塊頭(BlockHeader)——包含一些元數(shù)據(jù);區(qū)塊體(BlockBody)——包含交易信息。

區(qū)塊頭部結構

Decred 的頭部多記錄了一些 Staking 相關的數(shù)據(jù):

1. StakeRoot 類似于 MerkleRoot,MerkleRoot 負責記錄普通交易相關的默克爾樹的根值,StakeRoot 記錄的則是 Staking 相關交易的默克爾樹的根值。

2. FreshStake、Revocations 和 PoolSize 記錄的則是在此區(qū)塊中有多少新買的票、撤回的票以及票池的大小。

3. Sbits 與 Bits 類似,Bits 記錄 PoW 挖礦的難度,Sbits 記錄的則是 Staking 的難度。

區(qū)塊體結構

Decred 的區(qū)塊體中多了一些 Staking 相關的交易記錄。在 Decred 中,Staking 相關的交易包括買票、中票和退票。

交易結構

通過上圖可知,比特幣和 Decred 的交易結構大體上是一致的,包括了多個輸入(TxIn)和多個輸出(TxOut)。每個輸入包含了指向上一個區(qū)塊和索引的引用,輸出則包含了鎖定金額和鎖定腳本。

在 Decred 的設計中,一張票會經(jīng)歷如下生命周期:

- 通過錢包支付“票價+買票手續(xù)費”購買一張票

- 買票交易進入內存池,等待 PoW 礦工打包

- 若買票交易被打包,則該票變成“未成熟”狀態(tài),等待256個區(qū)塊(約20小時)成熟。在此期間,該票無法被撤回。若該買票交易未被打包,買票的票價+買票手續(xù)費會被退回賬戶

- 等待256個區(qū)塊后,該票成熟,進入票池等待被選中

- 被選中平均需要28天,概率符合泊松分布。目標票池有40960張票,任何一張票在40960個區(qū)塊(約142天)中有99.5%的概率被選中。如未被選中,則該票“過期”,將退回購買時的票價

- 若票被選中、錯過(被選中投票未響應或兩個區(qū)塊間隔時間過短)或過期,鎖定的資金需等待256個區(qū)塊成熟才能釋放

- 若票被錯過或過期,需要錢包發(fā)起退票交易以取回資金

Decred 是如何設計買票、中票、撤回票等邏輯的?答:通過定義不同的“交易”來進行。

Dcered 支持兩種方式的 Staking——用戶 solo或 VSP(投票服務提供商)。前者要求用戶錢包長期在線,后者則是借助第三方服務。下文將從 VSP 質押的方式入手,探究買票、中票和退票是如何進行的。

前置操作

用戶在購買票前需要先綁定對應的 VSP。可通過登錄 VSP 網(wǎng)站獲取 API token 填入錢包來進行。綁定記錄了以下數(shù)據(jù):VSP 手續(xù)費、VSP 地址、與 VSP 共同生成一個1-2多簽地址等。

買票

在 Decred 的設計中,用戶通過錢包買票,票價會隨著需求量波動,每144個區(qū)塊(約12小時)動態(tài)調節(jié)一次,以維持票池數(shù)量40960票的目標。

在買票前,錢包會計算出下列數(shù)值:

票價(TicketPrice)

小費(TicketFee)

VSP 的手續(xù)費(poolAmt)

用戶應分得的金額(userAmt)

買票交易的輸入輸出如下圖所示:

買票交易用兩個 UTXO 作為輸入,分別是此前計算出的 poolAmt 和 userAmt。輸出主要分為三部分:

· 第一個輸出值為票價,輸出地址是一個票池和用戶二選一的多簽地址,表示用戶或票池二選一能花費這筆輸出

· 第二個輸出值為0,使用“OP_RETURN”記錄了 VSP 地址和貢獻值,之后需要根據(jù)該貢獻值計算中票后分得的獎勵

· 第三個輸出值為0,地址為空地址。其設計本意為找零地址,但在實際操作中,錢包會在買票交易前構造一筆交易,創(chuàng)造數(shù)量合適的兩個的輸入

· 第四個輸出類似第二個輸出,記錄的是用戶的獎勵地址與貢獻值

· 第五個輸出類似第三個輸出,本意是用戶找零地址,實際設置為零。

· 輸入值和輸出值之差為此前計算的買票費(TicketFee),這筆費用即礦工打包買票交易的費用。

買票的本質是在計算票價和買票費后構造一筆交易,輸入是用戶要付的完票價和買票費,輸出最主要的是用戶和票池的二選一多簽地址,其他輸出則記錄票池和用戶之后分配資金的比例。

中票

當一張買票交易被 PoW 礦工包含進區(qū)塊成功挖出后,等待256個區(qū)塊后即可“成熟”,此時該票有一定概率被選中。選中后,由 VSP 發(fā)起對應的中票交易,交易發(fā)起成功,等待256個區(qū)塊成熟,用戶即可獲得收益。

中票交易如下圖所示:

中票交易的輸入分為兩部分:

- 第一部分為中票獎勵,類似于 PoW 挖礦的鑄幣獎勵,這一輸入是“憑空”產(chǎn)生的。中票交易獎勵的計算方式為中票獎勵 = 該區(qū)塊獎勵 * PoS獎勵占比(30%)/ 5張票。

- 第二個輸入是買票交易的第一個輸出,即此前產(chǎn)生的二選一多簽、值為票價的輸出?,F(xiàn)在由票池來花費這筆輸出,構造一個中票交易。

中票交易的輸出大體分為三部分:

第一部分:記錄一些驗證信息,如前一個區(qū)塊的哈希、高度以及用戶相應的投票等信息。

第二部分:根據(jù)買票交易里的礦池貢獻值(poolAmt)計算中票后礦池分得的手續(xù)費,這部分輸出歸礦池所有。

第三部分:根據(jù)買票交易里的用戶貢獻值(userAmt)計算用戶分得的金額,這部分輸出歸用戶所有。

既然中票交易不含交易費,那么 PoW 礦工會不會不打包或降低這些交易的優(yōu)先級呢?并不。在 Decred 的設計中,PoW 挖出的塊必須包含3-5張中的票,也就是中票交易,如礦工故意漏票,則會導致其收益降低或生成的區(qū)塊無效。

退票

用戶買的票在40960個區(qū)塊里有99.5%的概率被選中。若未被選中,則該票“過期”。另有一種情況,即某張票雖被選中,但由于某些問題(如票池宕機)或兩個區(qū)塊間隔較短,也會出現(xiàn)該票“錯失”的情況。在上述情況下,錢包會發(fā)起“退票”交易來取回買票的票價金額,但小費(TicketFee)無法返回。

與中票交易類似,退票交易采用買票交易的二選一多簽輸出為輸入,由于未中票,因此沒有額外的質押獎勵作為輸入。

退票交易的輸出分為兩部分,根據(jù)買票交易的貢獻值在礦池和用戶之間分配撤回的金額,與中票交易類似。若用戶未中票, 票池也會分得少量手續(xù)費——當然,退票交易在實際情況中是極為少見的。

總結

至此,我們分析了 Decred 是如何實現(xiàn) Staking 的核心——買票、中票和退票的。在比特幣的數(shù)據(jù)結構基礎上,擴展 PoS 相關的存儲結構,通過構造和解釋不同的交易類型和腳本語言,利用多簽地址和 OP_RETURN 操作符記錄 Staking 相關信息, 巧妙地實現(xiàn)了質押的相關邏輯。由于在買票等過程中,用戶的資產(chǎn)并不屬于票池,其安全性也因此得到了保證。(HashQuark)

關鍵詞: Decred 挖礦系統(tǒng) Staking

精選 導讀

募資55億港元萬物云啟動招股 預計9月29日登陸港交所主板

萬科9月19日早間公告,萬物云當日啟動招股,預計發(fā)行價介乎每股47 1港元至52 7港元,預計9月29日登陸港交所主板。按發(fā)行1 167億股計算,萬

發(fā)布時間: 2022-09-20 10:39
管理   2022-09-20

公募基金二季度持股情況曝光 隱形重倉股多為高端制造業(yè)

隨著半年報披露收官,公募基金二季度持股情況曝光。截至今年二季度末,公募基金全市場基金總數(shù)為9794只,資產(chǎn)凈值為269454 75億元,同比上

發(fā)布時間: 2022-09-02 10:45
資訊   2022-09-02

又有上市公司宣布變賣房產(chǎn) 上市公司粉飾財報動作不斷

再有上市公司宣布變賣房產(chǎn)。四川長虹25日稱,擬以1 66億元的轉讓底價掛牌出售31套房產(chǎn)。今年以來,A股公司出售房產(chǎn)不斷。根據(jù)記者不完全統(tǒng)

發(fā)布時間: 2022-08-26 09:44
資訊   2022-08-26

16天12連板大港股份回復深交所關注函 股份繼續(xù)沖高

回復交易所關注函后,大港股份繼續(xù)沖高。8月11日大港股份高開,隨后震蕩走高,接近收盤時觸及漲停,報20 2元 股。值得一提的是,在7月21日

發(fā)布時間: 2022-08-12 09:56
資訊   2022-08-12

萬家基金再添第二大股東 中泰證券擬受讓11%基金股權

7月13日,中泰證券發(fā)布公告,擬受讓齊河眾鑫投資有限公司(以下簡稱齊河眾鑫)所持有的萬家基金11%的股權,交易雙方共同確定本次交易的標的資

發(fā)布時間: 2022-07-14 09:39
管理   2022-07-14

央行連續(xù)7日每天30億元逆回購 對債市影響如何?

央行12日再次開展了30億元逆回購操作,中標利率2 10%。這已是央行連續(xù)7日每天僅進行30億元的逆回購縮量投放,創(chuàng)下去年1月以來的最低操作規(guī)

發(fā)布時間: 2022-07-13 09:38
資訊   2022-07-13

美元指數(shù)創(chuàng)近20年新高 黃金期貨創(chuàng)出逾9個月新低

由于對美聯(lián)儲激進加息的擔憂,美元指數(shù)11日大漲近1%創(chuàng)出近20年新高。受此影響,歐美股市、大宗商品均走弱,而黃金期貨創(chuàng)出逾9個月新低。美

發(fā)布時間: 2022-07-13 09:36
資訊   2022-07-13

美股三大股指全線下跌 納斯達克跌幅創(chuàng)下記錄以來最大跌幅

今年上半年,美股持續(xù)回落。數(shù)據(jù)顯示,道瓊斯指數(shù)上半年下跌15 3%,納斯達克綜合指數(shù)下跌29 5%,標普500指數(shù)下跌20 6%。其中,納斯達克連續(xù)

發(fā)布時間: 2022-07-04 09:51
推薦   2022-07-04

融資客熱情回升 兩市融資余額月內增加超344億元

近期A股走強,滬指6月以來上漲4%,融資客熱情明顯回升。數(shù)據(jù)顯示,截至6月16日,兩市融資余額1 479萬億元,月內增加344 67億元,最近一個半

發(fā)布時間: 2022-06-20 09:41
資訊   2022-06-20

4個交易日凈買入超百億元 北向資金持續(xù)流入A股市場

北向資金凈流入態(tài)勢延續(xù)。繼6月15日凈買入133 59億元后,北向資金6月16日凈買入44 52億元。自5月27日至今,除6月13日以外,北向資金累計凈

發(fā)布時間: 2022-06-17 09:37
推薦   2022-06-17