跳到主要內容

淺談礦池挖礦機制 (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 可以有這麼多版本、不同語系的官網,畢竟在最原始的官網內也有「漢語」(簡體中文) 的選項,所以其他的國家自己的官網算代理商嗎? 如果真的要說我會比較建議到 英文版的官網 下載,畢竟這種軟體轉了一手又一手,加了什麼都不知道。

Linux (Ubuntu) 查詢硬碟容量、剩餘大小指令

在 Ubuntu Desktop 版本或有安裝 GUI 像 Xfce 的 Server 版本當然可以直接從圖形介面查看硬碟容量和已經使用的大小, 但如果是在純 CLI 版本或使用 SSH 連線時呢?那就需要用到指令了。 顯示硬碟容量、已使用、可用大小。 df -h 查詢資料夾所占硬碟的大小。 du -h 查詢檔案大小 ls -l

如何領取 Monero 分叉幣 MoneroV?附 Remote Node 免下載區塊鏈、快速同步

MoneroV 在先前已經完成分叉,目前也有在一兩間小型的交易所上市可以買賣,只要在  Monero 區塊高度 1,564,965 時持有 XMR 就可以得到十倍的 XMV, 但必須得是在自行保管私鑰的錢包、MyMonero 或有支援的交易所才能領的到 ,前兩項可以自行領取,交易所則得等所方派發,但如果你使用的交易所沒有支援這項 Fork 那當然就領不到啦。 MoneroV Wallet GitHub :  https://github.com/monerov/monerov GUI Wallet :  https://github.com/monerov/monerov-gui 上方的連結是 GitHub 原始碼,不知道為什麼在 GitHub 上 MoneroV 並沒有 Release 成可以直接使用的執行檔,但在官方網站上還是有提供的,可以到 官網 找到自己對應系統的錢包下載,如果不熟指令介面可以選擇 GUI Wallet。 開啟 GUI Wallet 後選擇 「Restore wallet from keys or mnemonic seed」 來匯入原本的 Monero 錢包,如果不放心將私鑰匯入可以先將 Monero 錢包內的餘額移出,已經產生過快照就不需要擔心沒辦法 Claim 自己的 XMV 了。 如果是使用私鑰來匯入的話則依序填入公開地址、View key、Spend key,以及選擇錢包名稱和儲存在哪個路徑, 即使是錢包檔也應該要好好保管,否則之後就得靠私鑰再匯入一次。 接著設定密碼,這就是開啟這個錢包檔的鑰匙,但如果錢包檔遺失了這個密碼也沒辦法將 XMV 取回,只能靠私鑰再重新匯入。 5.199.161.136 : 9538 接著選擇使用 Remote node,這樣就不必自己下載數十 GB 的區塊鏈檔案和花一大堆時間驗證、同步。 使用別人的 Daemon 來交易和領取 XMV 並不會有安全疑慮 ,只是在連接時對方可以知道的 IP。但其實就算是自己 Host Full Node 也是相同的,仍然會需要 P2P 的和它人連接也將 IP 暴露在公網上。 接著就會開始和遠端的 Node 同步了,左下角可以看到同步進度,完成後 XMV 就會顯示在你...