ERC-20 代幣簡介

分享
Copied to clipboard!
ERC-20 代幣簡介

目錄


前言

以太坊由 Vitalik Buterin 於 2014 年創立,定位為開源平台,用於啟動去中心化應用程序(DApps)。 Buterin 創建新的區塊鏈的動機很多是因為比特幣協議缺乏靈活性。

自推出以來,以太坊區塊鏈吸引了開發人員、企業和投資者,催生越來越多的用戶啟動智能合約和分佈式應用程序。

在本文中,我們將研究 ERC-20 標準,該標準是創建代幣的重要框架。儘管該框架僅用於以太坊網絡,但它啟發了其他區塊鏈標準,例如幣安鏈的 BEP-2 


什麼是 ERC-20 標準?

在以太坊中,ERC 是以太坊請求註釋的縮寫。這些技術文檔概述了以太坊的編程標準。請勿將它們與以太坊改進提案( EIP )混淆,以太坊改進提案(EIP)就像比特幣的 BIP 一樣,是對協議本身進行改進的建議。相反,ERC 旨在建立應用程序和合同更易於交互的協議。

ERC-20 由 Vitalik Buterin 和 Fabian Vogelsteller 於 2015 年撰寫,是基於以太坊的代幣提出的另一種相對簡單的格式。在遵循大綱的前提下,開發人員不需要重新開發,可以直接在行業已有的基礎上架設使用。

創建新的 ERC-20 令牌後,它們會自動與支持 ERC-20 標準的服務和軟體(軟體錢包硬體錢包交易等等)。

應該注意的是,ERC-20 標準已經成為 EIP(特別是 EIP-20 )。但在最初的提議被廣泛使用持續幾年之後, “ERC-20”卡住了。


快速回顧以太坊代幣

與 ETH(以太坊的本機加密貨幣)不同,ERC-20 令牌不由帳戶持有,僅存在於合同內部,就像一個獨立的數據庫一樣。它指定令牌的規則(即名稱、符號、可除數),並保留一個映射用戶餘額的以太坊地址列表。

要移動令牌,用戶必須將交易發送到合同,要求合同將其部分餘額分配到其他地方。例如,如果 Alice 想向 Bob 發送 5,000 個幣安學院代幣,她會在代幣智能合約中調用一個函數執行指令。


用戶與智能合約進行交互


她的指令包含在看似常規的以太坊交易,該交易向代幣合約支付了 0 ETH。指令包含在交易的其他字段中,指定 Alice 想要做什麼 – 比如在我們的示例中,將代幣轉移給 Bob。

即使她不發送以太幣,她仍必須支付其中指定的費用,才能將其交易包含在區塊中。如果沒有 ETH,那麼就需要在轉讓前先獲取一些。

以下是在以太坊上的真實案例:有人下達 BUSD 合約指令。即使發送的 值 顯示為 0 ETH,您仍看到代幣已轉移,並且已經支付。

現在我們要加快步伐,以下我們要深入了解典型的 ERC-20 合同結構。


ERC-20 代幣的起源


正在創建 ERC-20 代幣的圖示


要符合 ERC-20,您的合同需要包括六個強制性功能:總供應量餘額發送發送證明批准回報。此外您可以指定可選功能,例如名稱符號十進制。您可能可以很清楚德從它們的名稱了解功能,如果沒有辦法也不要擔心 – 我們將其一一解析。 

以下是用以太坊的 Solidity 語言來顯示的功能。


總供應量

function totalSupply() public view returns (uint256)

當由用戶調用上述函數時,將返回合同持有代幣的總供應量


餘額

function balanceOf(address _owner) public view returns (uint256 balance)

總供應量不同,餘額使用地址作為參數。調用時返回該地址的代幣持有量餘額。請記住,以太坊網絡上的帳戶是公開的,因此只要知道地址,您就可以查詢任何用戶的餘額。


發送

function transfer(address _to, uint256 _value) public returns (bool success)

發送將代幣從一個用戶轉移到另一個。這裡您提供收件地址和轉賬金額。

調用時,發送會觸事件(在這種情況下為事件轉移),基本上就是告訴區塊鏈包括這個引用。


發送證明

function transferFrom(address _from, address _to, uint256 _value) public returns (bool success)

發送證明函數是發送的便捷替代方案,使分散應用程序中的可編程性更高。與發送類似,它曾經用於移動代幣,但是這些代幣不一定需要屬於調用合同的人。 

