雖然沒有時間很仔細的把整個論文看一遍,不過畢竟我對網路架構也是略懂。
大概解釋一下皮毛。
傳統上P2P的網路協議,要廣播訊息都是靠flooding,簡單的講就是我不管鄰居是誰,
我直接最短時間內把我所收到的訊息再廣播給我其他的鄰居。
當然之前已經收到的資訊就直接就不用再重複廣播了。
每個節點都遵守這簡單的協議,那很快的整個網路都會有收到同樣的訊息。
Bitcoin Mempool就是靠這種方式在做同步,
但有個問題就是fooding會有很大量的封包重複傳送的問題。
畢竟目前的Internet上的Multicast網路多播一直實用化不起來。
要廣播給所有鄰居就是一個鄰居一個鄰居去傳封包。
但是很有可能有些鄰居已經有這些資訊了,而且這可能性還非常高。
這就造成大量的訊息封包浪費在不必要的傳送上。
而Bitcoin的預設鄰居設定值高達8,也就是每次轉傳最高可能高達7次的無效傳送。
這是非常大的傳輸頻寬浪費。
所以目前Greg Maxwell等人提出的Erlay就是把單純的flooding改成diffusion
轉傳封包並不是直接無條件馬上轉傳給所有鄰居。
而是只有well-known public node,也就是大礦工間會執行low-fanout flooding。
其他private節點,基本上指SPV錢包節點,會透過reconciliation決定要轉傳那些交易。
因為這些非礦工節點,對於延遲比較沒感覺,有收到交易即可。
而依照reconciliation群組不同,交易會被選擇性的轉傳,而不是flooding。
經過數次reconciliation的轉傳,交易就可以在不浪費過多無效傳輸狀態下轉傳整個網路。
詳細的機制去看論文,我還沒有時間全看完,不過大致上就是如此
https://arxiv.org/pdf/1905.10518.pdf
Greg Maxwell退出Blockstream後腦子有比較正常了,這個機制我是認為不錯。
只是現在的BTC用不到就是,因為1MB區塊根本耗不了多少頻寬。
1000kB*8bit/600s= 13.3 kbps
就算因為flooding和區塊轉傳浪費了十倍頻寬,也不過只需要133kbps
這種狀態下根本不需要Erlay,而目前Bitcoin最大的傳輸瓶頸還是在區塊產生後的轉傳。
而BCH已經有Graphene等相關區塊壓縮後傳輸的技術,可把區塊轉傳縮小為原本的1%大小。
而且也差不多實作完成。
當初Schnorr Signatures也是Maxwell喊說要做,結果先被BCH實作完成。
我覺得這個技術以後大概也是BCH上比較有機會先看到。
畢竟BCH假如要擴容到1GB的話
133 kbps*1000=133 Mbps
這已經超出目前一般人可以承受的頻寬水準了。
還有非常多的技術需要實作,才能替擴容到1GB的願景帶來可行性。