Solidity

如何限制 ICO 投資者贖回他們的 ERC20 代幣,而不限制他們之間進行代幣交易?

  • July 25, 2020

我們希望創建一個 ICO,投資者可以隨時購買 ERC20 代幣,但必須從購買之日起至少等待 3 個月才能在我們的平台上贖回/兌現它們。

但我們不打算限制投資者在我們的平台之外相互交易/轉讓/交換代幣。

範例 1) A 在 1 月 14 日購買了 400 個 ERC20 代幣。他在 3 月 15 日向 B(我們平台外)出售了 200 個代幣。C 於 3 月 15 日從平台購買了 200 個代幣。

現在,A、B 和 C 將於 4 月 15 日在我們的平台上為 FIAT 贖回/兌現代幣(從首次購買代幣起 3 個月後)

現在,A 和 B 都應該能夠兌現/贖回代幣,因為兩者都是在最初購買這些代幣 3 個月後贖回的。但C不能贖回,因為從購買之日起3個月內還沒有結束。

我們怎樣才能做到這一點?我們可以將時間戳或任何參數與令牌或其他東西綁定嗎?最好的解決方案是什麼?

ERC20 是可替代的代幣。

從使用者的角度來看,令牌之間沒有區別,您不能為令牌本身附加額外的條件。所有 200 個令牌都是相同的,無論它們來自 A、B 還是 C。

由於您無法為代幣附加更多條件,因此一種常見的方法是為所有者附加條件。例如所有者 A 可以在一個月後贖回 100 個代幣。如果 A 將代幣轉移給 B,則此屬性可以復製到 B。您必須確定 A 有 100 個在 5 月 1 日贖回的代幣和另外 100 個在 5 月 15 日贖回的情況。

我想這個要求更多的是你的平台而不是一般。所以你可以考慮脫鏈處理。所以智能合約對它沒有任何限制。

所以在你的數據庫中,

  • A 可以在 4 月 14 日之後的任何時間兌換 400 個代幣
  • C 可以在 4 月 15 日之後的任何時間兌換 200 個代幣

由於 B 沒有直接從您的平台購買代幣。你不會有任何進入它的權限。如果您想根據收到硬幣的日期限制 B。您可以觀看區塊鏈事件以向您的數據庫提供 A 向 B 轉移 200 個硬幣,然後將數據庫條目更新為:

  • A 可以在 4 月 14 日之後的任何時間兌換 200 個代幣
  • C 可以在 4 月 15 日之後的任何時間兌換 200 個代幣
  • B 可以在 4 月 15 日之後的任何時間兌換 200 個代幣

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