換句話說,您可以授權其他人合同 – 來替您轉移資金。比如訂閱服務的付費,而您不想每天/每週/每月手動發送付款時,您可以讓程序為您完成任務。

此函數觸發的事件與發送相同。


批准

function approve(address _spender, uint256 _value) public returns (bool success)

從編程性的角度來看,批准是另一個有用的功能,可以限制智能合約從餘額中提取的代幣數量。沒有它,您可能面臨合同失效(或被利用),所有資金被竊取的風險。 

再次以訂閱為例。假設您有大量的幣安學院代幣,且您想要設置DApp的每周定期付款。由於您隨時都忙於閱讀幣安學院的內容,因此您不想每週花時間手動創建交易。

您擁有大量的幣安學院代幣餘額,遠超出了支付訂閱所需的費用。為了防止 DApp 花完您所有的資產,可以使用批准設置限額。假設您的訂閱每週花費一個幣安學院代幣,如果您批准限額為二十個代幣,那麼您可以在五個月內自動支付訂閱費用。

如果 DApp 嘗試提取您的所有資金或程式錯誤,您最糟的情況下只會損失二十個代幣。這並不理想,但肯定比失去所有資產更具吸引力。

調用函數時,批准會觸發核准事件,像發送事件一樣,它會將數據寫入區塊鏈。


回報

function allowance(address _owner, address _spender) public view returns (uint256 remaining)

回報可以與批准函數結合使用。如果您已授予合同管理您的代幣,您可以用它來檢查能提取的代幣量。例如,假設您的訂閱服務已使用二十個已批准代幣中的十二個,調用回報函數應該返回八個代幣。


選則性功能

先前討論的功能是強制性的。另外,名稱符號十進制則是選擇性的,但它們可以使您的 ERC-20 合同看起來更完整。它們允許您添加可讀的名稱、設置符號(即 ETH、BTC、BNB)以及指定將劃分多少小數位數。例如,用作貨幣功能的代幣會比表示財產所有權的代幣更易被分割。


在 GitHub上查看這個案例,以了解真實合同中的這些元素。


ERC-20 的功能


ERC-2 0令牌的各種用法說明


匯總以上所有功能,我們獲得了 ERC-20 合同。我們可以查詢總供應量、查看餘額、轉移資金,並授予其他 DApps 權限來為我們管理代幣。

ERC-20 代幣的靈活性是一個很大的吸引力。已有的約定並不限制開發,因此各方都可以實現其他功能並設置特定的參數以符合其需求。


穩定幣

穩定幣(與法定貨幣連動的代幣)通常使用 ERC-20 的代幣標準。前面提及的 BUSD 合約的交易就是一個例子,大多數的穩定幣也用這種格式使用。

對於典型法令支持的穩定幣,發行人持有歐元、美元等的儲續。然後對於儲蓄中每個單位發行代幣。這意味著如果將 $ 10,000 置於金庫中,發行者可以創建 10,000 代幣,每個代幣可兌換 $ 1。

技術上,這在以太坊中很容易實現。發行者只需發起具有 10,000 個代幣的合約即可。他們把它們分發給用戶,並保證他們以後可以贖回代幣以獲取一定比例的法定貨幣。

用戶可以使用其代幣執行多種操作 – 可以購買商品和服務,也可以在 DApp 中使用。或者他們可以要求發行人立即交換這些代幣。在這種情況下,發行人燃燒返回的代幣(使其不可使用),並從其儲蓄中提取相對應的法定貨幣量。

如前所述,控制該系統的合同相對簡單。但是發布穩定幣需要在外部因素(例如物流、合規性等)上進行大量工作。


安全代幣

安全代幣類似於穩定幣,甚至在合同級別可以是相同的,因為它們以相同的方式起作用。區別在發行者的不同:安全代幣代表有價證券,例如股票、債券或實物資產。通常(儘管並非總是如此)它們會授予持有人某種企業或商品的股份。


功能性代幣

功能性代幣可能是當今發行最常見的代幣類型。與前兩種產品不同,它們沒有任何實際資產支持。如果資產支持的代幣像航空公司的股份,那麼功能性代幣就像飛行常客計劃:它們具有功能,但沒有外部價值。功能性代幣可以滿足眾多需求,例如用作遊戲中的貨幣、去中心化應用程序的燃料、忠誠度積分等等。


想要開始使用加密貨幣嗎?在幣安上購買以太幣!


