節點、挖礦與驗證者運維

交易傳播

交易傳播是指一筆剛簽好的交易,如何從最先收到它的那個節點擴散到網路其餘部分,直到抵達能將其納入區塊的區塊生產者。沒有中央伺服器可上傳;取而代之的是,每個節點告知它直接相連的少數對等節點,這些對等節點再告知它們的對等節點,如此層層擴散,在一兩秒內漫過整張點對點網路圖。這就是流言式協定:資訊像謠言穿過人群般向外漣漪擴散。

若天真地處理,節點大可把每筆交易的完整位元組推給每個對等節點,但這會浪費龐大頻寬,因為對等節點往往早已擁有它。因此現代網路採取「先公告再索取」。在以太坊的 devp2p 協定中,節點先只送出它聽聞過的交易雜湊;尚未見過某雜湊的對等節點才回頭索取完整交易。比特幣以相同概念運作,先送 inv(庫存)訊息,再以 getdata 索取。這以多一趟往返為代價,大幅削減重複流量。

傳播既非瞬時亦不均勻,而這種不對稱有實際後果。交易會先抵達靠近其來源的節點、再到較遠的節點,因此網路不同部分會短暫地持有不同的記憶池。連線條件較佳(或付費取得私有資料流與中繼)的區塊生產者會更早看見可獲利的交易,這正是 MEV 搜尋者取得優勢的一部分原因。延遲也引發區塊傳播競賽:在工作量證明中,較晚得知新區塊的礦工可能在過時的鏈頭上白費算力,這正是低延遲中繼網路被建立的原因。

傳播也牽涉隱私面向。由於交易源自單一節點再向外擴散,運行眾多連線良好之監聽節點的對手,有時能推斷出哪個節點最先公告某交易,從而猜出發送者的 IP——這是一種去匿名化途徑。協定以隨機挑選對等節點與擴散技術來緩解此問題(例如比特幣的 Dandelion 提案,會先讓交易沿單一私有的「莖」路徑傳遞,再向外廣泛廣播),使真正的源頭更難被鎖定。

某節點聽到一筆新交易,將其 32 位元組的雜湊送給它的 50 個對等節點。早已擁有它的 30 個保持沉默;尚未擁有的 20 個各自回覆「getdata」,節點才把完整約 200 位元組的交易送過去。雜湊向外漣漪擴散,完整位元組僅在必要處才跟進。

傳播是一場流言式的洪泛,而非上傳給單一伺服器——正因如此,延遲、連線品質與對等節點數量會實質影響誰最先看到交易、以及誰能加以利用。