Bitcoin Core

Finden Sie dieser Artikel interessant?

Bitcoin Core logo

Bitcoin Core (früher Bitcoin-Qt) ist der dritte Bitcoin-Client, der von Wladimir J. van der Laan auf der Grundlage des ursprünglichen Referenzcodes von Satoshi Nakamoto entwickelt wurde. Seit Version 0.5 ist es mit Bitcoind gebündelt. Bitcoin-Qt wurde seit Version 0.9.0 in Bitcoin Core umbenannt.

Bitcoin Core ist ein vollwertiger Client, der die Basis des Netzwerks bildet. Es zeichnet sich durch ein hohes Maß an Sicherheit, Vertraulichkeit und Stabilität aus. Es hat jedoch weniger Optionen und benötigt ziemlich viel Speicherplatz und Arbeitsspeicher. Die MIT Digital Currency Initiative finanziert einen Teil der Entwicklung von Bitcoin Core. Das Projekt verwaltet auch die Kryptografiebibliothek libsecp256k1.

Inhaltsverzeichnis

Bitcoin Core Übersicht

Versionen der Brieftasche

Bitcoin 0.1 wurde am 9. Januar 2009 von Satoshi Nakamoto mit nur Windows unterstützt. Dies wurde von einigen kleineren Bugfixing-Versionen gefolgt. Am 16. Dezember 2009 wurde Bitcoin 0.2 veröffentlicht. Es enthielt zum ersten Mal eine Linux-Version und nutzte Multi-Core-Prozessoren für das Mining. In der Version 0.3.2 hat Nakamoto Checkpoints als Sicherheit eingebaut. Nach der Veröffentlichung der Version 0.3.9 verließ Satoshi Nakamoto das Projekt und stoppte kurz darauf die Kommunikation in Online-Foren. Zu dieser Zeit wurde die Entwicklung der Software von einer großen Gruppe unabhängiger Entwickler durchgeführt, die als eine Gemeinschaft bezeichnet wird, von denen viele verschiedene Ideen hatten, wie man Bitcoin verbessern kann.

Zwischen 2011 und 2013 wurden neue Versionen der Software auf Bitcoin.org veröffentlicht. Entwickler wollten sich eher als Softwarehersteller auszeichnen als als Verfechter von Bitcoin und pflegen daher Bitcoincore.org nur für die Software

Bitcoin-Qt Version 0.5.0 wurde am 1. November 2011 veröffentlicht. Es führte ein Frontend ein, das das Qt User Interface Toolkit verwendet. Die Software verwendete zuvor Berkeley DB für das Datenbankmanagement. Entwickler haben in Release 0.8 auf LevelDB umgestellt, um die Blockchain-Synchronisationszeit zu reduzieren. Das Update zu dieser Veröffentlichung führte am 11. März 2013 zu einer kleinen Blockchain-Forks. Das Fork wurde kurz danach gelöst. Ab Version 0.9.0 wurde die Software in Bitcoin Core umbenannt. Die Transaktionsgebühren wurden erneut um den Faktor zehn reduziert, um die Mikrotransaktionen zu fördern. Obwohl Bitcoin Core OpenSSL nicht für den Betrieb des Netzwerks verwendet, hat die Software OpenSSL für Remote-Prozeduraufrufe verwendet. Version 0.9.1 wurde veröffentlicht, um die Sicherheitslücke des Netzwerks gegenüber dem Heartbleed-Fehler zu beseitigen.

Release 0.10 wurde am 16. Februar 2015 veröffentlicht. Es wurde eine Konsensbibliothek eingerichtet, die den Programmierern einen einfachen Zugang zu den Regeln für den Konsens im Netzwerk bot. Die Entwickler haben erklärt, dass für einen Konsens über Soft-Forks eine Über-Mehrheit von 95% der Hash-Power für die Zustimmung benötigt wird. In Version 0.11.2 haben Entwickler eine neue Funktion hinzugefügt, mit der Transaktionen bis zu einem bestimmten Zeitpunkt in der Zukunft nicht mehr gesendet werden können. Bitcoin Core 0.12.1 wurde am 15. April 2016 veröffentlicht und ermöglichte die gleichzeitige Ausführung mehrerer Soft-Forks. Rund 100 Mitwirkende arbeiteten an Bitcoin Core 0.13.0, das am 23. August 2016 veröffentlicht wurde. Es wurden mehr als zehn signifikante Änderungen eingeführt.

Im Juli 2016 wurde der Soft-Fork CheckSequenceVerify aktiviert.

