-
Anwendungsgebiet der Erfindung
-
Die vorliegende Erfindung bezieht sich auf hybride Blockchains und StreamChains, die nicht-kryptografische Hashes verwenden, um audio-, video-, bild- und sprachbasierte Transaktionen und Verträge zu sichern.
-
Kontext der Erfindung
-
Eine Blockchain ist ein dezentralisiertes und öffentliches Hauptbuch (Ledger), das Aufzeichnungen über alle Transaktionen verwaltet. Bei einem Blockchain-Netzwerk handelt es sich um ein echtes Peer-to-Peer-Netzwerk, das keine zuverlässige zentrale Autorität oder Vermittler benötigt, um Transaktionen zu authentifizieren, abzurechnen oder die Netzwerkinfrastruktur zu kontrollieren. Nutzer können mit Blockchain-Netzwerken über Externally Owned Accounts (EOAs), die den Nutzern gehören und von ihnen kontrolliert werden, interagieren und Transaktionen durchführen. Jedem EOA ist ein Guthaben (in bestimmten Einheiten einer mit dem Blockchain-Netzwerk verbundenen Kryptowährung) zugeordnet. Den EOAs ist kein Code zugeordnet. Alle Transaktionen innerhalb eines Blockchain-Netzwerks werden von EOAs initiiert. Diese Konten können Transaktionen an andere EOAs oder an Vertragskonten senden. Bei Vertragskonten handelt es sich um eine weitere Art von Konto, die von programmierbaren Blockchain-Plattformen der zweiten Generation unterstützt werden. Ein Vertragskonto wird von einem EOA erstellt, ist dessen Eigentum und wird durch den zugehörigen Vertragscode gesteuert, der zusammen mit dem Konto gespeichert wird. Die Ausführung des Vertragscodes wird durch von den EOAs geschaltete Transaktionen oder durch von anderen Verträgen versandte Nachrichten ausgelöst.
-
Blockchain-Netzwerke können sowohl öffentlich als auch privat sein. Blockchain-Netzwerke sind kostenlos und für jeden zugänglich. Jeder Nutzer kann ein Konto erstellen und am Konsensmechanismus einer öffentlichen Blockchain teilnehmen sowie alle Transaktionen des Netzwerks einsehen. Private Blockchain-Netzwerke werden in der Regel von einer einzigen Organisation kontrolliert und betrieben und die Transaktionen können nur von Nutzern innerhalb der Organisation eingesehen werden. Öffentliche Blockchain-Netzwerke sind in der Regel erlaubnisfrei („unpermissioned“ bzw. „permissioniess“), da jeder Knoten am Konsensprozess teilnehmen kann. Einige öffentliche Blockchain-Netzwerke verwenden ein erlaubnispflichtiges („permissioned“) Modell, bei dem der Konsensprozess von einer vorab ausgewählten Gruppe von Knoten kontrolliert wird. Private Blockchain-Netzwerke verwenden in der Regel das erlaubnispflichtige Modell. Während öffentliche Blockchain-Netzwerke als vollständig dezentralisiert angesehen werden können, sind private Blockchain-Netzwerke nur teilweise dezentralisiert.
-
Audio-Fingerprinting wird verwendet, um ein Audiosignal/eine Tonaufnahme in eine Reihe von kurzen numerischen Werten (oder Hashes) umzuwandeln, mit dem Ziel, das Audiosignal/die Tonaufnahme eindeutig zu identifizieren. Audio-Fingerprinting-Verfahren verwenden Hash-Algorithmen, die die wahrnehmbaren Aspekte der in der Datei enthaltenen Audiodaten nutzen, statt nur die Art und Weise, wie die Datei selbst digital kodiert ist. Audio-Fingerprinting-Systeme können Audiodaten auch dann identifizieren, wenn sie auf unterschiedliche Weise verändert wurden, z. B. durch Down-Sampling, Filterung, Entzerrung, Re-Sampling, Kompression, Hinzufügen von Rauschen oder Echo.
-
Audio-Fingerabdrücke enthalten in der Regel weder den Zeitpunkt der Erstellung per Echtzeituhr/Zeitstempel, noch sind sie mit anderen Audio-Fingerabdrücke im Sinne eines Streaming-Inhalts verknüpft. Auch werden keine verschiedenen Arten von alternativen Fingerabdrücken unterstützt, die sehr ähnliche nicht-kryptografische Hashes aufweisen können.
-
Zwar können bestehende Blockchain-Plattformen wie Ethereum oder Datenbanken wie die Amazon Quantum Ledger Database (QLDB) für die Speicherung von Audio-/Video-Fingerabdruck-Daten (entweder innerhalb von Smart Contracts oder Datensätzen) verwendet werden und so ein unveränderbares und kryptografisch überprüfbares Transaktionsprotokoll bereitstellen, jedoch verwenden diese bestehenden Lösungen kryptografische Hashes. Kryptografische Hashes sind für Audio-Fingerprinting ungeeignet, da Fingerprinting-Algorithmen ähnliche Hashes für Audiodaten generieren sollen, die sich für das menschliche Ohr gleich anhören, aber möglicherweise unterschiedlich gespeichert oder kodiert sind. Das Problem bei der Verwendung von kryptografischen Hashes für Transaktionen, die Audio-/Videodaten enthalten, besteht darin, dass selbst kleinste Unterschiede zu Abweichungen führen können. Transaktionen, die auf sauberen Daten basieren, können unterschiedliche kryptografische Hash-Werte erzeugen wie Transaktionen, die auf verrauschten Daten basieren, selbst wenn beide authentisch und gültig sind.
-
Kryptografische Hashes lassen sich nicht ohne Weiteres anwenden, wenn eine Transaktion Audio-, Sprach-, Bild- oder Videodaten enthalten kann, die durch Rauschen, Hintergrundgeräusche oder den Kontext der Audio- und Videodaten beeinflusst werden. Zum Beispiel kann undeutliche Sprache oder eine unscharfe Videoaufnahme der gleichen Szene oder der gleichen Person zu sehr unterschiedlichen kryptografischen Hashes führen. Wenn ein und dieselbe Audioaufnahme unterschiedlich kodiert und in verschiedenen Dateiformaten gespeichert wird, kann dies zu unterschiedlichen kryptografischen Hashes führen. Verfahren zur Bearbeitung von Audiodaten wie Down-Sampling, Re-Sampling, Filterung und Entzerrung können zu sehr unterschiedlichen kryptografischen Hashes führen.
-
Zu den bekanntesten und am häufigsten verwendeten Audio-Fingerprinting-Verfahren gehören die Folgenden:
- 1. EchoPrint: Echoprint ist ein frei verfügbarer Audio-Fingerabdruck-Algorithmus (https://github.com/spotify/echoprint-codegen) und Server (https://github.com/spotify/echoprint-server/). EchoPrint wurde vom Musiktechnologieunternehmen The Echo Nest entwickelt und veröffentlicht. Im Jahr 2014 erwarb Spotify The Echo Nest. Der Echoprint-Algorithmus arbeitet mit dem Auffinden von Zeitpunkten, an denen bestimmte Musiknoten einsetzen. Merkmale werden erstellt, indem die Zeitdifferenz zwischen aufeinanderfolgenden Einsetzpunkten berechnet und daraus ein Hashwert erstellt wird. Passende Aufnahmen werden gefunden, indem die Referenzdatenbank nach identischen Hashes durchsucht wird.
- 2. ChromaPrint: Chromaprint ist eine Audio-Fingerabdruck-Bibliothek, die für das AcoustID-Projekt entwickelt wurde und unter (https://github.com/acoustid/chromaprint) verfügbar ist. ChromaPrint wurde entwickelt, um nahezu identische Audiodaten zu identifizieren, wobei die erzeugten Fingerabdrücke so kompakt wie möglich gehalten sind, um dies zu erreichen. Dieses Verfahren stellt die Suchleistung über Präzision und Robustheit. Zu den Anwendungsfällen gehören die vollständige Identifizierung von Audiodateien, die Erkennung doppelter Audiodateien und die Überwachung langer Audio-Streams.
- 3. Landmark: Das Landmark-Audio-Fingerprinting-Verfahren ist sehr gut geeignet, um kleine, verrauschte Ausschnitte aus einer großen Anzahl von Datensätzen zu identifizieren. Es basiert auf dem Konzept des Musikerkennungsdienstes Shazam, der scheinbar jeden kommerziellen Musiktitel aus kurzen, über Mobiltelefone aufgenommenen Fragmenten identifizieren kann, selbst unter sehr lauten Bedingungen. (https://labrosa.ee.columbia.edu/matlab/fingerprint/).
-
Zu den bekanntesten und am häufigsten verwendeten nicht-kryptografischen Hashing-Verfahren gehören die Folgenden:
- 1. Murmurhash: Murmurhash ist eine nicht-kryptografische Hash-Funktion, die für hashbasierte Nachschlagewerke verwendet wird. Murmurhash verwendet drei Grundoperationen - Multiplizieren, Drehen und XOR. Innerhalb des Hashing-Algorithmus werden mehrere Konstanten verwendet, um eine gute Hash-Funktion zu erhalten. Murmurhash bietet eine gute Verteilung (es besteht den Chi-Quadrat-Test) und ein gutes Avalanche-Verhalten (es besteht den Avalanche-Test) sowie gute Kollisionssicherheit. (https://github.com/aappleby/smhasher)
- 2. CityHash: Die CityHash-Familie der Hash-Funktionen wird für Strings verwendet. Die Funktionen mischen die Eingangsbits gründlich durch, sind aber nicht für die Kryptografie geeignet. (https://github.com/google/cityhash)
- 3. Bei LSH handelt es sich um ein Hashing-Verfahren, das zur Reduzierung der Dimensionalität hochdimensionaler Daten entwickelt wurde, indem ähnliche Datensätze mit hoher Wahrscheinlichkeit den gleichen „Eimern“ zugeordnet werden. LSH ist so konzipiert, dass in Fällen von ähnlichen Datensätzen die Wahrscheinlichkeit einer Kollision maximiert wird. LSH wird typischerweise verwendet, um ähnliche Einträge in großen Datenbanken zu finden.
-
Diese Hintergrundinformationen werden bereitgestellt, um Informationen offenzulegen, von denen der Anmelder glaubt, dass sie für die vorliegende Erfindung möglicherweise von Bedeutung sind. Dies beinhaltet nicht notwendigerweise das Eingeständnis - und sollte auch nicht als ein solches ausgelegt werden, - dass eine der vorstehenden Informationen einen Stand der Technik gegenüber der vorliegenden Erfindung darstellt.
-
Zusammenfassung der Erfindung
-
Vor diesem Hintergrund beziehen sich die Ausführungsformen der vorliegenden Erfindung auf die Verwendung von Audio-/Video-Fingerabdrücken, nicht-kryptografischen Hashes, einer neuen Art von Konsensarchitektur (StreamChain) und einem neuen Mining-Prozess, einschließlich:
- einer Blockchain mit kryptografischen Hashes sowie Audio-/Video-Fingerabdrücken in Transaktionen;
- einer Blockchain mit nicht-kryptografischen Hashes sowie Audio-/Video-Fingerabdrücken in Transaktionen;
- einer StreamChain mit kryptografischen Hashes, Audio-/Video-Fingerabdrücken in Transaktionen, sowie mehreren Kopien von Blöcken je nach Eignung und Updates im Mining-Prozess;
- einer StreamChain mit nicht-kryptografischen Hashes, Audio-/Video-Fingerabdrücken in Transaktionen, sowie der Aktualisierung von älteren Blöcken über die Qualität und Updates während des Mining-Prozesses; und
- einer StreamChain, die eine DB und eine Blockchain verwendet.
-
Bestimmte Ausführungsformen der vorliegenden Erfindung können die folgenden Merkmale umfassen:
- 1. Die Möglichkeit, Sprach- und Audioinhalte und Transaktionen sicher zu identifizieren und zu verifizieren. StreamChain ist in der Lage, zu verifizieren, ob Audio-/Videodaten zu einem bestimmten Nutzer und einem bestimmten Zeitpunkt zuzuordnen sind und einer bestimmten Transaktion oder einem Ereignis entsprechen - einer musikalischen Komposition, einem Sportereignis oder einem geschäftlichen Zusammenhang.
- 2. Die Möglichkeit, rückwärts in der Zeit zu gehen, um einen älteren Block auf einer Blockchain mit Daten höherer Qualität „umzuschreiben“ oder zu „ersetzen“, die einen ähnlichen Fingerabdruck oder Hash aufweisen, der mit dem gleichen Echtzeitwert aufgezeichnet wurde. Es besteht ein Unterschied zwischen Versionen einer Transaktion (die Änderungen desselben Inhalts im Laufe der Zeit darstellen können) und „Alternativen“, die eine bessere Audioqualität (oder eine weniger verrauschte oder relevantere Audioqualität) mit demselben oder einem ähnlichen Echtzeitstempel bieten, der in der aktuellen StreamChain verwendet werden kann.
- 3. Die Möglichkeit, (auf sichere und überprüfbare Weise) die „beste“ Version der Informationen für die nächsten oder ältere Blöcke an eine Blockchain anzuhängen und auszuwählen.
- 4. Die Möglichkeit des kontrollierten und verifizierbaren Überschreibens, da die alten Blöcke und die neuen Blöcke, die sie überschreiben, miteinander koexistieren.
- 5. Die alten Blöcke werden ebenfalls gespeichert, aber sie sind „versteckt“ und können bei Problemen wieder sichtbar gemacht werden. Alternative Versionen von Blöcken können anhand von Parametern wie der Qualität der Audio- oder Videoaufzeichnung eingestuft werden.
- 6. Datenblöcke und Transaktionen können nur geändert werden, wenn sich die Hashes ähneln und gleiche oder ähnliche Zeitstempel aufweisen.
- 7. In bestimmten Ausführungsformen von StreamChain ist der Hash für den gesamten Block ein nicht-kryptografischer Hash. Dies kann den Mining-Prozess vereinfachen. Dabei kann ein schneller Mining-Ansatz verwendet werden, der keine umfangreichen Ressourcen verbraucht. Innerhalb von StreamChain ist es auch möglich, Transaktionen aus mehreren Ketten zusammenzuführen, die Sprach-, Audio- und Videodaten enthalten, die dann geprüft und unter bestimmten Einschränkungen ersetzt oder verändert werden können.
- 8. Große Mengen an Audio- und Videodaten können außerhalb der Kette gespeichert werden, während ihre Fingerabdrücke in der Blockchain gespeichert werden.
- 9. StreamChain ist mit dem Model View Controller (MVC) kompatibel, wobei verschiedene Ansichten aus demselben Modell generiert werden, so dass jede Ansicht aus den diversen, in der Blockchain gespeicherten Alternativen ausgewählt wird.
- 10. Der Konsensmechanismus wird von den starren binären Ja/Nein-Optionen, die in bestehenden Blockchains verfügbar sind, auf „fuzzy“ Sliding Matches (unscharfe gleitende Übereinstimmung) geändert, die durch nicht-kryptografische Hashes (wie LSH) ermöglicht wird.
-
In bestimmten Ausführungsformen kann die vorliegende Erfindung die folgenden Vorteile bieten:
- 1. Die Verifizierung von Transaktionen durch Miners kann durch die Verwendung von nicht-kryptografischen Hashes vereinfacht werden, wenn Audio-, Sprach- oder Videotransaktionen Teil der Kette sind (keine digitalen Dokumente oder Transaktionen).
- 2. Dies ermöglicht ungefähre Übereinstimmungen mit Fingerabdruckinformationen von ähnlichen Transaktionen desselben Nutzers oder anderer Nutzer, um Betrugsfälle zu identifizieren sowie Daten zusammenzufassen oder zu bündeln.
- 3. Außerdem kann dies dazu verwendet werden, die Identität der Blockchain-Kontoinhaber einer Vertragspartei zu verifizieren, indem diese Audio- und Sprach- oder Videonachweise auf automatisierte Weise in den Datensatz einfügen, die dann von der hybriden nicht-kryptografischen/kryptografischen Blockchain verifiziert werden können.
- 4. Eine annähernde Verifizierung kann zum Konzept der Fuzzy-Blockchain führen, die einen Kompromiss zwischen Genauigkeit und Geschwindigkeit darstellt, oder zu einer erweiterten Einbeziehung von Datentypen, die häufig mit Rauschen und Störungen behaftet sind (z. B. kann unter verrauschten Bedingungen die Sprache desselben Nutzers anders ausfallen als unter klaren, rauschfreien Bedingungen, bzw. ein verrauschtes oder unscharfes Video kann der einzige verfügbare Nachweis in einer Szene sein).
- 5. Es sollen verschiedene Strategien zur Verhinderung von Angriffen auf Blockchains mit nicht-kryptografischen Hashes oder hybriden Ketten verwendet werden, wobei verschiedene neue Verfahren zum Einsatz kommen sollen - z. B. Multi-Faktor-Verifizierung oder Voting.
- 6. Einige Blöcke in der Blockchain können weiterhin mit einem kryptografischen Hash versehen sein, wohingegen andere Blöcke einen nicht-kryptografischen Hash oder eine hybride Kette mit oder ohne Unterscheidungsmerkmalen aufweisen können.
- 7. Smart Contracts können verwendet werden, um mit hybriden Blöcken zu arbeiten, indem sie gemeinsame Variablen oder Bulletin Boards verwenden oder Transaktionen über mehrere Blockchains oder StreamChains synchronisieren.
-
Zusätzlich zielen die Ausführungsformen der Erfindung auf ein Verfahren zum Sichern von medienbasierten Transaktionen und Verträgen in einem Distributed-Ledger-Netzwerk, welches das Empfangen einer ersten Mediendatei, das Erhalten eines Fingerabdrucks der ersten Mediendatei, das Erzeugen eines nicht-kryptografischen Hashwertes für den Fingerabdruck der ersten Mediendatei, das Erzeugen eines Blocks für das Distributed-Ledger-Netzwerk, bestehend aus einem Block-Header, der einen vorherigen Hash, einen Status-Root-Hash, einen Quittungs-Root-Hash und einen Transaktionslisten-Root-Hash umfasst, das Definieren von Block-Header-Hashes, das Aufzeichnen des nicht-kryptografischen Fingerabdruck-Hashwertes für den Fingerabdruck der ersten Mediendatei innerhalb des Blocks und das Aufzeichnen des Blocks innerhalb des Distributed-Ledger-Netzwerk beinhaltet. In manchen Ausführungsformen kann es sich bei den Block-Header-Hashes um kryptografische Hashes handeln. In manchen Ausführungsformen kann es sich bei den Block-Header-Hashes um nicht-kryptografische Hashes handeln.
-
In manchen Ausführungsformen kann die Mediendatei eine Bilddatei, eine Audiodatei oder eine Videodatei sein. Die Mediendatei kann aus einer Live-Aufnahme oder aus dem Streaming von Multimedia-Inhalten über ein Netzwerk extrahiert werden.
-
In manchen Ausführungsformen kann der Fingerabdruck aus zeitlichen und frequenzspezifischen Eigenschaften der Mediendatei abgeleitet werden. Der Fingerabdruck kann einen Echtzeitstempel umfassen, der dem der Mediendatei entspricht.
-
In manchen Ausführungsformen kann es sich bei dem Distributed-Ledger-Netzwerk um ein Blockchain-Netzwerk handeln. In manchen Ausführungsformen kann es sich bei dem Distributed-Ledger-Netzwerk um ein StreamChain-Netzwerk handeln. In diesen Ausführungsformen kann das Verfahren ferner das Empfangen einer zweiten Mediendatei, das Erhalten eines Fingerabdrucks der zweiten Mediendatei, das Erzeugen eines nicht-kryptografischen Hashwerts für den Fingerabdruck der zweiten Mediendatei, das Erzeugen einer zweiten Version des Blocks für das Distributed-Ledger-Netzwerk, das Aufzeichnen des nicht-kryptografischen Hashwerts für den Fingerabdruck der zweiten Mediendatei in der zweiten Version des Blocks und das Aufzeichnen der zweiten Version des Blocks in dem StreamChain-Netzwerk umfassen. Darüber hinaus können die erste und die zweite Mediendatei von einer gemeinsamen Quellmedienaufzeichnung oder einem Ereignis abgeleitet sein. In manchen Ausführungsformen kann das Verfahren ferner Folgendes umfassen: Die Bestimmung darüber, ob der nicht-kryptografische Hashwert für den Fingerabdruck der zweiten Mediendatei innerhalb einer Schwellenähnlichkeit des nicht-kryptografischen Hashwertes für den Fingerabdruck der ersten Mediendatei liegt, nachdem ermittelt wurde, dass der nicht-kryptografische Fingerabdruck-Hashwert für den Fingerabdruck der zweiten Mediendatei innerhalb einer Schwellenähnlichkeit für den nicht-kryptografischen Fingerabdruck-Hashwert des Fingerabdrucks der ersten Mediendatei liegt; das Akzeptieren der zweiten Version des nicht-kryptografischen Hashwertes im Ledger der StreamChain, wenn ein Scorewert der zweiten Mediendatei besser als der Scorewert der ersten Mediendatei ist; und das Zurückweisen der zweiten Version des nicht-kryptografischen Hashwertes aus dem Ledger der StreamChain, wenn festgestellt wird, dass der nicht-kryptografische Fingerabdruck-Hashwert für den Fingerabdruck der zweiten Mediendatei nicht innerhalb einer Schwellenähnlichkeit für den nicht-kryptografischen Fingerabdruck-Hashwert des Fingerabdrucks der ersten Mediendatei liegt. Die erste und die zweite Version des Blocks mit den nicht-kryptografischen Hashwerten können auf der Grundlage eines Scorewertes geordnet werden, der aus mindestens einem der beiden Faktoren Übereinstimmungsqualität und Relevanz der jeweiligen Mediendateien abgeleitet wird.
-
Figurenliste
-
- zeigt das Design einer Blockchain, wie sie von öffentlichen Blockchain-Netzwerken, wie z. B. Ethereum, verwendet wird.
- zeigt die verschiedenen Kontotypen und Interaktionen der Blockchain.
- zeigt das Block-Header-Feld, das in bestehenden Blockchain-Netzwerken, wie z. B. Ethereum, verwendet wird.
- veranschaulicht das Verfahren zur Erzeugung von Transaktionen für Blockchains oder StreamChains aus Audio-/Videodaten gemäß einer Ausführungsform der Erfindung.
- zeigt eine Blockchain mit kryptografischen Hashes und Audio-/Video-Fingerabdrücken in Transaktionen gemäß einer Ausführungsform der Erfindung.
- zeigt eine Blockchain mit nicht-kryptografischen Hashes und Audio-/Video-Fingerabdrücken in Transaktionen gemäß einer Ausführungsform der Erfindung.
- zeigt eine StreamChain mit kryptografischen Hashes gemäß einer Ausführungsform der Erfindung.
- zeigt eine StreamChain mit nicht-kryptografischen Hashes gemäß einer Ausführungsform der Erfindung.
- zeigt eine StreamChain, die gemäß einer Ausführungsform der Erfindung eine Datenbank und eine Blockchain verwendet.
-
Detaillierte Beschreibung der Erfindung
-
Im Folgenden wird die vorliegende Erfindung anhand der beigefügten Zeichnungen, in denen bevorzugte Ausführungsformen der Erfindung dargestellt sind, näher beschrieben. Diese Erfindung kann jedoch in vielen verschiedenen Formen ausgeführt werden und sollte nicht als auf die hier dargelegten Ausführungsformen beschränkt angesehen werden. Diese Ausführungsformen werden vielmehr bereitgestellt, um diese Offenlegung so gründlich und vollständig wie möglich zu gestalten und Fachleuten den vollen Umfang der Erfindung zu vermitteln. Fachleute mit durchschnittlichen Kenntnissen werden erkennen, dass die folgenden Beschreibungen der Ausführungsformen der vorliegenden Erfindung der Veranschaulichung dienen und in keiner Weise einschränkend wirken sollen. Andere Ausführungsformen der vorliegenden Erfindung werden Fachleuten, die diese Offenlegung zur Kenntnis genommen haben, ohne weiteres einleuchten. Gleiche Nummern beziehen sich durchgehend auf gleiche Elemente.
-
Obwohl die folgende detaillierte Beschreibung zwecks Veranschaulichung viele Spezifikationen enthält, wird jeder, der sich auf dem Gebiet dieser Technik auskennt, erkennen, dass viele der Variationen und Abänderungen im Rahmen der Erfindung liegen. Dementsprechend werden die folgenden Ausführungsformen der Erfindung ohne Verlust der Allgemeingültigkeit der beanspruchten Erfindung und ohne Auferlegung von Einschränkungen dargelegt.
-
In dieser detaillierten Beschreibung der vorliegenden Erfindung sollte fachkundige Personen beachten, dass Richtungsangaben wie „oben“, „unten“, „oben“, „unten“ und ähnliche Begriffe im Zusammenhang mit den Zeichnungen zur einfacheren Orientierung des Lesers verwendet werden. Außerdem sollten sachkundige Personen beachten, dass diese Beschreibung andere Begriffe enthalten kann, um Informationen über Position, Orientierung und Richtung zu vermitteln, ohne dabei von den Grundsätzen der vorliegenden Erfindung abzuweichen.
-
Darüber hinaus sollten Fachleute beachten, dass in dieser detaillierten Beschreibung quantitativ qualifizierende Ausdrücke wie „im Allgemeinen“, „im Wesentlichen“, „größtenteils“ oder ähnliche verwendet werden, die im Allgemeinen bedeuten, dass das betreffende Objekt, die betreffende Eigenschaft oder die betreffende Beschaffenheit auf die Mehrheit des jeweiligen Gegenstands zutrifft. Die Bedeutung jedes dieser Begriffe hängt von dem Zusammenhang ab, in dem sie verwendet werden, und kann sich dementsprechend ausdrücklich ändern.
-
Unter Bezugnahme auf wird nachfolgend ein hybrides Blockchain-System unter Verwendung von nicht-kryptografischen Hashes zur Sicherung von Audio-, Video-, Sprach- oder Bildtransaktionen und Verträgen gemäß einer Ausführungsform der vorliegenden Erfindung im Detail beschrieben. Im Rahmen dieser Offenlegung kann die vorliegende Erfindung als StreamChain, als hybrides Blockchain-System, als nicht-kryptografisches Blockchain-System, als Blockchainbasiertes Audio-Fingerprinting-System, sowie als Vorrichtung, als System, als Produkt und als Verfahren bezeichnet werden. Fachleuten wird bewusst sein, dass diese Terminologie lediglich der Darstellung dient und keinerlei Einfluss auf den Anwendungsbereich der Erfindung hat. Darüber hinaus werden Fachleute zu schätzen wissen, dass alle hierin beschriebenen Prozesse von einem Computergerät ausgeführt werden können, welches unter anderem Folgendes umfasst: ein Netzwerkkommunikationsgerät, das über ein Netzwerk, wie z. B. ein Wide Area Network, einschließlich des Internets, kommunizieren kann, einen Prozessor, der mit dem Netzwerkkommunikationsgerät in Verbindung steht und Computerfunktionen ausführen kann, sowie einen Datenspeicher, der in der Lage ist, Informationen zu empfangen, zu speichern und sowohl dem Netzwerkkommunikationsgerät als auch dem Prozessor bereitzustellen.
-
Unter Bezugnahme auf wird nachfolgend auf exemplarische Weise eine Blockchain-Struktur näher beschrieben. Die Blockchain-Struktur umfasst eine Folge von Blöcken 100, 104, 138, wobei jeder Block durch seinen kryptografischen Hash (das Nonce-Feld 124) identifiziert wird und auf den Hash seines Parent-Blocks (vorheriges Hash-Feld (prevhash) 108) verweist. Der kryptografische Hash eines Blocks wird verwendet, um zu überprüfen, ob eine ausreichende Menge an Berechnungen für diesen Block durchgeführt wurde und der Block einen gültigen Proof-of-Work (PoW) enthält. Jeder der Blöcke 100, 104, 138 führt Aufzeichnungen über sämtliche Transaktionen, die seit der Erstellung seines vorherigen Blocks im Netzwerk eingegangen sind. Die Blöcke 100, 104, 138 umfassen jeweils die entsprechende Header 102, 106, 140, welche eine Vielzahl von Elementen 108, 110, 112, 114, 116, 118, 120, 122, 124, 126, 128, 130, 132, 134, 136 enthalten, die im Folgenden näher erläutert werden.
-
Unter Bezugnahme auf werden nachfolgend die Blockchain-Kontotypen und die Interaktionen zwischen ihnen auf exemplarische Weise näher beschrieben. Eine Blockchain ist ein dezentralisiertes und öffentliches Hauptbuch (Ledger), das Aufzeichnungen über alle Transaktionen verwaltet. Bei einem Blockchain-Netzwerk 200 handelt es sich um ein echtes Peer-to-Peer-Netzwerk, das keine zuverlässige zentrale Autorität oder Vermittler benötigt, um Transaktionen zu authentifizieren, abzurechnen oder die Netzwerkinfrastruktur zu kontrollieren. Nutzer können mit Blockchain-Netzwerken über Externally Owned Accounts (EOAs) 210, die den Nutzern gehören und von ihnen kontrolliert werden, interagieren und Transaktionen durchführen. Jeder EOA 210 verfügt über eine Kontoadresse 202, öffentlich-private Kontoschlüssel 204 und einen Kontostand 206 (in bestimmten Einheiten einer mit dem Blockchain-Netzwerk assoziierten Kryptowährung). Den EOAs ist kein Code zugeordnet. Alle Transaktionen 220 innerhalb eines Blockchain-Netzwerks werden von EOAs initiiert. Diese Konten können Transaktionen an andere EOAs oder an Vertragskonten senden. Bei Vertragskonten 208 handelt es sich um eine weitere Art von Konto, die von programmierbaren Blockchain-Plattformen der zweiten Generation unterstützt werden. Ein Vertragskonto 208 wird von einem EOA 210 erstellt, ist dessen Eigentum, befindet sich an einer Vertragsadresse 212 und wird durch den zugehörigen Vertragscode 214 gesteuert, der zusammen mit dem Vertragskonto 208 gespeichert ist. Zusätzlich kann das Vertragskonto 208 einen Saldo 216 aufweisen, der mit dem Saldo 206 des EOA 210 identisch sein kann. Die Ausführung des Vertragscodes 212 wird durch von den EOAs geschaltete Transaktionen 218 oder durch von anderen Verträgen versandte Nachrichten ausgelöst.
-
Unter Bezugnahme auf wird nachfolgend das Block-Header-Feld, das in bestehenden Blockchain-Netzwerken wie Ethereum zur Anwendung kommt, näher beschrieben. In einem Blockchain-Netzwerk wie Ethereum werden der „World State“ und die Liste der Transaktionen und ihrer Quittungen in einer speziellen Baumstruktur gespeichert, die auf dem Merkle-Patricia-Tree (auch Trie genannt) basiert. Beim World State handelt es sich um eine Zuordnung zwischen den Kontoadressen und den Kontozuständen. Der World State 334 wird in dem Merkle-Patricia-Tree (Status-Trie) 340-658 gespeichert. Der Root-Hash des World-State-Tries 338 wird im Block-Header 302 gespeichert. Die Liste der Transaktionen innerhalb eines Blocks 360 wird in der Trie-Struktur 364-382 gespeichert, während der Root-Hash des Transaktions-Tries 362 im Block-Header 302 abgelegt wird. Eine Quittung jeder Transaktion, die Informationen zur Transaktionsausführung enthält 336, wird in einem Trie 386-404 gespeichert, und der Root-Hash des Quittungs-Tries 384 wird als Struktur im Block-Header 302 gespeichert. Die Felder im Block-Header 302 eines Blocks 300 sind wie folgt beschrieben:
- • Blocknummer (number) 306: Hierbei handelt es sich um einen skalaren Wert, der der Anzahl der Vorfahren des Blocks entspricht. Bei einem Genesis-Block ist die Blocknummer gleich Null.
- • Zeitstempel (timestamp) 322: Hierbei handelt es sich um den UNIX-Zeitstempelwert bei der Erstellung des Blocks.
- • Nonce (nonce) 320: Beim Nonce-Feld handelt es sich um einen 64-Bit-Hash, der zusammen mit dem Mixhash-Feld verwendet wird, um zu überprüfen, ob eine ausreichende Menge an Berechnungen an diesem Block durchgeführt wurde und der Block einen gültigen Proof-of-Work (PoW) enthält.
- • Mix-Hash (mixhash) 308: Beim Mixhash-Feld handelt es sich um einen 256-Bit-Hash, der zusammen mit dem Nonce-Feld verwendet wird, um zu überprüfen, ob der Block einen gültigen Proof-of-Work enthält.
- • Parent-Hash (prevhash) 304: Jeder Block in einer Blockchain ist mit seinem Parent über den Parent-Hash verknüpft, bei dem es sich um den Hash des Headers des Parent-Blocks handelt.
- • Coinbase-Adresse (coinbase) 324: Hierbei handelt es sich um eine 20-Byte-Adresse des Kontos, auf das alle Belohnungen für das Mining des Blocks und die Ausführung von Verträgen überwiesen werden.
- • Block-Schwierigkeit (difficulty) 310: In diesem Feld wird ein Schwierigkeitswert für das Mining angegeben. Ein Block ist nur dann gültig, wenn er einen gültigen Proof-of-Work (PoW) mit einer bestimmten Schwierigkeit enthält.
- • Gas-Limit (gas_limit) 326: Der Gas-Limit-Wert bezeichnet die Grenze der Gasausgaben für den Block.
- • Verbrauchtes Gas (gas_used) 328: Hierbei handelt es sich um den gesamten Gasverbrauch für alle Transaktionen innerhalb des Blockes.
- • Zusatzdaten (extra_data) 312: Optional können 32-Byte-Zusatzdaten im Block bereitgestellt werden.
- • Uncles-Hash (uncles_hash) 330: Hierbei handelt es sich um den 32-Byte-Hash der RLP-kodierten Liste der Uncle-Header.
- • Status-Root (state_root) 316: Hierbei handelt es sich um den 32-Byte-Hash der Root der Status-Tries des Blocks, nachdem die Transaktionen ausgeführt wurden.
- • Transaktionslisten-Root (tx_list_root) 318: Hierbei handelt es sich um den 32-Byte-Hash der Transaktionsliste, die mit den Transaktionen innerhalb des Blockes bestückt ist.
- • Quittungs-Root (receipts_root) 332: Hierbei handelt es sich um den 32-Byte-Hash der Root des Quittungs-Tries des Blocks, der mit den Quittungen der Transaktion in der Transaktionsliste des Blocks bestückt ist.
- • Bloom-Filter (bloom) 314: Der Bloom-Filter setzt sich aus der Menge der Protokolle zusammen, die durch die Ausführung der Transaktionen innerhalb des Blocks entstanden sind.
-
Unter Bezugnahme auf wird nachfolgend der Prozess der Generierung von Transaktionen für Blockchains oder StreamChains aus Audio-/Videodaten näher beschrieben. Angesichts 452 eines Audio- und/oder Video-Streams 450 werden Audio-/Video-Fingerprinting-Verfahren 454 verwendet, um 456 einen Fingerabdruck-Hash 458 zu erzeugen. Der Fingerabdruck-Hash 458 wird 460 mit den Audio-/Video-Metadaten 466 kombiniert, um 462 eine Transaktion 464 für eine Blockchain oder StreamChain zu erzeugen. Um Fingerabdruck-Hashes für Audio-/Sprach-/Bild-/Videodaten zu erzeugen, können bestehende Fingerprinting-Verfahren wie EchoPrint, ChromaPrint oder Landmark oder nicht-kryptografische Hashing-Verfahren wie MurmurHash oder CityHash sowie Locality Sensitive Hashing verwendet werden.
-
Unter Bezugnahme auf wird nachfolgend eine Blockchain mit kryptografischen Hashes und Audio-/Video-Fingerabdrücke in den Transaktionen gemäß einer Ausführungsform der Erfindung dargestellt. In der vorliegenden Ausführungsform der Erfindung wird eine Blockchain mit kryptografischen Hashes verwendet. Die Felder Vorheriger Hash (prevhash) 508, Status-Root-Hash (state_root) 520, Quittungs-Root-Hash (receipts_root) 536 und Transaktionslisten-Root-Hash (tx_list_root) 522 in den Block-Headern 502, 506 und 540 verwenden kryptografische Hashes. Die Blockchain-Struktur ist unveränderlich und sicher. An das Blockchain-Netzwerk gesendete Transaktionen enthalten Audio-/Video-Fingerabdrücke und Metadaten. Bei den Fingerabdruck-Hashes innerhalb der Transaktionen handelt es sich um nicht-kryptografische Hashes. Die Block-Header 502, 506, 540 können weiterhin die oben beschriebenen Felder Nummer (number) 510, Mix-Hash 512, Schwierigkeit (difficulty) 514, Zusatzdaten (extra_data) 516, Bloom 518, Nonce 524, Zeitstempel (timestamp) 526, Coinbase 528 und Uncles-Hash 534 enthalten.
-
Unter Bezugnahme auf wird nachfolgend eine Blockchain mit nicht-kryptografischen Hashes und Audio-/Video-Fingerabdrücke in den Transaktionen gemäß einer Ausführungsform der Erfindung dargestellt. In dieser Ausführungsform der Erfindung wird eine Blockchain mit nicht-kryptografischen Hashes verwendet. Die Felder Vorheriger Hash (prevhash) 608, Status-Root-Hash (state_root) 620, Quittungs-Root-Hash (receipts_root) 636 und Transaktionslisten-Root-Hash (tx_list_root) 622 in den Block-Headern 602, 606 und 640 verwenden nicht-kryptografische Hashes. Die Blockchain-Struktur ist unveränderlich und sicher. An das Blockchain-Netzwerk gesendete Transaktionen enthalten Audio-/Video-Fingerabdrücke und Metadaten. Bei den Fingerabdruck-Hashes innerhalb der Transaktionen handelt es sich um nicht-kryptografische Hashes. Die Block-Header 602, 604, 640 umfassen außerdem die zusätzlichen Felder 640-618, 624-628 sowie 634, die denen der in dargestellten Block-Header 502, 506, 540 ähnlich sind.
-
Unter Bezugnahme auf wird nachfolgend eine Blockchain mit kryptografischen Hashes gemäß einer Ausführungsform der Erfindung dargestellt. In der vorliegenden Ausführungsform der Erfindung wird eine StreamChain mit kryptografischen Hashes verwendet. Jeder Block der StreamChain kann Header mit Feldern umfassen, die denen der Header der in 5 gezeigten Ausführungsform ähnlich sind. Die Felder Vorheriger Hash, Transaktions-Hash, Status-Root-Hash, Quittungs-Root-Hash und Transaktionslisten-Root-Hash, die die Header der Blöcke 700, 702, 704, 706, 708 der StreamChain umfassen, können kryptografische Hashes verwenden. StreamChain unterstützt die sichere Speicherung, Indizierung, Rangfolge, Anfügung, Versionierung, Zuordnung und Wiederherstellung von Daten. An das StreamChain-Netzwerk gesendete Transaktionen können Audio-Fingerabdrücke und Metadaten enthalten. Bei den Fingerabdruck-Hashes innerhalb der Transaktionen kann es sich um nicht-kryptografische Hashes handeln. Alternative Optionen der Blöcke, wie z. B. 702, 706 und 708, können mit Fingerabdrücken versehene Audio-/Videodaten von verschiedenen Mikrofonen und Videokameras enthalten. Jede Blockversion 702, 706, 708 kann mit dem vorherigen Block 700 verkettet werden 710, 712, 714, während der nächste Block 704 mit jeder Blockversion 702, 706, 708 verkettet werden kann 716, 718, 720. Die „Alternativen“ können nach Qualität der Übereinstimmung oder Relevanz geordnet werden. Der Mining-Prozess wird aktualisiert, um nicht-kryptografische Hashes zu unterstützen und alternative Optionen für Blöcke zu ermöglichen. Der aktualisierte Mining-Prozess umfasst die Transaktionsvalidierung, die Auswahl der besten Versionen, das Bereinigen, das Umschreiben alter Blöcke, das Speichern von Versionen und das Verknüpfen mit der ausgewählten Teilmenge als Teil der StreamChain. Der Mining-Prozess kann zusätzliche Schritte beinhalten, wie z. B. den Abgleich von Inhaltstypen, die Überprüfung, ob die Audio-/Videodaten zu einem bestimmten Nutzer und einer bestimmten Zeit zuzuordnen sind oder einer bestimmten Art von Transaktion entsprechen (z. B. Musik, Sprache oder Geschäft). Der Mining-Prozess kann auch das Zusammenführen von Transaktionen aus mehreren Ketten unterstützen, die überprüfbare Sprach-, Audio- und Videodaten enthalten. Zusätzliche Funktionen wie Zuordnung, Suche und Verdichtung können in den aktualisierten Mining-Prozess für StreamChain integriert werden.
-
Unter Bezugnahme auf wird nachfolgend eine Blockchain mit nicht-kryptografischen Hashes gemäß einer Ausführungsform der Erfindung dargestellt. In der vorliegenden Ausführungsform der Erfindung wird eine StreamChain mit kryptografischen Hashes verwendet. Jeder Block der StreamChain kann Header mit Feldern umfassen, die denen der Header der in 6 gezeigten Ausführungsform ähnlich sind. Die Felder Hash, Transaktions-Hash, Status-Root-Hash, Quittungs-Root-Hash und Transaktionslisten-Root-Hash, die die Header der Blöcke 750, 754, 756 der StreamChain umfassen, können kryptografische Hashes verwenden. An das StreamChain-Netzwerk gesendete Transaktionen enthalten Audio-Fingerabdrücke und Metadaten. Bei den Fingerabdruck-Hashes innerhalb der Transaktionen handelt es sich um nicht-kryptografische Hashes. Der Mining-Prozess wird aktualisiert, um nicht-kryptografische Hashes und das Aktualisieren früherer Blöcke zu unterstützen, so dass ein Block mit einem „verrauschten“ Audio-Fingerabdruck durch einen anderen Block mit einem „besseren“ Audio-Fingerabdruck ersetzt werden kann und man beim Mining „rückwärts“ in der Zeit gehen kann. StreamChain unterscheidet sich von der bestehenden Blockchain-Technologie, da letztere nicht die Möglichkeit bietet, „rückwärts“ zu gehen und einen älteren Block „umzuschreiben“ oder zu „ersetzen“, sobald ein Block gemined worden ist. Für Sprach-, Audio- und Videodaten lassen sich so bessere Samples für vergangene Blöcke verwenden. So kann man zum Beispiel einen Quick-and-Dirty-Block einer „verrauschten“ Musikdatei erstellen und ihn später durch eine „Masterkopie“ ersetzen, solange die Hashes innerhalb einer Schwellenwert-Ähnlichkeit liegen. Eine Schnellkopie für den Echtzeitstempel wird dann in der neuen Version gespeichert, so dass das neuere, hochwertigere Daten-Sample jenes mit dem älteren Zeitstempel ersetzt, solange eine Ähnlichkeit vorhanden ist.
-
Unter Bezugnahme auf wird nachfolgend eine StreamChain vorgestellt, die eine Datenbank und eine Blockchain gemäß einer Ausführungsform der Erfindung verwendet. In der vorliegenden Ausführungsform der Erfindung wird eine StreamChain verwendet, die eine Datenbank 820 und eine Blockchain 824 umfasst. Die Datenbank 820 speichert Audio-Fingerabdruck-Hashes und indiziert sie für einen schnellen Abgleich und Abruf. Die Fingerabdruck-Hashes 808 werden innerhalb der Datenbank mit einem Zeitstempel versehen und versioniert. Die an das StreamChain-Netzwerk gesendeten Transaktionen 814, die wie in dargestellt erzeugt werden, enthalten Audio-Fingerabdrücke 804 und Metadaten 816. Die Fingerabdruck-Hashes 808 innerhalb der Transaktionen sind nicht kryptografische Hashes. Die Blockchain 824 unterhält ein unveränderliches und kryptografisch sicheres Protokoll aller Transaktionen zum Hinzufügen/Anfügen/Löschen von Daten in der Datenbank. Die Blockchain verwendet kryptografische Hashes für Transaktionen und Blöcke. Alternative Ausführungsformen können auch nicht-kryptografische Hashes für die gesamten Blöcke verwenden (wie z. B. in dargestellt).
-
Einige der dargestellten Aspekte der vorliegenden Erfindung können bei der Lösung der hier beschriebenen Probleme von Vorteil sein, sowie bei der Lösung anderer, hier nicht behandelter Probleme, die von geschulten Fachleuten entdeckt werden können.
-
Obgleich die obige Beschreibung viele spezifische Details enthält, sollten diese nicht als Einschränkungen des Umfangs einer der Ausführungsformen verstanden werden, sondern als beispielhafte Darstellungen der vorgestellten Ausführungsformen. Innerhalb der Lehransätze der verschiedenen Ausführungsformen sind viele weitere Verzweigungen und Variationen möglich. Obwohl die Erfindung unter Bezugnahme auf beispielhafte Ausführungsformen beschrieben wurde, werden sich Fachleute darüber im Klaren sein, dass verschiedene Änderungen vorgenommen und äquivalente Elemente durch andere ersetzt werden können, ohne vom Anwendungsbereich der Erfindung abzuweichen. Darüber hinaus können viele Modifikationen vorgenommen werden, um eine bestimmte Situation oder ein bestimmtes Material an die Lehransätze der Erfindung anzupassen, ohne von ihrem wesentlichen Anwendungsbereich abzuweichen. Daher ist beabsichtigt, dass die Erfindung nicht auf eine bestimmte Ausführungsform beschränkt ist, die als die beste oder einzige Art und Weise der Ausführung dieser Erfindung in Betracht kommt, sondern dass die Erfindung alle Ausführungsformen umfasst, die in den Bereich der beigefügten Anwendungsfälle fallen. In den Abbildungen und der Beschreibung sind ebenfalls beispielhafte Ausführungsformen der Erfindung dargestellt, und obwohl möglicherweise bestimmte Begriffe zur Anwendung gekommen, werden diese, sofern nicht anders angegeben, nur in einem allgemeinen und beschreibenden Sinne und nicht zum Zwecke der Einschränkung verwendet, so dass der Anwendungsbereich der Erfindung dadurch nicht eingeschränkt wird. Außerdem bezeichnet die Verwendung der Begriffe „erster“, „zweiter“, usw. keine Reihenfolge oder Wichtigkeit, sondern dient lediglich dazu, ein Element von einem anderen zu unterscheiden. Darüber hinaus bezeichnet die Verwendung der Begriffe „ein“, „eine“ usw. keine Mengenbegrenzung, sondern das Vorhandensein von mindestens einem der referenzierten Elemente.
-
Daher sollte der Anwendungsbereich der Erfindung durch die beigefügten Anwendungsfälle und ihre gesetzlichen Entsprechungen und nicht durch die angegebenen Beispiele ermittelt werden.