Einleitung
Willkommen zur "Solana Simplified"-Reihe. Im ersten Artikel haben wir uns mit dem Betriebsmechanismus, dem Kontomodell und der Transaktionsstruktur von Solana beschäftigt. Im zweiten Artikel haben wir untersucht, wie man einen Solana-Programm in Rust schreibt, um Artikel zu veröffentlichen und anzuzeigen, und wie man ihn mithilfe eines in TypeScript geschriebenen Skripts testet.
Als dritter und letzter Teil dieser Reihe führt Sie dieser Artikel durch die Analyse einer einfachen Solana-Transaktion mithilfe von Phalcon Explorer. Bevor wir uns damit befassen, untersuchen wir zunächst, wie Token auf Solana implementiert werden.
Über Token
Token auf Solana lassen sich in zwei Kategorien einteilen: Native Token und Andere Token.
Native Token bezieht sich auf Solana Token (SOL). Wie im ersten Artikel erwähnt, hat jedes Konto auf Solana ein Lamports-Feld, das den SOL-Saldo auf dem Konto aufzeichnet. Lamports sind die kleinste Einheit von SOL (1 SOL = 1 Milliarde Lamports).
Für Andere Token verwendet Solana ein Programm-Konto (Token Program) und zwei Arten von Datenkonten (Mint Account und Token Account), um alle notwendigen Funktionalitäten für Token zu implementieren.
Token Program

Das Token Program ist ein Programm-Konto, das von der Solana Program Library (SPL) bereitgestellt wird, und daher ist das Executable-Feld seiner AccountInfo True.
Wie im ersten Artikel erwähnt, ist der Eigentümer aller Programm-Konten der BPF Loader, und das Token Program bildet da keine Ausnahme. Darüber hinaus wird das Token Program, ähnlich dem System Program, an einer festen Adresse auf Solana bereitgestellt.
Als Programm-Konto implementiert es viele Anweisungen, um verschiedene Funktionalitäten bereitzustellen. Zum Beispiel werden einige Anweisungen verwendet, um ein Mint-Konto zu erstellen, um einen neuen Token zu initialisieren, oder um ein Token-Konto zu erstellen, um die Anzahl der von einer bestimmten Adresse gehaltenen Token aufzuzeichnen. Andere Anweisungen bieten alle notwendigen Funktionalitäten für die Verwendung von Token, wie die MintTo-Anweisung zum Erhöhen des Token-Angebots oder die Transfer-Anweisung zum Übertragen von Token zwischen zwei Adressen.
Es ist wichtig zu beachten, dass das Token Program, da es für die Erstellung von Mint-Konten und Token-Konten verantwortlich ist, auch der Eigentümer dieser Konten ist.
Mint Account
Die Struktur eines Mint-Kontos ist wie folgt:

Das Mint-Konto ist ein Datenkonto, daher ist das Executable-Feld seiner AccountInfo False. Auf Solana entspricht jeder Token einem Mint-Konto. Das Mint-Konto speichert Informationen wie den Gesamtvorrat des Tokens und die Adresse des Kontos mit der Berechtigung, den Token zu prägen.
Token Account
Ein Token-Konto zeichnet die Menge eines bestimmten Tokens auf, die von einer Einzelperson gehalten wird. Für jede Art von Token hat jedes Konto, das diesen Token hält, ein entsprechendes Token-Konto. Wenn ein Benutzer fünf verschiedene Token hält, hat er fünf Token-Konten.
Ein Token-Konto ist ein Datenkonto, und das Data-Feld seiner AccountInfo besteht aus drei Unterfeldern:
- Mint: Die Adresse des Mint-Kontos, das diesem Token-Konto entspricht.
- Owner: Das Konto mit dem Recht, Token von dem Token-Konto zu übertragen, d. h. der eigentliche "Besitzer" der Token.
- Amount: Die Anzahl der Token, die derzeit im Token-Konto gehalten werden.
Es sollte betont werden, dass der Owner-Feld in AccountInfo und der Owner im Data-Feld völlig unterschiedlich sind. Ersteres ist ein Feld, das in jedem Konto auf Solana vorhanden ist und angibt, welche Adresse die Berechtigung hat, die Daten des aktuellen Kontos direkt zu ändern. Letzteres gibt an, wer tatsächlich die in dem Token-Konto aufgezeichneten Token besitzt, und ist Teil des AccountInfo Data-Feldes.
Wenn wir die oben genannten Konzepte verbinden, können wir das folgende Diagramm der Kontobeziehungen ableiten. Sowohl das System Program als auch das Token Program werden an eindeutigen Adressen auf der Blockchain bereitgestellt und existieren als Bibliotheken. Ein Wallet-Konto kann mehrere Token-Konten halten, und es ist der wahre "Besitzer" dieser Token-Konten. Das Mint-Feld in Token-Konten desselben Typs verweist auf das eindeutige Mint-Konto für diesen Token, das Informationen wie den Gesamtvorrat des Tokens aufzeichnet.
Token-Konten in Solscan anzeigen
Wir können Solscan verwenden, um die Änderungen an Token-Konten in dieser Transaktion anzuzeigen:

Die Spalte Adresse listet alle an der Transaktion beteiligten Token-Konten auf; die Spalte Owner gibt den wahren "Besitzer" des Tokens an, der der Owner im Token Account Data-Feld ist. Die Spalte Token entspricht dem Mint-Konto des aktuellen Tokens. Wir können auf den "$SON" auf der rechten Seite der ersten Zeile klicken, um weitere Details zu erhalten:

Das Owner Program in der Profilübersicht gibt an, dass der Eigentümer des aktuellen Mint-Kontos das Token Program ist. Bis jetzt haben wir alle drei Arten von Konten in Solscan zugeordnet.
Diese Anzeigeart in Solscan kann jedoch irreführend sein. Zum Beispiel ist im vorherigen Bild unklar, ob der erhöhte Saldo in der ersten Zeile der Adresse CHS9WajyFfuaAZRk2JC7hRJvPHXmG5fC94gtAPbnLjuY oder Raydium Authority V4 gehört. Eine solche Mehrdeutigkeit erschwert den Benutzern das Verständnis der Transaktion.
Darüber hinaus können Leser feststellen, dass SOL Token und andere Token in Solscan in separaten Abschnitten angezeigt werden. Während diese Trennung technisch sinnvoll ist, wäre es leichter zu verstehen, wenn sie unter einem einheitlichen Token-Abschnitt zusammen dargestellt würden.
Phalcon Explorer behebt nicht nur die oben genannten Probleme, sondern führt auch viele weitere Innovationen ein. Lassen Sie uns nun Phalcon Explorer verwenden, um dieselbe Transaktion zu untersuchen.
Wir empfehlen, den Link zu öffnen und unseren Schritten zu folgen, um ihn zu analysieren. So können Sie die Transaktionsdetails besser verstehen und die leistungsstarken Funktionen von Phalcon Explorer schätzen lernen 💪
Transaktionen in Phalcon Explorer anzeigen und analysieren

In der oberen linken Ecke der Seite sehen Sie, dass die aktuelle Transaktion als JITO MEV-Transaktion identifiziert wurde.
Sie können auch auf das Solana-Symbol neben der Transaktionssignatur klicken, um direkt zu Solscan zu gelangen. Die Informationen zu dieser Transaktion sind in vier Abschnitte unterteilt: Basic Info, Fund Flow, Balance Changes und Invocation Flow. Sie können zum jeweiligen Abschnitt wechseln, indem Sie auf die Symbole in der oberen rechten Ecke klicken.
Basic Info

Der Abschnitt "Basic Info" bietet einige wichtige Details zur aktuellen Transaktion. Sie können auf die Blocknummer und die Signaturadresse klicken, um zu Solscan zu gelangen.
Fund Flow

