Strikte DER-Signaturen (Distinguished Encoding Rules) sind eine Art der Verschlüsselung, die verwendet wird, um die Eignung einer digitalen Signatur in jeder Umgebung zu gewährleisten, und werden in Bitcoin und Kryptowährungen verwendet, um die Gültigkeit digitaler Signaturen sicherzustellen.
BItcoin ist ohne Zweifel eine hochspezialisierte kryptografische Software und eine Demonstration davon ist in der zu sehen strenge DER-Signaturen, eine kryptografische Implementierung, die darauf abzielt, ein höheres Maß an Sicherheit im Protokoll, insbesondere im Signatursystem von, bereitzustellen Bitcoin.
Strenge DER-Signaturen (Distinguished Encoding Rules), sind eine Art sichere Verschlüsselung, die verwendet wird, um die Eignung einer digitalen Signatur in jeder Umgebung sicherzustellen. Das heißt, es spielt keine Rolle, ob Sie Brieftasche sich auf einem Computer, Smartphone oder einem anderen Gerät befindet, ist die Codierung die gleiche und die Auflösung ist von Anfang bis Ende deterministisch. Dies ist für Bitcoin von entscheidender Bedeutung, da es die Sicherheit seiner digitalen Signaturen unter verschiedenen Kriterien gewährleistet.. Und für uns Nutzer gibt es die Gewissheit, dass das System über hohe Sicherheitsstandards verfügt.
Was ist nun der Ursprung der strengen DER-Signaturen? Wann begann seine Entwicklung? Wie funktionieren sie und wo werden sie angewendet? Wir werden dies und noch viel mehr im Folgenden untersuchen.
Die Entwicklung strenger DER-Signaturen
Wie Sie bereits wissen, verwendet Bitcoin digitale Signaturen dieser Art ECDSA um ein hohes Maß an Sicherheit bei Ihren Transaktionen zu gewährleisten. Die Verwendung von ECDSA zusammen mit der kryptografischen Kurve secp265k1 schützt Bitcoin vor dem Zugriff seiner eigenen Token und es gibt uns die Sicherheit, dass unsere Gelder nicht leicht gehackt werden können.
Damit Bitcoin diese Funktionen nutzen kann, wurde es zunächst mithilfe der Cryptosecurity-Bibliothek entwickelt. OpenSSL, ein bekanntes Projekt für freie Software, das derzeit unangefochtener Marktführer in der Kryptographie in der Branche ist. OpenSSL wurde jedoch von einer Reihe von Sicherheitsskandalen heimgesucht, die das Vertrauen in das Projekt allmählich untergruben.
Beispielsweise wies OpenSSL im Jahr 2009, während der frühen Geburt von Bitcoin, eine ernsthafte Sicherheitslücke auf (CVE-2008-5077), was sich auf die Implementierung von ECDSA-Signaturen auswirkte und Projekte wie Bitcoin angreifbar machte. Ein weiteres schwerwiegendes Problem trat 2014 auf (CVE-2014-0076), was sich auch auf diese Funktion auswirkte. Wie diese Misserfolge begannen viele andere aus dem Projekt hervorzugehen und angesichts der Ereignisse, Gregory Maxwell erklärte, dass es an der Zeit sei, OpenSSL und seine ständigen Probleme aufzugeben.
Diese ersten Schritte zur Migration zu einer anderen sicheren Implementierung der Kryptographie wurden später von Pieter Wuille unterstützt, der 2015 das vorstellte BIP-66 (BIP – Bitcoin-Verbesserungsvorschläge) namens „Strenge DER-Signaturen“. So wurde die DER-Implementierung geboren, die die Entwicklung von Bitcoin in die Hand nehmen sollte und OpenSSL mit seinen Problemen und der mangelnden Einhaltung von Sicherheitsstandards außen vor ließ.
Auf diese Weise würde der neue strenge Signaturstandard DER von Bitcoin gelten OP_CODES oder Operationscodes, OP_CHECKSIG, OP_CHECKSIGVERIFY, OP_CHECKMULTISIG oder OP_CHECKMULTISIGVERIFY, auf die die ECDSA-Verifizierung angewendet wird und die daher mit einer strengen DER-Signatur codiert werden müssen.
Wie funktionieren strikte DER-Signaturen?
Grundsätzlich bewirkt die DER-Codierung Folgendes: Stellen Sie sicher, dass die ECDSA-Prüfungen jederzeit korrekt sind. Um dies zu erreichen, wird jede Signatur nicht nur in ihrer Form überprüft, sondern auch in der Art und Weise, wie sie kodiert wurde.
Zunächst durchlaufen ECDSA-Signaturen eine DER-Verifizierung, die dafür verantwortlich ist, die Korrektheit der Signaturkodierung zu überprüfen. Jede ECDSA-Signatur muss sorgfältig in Bitcoin kodiert (oder geschrieben) werden, und jede diesbezügliche Änderung weist darauf hin, dass die Signatur nicht vertrauenswürdig ist.
In diesem Fall lehnt das Bitcoin-Protokoll einfach die Signatur ab und stoppt die Ausführung des mit dieser Signatur verbundenen Bitcoin-Skripts. Wenn jedoch die strikte DER-Signatur gültig ist, die ECDSA-Signatur jedoch nicht, führt die Ausführung des zugehörigen Bitcoin-Skripts dazu, dass die Signatur am Ende ihrer Ausführung ungültig wird, wenn die Überprüfung des Skripts fehlschlägt.
In jedem der beiden oben beschriebenen Fälle können wir sicher sein, dass die ECDSA-Firmen ihre Aufgabe erfüllen: unsere Bitcoins und die Transaktionen, die wir mit ihnen durchführen, sicher aufzubewahren. Und in diesem ganz speziellen Fall helfen uns strenge DER-Signaturen dabei, eine neue Sicherheitsmaßnahme zu ergreifen, um den Betrieb in jeder Situation aufrechtzuerhalten.
Die von Bitcoin für seine DER-Implementierung verwendete Spezifikation oder das Design respektiert die Standards der International Telecommunication Union (ITU – International Telecommunication Union). speziell der Standard X.690 – 2015, was die hohe Qualität der Umsetzung deutlich macht.
Beschreiben seiner Funktionsweise
Wie wir wissen, ist eine digitale Signatur in Bitcoin Teil der scriptSigs und scriptWitnesses der Transaktionen. Diese Signatur besteht eigentlich aus einer DER-Kodierung einer ECDSA-Signatur, zu der ein Byte vom Typ Sighash hinzugefügt wird.
Um diese Kodierung zu erzeugen, wird das folgende Verfahren verwendet:
- Das „Composite Object“ wird aus 1 Byte an Informationen generiert und mit dem Code 0x30 gekennzeichnet. Dieses zusammengesetzte Objekt ist das Tupel der (R, S)-Werte der ECDSA-Signatur.
- 1 Byte Länge des zusammengesetzten Objekts.
- Der R-Wert des Unternehmens besteht aus:
- Ein 1-Byte-Typ „Integer“, markiert mit 0x02
- 1 Byte Länge einer Ganzzahl
- R-Wertbytes variabler Länge
- Der S-Wert des Unternehmens, bestehend aus:
- Ein 1-Byte-Typ „Integer“, markiert mit 0x02
- 1 Byte Länge einer Ganzzahl
- S-Wertbytes variabler Länge
- Das Seufzerbyte
Aufgrund dieses Schemas sind DER-Signaturen kürzer als ihre ECDSA-Gegenstücke und betragen maximal 73 Bytes (ca. 73 Zeichen). Dies ist sehr wichtig, da sie dadurch einfacher zu verwalten sind, weniger Bandbreite verbrauchen, wenn sie an das Netzwerk gesendet werden, was den Netzwerk-Overhead reduziert, und die Anzahl der Transaktionen erhöht, die in einen Block passen, wodurch die Skalierbarkeit des Netzwerks erhöht wird.
Wie viel weißt du, Kryptonaut?
Kann die falsche Verwendung von DER-Signaturen zu einem Hard Fork führen?WAHR!
Es mag trivial erscheinen, aber die falsche Darstellung einer DER-Signatur mit DER kann dazu führen, dass eine Blockchain hart gespalten wird. Genau das geschah bei Bitcoin und veranlasste die Entwickler, ihre eigenen kryptografischen Tools für das Projekt zu entwickeln. Dies liegt daran, dass die DER-Signaturen in einem oder mehreren Knoten und Minern variieren können und diese Variationen zu Problemen bei der Kettenvalidierung führen können, was dazu führt, dass die Hauptkette in zwei oder mehr Teile geteilt wird.
Warum ist eine gute DER-Kodierung wichtig?
Zunächst müssen wir bedenken, dass ECDSA ein deterministisches digitales Signatursystem ist. Daher muss dieser Algorithmus unter allen Kriterien immer dieselbe Signatur und unter denselben Generierungsbedingungen zurückgeben. Dies ist aus Sicherheitsgründen unerlässlich und garantiert, dass keine zwei ECDSA-Signaturen jemals gleich sind. Das Gleiche wiederholt sich im Fall der DER-Kodierung; das heißt, es gibt nur eine einzige Datensequenz, die bestimmte gegebene Werte für eine ECDSA-Signatur gültig kodiert.
Allerdings gibt es einige fehlerhafte Implementierungen (z. B. OpenSSL), die in manchen Fällen zu falschen Kodierungen führen. Daher sind ECDSA-Signaturprüfer bei der Akzeptanz oft etwas nachsichtig. Bei Bitcoin ist dies inakzeptabel, da es zu Fehlern bei der Signaturüberprüfung führt und den Netzwerkkonsens bricht. Angesichts solcher Probleme ist die Bitcoin-Entwickler Sie beschlossen, eine eigene DER-Implementierung zu erstellen, die an die spezifischen Bedürfnisse von Bitcoin angepasst ist, um so zu verhindern, dass andere Implementierungen den Betrieb beeinträchtigen.