更新於 2024/08/10閱讀時間約 3 分鐘

SPL Token & Token Ext - Part 1: 簡介Account Model

SPL 是 Solana Program Library的簡稱,是一個用來在Solana上創造fungible/non-fungible token的工具,內含多個Program Account。

有別於以往在Ethereum上,每當想創造新的token就需要寫一個智能合約,SPL有點像是API的概念,透過呼叫token library讓token創建的過程標準化。

Program Accounts & Data Accounts

前面講到的Program Account是什麼?這邊將簡單介紹一下Solana鏈上Account的區別與從屬架構。

Solana就如同其他區塊鏈一樣,有許多個address在它的鏈上,每一個這樣的地址叫做一個Account。有別於其他大部分的區塊鏈,Solana完全的將程式(智能合約)與靜態資料(如錢包裡的$$,你持有的token數量等等)分開來儲存。這兩種Account就分別叫做 Program Account & Data Account

Programs

Program又可以做細分,其中一種叫做Native Program(原生程式(?)),它提供了Solana網路底層的功能實現,底下還有更多program如 System Program & BPF Loader Program

System Program可以進行帳號創建,各位可以在solscan上觀察自己的錢包owner,通常顯示的都會是system program。

BPF 是其他除Native Program以外的Program的owner。可以部署、更新、執行客製化Program等等。我們的主角Program Library說的Program也在此列,叫做Token Program。

創造代幣 Account 間的關係

假設我想要創建一個新的token叫做 “XD”,我需要一個帳號用來代表我的Token -- 稱之為Mint Account。

Mint Account會給予另外一個錢包地址鑄造代幣的權限(Mint Authority),這裡我用User Account代表。User Account需要建立一個獨立的account來存放XD代幣, 稱之為Associated Token Account,有別於你的錢包地址ownership指向System Program, Associated Token Account會指向你的錢包。如一個Solana錢包地址存放USDC等token的概念。

當想要鑄造代幣,會用擁有mint authority的帳戶向Token Program發送一個transaction。Token Program會驗證Account是否有權限鑄造代幣,如果驗證通過transaction就會被執行。

下圖為整個流程中帳戶之間的關聯圖:


下一篇將向大家介紹如何用solana cli & spl-token cli工具來實際mint your token!

分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.