欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

當(dāng)前位置:主頁 > 區(qū)塊鏈 > 區(qū)塊鏈技術(shù) > 理解ERC-20 token合約

以太坊科普:理解ERC-20 token合約

2021-12-09 10:34:11 | 來源: | 作者:佚名
這篇文章主要介紹了以太坊科普:理解ERC-20 token合約的相關(guān)資料,希望這篇關(guān)于理解ERC-20 token合約的文章,能夠幫助各位朋友對以太坊有個更加深入的了解。

ETH(Ethereum)以太坊錢包基本概念介紹:http://www.dbjr.com.cn/blockchain/801260.html

這篇文章會簡單介紹各種符合ERC-20標(biāo)準(zhǔn)的token,解釋ERC-20的特征和功能,以供讀者了解什么是token合約,以及開發(fā)者應(yīng)該如何使用該標(biāo)準(zhǔn)。

ERC-20最初作為一種嘗試,旨在為以太坊(Ethereum)上的token合約提供一個特征與接口的共同標(biāo)準(zhǔn),并且,它現(xiàn)在已經(jīng)被證明是非常成功的了。ERC-20有很多好處,包括允許錢包顯示數(shù)以百計不同token的賬戶余額;創(chuàng)建一個交易工具,只需提供token合約的地址就可以將更多token列入表中。創(chuàng)建ERC-20兼容token的好處很多,以至于在今天,很少有其他token合約用其他方式創(chuàng)建。

Token合約是什么?

現(xiàn)在仍存在著大量關(guān)于“token合約到底是什么”的爭論。本質(zhì)上來說,一個token合約就是一個包含了一個對賬戶地址及其余額的映射的智能合約(Smart Contract)。賬戶余額表示一種由合約創(chuàng)建者定義的值:一個token合約也許使用余額來表示物理對象,或是表示另一種貨幣價值,還可以表示持有人的名譽。余額的單位通常被稱為token。

以太坊科普:理解ERC-20 token合約

當(dāng)token從一個賬戶被轉(zhuǎn)移到另一個賬戶的時候,token合約更新兩個賬戶的余額。比如,一筆從 0x2299…3ab7 到 0x1f59…3492 的10個token的轉(zhuǎn)賬將導(dǎo)致余額列表如下圖所示進行更新:

以太坊科普:理解ERC-20 token合約

如果該token合約允許的話,變更一種token的總供給可能有兩種辦法。token的總供給可以通過鑄造新token來增加。舉個例子,鑄造出100個token到地址 0x4ba5…ae22 將導(dǎo)致余額如下圖所示進行更新:

以太坊科普:理解ERC-20 token合約

token的總供給也可以通過“銷毀”現(xiàn)有的token來減少。比如, 0x4919…413d 銷毀了50個token,這將導(dǎo)致余額如下圖所示更新:

以太坊科普:理解ERC-20 token合約

銷毀token的另一種方式是將token發(fā)送到一個未創(chuàng)建私鑰的地址,通常來說就是0地址。這會使得這些token不可用,在這方面,它與銷毀token有同樣的效果,但并沒有減少token的總數(shù)。比如, 0x93f1…1b09 用此種方式銷毀了50個token將導(dǎo)致如下圖所示的余額:

以太坊科普:理解ERC-20 token合約

簡單的token合約在一個從地址到余額的映射中保存上述信息。當(dāng)更多復(fù)雜的情景出現(xiàn)時,比如發(fā)放股息,替代性結(jié)構(gòu)或者增補性結(jié)構(gòu)常常要變得更強悍。但是,不管那些操作上的細節(jié)的話,對外部可見的token余額總是像上面的圖示那樣的。

一個ERC-20 token合約的定義

一個ERC-20 合約是通過合約的地址以及它可用的token總供給來定義的,但它通常還提供一些非必須的東西,也是為用戶提供更多細節(jié)。它們包括該token的名字、標(biāo)志、小數(shù)位。這些中的每一個都會包括在下面的細節(jié)中。

在深入到細節(jié)之前,理解這件事情是重要的:token合約沒有一個中心化的登記處,因此無法保證特定名字和符號的唯一性。一旦你已經(jīng)創(chuàng)建了一個token合約,你應(yīng)該請求將它加入公共站點,比如:Etherscan,MyEtherWallet 以及 CoinMarketCap。當(dāng)然,確保符合網(wǎng)站上的說明可以最大化你的申請被接受的機會。

Token合約的名字乃是該token合約應(yīng)該被知道的完整名稱,比如“My Token”。名字的長度沒有限制,但完整名稱在一些錢包應(yīng)用中更容易顯示不完全,所以,最好讓名字短一點。

