
以太坊由 Vitalik Buterin 於 2014 年創立,其定位為推出去中心化應用程式(DApp)的開源平台。Buterin 創建這條全新區塊鏈的動機很大程度源於比特幣協議缺乏靈活性。
自從問世以來,以太坊區塊鏈吸引了許多開發人員、企業和企業家,催生出用戶推出智能合約和分布式應用程式的新興產業。在本文中,我們將深入探討 ERC-20 標準,這是一個創建代幣的重要框架。雖然 ERC-20 僅適用於以太坊網絡,但它也成為其他區塊鏈標準(如幣安鏈的 BEP-2)的靈感來源。
什麼是 ERC-20 標準?
在以太坊中,ERC 的全稱為 Ethereum Request for Comments,即以太坊意見請求文件。這些技術文檔概述了以太坊的程式標準。ERC 不應與以太坊改進提案(EIP)混淆,後者與比特幣的 BIP 類似,旨在提出改進協議本身的建議。ERC 的目標是為應用程式和智能合約之間建立一個方便交互的協議。
ERC-20 由 Vitalik Buterin 和 Fabian Vogelsteller 於 2015 年開發撰寫,為基於以太坊的代幣提出了一個相對簡單的格式。只要遵循該框架,開發者便不需要從頭開始開發,可以在現行標準上進行構建。
創建新的 ERC-20 代幣後,這些代幣可以自動與支持 ERC-20 標準的服務和軟體(如軟體錢包、硬體錢包和交易平台等)進行互操作。
值得一提的是,ERC-20 標準後來發展為 EIP-20。雖然距離最初提出的提案已經過去數年,但「ERC-20」這個名稱依然廣泛使用。
以太坊代幣簡介
與 ETH(以太坊的原生加密貨幣)不同,ERC-20 代幣並不存入帳戶,而是存在於合約內部,如同獨立的資料庫。它指定代幣的規則(如名稱、符號、可分割性)並保留一個對應以太坊地址用戶餘額的映射表。
為了轉移代幣,用戶必須將交易發送至智能合約,並請求合約將部分餘額分配到其他地方。例如,若 Alice 想要向 Bob 發送 5,000 枚幣安學院代幣(BinanceAcademyTokens),她會在對應的智能合約中呼叫函數來執行指令。

她的指令會包含一筆看似常規的以太坊交易,該交易向代幣合約支付了 0 枚 ETH。這一呼叫指令會包含在交易的其他字段中,指定 Alice 的意圖——在這個例子中,她希望將代幣轉給 Bob。
即便不發送以太幣,Alice 也必須支付指定的交易費用,才能將交易加入區塊。如果沒有 ETH,則必須在轉移代幣前先存入一些 ETH。
以下是 Etherscan 中的實例:某人呼叫了一份 BUSD 合約。您會看到代幣已經轉移,並且支付了手續費,儘管「數值」欄顯示已發送 0 枚 ETH。
接下來,我們將深入探討典型 ERC-20 合約的結構。
ERC-20 代幣是如何產生的?

根據 ERC-20 標準,您的合約必須設置六種必需的函數:totalSupply
、balanceOf
、transfer
、transferFrom
、approve
以及 allowance
。此外,還可以指定一些可選函數,如 name
、symbol
和 decimal
。根據名稱大致可以了解這些函數的功能,但我們將在下文中逐一解析。
以下是用以太坊專用語言 Solidity 寫成的這些函數。
totalSupply
function totalSupply() public view returns (uint256)
用戶呼叫這個函數後,將返回合約中的代幣總供應量。
balanceOf
function balanceOf(address _owner) public view returns (uint256 balance)
與 totalSupply
不同,balanceOf
需要用戶提供地址作為參數,並返回該地址的代幣餘額。請記住,以太坊網絡上的帳戶是公開透明的,只要知道地址,就可以查詢任何用戶的餘額。
transfer
function transfer(address _to, uint256 _value) public returns (bool success)
transfer
函數用於支持用戶之間轉移代幣,您需要提供接收地址和轉移數量。
呼叫該函數後,將觸發一個「轉移」事件,其基本功能是通知區塊鏈此操作的存在。
transferFrom
function transferFrom(address _from, address _to, uint256 _value) public returns (bool success)
transferFrom
是 transfer
函數的便捷替代方案,有效提升去中心化應用程式的可編程性。與 transfer
函數類似,它用於轉移代幣,但這些代幣不一定屬於呼叫合約的用戶。
換言之,您可以授權他人或另一份合約代替您轉移資金。例如,您可以設定訂閱服務,無需手動支付每次費用,而是讓程式自動處理付款。
approve
function approve(address _spender, uint256 _value) public returns (bool success)
從編程角度來看,approve
是一個非常實用的函數,用來限制智能合約可以從您的餘額中提取的代幣數量。沒有它,合約可能會遭到攻擊,導致所有資金被盜。
例如,如果您不想每週手動支付訂閱費用,可以授權 DApp 自動扣除您指定的限額,以防止合約提取所有資金。
allowance
function allowance(address _owner, address _spender) public view returns (uint256 remaining)
allowance
函數與 approve
函數結合使用。它允許您檢查已授權的合約尚能提取的代幣餘額。
其他可選函數
前文討論的均為必需函數,另外,還有一些可選函數如 name
、symbol
和 decimal
,它們讓 ERC-20 合約更加完整。這些函數分別用來指定代幣的名稱、符號(如 ETH、BTC、BNB)以及設定代幣的小數位數。
ERC-20具備哪些功能?
綜合前面提到的所有函數,我們可以構建一個完整的ERC-20合約,允許我們查詢總供應量、查看特定地址的代幣餘額、進行資金轉移以及授權其他去中心化應用程式(DApp)來管理我們的代幣。ERC-20代幣的靈活性是一大優勢。既定的協議不會限制開發人員,他們可以根據自己的需求推出額外功能,並設置特定參數以滿足不同應用的需求。

