Posts Tagged ‘Wallet’

CryptoCoin Wallets – the wind of change

Motivation

Habe ich noch vor kurzem über Wallets die absoluten Basics geschrieben und bin dabei nur davon ausgegangen, dass man seine BitCoins sicher verwahren möchte so hat sich das gerade geändert. Der BitCoin hat zugelegt und die Anzahl der täglichen Transaktionen liegt am Limit. Dann plötzlich Einigkeit, man will was tun und zwar jetzt. Es gibt einen 2 stufigen Kompromis, keiner ist damit zufrieden und es liegt die Gefahr im Raum, dass nach Stufe 1 die 2. einfach boykottiert wird. Dann besteht die Gefahr von Gegenaktionen und einer Hardfork. Bei der ganzen Krise zeigt sich die Konstanz des Ethereum welcher nun so stark gewurden ist und ein Flipping herauf beschwören kann.

Was hat das mit Wallets zu tun? Ok, im Wallet sollen die Coins sicher liegen. Bisher kein Problem es ging um BitCoins und da gab es nur eine Kette. Aber jetzt muss man sich schon die Frage stellen: „Welche Coins“. Sollen es BitCoins sein? Heißen die morgen schon BitCoin classic? Kann ich das Wallet dann noch nutzen? Soll ich lieber komplet in ETH tauschen?Wo kann ich die dann speichern? Wie kann ich überhaupt tauschen? Brauch ich einen Account bei einer Börse wie Kraken? Was ist eigentlich ShapeShift und wozu brauch ich das?  Ne Menge Fragen und die Antworten gibt es schon lange, sie wollen nur gefunden sein.

Ganz klar also der Fall – heute will keiner mehr das Risiko eingehen und nur eine Währung in seiner Wallet verwalten können.

Begriffe im Umfeld von Wallets

  • Full Node Saugt die gesamte Blockchain herunter und validiert diese. Benötigt somit viel Zeit bevor das Wallet genutzt werden kann. Aktuell wird eine Größe von über 1 GB geladen und ausgewertet was durchaus eine Woche laufenden Rechner bedeuten kann.
  • Light Mode Wallet Führ die Validierung der Blockchain durch bestimmte Baumknoten durch. Es wird ein Server gefragt ob er zu bestimmten Knoten Hashes liefern kann. Diese sind speziell gewählt, so dass eine anhängende Transaktion verifiziert werden kann.
  • Asset Wallet Ein Wallet welches verschiedene Coin Arten speichern kann.
  • BitCoin Wallet Im Gegensatz zum Asset Wallet, nur geeignet zur Speicherung von Guthaben in der Währung BTC.
  • Multi-Sig Wallet Unterstützung für Gemeinschaftskonten (z.B. für Firmen oder Vereine). Es kann festgelegt werden wieviele Kontoinhaber existieren und wieviele Unterschriften von der Gruppe für eine gültige Transaktion benötigt werden. 2 von 4 heißt mindestens 2 Leute von den 4 Kontoinhabern müssen gegenzeichnen für eine abgebende Buchung.
  • Seed Es gibt Wallets welche jederzeit und an verschiedenen Orten aus einer festgelegten Anzahl von Wörtern wieder erstellt werden können. Somit sind die Guthaben nie verloren, solange die Wörter (der Seed) bekannt sind. Der Seed sollte niemals irgendjemanden gezeigt werden. Nur der Eigentümer selbst sollte den Seed kennen und die App darf den Seed auch nicht an einen Server senden. Beispiele: Trezor, Jaxx, Electrum, Mycelium, …
  • One-time Backup Das Konto kann jederzeit aus einem Seed wieder hergestellt werden.
  • Transaktion Fee Transaktionsgebühr, fällt in der Regel beim Mining an.
  • Paper Wallet  Ein Stück Papier auf dem sowohl der Private Key als auch der öffentliche Key eines Kontos aufgedruckt wurde. Jeder wer diese Keys besitzt kann über den Betrag des Kontos verfügen. Wer Ausversehen in einem Erklärvideo sein Paperwallet auf youtube veröffentlicht, kann sicher sein dass es binnen Minuten leer sein wird.

