Contract-Development
如何從多個賬戶發送到合約中的一個賬戶
例如,我有 3 個有餘額的帳戶:
1 個賬戶 - 5 個乙太幣
2 個賬戶 - 15 個乙太幣
3 個賬戶 - 7 個乙太幣
我想發送 20 個乙太幣,所以它將用於 1 和 2 帳戶。我明白,如何通過簡單的交易來進行,但這需要為每筆交易支付費用。對於每筆交易,在發送之前,我需要解鎖帳戶。合約無法解鎖賬戶,所以我不明白乙太幣將如何從該賬戶中提取以及它如何獲得這樣做的權限。請幫忙。
簡短:您不能在一次交易中從多個帳戶發送。
Long:每個帳戶都由其關聯的私鑰控制。這意味著離開該帳戶的所有乙太幣都需要由該密鑰簽名,然後將簽名的交易廣播到整個網路。因此,你不能只有一筆交易從三個私鑰控制的賬戶發送乙太幣。你可以做的是擁有一個多重簽名的智能合約。該合約將持有所有乙太幣,您可以,例如讓三個賬戶中的任何一個賬戶控制它。如果您失去了一個帳戶的密鑰,這使您仍然可以發送資金。請注意,同時這意味著如果攻擊者獲得這三個私鑰中的任何一個的訪問權限,所有資金都將面臨風險。因此,您最好設置一個 2-of-3 多重簽名,並且需要所有 3 個私鑰中的 2 個來簽署交易。在這裡閱讀更多關於乙太坊的多重簽名智能合約。