穩定幣
穩定幣是最常見的ERC-20代幣之一,它們通常與法定貨幣掛鉤。比如前面提到的BUSD合約交易就是典型的例子,許多主要的穩定幣都使用ERC-20標準來發行代幣。穩定幣的運作方式相對簡單:發行方持有與發行數量等值的法幣儲備,然後創建相應數量的代幣,這些代幣可以一對一地兌換成法幣。從技術層面來看,在以太坊上實現穩定幣非常簡單,只需部署一份代幣合約即可。
穩定幣在加密貨幣市場中扮演了重要角色,因為它們不僅提供了避險工具,也在跨境支付、去中心化金融(DeFi)等領域中發揮了關鍵作用。
證券型代幣
證券型代幣與穩定幣類似,因為它們也可以在合約層面上使用相同的技術。但兩者的區別在於證券型代幣通常代表的是某種有價證券,如股票、債券或實物資產。持有證券型代幣的用戶有時還可能擁有某企業的股份或某商品的所有權。這類代幣在符合特定法規的情況下,能夠使傳統資產數位化,並讓它們更方便在區塊鏈上進行交易。
功能型代幣
功能型代幣可能是目前最為普遍的ERC-20代幣類型。這些代幣並不具有資產支持,它們通常用於某些去中心化應用程式內部。舉例來說,這些代幣可以作為遊戲中的虛擬貨幣,或者作為某些DApp的燃料,也可能被用來作為忠誠度積分系統的一部分。功能型代幣沒有外部價值,更多是用來實現某些特定功能。
可否參與ERC-20代幣的「挖礦」?
雖然以太幣(ETH)可以透過挖礦獲得,但ERC-20代幣並不支持挖礦。相反,這些代幣通常通過「鑄造」(minting)的方式創建。當開發人員部署合約後,他們會根據特定計畫和時間表分配代幣供應量。通常,這些代幣會通過首次代幣發行(ICO)、首次交易所發行(IEO)或證券型代幣發行(STO)等方式發放給投資者。
ERC-20代幣的優缺點
優點
- 可互換性
所有的ERC-20代幣單位都是可互換的,這意味著每一枚代幣的價值和功能相同,無論持有哪一枚特定代幣,都沒有差異。這種特性非常適合那些希望發展成為貨幣的代幣,因為它能保證每個單位的價值保持一致,不會出現某些代幣的價值高於或低於其他代幣的情況。 - 靈活性
ERC-20代幣的標準高度靈活,使得開發人員可以針對不同的應用程式設計量身定制的代幣功能。這讓代幣的應用範圍極其廣泛,從遊戲內的虛擬貨幣到代表藝術品所有權的數位代幣,甚至可以用於表達忠誠度積分。 - 普及性
ERC-20代幣在加密貨幣領域的受歡迎程度極高,這使得眾多交易平台、數位錢包和智能合約已經與這些代幣完全兼容,進一步提升了其市場流動性。此外,社區的技術支持和豐富的開發文檔,讓開發者更容易上手和進行創新。
缺點
- 擴展性問題
目前的以太坊網路在面臨高峰期時,會出現交易費用高昂和確認時間延長的問題。當使用ERC-20代幣的應用越來越多,這種擴展性不佳的問題也會愈加明顯。雖然這並不是以太坊獨有的問題,但這也是所有安全性高的分布式系統必須面對的取捨問題。 - 欺詐風險
儘管ERC-20代幣本身的技術相對安全,但由於創建代幣的門檻較低,許多不法分子利用這一點來進行詐騙。大量的龐氏騙局和金字塔計畫偽裝成區塊鏈項目,投資者在參與此類代幣之前,應謹慎調查,以免陷入騙局。
ERC-20、ERC-1155、ERC-223 和 ERC-721 的區別
ERC-20 是最早且最受歡迎的以太坊代幣標準,但並非唯一的標準。隨著時間的推移,其他標準相繼出現,旨在改進 ERC-20 或實現完全不同的目標。
ERC-721 標準廣泛應用於非同質化代幣 (NFT) 中,例如著名的謎戀貓 (CryptoKitties) DApp。此標準允許用戶鑄造獨特的非同質化代幣,並為這些代幣嵌入元數據(如圖像和描述),每一個代幣都是獨一無二的。
ERC-1155 則是在 ERC-721 和 ERC-20 的基礎上進行的升級。它允許單一智能合約中同時支持同質化和非同質化代幣,這樣用戶可以在同一合約中進行更靈活的代幣管理。
其他選項,如 ERC-223 和 ERC-621,則旨在提升可用性。ERC-223 實施了保護措施,防止代幣意外轉移,而 ERC-621 則提供了對增減代幣供應量的附加功能。
總結來說,雖然 ERC-20 標準長期以來主導著加密資產領域,但這些新標準的出現顯示了以太坊智能合約的靈活性和演進。不同標準各有其特點和優勢,用戶可以根據實際需求選擇合適的標準。
本內容來自區塊鏈科普 投稿,不代表本網站觀點與立場。转载,请注明出处:https://news.kejixun.com/24153.html