Back to Blog

Solana 簡易指南 03:5分鐘看懂 Solana 交易

MetaSleuthPhalcon Explorer
June 27, 2024
9 min read
Key Insights

歡迎來到「Solana 簡化指南」系列,本系列旨在幫助您掌握 Solana 複雜的生態系統。在第一篇文章中,我們探討了 Solana 的運作機制、帳戶模型與交易結構。在第二篇文章中,我們引導您使用 Rust 編寫並測試您的第一個 Solana 程式。

作為本系列的第三篇,也是最後一篇,本文將引導您使用 Phalcon Explorer 分析一筆簡單的 Solana 交易。在深入實際的 Solana 交易分析之前,讓我們先探討代幣在 Solana 上的實作方式,這是理解交易流程的基礎。

了解 Solana 代幣實作

Solana 上的代幣大致可分為兩類:原生代幣與其他代幣(SPL 代幣)。掌握這些區別對於有效進行 Solana 交易分析至關重要。

原生代幣(SOL)

原生代幣是指 Solana 的主要加密貨幣 SOL。如第一篇文章所述,Solana 中的每個帳戶都有一個 Lamports 欄位,用於記錄該帳戶的 SOL 餘額。Lamports 是 SOL 的最小單位,1 SOL 等於 10 億 Lamports。SOL 用於支付交易費用、質押及參與網路。

其他代幣(SPL 代幣)

對於其他代幣,Solana 採用了一套以程式帳戶(Token Program)以及兩種資料帳戶:Mint AccountToken Account 為核心的健全框架。此架構提供了在 Solana 區塊鏈上管理和操作各種代幣所需的所有功能。

Solana Token Program

Token Program 結構示意圖 Token Program 是由 Solana Program Library(SPL)提供的程式帳戶,其 AccountInfo 中的 Executable 欄位為 True

與 System Program 類似,Token Program 部署於 Solana 上的固定地址,其擁有者為 BPF Loader。作為強大的程式帳戶,它實作了許多指令以提供多樣化的代幣功能。例如,部分指令用於建立 Mint Account 以初始化新代幣,或建立 Token Account 以記錄特定地址持有的代幣數量。其他指令則用於執行基本的代幣操作,例如用於增加代幣供應量的 MintTo 指令,或用於在兩個地址之間轉移代幣的 Transfer 指令。

需要特別注意的是,由於 Token Program 負責建立 Mint Account 與 Token Account,它也是這些帳戶的擁有者,從而掌控它們的生命週期與資料。

Mint Account 結構

Mint Account 結構示意圖 Mint Account 是一種資料帳戶,其 AccountInfo 中的 Executable 欄位為 False。在 Solana 上,每種唯一的代幣(例如 USDC、RAY 等)對應一個單一的 Mint Account。此帳戶儲存了關鍵資訊,例如代幣的總供應量、小數位數,以及擁有鑄造(建立新代幣)或銷毀(銷毀代幣)權限的帳戶地址。

Token Account 結構

Token Account 記錄了個人或其他程式持有的特定代幣數量。對於每種代幣,每個持有該代幣的實體都有一個對應的 Token Account。例如,若一位使用者持有五種不同的 SPL 代幣,他們將擁有五個不同的 Token Account,每種代幣類型各一個。

Token Account 是一種資料帳戶,其 AccountInfoData 欄位通常由三個關鍵子欄位組成:

  • Mint: 對應此特定 Token Account 的 Mint Account 地址,用於識別其持有的代幣類型。
  • Owner: 擁有從此 Token Account 轉移代幣權限的帳戶公鑰。這是代幣的真正「擁有者」。
  • Amount: 此 Token Account 中當前持有的代幣數量。

Token Account 結構示意圖 需要特別強調的是,AccountInfo 中的 owner 欄位(決定誰可以修改帳戶資料)與 Token Account Data 中的 owner 欄位(指定誰擁有代幣)是完全不同的概念。前者是 Solana 帳戶的通用屬性,而後者則是 SPL Token Account 所特有的。

