Tokens

NFT 和智能合約有什麼區別?

  • May 20, 2022

我正在探索一個新領域,想了解 ERC721、ERC20 和智能合約之間的區別?ERC721 是“代表不可替代代幣所有權的標準”,但它是什麼意思?發布它們的賬戶不也擁有智能合約嗎?是什麼讓 ERC721 或 ERC20 “擁有”?

謝謝

智能合約不屬於任何東西,除非合約本身包含程式碼,讓其知道某個地址對其已定義的所有權權限。ERC721 是一種可以同時發行多個不可替代代幣的合約的實現。例如,大多數集合使用一個智能合約來代表他們所有的代幣,最流行的標準是 ERC721 和 ERC1155。合約發行的代幣有所有者,每個代幣的所有者資訊都儲存在合約中。但是,契約本身並不一定有所有者。它有一個部署者,但智能合約是去中心化的實體,並不一定會給部署它們的人任何特殊權限。

因此 ERC20 和 ERC721 是智能合約的標準,這意味著符合 ERC20 或 ERC721 的智能合約必須在其中實現一組功能。所以實現這些功能的合約是 ERCxxx 可編譯的。您可以在以下連結中找到它們必須具有的功能:ERC20ERC721

NFT 是智能合約中的代幣,該智能合約通常符合 ERC721 或 ERC1155。遵守標準非常有幫助,因為這意味著即使它們不在同一個合約中,你也可以在它們上呼叫相同的函式。

現在,使合約可擁有的通常是一個繼承的抽象合約,稱為ownable。這種繼承提供了“擁有”合約的功能和邏輯。在 ownable 的OpenZeppellin版本中,它提供了下一個函式:owner(), renounceOwnership(), transferOwnership(address newOwner)_transferOwnership(address newOwner)它們的名字完全一樣。作為合約的所有者並不一定會給你特殊的權限,但有時確實如此,這完全取決於合約的功能以及程式碼本身的實現方式。一個流行的做法是只允許所有者執行一些功能,這是使用同樣從合約onlyOwner繼承的修飾符來完成的。Ownable

現在有趣的部分是,一個 NFT 合約如何由 x 擁有,但裡面的 NFT 由 y 擁有?— NFT 的所有權表示由合約內數組中的地址給出。如果您的地址寫在數組的第一個位置,那麼您擁有該集合的第一個令牌。擁有集合中的代幣可以讓您並且只有您將其轉讓給其他人。即使是合約的所有者也不能代表你轉移代幣。對於除您之外的任何人,要能夠轉移該代幣,您必須首先使用approve合約內的任一功能批准他們。

我會附上契約的連結,閱讀它們也會有所幫助。 ERC721 ERC20

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