引言
Solana 區塊鏈的交易生命週期始於使用者與去中心化應用(DApp)的互動。DApp 作為 Web3 的門戶,將使用者的操作轉換為區塊鏈可理解的訊息。理解錢包如何管理公私鑰、簽署交易,DApp 如何組裝指令並發送交易,以及 Solana 如何儲存和管理狀態,是掌握 Solana 運作的核心。本篇將簡明介紹這些過程,幫助你了解 Solana 的交易流程。
提醒讀者:如果您尚未閱讀過或想先了解 Solana 的基本運作流程,建議先參考 **由 Transaction 的生命週期看 Solana 的底層架構 ,**這將有助於您更好地理解本篇深入探討的技術細節。
@Albert Cheng
1. 公私鑰系統與錢包運作 : Solana 的安全基石
在 Solana 區塊鏈中,錢包是用戶管理資產並與區塊鏈互動的關鍵工具,而公私鑰系統則是錢包運作的核心基礎。理解公私鑰的生成與管理,有助於掌握錢包如何保護資產並保障交易的安全性。
1.1 公私鑰生成與錢包管理
- 公鑰:公鑰就像是銀行帳號,是用來接收資金的唯一識別符號。在 Solana 中,錢包應用使用 Ed25519 橢圓曲線數位簽章演算法來生成公鑰。生成後的公鑰會作為您的帳戶地址,通常以 Base58 編碼表示,例如:
FDKJvWcJNe6wecbgDYDFPCfgs14aJnVsUfWQRYWLn4Tn
。這個地址是公開的,任何人都可以通過這個地址向您發送資產。
- 私鑰:私鑰則可以比作提款卡密碼,是保護您帳戶安全的核心工具。它由錢包生成並安全存儲在您的設備中,私鑰永遠不會離開您的控制範圍。只有擁有私鑰的人才能進行交易授權,意味著掌握私鑰的人擁有完全控制該帳戶的權限。
- Keypair(密鑰對):密鑰對由公鑰和私鑰組成,前 32 字節是公鑰,後 32 字節是私鑰。就像銀行帳號和密碼的組合一樣,公鑰用於接收資產,私鑰用於保護和操作您的資產。錢包透過管理這對密鑰,讓使用者可以安全地查看並操作自己的帳戶,確保每筆交易的安全性和合法性。
在 Terminal 中,我們可以利用 solana-keygen 去生成密碼對,可由上方觀察到 json 檔中,共64字節,前 32 是公鑰,後 32 是私鑰。
1.2 錢包的運作流程
錢包應用在日常使用中,扮演著多重角色,包括生成密鑰、管理帳戶、簽署交易以及與 DApp 進行交互。以下是錢包的核心運作流程:
- 密鑰管理:當使用者設置錢包時,應用會自動生成一對公私鑰並將其安全地存儲。私鑰被加密保護,並且通常會通過助記詞(mnemonic phrase)進行備份,這樣在用戶更換設備或重新安裝錢包時,可以通過助記詞恢復帳戶。
- 帳戶查看與管理:錢包允許使用者查看他們的公鑰(即帳戶地址)和資產狀態。這些信息通常是錢包界面的核心部分,用戶可以隨時查看帳戶中的 SOL 代幣和其他資產的餘額。
- 交易簽署與發送:當使用者在 DApp 中發起一筆交易時,交易數據會被傳遞到錢包中進行簽署。錢包使用私鑰對交易進行簽名,然後將簽名附加在交易數據上。這一步確保了交易的合法性和安全性,並防止未經授權的操作。簽署完成後,錢包會將簽署好的交易返回 DApp,然後通過 RPC(遠端程式呼叫)發送到 Solana 區塊鏈網路。
1.3 EVM v.s. Solana Address