SPL Token & Token Ext - Part 3: Intro to 代幣擴充標準

更新於 發佈於 閱讀時間約 4 分鐘

前兩篇講了SPL Token與Account Model,現在要正式介紹token extension。

Intro

Token Extension Program(以下簡稱TEP) 原名 Token 2022,是一個基於原本Token Prgram(以下簡稱TP)的擴充版本。TEP被部署到的地址跟TP是不同的,所以不能單純將他當作是一個更新版。TEP不能完全取代TP的存在。


Solana doc的例子很好的舉例為什麼需要用到TEP:

假設一所大學想要將畢業證書用 NFT 的方式發行,要如何確保這個畢業證書永遠不會被轉移給其他人(學位不可轉讓)?在當前的 TP 中是不可能的,開發者需要在transfer指令中加入檢查並拒絕所有的transfer。此問題的一個解法fork一個大學專屬的 TP,並添加這個檢查。但如此一來這個 TP 就會是完全獨立的。大學需要為錢包和用於進行學位檢查的 dApp 提供維護。而如果不同的大學有各自的客製化需求,那麼就會有更多個fork。在 TEP 上線後可以直接使用其中的 non-transferable token extension



Extensions

依Account分成兩類Extension,Account Extensions & Mint(Account) Extensions。這些extension的資訊會被加在 Account的尾端。

結構

如上面敘述,TPE 是擴充版本,所以大致上的架構仍沿用原版TP。

參考這兩段程式碼,Mint Account的格式,可以觀察到前面的byte結構都一樣:

Token Program code @ line 1200 & Token Extension Program code @ line 1566

擴展部分新增的資料欄位有:

  • padding
  • Account Type: 三種,尚未被初始化、Mint、一般Account
// Extension program code line 1025
pub enum AccountType {
/// Marker for 0 data
Uninitialized,
/// Mint account with additional extensions
Mint,
/// Token holding account with additional extensions
Account,
}
  • Extension Type: 使用擴充套件的種類,可參考源碼內容(line 1046)
  • length: extension 的長度
  • data: 額外的資訊


以下將對兩種裡面的幾個extension進行介紹。

Mint Extensions

  • Non-transferable tokens: 如最上面的例子,代幣禁止轉移
  • transfer fees: 讓token transfer被抽取額外的手續費(不是gas fee),以Token-2022發行的第一個代幣 -- BERN,就是使用這個extension
  • permanent delegate: 發行者可以永久控制代幣權限,可用於如註銷非法帳號中的資產。權限過大且危險。
  • confidential transfer: 進行transaction的時候可以隱藏如交易數量等資訊,適合B2B交易或是公司支付員工薪水
  • transfer hook: 類似webhook,每當交易就會被觸發背後的邏輯被執行。可應用在上面文憑例子中的交易檢查,或是NFT的分潤機制。
  • metadata & metadata pointer: 兩者通常都會同時出現,可將任何資料存放在代幣上,如前面幾篇所說讓metadata上鏈並簡化設定方法,進行標準規範

Account Extensions

  • Immutable ownership: Account owner不可變動,在SPL Token & Token Extension - Part 1: 簡介Account Model 篇中我們提到Account均由System Program建立,而像是ATA(Associated Token Account)會在建立後將ownership轉移給你的錢包地址。這個Extension可以加強安全性的防護,所有Token 2022的ATA都預設啟用這個extension。
  • CPI Guard: 禁止特定跨Program的程式呼叫,細節可參考 CPI中的風險: CPI Guard 與 Arbitrary CPI
  • memo: 有incoming transfer的時候需要寫備註,就像是銀行轉帳會顯示在存摺上的備註


接下幾章將介紹Token Extension Program的使用。