Token合約的標(biāo)志乃是該token合約應(yīng)該被知道的符號,比如“MYT”。廣義上,它是股票代碼的對應(yīng)物,而且,雖然沒有嚴(yán)格的長度限制,但它在長度上常常是3或4個字母。

小數(shù)位常常是混淆的來源,但經(jīng)過合理的解釋這是非常容易理解的。小數(shù)位意味著一個token的可切分性,從0個小數(shù)位(即完全不可切分)到18位小數(shù)(幾乎是連續(xù)的),如果需要,可以有更多的小數(shù)位。從技術(shù)上來說,小數(shù)位的意義在于顯示token價值在屏幕上的時候小數(shù)點后面跟著的位數(shù)。小數(shù)位存在的理由是以太坊并不處理有小數(shù)的數(shù)字,只顯示整數(shù)的數(shù)字價值??紤]下面兩個例子:

第一個例子是LicenseToken,一個為給定軟件產(chǎn)品顯示軟件許可分配的token合約;持有一個LicenseToken,使用者就可以使用該軟件。而持有小于1個的LicenseToken則沒有任何意義,所以token創(chuàng)建者將小數(shù)位設(shè)為0。一些LicenseToken的持有人賬戶余額如下。

以太坊科普:理解ERC-20 token合約

可以看到,在這里有100份許可,主要被一個賬戶所持有。當(dāng)用戶購買一份許可的時候,一個token將從持有賬戶轉(zhuǎn)賬到購買者賬戶。而許可驗證者可以查看一個特定的賬戶是否真的持有一個LicenseToken,然后做出相應(yīng)的行動。

第二個例子是GoldToken,一個表示物理黃金所有權(quán)的token合約。合約創(chuàng)建者希望每單位表示1千克黃金的單位,但同樣希望允許用戶以克的級別(但不能更低)持有和交易黃金。因為以太坊并不支持小數(shù)因此1個token必須表示1克黃金,以及,為了向外界表示1000克作為單一的1Kg單位,小數(shù)位要設(shè)置成3(因為 10^3 克也就是1千克黃金才是token合約創(chuàng)建者希望顯示為1token的單位)。一些GoldToken的持有者可以用圖像表示在下方。

以太坊科普:理解ERC-20 token合約

在這里你可以看到總共有50Kg的黃金被表示出來(每token 1克乘以50,000個token)。

但是,如果小數(shù)位被設(shè)成3,用戶的情形就會像下面這樣:

以太坊科普:理解ERC-20 token合約

可以看到,將小數(shù)位設(shè)置成3在字面上就意味著在顯示GoldToken余額的時候,應(yīng)該有3位數(shù)跟在小數(shù)點后面。

小數(shù)位經(jīng)常被稱為是一個人性化的元素,因為它允許token合約定義他們希望余額怎樣顯示給用戶。GoldToken并不在內(nèi)部處理小數(shù)位,也從不將小數(shù)位用在它自己的計算中因為一切都是用克來計算的,但它允許用戶使用黃金的共通單位(千克)而不是在合約中使用的單位(克)。

正如在上述GoldToken中顯示的,可切分性的觀念允許token合約顯示非常小的小數(shù)值,并且token也常常把小數(shù)位設(shè)成18,以給予token一個近乎連續(xù)的價值范圍。

總結(jié)一下,在決定要取幾個小數(shù)位時,下述規(guī)則是應(yīng)該被遵循的:

token合約表示的是一個不可切分的物體嗎?(如果是)那么將小數(shù)位設(shè)為0

token合約表示的是一個有特定小數(shù)位的物體嗎?那么將小數(shù)位設(shè)置到那個數(shù)字

如果上述兩者都不是,請設(shè)置小數(shù)位為18

重要的是要知道小數(shù)位對合約創(chuàng)建的影響。被創(chuàng)建的Token數(shù)量應(yīng)該等于token的全部數(shù)量,要求是10^小數(shù)位的倍數(shù)。正如在GoldToken例子中可以看到的,token創(chuàng)建者希望創(chuàng)建token來表示50千克的黃金,但因為3位小數(shù),他們必須發(fā)行50,000 token(50×10^3)來做成這件事。

總供給是定義一個ERC-20 token合約的最后一個東西,并且,正如我們提到過的,它是唯一的強制參數(shù)。雖然在ERC-20說明書中并沒有明確提到,但總供給的概念是簡單的:總供給等于所有余額的和。上面的例子中一直顯示著總供給,所以這里就無需贅述了。

