本篇內(nèi)容介紹了“什么是ERC”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
10年積累的網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問(wèn)題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站設(shè)計(jì)后付款的網(wǎng)站建設(shè)流程,更有雅安免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
ERC代表“Etuereum Request for Comment",這是Ethereum版的意見(jiàn)征求稿 (RFC),RFC是由互聯(lián)網(wǎng)工程任務(wù)組 制定的一個(gè)概念。 RFC中的備忘錄包含技術(shù)和組織注意事項(xiàng)。 對(duì)于ERC,意見(jiàn)征求稿中包括一些關(guān)于以太坊網(wǎng)絡(luò) 建設(shè)的技術(shù)指導(dǎo)。
ERC是Ethereum開(kāi)發(fā)者為以太坊社區(qū)編寫(xiě)的。 因此,ERC的創(chuàng)建流程中包括開(kāi)發(fā)人員。 為了創(chuàng)建一個(gè)以太坊平臺(tái)的標(biāo)準(zhǔn), 開(kāi)發(fā)人員應(yīng)當(dāng)提交了一個(gè)以太坊改進(jìn)方案(EIP), 改進(jìn)方案中包括協(xié)議規(guī)范和合約標(biāo)準(zhǔn)。 一旦EIP被委員會(huì)批準(zhǔn)并 最終確定,它就成為ERC。 EIP的完整列表可以在這里找到。
最終確定的EIP為以太坊開(kāi)發(fā)者提供了一套可實(shí)施的標(biāo)準(zhǔn)。 這使得智能合約可以遵循這些通用的接口標(biāo)準(zhǔn)來(lái)構(gòu)建。 ERC-20是整個(gè)加密社區(qū)中最為人熟知的標(biāo)準(zhǔn),在Ethereum平臺(tái)之上發(fā)布的大多數(shù)通證(token
)都使用它。
ERC-20標(biāo)準(zhǔn)中定義了以下函數(shù)接口:
totalSupply():返回代幣供給總量
balanceOf(address _owner):返回_owner的帳戶余額
transfer(address _to,uint256 _value):并將數(shù)量為_(kāi)value的代幣轉(zhuǎn)入地址_to并觸發(fā)transfer事件
transferFrom(address _from,address _to,uint256_value):將地址_from中的_value數(shù)量的代幣轉(zhuǎn)入地址_to ,并觸發(fā)transfer事件
approve(address _spender,uint256 _value):允許_spender提取限額_value的代幣
allowance(address _owner,address _spender):返回_spender可從_owner提款的代幣數(shù)量上限
以上函數(shù)將觸發(fā)以下事件:
transfer(address indexed _from,address indexed _to,uint256 _value):每次進(jìn)行代幣轉(zhuǎn)賬時(shí)都會(huì)觸發(fā)
approval(address indexed _owner,address indexed _spender,uint256 _value):調(diào)用approve()方法將觸發(fā)該事件
ERC-20于2015年提出并于2017年9月正式實(shí)施。這是代幣標(biāo)準(zhǔn)化的一個(gè)很好的起點(diǎn)。 然而,開(kāi)發(fā)者社區(qū) 已經(jīng)注意到它存在一些缺陷和漏洞,此外,還有一些場(chǎng)景它不能很好的滿足。因此陸續(xù)提出了其他的ERC標(biāo)準(zhǔn)。
狀態(tài):打開(kāi)
建議日期:3/5/2017
開(kāi)發(fā)人員Dexaran在一篇文章中詳細(xì)描述了ETC20不適合的兩種場(chǎng)景:
“在ERC20中執(zhí)行交易有兩種方式:
transfer函數(shù)。
approve + transferFrom機(jī)制。
通證余額只是通證合約中的一個(gè)變量。
通證的交易是合約內(nèi)部變量的變化。 轉(zhuǎn)出賬戶的余額將減少,轉(zhuǎn)入賬戶的余額將增加。
交易發(fā)生時(shí), transfer()函數(shù)不會(huì)通知轉(zhuǎn)入賬戶。 因此轉(zhuǎn)入賬戶將無(wú)法識(shí)別傳入的交易! 我寫(xiě)了一個(gè)例子,可以展示這一導(dǎo)致未處理的交易和資金損失的過(guò)程 。
因此,如果接收賬戶是合約,那么必須使用approve + transferFrom機(jī)制來(lái)發(fā)送通證。 如果接受賬戶是外部擁有帳戶,則必須通過(guò)transfer函數(shù)發(fā)送通證。 如果選擇了錯(cuò)誤的機(jī)制, 通證將卡在合約內(nèi)(合約將不會(huì)識(shí)別交易),沒(méi)有辦法來(lái)提取這些卡殼的通證?!?/p>
他對(duì)這個(gè)問(wèn)題提出的解決方案包含在ERC-223中 。 它與ERC-20標(biāo)準(zhǔn)非常相似,但解決了上述問(wèn)題。 當(dāng)通證轉(zhuǎn)移到智能合約賬戶時(shí),該合約的特殊函數(shù)tokenFallback() 允許接收方合約拒絕令牌或觸發(fā) 進(jìn)一步的操作。 在大多數(shù)情況下,這可以用來(lái)代替approve()函數(shù)。
狀態(tài):打開(kāi)
建議日期:2017/5/1
ERC-621是ERC-20標(biāo)準(zhǔn)的擴(kuò)展。 它增加了兩個(gè)額外的功能, increaseSupply和decreaseSupply 。 這可以增加和減少流通中的令牌供應(yīng)。 ERC-20只允許單一的通證發(fā)放事件。 這將供應(yīng)量限制在 一個(gè)固定的不可改變的數(shù)目。 ERC-621建議totalSupply應(yīng)當(dāng)是可修改的。
狀態(tài):打開(kāi)
建議日期:9/22/2017
ERC-721與ERC-20和ERC-223都大不相同。 它描述了一個(gè)不可互換的通證。 這意味著每個(gè)通證是完全不同的, 并且每個(gè)通證對(duì)不同的用戶都有不同的價(jià)值。 理解這種通證的一個(gè)方法就是回憶CryptoKittes。 每一個(gè)數(shù)字貓 都是獨(dú)立的,其價(jià)值取決于其稀缺性和用戶的購(gòu)買(mǎi)欲。
ERC-721令牌可用于任何交易所,但通證價(jià)值是“每個(gè)通證的唯一性和稀缺性所決定的結(jié)果”。標(biāo)準(zhǔn)中規(guī)定的接口 函數(shù)包括name、symbol、totalSupply、balanceOf、ownerOf、approve、takeOwnership 、 transfer 、tokenOfOwnerByIndex 和tokenMetadata 。 它還定義了兩個(gè)事件: Transfer和Approval 。 Gerald Nash的 這篇文章很好地解釋了 可互換性的概念。
狀態(tài):打開(kāi)
建議日期:1/12/2018
ERC-20標(biāo)準(zhǔn)的另一個(gè)擴(kuò)展是ERC-827。 它允許轉(zhuǎn)讓通證并允許持有人允許第三方使用通證。 以太坊上的通證可以被 其他應(yīng)用程序重復(fù)使用,這其中也包括錢(qián)包和交易所。 當(dāng)需要支持第三方動(dòng)態(tài)消費(fèi)限額調(diào)整時(shí)這一點(diǎn)非常有用。 最重要的是,由于ERC-827是ERC-20的延伸,它也與ERC-20兼容。
一些提議的接口函數(shù)包括:
transferFrom(address _from,address _to,uint256 _value,bytes _data) returns (bool success)
approve(address _spender,uint256 _value,bytes _data) returns (bool success)
“什么是ERC”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!