Im Oktober 2016 enthielt Bitcoin Cores Version 0.13.1 den “Segwit” Soft Fork, der eine Skalierungsverbesserung zur Optimierung der Bitcoin-Blockgröße enthielt. Der Patch wurde ursprünglich im April fertiggestellt und 35 Entwickler wurden mit der Bereitstellung beauftragt. In dieser Version wurde Seggregated Witness (SegWit) vorgestellt, das die Transaktionsgebühren unter Druck setzen und die maximale Transaktionskapazität des Netzwerks erhöhen sollte. Die Version 0.13.1 musste umfangreiche Tests und Recherchen durchführen, die zu Verzögerungen bei der Veröffentlichung führten. SegWit verhindert verschiedene Formen der Transaktionsformbarkeit. SegWit wurde am 24. August 2017 in Block 481,824 von Bergleuten aktiviert.

Bitcoin Core Blockchain

Der ursprüngliche Ersteller des Bitcoin-Clients hat seine Herangehensweise an die Urheberschaft der Software beschrieben, als sie zuerst geschrieben wurde, um sich selbst zu beweisen, dass das Konzept von reinem Peer-to-Peer-elektronischem Geld gültig ist und dass ein Papier mit Lösungen geschrieben werden könnte. Während die Mehrheit der Peers im Netzwerk Bitcoin Core verwenden kann, ist der Einfluss der Entwickler auf Bitcoin durch die Wahl der Implementierung eingeschränkt, die die Leute freiwillig verwenden. Der Hauptentwickler ist Wladimir J. van der Laan, der die Rolle am 8. April 2014 übernahm. Gavin Andresen war der ehemalige Lead-Maintainer für den Software-Client. Andresen verließ die Rolle des leitenden Entwicklers für Bitcoin, um an der strategischen Entwicklung seiner Technologie zu arbeiten. Er ist gegangen, weil er sich nicht mit trivialen Entscheidungen beschäftigen wollte.

Der Code wurde ursprünglich in Sourceforge gespeichert, bevor er auf GitHub verfügbar war. Es gibt keine formale Struktur, die Entwicklung basiert auf Bitcoin Improvement Proposals oder BIPs, die dem Request for Comments ähnlich sind. Öffentliche Mailinglisten werden verwendet, um erste Ideenausdrücke zu überprüfen. Wenn genügend Unterstützung angezeigt wird, wird ein BIP-Dokument geschrieben. Dies ist der Standard für das Teilen von Ideen und das Gewinnen von Community-Feedback zur Verbesserung von Bitcoin und wurde 2011 von Amir Taaki initiiert.

Die Roadmap für den Client enthält Datenverbindungsschichtlösungen für die Skalierbarkeit. Core-Entwickler betrachten Bitcoin als Settlement-Layer. Bitcoin Core ist eine von mehreren Vollknoten-Client-Implementierungen, die aktiv bereitgestellt werden. Alternativen sind Bitcoin XT, Bitcoin Classic und Bitcoin Unlimited. Alle sind von Bitcoin Core abgeleitet und enthalten die Implementierung von Hard-Fork-Vorschlägen. Diese Software-Gabeln ermöglichen Bitcoin-Minern, ihre Stimme über die Richtung der Bitcoin-Entwicklung zu demonstrieren.

Core-Entwickler ziehen es vor, Bitcoins Transaktionsverarbeitungsfähigkeiten schrittweise zu erweitern. Core-Entwickler glauben an die Prämisse, dass Barrieren für das Betreiben eines vollständigen Bitcoin-Core-Knotens möglichst gering gehalten werden sollten, damit die Blockchain-Schicht auf der untersten Ebene hochgradig dezentralisiert bleibt. Der Kern hat den Ruf, risikoscheu zu sein. Dies zeigt sich in der Zurückhaltung der Core-Entwickler, die Fähigkeit des Netzwerks zur Verarbeitung von Transaktionen zu erhöhen.

Bitcoin Core Brieftaschenfunktionen

Wie Funktioniert Bitcoin Core

Bitcoin Core enthält eine Transaktionsverifikations-Engine und stellt eine Verbindung zum Bitcoin-Netzwerk als vollständigen Bitcoin-Core-Knoten her. Eine Kryptowährungs Brieftasche ist standardmäßig enthalten. Die Brieftasche ermöglicht das Senden und Empfangen von Bitcoins. Es erleichtert nicht den Kauf oder Verkauf von Bitcoin. Es ermöglicht Benutzern, QR-Codes zu generieren, um Zahlungen zu erhalten.

