著者:enze、Slow Mist Technologies
Solanaは、分散型アプリケーション(DApps)に堅牢なインフラを提供する、高速で拡張性の高いブロックチェーンプロトコルです。この記事では、Solanaアカウント、トークン、トランザクション、そしてこのエコシステムで資産を保護する方法について見ていきます。
ソラナアカウント
アカウントを理解することは、資産を確保するための第一歩です。Etherのアカウントとは異なり、Solanaではアカウントの主な役割はデータを保存することです。
Solana のアカウントには主に3つの種類があります:
Data accounts: データを保存するために使用されます。
プログラムアカウント:実行可能なプログラムを保存するために使用されます。
ネイティブアカウント: System、Stake、Voteなど、Solana上のネイティブプログラムを指します。
このうち、データアカウントはさらに2つのカテゴリに分けられます:
各アカウントは、所有者(プログラムアカウントのアドレス)と同様に、アドレス(通常は公開鍵)を持っています。前者はイーサ上のものと似ており、後者は単純にアカウントを作成したプログラムと理解できます。
一般ユーザーがウォレットを通じて生成したアカウントは、データアカウントのシステム所有アカウントに属し、デフォルトのアカウント所有者はシステムプログラムです。ユーザーがシステムプログラムを通してシステム所有のアカウントを生成し、そのアカウントはユーザーの基本情報や資産などのデータを保存し、このアカウントはアドレス(公開鍵としても知られている)を所有していると簡単に理解できます。
ソラナエクスプローラーを例にとると、通常のユーザーが使用するアカウント、つまりシステム所有のアカウントは、以下のようにブラウザ上に表示されます。
Assigned Program Idはアカウントの所有者を表し、Allocated Data Sizeはアカウントに保存されているデータのサイズを表し、Executableはアカウントが実行可能かどうかを表し、通常はプログラムアカウントのみが実行可能です。通常、プログラムアカウントのみが実行可能であり、通常のユーザーはアカウントのアドレスのみに注目すればよい。
以上で、Solanaアカウントについての予備知識を得ました。
Solanaトークン
SPL-Tokenは、同種トークンを含む、Solanaネットワーク上のすべての非ローカルトークンを表します。トークンは、同種のトークンと非同種のトークン(NFT)の両方を含みます。
ERC20およびERC721トークンと同様に、SPL-TokenはSolana上で発行され、取引されます。align: left;">Solanaでは、トークンの発行者はSolana上のネイティブトークンプログラムを通じてミントアカウントを作成し、トークンに関する基本情報をこのアカウントに保存します。例えば、Solana Explorer上のUSDCのミントアカウントアドレスはEPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1vです。エクスプローラーには、現在のトークン供給量、造幣局および凍結局のアドレス、トークンの10進数精度など、USDCトークン造幣局に関する詳細情報が表示されます。アドレス、トークンの10進数精度が表示されます。
次に、トークン・アカウントとは何かを理解しましょう。
Solanaでは、各トークンホルダーは特定のトークンを持っています。例えば、アリスがUSDTとUSDCの両方のトークンを持っている場合、彼女は2つのトークンアカウントを持つことになります。
では、自分のトークンアカウントを確認するにはどうすればいいのでしょうか?
ソラナビーチブラウザを使って、データアカウントのアドレスを入力し、ポートフォリオをクリックすると、各トークンアカウントをはっきりと見ることができます。
Solana Beach Browserを使えば、各アカウントに記録されているトークン情報やオーソリゼーションなどの詳細情報を見ることもできます。
Solanaのトランザクション
Solanaでは以下のようになります。
Instructions: 送金、プログラムインタラクション、トークン転送など、トランザクションのアクションを定義する1つ以上のインストラクション。
ブロックハッシュ:最新のブロックハッシュ値を含み、トランザクションが正しいブロック上で実行されることを保証するために使用されます。
署名:取引の認可を示す1つ以上の署名。各署名はトランザクション内の署名されたアカウントに対応し、承認されたアカウントのみがトランザクションを実行できることを保証します。
Solana上のトランザクションには複数の命令を含めることができます。これは、同じトランザクション内で複数の異なるアクションを実行できることを意味します。トランザクション内の1つの命令が失敗すると、トランザクション全体が失敗します。
SolanaのトランザクションログはEtherとは少し異なるので、Solanaでトランザクションログを効果的に読む方法を見てみましょう。
SOL転送トランザクション
Solanaでのトランザクションロギングについては、SOLSCANブラウザを例にして、以下の重要な情報に注目してみましょう:
Signature (署名)(署名):トランザクションハッシュと同様に、トランザクションの最初の署名は、トランザクションログ内のトランザクションへのインデックスとして使用されます。
結果(Result): トランザクションの実行結果で、トランザクションが成功したかどうかを示す。
Signer: トランザクションが実行された口座のアドレス、つまり署名者のアドレス。
Main Actions(メイン・アクション):トランザクションに含まれるメイン・アクション命令で、転送、プロシージャ呼び出しなどがあります。
命令詳細:トランザクション内で実行される特定の命令。
「メインアクション」では、送金の両当事者の口座アドレスを確認できます。
Instruction Detailsでは、SOL TransferトランザクションのメインインストラクションがSOL Transferであることがわかります。インストラクションの詳細を見ると、インストラクションによって呼び出されるプロシージャと、送金に関与する2つの当事者のアカウントアドレスに関する情報を得ることができます。
トークン送金取引
以下の取引はUSDT送金です。トランザクションはUSDTの転送で、SOLトランザクションと似ています。
Instruction Detailsセクションで、Token取引は通常、Create Associated Accountコマンドの呼び出しから始まります。これはUSDT残高などのデータを保存するために使用されます。
その後、USDTを転送するためにToken Transferコマンドが実行されます。SOL Transferコマンドとは異なり、Token TransferコマンドのSourceとDestinationは、転送当事者の直接の口座アドレスではなく、トークン口座(PDA口座)を表していることは注目に値します。
Swap Transaction
以下は、ユーザーがUSDTをUSDCに交換するSwapトランザクションです。
Swap Transaction
以下は、ユーザーがUSDTをUSDCに交換するSwapトランザクションです。
複数のインストラクション取引
Solana取引では、次のような複数のインストラクションが含まれます。SOL転送、スワップ取引、トークン転送を含む複数の指示を含むSolanaトランザクション。
複数のインストラクションがある場合でも、インストラクションの詳細からトランザクションの詳細なインストラクションを表示し、各ステップが何を行うかを確認することができます。
資産セキュリティ
「敵を知り己を知れ」ということわざがあります。私たちはSolana上のアカウント、トークン、トランザクションを最初に見てきました。資産盗難のリスクを回避するためには、Solanaウォレットを使用する際に直面する可能性のあるリスクをより深く理解する必要があります。
プライベートキーとヘルパーのリーク
Slow Fog Blockchain Hacked Archive(https://hacked.slowmist.io)によると、2023年に9件のプライベートキーの危殆化セキュリティインシデントが発生し、それだけで8,475万ドルの損失が発生しています。資産の盗難につながる秘密鍵やニーモニックの漏洩は、Slow Fog AMLチームが扱う盗難事件のかなりの割合を占めています。したがって、Solanaウォレット内の資産のセキュリティを確保するためにできる最も重要なことは、ウォレットの秘密鍵とニーモニックを管理することです。
ウォレットの使用
署名は、ウォレットを使用する際に最も注意すべきセキュリティリスクの1つであり、Solana上のプロジェクトとやり取りする際には、署名される情報に特に注意を払う必要があります。
さらに、Solanaでは複数の送金を1つのトランザクションにまとめることができます。つまり、ウォレット内のすべての資産を一度に送金するには1つの署名が必要です。
実際の例を見てみましょう。
あるフィッシングサイトの被害者が、確認のために間違って1回だけクリックしてしまい、その結果、ウォレット内のすべての資産が1回で送金されてしまいました。ハッカーがすべての資産を送金するために、被害者がたった一度だけサインできるようにした操作とは一体何だったのでしょうか?
そうです。
被害者はファントムウォレットを使用していました。ファントムウォレットは、複数の送金指示を1つのトランザクションにパッケージ化する機能を備えており、プロセス全体を完了するのに必要な署名は1つだけです。ハッカーが悪用する突破口となったのはまさにこの機能で、被害者は1回の署名ですべての資産を失うことになりました。
ウォレットを使用する際、ユーザーは損失を避けるために各署名操作を確認するよう注意しなければなりません。
この重要な機能は、Phantom Walletの公式ドキュメントにも明確に記載されています:
Phantom Walletの公式ドキュメントには、次のように記載されています。: 28px;">まとめ
今回のSolana Scienceでは、まずSolanaアカウントの基本について見て、次にSolana Tokenの基本的なコンセプトを掘り下げ、そしてSolanaでの取引に関係することを探りました。ウォレット資産の保護に関するセクションでは、秘密鍵と補助語の安全な保管を強調し、ユーザーにSlow Mistが作成した「Blockchain Dark Forestセルフヘルプマニュアル」を読むことを推奨する。https://github.com/slowmist/Blockchain-dark-forest-selfguard-handbook/blob/main/README_CN.md)を読むことを推奨する。ウォレットを使用する際は、損失を避けるために、各署名操作の確認に注意することを推奨する。さらに、ウォレットのドキュメンテーションにあるセキュリティのヒントを読むことが重要です。