Kriterien bei der Wahl des Wallets

  • Node Art Praktikabel sind nur Light Mode Wallets
  • Coin Art In Zeiten in denen nicht klar ist welche Währung das Rennen macht sollte man sich für ein Asset Wallet entscheiden um möglichst viele Coin Arten zu unterstützen und auf Marktänderungen schnell reagieren zu können.
  • ShapeShift Integration Wallets mit ShapeShift Integration sind sehr praktisch da hiermit der Umweg über die Börse wegfällt und das Wechseln eines Coin in einen Anderen zum Kinderspiel wird. Shapeshift benötigt keinen Account sondern einfach nur Quell- und Zieladresse und die Quell- und Ziel Coin Art um den Wechsel durchführen zu können. Shapeshift arbeitet mit fixen Transaktions Feeds.
  • MultiSig für Unternehmen und Gruppen unverzichtbar für Einzelpersonen nice to have. Evtl. gibt es aktuell aber keine Wallet welche MutiSig und Multi Coin (Asset) zugleich unterstützt.
  • Backup veraltete Variante der Sicherung von Wallets bei der eine komplette Datei mit Schlüsseln und Providerzusätzen an einen anderen Ort (z.B. Festplatte) kopiert wird. Sollte nicht mehr benötigt werden und durch One-time Backup ersetzt werden (Wallets mit Seed).
  • Transaktion Fee Das Wallet sollte einen sinnvollen Vorschlag für einen Fee anbieten, evtl. sogar eine 3 stufige Voreinstellung gering, normal, viel. Der Fee sollte aber stets vom User anpassbar sein, falls er mal eine dringende Transaktion sofort durchbringen muss.
  • Dynamischer Fee Das Wallet sollte das nachträgliche Erhöhen des Fees einer Transaktion ermöglichen. Dies ist sinnvoll wenn die Transaktion hängen bleibt weil kein Miner sie will (Miner arbeiten bevorzugt Transaktionen mit hohen Fees ab, da damit ein höherer Gewinn zu erzielen ist).
  • PIN Schutz  Der Schutz des Wallets mit einer PIN ist der minimalste Schutz vor unberechtigten Zugriff. Darauf sollte auf keinen Fall verzichtet werden.
  • Display Keys Das Wallet sollte es ermöglichen die privaten und öffentlichen Keys sowie den Seed anzuzeigen. Nur sinnvoll wenn das Wallet mit einer PIN geschützt werden kann.
  • Import Paper Wallet Um Paperwallets nutzen zu können benötigt man eine Import Möglichkeit. Hat man nicht vor Paper Wallets zu nutzen ist diese Walleteigenschaft belanglos (Jaxx bietet beispielsweise Support).
  • Hardware Wallet Falls man Hardware Wallets (Trezor, etc. ) nutzen möchte sollte die App auch den Zugriff auf diese unterstützen. Da Coins nur im Cold Wallet, Hardwarewallet oder Paperwallet wirklich sicher sind, sollte man diese Option bevorzugen (Mycelium und Electrum bieten beispielsweise Support für Trezor).
  • Betriebsystem  Das gewählte Wallet sollte möglichst viele Betriebssysteme unterstützen, üblich sind: Linux, Windows, Mac, IOS, Android.
  • Open Source Wenn bei einengender Wahl der Wallets noch mehr als eins am Schluß übrig blieb, sollte man sich für das Open Source Wallet entscheiden. Einfach um die Vorteile von Open Source genießen zu können. Jeder kann es später weiterentwickeln falls der Entwickler stirbt und der Code kann von jedermann überprüft werden.

Meine persönliche Auswahl