Die Software validiert die gesamte Blockchain, die alle Bitcoin-Transaktionen enthält. Dieses verteilte Hauptbuch, das eine Größe von mehr als 130 Gigabyte erreicht hat, muss heruntergeladen oder synchronisiert werden, bevor eine vollständige Teilnahme des Clients erfolgen kann. Ein Kommandozeilen-basierter Daemon mit einer JSON-RPC-Schnittstelle ist mit Bitcoin Core gebündelt. Es bietet Zugriff auf testnet, eine globale Testumgebung, die das Bitcoin-Hauptnetzwerk oder Hauptnet imitiert. Es verwendet eine alternative Blockchain, bei der kein echtes Bitcoin verwendet wird und die Blockchain nicht beeinträchtigt werden kann. Der Regtest- oder Regressionstestmodus erstellt eine private Blockchain, die als lokale Testumgebung verwendet wird. Bitcoin-Client ist das dritte Programm enthalten. Es ermöglicht Benutzern, RPC-Befehle an Bitcoin zu senden.

Checkpoints wurden in den Client festgeschrieben. Sie erhalten die Datenintegrität, indem sie einen Teil der Blockkettendaten im Quellcode behalten, wo sie mit der Blockchain verglichen werden können, wenn der Download abgeschlossen ist. Eine Blockgröße von einem Megabyte wurde 2010 von Satoshi Nakamoto als vorübergehende Anti-Spam-Maßnahme hinzugefügt. Dies begrenzte die maximale Netzwerkkapazität auf ungefähr drei Transaktionen pro Sekunde. Seitdem haben kleinere Änderungen an der Software die Netzwerkkapazität schrittweise verbessert. Ein Netzwerkwarnsystem wurde von Satoshi Nakamoto eingeführt, um Benutzer über wichtige Neuigkeiten bezüglich Bitcoins zu informieren. Im November 2016 war es im Ruhestand. Es war veraltet, da Nachrichten über Bitcoin jetzt weit verbreitet sind. Miners konnten ihre Entscheidung über die Einführung neuer Funktionen durch Abstimmung gemäß BIP9 signalisieren, diese Signalisierung ist jedoch ab BIP8 deaktiviert, und Miners können ab BIP8 nur neue Funktionen beschleunigen.

Eine leistungsfähige Skriptsprache wird verwendet, um Transaktionen zu definieren. Diese Forth-artige Sprache ist Teil eines von drei verschiedenen Apis. Es kann verschiedene Transaktionsparameter aktivieren. Das Skript verwendet zur Validierung die umgekehrte polnische Schreibweise. ScriptPubKey wird verwendet, um Transaktionen basierend auf einer Reihe von zukünftigen Bedingungen zu “sperren”. scriptSig wird verwendet, um diese Bedingungen zu erfüllen oder eine Transaktion zu “entsperren”. Operationen an den Daten werden von verschiedenen OP_Codes durchgeführt. Zwei Stapel werden verwendet – Haupt und Alt. Schlingen ist verboten.

  • Kompatibilität mit Linux (sowohl GNOME als auch KDE), Mac OS X und Windows
  • Alle Funktionen des ursprünglichen wxWidgets-Clients
  • Fordert Bestätigung vor dem Senden von Münzen
  • CSV-Export von Transaktionen
  • Klarere Transaktionsliste mit Statussymbolen und Echtzeitfilterung
  • Der Fortschrittsbalken beim ersten Block-Download
  • Sprachen: Niederländisch, Englisch, Deutsch, Chinesisch und viele mehr. Übersetzungen werden von Freiwilligen auf Transifex gemacht.
  • Senden Sie Unterstützung in der Benutzeroberfläche (Senden an mehrere Empfänger in einer Transaktion)
  • Unterstützung mehrerer Einheiten kann aufgeteilte Bitcoins (mBTC, μBTC) für Benutzer anzeigen, die große Zahlen mögen (nur Dezimaleinheiten)
  • Der Begrüßungsbildschirm mit Details zum Fortschritt
  • Debug-Fenster
  • Zahlungsanfragen (BIP 70)
  • Münzkontrolle
  • bitcoin-cli als RPC-Client, anstelle von Bitcoind ausführbar sowohl als Server als auch als RPC-Client

Die Kritik

Synchronisierungszeit

Bitcoin Core wird oft dafür kritisiert, dass es langsam ist, die Bitcoin-Transaktionsdatenbank (die Blockchain) herunterzuladen und zu verifizieren. Der Download ist möglicherweise schneller mit der Bootstrap-Methode. HINWEIS: Ab Version 0.10.0 ist es jetzt langsamer, die Blockchain über den Torrent herunterzuladen, als die komplette Blockchain über den P2P-Client herunterzuladen.

