我如何使用雜湊率分佈來推斷特定池何時會找到一個塊?
礦工隨機發現區塊,但也與礦工的雜湊率成比例。我如何才能最好地預測和表達每個礦池的這種“機會”?
例如,如果 F2Pool 在過去一周擁有 10% 的總挖礦算力,那麼說他們可能會找到 10% 的區塊向前推進是否有意義?
表達這個概念的最佳方式是什麼?我希望能夠這樣說:
“F2Pool 有 10% 的機會在接下來的 10 分鐘內找到下一個區塊,而這在 10 個區塊之後接近 100%。即 F2Pool 在接下來的 100 分鐘內很有可能找到至少一個區塊。”
顯然,在接下來的 x 個塊中找到一個塊的機會永遠不會是 100%,那麼給出一個數字的公認方式是什麼,同時也帶有“或者可能永遠不會”的意思?
是否有 API 或庫可以用來計算/了解每個礦池隨時間推移的這些“機會”值?
例如,如果 F2Pool 在過去一周擁有 10% 的總挖礦算力,那麼說他們可能會找到 10% 的區塊向前推進是否有意義?
假設很多礦工不切換,是的。
“F2Pool 有 10% 的機會在接下來的 10 分鐘內找到下一個區塊,而這在 10 個區塊之後接近 100%。即 F2Pool 在接下來的 100 分鐘內很有可能找到至少一個區塊。”
你在這裡問了兩個微妙不同的問題。
- 我會找到下一個街區嗎?
- 我會在接下來的十分鐘內找到一個街區嗎?
你可以在十一分鐘後找到下一個街區。你可以在五分鐘內找到一個街區,建立在四分鐘前發現的街區之上。
我會找到下一個街區嗎?
這很簡單。如果你有 10% 的算力,你找到它的機率是 0.1。如果你有 p 比例的算力,
(1-(1-p)^n)
你就有可能在接下來的 n 個區塊中找到一個區塊。對於 10% 的雜湊率和 10 個區塊,這是 65% 的機會。遠非確定無疑。p = 0.1 Blocks Probability of you getting a block 0 0.00000 1 0.10000 5 0.40951 10 0.65132 30 0.95761 50 0.99485 100 0.99997
我會在接下來的十分鐘內找到一個街區嗎?
塊發現遵循Poisson分佈。Poisson分佈代表一堆獨立的事件,其中一個事件的發生對其未來發生沒有影響。
我們想知道任何人在十分鐘內發現 k 個區塊的機率,平均每十分鐘有 1 個區塊。維基百科已經為我們準備了一張表格:
k P(k) 0 0.368 1 0.368 2 0.184 3 0.061 4 0.015 5 0.003 6 0.0005
但這並不是我們所需要的——如果找到十個塊,那麼其中一個是我們的比找到一個塊的可能性要大得多。乘以上面的表達式,用 k 代替 n,用 0.1(我們的算力比例)代替 p。
k P(k) P(k)*(1-(1-0.1)^k) 0 0.368 0.0000 1 0.368 0.0368 2 0.184 0.0350 3 0.061 0.0165 4 0.015 0.0052 5 0.003 0.0012 6 0.0005 0.0002 Sum: 0.0949
總結最後一欄。我們有 9.49% 的機會,即如果您擁有 10% 的雜湊率,您將在接下來的十分鐘內獲得至少一個區塊的機會。但是,這並不意味著有 95% 的機會在 10 分鐘內以 100% 的雜湊率獲得區塊。它不是線性的。如果你有 100% 的雜湊率:
k P(k) P(k)*(1-(1-1.0)^k) 0 0.368 0.0000 1 0.368 0.3680 2 0.184 0.1840 3 0.061 0.0610 4 0.015 0.0150 5 0.003 0.0030 6 0.0005 0.0005 Sum: 0.6315
…如果你擁有所有的算力,那麼你有 63.2% 的機會在接下來的 10 分鐘內出塊。
(我們的計算低了大約百分之二十分之一,因為我們沒有考慮像 k=7 這樣的情況。但我認為這是一個很好的近似值。)