上篇文章解釋了人們對比特幣錢包(Bitcoin addresses)的誤解,blog友自由兄問了一條很好的問題,這問題是有關比特幣挖礦與確認交易的關係,他指出有人質疑,「比特幣供應量每年減半,礦工挖礦獎金也會減半,最終,礦工收入只能依靠微薄的確認交易費來維持,由於收入下降,這將令礦工關掉礦機,確認交易減少令維繫交易的保安系統安全下降,比特幣最終歩向滅亡。」我可以說,這也是誤解,這篇文章將會詳細解釋。
自由兄的問題剛好是我正想討論MIT Technology Review 引述的一份硏究報告。兩者的問題有一個共通點,就是要解釋確認交易節點(nodes)和礦工挖礦及確認節點full nodes的分別, 這一點在我本書未有解釋清楚。
MIT Technology Review 的連結:
https://www.technologyreview.com/s/610018/bitcoin-and-ethereum-have-a-hidden-power-structure-and-its-just-been-revealed/
我必須強調,這只是MIT Technology Review 雜誌引述一份由Cornell University 一名自稱是加密貨幣專家名為Emin Gün Sirer, 而MIT Technology Review 開首已經提出:
“Do these arguments hold any water?”意思是問:「立論是否合理?」
硏究報告的主要重點:
Perhaps the most striking finding is that the process of verifying transactions and securing a blockchain ledger against attack, called mining, is not actually that decentralized in either system. Bitcoin and Ethereum are open blockchain systems, meaning that in principle anyone can be a miner (see “What Bitcoin Is, and Why It Matters”). But organizations have formed to pool mining resources. The researchers found that the top four Bitcoin-mining operations had more than 53 percent of the system’s average mining capacity, measured on a weekly basis. Mining for Ethereum was even more consolidated: three miners accounted for 61 percent of the system’s average weekly capacity.
They also found that 56 percent of Bitcoin’s “nodes,” the computers around the world running its software (not all of them engage in mining), are located in data centers, versus 28 percent for Ethereum. That might indicate that Bitcoin is more corporatized, Gün Sirer says. Overall, the group concluded that neither network “has strictly better properties than the other.”
翻譯撮要:比特幣和以太幣標榜「分散式」貨幣,但現時超過53%的比特幣挖礦是由四間礦池集團壟斷,而61%的以太幣更是由三間礦池集團挖出。另外,56%的比特幣確認交易的電腦節點位處於數據庫,相比於只有28%以太幣確認交易的電腦節點是位處於數據庫,前者比較企業化。兩者均沒有誰比誰有較大優勢。
報告結論是,如果兩者的確認交易不夠分散,對交易系統的保安存在威脅。
報告提出兩個質疑:
- 挖礦由幾間礦池壟斷
- 節點不夠分散
要解答自由兄的問題和以上硏究報告的質疑,首先必須攪清楚礦池是怎樣分工、礦工的角色和確認交易的節點是甚麼?(由於比特幣的挖礦資料比較齊,而以太幣是Bitcoin 2.0,暫時全部集中看比特幣的情況。)
礦池意思是集體挖礦,挖礦是計出區塊散列出來的256位數值密碼,礦池中每一部參與的礦機各自負責一部份的計算,如果其中一個礦池較其他個體電腦或礦池先找出全部答案,這礦池便可獲得12.5個比特幣的奬金,這份獎金將會分派給礦池中的所有礦機,而各礦機所獲分派的獎金是按照其參與的份額。
據我所理解,礦池通常是由很多帶同礦機的投資者組織而成,由於挖礦是要競爭搶先解答數學題才會有回報,而且礦機越計得快,數學困難度越高,中心化的企業在這情況下沒有特別優勢,道理上也是集體挖礦礦池的成本效益較大和可以分散風險。所以,礦池雖然看起來企業化,但礦池內參與者眾,也算是分散的。
但我們更加關心的是確認交易是否足夠分散,如果確認交易不分散,比特幣和以太幣的保安系統的安全性便受到質疑了。
解答以上保安問題,我們必須弄清楚確認交易程序:
- 鬥快計出工作量證明函數,由於礦機的計算能力比一般電腦強,所以這工作大多是由礦機完成,最先答對數學的節點把答案和交易資料分發到全球節點;
- 然後全球電腦節點核對答案和帳簿記錄,直至獲得全部六個節點舉手確認,確認程序完成;
- 將巳確認的交易資料和時間記錄在區塊並連接到區塊鏈,更新帳簿並且將之傳送到全球擁有比特幣的手機及電腦。
挖礦礦工稱為「full nodes」(完整節點),除了挖礦還可以同時確認交易。另一方面,參與確認的節點未必盡是礦機,而是全球自願者參與確認的電腦節點,此稱為nodes(節點),這些也就是其餘舉手確認數學和帳簿無誤的節點。這些節點的分佈情況如何?我們看看下表:
全球確認交節點共有11,760個,儘管七成挖礦都在中國,但最多確認交易的節點卻分佈在美國和德國,美國有3,249個確認交易節點,德國有2,031個,分別佔全球節點的27.63%和17.27%,中國排行第三,佔全球節點的7.02%。即是說雖然七成礦機在中國,但它們都只做掘礦而很多礦機沒有參與確認交易,這也解釋到為何中國政府以環保理由要求關閉國內比特幣礦場,價格雖然大跌五成,但仍然無阻比特幣的運作,因為確認交易節點並不盡在中國。
這也回答了自由兄的問題,礦工減少是不會影響確認交易,因為確認是可以由分散致世界各地的電腦節點(nodes)做。另外,當礦工人數下降,理論上挖礦的計算困難程度便會下降,這也會吸引一些礦工再次參與挖礦以取得比特幣獎金,而礦工會否因獎金減少而最終關機?我想,如果比特幣價格因供應減少而升至十幾萬美元一個,礦工利潤又未必是下降,暫時真的很難預見到時會怎樣發生,因為價格、挖礦獎金、挖礦算式的困難程度,全都是互動,又或者到時人們接受了其他替代品,又或者比特幣改變至以太幣技術.........畢竟技術本身也是可以不斷改變,現在斷言它最終會消失也是很難說。我看如果覺得比特幣價格太貴,不買便是了。
這也回答了自由兄的問題,礦工減少是不會影響確認交易,因為確認是可以由分散致世界各地的電腦節點(nodes)做。另外,當礦工人數下降,理論上挖礦的計算困難程度便會下降,這也會吸引一些礦工再次參與挖礦以取得比特幣獎金,而礦工會否因獎金減少而最終關機?我想,如果比特幣價格因供應減少而升至十幾萬美元一個,礦工利潤又未必是下降,暫時真的很難預見到時會怎樣發生,因為價格、挖礦獎金、挖礦算式的困難程度,全都是互動,又或者到時人們接受了其他替代品,又或者比特幣改變至以太幣技術.........畢竟技術本身也是可以不斷改變,現在斷言它最終會消失也是很難說。我看如果覺得比特幣價格太貴,不買便是了。
謝謝亂博兄的詳細解說。
回覆刪除不用客氣:)
刪除比特幣及確認交易費都是給礦工的, 那又有什麼incentive去維持確認交易節點的運作?
回覆刪除ahchiu
多謝留言,我都有問過這問題,我的一個朋友就是其中一個長期開著電腦的節點,是自願的,沒有報酬,我想,他們因為是用家,所以想維繫著系統的安全掛
刪除有個假設性的技術問題,請教亂博兄:
回覆刪除現在有萬多個節點維持著比特幣的運作,其中最大的在美國。
假設有一日,美國(或中國)政府由於某種原因(例如防止洗黑錢,金融管制等),決定要封鎖比特幣,於是在國家的網閘(Gateway)封鎖所有比特幣的對外通訊,國內的節點和國外的節點便失去聯繫,只能獨立運作。
請問在這種情況下,
1)在國內和國外的比特幣網路會分裂成為兩個各自獨立運作的網路,各自繼續產生新的比特幣和交易?
還是
2)只有一個可以生存,另一個暫停運作,那麼是由甚麼去決定那一個可以生存呢?
謝謝
刪除祝亂博兄新年進步,財源滾滾,萬事勝意,五福臨門。
回覆刪除Invest in Ethereum on eToro the World's Best Social Trading Network.
回覆刪除Join 1,000,000's who have already discovered better strategies for investing in Ethereum.
Learn from experienced eToro traders or copy their trades automatically.
請問node是如何確認block中的交易是正確的?
回覆刪除