Bandbreite verwenden

Die meisten modernen Router unterstützen eine Dienstgüte, die so konfiguriert werden kann, dass sie die Internetverbindung über alle Dienste hinweg korrekt teilt und sogar den Bitcoin-Verkehr beeinträchtigt. Bitcoin Core enthält ein Skript für Linux, um QoS auf einem einzelnen Host zu konfigurieren. Windows-Benutzer können auch Software von Drittanbietern wie Netbalancer verwenden, um die Upload-Bandbreite der Anwendung zu drosseln und sicherzustellen, dass eine ausreichende Upload-Bandbreite für die normale Computer- und Internetnutzung verfügbar ist.

Zu den Nachteilen von Bitcoin Core gehört Folgendes:

  1. Benötigt eine sehr lange Synchronisationsbrieftasche;
  2. Bitcoin Core hat spezielle Anforderungen für PC-Hardware;
  3. Ein voll ausgelasteter Bitcoin Core-Client wiegt etwa 92 Gigabyte. Sie benötigen also viel freien Speicherplatz auf der Festplatte.

Bitcoin Verbesserungsvorschläge

Ein Bitcoin Improvement Proposal (BIP) ist ein Design-Dokument, das in der Regel ein neues Feature für Bitcoin mit einer präzisen technischen Spezifikation des Features und der Begründung dafür beschreibt. Dies ähnelt weitgehend der Art und Weise, in der die “RFCs” (Request for Comments) des Internets und die “Python Enhancement Proposals” (PEPs) der Python-Computersprache verwendet werden.

Der Prozess selbst ist in BIP 2 dokumentiert, und BIP 123 bietet eine Kategorisierung.

2 BIP-Prozess, überarbeitet
BIP 2 gibt den BIP-Prozess an. BIP-Nummern werden großzügig vergeben. Bis Februar 2017 wurden 152 BIP-Nummern vergeben, aber nur 27 BIPs haben die aktive/letzte Stufe erreicht.

9 Versionsbits mit Timeout und Verzögerung
BIP spezifiziert eine Zustandsmaschine zum Bestimmen eines 95% Miner-Konsensus von weichen Forks. Es gab eine erfolgreiche BIP 9 Softfork, und eine davon ist (Segregated Witness), ab 2017 offen für die Abstimmung.

16 Pay to Skript-Hash
Ermöglicht das Senden von Transaktionen an einen Skript-Hash (Bitcoin-Core-Adresse beginnend mit 3) anstelle eines öffentlichen Schlüssel-Hashs (Adressen beginnend mit 1). Um Bitcoins auszugeben, die über P2SH gesendet werden, muss der Empfänger ein Skript bereitstellen, das dem Skript-Hash entspricht, und Daten, die das Skript als wahr auswerten. Der Empfänger benötigt möglicherweise die Signaturen mehrerer Personen, um diese Bitcoins auszugeben, oder ein Kennwort ist möglicherweise erforderlich, oder die Anforderungen können vollständig eindeutig sein.

32 Definiert HD-Geldbörsen
Diese HD (“Hierarchical Deterministic”) – Brieftaschen können teilweise oder vollständig mit verschiedenen Systemen geteilt werden.

39 Mnemonischer Code oder Sätze
Für die Generierung von deterministischen Brieftaschen.

43 Fügt ein “Purpose Field” für die Verwendung von HD-Brieftaschen hinzu
Um die weitere Struktur zu bestimmen; Zum Beispiel sollte das in BIP44 beschriebene Schema den Wert 44 ‘als “Zweck” verwenden.

44 Logische Hierarchie für deterministische Geldbörsen
basierend auf dem in BIP32 beschriebenen Algorithmus und dem in BIP43 beschriebenen “Zweck” -Schema.

65 CHECKLOCKTIMEVERIFY
CLTV ermöglicht die Ausgabe einer Transaktionsausgabe bis zu einem bestimmten Zeitpunkt in der Zukunft.

112 CHECKSEQUENCEVERIFY
CSV ermöglicht das Erstellen einer Bitcoin-Core-Adresse (beginnend mit 3), die Bitcoin für eine bestimmte Zeit nach dem Empfang nicht ausgeben kann. Man kann eine 2-aus-3-Multiadresse haben, die zu einer Backup-Regel ausläuft, es sei denn, es gibt den 2-von-3-Konsensus.

Siehe auch auf BitcoinWiki

Ressourcen