Accounts

將乙太幣接收到多個地址的最佳實踐

  • September 25, 2018

假設我是一個有很多使用者的交易所。當我要求使用者存入 ETH 時,我會給他一個唯一的地址,這樣我就可以將 ETH 歸於他。

使用比特幣,這很容易。比特幣錢包軟體可以處理這個問題,我可以在多個地址上擁有 BTC,並將其視為一個帳戶。

我知道乙太坊是不同的。

我找到了 2 個選項來實現這一點:

  1. 為每個使用者部署一次轉發器智能合約,將地址提供給使用者。當智能合約收到 ETH 時,它會將其轉發到我的主 ETH 地址。

優點

  • 使用者支付轉發 ETH 的 gas 費用

  • 只需跟踪一個帳戶(1 個私鑰)。缺點

  • 我必須支付多次部署貨運契約的 gas 費用

  1. 為每個使用者創建一個帳戶。不要將私鑰提供給使用者。定期檢查我控制的所有“使用者賬戶”並將 ETH 發送到“主賬戶”

優點:

  • 我不需要為部署任何智能合約支付 gas缺點:

  • 我必須跟踪多個帳戶

這兩種方法中的哪一種會花費我更多的汽油?直覺上我認為 2nd 會花費更少的 gas,因為部署智能合約比發送 ETH 更昂貴。但第一種方法似乎更受交易所歡迎。這是為什麼?

我應該注意,我不希望使用者多次存入 ETH。(或者更確切地說,對於每筆存款,我都會給他們一個新地址,以便更容易跟踪他們的存款)

假設我是一個有很多使用者的交易所。當我要求使用者存入 ETH 時,我會給他一個唯一的地址,這樣我就可以將 ETH 歸於他。

使用比特幣,這很容易。比特幣錢包軟體可以處理這個問題,我可以在多個地址上擁有 BTC,並將其視為一個帳戶。

我知道乙太坊是不同的。

不確定我是否了解您要達到的目標。如果你想讓人們將乙太幣存入你的合約,你不能簡單地維護一個地址到餘額的映射嗎?您將使用 msg.sender 獲得發件人的地址

您將創建一個契約來創建契約。您的主合約會為您的使用者創建新的“子錢包”。

然後,您可以讓孩子們聽在製作新錢包時創建的給定所有者。這樣他們就有了一個你可以控制的特定地址。如果您只想將錢立即發送到您自己的錢包,您可以在新合約中設置一個功能,即將所有 ETH 發送到某個給定地址的備份功能。

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