一個ERC-20 token合約的功能

ERC-20 token合約擁有一系列的功能,允許用戶發(fā)現(xiàn)用戶的余額,也允許余額經(jīng)過驗證從一個賬戶轉(zhuǎn)賬到另一個賬戶。下面來描述一下這些功能。

balance()函數(shù)提供了被一個給定地址持有的token的數(shù)量。記住,任何人都可以查到任何地址的余額,正如所有數(shù)據(jù)在區(qū)塊鏈上都是公開的。

從一個地址發(fā)送token到另一個地址有兩種辦法。tranfer()函數(shù)可以從信息發(fā)送者那里直接轉(zhuǎn)一些token到林一個地址。記住,人們不會查驗接收地址,因此確保接收者按預(yù)期的方式行動是發(fā)送者的責(zé)任。

雖然用transfer()來發(fā)送toke給另一個用戶是很棒的,但當(dāng)token要被用來為一個智能合約中的函數(shù)進行支付的時候,它就起不了作用了。這是因為,當(dāng)智能合約運行的時候,它沒辦法獲得哪個地址轉(zhuǎn)賬到哪里的細節(jié),因此也就無法保證調(diào)用這個合約的用戶已經(jīng)支付了啟動合約要求數(shù)量的資金。

想象一下,有一個合約Doer被部署在網(wǎng)絡(luò)上。Doer擁有一個函數(shù)dosomething(),它要求10 Do token來運行。Joe希望調(diào)用dosomething(),也有50Do token在他的賬戶上。Joe怎樣能夠支付給Doer以致后者可以成功運行dosomething()呢?

approve()和transferFrom()是兩個方程,它們使用一個兩步過程,可以解決上面的問題。第一步,一個token持有者給另一個地址(常常是一個智能合約)批準(zhǔn)從本地轉(zhuǎn)出一個最大特定數(shù)量的token,也就是所謂的配額(allowence)。Token持有者使用approve()來提供這些信息。

以太坊科普:理解ERC-20 token合約

在上述例子中,第二行顯示,地址為 0x1f59…3492 的Joe已經(jīng)允許地址為 0xd8f0…c028 的Doer從Joe的賬戶中轉(zhuǎn)出25個token。

一旦一個許可被創(chuàng)建,智能合約就可以從一個用戶的配額中占用許可數(shù)量的token,作為該合約運行的一部分。繼續(xù)這個例子。Joe現(xiàn)在可以調(diào)用dosomething(),而dosomething()可以使用transferFrom()以從Joe的賬戶中獲得10個Do token, 然后開始它的工作。如果Joe的賬戶上沒有10個token,或者配額低于10個token,dosomething()就會當(dāng)機。

allowance()函數(shù)提供了允許從一個給定地址提取到另一個給定地址的token的數(shù)量。記住,任何人都可以查到任何地址的余額,正如所有信息在區(qū)塊鏈上都是公開的。重要的是知道,配額是“軟性”的,因為所有單獨的或者累積的配額可以超過一個地址的余額。在上面展示的表格中,持有者 0x2299…3ab7 許可了最高500個token的轉(zhuǎn)出,但他的余額,如上所示,只有90個token。任何使用allowance()的合約,在計算可用的token數(shù)量的時候,都必須額外考慮用戶的余額。

一個ERC-20 token合約中的事件

ERC-20定義了在合約采取了相關(guān)行動的時候,兩類事件是必須被觸發(fā)的。第一類事件是Transfer(),就是放出從一個地址轉(zhuǎn)移到另一個地址的token轉(zhuǎn)移的細節(jié)。第二類事件是Approval(),就是放出從一個地址許可轉(zhuǎn)移token到另一個地址的細節(jié)。這些可以被用來跟蹤地址余額和配額的變更,而無需查詢區(qū)塊鏈。

鑄造token會發(fā)出了一個帶有o地址的Transfer()事件作為源。

當(dāng)token被銷毀的時候,沒有事件會發(fā)出。因為這一點,ERC-20 token 合約常常通過transfer()發(fā)送token到0地址來銷毀token,代替真正的銷毀。

超越ERC-20

ERC-20提供了一個良好的基礎(chǔ)來構(gòu)建token合約,但也并不是沒有問題。ERC-223協(xié)議提供了額外的特性和安全措施,但與ERC-20并不兼容。Token合約的建構(gòu)在今天還要繼續(xù)遵循ERC-20,而開發(fā)者應(yīng)該跟蹤 ERC-223協(xié)議,并為它做出貢獻。

