對於礦池挖礦,究竟什麼是份額?
有人可以準確解釋一下礦池挖礦中的份額是什麼嗎?我對測試隨機隨機數以在目前難度下找到雜湊有一個膚淺的理解。我也知道礦池設置了一個自定義的更容易的難度來定位一個相對容易達到的共享難度(約 10 分鐘)。
我不明白的是這些分享如何轉化為尋找真正的區塊。假設千分之一的股票是一個有效的真正的新區塊。為什麼礦工不自己送出該雜湊,然後將其餘更容易的份額發送到池中?
我確定我有一個基本的誤解,但無法弄清楚它是什麼。我猜想這個池有一些秘密,它可以結合送出的共享來查看該共享是否與一個塊匹配,但這是一個猜測。
任何幫助將不勝感激。
這裡有很多答案,但沒有一個人真正回答了“什麼是份額?”這個問題。
在幾乎所有的礦池中,共享是一個區塊“解決方案”,還不夠好,不能作為實際區塊發布,但仍然足夠好,很難找到它們。這意味著份額可以用來衡量你正在做多少工作,但與實際的塊解決方案相比,它具有更精細和更一致的粒度,這對於小型礦工來說太罕見了。
因此,僅作為範例,假設目前難度為 10,000。要成為有效塊,具有特定隨機數的嘗試塊必須“優於”10,000。在這種情況下,礦池可能會將他們的“共享難度”設置為 100。因此,對於您嘗試的每個隨機數,您的軟體都會檢查生成的塊的難度有多“好”。這些區塊中的大部分“難度級別”將低於 100,但也有少數區塊的難度級別將超過 100(仍然低於 10,000)。 這些“優於 100 但仍低於 10,000”的區塊就是我們所說的“份額”. 它們可以被發送到礦池中,即使它們還不足以在開放網路上作為實際塊發布。在這些份額中,礦池將被明確標記為任何潛在區塊獎勵的接收者,這意味著礦池可以使用您送出的份額數量作為您的機器正在做多少工作來嘗試尋找區塊的可靠證據游泳池,即使你還沒有找到。 這很好,因為找到實際塊需要很長時間。
隨著您的探勘,愉快地送出分享,那麼每一次在藍月亮中,您都會遇到一個解決方案,它不僅足以成為一個分享,它實際上也足以成為一個真正的區塊!也就是說,它的難度“超過10,000”,因此它不僅滿足共享標準,而且滿足全網難度標準,這要困難得多。這個你仍然會送出到池中,但是當他們得到它時,他們會繼續在實際網路上發布它,收到一個很好的豐厚獎勵,根據他們送出的份額分配給每個人。 當然,這些不是實數,大多數軟體的工作原理是告訴你的機器尋找超過 100 個的塊,而不用擔心網路難度是多少. 但是,我們仍然可以看到,沒有進行實際挖礦的人一開始就永遠無法找到任何股份,這意味著從礦池的角度來看,這實際上是相當安全的,可以作為衡量每個人正在做多少工作的一種方式.
我在這裡忽略了很多細節,因為池需要小心一些微妙的技巧(阻止預扣攻擊任何人?),但簡而言之,共享實際上是:完全正常的塊,不滿足要在網路上發布的全部要求,但仍然滿足池設置的一些較小的要求,以算作您正在以池設置為接收者進行探勘的證明。
現在,為什麼礦工不能自己送出任何實際的塊來獲得全部獎勵?兩個原因:首先,為了使他們的份額有效,他們必須將池設置為接收者,因此無論誰廣播,探勘的塊都已經將獎勵給了池,第二(如zanzu 所示)礦池實際上並不費心將整個區塊提供給礦工,只是一個包含實際區塊內容雜湊值的標頭模板)。
礦工可以做的就是偷偷扔掉有效區塊,而不是把它送回礦池。 這將比礦工更傷害礦池的其餘部分,因為只有一小部分獎勵實際上會返回給他們,並且由於一堆複雜的博弈論原因,這可能如果同一個礦工還有很多其他的採礦能力根本不在池中,那麼就會產生優勢。(這就是我上面提到的“區塊扣留攻擊”)。但是如果你經常這樣做,它開始在統計數據中變得很明顯,而且它也不會為典型的小型礦工帶來任何好處。因此,這些攻擊被認為是相當罕見的。某些類型的獎勵計劃或多或少會抵抗該策略,但大多數人似乎並不十分關注這些攻擊。所以總而言之,基本的“分享”策略已經足夠好了。
TL;DR:共享是礦池用作小礦工參與證據的“失敗區塊”。
礦池中的參與者只收到他們計算 POW 所需的參數(塊頭參數等)。然而,如此處所示,一個塊還包括一個 Merkle-Patricia 狀態樹、一個交易 Merkle 樹和一個收據 Merkle 樹。礦池礦工在嘗試計算 POW 時沒有(也不需要)這些 tri/ee。
因此,一旦其中一個礦池礦工(半盲)計算了 POW 的解決方案,只有礦池主擁有向區塊鏈送出新塊所需的完整數據集。