什麼是 智能合約? 一個基本定義是: 智能合約是一個防篡改程序,運行在 區塊鍊網絡 當滿足某些預定義的條件時。
這意味著什麼?簡單地說,智能合約就是程序。代碼是透明的,通常是不可變的或不可更改的。智能合約在區塊鍊網絡上託管和執行。知道什麼是智能合約很好,但你如何閱讀智能合約以了解它的作用?
如何閱讀智能合約
在本指南中,我們將查看一個流行的NFT 項目的合約, 塗鴉,以及如何在Etherscan 上閱讀這些智能合約。通過查看OpenSea 上的項目,我們可以調查其中一個NFT 以找到為NFT 項目提供動力的合同。有幾個步驟可以獲取並閱讀合同。
尋找項目合同
在OpenSea 上的NFT 項目中,您可以查看單個項目。然後,在“詳細信息”下,您會找到合約地址的鏈接。此鏈接將帶您到 以太掃描,這是一個區塊鏈瀏覽器。本質上,它允許您查看有關以太坊區塊鏈的信息。
檢查已驗證的合同
一旦你知道了合約的地址,你就可以在Etherscan 上查看它。 Doodles 合約的合約地址是 0x8a90CAb2b38dba80c64b7734e58Ee1dB38B8992e
. 如果合約的代碼未經驗證,那麼您在Etherscan 上無能為力。雖然合約的字節碼在那裡可用並且可以對其進行反編譯,但這超出了本教程的範圍。如果您沒有看到“合同”旁邊的綠色複選標記,則該代碼尚未經過驗證。
閱讀經過驗證的合同
如果合同得到驗證,您應該能夠以更易於閱讀的格式查看代碼。如果您點擊“合同” 選項卡,您將被帶到合同代碼。
根據合約作者使用的驗證方法,您可能會看到一個大文件,它是智能合約使用的所有合約的串聯,或者與Doodles 一樣,是單獨的文件。這裡可以看到多個合約,因為單個智能合約通常會導入其他合約。這允許合約重用經過驗證的合約,例如OpenZeppelin ERC-721 和我們在Doodles 項目中看到的Ownable 合約。
此時,您可以通讀為Doodles NFT 項目提供支持的所有代碼,以確保其按預期運行。
與合約互動
如果您想通過Etherscan 與合約進行交互,如果合約得到驗證,這也是可能的。雖然主要超出了本文的範圍,但“讀取合約”和“寫入合約”選項卡提供了對智能合約功能的訪問。任何人都可以訪問讀取功能並且可以免費執行它們。寫入函數會改變區塊鏈,這需要gas,並且可能帶有其他要求,例如所有權。
為什麼閱讀智能合約很重要
智能合約可以公開閱讀這一事實是使用它們的優勢之一。普通用戶可以看到為合約提供動力的代碼,這意味著他們可以確保合約按照它所說的去做。這減少了對開發人員的信任。
找到合約代碼並閱讀它只是一個開始。為了更好地理解合同中發生的事情,您需要對Solidity 有基本的了解。