你可以開採 ERC-20代幣嗎?

您可以開採以太幣(ETH),但代幣無法開採 – 我們會說他們是在創建新內容時被鑄造。簽訂合同後,開發人員將供應量根據其計劃和路線圖進行分配。

通常這是通過初始硬幣發行(ICO)、初始交易所發行(IEO)或安全代幣發行(STO)完成的。您可能會遇到這些首字母縮寫詞的變體,但概念非常相似。投資者將以太幣發送到合約地址,並作獲得新代幣作為回報。搜集的資金會用於為該項目的未來開發。用戶期望能夠(立即或以後)使用其代幣或隨著項目的發展轉售它們以獲利。

代幣的分發不一定是自動化。許多眾籌活動允許用戶使用各種不同的數位貨幣(例如 BNB、BTC、ETH 和 USDT)進行支付,然後將各種餘額分配給用戶提供的地址。


ERC-20代幣的優缺點

ERC-20代幣的優點

可替代

ERC-20 代幣是可替代的 – 每個單元可以互換。如果您擁有幣安學院代幣,無論您持有哪個特定代幣都沒關係。您可以交易給其他人,並在功能上維持相同,就像現金或黃金一樣。

如果您的代幣旨在成為某種貨幣,這就是個理想的選擇。您不會想要具有明顯特徵的單元,因為這會使它們不可替代。會導致某些代幣比別人具有更多 – 或更少 – 價值,就破壞了他們的目的。


彈性

正如我們在上一節中探討的那樣,ERC-20 令牌具有高度可定制性,可以針對多種不同應用進行定制。例如用作遊戲中的貨幣、程序的忠誠度積分、數位收藏品,甚至可以代表藝術品和財產權。


普及性

ERC-20 在加密貨幣中的普及性是將其用作藍圖極具說服力的理由。現在已大量推出代幣兼容的交易所、錢包和智能合約。此外,開發人員的支持文檔也很豐富。


ERC-20 代幣的缺點

可擴展性

與許多加密貨幣網絡一樣,以太坊也無法倖免。按照目前的形式,它無法很好地擴展 – 如果試圖在高峰期發送交易會導致高額費用和延遲。如果使用 ERC-20 代幣而網絡擁塞,其可用性會受到影響。

這不是以太坊特有的問題。而是在安全的分佈式系統中都必須進行的權衡。社區計劃在使用以太坊 2.0 時解決這些問題:將實施以太坊血漿以太坊 Casper等的升級。

區塊鏈擴展性:側鍊和支付渠道中了解擴展性問題的更多信息。


詐欺

儘管技術本身不成問題,但某些方面,發行代幣的便利性可能是一個缺點。可以輕易創建 ERC-20 代幣 – 有好有壞。

因此您應該謹慎投資。有許多金字塔和龐氏騙局偽裝成區塊鏈項目   自行研究後再進行投資,來確認投資機會是否合法。

 

ERC-20、ERC-1155、 ERC-223 和 ERC-721 – 差別在哪裡?

ERC-20 是第一個(也是迄今為止最受歡迎的)以太坊代幣標準,但這絕不是唯一的。多年來也出現了許多其他協議,若不是對 ERC-20 進行改進,便是試圖實現完全不同的目標。

有一些是不常見的不可替代代幣(NFT),在某些情況下,您實際上會受益於具有具有不同屬性的唯一代幣,例如您想標記獨一無二的藝術品、遊戲內資產等,這時這種合同類型可能更具有吸引力。

例如 ERC-721 標準被用於非常流行的加密貓 DApp。這種合同為用戶提供了程序接口讓用戶鑄造自己的不可替代代幣並編輯元數據(圖像、說明等)。 

ERC-1155 標準可以看作是對 ERC-721 和 ERC-20 的改進。它在單一合同中同時支持可替代和不可替代令牌標準。

其他選項(例如 ERC-223 或 ERC-621 )旨在提高可用性。前者執行保護措施以防止意外的代幣轉移。後者對增加和減少代幣供應提供額外功能。

更多的 NFT 信息請查看 加密貨幣收藏品和不可替代令牌(NFT)指南


結語

ERC-20 標準多年來一直主導著加密資產領域。原因如下:因為相對容易,任何人都可以部署簡單的合同來適應各種需求(功能性代幣、穩定幣等)。雖然 ERC-20 確實缺少其他標準的某些功能,後續其他類型合同是否會取代 ERC-20 還有待觀察。

Loading