Jeden Tag erhalten wir Hunderte von Benutzeranfragen zur Integration neuer Token und Ketten aus beliebten und weniger bekannten Web3-Projekten in Tangem Wallet. Das Hinzufügen eines neuen Blockchain-Netzwerks oder Tokens zum Tangem Wallet folgt einem systematischen Prozess, der die Zusammenarbeit zwischen unseren Blockchain-Analysten und unseren fleißigen Entwicklern erfordert.
In diesem Artikel beschreiben wir den Prozess von der Analyse und Entwicklung bis hin zum Testen und Beheben von Fehlern. Hoffentlich verstehen Sie, warum es sich lohnt, zu warten, bis Ihre Lieblingskryptowährung in Ihrem Tangem-Wallet erscheint, was so lange dauern kann.
Erstens: Wie akzeptiert Tangem Anfragen für neue Token und Netzwerke?
Aufgrund unangenehmer Szenarien, in denen Mitglieder der Community eines Projekts unsere sozialen Kanäle mit Anfragen zuspammen, möchten wir klarstellen, dass Tangem sich das Recht vorbehält, zu entscheiden, welche Netzwerke oder Token in sein Wallet integriert werden.
Akzeptieren von Benutzeranfragen für Token-/Netzwerkintegration
Benutzer senden Anfragen für neue Token- Integrationen über unseren öffentlichen Telegram-Chat , X(Twitter) und Discord .
Dieser Anforderungsmechanismus erscheint zwar einigermaßen praktisch, stellt jedoch eine Herausforderung für das Supportteam dar, da die Konsolidierung von Tokenanforderungen von mehreren Plattformen in einer einzigen Datei mühsam ist.
Wir pflegen jedoch diese interne Datei, die die am häufigsten angeforderten Token basierend auf der Anzahl der Benutzereinreichungen organisiert und bewertet.
Anschließend betrachten wir die technischen Spezifikationen der am höchsten bewerteten Blockchain und ihres Ökosystems, darunter Folgendes:
- Detaillierte Informationen zur Architektur, zum Konsensmechanismus , zur Transaktionsgeschwindigkeit, zur Blockgröße und zu allen besonderen Merkmalen der Blockchain.
- Dokumentation zu Smart-Contract-Funktionen, Skriptsprachen und unterstützten Token-Standards.
- Integrationsprotokolle und APIs zur Verbindung mit externen Diensten.
- Kompatibilität mit beliebten Tools, Wallets oder anderen relevanten Diensten von Drittanbietern.
Außerdem beurteilen wir den Umfang der gewünschten Integration:
- Klar definierte Ziele und Vorgaben für die Integration.
- Spezifische Funktionalitäten oder Dienste, die integriert werden sollen.
- Alle Anpassungsanforderungen oder spezifischen Parameter für den Integrationsprozess.
Teil I: Analyse des Blockchain-Netzwerks
Bevor wir das Token oder die Kette oben auf unserer Liste integrieren, analysieren wir die folgenden Faktoren gründlich:
Handelt es sich bei dem angefragten Netzwerk um einen Klon eines bereits bestehenden Netzwerks?
Ein geklontes Blockchain-Netzwerk ist ein Duplikat oder eine Replik einer bestehenden Blockchain. Unter Klonen versteht man das Erstellen einer neuen Blockchain, die dieselbe Codebasis, dieselben Regeln und dieselbe Struktur wie eine bestehende Blockchain hat. Geklonte Blockchains können verwendet werden, um alternative Versionen bestehender Projekte zu erstellen.
Beispielsweise könnte ein Entwicklungsteam eine erfolgreiche Blockchain klonen, um eine neue Kryptowährung mit einigen Modifikationen oder Verbesserungen zu erstellen. Diese Modifikationen könnten Änderungen am Konsensalgorithmus, der Blockzeit, der Tokenomics oder anderen Parametern umfassen.
Die Integration eines gewünschten Netzwerks wird für uns wesentlich einfacher, wenn es sich um einen Klon handelt. In solchen Fällen kann die Integration reibungsloser ablaufen. Wenn das Netzwerk jedoch kein Klon ist, fahren wir mit dem nächsten Schritt der Analyse fort.
Was ist der Signaturalgorithmus?
Ein Signaturalgorithmus ist eine Reihe von Regeln und Verfahren zum Erstellen und Überprüfen digitaler Signaturen. Digitale Signaturen gewährleisten die Authentizität, Integrität und Nichtabstreitbarkeit von Transaktionen. Hier ist ein kurzer Überblick über die Funktionsweise eines typischen Signaturalgorithmus:
- Schlüsselgenerierung : Der Prozess beginnt mit der Generierung eines Paars privater und öffentlicher kryptografischer Schlüssel. Der private Schlüssel wird geheim gehalten und ist nur der Entität bekannt, die die Signatur erstellt, während der öffentliche Schlüssel mit anderen geteilt wird.
- Signieren : Um eine digitale Signatur zu erstellen, verwendet die Entität ihren privaten Schlüssel, um eine mathematische Operation an einem Hash (einer Zeichenfolge fester Größe, die aus der signierten Nachricht abgeleitet wird) durchzuführen.
- Verifizierung : Jeder, der auf den öffentlichen Schlüssel zugreift, kann die digitale Signatur verifizieren und eine ähnliche mathematische Operation mit dem Hash der empfangenen Nachricht durchführen. Wenn das berechnete Ergebnis mit der Signatur übereinstimmt, zeigt dies an, dass die Transaktion vom Besitzer des privaten Schlüssels unterzeichnet wurde, was ihre Authentizität bestätigt.
- Hashing : Eine Hash-Funktion nimmt eine Eingabe (oder Nachricht) entgegen und erzeugt daraus eine Zeichenfolge mit fester Länge, den Hash. Der Hash dient als eindeutige Darstellung der ursprünglichen Nachricht.
- Algorithmusparameter: Der Signaturalgorithmus definiert die spezifischen mathematischen Algorithmen und Parameter, die zur Schlüsselgenerierung, Signierung und Überprüfung verwendet werden.
Zu den Standardalgorithmen gehören RSA (Rivest-Shamir-Adleman), DSA (Digital Signature Algorithm), ECDSA (Elliptic Curve Digital Signature Algorithm) und EdDSA (Edwards-curve Digital Signature Algorithm).
Der bei Blockchain-Transaktionen verwendete kryptografische Signaturalgorithmus hängt von der jeweiligen Blockchain ab. Wenn die Tangem-Karten den Signaturalgorithmus des Netzwerks nicht unterstützen können, können wir dieses Netzwerk nicht integrieren.
Was sind die Knoten-/Dienst-APIs des Netzwerks?
Knoten und APIs (Anwendungsprogrammierschnittstellen) sind von entscheidender Bedeutung für die Wartung des Netzwerks, die Validierung von Transaktionen und die Interaktion externer Apps mit dem Blockchain-Netzwerk.
Öffentliche Knoten oder Service-APIs von Entwicklern – besonders häufig in EVM-Netzwerken – sind ein vielversprechendes Zeichen. Diese Zugänglichkeit ermöglicht es Benutzern oft, sich mit dezentralen Wallets zu verbinden. Darüber hinaus ist der Prozess einfacher, wenn unsere Premium-Knotenanbieter, wie GetBlock, diese Knoten/APIs bereits anbieten.
Die Integration wird jedoch komplizierter, wenn wir einen neuen Dienst abonnieren oder unsere eigenen Knoten erstellen müssen. Um die Zuverlässigkeit zu gewährleisten, beauftragen wir für jedes Netzwerk mindestens zwei verschiedene Knotenanbieter. So verringern wir potenzielle Herausforderungen, die mit der Abhängigkeit von einer einzigen Quelle verbunden sind.
Die Kombination aus Knoten und APIs stellt sicher, dass das Netzwerk ordnungsgemäß funktioniert und zugänglich ist. Knoten bewahren die Integrität des verteilten Ledgers, während APIs Entwicklern helfen, Apps zu erstellen, die die Funktionen der Blockchain nutzen.
Verfügt das Netzwerk über eine ordnungsgemäße Dokumentation?
Wichtige Blockchain-Netzwerke und Token veröffentlichen umfassende Dokumentationen, um Entwicklern, Benutzern und Knotenbetreibern zu helfen, sie zu verstehen und effektiv mit ihnen zu interagieren. Die Dokumentation bietet ausreichende Informationen zur API, zum Konsensmechanismus, zu Smart Contracts, zur Knotenkonfiguration, zu Sicherheitsrichtlinien sowie zu Upgrade und Migration.
Der Arbeitsaufwand unseres Entwicklerteams hängt von diesem Schritt ab. Leider ist die Blockchain-Technologie relativ neu und es gibt nicht genug technische Fachkräfte, die gut darin sind, Dokumentationen für jedes Web3-Projekt zu erstellen.
Wir stoßen häufig auf eine allgemeine Dokumentationsherausforderung – die normalerweise für Benutzer und Entwickler von Smart Contracts erstellt wird –, bei der die Details der Hash-Generierung für die Signierung oder die API-Interaktion entweder weggelassen oder unzureichend erklärt werden. Infolgedessen müssen Tangem-Entwickler Zeit damit verbringen, den Code bestehender Implementierungen zu studieren.
Gibt es geeignete SDKs und Bibliotheken?
Ein Software Development Kit (SDK) ist ein Satz von Softwareentwicklungstools, mit denen Entwickler Apps für ein bestimmtes Softwarepaket, eine Hardwareplattform, ein Computersystem oder ein Betriebssystem erstellen können.
Ein SDK umfasst Bibliotheken, Dokumentation, Beispielcode und manchmal zusätzliche Tools wie Debugger oder Emulatoren.
Bei der Tangem-App handelt es sich um eine native App, die nur für ein bestimmtes Betriebssystem (z. B. iOS oder Android) entwickelt wurde. Daher sind SDKs der meisten Entwickler nicht oft verfügbar.
Sogar JavaScript-SDKs – die für plattformübergreifende Anwendungen entwickelt wurden – sind oft nicht für Cold Wallets geeignet, da für die Signaturfunktion ein privater Schlüssel eingegeben werden muss. Wie Sie wissen, wird der private Schlüssel generiert und im Chip des Tangem Wallets gespeichert und verlässt diesen nie.
Aber es besteht noch Hoffnung, wenn ein solches SDK in einer geeigneten Programmiersprache vorliegt. Wir können es immer noch verfeinern, indem wir Codeteile von dort übernehmen oder separate Kodierungsfunktionen verwenden – zum Beispiel zur Berechnung/Validierung der Adresse. Im letzteren Fall können auch geeignete Bibliotheken helfen, aber es nimmt immer noch viel Zeit in Anspruch.
Eine Bibliothek ist eine Sammlung vorgefertigten Codes, Routinen, Prozeduren und Funktionen, die von anderen Programmen verwendet werden können.
Verfügt das Blockchain-Netzwerk über einzigartige Funktionen?
Einige Netzwerke verfügen möglicherweise über ungewöhnliche Eigenschaften (Reserven oder die Notwendigkeit, beim Senden von Geldmitteln MEMO anzugeben), die eine Änderung der UI/UX der Tangem-App erfordern, bevor die Integration abgeschlossen ist.
Manchmal kann ein Netzwerk sehr komplizierte Mechanismen zur Erhebung von Provisionen haben. Tangem muss klare Kommunikationswege für unsere Entwickler- und Supportteams einrichten. Wir werden auch ein Designteam einbeziehen, um die Benutzeroberfläche gemäß unseren Stilrichtlinien zu optimieren. Diese Verfahren wirken sich auf die Arbeitskosten aus und nehmen viel Zeit in Anspruch.
Teil II - Integration des Blockchain-Netzwerks
Nach der Analyse und Freigabe des gewünschten Netzwerks bzw. Tokens startet unser Entwicklerteam den Integrationsprozess in den folgenden Schritten.
1. Eine geeignete API finden
Nachdem wir eine geeignete API gefunden haben, prüfen wir, ob wir die zum Erstellen einer Transaktion erforderlichen Daten abrufen können. Dazu müssen wir eine Datenstruktur erstellen, die die Transaktionsdetails kapselt, digitale Signaturen zur Authentifizierung hinzufügen und das spezifische Format und die Regeln einhalten, die das Blockchain-Protokoll vorgibt.
2. Verschlüsselung der Adresse aus dem öffentlichen Schlüssel
Das Kodieren der Adresse aus dem öffentlichen Schlüssel bedeutet, einen öffentlichen Schlüssel in ein für Menschen besser lesbares und handhabbares Format umzuwandeln, das als Adresse bezeichnet wird. Bei Bitcoin wird die Adresse in Base58-Kodierung dargestellt; bei Ethereum im Hexadezimalformat. Die Schritte und Algorithmen zum Kodieren von Adressen können zwischen Blockchain-Netzwerken variieren – jedes Netzwerk kann seine eigenen Standards für die Adresskodierung haben.
3. Abrufen der erforderlichen Daten von der API und Senden einer Transaktion
Neben dem Empfang bereits untersuchter Transaktionen integrieren wir auch eine Anfrage zum Senden einer Transaktion. Die benötigten Daten sind der Kontostand und dann Blockchain-spezifisch: UTXO, Nonce, der Hash des neuen Blocks und ob das Konto des Empfängers erstellt wurde. Für erfolgreiche Transaktionen ist unser System auf die Erfassung wesentlicher Daten und die sorgfältige Beachtung dieser Schlüsselparameter angewiesen:
- Guthaben : der Betrag an Kryptowährung oder Guthaben, der auf dem Konto eines Benutzers verfügbar ist. Durch die Überprüfung des Guthabens wird sichergestellt, dass der Benutzer über ausreichend Guthaben verfügt, um Transaktionen einzuleiten.
- UTXO (Unspent Transaction Output) : die verbleibende Kryptowährung aus vorherigen Transaktionen, die ein Benutzer in einer neuen Transaktion ausgeben kann.
- Nonce : eine eindeutige Nummer, die jeder Transaktion zugewiesen wird. Sie hilft dabei, die chronologische Reihenfolge der Transaktionen beizubehalten und Replay-Angriffe zu verhindern.
- Der Hash des neuen Blocks : Der Hash des aktuellsten Blocks in der Blockchain stellt eine Verbindung zwischen einer aktuellen Transaktion und dem gesamten Verlauf der Blockchain her und macht sie so manipulationssicher.
- Status des Empfängerkontos : Durch die Überprüfung, ob das Konto des Empfängers erstellt wurde, wird sichergestellt, dass die Gelder auf ein gültiges und aktives Konto überwiesen werden. Dieser Schritt verhindert das Risiko, Gelder an nicht vorhandene oder inaktive Konten zu senden.
4. Zusammenstellen einer Transaktion
Unter Transaktionszusammenstellung versteht man das Zusammenstellen der erforderlichen Komponenten und Informationen, um eine vollständige Transaktion zu erstellen, die auf der Blockchain ausgeführt werden kann. Dieser Prozess umfasst das Sammeln und Organisieren von Daten wie Transaktionsdetails, Empfängerinformationen, Gebühren und anderen relevanten Parametern. Die Transaktionszusammenstellung variiert je nach Blockchain, aber lassen Sie uns ein allgemeines Schema beschreiben:
- Aus den von der API erhaltenen Daten und den vom Benutzer eingegebenen Daten (Adresse des Empfängers, Betrag, Gebühren etc.) ermitteln wir eine unsignierte Transaktion.
- Wir berechnen den/die Hashes, um diese Transaktion zu signieren und an die Tangem-Karte zu senden.
- Von der Karte werden Signaturen zurückgegeben, die wir der Transaktion hinzufügen. Wir verschlüsseln die Transaktion mit Signaturen für den Versand über die API.
Aufladen eines Kontos im Testnetz und Senden von Transaktionen
Wir laden das Konto im Testnetz auf und versuchen, Transaktionen zu senden. Die ersten Versuche schlagen oft fehl, und der spannende Teil beginnt, wenn die Transaktion mit der Begründung „ falscher Signaturalgorithmus “ abgelehnt wird, ohne spezifische Details anzugeben.
Um dieses Problem zu beheben, vergleichen wir die erfolglose Transaktion häufig mit Zwischenergebnissen in funktionalen Lösungen und führen manchmal eine Byte-für-Byte-Analyse durch.
Nach dem erfolgreichen Senden einer Transaktion schließen wir die Gebührenberechnung ab. Es ist erwähnenswert, dass wir bei ersten Versuchen häufig eine feste Gebühr festlegen.
In der letzten Phase werden verschiedene Funktionen und Randfälle behandelt. Dazu gehört die Handhabung zusätzlicher Transaktionsparameter, die Untersuchung von Szenarien wie das Senden an ein leeres Konto (was möglicherweise eine bestimmte Transaktionsstruktur erfordert, die häufig eine Voraussetzung zum Erstellen des Kontos beinhaltet), der Umgang mit Reserven usw.
Anschließend fügt das Designteam eine visuelle Darstellung des Netzwerks oder Tokens im Backend der App hinzu.
Teil III – Testen und Starten eines App-Updates mit dem neuen Netzwerk
Dieser lange Integrationsprozess endet mit dem Testen des neuen App-Updates. Dabei wird sichergestellt, dass alle aktuellen Entwicklungen auf ihre korrekte Leistung geprüft werden. Hier ist ein kurzer Überblick über die Testphase.
Unit-Tests
Wir führen gründliche Unit-Tests durch, um zu überprüfen, ob die einzelnen Komponenten der Tangem-App, insbesondere diejenigen, die mit der neuen Blockchain-Integration zusammenhängen, isoliert ordnungsgemäß funktionieren.
Integrationstests
Wir prüfen, wie gut das Wallet mit der Blockchain kommuniziert, Transaktionen signiert und Daten verarbeitet, die für das integrierte Netzwerk spezifisch sind. Wir stellen sicher, dass das Update der Tangem-App – das das neu integrierte Blockchain-Netzwerk enthält – auf Android- und iOS-Plattformen ordnungsgemäß funktioniert. Wir führen auch Sicherheitstests durch, um etwaige Schwachstellen im Zusammenhang mit der Integration zu identifizieren und zu beheben.
Benutzerakzeptanztests (UAT):
Wenn das App-Update wichtige Funktionen des neuen Netzwerks enthält, führen wir mit einer ausgewählten Gruppe von Benutzern oder einem Testteam einen UAT durch, um Feedback zur Benutzererfahrung zu sammeln und etwaige Probleme zu identifizieren, die wir in früheren Testphasen möglicherweise übersehen haben.
Fehlerbehebung und Bereitstellung in App-Stores
Wir beheben Fehler, Probleme oder Feedback, das wir während des Tests erhalten haben. Anschließend bereiten unsere Entwicklungs-, Marketing- und Supportteams den offiziellen Start vor. Wir stellen die aktualisierte Tangem-App in den jeweiligen App-Stores bereit (Google Play Store für Android und Apple App Store für iOS), wo Sie die App herunterladen und verwenden können.
Überwachung und Support
Wir überwachen die Leistung der App nach dem Start und sind darauf vorbereitet, alle auftretenden Probleme zu beheben. Unser Supportteam bietet Benutzern zeitnahen Support und beantwortet ihre Fragen zur Integration.
Abschließende Gedanken
Wir freuen uns, Ihnen einen Einblick in die Integration von Netzwerken und Token in unser Wallet zu geben, wobei wir uns auf die Gewährleistung der Sicherheit Ihres Vermögenswerts und eine benutzerfreundliche Erfahrung konzentrieren.
Tangem Wallet unterstützt mittlerweile über 30 Blockchain-Netzwerke und Tausende von Coins und Token. Diese Zahl steigt jeden Monat weiter, da unsere Entwicklungs- und Supportteams wachsen. Wir haben uns viele Gedanken über unsere Integrationsstrategie gemacht und dabei nicht nur technische Details berücksichtigt, sondern auch die Zugänglichkeit in den Mittelpunkt gerückt.
Wir arbeiten auch an spannenden Funktionen wie Staking und einer verbesserten Cross-Chain-Swap-Funktionalität über unseren Aggregator – Tangem Express.
Unsere Roadmap für 2024 wird mehrere Blockchain-Netzwerke und Token hervorheben, die wir im ersten Quartal nächsten Jahres integrieren möchten. Wenn Ihr gewünschter Token/Ihr gewünschtes Netzwerk nicht auf dieser Karte aufgeführt ist, können Sie unseren Social-Media-Kanälen beitreten und eine Anfrage stellen.
Vielen Dank, dass Sie sich für Tangem Wallet zur Verwaltung und Speicherung Ihrer Krypto-Assets entschieden haben. Bleiben Sie sicher!