Solana与以太坊区别解析:帐户、Token、交易资产对比

慢霧科技 Slow Mist2024-01-09 来源:加密信息网讯

内容提要:本文全面解析了Solana区块链的帐户结构、Token机制以及交易过程,并提供了在Solana生态中确保资产安全的方法。Solana的帐户分为资料帐户、程式帐户和原生帐户,其中资料帐户包含系统所有帐户和程式派生帐户(PDA)。Token方面,介绍了SPL-Token及其mint-account和token-account的概念,并通过Solana Explorer和Solana Beach浏览器展示了如何检视帐户和Token信息。在交易部分,强调了交易中的关键资讯如指令、块hash和签名,并通过SOLSCAN浏览器说明了如何阅读Solana上的交易记录。

深入理解Solana:帐户、Token、交易资产和以太坊有什么不同?

本文深入探讨 Solana 的帐户结构、Token 机制、交易过程,并指导如何在 Solana 生态中确保资产安全。

 

Solana 是一种快速且高度可扩展的区块链协议,为去中心化应用 (DApps) 提供了强大的基础设施。近期 Solana 生态复苏引发广泛关注,本文将介绍 Solana 帐户、Token、交易,以及如何在这个生态中保障资产安全。

Solana 帐户

了解帐户是保障资产安全的第一步。与以太坊中的帐户不同,在 Solana 中,帐户的主要作用是储存资料。

Solana 中的帐户主要分为三种类型:

  • 资料帐户:用于储存资料。
  • 程式帐户:用于储存可执行程式。
  • 原生帐户:指 Solana 上的原生程式,例如 System、Stake 以及 Vote。

其中,资料帐户可进一步分为两类:

  • 系统所有帐户:由 Solana 上的原生程式生成的帐户。
  • 程式派生帐户 (PDA):签名许可权是程式的帐户,因此不像其他帐户那样受私钥控制。

每个帐户都有一个地址(一般情况下是一个公钥)以及一个所有者(程式帐户的地址)。前者与以太坊上的类似,后者可以简单理解为建立该帐户的程式。

普通使用者通过钱包生成的帐户属于资料帐户中的系统所有帐户,预设的帐户所有者是系统程式。我们可以简单理解为:使用者通过系统程式生成了一个系统所有帐户,这个帐户储存了使用者的基本资讯和资产等资料,而这个帐户拥有一个地址(也就是公钥)。

以 Solana Explorer 为例,普通使用者使用的帐户,即系统所有帐户,在浏览器上的展示如下图:

Assigned Program Id 代表帐户的所有者,Allocated Data Size 表示帐户已储存的资料大小,Executable 表示帐户是否可执行,通常只有程式帐户是可执行的。普通使用者只需关注帐户的地址。

通过以上内容,我们已经对 Solana 帐户有了初步的了解,接下来我们来认识下 Solana Token。

Solana Token

SPL-Token 代表 Solana 网路上的所有非本地代币,包括同质代币和非同质代币 (NFT)。

与 ERC20 和 ERC721 代币类似,SPL 代币 在 Solana 上发行和交易,而其与以太坊的区别是:

在 Solana 中,Token 的发行人通过 Solana 上的原生程式 token-program 建立一个 mint-account,并在这个帐户中储存 Token 的基本资讯。例如,Solana Explorer 上的 USDC 的 mint-account 地址为 EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v。浏览器中显示了有关 USDC Token Mint 的详细资讯,包括当前代币供应量、铸币和冻结许可权的地址以及代币的小数精度。

接下来,让我们了解一下什么是 token-account。

在 Solana 上,每个 Token 持有者都有一个特定的 token-account,记录了该持有者特定 Token 的余额和相关资讯。例如,Alice 同时拥有 USDT 和 USDC 两种 Token,她将分别拥有两个 token-account,其中一个记录 USDT 的余额,另一个记录 USDC 的余额。

那么如何检视自己的 token-account 呢?

我们可以使用 Solana Beach 浏览器,通过输入资料帐户的地址,点选 Portfolio,就可以清晰地看到每个 token-account,每个帐户记录著特定 Token 的余额。

通过 Solana Beach 浏览器,还能检视每个帐户记录的 Token 资讯,授权情况等详细资讯。

Solana 交易

在 Solana 上,每笔交易都包含以下关键资讯:

  • Instructions(指令):一个或多个指令,定义了交易中的操作,例如转帐、程式互动、Token 转帐等。
  • Blockhash(块hash):包含了最新的块hash值,用于确保交易在正确的块上执行。
  • Signatures(签名):一个或多个签名,表示交易的授权。每个签名对应著交易中的一个签名帐户,确保只有授权的帐户可以执行这笔交易。

