Transactions

如果我有一個與 WithdrawDAO 合約進行交易的賬戶,我如何拆分我的 ETH 和 ETC?

  • August 9, 2016

比方說:

  • 我擁有賬戶 A,它有 100 ETH pre-DAO 餘額。
  • 分叉前我從 A -> DAO 發送了 50 ETH。
  • 分叉後我在 A 中有 50 ETHF 和 50 ETHC。
  • 分叉後我與 WithdrawDAO 合約進行了交易,所以現在賬戶 A 有 100 ETHF 和 50 ETHC(當然減去 gas)。

如何拆分賬戶 A 中的 ETHF 和 ETHC?

我的想法是,與其使用拆分合約,我可以簡單地進行交易,將 100 ETHF 存入新賬戶 B。如果我的理解是正確的,那麼如果交易在經典鏈上重播,它會由於不足而失敗資金,因此不會受到重放攻擊。

如果是這樣,那麼此時:

  • 賬戶 A 有 0 ETHF,50 ETHC。
  • 賬戶 B 有 100 ETHF,0 ETHC。

我的乙太會被乾淨地分開。它是否正確?我的假設是,如果餘額不足,乙太坊交易會完全失敗,而不是部分完成交易。只是想確保我沒有遺漏任何東西。

你是對的。實際上,您可以將其用作拆分的方法

這種方法有效,但它不是最終的:根據您將來對地址的使用,您將來可能(實際上很可能)遇到麻煩。

問題在於,如果將更多資金存入原始地址,則由於餘額不足而導致失敗的交易將來可能仍然有效*。*如果(何時?)您(或任何人)將 50 ETHC 存入地址 A(累積起來,這可能是幾筆交易),**則將 100 ETHF 轉移到 B 的交易可能而且很可能會在 ETHC 鏈上重播,**並且你最終會在你不想要的地址 B 上得到 ETHC。

如果您在 A 的餘額達到 100 之前從A發送一些 ETHC (由於使用潛在可重放 tx 的 nonce 的支出交易),則不會發生上述確切的情況;但類似的情況仍可能在以後的任何時候發生。

不是一些理論上的、不太可能的情況。我已經看到交易在 ETHC 鏈上重放,在與上述非常相似的情況下,在ETHF 鏈上被確認12 天后。

你至少應該將所有 ETHC 從 A 轉移到新地址 C,然後永遠不要再使用 A(在任何鏈上),或 ETHC 鏈上的 B,或 ETHF 鏈上的 C。

(不幸的是,這仍然不是最終解決方案,因為其他人可能會在未經您同意的情況下將資金發送到您的地址,但這不太可能,主要是他們的問題。我不認為是一種完整的、最終/決定性的 ETHC/ETHF 拆分方法確實存在。)

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