Nur zur Info für welche Kombi ich mich entschieden habe – teils auch weil ich die Wallets schon besaß.

  • Hardware Wallet für sichere, langfristige Speicherung meiner Guthaben in BitCoin ist Trezor. Demnächst will ich prüfen ob ich dort auch andere Coin Arten lagern kann. Mit aktuellen Trezors scheint es zu gehen aber meinen hab ich schon ein paar Jahre. Mal schauen ob er upgradefähig ist.
  • Mycelium (Handy) und Electrum (PC und Handy)  um auf Trezor zugreifen zu können.
  • Jaxx ab heute um diverse Coin Arten in einer Wallet speichern zu können und über die Shapeshift Integration schnell wechseln zu können.
  • Zukünftig will ich Exodus für mein Linux Laptop prüfen. Exodus soll besser sein als Jaxx aber nur für PC verfügbar – Jaxx ist dafür nur fürs Handy verfügbar. Also ich bin gespannt.
  • Wirex Debit Card – Prepaid Visa Plastic Card auf Euro. Aufladbar mit diversen Altcoins. Ausgebbar überalls wo Visa akzeptiert wird 🙂

(Eure Auswahl und evtl. Gründe warum ihr Euch so entschieden habt – gern in die Kommentare – nutzt eigentlich jemand duniter als Coin?)

Siehe auch:

Advertisements

BitCoins sicher speichern

Flattr this

Motivation

Wer wie ich eine Weile mit BitCoins herumgespielt und alles mögliche ausprobiert hat fängt an die Art des Bezahlens zu mögen. Doch bisher ging es nur um Spielgeld. Hier mal 10 € und dort mal 20 € und monatlich an der Börse evtl. 50 € in BitCoins getauscht. Jetzt aber, wenn man richtig einsteigt, seine Geschäfte gefunden hat bei denen man bezahlen kann dann häufen sich die BitCoins langsam im Wallet z.B. um auf einen neuen Laptop zu sparen. Dabei stellt man sich unweigerlich die Frage – wie sicher bin ich aktuell eigentlich schon unterwegs? Am Ende wird man feststellen: „Ich brauche ein sicheres Wallet“. Dieser Artikel beschreibt meine ausprobierten Lösungen dazu. 

Sicherheitsaspekte

Wie sicher bin ich also unterwegs.  Gehen wir das doch mal durch. Die BitCoins kaufe ich auf http://www.bitcoin.de. Dort melde ich mich über 2 Phasen Authentication an. Zunächst Nutzername/Passwort und dann die Zahl (timepad)  aus dem google Authenticator. Um Transaktionen sehr schnell durchführen zu können habe ich ein physisches Konto bei der Fidor Bank und habe BitCoin.de mit Fidor über ein entsprechendes API im Portal verbunden. Technisch kümmern sich da Bank und Börse drum, ich muss nix tun außer Geld auf dem Fidor Konto zur Verwendung auf bitcoin.de freischalten. Mir stellt sich der Vorgang wie beim Reservieren von Beträgen auf einer Kreditkarte dar. Anschließend kaufe ich die BitCoins auf bitcoin.de. Minuten später liegen diese auf bitcoin.de. Letzteres ist eine Online-Börse mit Servern in Deutschland und hohen Sicherheitsauflagen aber dennoch technisch gesehen das Gleiche wie Mt. Gox und kann damit also jederzeit vom Netz genommen werden ohne einen BitCoin auszuzahlen. Daher sollten die erworbenen BitCoins in einem eigenen sicheren Wallet abgelegt werden.

Die Börse ist Ihr Bankautomat

