為什麼比特幣網路中的節點會願意幫別人廣播交易信息?
在比特幣系統中,交易信息是通過P2P網路進行廣播的,最終傳播到礦工那兒並進行記賬。由於記賬是有利可圖的,所以礦工有動機去找『工作量證明』。但是P2P網路中的一般(非礦工)節點去『轉發交易信息』這個操作本身的動機是什麼?如果無利可圖的話,帶寬和電費也是成本(雖然不多)。同理還包括轉發區塊本身。
我猜這個問題與『BitTorrent網路中如何避免只下載不上傳的吸血行為』類似。
不請自來。
我想說——盲生,你幾乎發現了華點。
首先先明確兩個事情:要區分廣播交易和廣播區塊,以及礦工和非礦工。
實際上,比特幣是礦工的系統,有收益的也只有礦工,所以,無論非礦工做什麼在鏈上都不會有收益,所以,自然廣播交易也沒有收益。換句話說,非礦工做啥都無所謂,它們嚴格來講都不算比特幣世界裡的一員。
然而,對於大部分節點而言,他們雖然在鏈上沒有直接利益,但是,他們想要真實的賬本,這些節點可以是交易所,可以是個人。如果他們認為「獲得真實賬本」這件事是對他們有利的話,那麼,他們就有了廣播區塊的動力,因為在比特幣的系統里,因為分叉和分叉間的競爭關係,「廣播區塊」這件事可以增加他們獲得的賬本的真實性。於是,說他們無利可圖是不對的。
廣播交易就是另一回事了。
你的觀察非常正確,廣播交易在比特幣世界裡是無利可圖的。之所以目前大家還廣播交易,是因為廣播的成本很小,所以無所謂。
如果你的觀察更進一步,你會發現,礦工轉發交易不僅無利可圖,而且是損害自身利益的。原因在於,比特幣的挖礦獎勵來源一個是區塊獎勵,一個是交易費,而交易費來源於交易。而這時,假設你是礦工,收到了一筆會給你不菲交易費的交易。此時,不把這筆交易廣播出去,而是留著自己挖才是更好的選擇,於是,對於礦工而言,最理性的選擇應該是不廣播高交易費的交易,甚至,防止別的礦工獲得高交易費交易,於是造成高交易費的交易反而更難被上傳——這會破壞比特幣的假設。
這是比特幣的已知缺陷之一,後來的大部分區塊鏈,都會考慮這個問題。如果你是6年前想到這個問題的話,你大概能獲得100多引用。
[1111.2626] On Bitcoin and Red Balloons
解決方案是加入傳輸獎勵,這個部分就不贅述了。
————————————————————————————————————————
回答樓下有關公地悲劇的問題。
好問題,我想了一下覺得不會。公地悲劇得是當每個人的行為對結果無法產生可估計的影響的時候。所以,我覺得,如果真的是廣播的話,那麼是會引起公地悲劇的。但是實際上,廣播在具體執行起來的時候實際上並不是單純地喊一嗓子這麼簡單。實際上,每個人是把區塊點對點發送給每個已知的礦工的,所以,實際上每一次發送的成本和收益都是可估計的。
所以,這不是一個「廣播區塊為大家謀福利」的問題,而是每個人拉算力給自己認定的區塊背書的問題。
高效的完全節點能增加比特幣網路的穩定性。
完全節點本身相對於非完全節點也更加安全。
維護比特幣網路穩定和保證自身交易安全,對交易所、礦池、在線錢包、輕錢包伺服器等專業比特幣用戶都是有利的,所以他們會維護一些專業的完全節點。
還有一部分是因為愛。
————
毫無入侵價值的垃圾電腦上,照樣有人安裝360安全衛士,把系統搞得又卡又慢。
廣播又不是巨大的負擔,卻真的能夠保障安全。
不廣播挖不到礦
不廣播交易信息,你挖礦的結果就不能告知他人,如果發生競爭,結果廣播更廣的礦工的獲得收益,你的結果被取消。
另外,你平時不參與消息廣播,帳本不是最新的,其它節點也會把你剔除,你挖到礦的時候,幫你廣播的節點自然少了很多。
這個問題很好,維護一個全節點確實是無利可圖的,只有技術和安全強迫症的人才會去做。在以太坊的pos設想中,有人提出過應該給全節點運行者獎勵,但實施方案還不夠完善。
現在比特幣全網長期節點並不多,大概5萬個左右吧。所以要不要運行全節點其實是一個信仰問題……1. p2p協議不只是廣播交易,還會廣播區塊2. 廣播交易是在比特幣軟體里寫的,可以修改源代碼不廣播交易,但沒什麼意義。3. 新的p2p協議提高了新區塊同步的速度,但需要節點裡有足夠多的未確認交易。
推薦閱讀:
※如何看待比特幣過於集中在少數人手中?
※btc要跟政府做對去中心化,飛機大炮是擺設嗎?
※比特幣歷史數據哪裡可以拿到?
※Cardano 幣相比其他數字貨幣有哪些優勢和缺點?
※比特幣價格為何在 2017 年 5 月升至紀錄高點?
TAG:比特幣Bitcoin | 對等網路P2P | 區塊鏈Blockchain |