Block

如何在區塊級別開採權益證明區塊,以及它如何實現其目標?

  • July 15, 2019

我已經看過許多關於權益證明探勘的廣泛概述和描述,但我還沒有看到任何關於實際探勘和驗證權益證明塊的內容以及它如何完成人們所說的任何好的描述。這有哪些技術細節?

權益證明挖礦在技術層麵類似於工作量證明。它涉及一種類似於工作量證明的彩票,但這種彩票的難度取決於您下注的硬幣數量。“嘗試”探勘 PoS 區塊的整個過程是這樣的:

  1. 添加 coinbase 交易和質押交易(在大多數硬幣中,必須硬編碼為第二筆交易)
  2. 正常準備塊,來自網路等的交易
  3. 計算 PoS “核心”
  4. 計算“質押難度”,即基礎難度,減去您質押的硬幣數量(或者在 PoS 版本 1.0 的情況下,您的硬幣的硬幣數量)
  5. 將核心的雜湊值與質押難度進行比較
  6. 如果雜湊遇到困難,則繼續,否則返回步驟 1 嘗試錢包中適合質押的其他 UTXO
  7. 現在你有了一個有效的 PoS 塊。最後一步是簽署區塊頭,證明您擁有第 1 步中的質押交易。

現在我將嘗試更深入一點。

首先,質押交易是普通比特幣區塊鏈上無法實現的特殊交易。它包括負費用的概念。因為所有質押者都知道獎勵,所以他們將此獎勵添加到此交易中,這意味著輸出硬幣比輸入硬幣多。這種交易僅在質押環境中有效。

接下來是 PoS 核心。這有點複雜,但重要的部分是在此塊的上下文中不能輕易更改其中的任何內容。在黑幣的情況下,核心由“stake modifier”(我稍後會解釋)、目前塊的時間戳和來自“txPrev”的數據組成。txPrev 是質押交易所花費的輸出交易(即質押交易的輸入)。從 txPrev 中提取的數據包括區塊時間、交易時間、雜湊和輸出數(vout ’n’)。

因為 txPrev 數據已經在區塊鏈中得到確認,所以它是不可變的。唯一可變的數據是目前的塊時間。雖然 PoS 幣中目前的阻塞時間實際上是被屏蔽的(即,底部位設置為 0),因此通過對其進行微小修改可以獲得非常少的熵。並且出塊時間不能超過一定的網路漂移限制,否則不是所有節點都會接受出塊。最後,權益修改器是通過從前一個(iirc)64 個塊中獲取一些熵位並將其散列在一起形成一個相對隨機數而生成的值。它的主要目的是使計算未來塊(超出下一個塊)的核心變得困難。

最後,核心的所有數據都被散列在一起。簡單計算質押難度。它採用比特幣的標準難度,但使其難度為 1 個硬幣。如果你下注 2 個硬幣,那麼這只是難度的一半。4個硬幣只有四分之一的難度,等等。對此有一些限制。為了防止有人能夠控制一個擁有大量幣的區塊鏈的網路,質押幣的數量是有限制的,因此基礎難度可以降低多少是有限制的經過。

最後,進行簽名,證明質押交易實際上屬於創建該區塊的人。簽名本身進入區塊頭,因此簽名是區塊雜湊的一部分。

所有這些加在一起會產生以下影響:

  1. PoS 區塊“挖礦”確實像 PoW 一樣涉及雜湊和難度,但是很少有機制可以改變給定的雜湊,所以無論你有多少計算能力,它都無濟於事
  2. 質押修飾符阻止預測您將能夠成功質押哪個塊,因為它為核心雜湊添加了許多不可控的熵
  3. 由於加權難度,您投入的硬幣越多,成功創建區塊的機會就越大
  4. 萬一由於質押人數突然下降而導致網路卡住,區塊時間的低熵版本最終將允許在足夠的時間內生成新的核心雜湊,讓留在網路上的質押者有機會獲得成功的 PoS 塊

我在一篇博文中發表了這篇文章,但認為它很適合這裡的 QA 格式,並在搜尋此答案時幫助更多人

引用自:https://bitcoin.stackexchange.com/questions/52321