將這些概念串聯起來,我們可以透過下方的帳戶關係圖來視覺化呈現。System Program 與 Token Program 均部署於區塊鏈上唯一的固定地址,並作為核心程式庫運作。一個錢包帳戶可持有多個 Token Account,並且是這些 Token Account 中代幣的真正「擁有者」。相同類型的 Token Account 中的 Mint 欄位指向該代幣唯一的 Mint Account,其中記錄了代幣總供應量等資訊。

Solana 帳戶關係圖
Solana 帳戶關係圖

使用 Phalcon Explorer 分析 Solana 交易

雖然 Solscan 等傳統瀏覽器提供了有價值的資料,但在呈現詳細的 Solana 交易分析資訊時,有時可能不夠直觀。讓我們先在 Solscan 中查看一筆交易,再看看 BlockSec 的 Phalcon Explorer 如何提供更清晰、更全面的視圖。

在 Solscan 中查看 Token Account

我們可以使用 Solscan 查看此範例交易中 Token Account 的變化:

Solscan 代幣餘額變化視圖 Address 欄列出了交易中涉及的所有 Token Account。Owner 欄顯示了代幣的真正「擁有者」(即 Token Account Data 欄位中的 owner)。Token 欄對應當前代幣的 Mint Account。我們可以點擊第一行右側的「$SON」以查看更多詳情:

Solscan 代幣概覽摘要 Profile Summary 中的 Owner Program 表示當前 Mint Account 的擁有者是 Token Program。至此,我們已在 Solscan 中比對了全部三種類型的帳戶。

然而,Solscan 的這種顯示方式可能會造成一定的誤導。例如,在上一張圖片中,無法清楚判斷第一行中餘額增加的部分究竟屬於地址 CHS9WajyFfuaAZRk2JC7hRJvPHXmG5fC94gtAPbnLjuY 還是 Raydium Authority V4。這種模糊性增加了使用者理解交易真實流向的難度。此外,讀者可能還會注意到,SOL 代幣與其他代幣在 Solscan 中分開顯示。雖然這種分開顯示在技術上是合理的,但若能將它們統一呈現在同一個代幣區塊中,以便整體了解資產變化,會更易於理解。

Phalcon Explorer 不僅解決了這些問題,還為詳細的 Solana 交易分析引入了許多其他創新功能。現在讓我們使用 Phalcon Explorer 來檢視同一筆交易。

我們強烈建議您開啟 Phalcon Explorer 中該交易的連結,並跟隨我們的步驟一起進行分析。這種互動方式將幫助您更好地理解交易細節,並體會 Phalcon Explorer 在 Solana 交易分析方面的強大功能!

開始使用 Phalcon Explorer

深入解析交易,洞察先機

立即免費試用

在 Phalcon Explorer 中查看與分析交易

Phalcon Explorer 交易概覽 在頁面左上角,您可以看到當前交易已被識別為 JITO MEV 交易,這對安全分析師來說是一項有價值的資訊。如有需要,您也可以點擊交易簽名旁的 Solana 圖示,直接跳轉至 Solscan。

此 Solana 交易的資訊在邏輯上分為四個關鍵區塊:基本資訊資金流向餘額變化調用流程。您可以點擊右上角的圖示,在這些區塊之間無縫切換,以便進行全面的 Solana 交易分析。

基本資訊

Phalcon Explorer 基本資訊區塊 基本資訊區塊提供了當前 Solana 交易的基本詳情。您可以點擊區塊編號和簽名者地址,跳轉至 Solscan 進行交叉驗證或取得進一步背景資訊。在深入了解交易執行細節之前,此區塊提供了快速概覽。

資金流向

Phalcon Explorer 資金流向區塊 資金流向區塊以清晰的視覺化方式呈現了交易執行期間資金的移動情況與時間順序,使 Solana 交易分析更加直觀:

  • 交易發起者和簽名者 59vLEsmV5VCCGTxjHCoRiXkNgHDVcq7dGx98v9HCn2F 首先將一定數量的代幣轉移至標記為 Raydium Authority V4 的地址。
  • 接著,Raydium Authority V4 將約 6.747 個 Wrapped SOL 代幣轉回給簽名者 59vLEsmV5VCCGTxjHCoRiXkNgHDVcq7dGx98v9HCn2F
  • 最後,簽名者向 Jito 提供了 0.000003 SOL 作為小費,支付給 Jito 驗證者以執行該交易,這表明存在 MEV 相關活動。