留言
avatar-img
留言分享你的想法!
avatar-img
ppe ha的沙龍
4會員
7內容數
ppe ha的沙龍的其他內容
2024/08/10
前言 本篇要用 Token-2022 和 solana cli 來鑄造一個新的代幣叫做TYC。 如前篇所述,Token-2022 與 Spl Token 是不同的 Program,所以在呼叫的時候要特別註明以示明區別。 Token-2022 Program ID 地址: TokenzQdBNb
Thumbnail
2024/08/10
前言 本篇要用 Token-2022 和 solana cli 來鑄造一個新的代幣叫做TYC。 如前篇所述,Token-2022 與 Spl Token 是不同的 Program,所以在呼叫的時候要特別註明以示明區別。 Token-2022 Program ID 地址: TokenzQdBNb
Thumbnail
2024/08/05
CPI 全名叫做 Cross Program Invocation,它可以讓Solana的program直接呼叫另一個Program中的instruction,這個功能可以讓程式有更高的可組合性。可以把CPI想像成一個API在被呼叫的時候又去呼叫另外一個API。 圖示如下: 在Token 202
Thumbnail
2024/08/05
CPI 全名叫做 Cross Program Invocation,它可以讓Solana的program直接呼叫另一個Program中的instruction,這個功能可以讓程式有更高的可組合性。可以把CPI想像成一個API在被呼叫的時候又去呼叫另外一個API。 圖示如下: 在Token 202
Thumbnail
2024/08/05
上一篇提到要在Solana上鑄造新的token需要使用到token program,功能較為陽春。隨著各種新需求的增加同時兼顧安全性的目的,一個新的token program - token 2022 (另名token extension)被開發出來,發佈在一個新的地址上。 Token 2022在
Thumbnail
2024/08/05
上一篇提到要在Solana上鑄造新的token需要使用到token program,功能較為陽春。隨著各種新需求的增加同時兼顧安全性的目的,一個新的token program - token 2022 (另名token extension)被開發出來,發佈在一個新的地址上。 Token 2022在
Thumbnail
看更多
你可能也想看
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
Dynamic Metadata NFTs 是區塊鏈技術中的一大創新,特別是在遊戲領域,能提供更大的靈活性
Thumbnail
Dynamic Metadata NFTs 是區塊鏈技術中的一大創新,特別是在遊戲領域,能提供更大的靈活性
Thumbnail
前言 本篇要用 Token-2022 和 solana cli 來鑄造一個新的代幣叫做TYC。 如前篇所述,Token-2022 與 Spl Token 是不同的 Program,所以在呼叫的時候要特別註明以示明區別。 Token-2022 Program ID 地址: TokenzQdBNb
Thumbnail
前言 本篇要用 Token-2022 和 solana cli 來鑄造一個新的代幣叫做TYC。 如前篇所述,Token-2022 與 Spl Token 是不同的 Program,所以在呼叫的時候要特別註明以示明區別。 Token-2022 Program ID 地址: TokenzQdBNb
Thumbnail
前兩篇講了SPL Token與Account Model,現在要正式介紹token extension。 Token Extension Program(以下簡稱TEP) 原名 Token 2022,是一個基於原本Token Prgram(以下簡稱TP)的擴充版本。TEP被部署到的地
Thumbnail
前兩篇講了SPL Token與Account Model,現在要正式介紹token extension。 Token Extension Program(以下簡稱TEP) 原名 Token 2022,是一個基於原本Token Prgram(以下簡稱TP)的擴充版本。TEP被部署到的地
Thumbnail
上一篇提到要在Solana上鑄造新的token需要使用到token program,功能較為陽春。隨著各種新需求的增加同時兼顧安全性的目的,一個新的token program - token 2022 (另名token extension)被開發出來,發佈在一個新的地址上。 Token 2022在
Thumbnail
上一篇提到要在Solana上鑄造新的token需要使用到token program,功能較為陽春。隨著各種新需求的增加同時兼顧安全性的目的,一個新的token program - token 2022 (另名token extension)被開發出來,發佈在一個新的地址上。 Token 2022在
Thumbnail
SPL 是 Solana Program Library的簡稱,是一個用來在Solana上創造fungible/non-fungible token的工具,內含多個Program Account。 有別於以往在Ethereum上,每當想創造新的token就需要寫一個智能合約,SPL有點像是API的
Thumbnail
SPL 是 Solana Program Library的簡稱,是一個用來在Solana上創造fungible/non-fungible token的工具,內含多個Program Account。 有別於以往在Ethereum上,每當想創造新的token就需要寫一個智能合約,SPL有點像是API的
Thumbnail
上次我們雖然介紹過抽象帳戶的十個項目,但這次是最新的以太坊基金會資助的項目分享!讓我們來看看有那些新上榜的吧!
Thumbnail
上次我們雖然介紹過抽象帳戶的十個項目,但這次是最新的以太坊基金會資助的項目分享!讓我們來看看有那些新上榜的吧!
Thumbnail
Coin 中文意思為幣,通常在自己獨立的區塊鏈上運行。常見的 Coin 有 BTC 比特幣,ETH 以太幣,SOL 等。 Token 中文意思為令牌或通證,通常沒有自己的原生區塊鏈,而是基於公有區塊鏈發行的。常見的 Token 有 SHIB 柴犬幣,UNI,FIL 等。
Thumbnail
Coin 中文意思為幣,通常在自己獨立的區塊鏈上運行。常見的 Coin 有 BTC 比特幣,ETH 以太幣,SOL 等。 Token 中文意思為令牌或通證,通常沒有自己的原生區塊鏈,而是基於公有區塊鏈發行的。常見的 Token 有 SHIB 柴犬幣,UNI,FIL 等。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News