插入區塊鏈的例子是什麼?
我正在閱讀論文The Bitcoin Backbone Protocol: Analysis and Applications。在第 21 頁,定義 8 內容如下:
當給定具有兩個連續塊B和B的鏈C時,插入發生在B’之後創建的塊B* 使得B、B*、***B’*形成有效鏈的三個連續塊。如果同一塊存在於兩個不同的位置,則會發生副本。當一個塊擴展一個在後一輪計算的塊時,就會發生預測
round 這個詞似乎表明網路被認為是同步的,並且時間被劃分為輪次。我的理解是插入的機率可以忽略不計,但如果它確實發生了會是什麼樣子?我可以使用一個範例和更多解釋來說明插入是如何發生的以及在什麼條件下發生的。
當給定具有兩個連續塊B和B的鏈C時,插入發生在B’之後創建的塊B* 使得B、B*、***B’***形成有效鏈的三個連續塊。
- 要在比特幣區塊鏈中進行插入,塊B需要是B*的有效子代:
- 對應高度的有效塊
- 承諾B作為其
prevBlock
- B還需要是**B’***的有效前身:
prevBlock
塊B’需要匹配B*的雜湊
- 最後,塊***B’***需要是一個有效塊,其高度比之前找到的高度高一倍。
這些要求不僅不可能,而且實際上不可能實現。條件 1. 代價高昂,因為它需要花費足夠的工作來滿足有效區塊的工作量證明要求。條件 2. 需要找到一個雜湊到精確值的塊。這意味著打破SHA-256 的第二個原像電阻,這被認為是不可行的。好消息是,如果我們能打破第二個原像阻力,我們也可以更容易地找到有效塊;難以找到部分原像的假設是比特幣工作量證明算法的核心假設。最後,滿足條件 3. 是不可能的:每個塊都按照 BIP34 的要求在其coinbase交易中送出特定的塊高度. 因此,一個塊只能在鏈中的一個高度有效,並且在其前面插入另一個塊會使該塊無效。
看論文,在我看來,定義 8 主要用於準備定義 9(強調添加。):
定義 9(典型執行)。對於 ϵ ∈ (0, 1) 和整數 λ ≥ 2/f,執行是 (ϵ, λ)-典型(或只是典型),如果對於至少 λ 個連續輪次的任何集合 S,以下成立。
(a) (1 − ϵ)𝔼[X(S)] < X(S) < (1 + ϵ)𝔼[X(S)] 和 (1 − ϵ)𝔼[Y (S)] < Y (S )。
(b) Z(S) < 𝔼[Z(S)] + ϵ𝔼[X(S)]。
(c) 沒有插入,沒有複製,也沒有發生預測。
即作者試圖將三個定義的事件描述為非典型執行。