Ab jetzt geht es also nur noch um die Sicherheit des Wallets selber. Der komplette Workflow bislang kann als sicher angesehen werden, da die Unternehmen in der Regel ihr Bestes geben aber vor allem da es sich bei diesem Workflow um den temporären Transfer kleiner Beträge handelt. Selbst wenn hier etwas schiefgeht ist nicht das ganze Geld verloren sondern nur das gerade erworbene – von daher ist es natürlich sinnvoll nicht gleich große Mengen von BitCoins an der Börse zu erwerben sondern lieber mehrmals kleine Beträge zu kaufen. Welches Risiko man bei der Höhe der Geldbeträge eingeht hängt von einem selbst ab. Vergleichbar ist die Situation mit dem Abheben am Bankautomaten. Heben Sie vor dem Einkauf 100 € ab oder das gesamte Budget für den Monat? Und falls Sie ein Haus kaufen wollen – holen Sie das Geld vom Bankautomaten und bringen es persönlich zum Verkäufer oder organisieren Sie die Übergabe bargeldlos? Also genauso ist es beim Kauf von BitCoins an einer OnlineBörse. Die Börse ist Ihr Bankautomat und Sie werden und sollten dort keine riesigen Summen kaufen – zumindest nicht auf ein Mal und nicht bevor die zuvor gekauften Coins in Ihrem sicheren Wallet gelandet sind.

Clientarten und ihre Wallets

Jede BitCoin App mit der sich Überweisungen und Käufe tätigen lassen bringt bisher auch ein eigenes Wallet mit.

bitcoin core

Nun meine erste BitCoin Anwendung auf dem Computer war bitcoin core, heruntergeladen von bitcoin.org. Das Wallet der Anwendung lässt sich an einen sicheren Ort wegspeichern und mit einer Passphrase schützen. Gut das genügt generell, dennoch sah ich folgende Probleme. Die Anwendung arbeitet als Full Node Client. Das bedeutet das die komplette Blockchain erstmal heruntergeladen wird und das sind inzwischen mehr als 17 GByte! Das dauert teilweise einige Tage – vorher ist das Wallet nicht sicher einsatzbereit. Möglicherweise wird auch der Platz auf dem Rechner dann etwas knapp. Wie auch immer jedenfalls wenn die Anwendung einige Tage oder gar Wochen nicht gestartet wird, muss diese beim ersten Start die fehlenden Deltas der Blockchain herunterladen – das dauert schon wieder. Da ist mal nix mit ein Jahr nicht nutzen und dann mal eben schnell überweisen. Full Node Clients sind für das Netzwerk notwendig aber für den Nutzer nur hinderlich. Von daher ist es mir egal wie sicher es wirklich ist es wird gekickt. Auch ist ein Punkt zu beachten. Falls das Backup vom Wallet mal zerstört, gelöscht oder anderweitig verloren geht und das Original evtl. auch ist kein Recovering möglich – alles ist futsch. Den gleichen Effekt hat auch eine vergessene Passphrase – niemand wird das Wallet wieder öffnen können.

SPV Clients

Mein nächster BitCoin Client war das bitcoin Wallet von Andreas Schildbach auf Android. Hierbei handelt es sich um einen SPV (Simplified Payment Verification) Client. Dieser saugt nun nicht mehr die komplette Blockchain aus dem Netz sondern bedient sich der Header aus der Blockchain. Er filtert aus allen Headern der Chain die heraus welche die eigenen Walletadressen betreffen (Bloom Filter). Dies kann er nur tun indem er Kontakt zu Full Node Clients aufnimmt, weshalb diese im Netz möglichst zahlreich vertreten sein sollen. Auch dieser Client kann sein Wallet mit einer Passphrase schützen und exportieren. Als Exportort kann man dropbox wählen besser wäre aber irgendwas mit Verschlüsselung wie wuala (war sehr gut und vermutlich deshalb abgeschaltet) oder Tresorit (geht so als temporäre Lösung). Was bleibt ist genau diese fade Nachgeschmack: „Jetzt liegt mein ganzes Geld im Wallet und das Wallet auf Wuala, Tresorit oder dropbox und was wenn die mal crashen oder gehackt werden?“. Also war das wohl noch nicht die angestrebte Lösung. Außerdem ist Recovering des Wallets glaube auch hier noch nicht möglich.

Serverabhängige Clients

