BitcoinCore
| BitcoinCore | ||
|---|---|---|
|
| ||
|
| ||
| Allgemeine Information | ||
| Programmtyp | gratis Software | |
| Entwickler |
| |
| Erstveröffentlichung | 2009 | |
| Lizenz | MIT-Lizenz | |
| Technische Information | ||
| Eingeplant | ||
| Unterstützte Plattformen | ||
| Versionen | ||
| Neueste stabile Version | 23.025. April 2022 | |
| Verknüpfungen | ||
Bitcoin Core (auf Spanisch Nucleo de Bitcoin ) ist ein Open-Source-Projekt , eine Referenzimplementierung für Bitcoin (BTC)-Knoten und eine Brieftasche, die in der Lage ist, Zahlungen in Bitcoins autonom zu überprüfen. Auch als Satoshi-Client bekannt , ist er eine direkte Fortsetzung des ursprünglichen Bitcoin-Clients, der von Satoshi Nakamoto veröffentlicht wurde (später in „Bitcoin Core“ umbenannt). [ 1 ]
Es war der meistgenutzte Client von "Full Nodes" in der gesamten Geschichte des Bitcoin-Netzwerks. [ 2 ] Es erhält Beiträge von gelegentlichen Mitwirkenden und wird von einem Team von Entwicklern namens "Betreuer" gepflegt, wobei Wladimir J. van der Laan den Veröffentlichungsprozess leitet. [ 3 ] Einige seiner Entwicklungen wurden von der MIT Digital Currency Initiative finanziert . [ 4 ]
Das Projekt unterhält auch verwandte Software wie die Kryptobibliothek libsecp256k1 . [ 5 ]
Funktionen
Der Bitcoin Core-Client enthält eine Transaktionsverifizierungs-Engine und verbindet sich als vollständiger Knoten mit dem Netzwerk. Es enthält standardmäßig eine Bitcoin-Brieftasche, mit der Sie Geld empfangen und senden und QR-Codes generieren können . [ 5 ]
Speichert und validiert das gesamte Blockchain -Transaktionsprotokoll , über 253 Gigabyte (Stand: Januar 2019), das Sie herunterladen müssen, um es zu synchronisieren, bevor Sie mit dem Netzwerk interagieren können, obwohl Sie dazu nicht die gesamte Blockchain benötigen, da es ausgeführt werden kann im Beschneidungsmodus.
Es enthält einen Daemon namens bitcoind für die Verwendung auf der Befehlszeile und entfernte Prozeduraufrufe . Es bietet auch Zugriff auf das Testnetz , eine globale Sandbox, die das Bitcoin-Hauptnetz nachahmt, indem es eine alternative Blockchain verwendet, die Münzen namens "Bitcoin-Testnetz" verwendet, die keinen Marktwert haben. Durch einen Testmodus namens Regtest oder Regression Test Mode ist das Programm in der Lage, eine private Blockchain nach den gleichen Regeln wie das Bitcoin-Testnetz zu erstellen, wobei Interaktionen mit Peers und zufälligen Blöcken vermieden werden. [ 6 ] Zusätzlich enthält es ein einfaches Programm namens bitcoin-cli , mit dem Benutzer RPC-Befehle an Bitcoin senden können .
Es enthält einige hartcodierte Prüfpunkte, um DDoS -Angriffe auf Knoten zu verhindern, insbesondere während der Synchronisierungsphase [ 7 ] [ 8 ] und eine maximale Blockgröße von 1 MB, die 2010 von Satoshi Nakamoto hinzugefügt wurde, wodurch die maximale Netzwerkkapazität begrenzt wird etwa drei Transaktionen pro Sekunde. [ 9 ] Es hat Leistungsverbesserungen sowie eine "de facto" Erhöhung der Blockgröße erhalten, die durch die SegWit- Implementierung bewirkt wurde . Es enthielt ein Warnsystem, das von Satoshi Nakamoto eingebaut wurde, um Benutzer über wichtige Bitcoin-bezogene Neuigkeiten zu informieren, aber dieses wurde im November 2016 offiziell entfernt. [ 10 ]
Es enthält eine von Forth inspirierte Skriptsprache , die Transaktionen definieren und Parameter spezifizieren kann. [ 11 ] ScriptPubKey wird oft verwendet, um Transaktionen basierend auf einer Reihe zukünftiger Bedingungen zu "sperren". ScriptSig wird verwendet, um diese Bedingungen zu kennen oder eine Transaktion zu "entsperren". Operationen an den Daten werden von verschiedenen OP_Codes (auf Spanisch Operationscodes ) durchgeführt . Es werden zwei Stacks verwendet , main und alt . Schleifen ist verboten .
Bitcoin Core verwendet OpenTimestamps , um Git - Updates für seinen Quellcode mit einem Zeitstempel zu versehen. [ 12 ]
Entwicklung
Satoshi Nakamoto, der ursprüngliche Schöpfer des Clients, erklärte per E-Mail an die Mailingliste für Kryptografie , dass er zuerst mit dem Schreiben des Codes begonnen habe, um sich davon zu überzeugen, dass er die Probleme lösen würde, die bei der Entwicklung seines Systems aufgetreten seien. Danach hätte ich das Bitcoin-Whitepaper geschrieben . [ 13 ] Obwohl die meisten Netzwerkteilnehmer Bitcoin Core verwenden, ist der Einfluss seiner Entwickler durch die freiwillige Wahl der Menschen begrenzt, welche Implementierung des Protokolls verwendet werden soll. [ 14 ] Seit seinem Amtsantritt am 8. April 2014 ist Wladimir J. von der Laan der Hauptentwickler des Projekts , Gavin Andresen war der vorherige Hauptentwickler, verließ jedoch die aktuelle Rolle, um sich auf die strategische Entwicklung seiner Technologie zu konzentrieren.
Der Code wurde zunächst auf Sourceforge gespeichert, bevor er auf GitHub zur Verfügung gestellt wurde . [ 15 ] Da es keine formale Struktur gibt, basiert die Entwicklung von Bitcoin Core auf Bitcoin Improvement Proposals, auch bekannt als BIPs, die ähnlich wie Request for Comments funktionieren . Mailinglisten werden verwendet, um erste Ideenäußerungen zu überprüfen und zu diskutieren. [ 16 ] Wenn eine BIP genügend Unterstützung zeigt, wird sie mit der Erstellung eines Dokuments formalisiert. Dies ist das Standardverfahren, um Ideen auszutauschen und Feedback von der Community zur Verbesserung von Bitcoin zu erhalten, und wurde 2011 von Amir Taaki ins Leben gerufen .
Versionsgeschichte
Version 0.1 wurde am 9. Januar 2009 von Satoshi Nakamoto mit ausschließlicher Unterstützung für Windows veröffentlicht . [ 17 ] Dieser Veröffentlichung folgten einige Versionen , die darauf abzielten , einige kleinere Fehler zu beheben . Am 16. Dezember 2009 wurde die Version 0.2 veröffentlicht, die erstmals eine Linux - Version enthielt und die Nutzung von Multi-Prozessor- Mining unterstützte . In Version 0.3.2 hat Nakamoto Checkpoints als Sicherheitsmaßnahme eingebaut.
Nach der Veröffentlichung von Version 0.3.9 verließ sein Schöpfer, Satoshi Nakamoto, das Projekt und hörte bald darauf auf, sich überhaupt an Online-Foren zu beteiligen. Von diesem Moment an wurde die Entwicklung der Software von einer großen Gruppe unabhängiger Entwickler übernommen, die als Community bezeichnet wird, von denen viele Ideen zur Verbesserung des Protokolls eingebracht haben.
Zwischen 2011 und 2013 wurden neue Versionen der Software über das Portal Bitcoin.org veröffentlicht. [ 18 ] Die Entwickler wollten sich eher als Softwareentwickler denn als Bitcoin-Befürworter differenzieren, also zielen sie jetzt nur noch auf das bitcoincore.org-Portal für Software.
Bitcoin-Qt Version 0.5.0 wurde am 1. November 2011 veröffentlicht. Sie führte ein Frontend ein , das das Qt-Benutzeroberflächen-Toolkit verwendete. [ 19 ] Die Software verwendete zuvor Berkeley DB zur Datenbankverwaltung. Die Entwickler sind mit der Veröffentlichung der Version 0.8 auf LevelDB umgestiegen , um die Synchronisationszeit mit der Blockchain zu reduzieren. [ 20 ] Die Aktualisierung auf diese Version führte am 11. März 2013 zu einem kleinen Fork, der kurz darauf behoben wurde. Knoten-Seeding über IRC wurde in Version 0.8.2 eingestellt. Mit dieser Einführung wurden die Transaktionsgebühren, auch Relaiskosten genannt, von 50.000 Satoshis auf 10.000 Satoshis reduziert. [ 21 ]
Ab Version 0.9.0 wurde die Software in Bitcoin Core umbenannt. Die Transaktionskosten wurden erneut um den Faktor zehn gesenkt, um Mikrotransaktionen zu fördern. Obwohl Bitcoin Core OpenSSL nicht für den Netzwerkbetrieb verwendet, verwendete die Software OpenSSL für Remote Procedure Calls. Version 0.9.1 wurde veröffentlicht, um die Netzwerk-Schwachstelle Heartbleed zu beseitigen . [ 22 ]
Version 0.10 wurde am 16. Februar 2015 veröffentlicht. [ 23 ] Sie führte eine Konsensbibliothek ein, die Programmierern einfachen Zugriff auf die Regeln gab, die den Konsens im Netzwerk regeln. In Version 0.11.2 haben die Entwickler eine neue Funktion hinzugefügt, die es ermöglicht, bestimmte Transaktionen bis zu einem bestimmten Zeitpunkt in der Zukunft nicht auszugeben. [ 24 ] Bitcoin Core 0.12.1 wurde am 15. April 2016 veröffentlicht und ermöglichte gleichzeitig mehrere Soft Forks. [ 25 ] Ungefähr 100 Mitwirkende arbeiteten an Bitcoin Core 0.13.0, das am 23. August 2016 veröffentlicht wurde und mehr als zehn bedeutende Änderungen einführte. [ 26 ]
Im Juli 2016 wurde CheckSequenceVerify durch einen Soft Fork aktiviert.
Im Oktober 2016 führte Bitcoin Core 0.13.1 den Segwit Soft Fork ein , der als Skalierungsverbesserung dienen sollte, um den Blockraum in Bitcoin zu optimieren, ohne die Blockgröße zu erhöhen. [ 27 ] Dieses Feature wurde ursprünglich im April fertiggestellt und 35 Entwickler verpflichteten sich, es bereitzustellen. [ 28 ] Diese Version führte SegWit mit dem Ziel ein, den Aufwärtsdruck auf Transaktionsgebühren zu verringern und die maximale Kapazität des Netzwerks zur Verarbeitung von Transaktionen zu erhöhen. [ 29 ] Version 0.13.1 wurde ausgiebig gesucht und getestet, was zu einigen Verzögerungen beim Veröffentlichungsdatum führte. Darüber hinaus verhindert die Verwendung von SegWit die Ausnutzung verschiedener Formen von Angriffen auf Transaktionsverformbarkeit . [ 30 ] [ 31 ]
Die im Februar 2018 veröffentlichte Version 0.16.0 unterstützt die Verwendung eines nativen Adressformats für SegWit, auch bech32-Adressformat genannt, das ursprünglich von Peter Wuille und Greg Maxwell entwickelt wurde. [ 32 ]
Im September 2018 entdeckte ein Bitcoin Cash -Entwickler die Schwachstelle CVE-2018-17144 in der Bitcoin Core-Software, die es einem Angreifer ermöglichen könnte, einen Fehler in anfälligen Bitcoin Core -Knoten auszunutzen und die Ausgabegrenze von 21 Millionen Münzen zu überschreiten. [ 33 ]
Siehe auch
- Nachtrag: Bitcoin-Verbesserungsvorschläge (BIPs)
Referenzen
- ^ "Bitcoin Core-Version 0.9.0 veröffentlicht" . BitcoinCore . 19. März 2014 . Abgerufen am 21. Oktober 2018 .
- ↑ «Globale Verteilung der Bitcoin-Knoten» . bitnodes.earn.com . Abgerufen am 9. September 2018 .
- ↑ "0.13.0 Binäre Sicherheitswarnung" . BitcoinCore . Bitcoin-Projekt. 17. August 2016 . Abgerufen am 21. Oktober 2018 .
- ^ "MIT kündigt Bitcoin-Entwicklerfonds in Höhe von 900.000 USD an" . Inc. _ 29. März 2016 . Abgerufen am 21. Oktober 2018 .
- ↑ a b "Über" . BitcoinCore . Abgerufen am 21. Oktober 2018 .
- ^ "Bitcoin-Entwicklerbeispiele" . Bitcoin . Abgerufen am 21. Oktober 2018 .
- ^ "checkpoints.cpp" . Repository-Quellcode . GitHub , Inc. Abgerufen am 13. November 2016 .
- ^ "bitcoin/chainparams.cpp" . GitHub . Abgerufen am 21. Oktober 2018 .
- ↑ Mike Orcutt (19. Mai 2015). „Leaderless Bitcoin kämpft um seine wichtigste Entscheidung“ . Abgerufen am 15. November 2016 .
- ^ "Alarmsystem-Ruhestand" . Bitcoin-Projekt. 1. November 2016 . Abgerufen am 16. November 2016 .
- ↑ Antonopoulos, Andreas (29. Mai 2013). „Bitcoin ist eine Geldplattform mit vielen APIs“ . Radar . O’Reilly . Abgerufen am 19. November 2016 .
- ↑ „Bitcoin Core devtools README – Erstellen und überprüfen Sie Zeitstempel von Merge-Commits“ . GitHub . Abgerufen am 5. Mai 2018 .
- ^ "Re: Bitcoin P2P E-Cash-Papier" . Die Kryptografie-Mailingliste . Satoshi Nakamoto Institut. 9. Oktober 2016 . Abgerufen am 13. November 2016 .
- ↑ Aaron van Wirdum (7. September 2016). „Eine Einführung in die Bitcoin-Governance oder warum Entwickler nicht für das Protokoll verantwortlich sind“ . BTC Inc. Abgerufen am 13. November 2016 .
- ↑ Daniel Cawrey (29. Dezember 2014). „Gregory Maxwell: Wie ich vom Bitcoin-Skeptiker zum Core-Entwickler wurde“ . Abgerufen am 23. Dezember 2016 .
- ↑ Bailey Reutzel (14. Mai 2016). "Bitcoin Core versucht zu überarbeiten, wie es seinen Code aktualisiert" . Abgerufen am 7. November 2016 .
- ↑ „Geschichte der Kryptowährung, Teil I: Von Bitcoins Anfängen bis zum Krypto-Boom“ . 11. April 2015 . Abgerufen am 21. Oktober 2018 .
- ↑ "Über bitcoin.org" . Bitcoin-Projekt . Abgerufen am 14. November 2016 .
- ^ "Bitcoin-Qt-Version 0.5.0 veröffentlicht" . Bitcoin-Projekt. 1. November 2011 . Abgerufen am 13. November 2016 .
- ↑ Vitalik Buterin (13. März 2013). „Bitcoin-Netzwerk von Blockchain-Fork erschüttert“ . BTC Inc. Abgerufen am 7. November 2016 .
- ↑ Danny Bradbury (28. Februar 2014). „Bitcoin-Transaktionsgebühren sollen um das Zehnfache gesenkt werden“ . Abgerufen am 22. Dezember 2016 .
- ^ Khaosan, Venzen (8. April 2014). „OpenSSL Heartbleed-Sicherheitsfehler „massiv “ “ . Abgerufen am 21. Oktober 2018 .
- ↑ Joon Ian Wong (17. Februar 2015). „Bitcoin Core 0.10 bietet Entwicklern vereinfachten Zugang zum Netzwerkkonsens“ . Abgerufen am 7. November 2016 .
- ^ "Bitcoin Core-Version 0.11.2 veröffentlicht" . Bitcoin-Projekt. 13. November 2015 . Abgerufen am 14. November 2016 .
- ↑ Kyle Torpey (15. April 2016). „Bitcoin Core 0.12.1 veröffentlicht, wichtiger Schritt nach vorne für Skalierbarkeit“ . NASDAQ.com . Abgerufen am 7. November 2016 .
- ↑ Aaron van Wirdum (22. August 2016). "Was ist neu in Bitcoin Core 0.13.0?" . BTC Inc. Abgerufen am 7. November 2016 .
- ↑ Joseph Young (18. Oktober 2016). „Ready, Steady, Fork: Bitcoin Core veröffentlicht SegWit im November“ . Abgerufen am 7. November 2016 .
- ↑ Luke Parker (29. Oktober 2016). "Bitcoin-Skalierungslösung, Segwit, veröffentlicht" . Abgerufen am 7. November 2016 .
- ^ "BitcoinCore 0.13.1" . BitcoinCore . Abgerufen am 25. Oktober 2016 .
- ↑ Joseph Young (3. November 2016). „Bitcoin Core ist das talentierteste Entwicklerteam, sagt VC“ . Abgerufen am 7. November 2016 .
- ^ "Leistungen für getrennte Zeugen" . BitcoinCore . 26. Januar 2016 . Abgerufen am 20. Oktober 2018 .
- ↑ Hertig, Alyssa (20. Februar 2018). "Neuer Bitcoin-Code wird endlich die volle SegWit-Unterstützung steigern" . Abgerufen am 21. Oktober 2018 .
- ^ „CVE-2018-17144 Vollständige Offenlegung “ . Abgerufen am 23. September 2018 .