Der Abschnitt "Fund Flow" liefert Informationen über die Bewegung und den Zeitpunkt von Geldern während der Ausführung der Transaktion:
- Der Transaktionsinitiator und Unterzeichner, 59vLEsmV5VCCGTxjHCoRiXkNgHDVcq7dGx98v9HCn2F, hat zuerst einen bestimmten Betrag eines Tokens an die Adresse namens Raydium Authority V4 übertragen.
- Als nächstes hat Raydium Authority V4 ungefähr 6,747 Wrapped SOL Token zurück an den Unterzeichner, 59vLEsmV5VCCGTxjHCoRiXkNgHDVcq7dGx98v9HCn2F, übertragen.
- Schließlich hat der Unterzeichner 0,000003 SOL an Jito als Trinkgeld für den Jito-Validator für die Ausführung der Transaktion bereitgestellt.
Unten ist das Diagramm des Geldflusses von Solscan. Im Vergleich zu Solscan entspricht jede Adresse im Diagramm des Geldflusses von Phalcon Explorer eindeutig einem einzigen Knoten, was es einfacher macht, die Beziehungen zwischen Adressen zu identifizieren und somit die Analyseeffizienz zu verbessern.

Wenn Sie eine tiefere Analyse des Geldflusses der Transaktion durchführen möchten, können Sie auf das braune Symbol in der oberen rechten Ecke klicken, um MetaSleuth aufzurufen.
Balance Changes

Der Abschnitt "Balance Changes" zeigt deutlich die Token-Änderungen verschiedener Konten nach Abschluss der Transaktion an.
Zum Beispiel hatte der Unterzeichner der Transaktion, 59vLEsmV5VCCGTxjHCoRiXkNgHDVcq7dGx98v9HCn2F, Änderungen bei drei Arten von Token: dem nativen Token SOL, einem Token namens 61Hh8Udg7zruvG3BhyNiHF4UmULnC8reB9RBFtwi8uKp und Wrapped SOL Token.
Jede Kontoadresse, die in "Balance Changes" erscheint, hat ein oder mehrere Token-Konten. Durch Klicken auf die entsprechende Adresse können Sie sie kopieren oder zu Solscan springen.
Phalcon Explorer unterscheidet nicht zwischen SOL-Token und anderen Token, was Änderungen an allen Token für ein gegebenes Konto direkt widerspiegelt. Dies erleichtert auch die Visualisierung der Beziehung zwischen einem Token-Konto und seinem Owner.
Invocation Flow

Der "Invocation Flow" zeichnet den Ausführungsprozess der Anweisungen der Transaktion auf, wobei jede Zeile einer während der Transaktion ausgeführten Anweisung entspricht.
Hier konzentrieren wir uns auf die Anweisungen 2 und 4, die Token-Übertragungen betreffen.
Die zweite Anweisung ruft die swapBaseIn von Raydium AMM auf, um den Token zu verkaufen. Wenn wir diese Anweisung erweitern, sehen wir, dass sie aus zwei CPI (Cross Program Invocation) Anweisungen besteht, die die Token-Übertragung zwischen Raydium Authority V4 und dem Transaktionsunterzeichner ermöglichen. Die vierte Anweisung ist der Prozess, bei dem der Unterzeichner einen Tipp an Jito zahlt.
Wie in der folgenden Abbildung gezeigt, können wir durch Klicken auf die Registerkarte "Accounts" nach jeder Anweisung alle an dieser Anweisung beteiligten Konten anzeigen. Im Vergleich zu Solscan ist diese Anzeigemethode prägnanter und ermöglicht es Analysten, sich auf die wichtigeren Informationen in der Transaktion zu konzentrieren.

Fazit
In diesem Artikel haben wir zunächst die Implementierungsprinzipien von Solana-Token eingeführt. Anschließend haben wir Solscan verwendet, um die Änderungen an Token-Konten für eine bestimmte Transaktion zu untersuchen. Schließlich haben wir eine weitere Analyse der Transaktion mit Phalcon Explorer durchgeführt und die innovativen Funktionen von Phalcon Explorer vorgestellt.
Damit endet die Reihe "Solana Simplified". Fanden Sie sie hilfreich? Wenn Sie andere Themen haben, über die Sie mehr erfahren möchten, wie z. B. Sicherheitsvorfälle, Ökosystemvorstellungen oder BlockSec-Produkte, hinterlassen Sie gerne einen Kommentar! 🫡



