跳到主要內容

淺談礦池挖礦機制 (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 GUI / CLI 錢包 - 懶得同步區塊鏈嗎?你可以連上公共節點直接使用 XMR CLI / GUI Wallet

「門羅幣 Monero」(XMR) 在近期分叉 ( 4/6 Fork ) 後又成了熱門話題,但在接收傳送 Monero 最麻煩的問題大概就是錢包了,不少人會直接選擇網頁錢包「 MyMonero  」,但其實這個免同步區塊鏈的錢包手續費偏高而且你沒辦法掌有私鑰 (Secret Key),最正確的錢包使用方法當然還是到 Monero 官網下載 CLI / GUI 錢包且自行保管私鑰,但那就會有需要同步區塊鏈的問題,Monero 區塊鏈動輒 30、40 GB,光要下載而且同步完成大概就要花上一天一夜,那有沒有更方便的做法呢?那就是直接使用公共節點 (Public Node)。 公共節點就是別人已經同步好的區塊鏈供你使用,就像一般礦池也都會架好這樣的節點 24HR 上線,但差別在於那是提供礦工挖礦使用的, 而公共節點則可以讓一般人傳輸、接收加密貨幣。 而「 Monero Taiwan 」就有提供公共節點的服務,可以說是造福了不少錢包使用者啊。 Monero Wallet 下載頁面 :  https://getmonero.org/downloads 錢包的部分請下載適合自己作業系統的 CLI (指令列) / GUI (圖形介面) 錢包, 如果不熟悉指令介面的建議下載 GUI Wallet。 Monero Taiwan Nodes 公共節點 No.1 : node1.xmr-tw.org 公共節點 No.2 : node2.xmr-tw.org 登入錢包或創建新的錢包後,就可以在「錢包設定」內連上公共節點了 ,如此一來就會直接使用節點同步好的區塊鏈進行傳輸確認,也可以馬上看到先前的交易紀錄。但要注意的是 Monero Taiwan 在網站上也有提到不保證節點 100% 上線以及服務的延遲,所以還是建議能自行架設節點為佳。