塊大小取決於事務計數
眾所周知,比特幣有
1 MB
每個區塊的限制。但是,目前的平均塊大小約為
0.6 MB
:(原始數據)
根據這個執行緒,比特幣交易的平均規模為
512 B
. 為了簡單起見,我不考慮80 B
塊頭。
1200
鑑於此,今天可以在一個區塊中適應交易。考慮到每 10 分鐘會挖出一個新區塊,網路的目前容量為2 tps
:1200 transactions/block / 10 min/block / 60 sec/min = 2 transactions/s
這似乎是一個非常低的吞吐量,特別是與 Paypal 的平均速率
~115tps
和 Visa 的平均速率相比~2000 tps
。現在想像一下,我想建構一個可以處理與 Visa 網路一樣多的流量的側鏈。我想保留比特幣區塊鏈的大部分參數(10 分鐘/塊,~512 B/交易),但能夠處理
2000 tps
.在這種情況下,我的塊大小如下:
2000 transaction/s * 512 B/transaction * 60 s/min * 10 min/block = 586 MB/block
上面的估計是正確的,還是我遺漏了什麼?
如果它是正確的,從
1 MB
塊大小切換到的影響是什麼586 MB
?
這就是目前區塊大小辯論的主題,並且已經持續了一年多。我會盡量不在這裡重複所有這些。
你的數字似乎大致正確。您的側鏈中是否有 600MB 塊取決於您的側鏈如何工作。如果你擺脫了工作量證明的安全性,並且在某種程度上相互信任的各方之間的所有數據中心級硬體和頻寬,那麼就沒有問題。在這種情況下,降低阻塞時間也可能是有意義的,例如每 1 分鐘 60MB。事實上,塊可能不再有意義了,為什麼不只是一個帶有一些安全校驗和的單個事務的僅附加數據庫呢?
側鏈可以交易一些屬性來獲得其他屬性,這很有意義。在上面的例子中,你用去中心化的去信任換取高效率但值得信任(使用者需要信任你和其他一些相關方,以及政府,以及……)。
比特幣本身俱有去中心化的主要屬性。對於礦工和完整節點、peer2peer 和所有這些好東西來說,不可審查、低准入門檻都與該主要屬性密切相關和交織在一起。每塊 600MB 將完全摧毀這一切。
這並不是說比特幣沒有很多更酷的技巧。SegWit 目前正在推出,它將使某些節點的塊更小並更好地修剪,同時使有效塊大小約為 1.75MB。以及為更酷的效率改進開闢道路,例如使多重簽名交易顯著更小。
雙向支付渠道和使用這些渠道建構的網路將邁出更大的一步。閃電網路是這個領域最知名的名字。這個想法是在數週或數月內記憶體成百上千(或更多訂單)的小交易,而不會將單個交易放在一個塊中。只有在打開這樣一個通道的一開始和關閉通道的最後,一個交易才會真正結束在一個塊中。在 peer2peer 網路中組織這些渠道允許任何人通過多個躍點發送和轉發資金,從而允許每個人向其他任何人付款,而無需信任單個節點,甚至擁有真正的即時和無需信任的支付(無需等待區塊確認)。
縮放很少只是簡單地轉動一個刻度盤,只是讓現有的東西變大。聰明的解決方案會產生更大的影響,同時提供更好的權衡。
請原諒我沒有回答您列出切換到大塊大小的所有影響的確切問題。它們數量眾多,每一個都可能導致無休止的自行車脫落和揮手討論。最重要的是,一旦一個區塊被開采出來,它需要盡快在世界範圍內傳播,否則另一個礦工可能會找到另一個區塊,其中一個區塊將被“孤立”(浪費)。更多孤塊導致更集中的挖礦,因為更大的礦工有更大的機會贏得這樣的孤兒競賽。因此,在 10 分鐘間隔的情況下,“盡快”大約是秒。現在這並不意味著整個 600MB 需要在幾秒鐘內轉移到世界各地的所有節點,但這仍然是一個相當大的挑戰。
目前 2MB 被認為是 SegWit 幾乎涵蓋的最大安全塊大小。在進一步改進和提高效率之後,可能在一兩年內再翻一番。
上面的估計是正確的,還是我遺漏了什麼?
您的估計似乎(或多或少)很好。
如果正確,從 1 MiB 塊大小切換到 586 MiB 會有什麼影響?
我看到的兩個主要是:
- 大塊使完整節點的操作更加困難/昂貴(即需要更好的規格和更好的上傳/下載速度);因此不利於去中心化,因為沒有多少人能夠執行一個完整的節點
- 區塊在網路中傳播的時間會更長,因此會增加孤塊和雙花的機會。
有關更詳細的列表,請參見此處。
請注意,增加 4、8 或 32MB 的塊大小會引起這些擔憂/缺點……增加 586MB 將太過分了。如果你保持與比特幣相似的參數,你會在側鏈中遇到同樣的問題。