如果你想要買幣、買NFT、了解比特幣區塊鏈如何運作? 可以回顧前面的文章。從今天第18天開始就是硬核實戰訓練營,讓我們一起來研究以太坊的智能合約吧!以下講解需要有些微程式背景的人才看的懂,請見諒。
前面有大致講過什麼是智能合約(Smart Contract)
了,如果你還沒聽過智能合約這個名詞請先回顧[Day 9] 以太坊的真實力! 各種去中心化應用 。
用一句話來完整描述智能合約,那就是「一串在以太坊EVM上運行的程式碼」,這些智能合約其實是由很多個Functions/Methods組成,就跟我們寫程式用的涵式一樣,它是可呼叫可互動的。所以講白了智能合約就是一串程式碼罷了,它既不智能也不是合約,所以也有人直稱它為EVM CODE。不過要注意的是,當我們在上傳智能合約到鏈上時必須以Byte Code形式上傳,也就是一般人無法看懂但只有機器看得懂的01010101...
首先因為智能合約上鏈後的去中心化,導致了其Immutable(不可變)
的特性,一旦被上傳就無法被修改或刪除(除非設計成Proxy Contract)。再者,若是作者有公開其原始碼,則可以輕易的看懂其運作原理,不需經過第三方來驗證/信任來執行(Truthless)。結合以上特性,最後就會衍生出前面提到的Dapp了,包括像是各種DeFi、DAO以及代幣、NFT等應用。
EVM為Ethereum Virtual Machine
的縮寫,中譯是以太虛擬機,後綴也就是大家熟知的VM。為了讓所有程式在不同的礦工電腦上讀取/運算出來結果是一樣的,所以必須統一一個使用的環境,而這就是以太虛擬機誕生的原因。EVM目前也被廣泛的應用,包括了Polygon、BNB Chain等其他鏈的運作平台也都統一使用EVM運行。
撰寫智能合約的語言主要有:Solidity、Vyper
而Solidity市占約9成以上,詳細差別就不多作介紹,目前使用率仍是一片倒,所以接下來將以Solidity為中心開發及講解。
而IDE(開發環境)
大家通常會使用Remix以及HardHat比較多,前者適合簡單小型的專案,可以快速的編譯後並直接上鏈測試,且其具備著不須下載的特性,只要直接進入網站就可以開發,連上錢包更可發佈合約,極為方便;後者通常為開發大型專案用,具有較多的功能及完整性,使用起來也就相對難一些喔~
今天大致上先帶大家認識一下智能合約的撰寫語言、IDE以及運作環境,之後就都會使用Solidity
語言+Remix
網頁IDE來教程了,明天讓我們來看看猴子BAYC的合約吧?
<上一篇> [Day 17] FOMO到底是什麼意思? 幣圈常見用語大解析!
<下一篇> [Day 19] 從BAYC猴子的NFT 更認識智能合約(一)Etherscan
參考資料: