當交易量不斷增加時,如何固定區塊時間和區塊大小?
據我了解,網路拒絕超過 1MB 的塊,並在創建每個塊後設置塊雜湊難度,以使塊時間接近 10 分鐘。
但是如果人們不斷地加入網路,並且交易發送到網路的速率不斷上升,那麼最終每 10 分鐘就會有超過 1MB 的交易被添加到網路中。
當交易率接近並超過每 10 分鐘 1MB 時會發生什麼?這是一個有效的問題嗎?
當收到交易時,節點會將這些交易保存在記憶體中(the
mempool
),同時挖礦軟體會嘗試探勘新區塊。礦工會嘗試將盡可能多的交易放入一個區塊中,以便在他們成功挖出一個區塊時賺取更多費用。如果有更多的交易超出了區塊的容量,礦工必須過濾它們以包含足夠的交易,同時保持在區塊大小限制之下。通常使用的過濾方法是按支付的費用對交易進行排序,並包括費用最高的交易,因為如果他們成功地探勘了區塊,這將導致最大的支出。
留在記憶體池中的任何交易都將成為添加到鏈中下一個塊的候選者,但將被置於相同的過濾器下,同時額外的交易也來自網路。這意味著僅支付低費用的交易可能會在記憶體池中存在很長時間,因為它們的優先級低於支付更多費用的交易。
這為區塊空間創造了一個費用市場。要求及時處理交易的人——接下來的幾個區塊,將支付更高的交易費用,這將把他們提升到隊列的頂部,而那些不急於處理他們的交易的人將支付降低費用並願意等到記憶體池的大小減少。
隨著交易量因需求增加而增加,人們要麼支付更多費用,要麼利用新技術降低交易規模要求,以減少費用。實現這一點的一些技術是批量交易,使用支付渠道(如閃電網路),使用側鏈,以及使用比特幣本身的未來改進,這將允許簽名聚合,以及刪除未評估的比特幣腳本分支。
據我了解,網路拒絕超過 1MB 的塊,並在創建每個塊後設置塊雜湊難度,以使塊時間接近 10 分鐘。
通過考慮在此期間創建的塊,每 2016 個塊(大約 2 週)調整一次難度。塊不一定每 10 分鐘一次,因為它是一個隨機過程,可以找到低於目標值的有效雜湊值,範圍可以從幾秒到一個小時或更長時間。由於定期的難度調整,它在較長時間內平均約為 10 分鐘。