Also suchte ich weiter. Der nächste Client war Elektrum. Dieser Client ist auf eine Serverfarm im Internet angewiesen. Diese Server stellen die Full Node Clients bereit und der Client kann effizient auf deren Informationen zugreifen. Somit muss auch Elektrum die Blockchain nicht erst herunterladen. Daher ist der Client sofort einsatzbereit und natürlich lässt sich das Wallet per Passphrase schützen und es lässt sich auch ein Backup exportieren. Allerdings ist man darauf festgelegt den dedizierten Servern zu trauen. Da diese Open Source sind ist die Hürde schnell genommen. Was jetzt als enormer Pluspunkt hinzukommt ist das Recovering. Jedes Wallet gibt nach seiner Erstellung einen sogenannten Seed von sich Preis. Das ist eine Folge von z.B. 24 Wörtern. Diese Wörter sollte man aufschreiben und an einem sicheren Ort hinterlegen. Nun benötigt man eigentlich kein Backup mehr, denn das Wallet kann jederzeit aus dem Seed wiederhergestellt werden. Nach der Wiederherstellung sind auch alle BitCoins noch da selbst wenn das Wallet einem jetzt ganz andere Adressen als Empfangsadressen anzeigt. Das liegt ein bisl an der Magic von Public Key Verfahren und deren Verknüpfung mit den BitCoin Adressen und deren Beschreibung in der Blockchain. Den Teil dürfen wir einfach mal als technisch sicher annehmen, da genau das den Kern der BitCoin Verwaltung darstellt und dieser genügend öffentlich diskutiert wurde (Wer Details sucht befasse sich mit dem Problem „Die Byzantinischen Generäle“). Also was haben wir jetzt noch an Sicherheitsbedenken? Ein Backup brauchen wir nicht, nur die 24 Wörten müssen in einen physischen Safe gelegt werden, auf jedem Gerät auf dem ich Elektrum installieren kann ist es mir möglich mit diesen Wörtern mein aktuelles Wallet (wieder)herzustellen. Das Wallet selber kann und sollte ich mit einer Passphrase schützen. Einzig wenn die Serverfarm ausfällt oder behördlich abgeschaltet wird sitze ich dumm da, da mein Wallet evtl. nicht mehr funktioniert. Selbst wenn es noch funktioniert kann ich ohne Serverfarm keine Transaktionen mehr durchführen und die BitCoins können mein Wallet nicht mehr verlassen.

Hardwarewallets

Die Hardwarewallets (Trezor) welche ich bislang kenne sind komplett vom Client getrennt. Das heißt sie sind nur noch Wallets und man kann sie über beliebige Clients ansprechen welche natürlich das Protokoll verstehen müssen. Das Hardwarewallet generiert bei Inbetriebnahme einen Seed und damit auch diverse private Schlüssel für die zukünftigen BitCoin Empfangsadressen. Den Seed schreiben wir wieder auf und legen ihn im physischen Safe ab. Dann vergeben wir noch eine PIN welche später zur Bestätigung von Transaktionen benötigt wird.Die privaten Schlüssel werden das Hardwarewallet nie verlassen. Transaktionen die zu bestätigen sind werden vom Client z.B. Elektrum (ja das kann auch mit Hardwarewallets) oder Mycelium an das Hardwarewallet als unsignierte Transaktion gesendet. Das Hardwarewallet signiert die Transaktion und gibt sie an den Client zurück. Dies ist möglich da das Wallet selbst über eine CPU verfügt. Zur Bestätigung der Tranaktion ist natürlich Ihre PIN einzugeben. Diese PIN Eingabe ist bei Tresor richtig gut gelöst. Auf dem PC erscheint das Eingabefeld welches aussieht wie ein Telefonziffern Feld bei dem alle Ziffern durch Sterne ersetzt wurden. Auf dem Display des Hardwarewallets erscheint das gleiche Eingabefeld aber mit Ziffern. Sie müssen nun auf dem PC die richtigen Sterne drücken um ihre PIN einzugeben. Bei der nächsten Transaktion befinden sich die Ziffern natürlich an ganz anderen Stellen so das Keylogger und Capture Replay Tools keine Chance haben die PIN zu erraten oder erneut einzugeben. Mit dieser Kombination sind wir nun wie ich denke recht sicher unterwegs. Persönlich habe ich noch eine kleine zusätzliche Sicherung eingebaut um a die Bequemlichkeit zu erhöhen und b meine stets nach weiterer Sicherheit lechsende Magengrube zu befrieden. Ich habe mir noch ein 2. Hardwarewallet gekauft (Ledger) und nutze diese für die täglichen Transaktionen wie eine Geldbörse. Die monatlich gekauften BitCoins werden stets an das 1. Hardwarewallet gesendet. Der Vorteil diese muss nicht mal am Computer angeschlossen werden um diese zu empfangen. Erst wenn ich BitCoins ausgeben will schließe ich mein Trezor (1. Wallet) an den PC an und überweise einen kleinen Betrag für den heutigen Tag oder die aktuelle Woche z.B. 0,3 BTC auf mein Ledger (2.) Wallet. Mein Trezor geht danach wieder in den Safe und Ledger kommt in die Hosentasche. Klar ist hoffentlich das ich Ledger nie verlieren sollte. Aber auch in dem Fall gibt es Abhilfe welche in der Praxis aber evtl. so lange dauert das die Wallet bereits geknackt und geleert wurde. Aber auch dann ist nur ein kleiner Betrag verloren der Rest liegt immer noch schön auf meinem 1. Wallet auf Trezor.

