近日,ICRC-1 代幣標準提案通過,本文即是對其可替代代幣和賬本的介紹,以及鑄幣、子賬戶、批准和轉賬費用等特性。
原文:Fungible Tokens 101(The Internet Computer Review)
作者: Roman Kashitsyn
編譯: ICPL
原用標題(譯後):從 ICRC-1 開始:介紹可替代代幣
簡介
我目前正致力於將 ICRC-1 可替代代幣標準帶入互聯網計算機(關於 ICRC-1 標準的動議提案的投票)。工作組中最激烈的兩個討論集中在子賬戶的使用和智能合約的核心支付流(特別是 ERC-20 代幣標準普及的 approve / transferFrom 流)。乍一看,這些問題似乎無關緊要,但仔細審視,其中有令人驚訝的聯繫,需要進一步的分析和探索。
本文是對可替代代幣和賬本的簡要介紹。我們將闡述賬本的概念和設計實際的記賬系統時的設計選擇,為以後的文章中更深度的技術探討奠定基礎。
可替代代幣
“黃金在任何地方都是黃金,可替代的,中立的。但是,當鑄幣者在一張金盤上印上某些浮誇的文字和國王的畫像時,它就有了附加價值——鑄幣稅。它之所以有這種價值,只是因為人們相信它有——它是一種共同的幻想。”
——尼爾·斯蒂芬森《困惑》
可替代代幣的概念是古老並熟悉的,儘管我們很少在日常生活中使用這個源自拉丁語的術語。可替代代幣是指可以進行交易的可互換物品,例如同等價值的硬幣或相同形式、重量和純度的金幣。
你小時候買冰淇淋時,你用一種可替代代幣(法定貨幣)來換取另一種代幣(冰淇淋)。商店的營業員不在乎你的硬幣是從哪裡來的,也許你的阿姨給了你一些錢來招待你,或者你從午餐錢裡省下一些。你並不關心你會得到哪種類型的冰淇淋。
資產賬本
數字世界中最突出的可替代代幣的例子是數字資產, 例如比特幣、以太幣和 ICP 實用代幣等。資產賬本是這些系統之下的核心概念。賬本是系統執行交易的記錄;他們跟踪賬戶之間的資金流動。您使用比特幣進行的每一次購買都會成為打包成區塊鏈中的一個塊的比特幣賬本中的一個記錄。
生活中大家常常用一個簡單的賬本來記錄小費金額。我將使用這個例子來解釋賬本的概念及其變體。
比如 Geneviève 在一家小型會計師事務所工作。一天,她和兩個同事 Allen 和 Meriam 走進了一家小餐館。他們吃了一頓美餐並決定給 20 美元的小費。不幸的是,Allen 和 Meriam 沒有 6.66 美元來平均分擔這些錢。於是他們拿出一本筆記本,在封面上寫上 “賬本”,然後把第一頁分成三欄。Allen 和 Meriam 在賬本上轉移了 Geneviève 假想的錢。
現在,Allen 和 Meriam 的 “賬戶” 上有 6.66 美元,Geneviève 有 13.32 美元。第二天,他們去咖啡店,給了 15 美元的小費。這次 Allen 為所有人買單,Geneviève 和 Meriam 為賬本添加了新的條目。
現在,Allen 的賬戶上有 3.34 美元,Geneviève 有 8.32 美元,Meriam 有-11.66 美元(要計算一個人的餘額,從上到下查看日誌中的所有記錄。如果此人出現在 “From” 欄,則從其餘額中減去該金額;如果此人出現在 “To” 一欄,將金額加到他們的餘額中)。這個賬本有一個有趣的屬性:所有餘額的總和總是零,因為我們開始時沒有資金,而且每個記錄只移動資金。
這個簡單的方案描述了一個功能全面、實用的賬本,有助於均分小費的花費。賬本上餘額最低的人外出時支付整個公司的費用。
這個小費賬本不同尋常,因為它像信用卡一樣允許負餘額。當所有參與者相互了解和信任時,這種設置就能發揮作用。而比特幣等數字賬本就像儲蓄卡:在轉賬之前,你的賬戶上必須有足夠多的代幣。但是第一批代幣是如何進入系統的呢?
鑄造和燃燒
所有賬本都有辦法憑空製造,或稱鑄造代幣。比特幣網絡鑄造代幣,作為對幫助賬本增長的參與者的獎勵。IC 網絡會鑄造 ICP 代幣,以獎勵網絡治理的參與者和節點提供商。
另一個流行的方案是包裝代幣(wrapped tokens),賬本鑄造代幣作為其他資產的代理分身。讓我們擴展一下這個小費賬本的例子,使其能適用於包裝好的美元。
想像一下,現在 Geneviève 不相信和她一起出去玩的人,但她想繼續享受虛擬貨幣帶來的便利。每當有人在賬本上轉讓虛擬代幣時,她都希望確保自己可以拿到這些美元。
解決這個問題的一個方法是在辦公室裡放一個存錢罐。任何往存錢罐放入 1 美元的人都會在賬本上得到 1 美元。將物理錢幣轉換為虛擬代幣的交易是一個鑄造交易。
有一天 Geneviève,Allen 和 Meriam 各自往存錢罐裡放了 10 美元,並在賬本上鑄造了包裝好的錢。
然後他們一起去了一家咖啡店,Geneviève 給了 6 美元的小費。Allen 和 Meriam 把他們的份額在賬本上轉給了 Geneviève。
與原來方案的主要區別是,現在 Geneviève 可以退出這個小組,並在任何時候拿回她的錢。她所需要做的就是在一個受信任的人的監督下打開存錢罐,拿到她的 14 美元,並把她的代幣轉給 void(有時被稱為鑄造賬戶)在賬本上記錄一個燃燒交易。賬本上所有餘額的總和總是等於存錢罐裡的錢。
包裝代幣並不是最近的發明:在 1873 年,美元是 1.50463 克黃金的包裝代幣。
子賬戶
Geneviève 和她的同事有一個傳統:有人過生日時,其他同事會籌集資金買一份小禮物。下個星期 Allen 就 33 歲了,所以部門裡的人讓 Geneviève 給他買些好東西。這一次,他們決定使用上一節討論的存錢罐賬本來轉移目前的資金。但是有個小問題:如果每個人都直接將禮金轉給 Geneviève,她將如何從禮金中分離出她的錢?
我們聰明的辦公室同事決定在賬本中添加一個新功能,以解決資金分離問題。每個人都可以在賬本上持有多個不相關的賬戶,並從其中任何一個賬戶轉移資金。子帳戶將是一個標籤,用於劃分屬於同一個人的獨立帳戶。
Geneviève 讓同事們在當天結束前將資金轉移到她的 NYYRA OVEGUQNL 子賬戶。(Geneviève 應用了高級密碼學來隱藏子帳戶的目的,不讓艾倫知道。) 她燒掉了 NYYRA OVEGUQNL 子賬戶上的代幣,並在離開辦公室之前從存錢罐裡取出了 42 美元。
總的來說,子賬戶是一個很有用的功能,允許你不把所有的代幣放在一個籃子裡。你的銀行可能會為你開多個賬戶,比如工資賬戶和儲蓄賬戶。
批准
一天 Geneviève 的侄子 Alex 來參觀她的工作。Geneviève 有一個重要的客戶電話,不能帶 Alex 出去吃午飯。她的同事們很高興和 Alex 一起出去,但是有個小問題:Alex 沒有錢。
幸運的是,Geneviève 在賬本上積累了相當多的餘額,所以其他人可以為 Alex 付款,並將她賬本上的錢拿回來作為交換。剩下要做的就是在賬本上把這一安排正式化。
Geneviève 可以在 Alex 出去之前轉給他一些預算,他回來後可以轉給她剩下的,這就解決了問題。但是 Alex 在此期間不能使用這些被鎖定的資金,因為從技術上講,這些資金屬於 Geneviève。
以太坊社區推廣的另一種方法是引入批准(approvals)的概念。賬本上可以有另外一個表,上面有兩個人之間的消費限額。
有了這個記錄,Alex 可以代表 Geneviève 轉賬,金額不超過限額
Alex 在一家咖啡店花了 16 美元。Allen 為 Alex 付錢,Alex 把 Geneviève 的一些代幣轉給 Allen 作為回報。這一操作對賬本進行了兩次更新。第一個更新是日誌中的新交易。注意,我們需要在表中增加一列 “On Behalf Of”,以表明 Alex 發起了交易,但 Geneviève 才是有效的付款人。
第二個更新是將批准表中的限額減去為 Alex 花費的金額。
費用
Peppy 是一個可愛的五歲小女孩,她來到辦公室來看她的媽媽 Meriam 的一天是如何度過的。她最喜歡的遊戲是在大人們發明的特別規則中尋找漏洞。因此,當她看到母親是如何使用賬本的時候。
“媽媽,我能給你多少錢?” Peppy 問道。
“不會比你現有的錢多。” Meriam 回答。
“我還什麼都錢沒有呢。我可以給你 0 元嗎?”
“嗯……好吧,我想沒有規定禁止這樣做。”
Peppy 抓起一支筆,開始在每一行里填上粗體字母。
“好了,Peppy,停。有一條新規則:你不能轉賬 0 元,只能是一個正數。”
Peppy 停下來想了想,她打開她的虎紋小背包,取了一枚前幾天在街上撿到的五分錢。她把五分錢放進存錢罐裡,然後記錄了一次鑄幣。然後開始給自己轉賬。
“好吧,Peppy,有個新規定:你不能轉賬給你自己!”
Peppy 皺起了眉頭,但十秒鐘後,她又開始亂塗亂畫,她轉出了一筆特別小的錢。
“這並不好笑。從現在開始,每一次記錄都要收取發送者的一分錢。”
現在 Peppy 就沒辦法了,只能選擇放棄。
可見,費用是賬本設計中的一個重要工具。比特幣網絡收取費用來保護系統免受垃圾交易的影響,並激勵節點將交易納入區塊。交易發送方願意支付的費用越高,節點處理交易的可能性就越大。ICP 賬本也將收取費用作為一種防止垃圾交易的機制。
總結
我們已經看到,可替代代幣是我們日常生活的重要組成部分。我們了解到,賬本是一種強大的記賬機制,我們可以通過採用各種特性來適配手頭的任務:鑄幣、子賬戶、批准和轉帳費用。在接下來的文章中,我們將討論允許客戶端用代幣交換服務的協議,即支付流。
免責聲明:作為區塊鏈信息平台,本站所發布文章僅代表作者及嘉賓個人觀點,與 Web3Caff 立場無關。本文內容僅用於信息分享,均不構成任何投資建議及要約,並請您遵守所在國家或地區的相關法律法規。