亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

當(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合約的文章,能夠幫助各位朋友對以太坊有個(gè)更加深入的了解。

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

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

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

Token合約是什么?

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

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

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

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

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

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

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

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

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

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

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

一個(gè)ERC-20 token合約的定義

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

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

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

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

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

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

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

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

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

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

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

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

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

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

小數(shù)位經(jīng)常被稱為是一個(gè)人性化的元素,因?yàn)樗试Stoken合約定義他們希望余額怎樣顯示給用戶。GoldToken并不在內(nèi)部處理小數(shù)位,也從不將小數(shù)位用在它自己的計(jì)算中因?yàn)橐磺卸际怯每藖碛?jì)算的,但它允許用戶使用黃金的共通單位(千克)而不是在合約中使用的單位(克)。

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

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

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

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

如果上述兩者都不是,請?jiān)O(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千克的黃金,但因?yàn)?位小數(shù),他們必須發(fā)行50,000 token(50×10^3)來做成這件事。

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

一個(gè)ERC-20 token合約的功能

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

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

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

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

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

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

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

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

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

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

一個(gè)ERC-20 token合約中的事件

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

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

當(dāng)token被銷毀的時(shí)候,沒有事件會(huì)發(fā)出。因?yàn)檫@一點(diǎn),ERC-20 token 合約常常通過transfer()發(fā)送token到0地址來銷毀token,代替真正的銷毀。

超越ERC-20

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

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

聲明:文章內(nèi)容不代表本站觀點(diǎn)及立場,不構(gòu)成本平臺(tái)任何投資建議。本文內(nèi)容僅供參考,風(fēng)險(xiǎn)自擔(dān)!

你可能感興趣的文章

幣圈快訊

  • 瑞典上市公司H100Group再融資5400萬美元用于比特幣儲(chǔ)備,累計(jì)籌資達(dá)9600萬美元

    2025-07-09 14:49
    ChainCatcher消息,據(jù)瑞典上市公司H100Group官方披露,該公司已通過執(zhí)行第六輪和第七輪融資額外籌集了5.16億瑞典克朗(約5400萬美元),資金將用于公司比特幣儲(chǔ)備戰(zhàn)略框架內(nèi)的投資機(jī)會(huì),這兩輪融資最初于6月16日宣布。 截至目前,H100Group累計(jì)籌集資金已增至9.21億瑞典克朗(9600萬美元)。
  • 火幣HTX將直播揭秘:算法穩(wěn)定幣如何引領(lǐng)金融新范式?

    2025-07-09 14:47
    ChainCatcher消息,據(jù)官方社媒消息,火幣HTX將于今日20時(shí)舉辦“穩(wěn)定幣新紀(jì)元開啟:算法錨定掀起范式革命,重塑全球貨幣秩序!“主題直播。USDD2.0、RWA.LTD項(xiàng)目方,以及北海、Harper、Riconi等加密KOL將受邀出席,共同探討算法穩(wěn)定幣如何影響全球金融體系,以及未來發(fā)展趨勢等話題。此次活動(dòng)通過火幣直播、XSpace同步進(jìn)行。
  • RippleCEO將正式向美國參議院介紹XRP

    2025-07-09 14:28
    金色財(cái)經(jīng)報(bào)道,Ripple首席執(zhí)行官布拉德·加林豪斯(BradGarlinghouse)將于今日晚些時(shí)候向美國參議院介紹XRP,重點(diǎn)強(qiáng)調(diào)該代幣的技術(shù)優(yōu)勢和實(shí)用性。加林豪斯昨日在X平臺(tái)分享了一份PDF鏈接,內(nèi)容為其為即將舉行的參議院加密貨幣市場結(jié)構(gòu)聽證會(huì)準(zhǔn)備的發(fā)言稿。Ripple公司首席執(zhí)行官的證詞圍繞“構(gòu)建明天的數(shù)字資產(chǎn)市場”這一主題展開。他的發(fā)言首先向參議院銀行、住房和城市事務(wù)委員會(huì)的成員致以問候。他強(qiáng)調(diào)了該公司的全球影響力,以及其在代表金融機(jī)構(gòu)(包括銀行)促進(jìn)跨境支付方面的作用。
  • Bithumb及其他韓國DAXA成員將集體下架ALEX代幣

    2025-07-09 14:26
    ChainCatcher消息,據(jù)官方公告,韓國加密交易所Bithumb宣布,韓國數(shù)字資產(chǎn)交易所協(xié)會(huì)(DAXA)成員計(jì)劃終止對ALEX的交易支持。 Bithumb交易所公告顯示,將于8月11日停止ALEX交易,9月11日關(guān)閉提現(xiàn)功能。交易所表示,盡管項(xiàng)目方提交說明材料,但未能解決交易風(fēng)險(xiǎn)警示問題,經(jīng)評估認(rèn)為該代幣不符合持續(xù)交易標(biāo)準(zhǔn)。
  • Bithumb及其他韓國DAXA成員將下架ALEX代幣

    2025-07-09 14:23
    金色財(cái)經(jīng)報(bào)道,據(jù)官方公告,韓國加密交易所Bithumb宣布,韓國數(shù)字資產(chǎn)交易所協(xié)會(huì)(DAXA)成員計(jì)劃終止對ALEX的交易支持,Bithumb預(yù)計(jì)于8月11日終止對ALEX的交易支持,9月11日終止對ALEX的提現(xiàn)支持。Bithumb表示,盡管項(xiàng)目方提交了相關(guān)說明材料,但未能解決交易風(fēng)險(xiǎn)警示的原因,經(jīng)綜合評估項(xiàng)目實(shí)質(zhì)性、可持續(xù)性及安全相關(guān)因素后,認(rèn)為該代幣不符合繼續(xù)交易支持的標(biāo)準(zhǔn)。
  • 查看更多