以上就是以太坊科普:理解ERC-20 token合約的詳細內(nèi)容,更多關(guān)于理解ERC-20 token合約的資料請關(guān)注腳本之家其它相關(guān)文章!

免責(zé)聲明:本文只為提供市場訊息,所有內(nèi)容及觀點僅供參考,不構(gòu)成投資建議,不代表本站觀點和立場。投資者應(yīng)自行決策與交易,對投資者交易形成的直接或間接損失,作者及本站將不承擔(dān)任何責(zé)任。!

你可能感興趣的文章

更多

熱門幣種

  • 幣名
    最新價格
    24H漲幅
  • bitcoin BTC 比特幣

    BTC

    比特幣

    $ 106449.64¥ 757687.24
    +4.43%
  • ethereum ETH 以太坊

    ETH

    以太坊

    $ 3611.73¥ 25707.57
    +5.68%
  • tether USDT 泰達幣

    USDT

    泰達幣

    $ 0.9999¥ 7.117
    +0.03%
  • ripple XRP 瑞波幣

    XRP

    瑞波幣

    $ 2.4769¥ 17.63
    +8.16%
  • binance-coin BNB 幣安幣

    BNB

    幣安幣

    $ 1005.17¥ 7154.59
    +1.76%
  • solana SOL Solana

    SOL

    Solana

    $ 167.16¥ 1189.81
    +5.11%
  • usdc USDC USD Coin

    USDC

    USD Coin

    $ 1¥ 7.1178
    +0%
  • tron TRX 波場

    TRX

    波場

    $ 0.2938¥ 2.0912
    +1.35%
  • dogecoin DOGE 狗狗幣

    DOGE

    狗狗幣

    $ 0.181¥ 1.2883
    +3.49%
  • cardano ADA 艾達幣

    ADA

    艾達幣

    $ 0.5887¥ 4.1902
    +4.86%

幣圈快訊

  • Bybit理財與現(xiàn)貨上幣同步推出CC質(zhì)押活動,年化高達400%

    2025-11-10 16:58
    根據(jù)官方消息,Bybit 已于11月10日在Bybit理財及現(xiàn)貨上線$CC(Canton Network),并開放限時活動。 通過Bybit 理財,用戶可以在投資 $CC 時申購定期高息理財活動產(chǎn)品,享受更高的收益和更高的靈活性。此外,為慶祝CC現(xiàn)貨上線, 平臺同步開啟10,000,000 CC的...
  • 0G與南洋理工大學(xué)聯(lián)合投資500萬新元共建去中心化AI研究中心

    2025-11-10 16:52
    新加坡南洋理工大學(xué)(NTU)與去中心化AI基礎(chǔ)設(shè)施公司ZeroGravity(0G)宣布聯(lián)合投資500萬新元成立去中心化AI技術(shù)研究中心,旨在推動基于區(qū)塊鏈的人工智能創(chuàng)新,打造更加透明、安全、可驗證的AI系統(tǒng)。這是0G首次與全球高校開展合作,研究方向包括去中心化AI訓(xùn)練、區(qū)塊鏈集成模型對齊以及有用工作量證明(PoUW)共識機制等。研究中心將通過開放生態(tài)體系,支持開發(fā)者、機構(gòu)及社區(qū)共同參與驗證與審計,推動AI從封閉走向開放透明。該項目為期四年,涵蓋工作坊、黑客松、學(xué)生獎學(xué)金及開源項目,預(yù)計兩年內(nèi)推出首批概念驗證成果,應(yīng)用于金融、醫(yī)療與智能基礎(chǔ)設(shè)施等領(lǐng)域。此前,0G曾獲超3.25億美元資金承諾,其中包括由HackVC領(lǐng)投的4000萬美元種子輪融資。
  • JumpCrypto向Binance存入1842萬枚WLFI

    2025-11-10 16:45
    據(jù)Lookonchain監(jiān)測,JumpCrypto向Binance存入了1842萬枚WLFI(價值約290萬美元)。
  • JumpCrypto向幣安轉(zhuǎn)入約1,842萬枚WLFI,價值約290萬美元

    2025-11-10 16:44
    據(jù)Lookonchain監(jiān)測,JumpCrypto剛向幣安轉(zhuǎn)入約1,842萬枚WLFI,價值約290萬美元。
  • Jump Crypto向Binance存入了1842萬枚WLFI

    2025-11-10 16:44
    據(jù)鏈上分析平臺 Lookonchain(@lookonchain)監(jiān)測,Jump Crypto 向 Binance 存入了 1842 萬 枚WLFI(價值約290 萬美元)。
  • 查看更多