什么是ERC-777代幣又有啥作用
背景
ERC-777代幣來自最初的EIP(以太坊改進建議)——https://eips.ethereum.org/EIPS/eip-777,由Jacques Dafflon、Jordi Baylina和Thomas Shababi編寫。名稱中的777實際上沒有任何意義,只是由于 githubissues的當前索引生成。但是,您不能否認,這是一個讓各地開發(fā)人員都情有獨鐘的數(shù)字。這個提議的最初動機是提供比當前ERC-20規(guī)范具有更少摩擦的事務。如果您在該領域工作的時間足夠長,您就會知道維護自己鑰匙和錢包的個人之間的交易很容易。您還知道,一旦您偏離了這個簡單的用例,事情就會變得更加困難。
ERC-777將如何阻止傷害
以下是我在與以太坊合作時經(jīng)歷過的一些常見事情,以及ERC-777規(guī)范將如何為人們提供幫助。
第三方支出-運營商
ERC-20
在典型的ERC-20場景中,如果我想批準第三方帳戶或智能合約使用我?guī)舻拇鷰牛覍⑿枰獌蓚€事務來執(zhí)行單個轉賬。我需要打電話來批準揮金人和他們被授權的支出金額,智能合約或地址將需要執(zhí)行交易。問題不在于我必須批準這個賬戶,而在于我必須給它一個支出限制,確保它總是足夠我進行交易。
ERC - 777
ERC-777標準希望通過引入運營商的概念來解決第三方支出問題。在服務體系結構中,運營商是一個眾所周知的概念,因為它們是具有執(zhí)行特定任務的特定權限帳戶。對于ERC-777代幣,運營商有兩種類型——常規(guī)運營商和默認運營商 常規(guī)操符是一個地址,允許代表另一個地址發(fā)送和刻錄代幣。默認運營商是允許所有代幣持有者發(fā)送和刻錄代幣的地址。
天然氣消費解決方案
在交易所或dApp上使用錢包時,一個常見的問題是支付交易的天然氣費。用戶不希望或不需要關心是哪個塊阻止了他們的事務,只要它是合理的速度就行了。使用“運營商”可以讓您作為dApp或交易所所有者來管理消費成本,以維護用戶體驗。
所有權與支出
ERC20標準的優(yōu)點之一是有很多代幣與之兼容。這為它的開發(fā)和用戶采用提供了一個很好的生態(tài)系統(tǒng)基礎。然而,當您擁有以太坊錢包時,每個地址構成一個具有唯一公鑰/私鑰的帳戶,如果您在一個交易所擁有數(shù)千名用戶,但是您沒有該用戶資金的私鑰,您如何提供結算呢?運營商將是一個很好的用例,因為它并不真正構成所有權,但將允許您為交易結算轉移資金。需要注意的是,地址可以在任何時候添加/刪除運營商,所以這是一件棘手的事情。
ERC-820合約
操作者的使用最終由另一個合約ERC-820啟用。本合約作為一個通用的、無所有者的注冊中心,任何帳戶/地址都可以在其中檢查它們試圖發(fā)送的代幣,以及發(fā)送到的目的地是否能夠接收/管理這些類型的代幣。這似乎是ERC-223的改進,該標準旨在幫助防止用戶將代幣發(fā)送到不兼容的智能合約。在正常的ERC-20用例中,發(fā)送方必須發(fā)送一個“批準”事務,然后才能將任何PokerCointoken發(fā)送到SureThing智能合約。在這種情況下,PokerCoin代幣(ERC-777)開發(fā)人員只需向ERC-820注冊他們的代幣,并聲明它與PokerCoin合約兼容。任何試圖將未注冊的pokercoin發(fā)送到ERC-820合約中的嘗試都將失敗。
ERC-777標準的另一個承諾是Hook。它們對我來說仍然有點神秘,但本質(zhì)上它們將允許開發(fā)人員實現(xiàn)在事務執(zhí)行前/后執(zhí)行的代碼塊,以便通過事件發(fā)送通知、需要額外的輸入、塊地址或其他與流程相關的項。
總結
運營商和ERC-820的組合意味著我們知道可以在哪里發(fā)送代幣,以及委托誰使用代幣。作為我們虛構的dApp的用戶,我可以放心地將PokerCoin的合約地址設置為“我的運營商”,并且根據(jù)開發(fā)商在PokerRegistry ERC-820智能合約上的注冊,我可以將這些代幣發(fā)送到的唯一目的地是PokerCoin合約。