跳到主要內容

淺談礦池挖礦機制 (Pooled Mining)



開了礦池之後常常被問到一些很弔詭的問題,像是在沒出塊時問「為什麼都沒收入?」或是「收益跟估算的比怎麼少這麼多?」,而且根據我的觀察這些問題在出塊運氣差的時候最常出現,運氣好的時候從來不會有人問「今天怎麼賺這麼多」……。其實這也顯示了部分的礦工對礦池運作機制還是非常不熟悉,這大概要歸因於已經習慣挖 10 分鐘出一次塊的大礦池,在出塊運氣被頻率沖淡、頻繁開塊分贓的情況下,可能有些人就不再去計較這一切是怎麼發生了~


以我的礦池為例 (https://omine.ga),一個很典型的 CryptoNight 礦池



礦池機制

可能對於不少人來說根本沒有試過什麼叫獨立挖礦 (Solo Mining) 所以就直接把所有的挖礦都想成是礦池挖礦,反正就是只要把挖礦程式連上礦池給的地址和連接埠,然後加密貨幣就會隨之入賬了。當然這樣講其實也沒有錯,礦池挖礦除了聚眾合作外,為的就是讓更多人能參與挖礦 (貨幣發行、傳輸) 所以把很多細節都給簡化了。 
如果真的要解釋就得從最基本的講起了,挖礦就像是讓電腦解一個難題,而最先解出來的人就可以獲得獎勵 (加密貨幣),而為了控制獎勵的發放 (貨幣發行) 整體網路會有一定的機制來去制衡,隨著越來越多人參與挖礦,這個難題的難度也就會隨之提升,所以到最後單憑一台礦機的運算能力可能要花上數年才有機會在整體網路中當上那「第一個解出難題的人」,也是因為如此才需要大家一起合作挖礦,讓來自不同地方的礦機同時運算,解出難題時也可以共同分享成果,這就是礦池的基礎概念。 
那根據挖礦的概念推廣,礦池的運作邏輯也是完全相同的,在大部分的分潤模式下只有在出塊的時候才能和礦工分享獎勵,如果是規模不大的小礦池其實仍然很受運氣影響,出塊頻率低會需要更長的時間來讓回報趨近理論值,因此平常都挖大礦池的人就會非常不習慣。




分潤模式

其實無論規模大小,在 CryptoNight 系列礦池大部分都是採 PPLNS 或 RBPPS 的分潤模式,所以出塊運氣都還是由礦工來負擔,也相對會有比較低的手續費。其實分潤模式大同小異,而且也很難講說哪個模式對礦工最好,就長期來看其實是選擇手續費低廉的最賺 (PPLNS、RBPPS),但若短期而言則是 PPS 得到的收入會最接近理論值。以下大概整理了這三種最常見的分潤機制 :
  • PPLNS : 出塊後根據過去的 N 個 Shares 來支付,出塊運氣由礦工承擔,而且對於跳池者來說並不友善,得挖完當下這輪 (N 個 Shares) 才會回歸正常的收益。舉例來說 Nanopool 的 N 就是以「過去三小時的 Shares 」來分配區塊獎勵。
  • PPS : 無視出塊與否,礦池會直接根據上繳的 Shares 給予礦工理論值的付款,運氣成分和孤兒塊 (Orphan Block) 由礦池方承擔,因此手續費多半較高。 
  • RBPPS : 分潤方式算是 PPLNS 和 PPS 的結合體,在是出塊時會根據礦工上繳的 Shares 佔整體比例分配,由礦工承擔運氣,手續費多半較低。




孤兒塊 (Orphan Block)

「為什麼出塊了沒有獎勵?」一出孤兒塊就一定會被問到這個問題,其實嚴格來說孤兒塊並不是出塊,因為它最後沒有被整體網路確認加到區塊鏈中。孤兒塊的產生是因為兩個區塊幾乎在同時被開採出來,而整體網路就會需要達成共識要認證哪一個區塊作為區塊鏈的延續,而先被網路確認的區塊就會成為正宗,另一個就變成孤兒,確認的速度有點取決於距離主節點的距離,如果在地理位置上離大部分的算力較近就可以較快速的將這個區塊的消息傳開,當然即使是超大型礦池還是會有出孤兒塊的時候,所以這部分還是得要看點運氣啦。不過就像先前說的,它嚴格講起來並不算是出塊,所以當然也沒有獎勵囉。但以太坊 (Ethereum) 有另一種機制叫做叔叔塊 (Uncle Block),簡單說就是為了保障比較慢被確認的區塊,它雖然不位於主鏈上但仍然承認它的合法性,就像叔叔雖然不是直系血親但也是有血緣關係,所以也會有一個算法來給予獎勵 (有興趣的可以參考這篇)。





留言



這個網誌中的熱門文章

WinRAR - 繁體中文版、免費版,別再破解了,老牌壓縮軟體直接免費給你用

WinRAR 應該對於所有 Windows 使用者一點都不陌生,可能也是很多人壓縮、解壓縮檔案的首選,舉凡 RAR、ZIP、7-Zip、TAR ...等檔案格式都可以處理,製作自解壓縮 (.EXE) 檔也沒問題,也算是最老牌的解壓縮軟體之一。 WinRAR 官方網站 :  https://www.win-rar.com 繁體中文版 :  https://rar.tw/download.html 永久免費簡體版 :  http://www.winrar.com.cn/download.htm 其實我也不太理解為什麼一個 WinRAR 可以有這麼多版本、不同語系的官網,畢竟在最原始的官網內也有「漢語」(簡體中文) 的選項,所以其他的國家自己的官網算代理商嗎? 如果真的要說我會比較建議到 英文版的官網 下載,畢竟這種軟體轉了一手又一手,加了什麼都不知道。

7-Zip 繁體中文版 - 別再用破解版的 WinRAR 了,改用開源免費的解壓縮軟體 (Windows / Linux / FreeBSD)

7-Zip 是一款開放原始碼 (Open Source) 也完全免費的解壓縮軟體,它不但支援 Windows 系列系統, 也有 p7zip 這個移植版本可以在 Linux (Ubuntu、Debian...等)、FreeBSD 下使用 ,可以說是非常泛用而且方便的解壓縮軟體,當然更重要的是它非常輕便也完全免費! 7-Zip 官方網站 :  https://www.7-zip.org 繁體中文版 :  https://www.developershome.com/7-zip p7zip (Linux / FreeBSD) :  https://sourceforge.net/projects/p7zip 7-Zip 支援的壓縮 / 解壓縮格式之多,基本上所有現行的格式都可以支援,可以完美的取代 WinRAR 作為壓縮處理程式, 所以不要再使用破解版的 WinRAR 直接改用免費開源的 7-Zip 吧。

SSHPass - 讓 SSH 連線自動登入、不需要輸入密碼,以及 Windows 快速登入檔製作

登入遠端的 SSH 時每次都要打密碼真的是非常浪費時間,尤其是想把 SSH 連線做成一鍵捷徑時一定會遇到密碼的問題,即便成功連線了還是得手打密碼啊,身為一個懶鬼當然是連密碼都想省掉,那 SSHPass 就可以幫你做到直接將密碼加在指令列內,以後只要靠一個 .bat 就可以快速連線了。 sudo apt-get install sshpass 首先先在用戶端 (Client) 安裝 SSHPass, 如果是在 Windows 可以使用 Bash  來進行安裝。 sshpass -p 密碼 ssh 帳號 @ 地址 這行指令就能讓你直接登入了,當然這還需要打一行指令還不夠方便。 為了達到真的一鍵登入,我們先建立一個 .bash 指令檔。 bash login.bash 再寫一個 .bat 檔放在同路徑下。那直接執行 BAT 時就會先開啟 Bash > SSHPass > SSH 成功連線!是不是又更方便了不少呢。