Bitcoin Core

Ø  Als Entwickler gelten Satoshi Nakamoto und weitere Personen

Ø  Programmiersprache ist C++

Ø  Betriebssysteme: Linux, Windows, MacOS

Ø  Mit-Lizenz mit Electrum

Ø  Bitcoin-Ot (Implementierung, Verwaltung der kompletten Blockchain mit Umfang 150 GB

Electrum

Ø  Entwickler Thomas Voegtlin

Ø  Programmiersprache ist Phyton

Ø  Betriebssysteme: Linux, Windows, MacOS, Android

Ø  Mit-Lizenz mit Bitcoin Core

Ø  Laden der Blockchain unnötig, Zugriff über Server, Wallets aus einem Seed generiert, von mehreren Geräten Zugriff auf Guthaben und dessen Nutzung.

Bitcoin Wallet

Ø  Entwickler Andreas Schildbach

Ø  Programmiersprache ist Java

Ø  Betriebssysteme: Android, Blackberry OS

Ø  Lizenz GPLv3

Ø  Nur verfügbar als App für Blackberry und Android; einfache Bedienung hohe Sicherheit von Web Services und Servern unabhängig

Hybrid Wallets auf Web-Basis

Im Web gibt es viele Dienste, die Online-Wallets anbieten. Wie sicher diese Wallets und die darin befindlichen Guthaben sind, hängt in erster Linie von der Vertrauenswürdigkeit des Anbieters, die nicht leicht verifizierbar ist sowie von der Sicherheit der Servier ab. Hybride Wallets sind eine echte Alternative zu Plattformen für mobile Endgeräte. Bei hybriden Wallets wird kein gängiger Bitcoin-Client angeboten. Vom Server des Anbieters wird der Code für die Ausführung geladen. Die persönliche Geheim-Schlüssel werden von der Client-Seite verschlüsselt und erst dann übertragen.

Technik

Peer-to-Peer-Netz

Die Bitcoin-Software braucht die Kenntnis der IP-Adressen von anderen Bitcoin-Nodes, damit sich der Teilnehmer in das Bitcoin-Netz einwählen kann. Das Domain Name System wird für die Initial-Suche nach weiteren Nodes, auch als Bootstrapping bekannt, verwendet. Um die IP-Adressen von weiteren Bitcoin-Nodes zu bekommen löst der Bitcoin-Client einen Domainnamen aus. In der Bitcoin-Software sind für diesen Vorgang verwendete Domainnamen fest integriert; die Mitglieder der Bitcoin-Community betreiben diese Services. Die bekannten IP-Adressen werden mit den derzeit verbundenen Bitcoin-Nodes ausgetauscht. Klappt das Bootstrapping nicht, wird auf die mitgeschickte Bitcoin-Nodes-Liste vom Bitcoin-Client zurückgegriffen.

Eine festgelegte Anzahl an Verbindungen zu verschiedenen anderen Bitcoin-Nodes wird durch den Bitcoin-Client offen gehalten. Dieses Vorgehen lässt ein nicht strukturiertes Overlay-Netz entstehen; ein Netz, das alle Bitcoin-Nodes mit- und untereinander verbindet.

Für das Bootstrapping verwendet man zu Beginn den Internet Relay Chat. Seine Adresse wurde vom Bitcoin-Client wie folgt kodiert: die eigene IP-Adresse, die Portnummer, Nickname Base58. Mit diesen Daten wählt sich Bitcoin-Client in einem der IRC-Channel ein. Sein Ziel war es aus den Nicknamen anderer Bitcoin-Nodes die IP-Adressen zu lesen. Zu Beginn verwendete man freenode. Je mehr Nutzer im Jahr 2010 auf irc.lfnet.org auswichen, entschied man sich für diese Software. In den neuen Software-Versionen ist das IRC nicht mehr im Bitcoin-Client vorhanden.

Skalierbarkeit

Das Ziel, das sich die Bitcoin-Entwickler gestellt haben, ist die Schaffung eines Systems, das auf das vorhandene Protokoll basiert, aber vergleichbar mit der Leistungsfähigkeit großer Zahlungsdienstleister ist. Nur derzeit vorhandene Netzwerke sind zwar skalierbar, jedoch mit Einschränkungen. Grund sind die Transaktionen der Teilnehmer, die alle das Peer-to-Peer-Netzwerk empfängt und speichern muss. Die hauptsächlichen Faktoren sind in der CPU-Leistung, die für die Verifikation eingehender Transaktionen und Blöcke benötigt wird, sowie in der Kapazität für das Speichern der Blöcke zu suchen. Auch die Bandbreite zum Empfang und Weiterversand von Transaktionen und Blöcken zählen limitierende Faktoren. Wird die Kapazität eines Teilnehmers aufgrund einer der beschriebenen Faktoren überstiegen, ist es für diesen Teilnehmer nicht mehr möglich am System teilzunehmen. Sobald eine Überschreitung der Kapazität das gesamte System betrifft, braucht es für die Bestätigung der Transaktionen viel mehr Zeit. Wollen die Teilnehmer ihre Bestätigungen schnell, müssen sie, damit ihre Zahlung Vorrang erhält, die Gebühren für die Transaktion erhöhen.

Die vereinfachte Form vom Bitcoin-Client, so Nakamoto in einem seiner Whitepaper würde schneller arbeiten. Eine Durchführung der vollständigen Verifikation der Ergebnisse fällt weg; man verlässt sich auf einen anderen Bitcoin-Core, der vertrauenswürdig ist. Damit beschrieb er die sogenannte Simplified Paymend Verification. Damit ist die Möglichkeit gegeben, über ein kleines Netz, das leistungsfähige Bitcoin-Nodes enthält, eine große Transaktions-Anzahl zu bearbeiten.

Die Skalierbarkeit von Bitcoin wurde viel kritisiert. Auch Dan Kaminsky, ein Sicherheitsexperte gehört zu den Kritikern. Erfolgt eine starke Steigerung von Transaktionen bräuchte das Netz Superknoten, weil für ganz normale Teilnehmer die für die Transaktionen Bandbreite und Rechnerkapazität viel zu aufwendig wäre, so die Meinung von Dan Kaminsky. Dies hätte jedoch Folgen für das Bitcoin-Netzwerk, weil derartige Superknoten zwangsläufig in ein hierarchisches und zentralisiertes Netzwerk führen und damit fundamental ganz andere Eigenschaften hätten als das aktuelle Netzwerk. Grund ist, dass die Superknoten im Grunde dieselbe Eigenschaft hätten, die aktuell auch Banken haben: Macht! Mit dieser Macht könnten nicht erwünschte Transaktionen abgelehnt werden.