Solana 上的一笔交易可以包含多个指令,这意味著可以在同一笔交易中执行多个不同的操作,例如使用者可以将多笔转帐指令打包到同一个交易中,这些指令将按顺序执行。如果交易中的任何一个指令失败,整个交易都将失败。

Solana 的交易记录与以太坊略有不同,我们来看下如何有效阅读 Solana 上的交易记录。

SOL 转帐交易

对于 Solana 上的交易记录,我们以 SOLSCAN 浏览器为例,关注以下主要资讯:

  • Signature(签名):类似于交易hash,在交易记录中将交易的第一个签名作为交易的索引。
  • Result(结果):交易的执行结果,表明交易是否成功。
  • Signer(签名者):执行交易的帐户地址,即签名者的地址。
  • Main Actions(主要操作):交易中包含的主要操作指令,可以是转帐,程式呼叫等。
  • Instruction Details(指令详情):交易中执行的具体操作指令。

我们在 Main Actions 中可以看到转帐双方的帐户地址。

在 Instruction Details 中,我们可以看到 SOL 转帐交易的主要指令是 SOL Transfer,该指令旨在进行 SOL 的转帐。通过详细检视该指令的详情,我们可以获得有关该指令呼叫的程式,以及涉及到的转帐双方的帐户地址等资讯。

Token 转帐交易

以下交易是 USDT 的转帐,与 SOL 交易类似。

在 Instruction Details 部分,Token 交易通常首先呼叫 Create Associated Account 指令,为接收方建立一个 Token 帐户(如果接收方尚未有相应帐户),用于储存 USDT 余额等资料。

接著执行 Token Transfer 指令,完成 USDT 的转帐。值得注意的是,与 SOL Transfer 指令不同,Token Transfer 指令中的 Source 和 Destination 不代表转帐双方的直接帐户地址,而是它们的 Token 帐户(PDA 帐户),这点需要特别注意。

Swap 交易

下面是一笔 Swap 交易,使用者将 USDT 兑换为 USDC。

多个指令交易

在包含多个指令的 Solana 交易中,涉及 SOL 的转帐、Swap 交易以及 Token 的转帐等多个操作。

即便有多个指令,我们仍然能够通过 Instruction Details 检视交易执行的详细指令,了解每个步骤的具体操作。

资产安全

俗话说,知己知彼,百战不殆。我们已经初步了解了 Solana 上的帐户、Token 和交易。为规避资产被盗的风险,我们需要深入了解在使用 Solana 钱包时可能面临的风险。

私钥和助记词泄露

根据慢雾区块链骇客档案库统计,2023 年 9 起私钥泄露安全事件导致的损失就高达 8475 万美元。在慢雾 AML 团队处理的被盗案件中,私钥和助记词泄露导致资产被盗的事件占据了相当大的比例。因此,要保证 Solana 钱包上资产的安全,最重要的是管理好钱包私钥和助记词。

使用钱包

在钱包使用过程中,签名是最需要关注的安全风险之一,尤其需要特别注意在 Solana 上与专案互动时所签名的资讯。

而且,Solana 允许将多笔转帐打包成一个交易,也即只需一次签名即可将钱包中的所有资产一次性转移。

下面我们来看一个实际案例:

某位受害者在一个钓鱼网站上误操作,仅仅点选了一次确认,导致钱包中的所有资产被一次性转走。究竟是什么操作让受害者只是签了一次名就能让骇客将所有资产转走呢?

是的,骇客利用了上文提到的机制和钱包的一个特点:

受害者使用的是 Phantom Wallet,这款钱包能够将多笔转帐指令打包成一个交易,仅需一次签名即可完成整个过程。恰恰是这一功能成为骇客利用的突破口,导致受害者在一次签名中失去了所有资产。在使用钱包时,请使用者务必谨慎确认每一次签名的操作,以免遭受损失。

Phantom Wallet 的官方文件中也明确介绍了这一关键功能:

总结

在本期 Solana 科普文章中,我们首先了解了 Solana 帐户的基础知识;接著深入研究了 Solana Token 的基本概念;随后探讨了在 Solana 上进行交易的相关内容。在保障钱包资产安全的部分,我们强调了私钥和助记词的安全储存,建议使用者阅读慢雾出品的《区块链黑暗森林自救手册》以获取更多安全建议;在使用钱包时,请使用者务必小心确认每一次签名的操作,避免遭受损失。此外,阅读钱包文件中的安全提示至关重要,时刻保持警惕是保障资产安全的关键。

相关话题
相关资讯
您可能喜欢的标签
猜你喜欢

2JMTT.com Copyright ©加密头条 All Rights Reserved

加密头条,探索加密世界无限可能