精品精品国产手机自在线观|九九热思思精品视频|中文字幕aⅴ专区|黄国产成年人精品

    當(dāng)前位置:區(qū)塊鏈 >區(qū)塊鏈 > Solana 科普:認(rèn)識賬戶、Token、交易與資產(chǎn)安全

    Solana 科普:認(rèn)識賬戶、Token、交易與資產(chǎn)安全

    更新時間:2024-01-08 13:09:26 | 作者:佚名
    作者:enze,慢霧科技 Solana是一種快速且高度可擴(kuò)展的區(qū)塊鏈協(xié)議,為去中心化應(yīng)用(DApps)提供了強(qiáng)大的基礎(chǔ)設(shè)施。近期Solana生態(tài)復(fù)蘇引發(fā)廣泛關(guān)注,本文將介紹Solana賬戶、Token、交易,以及如何在這個生態(tài)中保障資產(chǎn)安全。 Solana賬戶 了解賬戶是保障資產(chǎn)安全的第一步。與以太坊中的賬戶不同,在Solana中,賬戶的主要作用是存儲數(shù)據(jù)。...

    作者:enze,慢霧科技

    Solana 是一種快速且高度可擴(kuò)展的區(qū)塊鏈協(xié)議,為去中心化應(yīng)用(DApps) 提供了強(qiáng)大的基礎(chǔ)設(shè)施。近期 Solana 生態(tài)復(fù)蘇引發(fā)廣泛關(guān)注,本文將介紹 Solana 賬戶、Token、交易,以及如何在這個生態(tài)中保障資產(chǎn)安全。

    Solana 賬戶

    了解賬戶是保障資產(chǎn)安全的第一步。與以太坊中的賬戶不同,在 Solana 中,賬戶的主要作用是存儲數(shù)據(jù)。

    Solana 中的賬戶主要分為三種類型:

    • 數(shù)據(jù)賬戶:用于存儲數(shù)據(jù)。

    • 程序賬戶:用于存儲可執(zhí)行程序。

    • 原生賬戶:指 Solana 上的原生程序,例如 System、Stake 以及 Vote。

    其中,數(shù)據(jù)賬戶可進(jìn)一步分為兩類:

    • 系統(tǒng)所有賬戶:由 Solana 上的原生程序生成的賬戶。

    • 程序派生賬戶(PDA):簽名權(quán)限是程序的帳戶,因此不像其他帳戶那樣受私鑰控制。

    每個賬戶都有一個地址(一般情況下是一個公鑰)以及一個所有者(程序賬戶的地址)。前者與以太坊上的類似,后者可以簡單理解為創(chuàng)建該賬戶的程序。

    普通用戶通過錢包生成的賬戶屬于數(shù)據(jù)賬戶中的系統(tǒng)所有賬戶,默認(rèn)的賬戶所有者是系統(tǒng)程序。我們可以簡單理解為:用戶通過系統(tǒng)程序生成了一個系統(tǒng)所有賬戶,這個賬戶存儲了用戶的基本信息和資產(chǎn)等數(shù)據(jù),而這個賬戶擁有一個地址(也就是公鑰)。

    以 Solana Explorer 為例,普通用戶使用的賬戶,即系統(tǒng)所有賬戶,在瀏覽器上的展示如下圖:

    Assigned Program Id 代表賬戶的所有者,Allocated Data Size 表示賬戶已存儲的數(shù)據(jù)大小,Executable 表示賬戶是否可執(zhí)行,通常只有程序賬戶是可執(zhí)行的。普通用戶只需關(guān)注賬戶的地址。

    通過以上內(nèi)容,我們已經(jīng)對 Solana 賬戶有了初步的了解,接下來我們來認(rèn)識下 Solana Token。

    Solana Token

    SPL-Token 代表 Solana 網(wǎng)絡(luò)上的所有非本地代幣,包括同質(zhì)代幣和非同質(zhì)代幣(NFT)。

    與 ERC20 和 ERC721 代幣類似,SPL 代幣 在 Solana 上發(fā)行和交易,而其與以太坊的區(qū)別是:

    在 Solana 中,Token 的發(fā)行人通過 Solana 上的原生程序 token-program 創(chuàng)建一個 mint-account,并在這個賬戶中存儲 Token 的基本信息。例如,Solana Explorer 上的 USDC 的 mint-account 地址為 EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v。瀏覽器中顯示了有關(guān) USDC Token Mint 的詳細(xì)信息,包括當(dāng)前代幣供應(yīng)量、鑄幣和凍結(jié)權(quán)限的地址以及代幣的小數(shù)精度。

    接下來,讓我們了解一下什么是 token-account。

    在 Solana 上,每個 Token 持有者都有一個特定的 token-account,記錄了該持有者特定 Token 的余額和相關(guān)信息。例如,Alice 同時擁有 USDT 和 USDC 兩種 Token,她將分別擁有兩個 token-account,其中一個記錄 USDT 的余額,另一個記錄 USDC 的余額。

    那么如何查看自己的 token-account 呢?

    我們可以使用 Solana Beach 瀏覽器,通過輸入數(shù)據(jù)賬戶的地址,點擊 Portfolio,就可以清晰地看到每個 token-account,每個賬戶記錄著特定 Token 的余額。

    通過 Solana Beach 瀏覽器,還能查看每個賬戶記錄的 Token 信息,授權(quán)情況等詳細(xì)信息。

    Solana 交易

    在 Solana 上,每筆交易都包含以下關(guān)鍵信息:

    • Instructions(指令):一個或多個指令,定義了交易中的操作,例如轉(zhuǎn)賬、程序交互、Token 轉(zhuǎn)賬等。

    • Blockhash(塊哈希):包含了最新的塊哈希值,用于確保交易在正確的塊上執(zhí)行。

    • Signatures(簽名):一個或多個簽名,表示交易的授權(quán)。每個簽名對應(yīng)著交易中的一個簽名賬戶,確保只有授權(quán)的賬戶可以執(zhí)行這筆交易。

    Solana 上的一筆交易可以包含多個指令,這意味著可以在同一筆交易中執(zhí)行多個不同的操作,例如用戶可以將多筆轉(zhuǎn)賬指令打包到同一個交易中,這些指令將按順序執(zhí)行。如果交易中的任何一個指令失敗,整個交易都將失敗。

    Solana 的交易記錄與以太坊略有不同,我們來看下如何有效閱讀 Solana 上的交易記錄。

    SOL 轉(zhuǎn)賬交易

    對于 Solana 上的交易記錄,我們以 SOLSCAN 瀏覽器為例,關(guān)注以下主要信息:

    • Signature(簽名):類似于交易哈希,在交易記錄中將交易的第一個簽名作為交易的索引。

    • Result(結(jié)果):交易的執(zhí)行結(jié)果,表明交易是否成功。

    • Signer(簽名者):執(zhí)行交易的賬戶地址,即簽名者的地址。

    • Main Actions(主要操作):交易中包含的主要操作指令,可以是轉(zhuǎn)賬,程序調(diào)用等。

    • Instruction Details(指令詳情):交易中執(zhí)行的具體操作指令。

    我們在 Main Actions 中可以看到轉(zhuǎn)賬雙方的賬戶地址。

    在 Instruction Details 中,我們可以看到 SOL 轉(zhuǎn)賬交易的主要指令是 SOL Transfer,該指令旨在進(jìn)行 SOL 的轉(zhuǎn)賬。通過詳細(xì)查看該指令的詳情,我們可以獲得有關(guān)該指令調(diào)用的程序,以及涉及到的轉(zhuǎn)賬雙方的賬戶地址等信息。

    Token 轉(zhuǎn)賬交易

    以下交易是 USDT 的轉(zhuǎn)賬,與 SOL 交易類似。

    在 Instruction Details 部分,Token 交易通常首先調(diào)用 Create Associated Account 指令,為接收方創(chuàng)建一個 Token 賬戶(如果接收方尚未有相應(yīng)賬戶),用于存儲 USDT 余額等數(shù)據(jù)。

    接著執(zhí)行 Token Transfer 指令,完成 USDT 的轉(zhuǎn)賬。值得注意的是,與 SOL Transfer 指令不同,Token Transfer 指令中的 Source 和 Destination 不代表轉(zhuǎn)賬雙方的直接賬戶地址,而是它們的 Token 賬戶(PDA 賬戶),這點需要特別注意。

    Swap 交易

    下面是一筆 Swap 交易,用戶將 USDT 兌換為 USDC。

    多個指令交易

    在包含多個指令的 Solana 交易中,涉及 SOL 的轉(zhuǎn)賬、Swap 交易以及 Token 的轉(zhuǎn)賬等多個操作。

    即便有多個指令,我們?nèi)匀荒軌蛲ㄟ^ Instruction Details 查看交易執(zhí)行的詳細(xì)指令,了解每個步驟的具體操作。

    資產(chǎn)安全

    俗話說,知己知彼,百戰(zhàn)不殆。我們已經(jīng)初步了解了 Solana 上的賬戶、Token 和交易。為規(guī)避資產(chǎn)被盜的風(fēng)險,我們需要深入了解在使用 Solana 錢包時可能面臨的風(fēng)險。

    私鑰和助記詞泄露

    根據(jù)慢霧區(qū)塊鏈被黑檔案庫(https://hacked.slowmist.io) 統(tǒng)計,2023 年 9 起私鑰泄露安全事件導(dǎo)致的損失就高達(dá) 8475 萬美元。在慢霧 AML 團(tuán)隊處理的被盜案件中,私鑰和助記詞泄露導(dǎo)致資產(chǎn)被盜的事件占據(jù)了相當(dāng)大的比例。因此,要保證 Solana 錢包上資產(chǎn)的安全,最重要的是管理好錢包私鑰和助記詞。

    使用錢包

    在錢包使用過程中,簽名是最需要關(guān)注的安全風(fēng)險之一,尤其需要特別注意在 Solana 上與項目互動時所簽名的信息。

    而且,Solana 允許將多筆轉(zhuǎn)賬打包成一個交易,也即只需一次簽名即可將錢包中的所有資產(chǎn)一次性轉(zhuǎn)移。

    下面我們來看一個實際案例:

    某位受害者在一個釣魚網(wǎng)站上誤操作,僅僅點擊了一次確認(rèn),導(dǎo)致錢包中的所有資產(chǎn)被一次性轉(zhuǎn)走。究竟是什么操作讓受害者只是簽了一次名就能讓黑客將所有資產(chǎn)轉(zhuǎn)走呢?

    是的,黑客利用了上文提到的機(jī)制和錢包的一個特點:

    受害者使用的是 Phantom Wallet,這款錢包能夠?qū)⒍喙P轉(zhuǎn)賬指令打包成一個交易,僅需一次簽名即可完成整個過程。恰恰是這一功能成為黑客利用的突破口,導(dǎo)致受害者在一次簽名中失去了所有資產(chǎn)。在使用錢包時,請用戶務(wù)必謹(jǐn)慎確認(rèn)每一次簽名的操作,以免遭受損失。

    Phantom Wallet 的官方文檔中也明確介紹了這一關(guān)鍵功能:

    總結(jié)

    在本期 Solana 科普文章中,我們首先了解了 Solana 賬戶的基礎(chǔ)知識;接著深入研究了 Solana Token 的基本概念;隨后探討了在 Solana 上進(jìn)行交易的相關(guān)內(nèi)容。在保障錢包資產(chǎn)安全的部分,我們強(qiáng)調(diào)了私鑰和助記詞的安全保存,建議用戶閱讀慢霧出品的《區(qū)塊鏈黑暗森林自救手冊》:https://github.com/slowmist/Blockchain-dark-forest-selfguard-handbook/blob/main/README_CN.md 以獲取更多安全建議;在使用錢包時,請用戶務(wù)必小心確認(rèn)每一次簽名的操作,避免遭受損失。此外,閱讀錢包文檔中的安全提示至關(guān)重要,時刻保持警惕是保障資產(chǎn)安全的關(guān)鍵。

    本站提醒:投資有風(fēng)險,入市須謹(jǐn)慎,本內(nèi)容不作為投資理財建議。