這是白話區塊鏈的第1439期原創
作者| 宇星出品|白話區塊鏈(ID:hellobtc)
在現實生活當中,我們經常在各種業內報導中看見ERC 的身影,那麼什麼是ERC 呢?今天就來和大家聊一聊。
智能合約
在講ERC 之前,先和大家科普一下智能合約,智能合約的概念最早是在1994 年由尼克.薩博提出。他定義道:一個智能合約是一個計算機化的交易協議,它執行一個合約的條款。
智能合約來源生活中的自動售貨機,當客戶往自動售貨機投錢之後,自動售貨機就開始工作。而智能合約是怎麼樣的呢?
以以太坊中的智能合約為例,每一個以太坊中的智能合約都有自己的賬戶,就相當於自動售貨機有自己的ID 一樣,當外部賬戶用一定的小費調用了自己選中的智能合約之後,就相當於啟動了自動控制的開關,智能合約就會按照自己的代碼定義自動地執行下去。
但是和自動售貨機不一樣的是,智能合約一旦創建完之後,它的代碼就不能被更改,不能像自動售貨機一樣還能由工作人員打開門再放貨品進去。
智能合約不可更改的優勢讓它很自然地適用於合約條款的場景,它可以有效地減少惡意篡改,減少人工干預。比如可以在以太坊上寫一個類似銀行的智能合約,然後人們就可以通過這個合約來存錢、取錢。這樣就不會出現因為銀行工作人員因失誤或惡意更改導致餘額不對等情況的出現。
事實上,這個“銀行”智能合約裡存的錢不一定是大餅(ETH),因為以太坊智能合約它還允許合約開發人員定義自己的貨幣,就是我們所知道的各種基於以太坊的Token ,比如USDT,NBN 等。
這麼一講,彷彿智能合約給各行各業的人們提供了一個新的思路,大家都在想著是不是可以基於智能合約開發一些新的項目,發行自己的代幣呢?智能合約當然可以,但是必須按照規定程序進行。那麼為了有效地防止平台上出現各種雜七雜八的代幣、數據等,它有著自己的一套標準。
ERC標準
ERC 全稱是“Ethereum Request for Comment”,表示以太坊版的意見徵求稿, ERC 中包含技術和組織等注意事項及標準。這套標准其實不光由以太坊官方提出,還由一些以太坊愛好者提出。以前面談到的銀行智能合約為例,我們不難想到它會具備以下幾個功能和須知:
需要有記錄每一個客戶的餘額;需要具備轉錢的功能,即包含存錢與取錢;要保證每個客戶能夠查詢自己的餘額。
以上這些功能和須知仔細一思考,好像是每個“銀行”合約都需要具備的,也是Token 合約所需要具備的,因此為了更好地兼容錢包,兼容交易所,以太坊發行了像ERC20,ERC721這樣的代幣協議標準。
比如阿貓幣、阿狗幣都是基於ERC20 標準發行的,那麼它們都會提供給用戶一些選擇按鈕(即接口函數一致),這些選擇按鈕供用戶查詢餘額,轉移代幣等,但是阿貓幣、阿狗幣底層實現查詢餘額和轉移代幣的等功能的方式可以不同。
除了Token 合約需要規範一樣,其他的一些包括但不限於數據包的設計、一些接口的定義規則等也有一些ERC 標準。這些標準協議一些來自於以太坊創團隊,一些來自於以太坊的愛好者、貢獻者的提議。總的來說,都是為了共同創建一個更好的以太坊環境。
所以,感興趣的小伙伴也可以根據以太坊智能合約中的一些不足或是值得創新的地方提出自己的一些提議,作出自己的貢獻。
最後,關於智能合約以及ERC 標準,大家有沒有什麼想法嗎?歡迎在評論中給出!