Sachen zu wissen: |
- Miniscript ermöglicht die Erstellung von Bitcoin-Software-Wallets, die eine Ausnutzung einer Hintertür unmöglich machen. Wir freuen uns, sagen zu können, dass Ledger der erste kommerzielle Hardware-Wallet-Hersteller ist, der Miniscript unterstützt.
- Die zusätzlichen Funktionen können implementiert werden, ohne das Benutzererlebnis zu beeinträchtigen. |
Hardware-Signaturgeräte sind so konzipiert, dass sie den Benutzer vor verschiedenen gängigen Angriffsvektoren schützen, wie zum Beispiel:
- Unbefugter Zugriff und Entnahme des Saatguts
- Malware infiziert Ihr zugehöriges Software-Wallet
- Softwareschwachstellen auf dem Gerät selbst
Wie bei jedem Unternehmen liegt es im besten Interesse des Herstellers, Geräte so herzustellen unzerbrechlich wie sie können. Der Erfolg dieser Mission ist von größter Bedeutung, und Sicherheitsunternehmen wie Ledger verlassen sich auf einen Ruf, der auf ihrer Erfolgsbilanz basiert.
Einige Benutzer könnten jedoch immer noch Bedenken haben. Was hindert das Unternehmen selbst daran, a Hintertür- in den Geräten?
In Eigenverwahrung, wir vertraue nicht, wir überprüfen.
Aber kann der Benutzer wirklich Stellen Sie sicher, dass ein Gerät keine Hintertür hat.
Das ist die zentrale Frage, der sich dieser Artikel widmet. Im Einzelnen befasst sich dieser Artikel mit folgenden Themen:
- Was ist eine Hintertür und warum ist es schwierig, wenn nicht unmöglich, zu beweisen, dass es keine gibt?
- warum nur Nutzer sich vor diesem Risiko schützen können;
- wie Miniscript praktische Lösungen für diese Herausforderung für Bitcoin-Wallets ermöglicht.
Indem wir die erste Hardware-Wallet sind, die dies unterstützt MiniskriptWir hoffen, Entwickler dazu zu inspirieren, sichere Lösungen zu entwickeln, unsere gesamte Branche zu verbessern und die Möglichkeit auszuschließen, dass ein solches systemisches Risiko jemals eintritt.
So bauen Sie das unhintertürbar Signiergerät
Sagen wir es klar und deutlich: Das geht nicht.
Um sich gegen eine potenzielle Hintertür zu verteidigen, benötigen Sie ein anderes Angriffsmodell als das oben beschriebene: In diesem Szenario könnte der Angreifer der Anbieter selbst oder ein korrupter Insider sein.
Die oft angepriesene Lösung für dieses Problem ist Open Source: Denn was könnte schon schief gehen, wenn man den Code überprüfen kann?
Die Wahrheit ist jedoch komplexer. Da der Anbieter die Hardware zusammenbaut, könnte eine Hintertür vollständig darin enthalten sein. Die Hardware könnte so ausgelegt sein, dass sie die Software an bestimmten Stellen außer Acht lässt und stattdessen Schadcode ausführt.
Im Gegensatz zu Software, die auf Allzweck-Computergeräten (wie Ihrem Laptop oder Telefon) läuft, ist eine Überprüfung der Hardware mit der heutigen Technologie praktisch unmöglich. Selbst wenn die Hardwarespezifikationen vollständig Open Source wären und die Details jedes einzelnen Gatters in der Schaltung enthalten würden, wäre immer noch eine kostspielige Ausrüstung erforderlich, um zu überprüfen, ob ein bestimmter Chip gemäß diesen Spezifikationen gebaut wurde.
Wie man eine Hardware-Wallet hintertürt
Hier sind einige der einfachsten Methoden, mit denen ein böswilliger Hardware-Anbieter eine Hintertür einführen könnte, sowie einige Möglichkeiten, wie sich Power-User heute schützen können.
Samenerzeugung
Viele Geräte bieten Ihnen die Möglichkeit, einen Seed (auch „Seed“ genannt) zu erzeugen Geheime Wiederherstellungsphrase) direkt am Gerät mit a Echter Zufallszahlengenerator.
😈 Das böse Gerät könnte Seeds erzeugen, die zufällig erscheinen, für den Angreifer aber tatsächlich vorhersehbar sind.
🛡️ Power-User können dieses Problem umgehen, indem sie offline eine Mnemonik generieren. Darüber hinaus ist eine robuste eingebaut Passphrase kann auch einen völlig unabhängigen Seed generieren, den der Hardware-Anbieter nicht vorhersagen kann. Der Nachteil besteht darin, dass Benutzer sicherstellen müssen, dass sie zusätzlich zu den mnemonischen Wörtern auch die Passphrase ordnungsgemäß sichern.
Ableitung des öffentlichen Schlüssels
Hardware-Wallets leiten die ab und exportieren sie öffentliche Schlüssel (auch genannt xpubs, kurz für erweiterter öffentlicher Schlüssel wie in definiert BIP-32dem „Vermischten Geschmack“. Seine xpubs werden verwendet, um die möglichen Adressen für den Empfang von Coins zu generieren.
😈 Das böse Gerät könnte vom Angreifer kontrollierte öffentliche Schlüssel anstelle der richtigen, aus dem Seed abgeleiteten Schlüssel zurückgeben.
🛡️ Benutzer könnten die Ableitung validieren xpub auf einem anderen Offline-Gerät. Allerdings birgt die Eingabe des Saatguts über andere Geräte eigene Risiken. Sicherheitsbewusste Benutzer könnten jedes Gerät, das auf den Seed zugegriffen hat, als gefährlich einstufen, was möglicherweise so weit geht, dass es zerstört wird. Der typische Benutzer könnte Schwierigkeiten haben, dieses Verfahren korrekt durchzuführen und gleichzeitig die zusätzlichen Risiken zu bewältigen.
Durchsickern von Informationen
An Luftspalt wird häufig als Lösung vorgeschlagen, um zu verhindern, dass ein böswilliges oder kompromittiertes Gerät private Schlüssel herausfiltert. Denn wenn ein Gerät nicht mit der Außenwelt kommunizieren kann, kann es auch nichts Schädliches anrichten, oder?
Nicht ganz!
Das Gerät kann immer kommunizieren, wenn es im Einsatz ist: Es erzeugt Signaturen. Diese Signaturen landen in Transaktionen, die übertragen und für immer in der Blockchain gespeichert werden.
Eine Signatur ist eine zufällig aussehende Bytefolge von mindestens 64 Bytes. Da jedoch mehr als eine gültige Signatur derselben Nachricht entsprechen kann, könnte ein böswilliges Gerät bei jeder Erstellung einer Signatur einige Informationsbits übermitteln, indem es mehrere Signaturen generiert und selektiv auswählt, welche Signaturen veröffentlicht werden sollen.
😈 Ein betrügerisches Gerät könnte nicht zufällige Signaturen erzeugen, die dem Angreifer über viele Transaktionen hinweg den Seed offenbaren!
Ein Angreifer, der eine solche Hintertür erfolgreich installiert, müsste lediglich darauf warten, dass bösartige Signaturen auf der Blockchain erscheinen, bis er über genügend Informationen verfügt, um den gesamten Seed zu rekonstruieren.
🛡️ Für ECDSA-Signaturen wird eine standardisierte Methode zur deterministischen Ableitung der Nonce verwendet (wie RFC6979) vereitelt diesen Angriff, vorausgesetzt, man überprüft, ob die erzeugte Signatur mit der erwarteten übereinstimmt. Um dies sicherzustellen, muss jedoch ein zweites Gerät mit demselben Saatgut beladen werden, was zu denselben praktischen Problemen führt, die im vorherigen Abschnitt erwähnt wurden.
🛡️ Ein interessanter Ansatz besteht darin, einen intelligenten Weg zu nutzen Stärke Das Gerät wählt tatsächlich eine zufällige Nonce aus. Ein Protokoll zu diesem Zweck, bekannt als Anti-Exfil or Anti-Klepto, ist derzeit in den Hardware-Wallets Blockstream Jade und ShiftCrypto BitBox02 implementiert. Lesen Sie mehr unter ShiftCryptos Blog, die auch eine technische Beschreibung enthält, wie ein solcher Angriff ausgeführt werden könnte.
Ok, gibt es dann keine Hoffnung?
Die meisten der oben aufgeführten Abwehrmaßnahmen erfordern meist, dass der Benutzer explizite, aufdringliche Aktionen ausführt, um sich selbst zu schützen: entweder indem er den Seed selbst generiert (im Wesentlichen indem er sein Gehirn verwendet, um die Funktionalität aus der Hardware-Wallet zu ersetzen) oder indem er ein zusätzliches Gerät verwendet, um zu überprüfen, ob die Berechnungen korrekt ausgeführt werden.
Allerdings sticht das Anti-Exfil-Protokoll hervor: Da es immer eine Maschine gibt, die zwischen dem Hardware-Unterzeichner und der Außenwelt vermittelt, kann diese Maschine helfen. Durch ein interaktives Protokoll mit dem Hardware-Signer ist dies möglich erzwingen die Verwendung einer wirklich zufälligen Nonce, wodurch die Möglichkeit einer erheblichen Manipulation der endgültigen Signatur verringert oder eliminiert wird.
In diesem Blogbeitrag interessieren wir uns vor allem für diese Art von Maßnahmen: Während Strategien, die die UX deutlich verschlechtern, für Power-User attraktiv sein könnten, werden sie wahrscheinlich etwas bewirken schlimmer in der Praxis für die weniger technisch versierten Benutzer – und das ist die überwiegende Mehrheit.
Das Sicherheitsmodell
Standardmodell für Hardware-Signierer
Hersteller von Hardware-Signaturen zielen darauf ab, Benutzer vor einer Vielzahl potenzieller Bedrohungen zu schützen (weitere Einzelheiten finden Sie unter Bedrohungsmodell). In diesem Artikel konzentrieren wir uns auf eine sehr wichtige Eigenschaft, die sich wie folgt zusammenfassen lässt:
Benutzer können nicht zu einer Handlung verleitet werden, die zu einem Geldverlust führt, vorausgesetzt, sie verstehen und überprüfen die Informationen auf dem Bildschirm vor der Genehmigung.
Für alle sensiblen Handlungen, insbesondere für Unterschriften, ist eine Genehmigung erforderlich. Der Schutz des Seeds wäre zwecklos, wenn Malware Signaturen für beliebige Nachrichten erstellen könnte, beispielsweise für eine Transaktion, die alle Gelder verschlingt!
Es ist wichtig zu betonen, dass die oben genannte Eigenschaft auch dann gelten muss, wenn die Software-Wallet vollständig kompromittiert ist. Was auf dem Bildschirm Ihres Laptops/Telefons angezeigt wird, kann nicht vertrauenswürdig sein: Malware könnte Adressen ersetzen, Sie darüber täuschen, welche Adressen Ihnen gehören, eine Transaktion anzeigen, dann aber eine andere zum Signieren an das Gerät weiterleiten usw.
Daher berücksichtigen die Firmware und Anwendungen, die auf einem Hardware-Signaturgerät ausgeführt werden, von Natur aus die Software-Wallet nicht vertrauenswürdig und nicht vertrauenswürdig.
Anti-Backdoor-Sicherheitsmodell für Software-Wallets
In diesem Abschnitt vertauschen wir die Rollen komplett. Wir wollen nun eine entwerfen Software-Brieftasche das verhindert, dass der Hardware-Hersteller Gelder stiehlt oder Verluste verursacht, selbst wenn das Gerät völlig bösartig ist.
Daher kann dies keine Eigenschaft von sein Gerät: Vielmehr ist es eine Eigenschaft von Software-Brieftasche aufstellen. Wir könnten es wie folgt zusammenfassen:
Vorausgesetzt, dass die Software-Wallet nicht kompromittiert wird, kann der Hardware-Hersteller nicht dazu führen, dass der Benutzer Geld verliert.
Dies mag kontraintuitiv erscheinen, da es dem oben beschriebenen Standard-Sicherheitsmodell direkt widerspricht. „Keine Hintertür zu haben“ bedeutet jedoch, „genau das zu tun, was sie tun sollen“. Da es sich bei der Software-Wallet um die handelt Sonne Als Schnittstelle zwischen dem signierenden Gerät und der Außenwelt ist es der einzige Ort, an dem Schutz vor Fehlverhalten durchgesetzt werden kann – sei es aufgrund eines Fehlers oder einer expliziten Kompromittierung des Geräts.
Beachten Sie, dass dieses Modell weit über einen Geräteausfall hinausgeht, beispielsweise einen ausnutzbaren Fehler. In diesem Fall arbeiten wir in einem Szenario, in dem das Gerät aktiv versucht, einen Geldverlust zu verursachen.
Natürlich gibt es keinen möglichen Schutz, wenn der Hersteller erfolgreich kompromittiert hat beide das Gerät und auch Ihr Computer, auf dem die Software-Wallet ausgeführt wird. Daher ist es absolut wichtig sicherzustellen, dass Ihre Software-Wallet Open Source und überprüfbar ist, insbesondere wenn sie von demselben Anbieter erstellt wurde, der auch die Hardware herstellt.
Die Rolle des Miniskripts
Miniscript gibt Wallet-Entwicklern die Möglichkeit, die erweiterten Funktionen von Bitcoin Script vollständig zu nutzen. Eine Übersicht über die unglaublichen Möglichkeiten, die Miniscript freischaltet, finden Sie unter unser vorheriger Blogbeitrag. Vielleicht möchten Sie auch zuhören Folge 452 des Stephan Livera Podcasts für eine Diskussion darüber, was Miniscript für die Bitcoin-Landschaft bringt.
Die Ledger-Bitcoin-App unterstützt Miniscript seit ihrer Version 2.1.0, die im Februar 2023 bereitgestellt wurde. Auf der Bitcoin 2023-Konferenz in Miami kündigte Wizardsardine die Version 1.0 an Liana-Geldbörse, das erste bereitgestellte Wallet basierend auf Miniscript.
Die Grundidee dieses Beitrags ist, dass ein Bitcoin-Wallet-Konto nicht nur mit einem, sondern mit geschützt werden kann mehrere Schlüssel. Dies ermöglicht flexible Sicherheitsrahmen, bei denen selbst ein Totalausfall oder die Kompromittierung eines Schlüssels keine katastrophalen Folgen hat.
Überlegungen zu mehreren Signaturen
Multisig ist eine deutliche Verbesserung der Stärke einer Self-Custody-Lösung. Durch die Nutzung der Programmierbarkeit von Bitcoin Script ist die Erstellung von Wallets möglich, die mehrere Schlüssel statt nur einem erfordern. A k-von-n Multisig-Wallet erfordert eine Kombination aus k gültige Unterschriften, insgesamt n mögliche.
Allerdings stellt Multisig auch eine UX-Belastung für den Benutzer dar und bringt neue Fehlermöglichkeiten mit sich. Ein 3-von-3-Multisig-Setup mit drei verschiedenen Schlüsseln, die an verschiedenen Orten sicher gesichert sind, bietet hohe Sicherheit … aber es bedeutet auch, dass, wenn auch nur ein Single Bei Verlust des Schlüssels sind die Münzen dauerhaft unzugänglich!
Daher sind Setups mit höherer Redundanz (z. B. 2-von-3 oder 3-von-5) tendenziell beliebter: Sollte ein einzelner Schlüssel verloren gehen, können die anderen Schlüssel die Wiederherstellung trotzdem erleichtern. Dies bringt jedoch einen Kompromiss mit sich: Wenn ein Schlüssel ohne Ihr Wissen kompromittiert wird, wird die Gesamtsicherheit erheblich verringert!
Unternehmen mögen Home und Nicht gebundenes Kapital sind auf Selbstverwahrungslösungen spezialisiert, bei denen sie einen Teil der Schlüssel für ihre Kunden behalten. Sie unterstützen ihre Benutzer auch, indem sie sie durch den Onboarding-Prozess führen und die Verwendung von Custody-Systemen vereinfachen, die für die meisten technisch nicht versierten Benutzer ansonsten abschreckend sein können.
Miniscript und zeitgesperrte Wiederherstellungspfade
Liana verwendet Miniscript, um Wallets zu erstellen, die mehrere Ausgabemöglichkeiten bieten:
- eine primäre Ausgabebedingung, die sofort verfügbar ist;
- eine oder mehrere zusätzliche Ausgabebedingungen, die nach einem bestimmten Zeitraum verfügbar werden (sog Timelock).
Dies ermöglicht viele interessante Anwendungsfälle:
- Recovery: Eine Standard-Wallet mit entweder Single-Signatur oder Multi-Signatur als primärem Ausgabepfad; aber ein separater Wiederherstellungsmechanismus (ein Schlüssel mit einem anderen Seed, ein Multisig, ein technisch versierter Freund, ein Depotbank) wird nach 6 Monaten verfügbar.
- Unternehmensführung: Ein Unternehmen mit zwei Direktoren könnte ein 2-of-2-System für die Unternehmenskasse einrichten; Im Falle einer Meinungsverschiedenheit könnte ein Anwalt Ihres Vertrauens nach 6 Monaten auf die Mittel zugreifen.
- Verfallendes Multisig: Ein Wallet beginnt als 3-von-3-Wallet, geht nach 2 Monaten in ein 3-von-6-Wallet über und wird nach 1 Monaten zu einem 3-von-9.
- Automatische Vererbung: Der Genesungspfad nach 6 Monaten umfasst zwei von drei Ihrer drei Kinder; Vielleicht ist ein zweiter Sanierungsweg nach einem Jahr die Einschaltung eines Notars, falls sich die Erben nicht einigen können.
Anmerkung: Alle obigen Beispiele verwenden a relative Zeitsperre, was sich auf das Alter der Münzen bezieht (d. h. auf den Zeitpunkt, zu dem das Geld das letzte Mal bewegt wurde). Der Nachteil besteht darin, dass der Benutzer daran denken muss, die Münzen auszugeben (indem er sie sich selbst schickt), wenn die Zeitsperre bald abläuft.
Dies sind nur einige Beispiele, aber sie sollten ausreichen, um den Leser davon zu überzeugen, dass Miniscript ein bedeutender Schritt vorwärts zur Verwirklichung des Potenzials von Bitcoin ist programmierbares Geld.
Registrierung der Wallet-Richtlinie
Bei Bitcoin-Wallet-Konten, die mehrere Schlüssel verwenden (sei es Multisig oder anspruchsvollere Miniscript-basierte Lösungen), ist es wichtig, das Gerät darauf zu trainieren, die zu diesem Konto gehörenden Adressen zu identifizieren. Nur so kann das Gerät dem Benutzer dabei helfen, sicherzustellen, dass er an den richtigen Adressen empfängt oder Geld ausgibt.
Validierung der Richtlinie und der xpubs des Mitunterzeichners gegen ein vertrauenswürdiges Backup ist wichtig, aber relativ zeitaufwändig.
Die gute Nachricht ist, dass es nur einmal durchgeführt werden muss:
Sobald eine Richtlinie mit einem Namen registriert ist (im Beispiel „Decaying 3of3“), kann Ihr Gerät sie erkennen, wann immer eine solche Richtlinie verwendet wird.
Wer sich für technische Details interessiert, findet weitere Informationen im BIP-Vorschlag.
Richtliniensicherung
Ein wichtiger Aspekt ist, dass Multi-Key-Richtlinien zwar eine Teilmenge davon zulassen private Schlüssel Um Transaktionen zu autorisieren, ist die Kenntnis von alle die öffentlichen Schlüssel (und die genau Richtlinie) sind erforderlich.
Im Gegensatz zum Seed ist das Sichern der Richtlinie und der öffentlichen Schlüssel jedoch weitaus weniger riskant: Wenn jemand es entdecken würde, könnte er alle mit dieser Richtlinie verbundenen Transaktionen zurückverfolgen. Auch wenn das nicht ideal ist – Privatsphäre ist wichtig! − Es ist nicht so katastrophal wie der Verlust Ihrer Münzen und weniger verlockend für potenzielle Angreifer. Folglich sind das Speichern mehrerer Kopien der Richtlinie in Hot Wallets, das Drucken und Speichern an verschiedenen Orten, das Verschlüsseln und Speichern im Cloud-Speicher usw. allesamt praktikable Strategien.
Die undurchdringliche Single-Signatur-Wallet
Machen wir einen Schritt zurück. Wir haben über Multi-Signatur-Wallets gesprochen, aber jetzt kehren wir zu den Grundlagen zurück und erstellen eine Single-Signatur-Wallet. Genauer gesagt wollen wir eine Brieftasche fühlt sich und Aussehen wie eine Single-Signatur-Wallet, nach einer anfänglichen Einrichtungsphase. Unser Ziel ist es jedoch, eine Wallet zu schaffen, aus der der Hersteller Ihr Geld nicht stehlen kann, selbst wenn es böswillig ist 😈 und das Hardware-Signaturgerät sich auf unvorhersehbare Weise verhält.
Der Ansatz lässt sich leicht auf Multi-Signatur-Wallets verallgemeinern.
Die folgenden Beispiele werden in einer Sprache namens geschrieben Datenschutzrichtlinien, statt Miniscript. Richtlinien sind für Menschen einfacher zu lesen und zu überdenken und können mit automatisierten Tools in Miniskripten zusammengestellt werden. Lesen Sie mehr über Miniscript und Richtlinien.
Das Hardware Wallet kann Sie im Standard-Sicherheitsmodell schützen. Miniscript kann Sie mit dem Anti-Backdoor-Sicherheitsmodell schützen (und noch viel mehr!).
Schritt Null: der Status Quo
Dies ist die Richtlinie, die heute von den meisten Benutzern verwendet wird: ein einzelner Schlüssel, der aus einem im Hardware-Wallet erzeugten Seed abgeleitet wird.
pk(key_ledger)
Natürlich gibt es keine Möglichkeit, das Fehlen einer Hintertür nachzuweisen.
Schritt eins: Verdoppeln Sie diese Schlüssel
Der erste Schritt ist einfach:
and(pk(key_ledger), pk(key_client))
Hier key_client
wird auf dem Computer des Benutzers generiert, daher a Hot Key. Im Wesentlichen handelt es sich um ein 2-von-2-Multisig-Setup. Der Schlüsselaspekt ist, dass der Benutzer nicht viel damit interagiert key_client
: Das Software-Wallet generiert diesen Schlüssel, fügt ihn in die Sicherung des Wallets ein und signiert bei Bedarf (z. B. während der Benutzer mit dem Signieren mit seinem Hardware-Signierer beschäftigt ist).
Das erscheint schon recht interessant: Ohne sind die Mittel unausgebbar key_client
, das für den Hardwareanbieter nicht verfügbar ist; Selbst wenn der bösartige Anbieter den Schlüssel im Gerät vollständig kennen würde, wäre er immer noch nicht in der Lage, die Gelder zu bewegen, ohne den Benutzer explizit ins Visier zu nehmen, indem er beispielsweise den Computer kompromittiert, auf dem seine Software-Wallet läuft.
Es gibt jedoch ein Problem: Während des Wallet-Onboardings ist der Hardware-Unterzeichner die einzige Entität, die in der Lage ist, den öffentlichen Schlüssel (xpub) zu generieren. key_ledger
im Portemonnaie verwendet. Daher könnte das Gerät absichtlich eine erzeugen Wrongs xpub, das vom Angreifer kontrolliert wird, und verweigern später die Signatur (oder sind nicht in der Lage). Dies ist wohl ein ziemlich extremes Angriffsszenario: Der Backdoor-Ersteller kann die Gelder nicht stehlen, sondern höchstens den Benutzer individuell angreifen und ein Lösegeld verlangen („Ich kann Ihnen helfen, Ihr Geld zurückzubekommen, wenn Sie mir die Hälfte zahlen“).
Realistisch gesehen erhöht dies die Wahrscheinlichkeit von Fehlern: Sie haben jetzt zwei Seeds/private Schlüssel, und Sie brauchen beide um ausgeben zu können. Wenn Sie beides verlieren, sind die Münzen für immer gesperrt.
Schritt zwei: zeitgesteuerte Wiederherstellung
Wir führen einen separaten Wiederherstellungsschlüssel ein, auf den erst nach einer bestimmten Zeitsperre zugegriffen werden kann: and(older(25920)
, pk(key_recovery))
, wobei 25920 die ungefähre Anzahl der Blöcke in 6 Monaten ist. Die vollständige Richtlinie lautet:
or(
and(pk(key_ledger), pk(key_client)), and(after(25920), pk(key_recovery))
)
Dies ähnelt dem vorherigen Szenario, jedoch mit einer Wendung: if key_ledger
or key_client
aus irgendeinem Grund nicht verfügbar ist (am häufigsten durch Verlust des Seed-Backups!), a Wiederherstellungspfad wird nach 6 Monaten zugänglich.
Es gibt verschiedene Möglichkeiten für key_recovery
, jeder mit seinen eigenen Kompromissen:
a. Benutze einen anderen Hot Key. Dies ist eine praktische Lösung, solange der Benutzer daran denkt, die Zeitsperre zurückzusetzen. Wenn jedoch die Hotkeys kompromittiert werden (ein Szenario, das im Allgemeinen als sehr wahrscheinlich angesehen werden sollte!), könnte der Angreifer versuchen, auf die Gelder zuzugreifen, sobald die Zeitsperre abläuft, und damit einen Wettlauf mit dem rechtmäßigen Eigentümer auslösen.
b. Verwenden Sie ein separates Hardware-Signaturgerät. Dies ist eine robuste Lösung und kann bei Bedarf in Kombination mit einem anderen Anbieter verwendet werden; Allerdings erhöht es die Einrichtungskomplexität und die Kosten für den Benutzer im Hinblick auf die Benutzererfahrung.
c. Nutzen Sie einen vertrauenswürdigen externen Dienst. Die Software-Wallet könnte ein XPUB von einem externen Dienst importieren und es als verwenden key_recovery
. Diesem Dritten wird nur dann vertraut, wenn die Zeitsperre abläuft, was für einige Benutzer ein attraktiver Kompromiss sein könnte.
Wie bereits erwähnt, ist es wie bei allen Richtlinien mit Zeitsperren wichtig, dass der Benutzer daran denkt, die Münzen vor Ablauf der Zeitsperre aufzufrischen.
Schritt drei: der nicht vertrauenswürdige Dritte
Lassen Sie uns beide Ideen (a) und (c) kombinieren: Für den Wiederherstellungspfad benötigen wir einen lokalen Hotkey key_recovery_local
Und eine key_recovery_remote
das bei einem halb vertrauenswürdigen Dienst gehostet wird; Wir behalten auch die Zeitsperre bei.
or(
and(pk(key_ledger), pk(key_client)),
and(older(25920),
and(pk(key_recovery_local), pk(key_recovery_remote))
)
)
Dadurch verringert sich der Grad an Vertrauen, der vom Wiederherstellungsdienst benötigt wird. Allerdings müssen wir Vorsicht walten lassen: Der Dienst selbst könnte die Blockchain überwachen und unsere UTXOs erkennen – schließlich hat er uns diese zur Verfügung gestellt key_recovery_remote
xpub, damit sie nach UTXOs suchen können, die von abgeleitete Pubkeys enthalten key_recovery_remote
. Sie werden in der Lage sein, etwas über unsere Finanzhistorie zu erfahren, sogar bevor die Zeitsperre abläuft, und selbst wenn wir ihren Service nie in Anspruch genommen haben.
Anmerkung: Pfahlwurzelbäume können dieses Datenschutzproblem für bestimmte Richtlinien beseitigen, dies ist jedoch nicht immer der Fall und erfordert eine sorgfältige Bewertung auf der Grundlage der spezifischen Richtlinie.
Schritt vier: Den Dritten blenden 🙈
Um zu verhindern, dass der Wiederherstellungsdienst etwas über unsere Finanzhistorie erfährt, können wir anstelle des Pubkeys, den er uns mitteilt, einen verwenden blind xpub Technik von mflaxman hier ausführlich erklärt. Kurz gesagt, statt zu verwenden key_recovery_remote
In unserer Richtlinie wählen wir vier 31-Bit-Zufallszahlen a
, b
, c
, d
(Das Blendungsfaktoren), und wir verwenden Folgendes BIP-32 abgeleiteter Pubkey:
key_recovery_remote_blind = key_recovery_remote_blind/a/b/c/d
Es ist wichtig, dass wir auch etwas hinzufügen key_recovery_remote
und die Blendungsfaktoren a
, b
, c
und d
zu unserem Backup, zum späteren Nachschlagen.
Sollten wir jemals den Wiederherstellungsdienst in Anspruch nehmen müssen, werden wir es Ihnen mitteilen a
, b
, c
, d
zu ihnen. Bis dahin haben sie keine Möglichkeit herauszufinden, welche Schlüssel von ihnen stammen key_recovery_remote
werden auf der Blockchain veröffentlicht: Die Anzahl der möglichen Kombinationen für die 4 Blindfaktoren beträgt 2^(31*4) = 2^124
, was es unmöglich macht, sie alle brutal zu erzwingen.
Schritt fünf: Zu viele Hotkeys können zu Verbrennungen führen 🔥
Es ist uns gelungen, unsere Software-Wallet undurchdringlich zu machen. Wir haben jedoch ein anderes Problem eingeführt: Beide Ausgabenbedingungen verwenden einen lokal generierten, heiß Schlüssel, der nicht von der Hardware-Wallet verifiziert wird. Wenn der Host-Rechner kompromittiert ist, kann es daher dazu kommen, dass Sie dazu verleitet werden, die Richtlinie mithilfe der Pubkeys zu registrieren key_client
und key_recovery_local
, aber fügen Sie zufällige, nicht verwandte private Schlüssel in unser Backup ein (denken Sie daran, die heiß Schlüssel sind Teil unseres Backups!).
Das würde im Grunde dazu führen, dass alle Gelder an die Wallet gesendet werden unentbehrlich, da niemand die zum Signieren erforderlichen privaten Schlüssel kontrolliert.
Es gibt einige Lösungen, um dieses Problem zu lösen:
- Während des Onboardings können wir nach dem Drucken unseres Backups auf Papier mit einem separaten Gerät überprüfen, ob die privaten und öffentlichen Hotkeys auf dem Backup tatsächlich übereinstimmen. Dieser Ansatz würde das Problem beseitigen, da wir sicher wären, dass wir über alle erforderlichen Schlüssel für die Rekonstruktion und Signierung verfügen.
- Wir können eine weitere Ausgabebedingung mit einer noch längeren Zeitsperre (9 Monate, 38880 Blöcke) hinzufügen, die nur eine erfordert
key_ledger_failsafe
vom Hardwaregerät. Auf diese Weise greifen wir im absoluten Worst-Case-Szenario, wenn alles andere fehlschlägt, auf die Sicherheit eines einzigen Signiergeräts zurück. Im Normalbetrieb würden wir die erste Zeitsperre niemals ablaufen lassen, daher läuft auch die zweite Zeitsperre nicht ab!
Mit dem zweiten Ansatz würde die endgültige Richtlinie so aussehen
or(
and(pk(key_ledger), pk(key_client)),
or(
and(older(25920),
and(pk(key_recovery_local), pk(key_recovery_remote_blind))
),
and(older(38880), pk(key_ledger_failsafe))
),
)
Diese Software-Wallet-Konfiguration erfüllt alle Sicherheitseigenschaften, die wir eingangs behauptet haben. Darüber hinaus bietet es einen Wiederherstellungspfad für den Fall, dass die wichtigsten Ausgabenschlüssel ausfallen key_ledger
sind verloren. Eine nette Funktion!
Einstieg in die hintertürbare Software-Wallet
Wie würde die Benutzererfahrung für ein Wallet aussehen, das eine so komplexe Richtlinie verwendet? Hier ein kurzer Überblick:
- Der Benutzer öffnet die Software-Wallet und beginnt mit der Erstellung eines neuen Kontos.
- Die Software-Wallet fordert den Benutzer auf, sein Signiergerät anzuschließen und ruft die xpubs dafür ab
key_ledger
undkey_ledger_failsafe
. - Die Software-Wallet generiert selbstständig den Hotkey key_client.
- Die Software-Wallet erhält
key_recovery_remote
von einem Co-Signing-Dienst oder ermöglicht es dem Benutzer, einen Schlüssel auf andere Weise anzugeben. Optional berechnet es diekey_recovery_remote_blind
unter Verwendung der zuvor erwähnten Verblindungstechnik. - Die Software-Wallet generiert eine Richtliniensicherung, die die genaue Miniscript-Richtlinie, alle xpubs und den erweiterten privaten Schlüssel für die enthält
key_client
Hotkey. Dieses Backup wird sicher gespeichert (z. B. auf Papier gedruckt oder auf einem separaten Gerät gespeichert). - Abschließend weist die Software-Wallet den Benutzer an, die Richtlinie auf dem Gerät zu registrieren. Der Benutzer überprüft das Backup (auf Papier oder einem anderen Medium als dem von der Software-Wallet gesteuerten Bildschirm).
Die Software-Wallet verwaltet die meisten der oben genannten Schritte, so dass die Einbindung des Benutzers nicht belastender ist als der erwartete Aufwand, der heute für die Einrichtung einer Multisignatur-Wallet erforderlich ist.
Das Onboarding sollte nur ein paar Minuten dauern, sobald eine gute UX dafür erstellt wurde. Sobald die Software-Wallet fertig ist, kann sie eine Benutzererfahrung bieten, die der einer typischen Single-Signatur-Wallet sehr ähnlich ist. So wird Miniscript alles verändern: indem es aus der Sicht des Benutzers verschwindet!
Taproot-Verbesserungen
Ledger unterstützt Miniscript seit der im März veröffentlichten Version 2.1.0 der Bitcoin-App. Während die Unterstützung für den Empfang und das Ausgeben von Taproot-Adressen seit dem aktiviert ist Pfahlwurzel-Softfork Im November 2021 geben wir nun den letzten Schliff für den nächsten Schritt der Roadmap: Miniscript-Unterstützung für Taproot.
Taproot wird einen großen Einfluss auf die Benutzerfreundlichkeit der in diesem Artikel vorgestellten Ansätze haben. Wenn es sich bei dem primären Ausgabenpfad um eine Einzelschlüssel-Ausgabenbedingung handelt, ist die Existenz von Erholungsausgabenpfaden in der Blockchain nicht erkennbar, sofern sie nicht genutzt werden. Dadurch wird der Datenschutz erheblich verbessert, da jegliche Fingerabdrücke für den Standardausgabepfad vollständig eliminiert werden. Darüber hinaus verbessert es die Skalierbarkeit, da der Standardausgabepfad so kosteneffizient wie möglich gestaltet wird. Das bedeutet, dass durch das Vorhandensein von Wiederherstellungspfaden keine zusätzlichen Kosten entstehen, sofern diese nicht genutzt werden. Dies ist eine wesentliche Verbesserung gegenüber SegWit-Transaktionen, bei denen bei jeder Ausgabe das gesamte Skript, einschließlich aller Ausgabebedingungen, veröffentlicht werden muss.
Schließlich gibt es auch fortgeschrittenere Protokolle wie MuSig2 (kürzlich standardisiert) und FROST wird den Taproot-Schlüsselpfad überladen. Diese Protokolle basieren auf Schnorr-Signaturen und ermöglichen die Erstellung einer einzigen aggregierter Pubkey das kann verwendet werden, um eine darzustellen n-von-n Multisignatur oder a k-von-n Schwellenwertschema. Dies würde die Verwendung des Taproot-Schlüsselpfads auch in Fällen ermöglichen, die heute häufiger mit spezifischen Multisig-Skripten dargestellt werden.
Schlussfolgerungen
Dieser Artikel untersucht eine kleine (aber wichtige) Nische des riesigen Designraums, den Miniscript für Software-Wallets freisetzt.
Wir haben gezeigt, wie Miniscript verwendet werden kann, um eine Software-Wallet zu erstellen, die nicht durch eine Hintertür zugänglich ist, und gleichzeitig einen zusätzlichen Wiederherstellungspfad hinzuzufügen, der es ermöglicht, katastrophale Schlüsselverluste zu verhindern. Während Hardware-Signaturgeräte das Anti-Backdoor-Sicherheitsmodell nicht durchsetzen können, ermöglichen sie durch die Unterstützung von Miniscript Software-Wallets, die genau das tun!
Durch den geschickten Einsatz einer Kombination aus Multisignaturschemata, Zeitsperren, Blind-Xpubs und Hotkeys haben wir eine sichere Wallet-Konfiguration demonstriert, die Sicherheit, Datenschutz und Robustheit in Einklang bringt.
Darüber hinaus haben wir argumentiert, dass dies möglich ist, ohne die Benutzererfahrung negativ zu beeinflussen, da die Komplexität des Setups nicht zu einer großen zusätzlichen UX-Belastung führt.
Wir freuen uns über die Möglichkeiten, die Miniscript für die nächste Generation der Bitcoin-Selbstverwahrung eröffnen wird.
- SEO-gestützte Content- und PR-Distribution. Holen Sie sich noch heute Verstärkung.
- PlatoData.Network Vertikale generative KI. Motiviere dich selbst. Hier zugreifen.
- PlatoAiStream. Web3-Intelligenz. Wissen verstärkt. Hier zugreifen.
- PlatoESG. Automobil / Elektrofahrzeuge, Kohlenstoff, CleanTech, Energie, Umwelt, Solar, Abfallwirtschaft. Hier zugreifen.
- BlockOffsets. Modernisierung des Eigentums an Umweltkompensationen. Hier zugreifen.
- Quelle: https://www.ledger.com/blog/towards-a-trustless-bitcoin-wallet-with-miniscript
- :hast
- :Ist
- :nicht
- :Wo
- $UP
- 1
- 2021
- 2023
- 30
- 7
- 9
- a
- Fähigkeit
- Fähig
- LiveBuzz
- oben
- Absolute
- absolut
- Zugang
- Zugriff
- zugänglich
- Übereinstimmung
- Konto
- Trading Konten
- Action
- Aktionen
- aktiv
- berührt das Schneidwerkzeug
- hinzufügen
- Hinzufügen
- Zusatz
- Zusätzliche
- zusätzlich
- Adressen
- advanced
- Nach der
- gegen
- Alter
- Hilfe
- Ziel
- Alle
- erlauben
- erlaubt
- entlang
- bereits
- ebenfalls
- Obwohl
- immer
- an
- und
- angekündigt
- Ein anderer
- jedem
- etwas
- App
- ansprechend
- erscheinen
- Anwendungen
- Ansatz
- Ansätze
- Genehmigung
- ungefähr
- SIND
- wohl
- argumentierte
- Artikel
- AS
- Aussehen
- helfen
- damit verbundenen
- At
- Attacke
- überprüfbar
- autorisieren
- Automatisiert
- autonom
- verfügbar
- Zurück
- Hintertür-
- unterstützt
- Unterstützung
- Sicherungskopie
- Guthaben
- basierend
- basic
- Grundsätzlich gilt
- Grundlagen
- BE
- weil
- werden
- wird
- Bevor
- Anfang
- Sein
- unten
- BESTE
- zwischen
- Beyond
- Bitcoin
- Bitcoin Wallet
- Bitcoin-Geldbörsen
- Blend
- Blockchain
- Blockiert
- Blockstream
- Blog
- beide
- Gehirn
- Brings
- Sendung
- Fehler
- bauen
- erbaut
- Last
- brennen
- Geschäft
- beschäftigt
- aber
- by
- namens
- CAN
- kann keine
- fähig
- vorsichtig
- Häuser
- Fälle
- katastrophal
- Verursachen
- verursacht
- Vorsicht
- sicher
- challenges
- Chance
- Übernehmen
- weltweit
- Chip
- Auswählen
- Auswahl
- behauptet
- Cloud
- Cloud-Speicher
- Code
- Coins
- Kombination
- Kombinationen
- kommerziell
- gemeinsam
- häufig
- mit uns kommunizieren,
- Unternehmen
- Unternehmen
- Unternehmen
- abschließen
- uneingeschränkt
- Komplex
- Komplexität
- Kompromittiert
- kompromittierend
- Berechnungen
- Computing
- Bedenken
- Zustand
- Bedingungen
- Konferenz
- Konfiguration
- Vernetz Dich
- Konsens
- Folglich
- Geht davon
- betrachtet
- enthalten
- gesteuert
- Steuerung
- überzeugen
- und beseitigen Muskelschwäche
- verdorben
- Kosten
- könnte
- Kurs
- erstellen
- Erstellen
- Schaffung
- Schöpfer
- kritischem
- kritischer Aspekt
- wichtig
- Zur Zeit
- verwahrer
- Sorgerecht
- Kunden
- Gefährlich
- Ablehnen
- sinkt
- erachten
- definiert
- Demand
- Synergie
- Einsatz
- Abgeleitet
- Beschreibung
- Design
- entworfen
- erwünscht
- Detail
- detailliert
- Details
- entdecken
- Entwickler
- Gerät
- Geräte
- anders
- schwer
- abnehmender
- Direkt
- Geschäftsführung
- verschwinden
- katastrophal
- entdeckt,
- entdecken
- diskutiert
- Diskussion
- angezeigt
- do
- die
- Tut nicht
- erledigt
- doppelt
- zwei
- im
- jeder
- einfacher
- leicht
- Anstrengung
- entweder
- beseitigen
- eliminieren
- sonst
- betonen
- beschäftigt
- ermöglichen
- freigegeben
- ermöglicht
- Ende
- erzwingen
- genug
- gewährleisten
- Gewährleistung
- Eingabe
- verlockend
- Ganz
- vollständig
- Einheit
- Ausrüstung
- Fehler
- insbesondere
- essential
- im Wesentlichen
- etablieren
- etc
- Auswertung
- Sogar
- ÜBERHAUPT
- Jedes
- alles
- genau
- Beispiel
- Beispiele
- aufgeregt
- ausführen
- ausgeführt
- Training
- Existenz
- erwartet
- ERFAHRUNGEN
- Ablauf
- Ausnutzen
- erforscht
- exportieren
- erweitert
- extern
- Extrem
- erleichtern
- Faktoren
- scheitert
- Scheitern
- ziemlich
- Fallen
- weit
- Merkmal
- Eigenschaften
- Februar
- wenige
- Finale
- Revolution
- Finanzgeschichte
- Finden Sie
- Vorname
- flexibel
- Flip
- Setzen Sie mit Achtsamkeit
- Folgende
- folgt
- Aussichten für
- für immer
- vorwärts
- vier
- Gerüste
- häufig
- Freund
- für
- voller
- voll
- Funktionalität
- Fonds
- Mittel
- Außerdem
- zwecklos
- Zukunft
- allgemeiner Zweck
- allgemein
- erzeugen
- erzeugt
- erzeugt
- Erzeugung
- Generation
- gegeben
- Go
- gehen
- gut
- groß
- sehr
- hätten
- Hälfte
- Hardware
- Hardwaregerät
- Hardware Wallet
- Hardware-Wallet-Hersteller
- Hardware-Geldbörsen
- schädlich
- Haben
- mit
- Hilfe
- daher
- Geschichte
- ein Geschenk
- Gastgeber
- gehostet
- HEISS
- Ultraschall
- aber
- http
- HTTPS
- riesig
- Humans
- Idee
- ideal
- Ideen
- identifizieren
- if
- sofort
- Impact der HXNUMXO Observatorien
- Auswirkungen
- umgesetzt
- importieren
- wichtig
- unmöglich
- zu unterstützen,
- in
- Dazu gehören
- Einschließlich
- einarbeiten
- Steigert
- unglaublich
- in der Tat
- unabhängig
- Individuell
- Energiegewinnung
- Information
- von Natur aus
- Anfangs-
- innerhalb
- Insider
- inspirieren
- Installieren
- Instanz
- beantragen müssen
- absichtlich
- interagieren
- interaktive
- Interesse
- interessiert
- interessant
- Schnittstelle
- in
- einführen
- eingeführt
- Stellt vor
- aufdringlich
- Beteiligung
- Beteiligung
- Problem
- IT
- SEINE
- selbst
- nur
- nur einer
- Wesentliche
- Tasten
- Wissen
- Wissen
- bekannt
- Landschaft
- Sprache
- Laptop
- Nachname
- später
- Anwalt
- umwandeln
- LERNEN
- lernen
- am wenigsten
- Ledger
- links
- legitim
- weniger
- lassen
- Niveau
- Nutzung
- Gefällt mir
- wahrscheinlich
- verknüpft
- Gelistet
- Laden
- aus einer regionalen
- Standorte
- verschlossen
- Lang
- länger
- aussehen
- aussehen wie
- verlieren
- verlieren
- Verlust
- Verluste
- verloren
- Maschine
- Main
- Mehrheit
- um
- MACHT
- Making
- Malware
- Managed
- flächendeckende Gesundheitsprogramme
- manipulieren
- Weise
- Hersteller
- Hersteller
- viele
- März
- Spiel
- Kann..
- Mittel
- Maßnahmen
- Mechanismus
- mittlere
- erwähnt
- nur
- Nachricht
- Nachrichten
- Methode
- Methoden
- Miami
- könnte
- Miniskript
- Minderheit
- Minuten
- Ziel
- Fehler
- Modell
- Geld
- Überwachung
- Monat
- mehr
- Zudem zeigt
- vor allem warme
- meist
- schlauer bewegen
- gerührt
- viel
- mehrere
- Multisig
- sollen
- Name
- sich nähern
- notwendig,
- Need
- erforderlich
- Bedürfnisse
- negativ
- Vernetzung
- hört niemals
- Neu
- News
- weiter
- schön
- nicht
- Nicht-technisch
- normal
- November
- November 2021
- jetzt an
- Anzahl
- Zahlen
- erhält
- of
- bieten
- bieten
- Angebote
- Offline-Bereich.
- on
- Einsteigen
- einmal
- EINEM
- Einsen
- einzige
- XNUMXh geöffnet
- Open-Source-
- öffnet
- die
- Einkauf & Prozesse
- Entwicklungsmöglichkeiten
- Optionen
- or
- Auftrag
- Andere
- Andernfalls
- UNSERE
- skizzierte
- aussen
- übrig
- Gesamt-
- Überblick
- besitzen
- Eigentümer
- Papier
- oberste
- Teil
- besonders
- Party
- Weg
- AUFMERKSAMKEIT
- Ausführen
- vielleicht
- Zeit
- permanent
- Phase
- Telefon
- Ort
- Länder/Regionen
- Plato
- Datenintelligenz von Plato
- PlatoData
- Points
- Punkte
- Politik durchzulesen
- Datenschutzrichtlinien
- Beliebt
- Möglichkeiten
- möglich
- gegebenenfalls
- Post
- Potenzial
- möglicherweise
- Werkzeuge
- Praktisch
- praktisch
- Praxis
- präzise
- genau
- vorhersagen
- Vorhersagbar
- Präsenz
- Gegenwart
- vorgeführt
- verhindern
- verhindert
- früher
- vorher
- in erster Linie
- primär
- Vor
- Datenschutz
- privat
- Private Key
- Private Schlüssel
- Aufgabenstellung:
- Probleme
- Verfahren
- Prozessdefinierung
- produziert
- Produziert
- produziert
- richtig
- immobilien
- Resorts
- vorgeschlage
- Risiken zu minimieren
- geschützt
- Schutz
- Sicherheit
- Protokoll
- Protokolle
- Belegen
- die
- vorausgesetzt
- Öffentlichkeit
- public Key
- öffentliche Schlüssel
- veröffentlichen
- veröffentlicht
- Publishing
- Zweck
- setzen
- Putting
- Frage
- Rennen
- zufällig
- Ransom
- lieber
- erreichen
- Lesen Sie mehr
- Leser
- Realisierung
- Grund
- Empfang
- kürzlich
- erkennen
- Rekord
- Erholung
- bezieht sich
- Registrieren
- eingetragen
- Registrieren
- verhältnismäßig
- Release
- freigegeben
- verlassen
- merken
- ersetzen
- vertreten
- vertreten
- Ruf
- erfordern
- falls angefordert
- erfordert
- was zu
- behalten
- Rückkehr
- zeigen
- Recht
- Risiko
- Risiken
- Riskant
- Fahrplan
- robust
- Robustheit
- Rollen
- Rollen
- Laufen
- läuft
- gleich
- Skalierbarkeit
- Scan
- Szenario
- Schema
- Regelungen
- Schnorr
- Bildschirm
- Skripte
- Zweite
- Abschnitt
- Verbindung
- sicher
- Sicherheitdienst
- sehen
- Samen
- Saatgut
- auf der Suche nach
- scheinen
- scheint
- SegWit
- Eigenverantwortung
- Sendung
- empfindlich
- geschickt
- getrennte
- kompensieren
- Setup
- mehrere
- Short
- sollte
- zeigte
- Schild
- Unterschriften
- signifikant
- bedeutend
- Unterzeichnung
- Schilder
- ähnlich
- Einfacher
- Vereinfachung
- da
- Single
- klein
- smart
- So
- Software
- Lösung
- Lösungen
- LÖSEN
- einige
- Jemand,
- bald
- anspruchsvoll
- Quelle
- Raumfahrt
- spezialisieren
- spezifisch
- Spezifikationen
- verbringen
- Ausgabe
- Standard
- steht
- beginnt
- Status
- Schritt
- Shritte
- Immer noch
- Lagerung
- gelagert
- Speicherung
- Strategien
- Stärke
- Schnur
- stark
- Kämpfen
- erfolgreich
- Erfolgreich
- so
- zusammenfassen
- Aufladung
- Support
- Unterstützung
- Unterstützt
- vermutet
- systemisch
- system~~POS=TRUNC
- Systeme und Techniken
- angehen
- Nehmen
- Pfahlwurzel
- Target
- Targeting
- Technische
- technisch
- Technologie
- AGB
- als
- zur Verbesserung der Gesundheitsgerechtigkeit
- Das
- Die Münzen
- ihr
- Sie
- sich
- dann
- Dort.
- damit
- deswegen
- Diese
- vom Nutzer definierten
- think
- Dritte
- fehlen uns die Worte.
- diejenigen
- Bedrohungen
- nach drei
- Schwelle
- Durch
- So
- Zeit
- Zeitaufwendig
- zu
- heute
- heutigen
- auch
- Werkzeuge
- Themen
- Gesamt
- gegenüber
- Spur
- verfolgen sind
- Streckenrekord
- Training
- Transaktion
- Transaktionen
- Übergänge
- Übersetzen
- Schatzkammer
- Bäume
- was immer dies auch sein sollte.
- Vertrauen
- vertraut
- vertrauenslos
- Wahrheit
- Twist
- XNUMX
- Typen
- typisch
- nicht fähig
- verstehen
- entfesselt
- nicht wie
- öffnen
- entsperrt
- unberechenbar
- bis
- mehr Stunden
- us
- Nutzbarkeit
- -
- benutzt
- Mitglied
- Benutzererfahrung
- Nutzer
- verwendet
- Verwendung von
- Nutzen
- seit
- Verwendung
- ux
- BESTÄTIGEN
- Vielfalt
- verschiedene
- riesig
- Verkäufer
- verified
- überprüfen
- Version
- sehr
- lebensfähig
- lebenswichtig
- Sicherheitslücken
- warten
- Wallet
- Börsen
- wollen
- wurde
- Weg..
- Wege
- we
- waren
- Was
- wann
- sobald
- ob
- welche
- während
- ganze
- warum
- Wikipedia
- werden wir
- mit
- .
- ohne
- Worte
- weltweit wie ausgehandelt und gekauft ausgeführt wird.
- würde
- geschrieben
- Falsch
- Jahr
- noch
- Du
- Ihr
- sich selbst
- Zephyrnet
- Null