Plasma

Minimal Viable Plasma 如何處理超過 2 個交易的輸入?

  • November 21, 2021

Vitalik Buterin在 2018 年提出了 Minimal Viable Plasma。在描述功能時,他提到 UTXO 等離子交易的格式是

[blknum1, txindex1, oindex1, sig1, # Input 1
blknum2, txindex2, oindex2, sig2, # Input 2
newowner1, denom1,                # Output 1
newowner2, denom2,                # Output 2
fee]

這種結構給我帶來了誤解,我認為最好用一個例子來說明:

假設 Alice 擁有 1 ETH 並想將 1 ETH 發送給擁有 4 ETH 的 Bob。我們假設交易不需要任何費用。她在 Block 3 的第一筆(0 索引)交易中從 Charlie 那裡收到了 1 個 ETH,她的輸出排名第二。因此,她用 (3, 0, 1,

$$ signature of the previous 3 values with Alice’s key $$)。Alice 的第二個輸入是空的,因為她不需要它來完成與 Bob 的交易。因此,Alice 發送的 Plasma 交易是:

[3, 0, 1, (Alice's signature), # Input 1
0, 0, 0, 0, # Input 2
[Alice's Address], 0,                # Output 1
[Bob's address], 5,                # Output 2
0]

但是,如果 Alice 想向 Bob 發送 1 ETH,但通過 3 次交易(例如來自 Sender 1 的 0.2 ETH、來自 Sender 2 的 0.3 ETH 和來自 Sender 3 的 0.5 ETH 的交易)會發生什麼?該欄位僅允許 2 個輸入,但由 Alice 的 UTXO 組成的大小 2 的組合不允許這樣做,這是如何解決的?

Minimal Viable Plasma 如何處理超過 2 個交易的輸入?

根據我的理解,沒有。這就是為什麼它只是最小可行規範。

“每筆交易有 2 個輸入和 2 個輸出,輸出的面額之和加上費用必須等於輸入的面額之和。”

但是,如果 Alice 想向 Bob 發送 1 ETH,但通過 3 次交易(例如來自 Sender 1 的 0.2 ETH、來自 Sender 2 的 0.3 ETH 和來自 Sender 3 的 0.5 ETH 的交易)會發生什麼?該欄位僅允許 2 個輸入,但由 Alice 的 UTXO 組成的大小 2 的組合不允許這樣做,這是如何解決的?

在這種情況下,ALICE 有 3 個 UTXO,因此她可以發送第一筆交易,將兩個輸入(她的 3 個 UTXO 中的 2 個)組合成一個發送到她地址的單個輸出。然後,她將只剩下 2 個 UTXO,她可以在第二筆交易中以 1 的價格組合到 BOB(假設費用為 0)。

與 >= 2 個輸出類似,您可以拆分輸入,這在您需要支付金額 X 但只有一個 UTXO 的值大於 X 時特別有用,然後您可以將其拆分為 2 個輸出,第一個是 value X 到您發送的地址,第二個是直接返回您地址的更改。

引用自:https://ethereum.stackexchange.com/questions/113856