以下是 Solscan 的資金流向圖以供比較。與 Solscan 相比,Phalcon Explorer 資金流向圖中的每個地址唯一對應一個節點,使得識別地址之間的關係更加容易,從而提升了分析效率,尤其對於複雜的 Solana 交易而言更為明顯。

Solscan 資金流向圖 如果您希望對交易的資金流向進行更深入的分析,例如用於事件響應或鑑識調查,可以點擊右上角的棕色圖示進入 MetaSleuth,這是 BlockSec 的進階鏈上分析工具。

探索 MetaSleuth 調查功能

追蹤資金流向,建立調查證據

立即免費試用

餘額變化

Phalcon Explorer 餘額變化區塊 餘額變化區塊清晰地呈現了 Solana 交易結束後不同帳戶的代幣變化情況。這種統一視圖對於 Solana 交易分析而言是一大優勢。

例如,交易簽名者 59vLEsmV5VCCGTxjHCoRiXkNgHDVcq7dGx98v9HCn2F 發生了三種代幣的變化:原生代幣 SOL、名為 61Hh8Udg7zruvG3BhyNiHF4UmULnC8reB9RBFtwi8uKp 的代幣(可能是 SPL 代幣),以及 Wrapped SOL 代幣。

餘額變化中出現的每個帳戶地址都關聯著一個或多個 Token Account。點擊對應地址,您可以複製該地址或跳轉至 Solscan 取得更多背景資訊。

Phalcon Explorer 在此視圖中不區分 SOL 代幣與其他 SPL 代幣,直接反映特定帳戶所有代幣的變化情況。這種統一的呈現方式使得視覺化 Token Account 與其擁有者之間的關係更加容易,為 Solana 交易期間的資產移動提供了更完整的全貌。

調用流程

Phalcon Explorer 調用流程區塊 調用流程記錄了交易指令的執行過程,每一行對應 Solana 交易期間執行的一條指令。此區塊對於理解智能合約互動或程式呼叫中精確的操作順序至關重要。

在此,我們重點關注第 2 條和第 4 條指令,它們涉及代幣轉移。

第二條指令呼叫 Raydium AMMswapBaseIn 來賣出代幣。展開此指令可以看到它由兩條 CPI(跨程式調用)指令組成,這些指令促成了 Raydium Authority V4 與交易簽名者之間的代幣轉移。第四條指令是簽名者向 Jito 支付小費的過程,確認了該交易的 MEV 性質。

如下圖所示,透過點擊每條指令後面的 Accounts 標籤,我們可以查看該特定指令所涉及的所有帳戶。與 Solscan 相比,此顯示方式更加簡潔,使分析師能夠聚焦於交易中更關鍵的資訊,而不會被無關細節所干擾。這種細粒度的視圖對於深入的 Solana 交易分析和除錯至關重要。

Phalcon Explorer 調用流程帳戶標籤
Phalcon Explorer 調用流程帳戶標籤

結論

在本文中,我們首先介紹了 Solana 代幣的實作原理,涵蓋原生 SOL、Token Program、Mint Account 與 Token Account。接著,我們使用 Solscan 檢視了特定交易中 Token Account 的變化,並指出了其部分局限性。最後,我們使用 BlockSec 的 Phalcon Explorer 對同一筆 Solana 交易進行了更深入、更全面的分析,展示了其為 Solana 交易分析提供卓越清晰度與洞察力的創新功能。

「Solana 簡化指南」系列至此告一段落。希望本系列能幫助您理解 Solana 的核心概念與實際交易分析。如果您還有其他想了解的主題,例如特定安全事件、生態系統介紹或其他 BlockSec 產品,歡迎留言!🫡

閱讀本系列其他文章:

Go Deeper with MetaSleuth Investigation

Extend your crypto compliance capabilities with Blocksec's MetaSleuth Investigation, the first platform for tracing funds, mapping transaction networks and revealing hidden on-chain relationships.

Move from detection to resolution faster with clear visual insights and evidence-ready workflows across the digital assets ecosystem.

MetaSleuth Investigation

Visualize Transactions With Phalcon Explorer

Use the Most Trusted Multi-Chain Explorer. Dive into Transactions to Act Wisely.

Phalcon Explorer