Cold Wallets

Die einzigen Gefahren die ich jetzt noch sehe sind Schadprogramme wie Keylogger welche versuchen die PIN Eingaben mit zu schreiben, Trojaner und andere Programme welche versuchen an Kopien meiner Client Wallets zu kommen. Wenn es einem Angreifer gelingen sollte meinen Rechner so zu infiltrieren, dass er anschließend meine Client Wallet (Hot Wallet) und die eingegebene PIN bekommt dann kann er meine BitCoins aus der HotWallet ausgeben. Dies kann aus meiner Sicht nie passieren wenn gerade ein Hardwarewallet genutzt wird. Allerdings sonst schon. Daher kann man auch eine Wallet auf einem Rechner erstellen der niemals online geht (Cold Wallet). Von dieser lässt sich dann eine Watch-Only Wallet exportieren und auf dem Internetrechner im Hot-Walletbereich nutzen. Zum Signieren von Transaktionen ist jedoch der export einer unsignierten Transaktion z.B. per USB an die Cold Wallet notwendig, diese signiert dann offline und mit die signierte Transaktion geht per USB Stick wieder urück zur HotWallet welche diese dann im Netz bekannt gibt und diese in die Blockchain einarbeiten lässt.

Prinzipiell sind Cold Wallets der sicherste Weg seine BitCoins zu speichern aber eben auch der Umständlichste. Daher ist er bei größeren Beträgen auf jeden Fall zu gehen aber wer keine Ersparnisse in BTCs ablegt wird ihn vermutlich nie gehen müssen. Bitte auch beachten das es noch die Möglichkeit gibt Paper Wallets anzulegen. Letzlich muss das jeder für sich selbst entscheiden. Ich bleibe erstmal bei meiner Kombination aus Hardwarewallets.

Allen die bis jetzt noch Angst vorm BitCoin hatten weil sie nicht verstehen konnten wie das System funktioniert und denen daher auch die Sicherheit fehlte – all denen hoffe ich geholfen zu haben die Sicherheitsaspekte etwas besser zu verstehen. Abschließend noch ein paar Regeln die immer gelten sollten:

  • Jedes Wallet ist mit einer Passphrase oder zumindest mit einer PIN zu schützen, niemals das Öffnen einer Wallet ohne Sicherheitscode erlauben.
  • Tranaktionen müssen immer per PIN bestätigt werden, niemals Transaktionen ohne PIN Eingabe zulassen.
  • Ein Seed muss aufgeschrieben und an sicherem Ort verwahrt werden.

 

Nützliche Literatur