DE102021122557A1 - Konformitätsmechanismen in blockchain-netzwerken - Google Patents

Konformitätsmechanismen in blockchain-netzwerken Download PDF

Info

Publication number
DE102021122557A1
DE102021122557A1 DE102021122557.4A DE102021122557A DE102021122557A1 DE 102021122557 A1 DE102021122557 A1 DE 102021122557A1 DE 102021122557 A DE102021122557 A DE 102021122557A DE 102021122557 A1 DE102021122557 A1 DE 102021122557A1
Authority
DE
Germany
Prior art keywords
blockchain
block
module
compliance
transaction
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102021122557.4A
Other languages
English (en)
Inventor
Petr Novotny
Jeronimo IRAZABAL
Nitin Gaur
Dulce Ponceleon
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE102021122557A1 publication Critical patent/DE102021122557A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/12Accounting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/28Restricting access to network management systems or functions, e.g. using authorisation function to access network configuration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • Technology Law (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

Ein Knoten in einem Blockchain-Netzwerk kann Einvernehmen bezüglich einer Behörde erzielen zum Akzeptieren eines Konformitätsmoduls von der Behörde, das Konformitätsmodul akzeptieren. Der Knoten kann außerdem einen Arbeitsschritt empfangen, eine Konformität des Arbeitsschritts auf der Grundlage des Konformitätsmoduls überprüfen, den überprüften Arbeitsschritt zu einem Ledger im Blockchain-Netzwerk hinzufügen.

Description

  • HINTERGRUND
  • Die vorliegende Offenbarung betrifft allgemein das Gebiet der Smart Contracts zur Übertragung digitaler Assets und insbesondere die inhaltsgleiche Konformität in Blockchain-Netzwerken.
  • Blockchains bieten Unveränderbarkeit von Daten, indem Daten über alle Knoten eines Netzwerks hinweg repliziert werden. Um in der Lage zu sein, die Blockchain zu validieren, müssen Knoten Zugriff auf den vollständigen Verlauf von Transaktionen haben, bei denen beliebige Daten in der Chain (Kette) für alle Teilnehmer sichtbar sind.
  • Die Bewegung von digitalen Assets bzw. von Krypto-Assets wird durch Smart Contracts oder eine bestimmte Art von Geschäftsregeln geregelt, die in Smart Contracts und/oder in Chaincode zwischen zwei Parteien oder Wirtschaftseinheiten codiert sind. Diese Smart Contracts dienen als Bindeglied, um sicherzustellen, dass alle Bedingungen eingehalten werden, wenn das Asset übertragen wird. Smart Contracts stellen außerdem Kontrollschichten bereit, um sicherzustellen, dass alle Bedingungen eingehalten und die Haftungen und Verantwortlichkeiten des Systems durchgesetzt werden, um ein digitales Transaktionssystem zu ermöglichen.
  • KURZDARSTELLUNG
  • Ausführungsformen der vorliegenden Offenbarung umfassen ein Verfahren, ein System und ein Computerprogrammprodukt für Konformitätsmechanismen in Blockchain-Netzwerken.
  • Einige Ausführungsformen der vorliegenden Offenbarung können veranschaulicht werden durch ein Verfahren, das ein Erzielen von Einvernehmen, durch einen Knoten in einem Blockchain-Netzwerk, über eine Behörde, ein Empfangen, durch den Knoten, eines Konformitätsmoduls von der Kontrollinstanz und ein Akzeptieren, durch den Knoten, des Konformitätsmoduls aufweist.
  • Einige Ausführungsformen der vorliegenden Offenbarung können außerdem durch ein System veranschaulicht werden, das einen Speicher und einen Prozessor im Datenaustausch mit dem Speicher aufweist, wobei der Prozessor so konfiguriert ist, dass Arbeitsschritte durchgeführt werden, die ein erzielen von Einvernehmen über eine Behörde für das Blockchain-Netzwerk, ein Empfangen eines Konformitätsmoduls von der Behörde und ein Akzeptieren des Konformitätsmoduls aufweisen.
  • Einige Ausführungsformen der vorliegenden Offenbarung können außerdem durch ein Computerprogrammprodukt veranschaulicht werden, das ein durch einen Computer lesbares Speichermedium aufweist, auf dem Programmanweisungen verkörpert sind, wobei die Programmanweisungen durch einen Computer ausführbar sind, den Computer zu veranlassen, eine Funktion durchzuführen, wobei die Funktion ein Erzielen von Einvernehmen über eine Behörde für ein Blockchain-Netzwerk, ein Empfangen eines Konformitätsmoduls von der Behörde und ein Akzeptieren des Konformitätsmoduls aufweist.
  • Mit der vorstehenden Kurzbeschreibung ist nicht beabsichtigt, jede veranschaulichte Ausführungsform oder jede Realisierungsform der vorliegenden Offenbarung zu beschreiben.
  • Figurenliste
  • Die in der vorliegenden Offenbarung enthaltenen Zeichnungen sind in die Spezifikation einbezogen und bilden einen Teil davon. Sie veranschaulichen Ausführungsformen der vorliegenden Offenbarung und dienen zusammen mit der Beschreibung zur Erläuterung der Grundgedanken der Offenbarung. Die Zeichnungen veranschaulichen lediglich bestimmte Ausführungsformen und schränken die Offenbarung nicht ein.
    • 1 veranschaulicht eine Netzwerkdarstellung eines Systems, das eine Datenbank umfasst, gemäß einer beispielhaften Ausführungsform.
    • 2A veranschaulicht eine beispielhafte Blockchain-Architekturkonfiguration gemäß beispielhaften Ausführungsformen.
    • 2B veranschaulicht einen Blockchain-Transaktionsablauf gemäß beispielhaften Ausführungsformen.
    • 3A veranschaulicht ein zugriffsrechtebehaftetes Netzwerk (permissioned network) gemäß beispielhaften Ausführungsformen.
    • 3B veranschaulicht ein weiteres zugriffsrechtebehaftetes Netzwerk gemäß beispielhaften Ausführungsformen.
    • 3C veranschaulicht ein zugriffsrechteloses Netzwerk gemäß beispielhaften Ausführungsformen.
    • 4A veranschaulicht einen Prozess zum Hinzufügen eines neuen Blocks zu einem verteilten Ledger gemäß Ausführungsformen der vorliegenden Erfindung.
    • 4B veranschaulicht Inhalte eines neuen Datenblocks gemäß beispielhaften Ausführungsformen.
    • 4C veranschaulicht eine Blockchain für digitalen Inhalt gemäß beispielhaften Ausführungsformen.
    • 4D veranschaulicht einen Block gemäß beispielhaften Ausführungsformen, der die Struktur von Blöcken in der Blockchain wiedergeben kann.
    • 5 veranschaulicht ein Übersichtsblockschema eines beispielhaften Computersystems, das beim Realisieren eines oder mehrerer der Verfahren, Werkzeuge und Module und beliebiger verwandter Funktionen, die hierin beschrieben sind, gemäß Ausführungsformen der vorliegenden Offenbarung verwendet werden kann.
    • 6 veranschaulicht ein Flussdiagramm des Akzeptierens von Konformitätsmodulen in einem Blockchain-Netzwerk gemäß beispielhaften Ausführungsformen.
    • 7 veranschaulicht ein Flussdiagramm des Anwendens von Konformitätsmodulen und Prüfmodulen auf einen Blockchain-Arbeitsschritt gemäß beispielhaften Ausführungsformen.
    • 8 veranschaulicht ein Flussdiagramm, das die Eröffnung, das Auswählen und das Verarbeiten eines Moduls darstellt.
  • Obwohl an den hierin beschriebenen Ausführungsformen verschiedene Modifikationen vorgenommen werden können und die Ausführungsformen alternative Formen annehmen können, sind deren Besonderheiten beispielhaft in den Zeichnungen gezeigt und werden ausführlich beschrieben. Es sollte jedoch klar sein, dass die bestimmten beschriebenen Ausführungsformen nicht in einem einschränkenden Sinne zu verstehen sind. Im Gegenteil, die Offenbarung soll alle Modifikationen, Äquivalente und Alternativen einschließen, die in den Grundgedanken und Schutzbereich der Erfindung fallen.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Aspekte der vorliegenden Offenbarung betreffen allgemein das Gebiet der gebührenden Sorgfalt (Due Diligence) bei Übertragungen digitaler Assets in mehreren juristischen Zuständigkeitsbereichen und insbesondere eine inhaltsgleiche Konformität in Blockchain-Netzwerken.
  • Es versteht sich, dass die vorliegenden Komponenten, die in diesem Dokument allgemein beschrieben und in den Figuren veranschaulicht sind, in einer großen Vielfalt unterschiedlicher Konfigurationen angeordnet und ausgestaltet sein können. Dementsprechend ist die folgende ausführliche Beschreibung der Ausführungsformen von mindestens einem aus einem Verfahren, einer Vorrichtung, einem nicht-flüchtigen, durch einen Computer lesbaren Speichermedium und einem System, die in den beigefügten Figuren wiedergegeben sind, nicht als Einschränkung des beanspruchten Schutzumfangs der Anmeldung, sondern lediglich als repräsentativ für ausgewählte Ausführungsformen gedacht.
  • Die vorliegenden Merkmale, Strukturen oder Eigenschaften, die in dieser Spezifikation beschrieben sind, können bei einer oder mehreren Ausführungsformen in einer beliebigen geeigneten Weise kombiniert oder entfernt werden. Zum Beispiel bezieht sich die Verwendung der Formulierungen „beispielhafte Ausführungsformen“, „einige Ausführungsformen“ oder anderer ähnlicher Ausdrücke in der gesamten Beschreibung auf die Tatsache, dass ein bestimmtes Merkmal, eine bestimmte Struktur oder Eigenschaft, die in Verbindung mit der Ausführungsform beschrieben sind, bei mindestens einer Ausführungsform enthalten sein kann. Dementsprechend bezieht sich das Auftreten der Formulierungen „beispielhafte Ausführungsformen“, „einige Ausführungsformen“, „bei einigen Ausführungsformen“, „bei anderen Ausführungsformen“ oder anderer ähnlicher Ausdrücke in der gesamten Beschreibung nicht zwangsläufig in allen Fällen auf dieselbe Gruppe von Ausführungsformen, und die beschriebenen Merkmale, Strukturen oder Eigenschaften können bei einer oder mehreren Ausführungsformen in einer beliebigen geeigneten Weise kombiniert oder entfernt werden. Ferner kann in den FIGUREN eine beliebige Verbindung zwischen Element Einweg- und/oder Zweiweg-Datenübertragung zulassen, selbst wenn es sich bei der abgebildeten Verbindung um einen Einweg- oder Zweiweg-Pfeil handelt. Bei einer beliebigen in den Zeichnungen abgebildeten Einheit kann es sich auch um eine andere Einheit handeln. Wenn zum Beispiel eine mobile Einheit gezeigt ist, die Daten sendet, kann auch eine drahtgebundene Einheit verwendet werden, um die Daten zu senden.
  • Zwar wird bei der Beschreibung von Ausführungsformen möglicherweise der Begriff „Nachricht“ verwendet, die Anmeldung kann darüber hinaus jedoch auf viele Arten von Netzwerken und Daten angewendet werden. Zwar sind möglicherweise bei beispielhaften Ausführungsformen bestimmte Arten von Verbindungen, Nachrichten und Signalisierung abgebildet, die Anmeldung ist des Weiteren jedoch nicht auf eine bestimmte Art von Verbindung, Nachricht und Signalisierung beschränkt.
  • Hierin ausführlich beschrieben sind ein Verfahren, ein System und ein Computerprogrammprodukt, die Blockchain-Kanäle (z.B. Hyperledger-Fabric-Kanäle) und Smart Contracts nutzen, um Logik auf der Grundlage eines nicht-interaktiven kenntnisfreien Beweises (zero knowledge proof) zu realisieren.
  • Bei einigen Ausführungsformen nutzen das Verfahren, das System und/oder das Computerprogrammprodukt eine dezentrale Datenbank (wie z.B. eine Blockchain), bei der es sich um ein verteiltes Speichersystem handelt, das mehrere Knoten umfasst, die untereinander Daten austauschen. Die dezentrale Datenbank umfasst eine unveränderbare Nur-anhängen-Datenstruktur, die einem verteilten Ledger ähnelt, das in der Lage ist, Datensätze zwischen Parteien zu verwalten, die sich gegenseitig nicht vertrauen. Diese nichtvertrauenswürdigen Parteien werden hierin als „Peers“ oder „Peer-Knoten“ bezeichnet. Jeder Peer verwaltet eine Kopie der Datenbankdatensätze, und kein einziger Peer kann Datenbankdatensätze verändern, ohne dass unter den verteilten Peers ein Konsens erzielt wurde. Zum Beispiel können die Peers ein Konsensprotokoll ausführen, um Blockchain-Speichertransaktionen zu validieren, die Speichertransaktionen in Blöcken zu gruppieren und eine blockübergreifende Hash-Chain aufzubauen. Dieser Prozess bildet das Ledger, indem die Speichertransaktionen gegebenenfalls angeordnet werden, um Konsistenz zu erreichen.
  • Bei verschiedenen Ausführungsformen kann eine zugriffsrechtebehaftete und/oder zugriffsrechtelose Blockchain verwendet werden. An einer öffentlichen bzw. zugriffsrechtelosen Blockchain kann jeder ohne eine bestimmte Identität (z.B. durch Bewahren der Anonymität) teilnehmen. Öffentliche Blockchains können native Kryptowährung einschließen und einen Konsens verwenden, der auf verschiedenen Protokollen wie z.B. dem Arbeitsnachweis (Proof of Work) beruht. Andererseits stellt eine zugriffsrechtebehaftete Blockchain-Datenbank sichere Interaktionen in einer Gruppe von Wirtschaftseinheiten bereit, die ein gemeinsames Ziel haben, aber einander nicht vollständig vertrauen, wie z.B. Unternehmen, die Finanzmittel, Waren, Informationen und dergleichen austauschen.
  • Ferner können das Verfahren, das System und/oder das Computerprogrammprodukt bei einigen Ausführungsformen eine Blockchain nutzen, die mit programmierbarer Zufallslogik arbeitet, die auf ein dezentrales Speicherschema zugeschnitten und als „Smart Contract“ oder „Chaincodes“ bezeichnet wird. In einigen Fällen können spezialisierte Chaincodes für Verwaltungsfunktionen und Parameter vorhanden sein, die als „System-Chaincode“ bezeichnet werden. Das Verfahren, das System und/oder das Computerprogrammprodukt können ferner Smart Contracts nutzen, bei denen es sich um vertrauenswürdige verteilte Anwendungen handelt, die manipulationssichere Eigenschaften der Blockchain-Datenbank und eine zugrunde liegende Vereinbarung zwischen Knoten wirksam nutzen, die als „Bewilligung“ oder „Bewilligungsrichtlinie“ bezeichnet wird. Blockchain-Transaktionen im Zusammenhang mit dieser Anmeldung können „bewilligt“ werden, bevor sie in der Blockchain festgeschrieben werden, während Transaktionen außer Acht gelassen werden, die nicht bewilligt sind.
  • Eine Bewilligungsrichtlinie ermöglicht es Chaincode, Bewilliger für eine Transaktion in Form eines Satzes von Peer-Knoten anzugeben, die zur Bewilligung nötig sind. Wenn ein Client die Transaktion an die in der Bewilligungsrichtlinie angegebenen Peers sendet, wird die Transaktion ausgeführt, um die Transaktion zu validieren. Nach der Validierung gelangen die Transaktionen in eine Anordnungsphase, in der ein Konsensprotokoll verwendet wird, um eine angeordnete Abfolge von bewilligten Transaktionen zu erzeugen, die in Blöcken gruppiert sind.
  • Bei einigen Ausführungsformen können das Verfahren, das System und/oder das Computerprogrammprodukt Knoten nutzen, bei denen es sich um die Datenübertragungseinheiten des Blockchain-Systems handelt. Ein „Knoten“ kann eine logische Funktion in dem Sinne durchführen, dass mehrere Knoten unterschiedlicher Arten auf demselben physischen Server ausgeführt werden können. Knoten sind in Vertrauensdomänen gruppiert und zu logischen Einheiten zugehörig, die sie auf verschiedene Weise steuern. Knoten können unterschiedliche Arten enthalten, wie z.B. einen Client oder einen übermittelnden Client-Knoten, der einen Transaktionsaufruf an einen Bewilliger (z.B. Peer) übermittelt und Transaktionsvorschläge an einen Anordnungsservice (z.B. an einen Anordnungsknoten) übermittelt.
  • Bei einer weiteren Art von Knoten handelt es sich um einen Peer-Knoten, der durch einen Client übermittelte Transaktionen empfangen, die Transaktionen festschreiben und einen Status und eine Kopie des Ledger von Blockchain-Transaktionen verwalten kann. Peers können außerdem die Rolle eines Bewilligers haben, obwohl dies keine Anforderung ist. Bei einem Anordnungsserviceknoten oder Anordner handelt es sich um einen Knoten, der einen Datenübertragungsservice für alle Knoten ausführt und der eine Übergabegarantie wie z.B. eine Rundsendung an jeden der Peer-Knoten in dem System beim Festschreiben/Bestätigen von Transaktionen und Verändern eines World-Status der Blockchain realisiert, bei dem es sich um einen weiteren Namen für die anfängliche Blockchain-Transaktion handelt, die normalerweise Steuerungs- und Einrichtungsinformationen enthält.
  • Bei einigen Ausführungsformen können das Verfahren, das System und/oder ein Ledger nutzen, bei dem es sich um einen in einer Abfolge angeordneten manipulationsbeständigen Datensatz aller Statusübergänge einer Blockchain handelt. Statusübergänge können aus Chaincode-Aufrufen (z.B. Transaktionen) entstehen, die durch teilnehmende Parteien (z.B. Client-Knoten, Anordnungsknoten, Bewilligerknoten, Peer-Knoten usw.) übermittelt wurden. Jede teilnehmende Partei (wie z.B. ein Peer-Knoten) kann eine Kopie des Ledger verwalten. Eine Transaktion kann zu einem Satz von Asset-Schlüsselwertpaaren führen, die im Ledger als ein oder mehrere Operanden wie z.B. Erstellungen, Aktualisierungen, Löschungen und dergleichen festgeschrieben werden. Das Ledger enthält eine Blockchain (die auch als „Chain“ bezeichnet wird), die verwendet wird, um einen unveränderlichen, in einer Abfolge angeordneten Datensatz in Blöcken zu speichern. Das Ledger enthält außerdem eine Statusdatenbank, die einen aktuellen Status der Blockchain verwaltet.
  • Bei einigen Ausführungsformen können das Verfahren, das System und/oder das Computerprogrammprodukt, die hierin beschrieben sind, eine Chain nutzen, bei der es sich um ein Transaktionsprotokoll handelt, das als Hash-verknüpfte Blöcke strukturiert ist und jeder Block eine Abfolge von N Transaktionen enthält, wobei N gleich oder größer als eins ist. Die Block-Kopfdaten enthalten einen Hash der Transaktionen des Blocks sowie einen Hash der Kopfdaten des vorhergehenden Blocks. Auf diese Weise können alle Transaktionen des Ledger in einer Abfolge angeordnet und kryptografisch miteinander verknüpft werden. Dementsprechend ist es nicht möglich, die Ledger-Daten zu manipulieren, ohne die Hash-Verknüpfungen aufzubrechen. Ein Hash des zuletzt hinzugefügten Blockchain-Blocks gibt jede Transaktion der Chain wieder, die vor dieser stattgefunden hat, wodurch es möglich wird zu gewährleisten, dass sich alle Peer-Knoten in einem konsistenten und vertrauenswürdigen Status befinden. Die Chain kann in einem Peer-Knotendateisystem (z.B. lokaler Speicher, angeschlossener Speicher, Cloud usw.) gespeichert werden, das die Nur-anhängen-Art der Blockchain-Betriebslast wirksam unterstützt.
  • Der aktuelle Status des unveränderbaren Ledger gibt die neuesten Werte aller Schlüssel wieder, die im Chain-Transaktionsprotokoll enthalten sind. Da der aktuelle Status die neuesten Schlüsselwerte wiedergibt, die einem Kanal bekannt sind, wird er manchmal als „World-Status“ bezeichnet. Chaincode-Aufrufe führen Transaktionen in Bezug auf die Daten des aktuellen Status des Ledger aus. Um diese Chaincode-Interaktionen effizient ablaufen zu lassen, können die neuesten Werte der Schlüssel in einer Statusdatenbank gespeichert werden. Bei der Statusdatenbank kann es sich einfach um eine indizierte Ansicht des Transaktionsprotokolls der Chain handeln, sie kann daher zu einem beliebigen Zeitpunkt aus der Chain regeneriert werden. Die Statusdatenbank kann nach dem Start von Peer-Knoten und vor dem Akzeptieren von Transaktionen automatisch wiederhergestellt (oder bei Bedarf erzeugt) werden.
  • Zu einigen Vorteilen der hierin beschriebenen und abgebildeten vorliegenden Lösungen gehören ein Verfahren, ein System und ein Computerprogrammprodukt für Konformitätsmechanismen in Blockchain-Netzwerken. Die beispielhaften Ausführungsformen lösen die Probleme der Zuverlässigkeit, der Zeit und des Vertrauens, indem Merkmale einer Datenbank wie z.B. Unveränderbarkeit, digitale Signaturen und das Merkmal, dass es sich um die einzige Echtheitsquelle handelt, erweitert werden. Die beispielhaften Ausführungsformen stellen eine Lösung für Konformität und zum Berücksichtigen von Transaktionen bereit. Die Blockchain-Netzwerke können auf der Grundlage der Art und der Regeln von Assets, die die Assets auf der Grundlage von Smart Contracts regeln, homogen sein.
  • Blockchain unterscheidet sich von einer herkömmlichen Datenbank darin, dass es sich bei Blockchain nicht um einen zentralen Speicher handelt, sondern vielmehr um einen dezentralen, unveränderbaren und sicheren Speicher, bei dem Knoten Änderungen an Datensätzen im Speicher gemeinsam nutzen können. Zu einigen Eigenschaften, die für Blockchain charakteristisch und eine Realisierung der Blockchain erleichtern, gehören, ohne auf diese beschränkt zu sein, ein unveränderbares Ledger, Smart Contracts, Sicherheit, Privatsphäre, Dezentralisierung, Konsens, Bewilligung, Zugriffsfähigkeit und dergleichen, die im Folgenden ausführlicher beschrieben werden. Gemäß verschiedenen Aspekten wird das hierin beschriebene System aufgrund unveränderbarer Verantwortlichkeit, Sicherheit, Privatsphäre, zulässiger Dezentralisierung, Verfügbarkeit von Smart Contracts, Bewilligungen und Zugriffsfähigkeit realisiert, die für Blockchain charakteristisch und spezifisch sind.
  • Insbesondere sind die Daten des Blockchain-Ledger unveränderbar und stellen ein effizientes Verfahren für Konformitätsmechanismen in Blockchain-Netzwerken bereit. Außerdem stellt eine Verwendung von Verschlüsselung in der Blockchain Sicherheit bereit und baut Vertrauen auf. Der Smart Contract verwaltet den Status des Asset, um den Lebenszyklus zu Ende zu führen, somit können spezialisierte Knoten gewährleisten, dass Blockchain-Arbeitsschritte Konformitätsanforderungen entsprechen. Die beispielhaften Blockchains sind in Bezug auf Zugriffsrechte dezentralisiert. Somit kann jeder Endbenutzer seine eigene Ledger-Kopie haben, auf die er zugreift. Mehrere Organisationen (und Peers) können in das Blockchain-Netzwerk aufgenommen werden. Die wichtigsten Organisationen können als Bewilligungs-Peers dienen, um die Ergebnisse der Ausführung von Smart Contracts, Lesesatz und Schreibsatz zu validieren. Mit anderen Worten, die charakteristischen Merkmale der Blockchain stellen eine effiziente Realisierung zum Verarbeiten einer privaten Transaktion in einem Blockchain-Netzwerk bereit.
  • Einer der Vorteile der beispielhaften Ausführungsformen besteht darin, dass es die Funktionalität eines Datenverarbeitungssystems verbessert, indem ein Verfahren zum Verarbeiten einer privaten Transaktion in einem Blockchain-Netzwerk realisiert wird. Über das hierin beschriebene Blockchain-System kann ein Datenverarbeitungssystem (oder ein Prozessor in dem Datenverarbeitungssystem) unter Nutzung von Blockchain-Netzwerken Funktionalität zum Verarbeiten privater Transaktionen durchführen, indem Zugriff auf Fähigkeiten wie z.B. verteiltes Ledger, Verschlüsselungstechnologien, MSP, Ereignisbehandlung usw. bereitgestellt wird. Außerdem ermöglicht die Blockchain ein Erstellen eines Geschäftsnetzwerks und ein Aufnehmen beliebiger Benutzer oder Organisationen zur Teilnahme. Die Blockchain an sich ist nicht nur eine Datenbank. Die Blockchain enthält Fähigkeiten zum Erstellen eines Netzwerks aus Benutzern und zum Aufnehmen/Entfernen von Organisationen zur Zusammenarbeit und zum Ausführen von Serviceprozessen in Form von Smart Contracts.
  • Die beispielhaften Ausführungsformen bieten gegenüber einer herkömmlichen Datenbank zahlreiche Vorteile. Zum Beispiel bieten die Ausführungsformen über die Blockchain eine unveränderbare Verantwortlichkeit, Sicherheit, Privatsphäre, zulässige Dezentralisierung, Verfügbarkeit von Smart Contracts, Bewilligungen und Zugriffsfähigkeit, die für die Blockchain charakteristisch und spezifisch sind.
  • Inzwischen ist eine herkömmliche Datenbank unter Umständen nicht nützlich, um die beispielhaften Ausführungsformen zu realisieren, da eine herkömmliche Datenbank nicht alle Parteien in das Netzwerk bringt, eine herkömmliche Datenbank keine vertrauenswürdige Zusammenarbeit herstellt und eine herkömmliche Datenbank kein effizientes Verfahren zur Datenkonformität bereitstellt. Die herkömmliche Datenbank stellt keine manipulationssichere Speicherung bereit und stellt keine Aufrechterhaltung der gebührenden Sorgfalt und Konformität bereit. Dementsprechend stellen beispielhafte Ausführungsformen eine konkrete Lösung für ein Problem in der Technik/auf dem Gebiet zur Konformität bei Transaktionen bereit.
  • 1 veranschaulicht eine Netzwerklogikdarstellung zur intelligenten Datenanmerkung in Blockchain-Netzwerken gemäß beispielhaften Ausführungsformen.
  • Unter Bezugnahme auf 1 enthält das beispielhafte Netzwerk 100 einen Knoten 102, der mit anderen Blockchain-Knoten (BC-Knoten) 105 verbunden ist, die für Dokumenteigentümerorganisationen stehen. Der Knoten 102 kann mit einer Blockchain 106 verbunden sein, die ein Ledger 108 zum Speichern von Daten enthält, die unter den Knoten 105 gemeinsam genutzt (110) werden. Zwar beschreibt dieses Beispiel im Einzelnen lediglich einen Knoten 102, es können jedoch mehrere derartige Knoten mit der Blockchain 106 verbunden sein. Es sollte klar sein, dass der Knoten 102 weitere Komponenten enthalten kann und dass einige der hierin beschriebenen Komponenten entfernt und/oder verändert werden können, ohne vom Schutzumfang des hierin offenbarten Knotens 102 abzuweichen. Bei dem Knoten 102 kann es sich um eine Datenverarbeitungseinheit oder einen Server-Computer oder dergleichen handeln, und er kann einen Prozessor 104 enthalten, bei dem es sich um einen auf Halbleitern beruhenden Mikroprozessor handeln kann, eine Zentraleinheit (Central Processing Unit, CPU), eine anwendungsspezifische integrierte Schaltung (Application Specific Integrated Circuit, ASIC), eine vor Ort programmierbare Schaltung (Field-Programmable Gate Array, FPGA) und/oder eine weitere Hardwareeinheit enthalten. Zwar ist ein einzelner Prozessor 104 abgebildet, es sollte jedoch klar sein, dass der Knoten 102 mehrere Prozessoren, mehrere Kerne oder dergleichen enthalten kann, ohne vom Schutzumfang des Systems des Knotens 102 abzuweichen. Auf einen verteilten Dateispeicher 150 können der Prozessorknoten 102 und andere BC-Knoten 105 zugreifen. Der verteilte Dateispeicher kann verwendet werden, um Dokumente zu speichern, die im Ledger (verteilter Dateispeicher) 150 gekennzeichnet sind.
  • Der Knoten 102 kann außerdem ein nicht-flüchtiges, durch einen Computer lesbares Medium 112 enthalten, auf dem durch eine Maschine lesbare Anweisungen gespeichert sind, die durch den Prozessor 104 ausführbar sind. Beispiele von durch eine Maschine lesbaren Anweisungen sind als 114 bis 120 gezeigt und werden im Folgenden weiter erörtert. Zu Beispielen des nicht-flüchtigen, durch einen Computer lesbaren Mediums 112 können eine elektronische, eine magnetische, eine optische oder eine andere physische Speichereinheit gehören, die ausführbare Anweisungen enthält oder speichert. Zum Beispiel kann es sich bei dem nicht-flüchtigen, durch einen computerlesbaren Medium 112 um einen Direktzugriffsspeicher (Random Access Memory, RAM), einen elektrisch löschbaren und programmierbaren Nur-Lese-Speicher (Electrically Erasable Programmable Read-Only Memory, EEPROM), eine Festplatte, eine optische Platte oder eine andere Art von Speichereinheit handeln.
  • Der Prozessor 104 kann die durch eine Maschine lesbaren Anweisungen 114 ausführen, um bezüglich einer Behörde Einvernehmen zu erzielen. Wie vorstehend erörtert kann das Blockchain-Ledger 108 Daten speichern, die unter den Knoten 105 gemeinsam genutzt werden. Das Netzwerk der Blockchains 106 kann so konfiguriert sein, dass ein oder mehrere Smart Contracts verwendet werden, die Transaktionen für mehrere teilnehmende Knoten verwalten. Mit den Anmerkungsinformationen verknüpfte Dokumente können im verteilten Dateispeicher 150 gespeichert sein. Der Prozessor 104 kann die durch eine Maschine lesbaren Anweisungen 116 ausführen, um von der Behörde ein Konformitätsmodul zu empfangen. Der Prozessor 104 kann die durch eine Maschine lesbaren Anweisungen 118 ausführen, um das Konformitätsmodul zu akzeptieren.
  • 2A veranschaulicht eine Blockchain-Architekturkonfiguration 200 gemäß beispielhaften Ausführungsformen. Unter Bezugnahme auf 2A kann die Blockchain-Architektur 200 bestimmte Blockchain-Elemente enthalten, zum Beispiel eine Gruppe von Blockchain-Knoten 202. Die Blockchain-Knoten 202 können einen oder mehrere Peer-Knoten 204 bis 210 enthalten (diese vier Knoten sind lediglich beispielhaft abgebildet). Diese Knoten nehmen an einer Reihe von Aktivitäten teil, wie z.B. an einem Hinzufügungs- und Validierungsprozess (Konsens) bezüglich Blockchain-Transaktionen. Einer oder mehrere der Blockchain-Knoten 204 bis 210 können auf der Grundlage einer Bewilligungsrichtlinie Transaktionen bewilligen und können einen Anordnungsservice für alle Blockchain-Knoten in der Architektur 200 bereitstellen. Ein Blockchain-Knoten kann eine Blockchain-Berechtigungsprüfung einleiten und versuchen, in ein unveränderbares Blockchain-Ledger zu schreiben, das in einer Blockchain-Schicht 216 gespeichert ist, von dem eine Kopie auch in der unterlagerten physischen Infrastruktur 214 gespeichert sein kann. Die Blockchain-Konfiguration kann eine oder mehrere Anwendungen 224 enthalten, die mit Anwendungsprogrammierschnittstellen (Application Programming Interfaces, APIs) 222 verknüpft sind, um auf gespeicherten Programm-/Anwendungscode 220 (z.B. Chaincode, Smart Contracts usw.) zuzugreifen und diesen auszuführen, der gemäß einer von Teilnehmern gesuchten maßgeschneiderten Konfiguration erstellt werden kann und ihren eigenen Status verwalten, ihre eigenen Assets verwalten und externe Informationen empfangen kann. Dies kann als Transaktion bereitgestellt und über ein Anhängen an das verteilte Ledger bei allen Blockchain-Knoten 204 bis 210 installiert werden.
  • Die Blockchain-Grundlage oder -Plattform 212 kann verschiedene Schichten von Blockchain-Daten, Services (z.B. kryptografische Vertrauensservices, virtuelle Ausführungsumgebung usw.) und eine unterlagerte physische Computerinfrastruktur enthalten, die verwendet werden kann, um neue Transaktionen zu empfangen und zu speichern und Zugriff für Prüfer bereitzustellen, die versuchen, auf Dateneinträge zuzugreifen. Die Blockchain-Schicht 216 kann eine Schnittstelle zeigen, die Zugriff auf die virtuelle Ausführungsumgebung bereitstellt, die notwendig ist, um den Programmcode zu verarbeiten und die physische Infrastruktur 214 einzubeziehen. Kryptografische Vertrauensservices 218 können verwendet werden, um Transaktionen wie z.B. Asset-Austauschtransaktionen zu überprüfen und Informationen privat zu halten.
  • Die Blockchain-Architekturkonfiguration von 2A kann Programm-/Anwendungscode 220 über eine oder mehrere durch die Blockchain-Plattform 212 gezeigte Schnittstellen und bereitgestellte Services verarbeiten und ausführen. Der Code 220 kann Blockchain-Assets steuern. Zum Beispiel kann der Code 220 Daten speichern und übertragen und kann durch Knoten 204 bis 210 in Form eines Smart Contract und zugehörigem Chaincode mit Bedingungen oder anderen Codeelementen ausgeführt werden, die seiner Ausführung unterliegen. Als nicht einschränkendes Beispiel können Smart Contracts erstellt werden, um Erinnerungen, Aktualisierungen und/oder andere Benachrichtigungen in Abhängigkeit von den Änderungen, Aktualisierungen usw. auszuführen. Die Smart Contracts selbst können verwendet werden, um Regeln im Zusammenhang mit Berechtigungs- und Zugriffsanforderungen und einem Gebrauch des Ledger zu erkennen. Zum Beispiel können die Dokumentattributinformationen 226 durch eine oder mehrere Verarbeitungseinheiten (z.B. virtuelle Maschinen) verarbeitet werden, die in der Blockchain-Schicht 216 enthalten sind. Das Ergebnis 228 kann eine Mehrzahl von verknüpften, gemeinsam genutzten Dokumenten enthalten. Die physische Infrastruktur 214 kann genutzt werden, um beliebige der hierin beschriebenen Daten oder Informationen abzurufen.
  • Ein Smart Contract kann über eine Anwendung und eine Programmiersprache einer höheren Ebene erstellt und anschließend in einen Block der Blockchain geschrieben werden. Der Smart Contract kann ausführbaren Code enthalten, der bei einer Blockchain (z.B. verteiltes Netzwerk aus Blockchain-Peers) registriert, gespeichert und/oder repliziert ist. Bei einer Transaktion handelt es sich um eine Ausführung des Smart-Contract-Codes, der als Reaktion auf Bedingungen durchgeführt werden kann, die dem erfüllten Smart Contract zugehörig sind. Das Ausführen des Smart Contract kann (eine) vertrauenswürdige Veränderung(en) an einem Status eines digitalen Blockchain-Ledger auslösen. Die Veränderung(en) an dem Blockchain-Ledger, die durch die Ausführung des Smart Contract verursacht wurden, können über ein oder mehrere Konsensprotokolle automatisch über das gesamte verteilte Netzwerk aus Blockchain-Peers hinweg repliziert werden.
  • Der Smart Contract kann Daten im Format von Schlüsselwertpaaren in die Blockchain schreiben. Des Weiteren kann der Smart-Contract-Code die in einer Blockchain gespeicherten Werte lesen und sie bei Anwendungsarbeitsschritten verwenden. Der Smart-Contract-Code kann die Ausgabe verschiedener Logikarbeitsschritte in die Blockchain schreiben. Der Code kann verwendet werden, um eine zeitweilige Datenstruktur in einer virtuellen Maschine oder in einer anderen Datenverarbeitungsplattform zu erstellen. In die Blockchain geschriebene Daten können öffentlich und/oder verschlüsselt sein und als privat verwaltet werden. Die zeitweiligen Daten, die durch den Smart Contract verwendet/erzeugt werden durch die bereitgestellte Ausführungsumgebung im Speicher gehalten und anschließend gelöscht, sobald die für die Blockchain benötigten Daten erkannt wurden.
  • Ein Chaincode kann die Codeinterpretation eines Smart Contract mit zusätzlichen Merkmalen enthalten. Wie hierin beschrieben kann es sich bei dem Chaincode um Programmcode handeln, der auf einem Datenverarbeitungsnetzwerk bereitgestellt ist, in dem er ausgeführt und während eines Konsensprozesses durch Chain-Validation gemeinsam validiert wird. Der Chaincode empfängt einen Hash und ruft aus der Blockchain einen Hash ab, der der Datenvorlage zugehörig ist, die durch Verwendung eines zuvor erstellten Merkmalextraktors erstellt wurde. Wenn die Hashes der Hash-Kennung und der Hash übereinstimmen, der aus den gespeicherten Kennungsvorlagendaten erstellt wurde, sendet der Chaincode einen Berechtigungsschlüssel an den angeforderten Service. Der Chaincode kann Daten in die Blockchain schreiben, die den kryptografischen Einzelheiten zugehörig sind.
  • 2B veranschaulicht ein Beispiel eines Blockchain-Transaktionsablaufs 250 zwischen Knoten der Blockchain gemäß beispielhaften Ausführungsformen. Unter Bezugnahme auf 2B erfolgt eine allgemeine Beschreibung des Transaktionsablaufs 250, auf die ein konkreteres Beispiel folgt. Der Transaktionsablauf kann einen Transaktionsvorschlag 291 enthalten, der durch einen Anwendungs-Client-Knoten 260 an einen Bewilligungs-Peer-Knoten 281 gesendet wird. Der Bewilligungs-Peer 281 kann die Client-Signatur überprüfen und eine Chaincode-Funktion ausführen, um die Transaktion auszulösen. Die Ausgabe kann die Chaincode-Ergebnisse, einen Satz von Schlüssel/Wert-Versionen, die im Chaincode gelesen wurden (Lesesatz), und einen Satz von Schlüsseln/Werten enthalten, die im Chaincode geschrieben wurden (Schreibsatz). Die Vorschlagsantwort 292 wird zusammen mit einer Bewilligungssignatur, sofern diese genehmigt wurde, zurück an den Client 260 gesendet. Der Client 260 setzt die Bewilligungen zu einer Transaktionsnutzlast 293 zusammen und sendet diese per Rundsendung an einen Anordnungsserviceknoten 284. Der Anordnungsserviceknoten 284 übergibt dann allen Peers 281 bis 283 auf einem Kanal geordnete Transaktionen als Blöcke. Vor der Festschreibung in die Blockchain kann jeder Peer 281 bis 283 die Transaktion validieren. Zum Beispiel können die Peers die Bewilligungsrichtlinie prüfen, um sicherzustellen, dass das korrekte Kontingent der angegebenen Peers die Ergebnisse signiert und die Signaturen im Vergleich mit der Transaktionsnutzlast 293 auf Berechtigung geprüft hat. Bei einigen Ausführungsformen kann es sich bei einem oder mehreren der Peers um die Managerknoten handeln.
  • Eine konkretere Beschreibung des Transaktionsablaufs 250 wird an einem konkreteren Beispiel verständlich. Zu Beginn leitet der Client-Knoten 260 die Transaktion 291 durch Aufbauen und Senden eine Anforderung an den Peer-Knoten 281 ein, bei dem es sich um einen Bewilliger handelt. Der Client 260 kann eine Anwendung enthalten, die ein unterstütztes Software Development Kit (SDK) nutzt, das eine verfügbare API nutzt, um einen Transaktionsvorschlag zu erzeugen. Bei dem Vorschlag handelt es sich um eine Anforderung zum Aufrufen einer Chaincode-Funktion, sodass die Daten in das Ledger geschrieben (d.h. Schreiben neuer Schlüsselwertpaare für die Assets) oder daraus gelesen werden können. Das SDK kann als Ausgleich dienen, um den Transaktionsvorschlag in ein Format mit einer ordnungsgemäßen Architektur (z.B. Protokollpuffer über einen Prozedurfernaufruf (Remote Procedure Call, RPC)) zu packen und die Kryptografie-Berechtigungsnachweise des Clients zu nehmen, um eine eindeutige Signatur für den Transaktionsvorschlag zu erzeugen.
  • Als Reaktion kann der Bewilligungs-Peer-Knoten 281 überprüfen, dass (a) der Transaktionsvorschlag richtig gebildet ist, (b) die Transaktion nicht bereits in der Vergangenheit übermittelt wurde (Schutz vor Attacken durch Nachrichtenaufzeichnung und -wiederholung (replay-attacks)), (c) die Signatur gültig ist und (d) dass der Übermittler (bei diesem Beispiel Client 260) ordnungsgemäß berechtigt ist, den vorgeschlagenen Arbeitsschritt auf diesem Kanal durchzuführen. Der Bewilligungs-Peer-Knoten 281 kann die Transaktionsvorschlagseingaben als Argumente zu der aufgerufenen Chaincode-Funktion nehmen. Der Chaincode wird dann im Vergleich mit einer Aktueller-Status-Datenbank ausgeführt, um Transaktionsergebnisse zu erzeugen, die einen Antwortwert, einen Lesesatz und einen Schreibsatz enthalten. Zu diesem Zeitpunkt werden jedoch keine Aktualisierungen am Ledger vorgenommen. In 292 wird der Satz von Werten zusammen mit der Signatur des Bewilligungs-Peer-Knotens 281 als Vorschlagsantwort 292 an das SDK des Clients 260 zurückgegeben, das die Nutzlast für die Anwendung zum Verbrauch analysiert.
  • Als Reaktion untersucht/überprüft die Anwendung des Clients 260 die Signaturen der Bewilligungs-Peers und vergleicht die Vorschlagsantworten, um zu ermitteln, ob es sich bei der Vorschlagsantwort um dieselbe handelt. Wenn der Chaincode nur das Ledger abgefragt hat, würde die Anwendung die Abfrageantwort untersuchen und die Transaktion in der Regel nicht an den Anordnungsserviceknoten 284 übermitteln. Wenn die Client-Anwendung beabsichtigt, die Transaktion an den Anordnungsserviceknoten 284 zu übermitteln, um das Ledger zu aktualisieren, ermittelt die Anwendung vor dem Übermitteln, ob die Bewilligungsrichtlinie erfüllt wurde (d.h., haben alle für die Anwendung notwendigen Peer-Knoten die Transaktion bewilligt?). Hierbei kann der Client nur eine von mehreren Parteien in die Transaktion einbeziehen. In diesem Fall kann jeder Client seinen eigenen Bewilligungsknoten haben, und jeder Bewilligungsknoten muss möglicherweise die Transaktion bewilligen. Die Architektur ist so gestaltet, dass die Bewilligungsrichtlinie nach wie vor durch Peers durchgesetzt und in der Validierungsphase der Festschreibung aufrechterhalten werden kann, selbst wenn eine Anwendung entscheidet, Antworten nicht zu untersuchen oder eine nicht bewilligte Transaktion weiterleitet.
  • Nach erfolgreicher Untersuchung setzt der Client 260 Bewilligungen zu einer Transaktion 293 zusammen und sendet den Transaktionsvorschlag und die Antwort innerhalb einer Transaktionsnachricht per Rundsendung an den Anordnungsknoten 284. Die Transaktion kann die Lese-/Schreibsätze, die Signaturen der Bewilligungs-Peers und eine Kanal-ID enthalten. Der Anordnungsknoten 284 untersucht nicht den gesamten Inhalt einer Transaktion, um seinen Arbeitsschritt durchzuführen. Stattdessen empfängt der Anordnungsknoten 284 möglicherweise einfach Transaktionen von allen Kanälen im Netzwerk, ordnet sie chronologisch nach Kanal an und erstellt Blöcke von Transaktionen pro Kanal.
  • Die Blöcke der Transaktion werden aus dem Anordnungsknoten 284 an alle Peer-Knoten 281 bis 283 auf dem Kanal übergeben. Die Transaktionen 294 innerhalb des Blocks werden validiert, um sicherzustellen, dass beliebige Bewilligungsrichtlinien ausnahmslos erfüllt sind, und um sicherzustellen, dass am Ledger-Status bei Lesesatz-Variablen keine Änderungen vorgenommen wurden, seitdem der Lesesatz durch die Transaktionsausführung erzeugt wurde. Transaktionen in dem Block sind als „gültig“ oder „ungültig“ markiert. Des Weiteren hängt jeder Peer-Knoten 281 bis 283 in Arbeitsschritt 295 den Block an die Chain des Kanals an, und für jede gültige Transaktion werden die Schreib-Sätze in die Aktueller-Status-Datenbank festgeschrieben. Ein Ereignis wird ausgegeben, um die Client-Anwendung zu benachrichtigen, dass die Transaktion (der Aufruf) unveränderbar an die Chain angehängt wurde, sowie, um mitzuteilen, ob die Transaktion für gültig oder ungültig erklärt wurde.
  • 3A veranschaulicht ein Beispiel eines zugriffsrechtebehafteten Blockchain-Netzwerks 300, das sich durch eine verteilte, dezentrale Peer-to-Peer-Architektur auszeichnet. Bei diesem Beispiel kann ein Blockchain-Benutzer 302 eine Transaktion bezüglich einer zugriffsrechtebehafteten Blockchain 304 einleiten. Bei diesem Beispiel kann es sich bei der Transaktion um ein Bereitstellen, ein Aufrufen oder ein Abfragen handeln, und sie kann über eine Client-seitige Anwendung, die ein SDK nutzt, direkt über eine API usw. ausgegeben werden. Netzwerke können einem Regulierer 306 wie z.B. einem Prüfer Zugriff bereitstellen. Ein Blockchain-Netzwerkbetreiber 308 verwaltet Mitgliederberechtigungen wie z.B. Registrieren des Regulierers 306 als „Prüfer“ und des Blockchain-Benutzers 302 als „Client“. Ein Prüfer kann auf lediglich das Abfragen des Ledger beschränkt sein, während ein Client berechtigt sein kann, bestimmte Arten von Chaincode bereitzustellen, aufzurufen und abzufragen.
  • Ein Blockchain-Entwickler 310 kann Chaincode und Client-seitige Anwendungen schreiben. Der Blockchain-Entwickler 310 kann dem Netzwerk über eine Schnittstelle Chaincode direkt bereitstellen. Um Berechtigungsnachweise aus einer herkömmlichen Datenquelle 312 in Chaincode einzubeziehen, kann der Entwickler 310 zum Zugreifen auf die Daten eine Außerbandverbindung verwenden. Bei in diesem Beispiel verbindet sich der Blockchain-Benutzer 302 mit der mit Berechtigungen versehenen Blockchain 304 über einen der Peer-Knoten 314 (was sich auf einen beliebigen der Knoten 314a bis e bezieht). Vor dem Fortsetzen mit beliebigen Transaktionen ruft der Peer-Knoten 314 (z.B. Knoten 314a) die Registrierung des Benutzers und Transaktionszertifikate von einer Zertifizierungsstelle 316 ab, die Benutzerrollen und Berechtigungen verwaltet. In einigen Fällen müssen Blockchain-Benutzer diese digitalen Zertifikate besitzen, um an der mit Berechtigungen versehenen Blockchain 304 Transaktionen vornehmen zu können. In der Zwischenzeit muss ein Benutzer, der Chaincode zu nutzen versucht, möglicherweise seine Benutzerberechtigungen an der herkömmlichen Datenquelle 312 bekräftigen. Um die Berechtigung des Benutzers zu bestätigen, kann Chaincode eine Außerbandverbindung zu diesen Daten über eine herkömmliche Verarbeitungsplattform 318 verwenden.
  • 3B veranschaulicht ein weiteres Beispiel eines zugriffsrechtebehafteten Blockchain-Netzwerks 320, das sich durch eine verteilte, dezentrale Peer-to-Peer-Architektur auszeichnet. Bei diesem Beispiel kann ein Blockchain-Benutzer 322 eine Transaktion bezüglich einer zugriffsrechtebehafteten Blockchain 324 übermitteln. Bei diesem Beispiel kann es sich bei der Transaktion um ein Bereitstellen, ein Aufrufen oder ein Abfragen handeln, und sie kann über eine Client-seitige Anwendung, die ein SDK nutzt, direkt über eine API usw. ausgegeben werden. Netzwerke können einem Regulierer 326 wie z.B. einem Prüfer Zugriff bereitstellen. Ein Blockchain-Netzwerkbetreiber 328 verwaltet Mitgliederberechtigungen wie z.B. Registrieren des Regulierers 326 als „Prüfer“ und des Blockchain-Benutzers 322 als „Client“. Ein Prüfer kann auf lediglich das Abfragen des Ledger beschränkt sein, während ein Client berechtigt sein kann, bestimmte Arten von Chaincode bereitzustellen, aufzurufen und abzufragen.
  • Ein Blockchain-Entwickler 330 schreibt Chaincode und Client-seitige Anwendungen. Der Blockchain-Entwickler 330 kann dem Netzwerk über eine Schnittstelle Chaincode direkt bereitstellen. Um Berechtigungsnachweise aus einer herkömmlichen Datenquelle 332 in Chaincode einzubeziehen, kann der Entwickler 330 zum Zugreifen auf die Daten eine Außerbandverbindung verwenden. Bei diesem Beispiel verbindet sich der Blockchain-Benutzer 322 über einen Peer-Knoten 334 mit dem Netzwerk. Vor dem Fortsetzen mit beliebigen Transaktionen ruft der Peer-Knoten 334 die Registrierung des Benutzers und Transaktionszertifikate von der Zertifizierungsstelle 336 ab. In einigen Fällen müssen Blockchain-Benutzer diese digitalen Zertifikate besitzen, um an der mit Berechtigungen versehenen Blockchain 324 Transaktionen vornehmen zu können. In der Zwischenzeit muss ein Benutzer, der Chaincode zu nutzen versucht, möglicherweise seine Benutzerberechtigungen an der herkömmlichen Datenquelle 332 bekräftigen. Um die Berechtigung des Benutzers zu bestätigen, kann Chaincode eine Außerbandverbindung zu diesen Daten über eine herkömmliche Verarbeitungsplattform 338 verwenden.
  • Bei einigen Ausführungsformen der vorliegenden Offenbarung kann es sich bei der Blockchain hierin um eine zugriffsrechtelose Blockchain handeln. Im Gegensatz zu zugriffsrechtebehafteten Blockchains, die eine Berechtigung zum Beitreten erfordern, kann einer zugriffsrechtelosen Blockchain jeder beitreten. Um zum Beispiel einer zugriffsrechtelosen Blockchain beizutreten, kann ein Benutzer eine persönliche Adresse erstellen und durch Übermitteln von Transaktionen mit dem Netzwerk zu interagieren beginnen und somit Einträge zu dem Ledger hinzufügen. Darüber hinaus haben alle Parteien die Wahl, einen Knoten in dem System auszuführen und die Schürfprotokolle (mining protocols) zu nutzen, um Transaktionen leichter überprüfen zu können.
  • 3C veranschaulicht einen Prozess 350 einer Transaktion, die durch eine zugriffsrechtelose Blockchain 352 verarbeitet wird, die eine Mehrzahl von Knoten 354 enthält. Ein Absender 356 möchte eine Zahlung oder eine andere Art von Wert (z.B. eine Urkunde, medizinische Unterlagen, einen Vertrag, eine Ware, einen Service oder ein beliebiges anderes Asset, das in einem digitalen Datensatz gekapselt werden kann) über die zugriffsrechtelose Blockchain 352 an einen Empfänger 358 senden. Bei bestimmten Ausführungsformen kann jede der Absendereinheit 356 und der Empfängereinheit 358 digitale Geldbörsen (Wallets) (die der Blockchain 352 zugehörig sind) haben, die Benutzeroberflächen-Steuerelemente und eine Anzeige von Transaktionsparametern bereitstellen. Als Reaktion wird die Transaktion über die gesamte Blockchain 352 hinweg an die Knoten 354 rundgesendet.
  • Je nach den Netzwerkparametern der Blockchain 352 überprüfen 360 die Knoten die Transaktion auf der Grundlage von Regeln (die vordefiniert oder dynamisch zugeordnet sein können), die durch die Ersteller der zugriffsrechtelosen Blockchain 352 aufgestellt wurden. Dies kann zum Beispiel ein Überprüfen von Identitäten der beteiligten Parteien usw. umfassen. Die Transaktion kann sofort überprüft oder in einer Warteschlange mit anderen Transaktionen abgelegt werden, und die Knoten 354 ermitteln auf der Grundlage eines Satzes von Netzwertregeln, ob die Transaktionen gültig sind.
  • In einer Struktur 362 werden gültige Transaktionen zu einem Block gebildet und mit einer Sperre (Hash) versiegelt. Dieser Prozess kann durch Schürfknoten (mining nodes) unter den Knoten 354 durchgeführt werden. Schürfknoten können zusätzliche Software speziell zum Schürfen und Erstellen von Blöcken für die zugriffsrechtelose Blockchain 352 nutzen. Jeder Block kann durch einen Hash (z.B. eine 256-Bit-Zahl usw.) gekennzeichnet sein, der unter Verwendung eines Algorithmus erstellt wurde, über den das Netzwerk Einvernehmen erzielt hat. Jeder Block kann Kopfdaten, einen Zeiger bzw. einen Verweis auf einen Hash von Kopfdaten eines vorhergehenden Blocks in der Chain und eine Gruppe von validierten Transaktionen enthalten. Der Verweis auf den Hash des vorhergehenden Blocks ist der Erstellung der sicheren unabhängigen Chain von Blöcken zugehörig.
  • Bevor Blöcke zu der Blockchain hinzugefügt werden können, müssen die Blöcke validiert werden. Eine Validierung für die zugriffsrechtelose Blockchain 352 kann einen Proof of Work (PoW) enthalten, bei dem es sich um eine Lösung eines Puzzle handelt, das aus den Kopfdaten des Blocks abgeleitet wurde. Obwohl bei dem Beispiel von 3C nicht gezeigt, handelt es sich bei einem weiteren Prozess zum Validieren eines Blocks um den Anspruchsnachweis (Proof of Stake). Anders als beim Arbeitsnachweis, bei dem der Algorithmus den Schürfer (miner) belohnt, der mathematische Probleme löst, wird beim Anspruchsnachweis ein Ersteller eines neuen Blocks je nach seinem Vermögen, das auch als „Anteil“ definiert ist, in einer deterministischen Weise gewählt. Danach wird ein ähnlicher Nachweis durch den ausgewählten/gewählten Knoten durchgeführt.
  • Beim Schürfen 364 versuchen Knoten, den Block zu lösen, indem zunehmende Änderungen an einer Variablen vorgenommen werden, bis die Lösung eine netzwerkweite Zielvorgabe erfüllt. Dies erstellt den PoW, wodurch korrekte Antworten sichergestellt werden. Mit anderen Worten, eine mögliche Lösung muss nachweisen, dass die Datenverarbeitungsressourcen beim Lösen des Problems ausgeschöpft wurden. Bei einigen Arten zugriffsrechteloser Blockchains können Schürfer mit einem Wert (z.B. Münzen usw.) für korrektes Schürfen eines Blocks belohnt werden.
  • Hierbei erschwert der PoW-Prozess entlang der Verkettung von Blöcken ein Verändern der Blockchain extrem, da ein Angreifer alle nachfolgenden Blöcke verändern muss, damit die Veränderungen eines Blocks akzeptiert werden. Des Weiteren erhöht sich beim Schürfen eines neuen Blocks die Schwierigkeit des Veränderns eines Blocks und die Anzahl nachfolgender Blöcke erhöht sich. Bei einer Verteilung 366 werden die erfolgreichen validierten Blöcke über die zugriffsrechtelose Blockchain 352 verteilt und alle Knoten 354 fügen den Block zu einer Mehrheits-Chain hinzu, bei der es sich um das prüfbare Ledger der zugriffsrechtelosen Blockchain 352 handelt. Des Weiteren wird der Wert in der Transaktion, die durch den Absender 356 übermittelt wurde, in der digitalen Geldbörse der Empfängereinheit 358 abgelegt oder anderweitig dorthin übertragen.
  • 4A veranschaulicht einen Prozess 400 des Hinzufügens eines neuen Blocks zu einem verteilten Ledger 420 gemäß beispielhaften Ausführungsformen, und 4B veranschaulicht Inhalte einer neuen Datenblockstruktur 430 für eine Blockchain gemäß beispielhaften Ausführungsformen. Der neue Datenblock 430 kann Dokumentverknüpfungsdaten enthalten.
  • Unter Bezugnahme auf 4A können Clients (nicht gezeigt) Transaktionen zu Blockchain-Knoten 411, 412 und/oder 413 übermitteln. Bei Clients kann es sich um Anweisungen handeln, die von einer beliebigen Quelle empfangen wurden, um Aktivitäten an der Blockchain 420 in Kraft zu setzen. Zum Beispiel kann es sich bei Clients um Anwendungen handeln, die im Auftrag eines Anforderers wie z.B. einer Einheit, einer Person oder einer Entität agieren, um Transaktionen für die Blockchain vorzuschlagen. Die Mehrzahl von Blockchain-Peers (z.B. Blockchain-Knoten 411, 412 und 413) können einen Status des Blockchain-Netzwerks und eine Kopie des verteilten Ledger 420 verwalten. Unterschiedliche Arten von Blockchain-Knoten/-Peers können in dem Blockchain-Netzwerk vorliegen, unter anderem Bewilligungs-Peers, die durch Clients vorgeschlagene Transaktionen simulieren und bewilligen, und Festschreibungs-Peers, die Bewilligungen überprüfen, Transaktionen validieren und Transaktionen in das verteilte Ledger 420 festschreiben. Bei diesem Beispiel können die Blockchain-Knoten 411, 412 und 413 die Rolle eines Bewilligerknotens, Festschreiberknotens oder beide durchführen.
  • Das verteilte Ledger 420 enthält eine Blockchain, die unveränderbare, in Abfolgen angeordnete Datensätze in Blöcken und eine Statusdatenbank 424 (aktueller World-Status) speichert, wodurch ein aktueller Status der Blockchain 422 verwaltet wird. Ein verteiltes Ledger 420 kann pro Kanal vorhanden sein, und jeder Peer verwaltet seine eigene Kopie des verteilten Ledger 420 für jeden Kanal, dessen Mitglied er ist. Bei der
    Blockchain 422 handelt es sich um ein Transaktionsprotokoll, das als Hash-verknüpfte Blöcke organisiert ist, wobei jeder Block eine Abfolge aus N Transaktionen enthält. Blöcke können verschiedene Komponenten wie z.B. in 4B gezeigt enthalten. Das Verknüpfen der Blöcke (durch Pfeile in 4A gezeigt) kann erzeugt werden, indem ein Hash von Kopfdaten eines vorhergehenden Blocks innerhalb von Block-Kopfdaten eines aktuellen Blocks hinzugefügt wird. Auf diese Weise werden alle Transaktionen an der Blockchain 422 in einer Abfolge angeordnet und kryptografisch miteinander verknüpft, wodurch das Manipulieren von Blockchain-Daten verhindert wird, ohne die Hash-Verknüpfungen aufzubrechen. Des Weiteren gibt der neueste Block in der Blockchain 422 wegen der Verknüpfungen jede Transaktion wieder, die davor stattgefunden hat. Die Blockchain 422 kann in einem Peer-Dateisystem (lokaler oder angeschlossener Speicher) gespeichert werden, der eine Nur-anhängen-Blockchain-Betriebslast unterstützt.
  • Der aktuelle Status der Blockchain 422 und des verteilten Ledger 420 können in der Statusdatenbank 424 gespeichert werden. Hierbei geben die aktuellen Statusdaten die neuesten Werte für alle Schlüssel wieder, die überhaupt im Chain-Transaktionsprotokoll der Blockchain 422 enthalten sind. Chaincode-Aufrufe führen Transaktionen in Bezug auf den aktuellen Status in der Statusdatenbank 424 aus. Um diese Chaincode-Interaktionen extrem effizient ablaufen zu lassen, werden die neuesten Werte der Schlüssel in einer Statusdatenbank 424 gespeichert. Die Statusdatenbank 424 kann eine indizierte Ansicht des Transaktionsprotokolls der Blockchain 422 enthalten, sie kann daher zu einem beliebigen Zeitpunkt aus der Chain neu erzeugt werden. Die Statusdatenbank 424 kann nach dem Start von Peers und vor dem Akzeptieren von Transaktionen automatisch wiederhergestellt (oder bei Bedarf erzeugt) werden.
  • Bewilligungsknoten empfangen Transaktionen von Clients und bewilligen die Transaktion auf der Grundlage simulierter Ergebnisse. Bewilligungsknoten enthalten Smart Contracts, die die Transaktionsvorschläge simulieren. Wenn ein Bewilligungsknoten eine Transaktion bewilligt, erstellt der Bewilligungsknoten eine Transaktionsbewilligung, bei der es sich um eine signierte Antwort von dem Bewilligungsknoten an die Client-Anwendung handelt, die die Bewilligung der simulierten Transaktion anzeigt. Das Verfahren des Bewilligens einer Transaktion hängt von einer Bewilligungsrichtlinie ab, die innerhalb von Chaincode angegeben sein kann. Ein Beispiel einer Bewilligungsrichtlinie ist „Die Mehrheit der Bewilligungs-Peers muss die Transaktion bewilligen“. Unterschiedliche Kanäle können unterschiedliche Bewilligungsrichtlinien haben. Bewilligte Transaktionen werden durch die Client-Anwendung an den Anordnungsservice 410 weitergeleitet.
  • Der Anordnungsservice 410 akzeptiert bewilligte Transaktionen, ordnet sie zu einem Block an und übergibt die Blöcke an die Festschreibungs-Peers. Zum Beispiel kann der Anordnungsservice 410 einen neuen Block einleiten, wenn ein Schwellenwert von Transaktionen erreicht wurde, ein Zeitgeber abläuft oder eine andere Bedingung eintritt. Bei dem Beispiel von 4A handelt es sich bei dem Blockchain-Knoten 412 um einen Festschreibungs-Peer, der neue Daten einen neuen Datenblock 430 zur Speicherung in der Blockchain 420 empfangen hat. Der erste Block in der Blockchain kann als „Ursprungsblock“ bezeichnet werden, der Informationen über die Blockchain, ihre Mitglieder, die darin gespeicherten Daten usw. enthält.
  • Der Anordnungsservice 410 kann aus einem Cluster von Anordnern bestehen. Der Anordnungsservice 410 verarbeitet keine Transaktionen, Smart Contracts und verwaltet das gemeinsam genutzte Ledger nicht. Vielmehr kann der Anordnungsservice 410 die bewilligten Transaktionen akzeptieren und gibt die Reihenfolge an, in der diese Transaktionen in das verteilte Ledger 420 festgeschrieben werden. Die Architektur des Blockchain-Netzwerks kann so gestaltet sein, dass die konkrete Realisierungsform des ,Anordnens' (z.B. Solo, Kafka, BFT usw.) zu einer hinzufügbaren Komponente wird.
  • Transaktionen werden in das verteilte Ledger 420 in einer einheitlichen Reihenfolge geschrieben. Die Reihenfolge von Transaktionen wird hergestellt, um sicherzustellen, dass die Aktualisierungen der Statusdatenbank 424 gültig sind, wenn sie in das Netzwerk festgeschrieben werden. Im Gegensatz zu einem Blockchain-System einer Kryptowährung (z.B. Bitcoin usw.), bei dem das Anordnen über ein Lösen eines kryptografischen Puzzle bzw. das Schürfen erfolgt, können die Parteien des verteilten Ledger 420 bei diesem Beispiel den Anordnungsmechanismus wählen, der am besten für dieses Netzwerk geeignet ist.
  • Wenn der Anordnungsservice 410 einen neuen Datenblock 430 initialisiert, kann der neue Datenblock 430 an Festschreibungs-Peers (z.B. die Blockchain-Knoten 411, 412 und 413) rundgesendet werden. Als Reaktion validiert jeder Festschreibungs-Peer die Transaktion innerhalb des neuen Datenblocks 430 durch Prüfen, um sicherzustellen, dass der neue Lesesatz und der Schreibsatz nach wie vor mit dem aktuellen World-Status in der Statusdatenbank 424 übereinstimmen. Insbesondere kann der Festschreibungs-Peer ermitteln, ob die Lesedaten, die vorhanden waren, als die Bewilliger die Transaktion simulierten, mit dem aktuellen World-Status in der Statusdatenbank 424 identisch sind. Wenn der Festschreibungs-Peer die Transaktion validiert, wird die Transaktion in die Blockchain 422 im verteilten Ledger 420 geschrieben, und die Statusdatenbank 424 wird mit den Schreibdaten aus dem Lese-Schreib-Satz aktualisiert. Wenn eine Transaktion fehlschlägt, d.h. wenn der Festschreibungs-Peer feststellt, dass der Lese-Schreib-Satz nicht mit dem aktuellen World-Status in der Statusdatenbank 424 übereinstimmt, kann die zu einem Block geordnete Transaktion nach wie vor in diesem Block enthalten bleiben, aber sie kann als ungültig markiert werden, und die Statusdatenbank 424 wird möglicherweise nicht aktualisiert.
  • Unter Bezugnahme auf 4B kann ein neuer Datenblock 430 (der auch als „Datenblock“ bezeichnet wird), der in der Blockchain 422 des verteilten Ledger 420 gespeichert ist, mehrere Datensegmente wie z.B. Block-Kopfdaten 440, Blockdaten 450 und Block-Metadaten 460 enthalten. Es sollte klar sein, dass die verschiedenen abgebildeten Blöcke und deren Inhalte wie z.B. der neue Datenblock 430 und seine Inhalte. In 4B sind lediglich Beispiele gezeigt und nicht als Einschränkung des Schutzumfangs der beispielhaften Ausführungsformen gedacht. Der neue Datenblock 430 kann Transaktionsinformationen von N Transaktion(en) (z.B. 1, 10, 100, 500, 1000, 2000, 3000 usw.) innerhalb des Blocks 450 speichern. Der neue Datenblock 430 kann außerdem eine Verknüpfung zu einem vorhergehenden Block (z.B. über die Blockchain 422 in 4A) innerhalb der Block-Kopfdaten 440 enthalten. Insbesondere können die Block-Kopfdaten 440 einen Hash von Kopfdaten eines vorhergehenden Blocks enthalten. Die Block-Kopfdaten 440 können außerdem eine eindeutige Blocknummer, einen Hash der Blockdaten 450 des neuen Datenblocks 430 und dergleichen enthalten. Die Blocknummer des neuen Datenblocks 430 kann eindeutig und in verschiedenen Reihenfolgen zugewiesen sein, wie z.B. in einer zunehmenden/laufenden Reihenfolge, die mit null beginnt.
  • Die Blockdaten 450 können Transaktionsinformationen von jeder Transaktion speichern, die innerhalb des neuen Datenblocks 430 aufgezeichnet ist. Zum Beispiel können die Transaktionsdaten eines oder mehreres aus einer Art der Transaktion, einer Version, einem Zeitstempel, einer Kanal-ID des verteilten Ledger 420, einer Transaktions-ID, einer Epoche, einer Nutzlastsichtbarkeit, eines Chaincode-Pfads (tx bereitstellen), einem Chaincode-Namen, einer Chaincode-Version, Eingaben (Chaincode und Funktionen), einer Client-Kennung (Erstellerkennung) wie z.B. ein öffentlicher Schlüssel und ein Zertifikat, einer Signatur des Clients, Identitäten von Bewilligern, Bewilligersignaturen, einem Vorschlags-Hash, Chaincode-Ereignissen, Antwortstatus, Namensraum, einem Lesesatz (Liste des Schlüssels und der Version, die durch die Transaktion gelesen wurden, usw.), einem Schreibsatz (Liste des Schlüssels und des Werts usw.), einem Startschlüssel, einem Endschlüssel, einer Liste von Schlüsseln, einer Zusammenfassung von Merkel-Baum-Abfragen und dergleichen enthalten. Die Transaktionsdaten können für jede der N Transaktionen gespeichert werden.
  • Bei einigen Ausführungsformen können die Blockdaten 450 außerdem neue Daten 462 speichern, die zusätzliche Informationen zu der Hash-verknüpften Chain von Blöcken in der Blockchain 422 hinzufügen. Die zusätzlichen Informationen enthalten eines oder mehreres der Schritte, Merkmale, Prozesse und/oder Aktionen, die hierin beschrieben oder abgebildet sind. Dementsprechend können die neuen Daten 462 in einem unveränderbaren Protokoll von Blöcken im verteilten Ledger 420 gespeichert werden. Einige der Vorteile des Speicherns derartiger neuer Daten 462 sind in den verschiedenen Ausführungsformen wiedergegeben, die hierin offenbart und abgebildet sind. Zwar sind in 4B die neuen Daten 462 in den Blockdaten 450 abgebildet, können sich aber auch in den Block-Kopfdaten 440 oder in den Block-Metadaten 460 befinden. Die neuen Daten 462 können einen Dokumentverbundschlüssel enthalten, der zum Verknüpfen der Dokumente innerhalb einer Organisation verwendet wird.
  • Die Block-Metadaten 460 können mehrere Felder von Metadaten speichern (z.B. als Byte-Array usw.). Metadatenfelder können eine Signatur bei Blockerstellung, einen Verweis auf einen letzten Konfigurationsblock, einen Transaktionsfilter, der gültige und ungültige Transaktionen innerhalb des Blocks erkennt, einen letzten fortdauernden Offset eines Anordnungsservice, der den Block geordnet hat, und dergleichen enthalten. Die Signatur, der letzte Konfigurationsblock und die Anordner-Metadaten können durch den Anordnungsservice 410 hinzugefügt werden. In der Zwischenzeit kann ein Festschreiber des Blocks (wie z.B. der Blockchain-Knoten 412) auf der Grundlage einer Bewilligungsrichtlinie, einer Überprüfung von Lese-/Schreibsätzen und dergleichen Gültigkeits-/Ungültigkeitsinformationen hinzufügen. Der Transaktionsfilter kann ein Byte-Array einer Größe, die gleich der Anzahl von Transaktionen in den Blockdaten 450 ist, und einen Validierungscode enthalten, der kennzeichnet, ob eine Transaktion gültig/ungültig war.
  • 4C veranschaulicht einer Ausführungsform einer Blockchain 470 für digitalen Inhalt gemäß den hierin beschriebenen Ausführungsformen. Der digitale Inhalt kann eine oder mehrere Dateien und zugehörige Informationen umfassen. Die Dateien können Medien, Bilder, Video, Audio, Text, Verknüpfungen, Grafiken, Animationen, Webseiten, Dokumente oder andere Formen von digitalem Inhalt enthalten. Die unveränderbaren Nur-anhängen Aspekte der Blockchain dienen als Schutzmaßnahme, um die Integrität, Gültigkeit und Authentizität des digitalen Inhalts zu schützen, sodass er zur Verwendung in Gerichtsverfahren geeignet ist, bei denen Zulässigkeitsregeln oder andere Umstände gelten, bei denen Beweise berücksichtigt werden oder bei denen die Vorlage und Verwendung digitaler Informationen anderweitig von Interesse ist. In diesem Fall kann der digitale Inhalt als „digitaler Beweis“ bezeichnet werden.
  • Die Blockchain kann auf verschiedene Weise gebildet werden. Bei einigen Ausführungsformen kann der digitale Inhalt in der Blockchain enthalten sein, und aus der Blockchain selbst kann auf diesen zugegriffen werden. Zum Beispiel kann jeder Block der Blockchain einen Hash-Wert von Verweisinformationen (z.B. Kopfdaten, Wert usw.) im Zusammenhang mit dem zugehörigen digitalen Inhalt speichern. Der Hash-Wert und der zugehörige digitale Inhalt können dann zusammen verschlüsselt werden. Somit kann auf den digitalen Inhalt dieses Blocks zugegriffen werden, indem jeder Block in der Blockchain entschlüsselt wird, und der Hash-Wert jedes Blocks kann als Grundlage zum Verweisen auf einen vorhergehenden Block verwendet werden. Dies kann wie folgt veranschaulicht werden:
    Block 1 Block 2 ....... Block N
    Hash-Wert 1 Hash-Wert 2 Hash-Wert N
    Digitaler Inhalt 1 Digitaler Inhalt 2 Digitaler Inhalt N
  • Bei einigen Ausführungsformen ist der digitale Inhalt möglicherweise nicht in der Blockchain enthalten. Zum Beispiel kann die Blockchain die verschlüsselten Hashes des Inhalts jedes Blocks ohne einen beliebigen des digitalen Inhalts speichern. Der digitale Inhalt kann in einem anderen Speicherbereich oder in einer anderen Speicheradresse im Zusammenhang mit dem Hash-Wert der ursprünglichen Datei gespeichert werden. Bei dem anderen Speicherbereich kann es sich um dieselbe Speichereinheit handeln, die zum Speichern der Blockchain verwendet wird, oder es kann sich um einen sich davon unterscheidenden Speicherbereich oder sogar um eine getrennte relationale Datenbank handeln. Auf den digitalen Inhalt jedes Blocks kann verwiesen oder zugegriffen werden, indem der Hash-Wert eines Blocks von Interesse erhalten oder abgefragt und dann dieser Hash-Wert, der in Übereinstimmung mit dem tatsächlichen digitalen Inhalt gespeichert ist, in dem Speicherbereich nachgeschlagen wird. Dieser Arbeitsschritt kann zum Beispiel durch einen Datenbank-Gatekeeper durchgeführt werden. Dies kann wie folgt veranschaulicht werden:
    Blockchain Speicherbereich
    Hash-Wert Block 1 Hash-Wert Block 1 ... Inhalt
    - -
    - -
    - -
    Hash-Wert Block N Hash-Wert Block N ... Inhalt
  • Bei der beispielhaften Ausführungsform von 4C enthält die Blockchain 470 eine Anzahl von Blöcken 4781, 4782, ... 478N, die in einer geordneten Abfolge kryptografisch verknüpft sind, wobei N ≥ 1. Bei der zum Verknüpfen der Blöcke 4781, 4782, ... 478N verwendeten Verschlüsselung kann es sich um eine beliebige einer Anzahl von Hash-Funktionen mit oder ohne Schlüssel handeln. Bei einigen Ausführungsformen unterliegen die Blöcke 4781, 4782, ... 478N einer Hash-Funktion, die aus Eingaben, die auf Informationen in den Blöcken beruhen, alphanumerische n-Bit-Ausgaben erzeugt (wobei n 256 oder eine andere Zahl ist). Zu Beispielen einer derartigen Hash-Funktion gehören, ohne auf diese beschränkt zu sein, ein SHA-Algorithmus (SHA steht für Secured Hash Algorithm), ein Merkle-Damgard-Algorithmus, ein HAIFA-Algorithmus, ein Merkle-Baum-Algorithmus, ein Algorithmus auf Nonce-Grundlage und ein nicht-kollisionsfester PRF-Algorithmus. Bei anderen Ausführungsformen können die Blöcke 4781, 4782, ..., 478N durch eine Funktion kryptografisch verknüpft sein, die sich von einer Hash-Funktion unterscheidet. Zu Veranschaulichungszwecken erfolgt die nachstehende Beschreibung unter Bezugnahme auf eine Hash-Funktion, z.B. SHA-2.
  • Jeder der Blöcke 4781, 4782, ..., 478N in der Blockchain enthält Kopfdaten, eine Version der Datei und einen Wert. Die Kopfdaten und der Wert unterscheiden sich bei jedem Block infolge des Hash-Verfahrens in der Blockchain. Bei einigen Ausführungsformen kann der Wert in den Kopfdaten enthalten sein. Wie nachstehend ausführlich beschrieben wird, kann es sich bei der Version der Datei um die Originaldatei oder eine andere Version der Originaldatei handeln.
  • Der erste Block 4781 in der Blockchain wird als „Ursprungsblock“ bezeichnet und enthält die Kopfdaten 4721, die Originaldatei 4741 und einen Anfangswert 4761. Das beim Ursprungsblock und auch bei allen nachfolgenden Blöcken verwendete Hash-Verfahrensschema kann variieren. Zum Beispiel können alle Informationen im ersten Block 4781 zusammen und gleichzeitig Hash-verschlüsselt werden, oder jede oder ein Abschnitt der Informationen in ersten Block 4781 kann getrennt Hash-verschlüsselt werden, und ein Hash der getrennt Hash-verschlüsselten Abschnitte kann dann durchgeführt werden.
  • Die Kopfdaten 4721 können einen oder mehrere Anfangsparameter enthalten, die zum Beispiel eine Versionsnummer, einen Zeitstempel, eine Nonce, Stammverzeichnisinformationen, einen Schwierigkeitsgrad, ein Konsensprotokoll, eine Dauer, ein Medienformat, eine Quelle, beschreibende Schlüsselwörter und/oder andere Informationen enthalten, die der Originaldatei 4741 und/oder der Blockchain zugehörig sind. Die Kopfdaten 4721 können automatisch (z.B. durch Blockchain-Netzwerk-Verwaltungssoftware) oder manuell durch einen Blockchain-Teilnehmer erzeugt werden. Im Gegensatz zu den Kopfdaten in anderen Blöcken 4782 bis 478N in der Blockchain verweisen die Kopfdaten 4721 im Ursprungsblock nicht auf einen vorhergehenden Block, einfach deshalb, weil kein vorhergehender Block vorliegt.
  • Bei der Originaldatei 4741 im Ursprungsblock kann es sich zum Beispiel um Daten handeln, die vor ihrer Einbeziehung in die Blockchain durch eine Einheit mit oder ohne Verarbeitung erfasst wurden. Die Originaldatei 4741 wird über die Schnittstelle des Systems von der Einheit, von der Medienquelle oder von dem Knoten empfangen. Zur Originaldatei 4741 sind Metadaten zugehörig, die zum Beispiel durch einen Benutzer, die Einheit und/oder den Systemprozessor entweder manuell oder automatisch erzeugt werden können. Die Metadaten können im ersten Block 4781 im Zusammenhang mit der Originaldatei 4741 enthalten sein.
  • Bei dem Wert 4761 im Ursprungsblock handelt es sich um einen Anfangswert, der auf der Grundlage eines oder mehrerer eindeutiger Attribute der Originaldatei 4741 erzeugt wurde. Bei einigen Ausführungsformen können das eine oder die mehreren eindeutigen Attribute den Hash-Wert für die Originaldatei 4741, Metadaten für die Originaldatei 4741 und andere zu der Datei gehörige Informationen enthalten. Bei einer Realisierungsform kann der Anfangswert 4761 auf den folgenden eindeutigen Attributen beruhen:
    1. 1) mit SHA-2 berechneter Hash-Wert für die Originaldatei
    2. 2) ID der Abstammungseinheit
    3. 3) Start-Zeitstempel für die Originaldatei
    4. 4) anfänglicher Speicherort der Originaldatei
    5. 5) ID des Mitglieds des Blockchain-Netzwerks für Software, um aktuell die Originaldatei und zugehörige Metadaten zu steuern
  • Die anderen Blöcke 4782 bis 478N in der Blockchain haben ebenfalls Kopfdaten, Dateien und Werte. Im Gegensatz zu den Kopfdaten 4721 im ersten Block enthalten jedoch alle der Kopfdaten 4722 bis 472N in den anderen Blöcken den Hash-Wert eines unmittelbar vorausgehenden Blocks. Bei dem Hash-Wert des unmittelbar vorausgehenden Blocks kann es sich um genau den Hash der Kopfdaten des vorhergehenden Blocks handeln, oder es kann sich um den Hash-Wert des gesamten vorhergehenden Blocks handeln. Durch Einbeziehen des Hash-Werts eines vorausgehenden Blocks in jeden der übrigen Blöcke kann eine Verfolgung vom N-ten Block zurück zum Ursprungsblock (und zur zugehörigen Originaldatei) blockweise durchgeführt werden, wie durch Pfeile 480 angegeben, um eine prüfbare und unveränderbare Beweismittelkette (Chain of Custody) zu schaffen.
  • Alle der Kopfdaten 4722 bis 472N in den anderen Blöcken können ebenfalls andere Informationen enthalten, z.B. Versionsnummer, Zeitstempel, Nonce, Stammverzeichnisinformationen, Schwierigkeitsgrad, Konsensprotokoll und/oder andere Parameter oder Informationen, die den entsprechenden Dateien und/oder der Blockchain im Allgemeinen zugehörig sind.
  • Die Dateien 4742 bis 474N in den anderen Blöcken können gleich der Originaldatei sein, oder es kann sich zum Beispiel je nach der Art der durchgeführten Verarbeitung um eine abgeänderte Version der Originaldatei im Ursprungsblock handeln. Die Art der durchgeführten Verarbeitung kann von Block zu Block variieren. Die Verarbeitung kann zum Beispiel beliebige Abänderungen einer Datei in einem vorausgehenden Block wie z.B. Redigieren von Informationen oder ein anderweitiges Ändern des Inhalts durch Entfernen von Informationen oder durch Hinzufügen zu oder Anhängen von Informationen an die Dateien umfassen.
  • Darüber hinaus oder alternativ kann das Verarbeiten lediglich ein Kopieren der Datei aus einem vorausgehenden Block, ein Ändern eines Speicherorts der Datei, ein Analysieren der Datei aus einem oder mehreren vorausgehenden Blöcken, ein Verschieben der Datei von einem Speicherort oder einem Speicherort zu einem anderen oder ein Durchführen von Aktionen in Bezug auf die Datei der Blockchain und/oder ihre zugehörigen Metadaten umfassen. Das Verarbeiten, das das Analysieren einer Datei umfasst, kann zum Beispiel ein Anhängen, Einbeziehen oder ein anderweitiges Zuordnen verschiedener Analysen, Statistiken oder anderer, zu der Datei gehöriger Informationen enthalten.
  • Bei den Werten in jedem der anderen Blöcke 4762 bis 476N in den anderen Blöcken handelt es sich um eindeutige Werte und alle unterscheiden sich infolge der durchgeführten Verarbeitung. Zum Beispiel entspricht der Wert in einem beliebigen Block einer aktualisierten Version des Werts im vorhergehenden Block. Die Aktualisierung spiegelt sich in dem Hash des Blocks wider, dem der Wert zugewiesen ist. Die Werte der Blöcke stellen daher eine Angabe bereit, welche Verarbeitung in den Blöcken durchgeführt wurde, und ermöglichen außerdem ein Verfolgen durch die Blockchain zurück zur Originaldatei. Dieses Nachverfolgen bekräftigt die Beweiskette der Datei durch die gesamte Blockchain.
  • Zum Beispiel soll der Fall betrachtet werden, bei dem Abschnitte der Datei in einem vorhergehenden Block redigiert, unleserlich gemacht oder verpixelt wurden, um die Identität einer in der Datei gezeigten Personen zu schützen. In diesem Fall kann der Block, der die redigierte Datei enthält, der redigierten Datei zugehörige Metadaten enthalten, z.B. wie das Redigieren durchgeführt wurde, wer das Redigieren durchgeführt hat, Zeitstempel, an denen das Redigieren stattfand, usw. Die Metadaten können Hash-verschlüsselt werden, um den Wert zu bilden. Da sich die Metadaten für den Block von den Informationen unterscheiden, die Hash-verschlüsselt wurden, um den Wert im vorhergehenden Block zu bilden, unterscheiden sich die Werte voneinander und können beim Entschlüsseln wiederhergestellt werden.
  • Bei einigen Ausführungsformen kann der Wert eines vorhergehenden Blocks aktualisiert (z.B. ein neuer Hash-Wert berechnet) werden, um den Wert eines aktuellen Blocks zu bilden, wenn eines oder mehreres des Folgenden auftritt. Der neue Hash-Wert kann berechnet werden, indem bei dieser beispielhaften Ausführungsform alle oder ein Abschnitt der nachstehend genannten Informationen Hash-verschlüsselt werden:
    1. a) neuer mit SHA-2 berechneter Hash-Wert, wenn die Datei in einer beliebigen Weise verarbeitet wurde (z.B., wenn die Datei redigiert, kopiert, geändert oder auf sie zugegriffen oder eine andere Maßnahme ergriffen wurde)
    2. b) neuer Speicherort für die Datei
    3. c) neue Metadaten erkannt wurden, die der Datei zugehörig sind
    4. d) Übertragung des Zugriffs auf oder der Kontrolle über die Datei von einem Blockchain-Teilnehmer auf einen anderen Blockchain-Teilnehmer
  • 4D veranschaulicht eine Ausführung eines Blocks, der die Struktur der Blöcke in der Blockchain 490 gemäß einer Ausführungsform wiedergeben kann. Der Block, Blocki, enthält Kopfdaten 472i, eine Datei 474i und einen Wert 476i.
  • Die Kopfdaten 472i enthalten einen Hash-Wert eines vorhergehenden Blocks Blocki-1 und zusätzliche Verweisinformationen, bei denen es sich zum Beispiel um beliebige Arten von hierin erörterten Informationen handeln kann (z.B. Kopfdateninformationen, unter anderem Verweise, Eigenschaften, Parameter usw.). Alle Blöcke verweisen auf den Hash eines vorhergehenden Blocks, selbstverständlich mit Ausnahme des Ursprungsblocks. Bei dem Hash-Wert des vorhergehenden Blocks kann es sich einfach um einen Hash der Kopfdaten im vorhergehenden Block oder einen Hash aller oder eines Abschnitts der Informationen im vorhergehenden Block handeln, unter anderem um die Datei und die Metadaten.
  • Die Datei 474i enthält eine Mehrzahl von Daten wie z.B. nacheinander Daten 1, Daten 2, ..., Daten N. Die Daten sind mit Metadaten 1, Metadaten 2, ..., Metadaten N markiert, die den Inhalt und/oder den Daten zugehörige Eigenschaften beschreiben. Zum Beispiel können die Metadaten für die einzelnen Daten Informationen enthalten, um einen Zeitstempel für die Daten anzugeben, die Daten verarbeiten, Schlüsselwörter, die die Personen oder den in den Daten abgebildeten Inhalt und/oder andere Merkmale angeben, die hilfreich sein können, um die Gültigkeit und den Inhalt der Datei als Ganzes und insbesondere deren Verwendung als digitalen Beweis zu begründen, wie zum Beispiel in Verbindung mit einer nachstehend erläuterten Ausführungsform beschrieben. Außer den Metadaten können alle Daten mit dem Verweis VERW 1, VERW 2, ..., VERW N auf vorhergehende Daten markiert sein, um Manipulation, Lücken in der Datei und fortlaufende Verweise in der gesamten Datei zu verhindern.
  • Sobald die Metadaten den Daten zugewiesen sind (z.B. über einen Smart Contract), können die Metadaten nicht mehr verändert werden, ohne dass sich der Hash ändert, was zwecks Invalidierung leicht erkannt werden kann. Die Metadaten erstellen somit ein Datenprotokoll von Informationen, auf das Teilnehmer an der Blockchain zur Verwendung zugreifen können.
  • Bei dem Wert 476i handelt es sich um einen Hash-Wert oder einen anderen Wert, der auf der Grundlage beliebiger der vorstehend erörterten Arten von Informationen berechnet wurde. Zum Beispiel kann bei einem beliebigen gegebenen Block Blocki der Wert für diesen Block aktualisiert werden, um die Verarbeitung wiederzugeben, die für diesen Block durchgeführt wurde, z.B. neuer Hash-Wert, neuer Speicherort, neue Metadaten für die zugehörige Datei, Übertragung von Kontrolle oder Zugriff, Kennung oder eine andere hinzuzufügende Aktion oder Information. Zwar ist der Wert in jedem Block als von den Metadaten für die Daten der Datei und die Kopfdaten getrennt gezeigt, der Wert kann jedoch bei einer weiteren Ausführungsform teilweise oder ganz auf diesen Metadaten beruhen.
  • Sobald die Blockchain 470 gebildet wurde, kann die unveränderbare Beweismittelkette für die Datei zu einem beliebigen Zeitpunkt erhalten werden, indem die Blockchain auf den Transaktionsverlauf der Werte über alle Blöcke hinweg abgefragt wird. Diese Abfrage- oder Nachverfolgungsprozedur kann mit dem Entschlüsseln der Werte des neuesten enthaltenen Blocks (d.h. des letzten (N-ten) Bocks) beginnen und mit dem Entschlüsseln des Werts der anderen Blöcke fortgesetzt werden, bis der Ursprungsblock erreicht ist und die ursprüngliche Datei wiederhergestellt ist. Die Entschlüsselung kann ebenfalls das Entschlüsseln der Kopfdaten und Dateien und zugehörigen Metadaten umfassen.
  • Die Entschlüsselung wird auf der Grundlage der Art der Verschlüsselung durchgeführt, die in jedem Block stattfand. Dies kann die Verwendung privater Schlüssel, öffentlicher Schlüssel oder eines Paars aus öffentlichen Schlüsseln und privaten Schlüsseln umfassen. Zum Beispiel können bei Verwendung asymmetrischer Verschlüsselung Blockchain-Teilnehmer oder ein Prozessor in dem Netzwerk unter Verwendung eines vorgegebenen Algorithmus ein Paar aus öffentlichen Schlüsseln und privaten Schlüsseln erzeugen. Der öffentliche Schlüssel und der private Schlüssel sind über eine bestimmte mathematische Beziehung einander zugehörig. Der öffentliche Schlüssel kann öffentlich verteilt werden, um als Adresse zum Empfangen von Nachrichten von anderen Benutzern zu dienen, z.B. eine IP-Adresse oder eine Ausgangsadresse. Der private Schlüssel wird geheim gehalten und verwendet, um an andere Blockchain-Teilnehmer gesendete Nachrichten digital zu signieren. Die Signatur ist in der Nachricht enthalten, sodass der Empfänger unter Verwendung des öffentlichen Schlüssels des Absenders eine Überprüfung vornehmen kann. Auf diese Weise kann der Empfänger sicher sein, dass nur der Absender diese Nachricht gesendet haben kann.
  • Das Erzeugen eines Schlüsselpaars kann analog zum Erstellen eines Kontos in der Blockchain erfolgen, ohne sich jedoch tatsächlich irgendwo zu registrieren. Außerdem ist jede an der Blockchain ausgeführte Transaktion durch den Absender unter Verwendung seines privaten Schlüssels digital signiert. Diese Signatur stellt sicher, dass nur der Eigentümer des Kontos die Datei der Blockchain nachverfolgen und verarbeiten kann (sofern dies im Geltungsbereich einer durch einen Smart Contract festgelegten Berechtigung liegt).
  • Wie hierin ausführlicher erörtert, ist es vorstellbar, dass einige oder alle Arbeitsschritte einiger Ausführungsformen hierin beschriebener Verfahren in alternativen Reihenfolgen durchgeführt werden können oder überhaupt nicht durchgeführt werden können; des Weiteren können mehrere Arbeitsschritte gleichzeitig oder als interner Teil eines größeren Prozesses stattfinden.
  • Bei der vorliegenden Offenbarung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt in einem beliebigen möglichen Integrationsgrad technischer Einzelheiten handeln. Das Computerprogrammprodukt kann (ein) durch einen Computer lesbare(s) Speichermedium (oder -medien) enthalten, auf dem/denen durch einen Computer lesbare Programmanweisungen gespeichert ist/sind, um einen Prozessor zu veranlassen, Aspekte der vorliegenden Offenbarung auszuführen.
  • Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, auf der Anweisungen zur Verwendung durch eine Einheit zur Ausführung von Anweisungen aufbewahrt und gespeichert sein können. Bei dem durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel, ohne auf diese beschränkt zu sein, um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder eine beliebige geeignete Kombination des Vorstehenden handeln. Zu einer nicht erschöpfenden Liste konkreterer Beispiele des durch einen Computer lesbaren Speichermediums gehören die folgenden: eine transportable Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (random access memory, RAM), ein Nur-Lese-Speicher (read-only memory, ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (erasable programmable read-only memory, EPROM bzw. Flash-Speicher), ein statischer Direktzugriffsspeicher (static random access memory, SRAM), ein transportabler Kompaktspeicherplatte-Nur-Lese-Speicher (compact disc read-only memory, CD-ROM), eine DVD (digital versatile disc), ein Speicher-Stick, eine Diskette, eine mechanisch codierte Einheit wie zum Beispiel Lochkarten oder erhabene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und beliebige geeignete Kombinationen des Vorstehenden. Ein durch einen Computer lesbares Speichermedium im hierin verwendeten Sinne ist nicht so auszulegen, dass es sich dabei um flüchtige Signale an sich handelt, wie zum Beispiel um Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, um elektromagnetische Wellen, die sich durch einen Hohlleiter oder andere Übertragungsmedien ausbreiten (z.B. ein Lichtwellenleiterkabel durchlaufende Lichtimpulse) oder um elektrische Signale, die über ein Kabel übertragen werden.
  • Hierin beschriebene, durch einen Computer lesbare Programmanweisungen können über ein Netzwerk, zum Beispiel das Internet, ein lokales Netzwerk ein Weitverkehrsnetzwerk und/oder ein Drahtlosnetzwerk von einem durch einen Computer lesbaren Speichermedium auf betreffende Datenverarbeitungs-/Verarbeitungseinheiten oder auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Router, Firewalls, Switches, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder eine Netzwerkschnittstelle bei jeder Datenverarbeitungs-/Verarbeitungseinheit empfängt durch einen Computer lesbare Programmanweisungen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programmanweisungen zur Speicherung in einem durch einen Computer lesbaren Speichermedium innerhalb der jeweiligen Datenverarbeitungs-/Verarbeitungseinheit weiter.
  • Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Arbeitsschritten der vorliegenden Offenbarung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (ISA = Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben sind, unter anderem objektorientierte Programmiersprachen wie z.B. Smalltalk, C++ oder dergleichen sowie prozedurale Programmiersprachen wie z.B. die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die durch einen Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Softwarepaket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. Beim letztgenannten Szenario kann der entfernt angeordnete Computer mit dem Computer des Benutzers über eine beliebige Art von Netzwerk verbunden sein, unter anderem über ein lokales Netzwerk (Local Area Network, LAN) oder über ein Weitverkehrsnetzwerk (Wide Area Network, WAN), oder die Verbindung kann zu einem externen Computer hergestellt sein (zum Beispiel über das Internet unter Nutzung eines Internet-Dienstanbieters (Internet Service Provider)). Bei einigen Ausführungsformen können elektronische Schaltungen, zu denen zum Beispiel programmierbare Logikschaltungen, vor Ort programmierbare Schaltungen (Field-Programmable Gate Arrays, FPGA) oder programmierbare logische Arrays (PLA) gehören, die durch einen Computer lesbaren Programmanweisungen ausführen, indem Zustandsinformationen der durch einen Computer lesbaren Programmanweisungen genutzt werden, um die elektronische Schaltung zu personalisieren, sodass Aspekte der vorliegenden Offenbarung durchgeführt werden.
  • Hierin sind Aspekte der vorliegenden Offenbarung unter Bezugnahme auf Flussdiagramme und/oder Blockschemata von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Offenbarung beschrieben. Es wird klar sein, dass jeder Block der Flussdiagramme und/oder der Blockschemata und Kombinationen von Blöcken in den Flussdiagrammen und/oder Blockschemata durch einen Computerprogrammanweisungen realisiert werden kann bzw. können.
  • Diese Computerprogrammanweisungen können einem Prozessor eines Computers oder anderer programmierbarer Datenverarbeitungsvorrichtungen bereitgestellt werden, um eine Maschine zu erzeugen, sodass die Anweisungen, die über den Prozessor des Computers oder anderer programmierbarer Datenverarbeitungsvorrichtungen ausgeführt werden, Mittel schaffen, um die in einem Block bzw. in den Blöcken des Flussdiagramms bzw. der Flussdiagramme und/oder des Blockschemas bzw. der Blockschemata angegebenen Funktionen/Aktionen zu realisieren. Diese durch einen Computer lesbaren Programmanweisungen können ebenfalls in einem durch einen Computer lesbaren Medium gespeichert sein, das einen Computer, andere programmierbare Datenverarbeitungsvorrichtungen oder andere Einheiten anweisen kann, in einer bestimmten Weise zu funktionieren, sodass das durch einen Computer lesbare Medium mit darauf gespeicherten Anweisungen ein Erzeugnis aufweist, das Anweisungen enthält, die die in einem Block bzw. in den Blöcken der Flussdiagramme und/oder der Blockschemata angegebene Funktion/Aktion realisieren.
  • Die durch einen Computer lesbaren Programmanweisungen können auch in einen Computer, in andere programmierbare Datenverarbeitungsvorrichtungen oder in andere Einheiten geladen werden, um zu bewirken, dass auf dem Computer, auf anderen programmierbaren Vorrichtungen oder anderen Einheiten eine Reihe von Arbeitsschritten ausgeführt wird, um einen mittels Computer realisierten Prozess zu schaffen, sodass die Anweisungen, die auf dem Computer, auf anderen programmierbaren Vorrichtungen oder Einheiten ausgeführt werden, die in einem Block bzw. in den Blöcken der Flussdiagramme und/oder der Blockschemata angegebenen Funktionen/Aktionen realisieren.
  • In 5 ist ein Übersichtsblockschema eines beispielhaften Computersystems 501 veranschaulicht, das beim Realisieren eines oder mehrerer der hierin beschriebenen Verfahren, Werkzeuge und Module und beliebiger verwandter Funktionen (z.B. unter Verwendung einer oder mehrerer Prozessorschaltungen oder Computerprozessoren des Computers) gemäß Ausführungsformen der vorliegenden Offenbarung verwendet werden kann. Bei einigen Ausführungsformen können die Hauptkomponenten des Computersystems 501 eine oder mehrere CPUs 502, ein Speicher-Teilsystem 504, eine Endgeräteschnittstelle 512, eine Speicherschnittstelle 516, eine E/A-Einheitenschnittstelle (Eingabe/Ausgabe-Einheitenschnittstelle) 514 und eine Netzwerkschnittstelle 518 aufweisen, die alle zu Datenaustauschzwecken direkt oder indirekt zum Datenaustausch zwischen Komponenten über einen Speicherbus 503, einen E/A-Bus 508 und eine E/A-Busschnittstelleneinheit 510 verbunden sein können.
  • Das Computersystem 501 kann eine oder mehrere programmierbare Universal-Zentraleinheiten (CPUs) 502A, 502B, 502C und 502D enthalten, die hierin allgemein als CPU 502 bezeichnet werden. Bei einigen Ausführungsformen kann das Computersystem 501 mehrere Prozessoren enthalten, die für ein relativ großes System typisch sind; bei anderen Ausführungsformen kann es sich bei dem Computersystem 501 jedoch um nur einen Prozessor mit nur einer CPU handeln. Jede CPU 502 kann Anweisungen ausführen, die im Speicher-Teilsystem 504 gespeichert sind, und kann eine oder mehrere Ebenen von Onboard-Cache enthalten.
  • Der Systemspeicher 504 kann durch ein Computersystem lesbare Medien in Form von flüchtigem Speicher wie z.B. Direktzugriffsspeicher (Random Access Memory, RAM) 522 oder Cache-Speicher 524 enthalten. Das Computersystem 501 kann ferner andere wechselbare/nicht-wechselbare, flüchtige/nicht-flüchtige Computersystemspeichermedien enthalten. Lediglich als Beispiel kann ein Speichersystem 526 zum Lesen von einem und Schreiben auf ein nicht-wechselbares, nicht-flüchtiges magnetisches Medium wie z.B. eine „Festplatte“ bereitgestellt sein. Obwohl nicht gezeigt, können ein Magnetplattenlaufwerk zum Lesen von einer und Schreiben auf eine wechselbare nicht-flüchtige Magnetplatte (z.B. eine „Diskette“) oder optisches Plattenlaufwerk zum Lesen von einer oder Schreiben auf eine wechselbare nicht-flüchtige optische Platte wie z.B. eine CD-ROM, eine DVD-ROM oder ein anderes optisches Medium bereitgestellt sein. Darüber hinaus kann der Speicher 504 Flash-Speicher enthalten, z.B. einen Flash-Speicherstick oder ein Flash-Laufwerk. Speichereinheiten können durch eine oder mehrere Datenmedienschnittstellen mit dem Speicherbus 503 verbunden sein. Der Speicher 504 kann mindestens ein Programmprodukt enthalten, das einen Satz (z.B. mindestens einen) von Programmmodulen umfasst, die so konfiguriert sind, dass die Funktionen verschiedener Ausführungsformen ausgeführt werden.
  • Ein oder mehrere Programme/Dienstprogramme 528, die jeweils mindestens einen Satz von Programmmodulen 530 umfassen, können im Speicher 504 gespeichert sein. Die Programme/Dienstprogramme 528 können einen Hypervisor (der auch als „Virtual Machine Monitor“ bezeichnet wird), ein oder mehrere Betriebssysteme, ein oder mehrere Anwendungsprogramme, andere Programmmodule und Programmdaten enthalten. Jedes der Betriebssysteme, ein oder mehrere Anwendungsprogramme, andere Programmmodule und Programmdaten oder eine bestimmten Kombination davon kann bzw. können eine Realisierungsform einer Vernetzungsumgebung enthalten. Programme 528 und/oder Programmmodule 530 führen allgemein die Funktionen oder Methodiken verschiedener Ausführungsformen durch.
  • Zwar ist der Speicherbus 503 in 5 als einzelne Busstruktur gezeigt, die einen direkten Datenübertragungspfad zwischen den CPUs 502, dem Speicher-Teilsystem 504 und der E/A-Busschnittstelle 510 bereitstellt, der Speicherbus 503 kann jedoch bei einigen Ausführungsformen mehrere unterschiedliche Busse oder Datenübertragungspfade enthalten, die in einer beliebigen von verschiedenen Formen wie z.B. als Punkt-zu-Punkt-Verknüpfungen in hierarchischen, sternförmigen oder netzförmigen Konfigurationen, als mehrere hierarchische Busse, parallele und redundante Pfade oder in einer beliebigen anderen geeigneten Art von Konfiguration angeordnet sein können. Zwar sind die E/A-Busschnittstelle 510 und der E/A-Bus 508 als einzelne jeweilige Einheiten gezeigt, das Computersystem 501 kann jedoch bei einigen Ausführungsformen des Weiteren mehrere E/A-Busschnittstelleneinheiten 510, mehrere E/A-Busse 508 oder beides enthalten. Zwar sind mehrere E/A-Schnittstelleneinheiten gezeigt, die den E/A-Bus 508 von verschiedenen Datenübertragungspfaden trennen, die zu den verschiedenen E/A-Einheiten führen, bei anderen Ausführungsformen können jedoch ferner einige oder alle der E/A-Einheiten direkt mit einem oder mehreren System-E/A-Bussen verbunden sein.
  • Bei einigen Ausführungsformen kann es sich bei dem Computersystem 501 um ein Großrechner-Mehrbenutzercomputersystem, ein Einzelbenutzersystem oder einen Server-Computer oder eine ähnliche Einheit handeln, das/der eine Benutzeroberfläche mit geringem Funktionsumfang oder keine Benutzeroberfläche enthält, aber Anforderungen von anderen Computersystemen (Clients) empfängt. Ferner kann das Computersystem 501 bei einigen Ausführungsformen als Desktop-Computer, transportabler Computer, Laptop- oder Notebook-Computer, Tablet-Computer, Pocket-Computer, Telefon, Smartphone, Netzwerk-Switches oder -Router oder als beliebige andere geeignete Art von elektronischer Einheit realisiert sein.
  • Es wird angemerkt, dass 5 die repräsentativen Hauptkomponenten eines beispielhaften Computersystems 501 darstellen soll. Bei einigen Ausführungsformen können einzelne Komponenten jedoch eine höhere oder niedrigere Komplexität haben als in 5 wiedergegeben, andere Komponenten als die in 5 gezeigten oder zusätzliche Komponenten können vorhanden sein und die Konfiguration derartiger Komponenten kann variieren.
  • Wie hierin ausführlicher erörtert, ist es vorstellbar, dass einige oder alle Arbeitsschritte einiger Ausführungsformen hierin beschriebener Verfahren in alternativen Reihenfolgen durchgeführt werden können oder überhaupt nicht durchgeführt werden können; des Weiteren können mehrere Arbeitsschritte gleichzeitig oder als interner Teil eines größeren Prozesses stattfinden.
  • Bei der vorliegenden Offenbarung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt in einem beliebigen möglichen Integrationsgrad technischer Einzelheiten handeln. Das Computerprogrammprodukt kann (ein) durch einen Computer lesbare(s) Speichermedium (oder-medien) enthalten, auf dem/denen durch einen Computer lesbare Programmanweisungen gespeichert ist/sind, um einen Prozessor zu veranlassen, Aspekte der vorliegenden Offenbarung auszuführen.
  • Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, auf der Anweisungen zur Verwendung durch eine Einheit zur Ausführung von Anweisungen aufbewahrt und gespeichert sein können. Bei dem durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel, ohne auf diese beschränkt zu sein, um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder eine beliebige geeignete Kombination des Vorstehenden handeln. Zu einer nicht erschöpfenden Liste konkreterer Beispiele des durch einen Computer lesbaren Speichermediums gehören die folgenden: eine transportable Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (random access memory, RAM), ein Nur-Lese-Speicher (read-only memory, ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (erasable programmable read-only memory, EPROM bzw. Flash-Speicher), ein statischer Direktzugriffsspeicher (static random access memory, SRAM), ein transportabler Kompaktspeicherplatte-Nur-Lese-Speicher (compact disc read-only memory, CD-ROM), eine DVD (digital versatile disc), ein Speicher-Stick, eine Diskette, eine mechanisch codierte Einheit wie zum Beispiel Lochkarten oder erhabene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und beliebige geeignete Kombinationen des Vorstehenden. Ein durch einen Computer lesbares Speichermedium im hierin verwendeten Sinne ist nicht so auszulegen, dass es sich dabei um flüchtige Signale an sich handelt, beispielsweise um Funkwellen oder sich frei ausbreitende elektromagnetische Wellen, um elektromagnetische Wellen, die sich durch einen Hohlleiter oder andere Übertragungsmedien ausbreiten (z.B. ein Lichtwellenleiterkabel durchlaufende Lichtimpulse) oder um elektrische Signale, die über ein Kabel übertragen werden.
  • Hierin beschriebene, durch einen Computer lesbare Programmanweisungen können über ein Netzwerk, zum Beispiel das Internet, ein lokales Netzwerk ein Weitverkehrsnetzwerk und/oder ein Drahtlosnetzwerk von einem durch einen Computer lesbaren Speichermedium auf betreffende Datenverarbeitungs-/Verarbeitungseinheiten oder auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Router, Firewalls, Switches, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder eine Netzwerkschnittstelle bei jeder Datenverarbeitungs-/Verarbeitungseinheit empfängt durch einen Computer lesbare Programmanweisungen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programmanweisungen zur Speicherung in einem durch einen Computer lesbaren Speichermedium innerhalb der jeweiligen Datenverarbeitungs-/Verarbeitungseinheit weiter.
  • Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Arbeitsschritten der vorliegenden Offenbarung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (ISA = Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben sind, unter anderem objektorientierte Programmiersprachen wie z.B. Smalltalk, C++ oder dergleichen sowie prozedurale Programmiersprachen wie z.B. die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die durch einen Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Softwarepaket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. Beim letztgenannten Szenario kann der entfernt angeordnete Computer mit dem Computer des Benutzers über eine beliebige Art von Netzwerk verbunden sein, unter anderem über ein lokales Netzwerk (Local Area Network, LAN) oder über ein Weitverkehrsnetzwerk (Wide Area Network, WAN), oder die Verbindung kann zu einem externen Computer hergestellt sein (zum Beispiel über das Internet unter Nutzung eines Internet-Dienstanbieters (Internet Service Provider)). Bei einigen Ausführungsformen können elektronische Schaltungen, zu denen zum Beispiel programmierbare Logikschaltungen, vor Ort programmierbare Schaltungen (Field-Programmable Gate Arrays, FPGA) oder programmierbare logische Arrays (PLA) gehören, die durch einen Computer lesbaren Programmanweisungen ausführen, indem Zustandsinformationen der durch einen Computer lesbaren Programmanweisungen genutzt werden, um die elektronische Schaltung zu personalisieren, sodass Aspekte der vorliegenden Offenbarung durchgeführt werden.
  • Hierin sind Aspekte der vorliegenden Offenbarung unter Bezugnahme auf Flussdiagramme und/oder Blockschemata von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Offenbarung beschrieben. Es wird klar sein, dass jeder Block der Flussdiagramme und/oder der Blockschemata und Kombinationen von Blöcken in den Flussdiagrammen und/oder Blockschemata durch einen Computerprogrammanweisungen realisiert werden kann bzw. können.
  • Diese Computerprogrammanweisungen können einem Prozessor eines Computers oder anderer programmierbarer Datenverarbeitungsvorrichtungen bereitgestellt werden, um eine Maschine zu erzeugen, sodass die Anweisungen, die über den Prozessor des Computers oder anderer programmierbarer Datenverarbeitungsvorrichtungen ausgeführt werden, Mittel schaffen, um die in einem Block bzw. in den Blöcken des Flussdiagramms bzw. der Flussdiagramme und/oder des Blockschemas bzw. der Blockschemata angegebenen Funktionen/Aktionen zu realisieren. Diese durch einen Computer lesbaren Programmanweisungen können ebenfalls in einem durch einen Computer lesbaren Medium gespeichert sein, das einen Computer, andere programmierbare Datenverarbeitungsvorrichtungen oder andere Einheiten anweisen kann, in einer bestimmten Weise zu funktionieren, sodass das durch einen Computer lesbare Medium mit darauf gespeicherten Anweisungen ein Erzeugnis aufweist, das Anweisungen enthält, die die in einem Block bzw. in den Blöcken der Flussdiagramme und/oder der Blockschemata angegebene Funktion/Aktion realisieren.
  • Die durch einen Computer lesbaren Programmanweisungen können auch in einen Computer, in andere programmierbare Datenverarbeitungsvorrichtungen oder in andere Einheiten geladen werden, um zu bewirken, dass auf dem Computer, auf anderen programmierbaren Vorrichtungen oder anderen Einheiten eine Reihe von Arbeitsschritten ausgeführt wird, um einen mittels Computer realisierten Prozess zu schaffen, sodass die Anweisungen, die auf dem Computer, auf anderen programmierbaren Vorrichtungen oder Einheiten ausgeführt werden, die in einem Block bzw. in den Blöcken der Flussdiagramme und/oder der Blockschemata angegebenen Funktionen/Aktionen realisieren.
  • Die Flussdiagramme und Blockschemata in den Figuren veranschaulichen die Architektur, Funktionalität und Wirkungsweise möglicher Realisierungsformen von Systemen, Verfahren, und Computerprogrammprodukten gemäß den verschiedenen Ausführungsformen der vorliegenden Offenbarung. In diesem Zusammenhang kann jeder Block in den Flussdiagrammen bzw. in den Blockschemata ein Modul, ein Segment oder einen Abschnitt von Anweisungen darstellen, das bzw. der eine oder mehrere ausführbare Anweisungen zum Realisieren der angegebenen Logikfunktion bzw. Logikfunktionen aufweist. Bei einigen alternativen Ausführungen können die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt stattfinden. Zum Beispiel können zwei hintereinander gezeigte Blöcke tatsächlich als ein Schritt ausgeführt, gleichzeitig, Wesentlichen gleichzeitig, in einer teilweise oder vollständig zeitlich überlappenden Weise ausgeführt werden, oder die Blöcke können je nach der mit den Blöcken verbundenen Funktionalität manchmal in umgekehrter Reihenfolge ausgeführt werden. Darüber hinaus ist anzumerken, dass jeder Block der dargestellten Blockschemata und/oder Flussdiagramme sowie Kombinationen von Blöcken in den dargestellten Blockschemata und/oder Flussdiagrammen mit Hilfe zweckgebundener hardwaregestützter Systeme zum Ausführen der angegebenen Funktionen bzw. Aktionen oder mit Hilfe von Kombinationen aus zweckgebundener Hardware und zweckgebundenen Computeranweisungen realisiert werden kann bzw. können.
  • Die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Offenbarung sollen der Veranschaulichung dienen, sind jedoch nicht als vollständig oder auf die offenbarten Ausführungsformen beschränkt gedacht. Für den Fachmann sind viele Modifikationen und Variationen denkbar, ohne dass diese eine Abweichung vom Schutzbereich und Grundgedanken der beschriebenen Ausführungsformen darstellen würden. Die hierin verwendete Terminologie wurde gewählt, um die Grundgedanken der Ausführungsformen, die praktische Anwendung bzw. die technische Verbesserung gegenüber den auf dem Markt vorgefundenen Technologien auf bestmögliche Weise zu erläutern bzw. anderen mit entsprechenden Fachkenntnissen das Verständnis der hierin offenbarten Ausführungsformen zu ermöglichen.
  • Zwar wurde die vorliegende Offenbarung im Hinblick auf bestimmte Ausführungsformen beschrieben, es wird jedoch erwartet, dass Abwandlungen und Modifikationen daran für den Fachmann offensichtlich werden. Es ist daher beabsichtigt, dass die folgenden Ansprüche so zu interpretieren sind, dass alle derartigen Abwandlungen und Modifikationen als unter den tatsächlichen Grundgedanken und Schutzumfang der Offenbarung fallend zu betrachten sind.
  • Die Flussdiagramme und Blockschemata in den Figuren veranschaulichen die Architektur, Funktionalität und Wirkungsweise möglicher Realisierungsformen von Systemen, Verfahren, und Computerprogrammprodukten gemäß den verschiedenen Ausführungsformen der vorliegenden Offenbarung. In diesem Zusammenhang kann jeder Block in den Flussdiagrammen bzw. in den Blockschemata ein Modul, ein Segment oder einen Abschnitt von Anweisungen darstellen, das bzw. der eine oder mehrere ausführbare Anweisungen zum Realisieren der angegebenen Logikfunktion bzw. Logikfunktionen aufweist. Bei einigen alternativen Ausführungen können die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt stattfinden. Zum Beispiel können zwei hintereinander gezeigte Blöcke tatsächlich als ein Schritt ausgeführt, gleichzeitig, Wesentlichen gleichzeitig, in einer teilweise oder vollständig zeitlich überlappenden Weise ausgeführt werden, oder die Blöcke können je nach der mit den Blöcken verbundenen Funktionalität manchmal in umgekehrter Reihenfolge ausgeführt werden. Darüber hinaus ist anzumerken, dass jeder Block der dargestellten Blockschemata und/oder Flussdiagramme sowie Kombinationen von Blöcken in den dargestellten Blockschemata und/oder Flussdiagrammen mit Hilfe zweckgebundener hardwaregestützter Systeme zum Ausführen der angegebenen Funktionen bzw. Aktionen oder mit Hilfe von Kombinationen aus zweckgebundener Hardware und zweckgebundenen Computeranweisungen realisiert werden kann bzw. können.
  • Die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Offenbarung sollen der Veranschaulichung dienen, sind jedoch nicht als vollständig oder auf die offenbarten Ausführungsformen beschränkt gedacht. Für den Fachmann sind viele Modifikationen und Variationen denkbar, ohne dass diese eine Abweichung vom Schutzbereich und Grundgedanken der beschriebenen Ausführungsformen darstellen würden. Die hierin verwendete Terminologie wurde gewählt, um die Grundgedanken der Ausführungsformen, die praktische Anwendung bzw. die technische Verbesserung gegenüber den auf dem Markt vorgefundenen Technologien auf bestmögliche Weise zu erläutern bzw. anderen mit entsprechenden Fachkenntnissen das Verständnis der hierin offenbarten Ausführungsformen zu ermöglichen.
  • Zwar wurde die vorliegende Offenbarung im Hinblick auf bestimmte Ausführungsformen beschrieben, es wird jedoch erwartet, dass Abwandlungen und Modifikationen daran für den Fachmann offensichtlich werden. Es ist daher beabsichtigt, dass die folgenden Ansprüche so zu interpretieren sind, dass alle derartigen Abwandlungen und Modifikationen als unter den tatsächlichen Grundgedanken und Schutzumfang der Offenbarung fallend zu betrachten sind.
  • Datenkonformität ist eine wichtige Aufgabe in vielen Industriezweigen, die eine Überprüfung und Durchsetzung behördlicher, vertraglicher, geschäftlicher und anderer Arten von Regeln ermöglicht. Zum Beispiel kann die Bewegung von digitalen Assets bzw. Krypto-Assets durch Smart Contracts, in Smart Contracts codierte Geschäftsregeln und/oder Chaincode zwischen zwei Parteien (z.B. Wirtschaftseinheiten) geregelt sein. Blockchain-Prozesse (wie z.B. diejenigen, die Smart Contracts verarbeitet) können verwendet werden, um sicherzustellen, dass alle Bedingungen erfüllt sind, wenn das Asset übertragen wird. Blockchain-Prozesse können außerdem Regelungsschichten bereitstellen, um zu gewährleisten, dass alle Konformitätsanforderungen eingehalten und Verantwortlichkeiten des Systems erfüllt werden. Bei Datenkonformität kann es sich jedoch um eine schwierige Aufgabe handeln, da Entwickler, die für das Erstellen der Systeme verantwortlich sind, möglicherweise nicht über das Grundlagenwissen verfügen, um alle zur Konformität gehörigen Regeln zu definieren. Zwar handelt es sich bei dem Netzwerk selbst um ein digitales Netzwerk und Transaktionssystem, die nicht-digitalen Elemente (wie z.B. ein Unternehmensstandort, eine Registrierung der Einheit und rechtsgültige Bezeichnungen der Einheit) spielen jedoch eine maßgebliche Rolle beim Festlegen der Regeln und der Rahmenbedingungen, die möglicherweise eingehalten werden müssen. Für jede Organisation ist es eine gewaltige Aufgabe sicherzustellen, dass sie die Anforderungen an die gebührende Sorgfalt bei jedem Teilnehmer und jedem Finanzregulierer (z.B. Verwaltungseinheit) einer Assets-Übertragung einhalten. Zum Beispiel kann beim Handeln mit Molkereitermingeschäften zwischen dem Unternehmen A und dem Unternehmen B die Chicago Mercantile Exchange (CME) die ausführende Körperschaft der Übertragung sein, und bei der Commodity Futures Trading Commission (CFTC, die durch den Commodity Futures Trading Commission Act von 1974 geschaffen wurde) kann es sich um die Regulierungsbehörde handeln. In diesem Fall kann es sich bei den Parteien um das Unternehmen A und das Unternehmen B handeln, und CME und CFTC können beide die Finanzregulierer sein. Bei einem weiteren Beispiel könnte es sich hinsichtlich eines Smart Contract zwischen Cloud-Datenservicezentren und Dienstgütevereinbarungen (Service Level Agreements, SLA) hinsichtlich betriebswirtschaftlicher Kennzahlen bei einem Regulierer um einen technischen Serviceexperten handeln, und bei einem Prüfer kann es sich um einen Serviceadministrator handeln. Bei tatsächlichen Anwendungsfällen können andere Einzelheiten vorkommen, die durch die Teilnehmer, Assets-Verträge, Regulierungskörperschaften oder andere Quellen gefordert werden, die wie hierin erörtert durch die Teilnehmer ermittelt und festgelegt werden können.
  • Die Anforderungen an die gebührende Sorgfalt können von bestehenden rechtlichen Rahmenbedingungen und davon abhängen, wie juristische, politische und wirtschaftliche Institutionen diese Technologie behandeln. In einigen Fällen handelt es sich bei einer Regulierungskörperschaft um eine Regierungs- oder Aufsichtseinheit, die das Recht hat, bestimmte Aktionen zu regulieren, zu besteuern und/oder zu verwalten.
  • In einigen Fällen ermöglichen Blockchain-Prozesse eine Durchführung glaubhafter Transaktionen, die nachverfolgbar und unumkehrbar sind. Wenn zum Beispiel eine Übertragung von Kryptowährung aus den USA nach Deutschland über eine Bank der Schweiz die Zahlung einer Gebühr an die Schweizer Regierung erfordert, kann ein Smart Contract abgeschlossen werden, dem zufolge die endgültige Übertragung nicht ausgeführt werden darf, bis die Gebühr bezahlt ist. Bei einigen Ausführungsformen kann die Ausführung vieler Arten von Aktionen oder Transaktionen in der Praxis die Erstellung und die Ausführung eines oder mehrerer Blockchain-Prozesse umfassen. Weitere Informationen über Blockchain-Prozesse (z.B. Smart Contracts) sind in 2A zu finden.
  • In einigen Fällen handelt es sich bei der Konformitätsüberprüfung um ein Analyseverfahren zur Untersuchung und Abfrage von Daten, um zu ermitteln, ob die Daten mit einem vorgegebenen Satz von Bedingungen konform sind, die hierin als „Regeln“ bezeichnet werden. In einigen Fällen konzentriert sich die Konformitätsüberprüfung auf die Analyse von Transaktionen und nicht auf einen Status des Gegenstands. Zum Beispiel kann sich die Konformitätsüberprüfung bei einer Geldüberweisung darauf konzentrieren, wie das Geld überwiesen wurde, und nicht darauf, wo es sich nach der Überweisung befindet (z.B. konzentriert sie sich auf Transaktionen, die Geld auf ein Konto und von diesem überweisen und nicht auf den Kontostand selbst).
  • Im Blockchain-Kontext konzentrieren sich bestehende Verfahren zur Konformitätsüberprüfung auf eine Analyse von Daten nach der Aufzeichnung. Zum Beispiel stützen sich bestehende Verfahren auf eine nachträgliche Überprüfung von Transaktionen, die im Ledger aufgezeichnet wurden, mit dem Ziel, nicht-konforme Datensätze zu erkennen. Dies erfolgt als reagierende Aktion zum Erkennen von Fehlern (wenn z.B. ein Beweis eines Vergehens wie beispielsweise Betrug benötigt wird).
  • Die vorliegende Offenbarung stellt einen Mechanismus der Konformitätsüberprüfung und -durchsetzung vor dem Aufzeichnen von Arbeitsschritten (z.B. Transaktionen, Transaktionsvorschläge, Smart Contracts und/oder Prozesse, die in oder mit einem Blockchain-Netzwerk durchgeführt werden) im Ledger bereit. Bei einigen Ausführungsformen kann das System außerdem ein Verfahren zum Aufzeichnen der Schritte im Rahmen der gebührenden Sorgfalt aufzeichnen, die ergriffen wurden, um die Anforderungen der Regulierungsbehörden zu erfüllen, die an den Transaktionen in einem unveränderbaren Blockchain-Ledger beteiligt sind. Im Gegensatz zu bestehenden Konformitätsverfahren ermöglicht die Konformitätsüberprüfung und -durchsetzung vor dem Aufzeichnen von Transaktionen im Ledger anders als die nachträgliche Konformitätsüberprüfung eine vorausschauende Durchsetzung der Datenkonformität und eine Beseitigung von nicht-konformen Daten. Durch Verwenden von Konformitätsmodulen mit Sätzen von Regeln, die in einem gesamten Ledger für alle Transaktionen unabhängig davon gelten, wie viele oder welche Smart Contracts in einem Ledger bereitgestellt sind, kann sich der Mechanismus außerhalb der Smart Contracts befinden und daher unabhängig von den Verträgen aktualisiert werden, während nach wie vor Konformitätsbeweise im Ledger aufgezeichnet werden.
  • Bei einigen Ausführungsformen kann sich der Konformitätsmechanismus von der Funktionalität der Smart Contracts (die ebenfalls Daten als Teil eines Smart Contract validieren kann) in der Weise unterscheiden, dass der Konformitätsmechanismus einen Satz von Regulierungsmodulen und dynamisch konfigurierbaren Regeln verwendet, die durch interne und/oder externe Behörden (z.B. Finanzbehörden) definiert worden, um Konformitätsregeln und -vorschriften einzuhalten.
  • Bei einigen Ausführungsformen kann sich ein Prüfmechanismus von der Funktionalität des Smart Contract in der Weise unterscheiden, dass der Prüfmechanismus (z.B. Buchhaltungsmechanismus) einen Satz von Prüfmodulen und dynamisch konfigurierbaren Regeln verwendet, die durch festgelegte Prüfer definiert wurden. Bei einigen Ausführungsformen kann es sich bei den festgelegen Prüfern um einen oder mehrere Peer-Knoten, eine Organisation und/oder eine externe Firma handeln. Zum Beispiel kann es sich bei einem Prüfer um einen Knoten (z.B. Regulierer 326) in einer Organisation handeln, die durch eine Prüfabteilung kontrolliert wird. Bei einigen Ausführungsformen können Prüfer generell auf das Abfragen des Netzwerks beschränkt sein, aber möglicherweise das Recht haben, Prüfregeln zu modifizieren. Bei einigen Ausführungsformen können Prüfer Zugriff auf die Regulierermodule haben und Finanzbehörden können Zugriff auf die Prüfmodule haben. Zum Beispiel müssen Regulierermodule und Prüfmodule möglicherweise in Verbindung miteinander arbeiten, benötigen möglicherweise ähnliche Informationen und/oder müssen möglicherweise ähnliche Prozesse verwenden. Somit können während der Ausführung die Prüfmodule auf Regulierermodule zugreifen, und die Regulierermodule können auf die Prüfmodule zugreifen (wenn sie z.B. durch einen Smart-Contract-Prozess verwendet werden).
  • Bei einigen Ausführungsformen werden ein Verfahren und ein System zum Speichern von Konformitätsdaten und/oder Prüfdaten in einem Blockchain-Netzwerk bereitgestellt. Bei einigen Ausführungsformen werden ein Verfahren und ein System bereitgestellt, um zu überprüfen, dass im Ledger gespeicherte Daten mit einem Satz von Konformitätsregeln konform sind, die durch externe und/oder interne Behörden definiert wurden. Bei einigen Ausführungsformen kann es sich bei dem Prüfen um die finanzielle und betriebswirtschaftliche Struktur eines Geschäfts oder einer Transaktion handeln, und es kann Bankkontendatensätze, unter anderem Bankauszüge, Tickets über doppelte Bankeinlagen, Lastschriften/Gutschriften und Kontenabgleiche, Datensätze für Investments und alle anderen Vermögenswerte, unter anderem Inventarlisten von Anlagevermögen, Zahlungseingangsdatensätze, unter anderem doppelte Zahlungseingänge, Zahlungseingangsjournale und einzelne Mitgliedschaftsdatensätze (Mitglieder-Kontokarten), Auszahlungsdatensätze, unter anderem annullierte Schecks, Scheck-Avise, Auszahlungsjournale, Lohn-/Gehaltlistenkonten, Abrechnungsbelege, Auslagenquittungen, Rechnungen, Kreditkartenauszüge und andere unterstützende Dokumente, gegebenenfalls durch offizielle Prüfer oder Wirtschaftsprüfer erarbeitete Prüfberichte für den Prüfzeitraum, die durch den Wirtschaftsberaterverband aufbewahrt werden, Protokolle von Vorstands- oder Mitgliederkonferenzen, eine Kopie der aktuellen Satzung und Geschäftsordnung und beliebige finanzpolitische Dokumente und andere betriebswirtschaftliche Daten umfassen.
  • Bei einigen Ausführungsformen kann das System (z.B. das Computersystem 501) Konformitätsüberprüfung und -durchsetzung für behördliche, vertragliche, geschäftliche und andere Arten von Regeln und Gesetzen bereitstellen. Bei einigen Ausführungsformen kann auf einem oder mehreren Netzwerk-Peers (z.B. den Peers 281 bis 283) eine Konformitätsüberprüfungs- und/oder Prüfungs-Überprüfungskomponente betrieben werden, die, nachdem eine Transaktion erzeugt und bevor sie genehmigt/bewilligt wurde, die Transaktion untersucht und Module (z.B. die Programmmodule 530) ausführt, um Regeln zu überprüfen.
  • Bei einigen Ausführungsformen wird die Transaktion genehmigt, wenn das System feststellt, dass alle der Regeln erfüllt wurden. Bei einigen Ausführungsformen kann die Transaktion abgelehnt oder als „nicht-konform“ markiert werden, wenn das System feststellt, dass alle der Regeln nicht erfüllt wurden, und es kann eine weitere Benachrichtigung (z.B. eine Ereignis usw.) an einen Client gesendet werden.
  • Bei einigen Ausführungsformen verwendet das Verfahren einen Satz von hinzufügbaren Modulen (z.B. die Programmmodule 530), um die Konformitätsrichtlinie und die Prüfrichtlinie für eine bestimmte Transaktion vorzuschreiben. Bei einigen Ausführungsformen können die Module dynamisch hinzugefügt oder entfernt und konfiguriert werden. Bei einigen Ausführungsformen können die Module mit der Open Services Gateway Initiative (OSGI-Stil) organisiert sein.
  • Bei einigen Ausführungsformen führt jedes Modul einen Satz von Regeln aus, wobei die Regeln mit dem Netzwerk, den Vorschriften, Geschäftsverträgen usw. entstehen und aktualisiert werden können. Zum Beispiel können Übertragungen von Kryptowährungs-Assets innerhalb der Vereinigten Staaten bestimmte Regeln und Vorschriften haben, die durch die U.S. Securities and Exchange Commission (SEC) festgelegt wurden. Auf der Bundesebene hat die SEC allgemein das Regulierungsrecht hinsichtlich der Ausgabe oder des Weiterverkaufs von Wertsymbolen oder anderer digitaler Assets, die ein Wertpapier darstellen. Somit kann die SEC ein Konformitätsmodul mit Regeln zum Handeln von Kryptowährung erstellen.
  • Bei einigen Ausführungsformen kann ein Modul oder eine Regel auf eine bestimmte Asset-Art (oder mehrere Asset-Arten), eine Ware, eine Dienstleistung oder einen anderen Gegenstand von Blockchain-Transaktionen angewendet werden. Bei einigen Ausführungsformen können mehrere zugelassene Behörden die Konfigurationen und Regeln von Konformitätsmodulen ergänzen und modifizieren. Aus den vorstehend genannten Beispielen ergibt sich, dass ein Handel von Molkereitermingeschäften für Kryptowährung Module von der SEC, der CME und der CFTC umfassen kann. Ein einzelner Arbeitsschritt (z.B.
  • Transaktion) kann mehrere Regulierermodule und/oder mehrere Prüfmodule erfordern.
  • Bei einigen Ausführungsformen erzielen die Netzwerkmitglieder (z.B. Peers oder Organisationen) Einvernehmen über den Satz von Behörden, die die Richtlinie (oder Teile der Richtlinie) definieren, und lassen nur Regeln von zugelassenen Behörden zum Akzeptieren zu (z.B. in Form einer Zugriffssteuerung). Zum Beispiel können Mitglieder Einvernehmen darüber erzielen, welche Behörden welche Arten von Regeln definieren, und welche Regeln auf welche Arten von Transaktionen anwendbar sind. Das Blockchain-Netzwerk kann festlegen, welche Regulierer (z.B. die SEC) einen Satz von Anforderungen (z.B. Konformitätsmodul) für finanzielle Transaktionen (z.B. 10k-Schwellenwerte zur steuerlichen Anerkennung usw.) und welcher Prüfer den Satz von Regeln (z.B. Prüfmodul) zur Einhaltung von Steuervorschriften definiert. Bei einigen Ausführungsformen können die externen Behörden Module bereitstellen, die durch das Blockchain-Netzwerk akzeptiert werden können. Bei einigen Ausführungsformen kann das Netzwerk einen Satz von Regeln empfangen und die Regeln zu Modulen formen. Zum Beispiel kann das Netzwerk eine Liste von Regeln von einer Behörde empfangen und die Regeln über einen Prozess ausführen, um die Regeln in ein Modul umzuwandeln. Bei einigen Ausführungsformen kann das Netzwerk ein empfangenes Modul modifizieren, sodass es im Blockchain-Netzwerk funktioniert. Zum Beispiel muss das empfangene Modul möglicherweise aus einer Programmiersprache in eine andere konvertiert werden, um mit allen Smart Contracts zu arbeiten. Bei einigen Ausführungsformen kann ein Knoten in dem Netzwerk das Modul zur Ausführung eines Arbeitsschritts speichern. Zum Beispiel kann das Modul im verteilten Dateispeicher 150 gespeichert werden, oder es kann in einem oder mehreren Knoten (z.B. in den Knoten 102 und 105) gespeichert werden. Andere Verfahren der Speicherung können verwendet werden.
  • Bei einigen Ausführungsformen können Module Überprüfungslogik und die Regeln enthalten, die definieren, welche Aktionen (z.B. Aktionen zur Einhaltung von Finanzvorschriften und Prüfaktionen) durchgeführt werden müssen, und wie überprüft wird, dass die Aktionen durchgeführt wurden. Bei einigen Ausführungsformen können ein oder mehrere Blockchain-Knoten überprüfen, dass die richtigen Konformitätsmodule und Prüfmodule aufgerufen wurden. Wie hierin beschrieben handelt es sich bei Smart Contracts um digitale Verträge, die eine oder mehrere bestimmte Anforderungen zur Ausführung des Smart Contract enthalten können. In einigen Fällen kann es sich bei einem Smart Contract um ein Computerprotokoll handeln, das dazu gedacht ist, die Verhandlung über einen oder die Erfüllung eines Vertrags digital zu ermöglichen, zu überprüfen oder durchzusetzen. Smart Contracts werden zu Beispielzwecken verwendet, es können jedoch auch andere Arten von Blockchain-Prozessen verwendet werden.
  • Bei einigen Ausführungsformen definiert eine Konformitätsrichtlinie einen Satz von Modulen und Regeln, die zum Bewerten von Daten und Transaktionen in Bezug auf Konformität verwendet werden. Bei einigen Ausführungsformen können die überprüften Ergebnisse im Ledger aufgezeichnet werden, nachdem die Konformitätsrichtlinie in Kraft gesetzt wurde.
  • Unter Bezugnahme auf 6 ist dort ein Flussdiagramm eines beispielhaften Verfahrens 600 zum Akzeptieren von Konformitätsmodulen in einem Blockchain-Netzwerk gemäß Ausführungsformen der vorliegenden Offenbarung veranschaulicht. Bei einigen Ausführungsformen kann das Verfahren 600 durch einen Prozessor (z.B. den Prozessor 502, der mit den verschiedenen Komponenten von 5 verbunden ist) in einem Blockchain-Netzwerk oder im Datenaustausch mit einem Blockchain-Netzwerk durchgeführt werden.
  • Bei einigen Ausführungsformen beginnt das Verfahren 600 bei Arbeitsschritt 602, in dem Komponenten eines Netzwerks Einvernehmen über Behörden erzielen, die verwendet werden sollen. Bei einigen Ausführungsformen kann es sich bei einer Behörde um eine Regulierungsbehörde oder eine Regulierungskörperschaft, einen für Konformität zuständigen Knoten oder eine andere Körperschaft handeln, die ein Konformitätsmodul (z.B. ein Modul, das Konformitätsregeln enthält) bereitstellen oder modifizieren würde. Die Behörden können durch einen Berechtigungsmechanismus festgelegt werden. Bei einem Berechtigungsmechanismus kann es sich um eine Zugriffskontrollliste handeln, obwohl Fachleute erkennen werden, dass es andere mögliche Berechtigungsmechanismen gibt. Ebenso kann das Netzwerk bei einigen Ausführungsformen auch Einvernehmen über einen oder mehrere Prüfer mit der Berechtigung erzielen, ein Prüfmodul (z.B. ein Modul, das Prüfregeln enthält) bereitzustellen oder zu modifizieren. Bei einigen Ausführungsformen kann die Behörde mit einem Berechtigungsmechanismus versehen werden, wie vorstehend beschrieben. Bei einigen Ausführungsformen kann es sich bei der Behörde um eine in das System integrierte Behörde, einen festgelegten Knoten oder einen Regulierer (wie z.B. den Regulierer 326) handeln.
  • Bei einigen Ausführungsformen kann die Vereinbarung über die Behörde oder die Behörden als Zugriffskontrollliste aufgezeichnet werden. Bei einigen Ausführungsformen kann die Zugriffskontrollliste im Blockchain-Ledger aufgezeichnet werden. Bei einigen Ausführungsformen kann ein Schwellenwert-Behördenvereinbarungsmaß verwendet werden um die Zugriffskontrollliste zu ermitteln. Zum Beispiel können einige Netzwerke erfordern, dass 100 % von Knoten oder Organisationen Einvernehmen über eine Behörde erzielen, eine Mehrheit von Knoten Einvernehmen über eine Behörde erzielen oder ein oder mehrere Kontrollknoten Einvernehmen über eine Behörde erzielen müssen. Bei einigen Ausführungsformen kann jeder Knoten oder jede Organisation eine Zugriffskontrollliste aufrechterhalten. Zum Beispiel muss ein Knoten Einvernehmen über eine Behörde erzielen, bevor er ein Konformitätsmodul von der Behörde akzeptieren kann. Andere Verfahren zum Erstellen und Verwalten einer Kontrollliste sind für einen Fachmann denkbar.
  • Bei einigen Ausführungsformen können sich die Betreiber des Netzwerks, z.B. Knoten oder Organisationen, dazu entscheiden, die Behörden zu wechseln, oder dazu, welchen Behörden möglicherweise ihre Rechte entzogen werden. Wenn zum Beispiel eine Organisation in einem neuen Land tätig ist, kann das Netzwerk eine Dienststelle des neuen Landes vorgeben und die Behörde des alten Landes annullieren.
  • Bei einigen Ausführungsformen wird das Verfahren 600 bei Arbeitsschritt 604 fortgesetzt, in dem der Finanzregulierer ein Konformitätsmodul definiert. Bei einigen Ausführungsformen kann es sich bei dem Konformitätsmodul um ein einzelnes Modul, mehrere Module oder mehrere untereinander verbundene Module handeln. Zum Beispiel kann jedes Gesetz ein individuelles Modul haben, und es können mehrere Module erforderlich sein, um Anforderungen einer Dienststelle zu erfüllen. Bei einem weiteren Beispiel kann jede Dienststelle ein einzelnes Modul haben, das alle für die Dienststelle notwendigen Konformitätsanforderungen enthält. Andere Modulkonfigurationen sind möglich.
  • Bei einigen Ausführungsformen wird das Verfahren 600 mit Arbeitsschritt 606 fortgesetzt, in dem ein Prüfer Prüfmodule definiert. Bei einigen Ausführungsformen kann ein einzelner Prüfer ein einzelnes Prüfmodul oder mehrere Module definieren, oder mehrere Prüfer können ein einzelnes Modul oder mehrere Module definieren. Zum Beispiel kann eine externe Wirtschaftsprüfungsgesellschaft ein Steuermodul bereitstellen, und eine interne Buchhaltungsabteilung kann ein allgemeines Buchhaltungsmodul bereitstellen.
  • Bei einigen Ausführungsformen wird das Verfahren 600 mit Arbeitsschritt 608 fortgesetzt, in dem das Netzwerk Module akzeptiert. Bei einigen Ausführungsformen kann das Netzwerk jedes Modul unabhängig akzeptieren oder ablehnen. Bei einigen Ausführungsformen kann ein Schema zum Akzeptieren eines Moduls vorliegen. Zum Beispiel kann ein bestimmter Prozentsatz von Knoten erforderlich sein, um Einvernehmen über ein Modul zu erzielen, bevor es akzeptiert werden kann.
  • Bei einigen Ausführungsformen kann Teilnehmern des Netzwerks die Gelegenheit gegeben werden, jedes Modul zu akzeptieren oder abzulehnen, das übermittelt werden kann. Zum Beispiel können Teilnehmer festlegen, ob sie lieber ein bestimmtes Konformitäts- oder Buchhaltungsmodul anwenden möchten. In einigen Fällen können mehrere Konformitätsanforderungen oder Buchhaltungsoptionen zur Verfügung stehen. Zum Beispiel kann ein Buchhaltungsmodul für Kryptowährungssteuer und ein Modul für Aktienhandelssteuer vorliegen.
  • Unter Bezugnahme auf 7 ist dort ein Flussdiagramm eines beispielhaften Verfahrens 700 zum Anwenden von Konformitätsmodulen und Prüfmodulen auf einen Blockchain-Arbeitsschritt gemäß Ausführungsformen der vorliegenden Offenbarung veranschaulicht. Bei einigen Ausführungsformen wird das Verfahren 700 durch einen Prozessor in einem Blockchain-Netzwerk oder im Datenaustausch mit einem Blockchain-Netzwerk durchgeführt.
  • Bei einigen Ausführungsformen beginnt das Verfahren 700 mit Arbeitsschritt 708, in dem ein Arbeitsplatz eingeleitet wird. Bei einigen Ausführungsformen kann es sich beim Einleiten eines Arbeitsschritts um das Einleiten eines Smart Contract, das Einleiten oder Übermitteln einer Transaktion, Erstellen oder das Übermitteln eines Transaktionsvorschlags usw. handeln. Bei einigen Ausführungsformen umfasst die Einleitung ein Aufrufen eines Smart Contract durch einen Client und ein Erzeugen des Arbeitsschrittvorschlags (z.B. eines Transaktionsvorschlags) durch einen Peer. Zum Beispiel kann der Arbeitsschrittvorschlag erkennen, welche Aktionen oder Änderungen der Smart Contract durchführen darf. Bei einigen Ausführungsformen können die Regeln in den Modulen oder die Module auf der Grundlage bestimmter Bedingungen wie z.B. Asset-Arten, Transaktionsarten und Transaktionsübermittler zu Blockchain-Arbeitsschritten (wie z.B. Transaktionen) und Daten zugeordnet werden. Bei einigen Ausführungsformen kann das System Asset-Arten erkennen und ein oder mehrere Module für die ausgewählte Asset-Art auswählen. Zum Beispiel kann das System Schema- oder Artenerkennungsmuster wie zum Beispiel „Regulärer Ausdruck“ (regex) nutzen. Bei einigen Ausführungsformen kann das System Transaktionsarten erkennen und bestimmten Modulen zuordnen. Die Transaktionsarten können mit Transaktionsmetadaten/-attributen (Funktion, Chaincode usw.) gekennzeichnet sein. Zum Beispiel müssen beim Handeln mit Molkereiwertpapieren Module für die Chicago Mercantile Exchange und die Commodity Futures Trading Commission aufgerufen werden. Bei einigen Ausführungsformen können die Module/Regeln auch auf der Grundlage einer Kennung des Transaktionsübermittlers selektiv angewendet werden. Zum Beispiel muss ein Client, der im Kryptowährungshandel tätig ist, möglicherweise Module von der U.S. Securities and Exchange Commission aufrufen.
  • Bei einigen Ausführungsformen kann die Einleitung von einer oder mehreren Parteien stammen, die an der Anforderung beteiligt sind, oder sie kann von einem Dritten stammen (z.B. von einem Vermittler bei einer Vergleichsvereinbarung oder einem Makler für einen Immobilienhandel). Zum Beispiel nutzt das Unternehmen A möglicherweise einen Vermittler M, um den Vertrag/die Einzelheiten der Asset-Übertragung zu verfassen, und der Vermittler M kann den Arbeitsschritt erstellen.
  • Bei einigen Ausführungsformen kann die Einleitung Informationen enthalten, die den Arbeitsschritt betreffen, wie z.B. eine Liste von Begriffen in einer die Asset-Übertragung betreffenden Vereinbarung, eine Liste von Beauftragten (z.B. eine Bank, ein Makler, eine Firma, eine Vermittlungsorganisation, ein Bevollmächtigter usw.), die eine der Parteien in einer Übertragung vertreten können, eine Liste von Organisationen oder Beauftragten (z.B. eine Bank, ein Makler, eine Firma, eine Vermittlungsorganisation, ein Bevollmächtigter usw.), die die Übertragung der digitalen Assets ermöglichen können, Standorte oder juristische Zuständigkeitsbereiche für die Beauftragten, die Art von Assets, die übertragen werden sollen, und andere Informationen, die die Übertragung betreffen. Zum Beispiel kann die Anforderung der Übertragung digitaler Assets Informationen wie z.B. den Standort des Unternehmens A, den Standort des Unternehmens B, den Standort des Vermittlers M und solche betriebswirtschaftliche Einzelheiten enthalten, dass das Unternehmen A dem Unternehmen B z.B. 100 Dollar (fiktive Kryptowährung) über eine Bank S überweisen kann. Bei einigen Ausführungsformen kann die Anforderung die Daten oder einen Speicherort von Daten in einem verteilten Speichersystem enthalten. Bei einigen Ausführungsformen können einige oder alle der Daten in digitalen Konstrukten (wie z.B. digitalen Verträgen) in verschiedenen Blockchain-Netzwerken enthalten sein. Zum Beispiel kann bei einem einfachen Vertrag zwischen zwei Parteien jede Partei einen digitalen Vertrag erstellen, wobei jeder Vertrag die Bestimmungen der Vereinbarung enthält, die für die Partei wichtig sind, die den Vertrag aufsetzt. Andere mögliche Wege zum Einleiten eines Arbeitsschritts sind möglich. Sobald der Arbeitsschritt eingeleitet ist, kann das Verfahren Arbeitsschritt 710 weitergehen.
  • Bei einigen Ausführungsformen kann das Verfahren 700 mit Arbeitsschritt 710 fortgesetzt werden, in dem ein Peer die Konformität des Arbeitsschritts auf der Grundlage eines oder mehrerer Module überprüft. Bei einigen Ausführungsformen kann/können die Überprüfungskomponente/n beim Bewerten eines Arbeitsschritts: ermitteln, ob es sich bei den Modulen/Regeln um die korrekten Module/Regeln für den Arbeitsschritt handelt, ermitteln, ob die korrekten Regeln in den Modulen enthalten sind, und/oder validieren, dass die Module bei dem Arbeitsschritt (z.B. Transaktion oder Smart Contract) auf allen Knoten funktionieren werden. Zum Beispiel muss bei einer Finanztransaktion möglicherweise sowohl ein Modul auf bundesstaatlicher Ebene als auch ein Modul auf Bundesebene ausgewählt werden. Wenn lediglich ein Modul auf Bundesebene ausgewählt ist, kann der Peer entweder den Arbeitsschritt ablehnen oder das richtige Modul auf bundesstaatlicher Ebene abrufen. Bei einigen Ausführungsformen kann das Validieren das Ermitteln umfassen, ob alle Knoten in der Lage sind, die Smart Contracts mit den Modulen auszuführen. Bei einigen Ausführungsformen können die Smart Contracts eine Überprüfungskomponente haben, oder das Netzwerk kann eine Überprüfungskomponente haben, um dem System zu entsprechen. Bei einigen Ausführungsformen kann die Überprüfung auf der Grundlage des Inhalts der Module durchgeführt werden. Zum Beispiel können die Module einen/eine oder mehrere Überprüfungsschritte/-regeln enthalten.
  • Bei einigen Ausführungsformen kann der Peer überprüfen, dass die ordnungsgemäßen Module für jeden Arbeitsschritt ausgewählt wurden. Zum Beispiel können Knoten mit variierenden Anforderungen oder Voraussetzungen erforderlich sein, um zu validieren, dass die ordnungsgemäßen Module/Regeln aufgerufen wurden. Bei einigen Ausführungsformen kann der Peer überprüfen, dass die Module ordnungsgemäß miteinander und mit dem Smart Contract funktionieren werden. Wenn zum Beispiel ein Konformitätsmodul erfordert, dass vor einer Transaktion eine Steuer in Reserve zu halten ist, aber das Prüfmodul keine Steuer in Reserve hält, sind die Module möglicherweise nicht kompatibel. Wenn bei einem weiteren Beispiel ein Konformitätsmodul erfordert, dass sowohl eine Bundesstaats- als auch eine Bundessteuer von einer Finanztransaktion einzubehalten ist, aber das Prüfmodul lediglich eine Regel für ein Modul auf Bundesebene enthält, kann der Peer die Transaktion ablehnen und eine Mitteilung an den Client senden.
  • Bei einigen Ausführungsformen kann der Peer auf der Grundlage der Überprüfung des Arbeitsschritts eine Konformitätserklärung oder einen Konformitätsnachweis erzeugen. Die Konformitätserklärung kann auf jedes Modul verweisen, mit dem der Arbeitsschritt überprüft wurde, und/oder auf jede Regel, anhand deren der Arbeitsschrittvorschlag überprüft wurde. Wenn zum Beispiel ein Arbeitsschrittvorschlag mit einem Modul von der SEC überprüft wurde, kann die Konformitätserklärung oder der Konformitätsnachweis auf ein SEC-Modul verweisen. Bei einigen Ausführungsformen kann die Konformitätserklärung auch Erklärungen darüber enthalten, wie die Anforderungen jeder Regel erfüllt wurden. Wenn zum Beispiel ein Arbeitsschrittvorschlag mit einem Modul von der SEC überprüft wurde, kann die Konformitätserklärung oder der Konformitätsnachweis in einer Liste aufführen, wie jede Regel im SEC-Modul eingehalten wurde. Bei einigen Ausführungsformen kann diese Konformitätserklärung oder dieser Konformitätsnachweis im Ledger zur Einsichtnahme durch Behörden zur Verfügung stehen, wie in Arbeitsschritt 712 beschrieben.
  • Bei einigen Ausführungsformen wird das Verfahren 700 mit Arbeitsschritt 712 fortgesetzt, in dem der überprüfte Arbeitsschritt gemäß der Prozedur des Blockchain-Netzwerks verarbeitet werden kann und/oder der formale Konformitätsnachweis im Ledger aufgezeichnet werden kann.
  • Bei einigen Ausführungsformen kann eine Transaktion eine formale Konformitätserklärung oder einen formalen Konformitätsnachweis erfordern. In einigen Fällen kann der Nachweis durch Bewilliger als Erklärung aufgebaut werden (z.B. eine Darstellung eines Satzes von überprüften Regeln), wobei die Erklärung eine Validierung einer oder mehrerer Arten von Daten im Kontext der Transaktion enthält. Zum Beispiel können die Daten die Ausgabedaten der Transaktion (z.B. Schreibsatz), die Werte von beliebigen der Argumente, die zum Aufrufen der Transaktionserzeugung verwendet werden, und/oder Daten enthalten, die ausdrücklich nicht dazu gedacht sind, in der Transaktion aufgezeichnet zu werden, aber möglicherweise benötigt werden, um die Gültigkeit des Inhalts oder die Konformität mit Regeln oder Gesetzen festzustellen. Zum Beispiel kann die Transaktion einen Hash eines Dokuments enthalten. Um das Dokument zu validieren, erfordert die Konformität, dass der Einsichtnehmer das Dokument „sieht“ und dessen Hash berechnet, um die Hash-Gültigkeit und demzufolge die Gültigkeit des Dokuments zu überprüfen.
  • Bei einigen Ausführungsformen kann der Nachweis Dokumentation enthalten, dass die Validierungskomponente (z.B. System-Chaincode) mit allen verfügbaren, die Validierung betreffenden Daten aufgerufen wurde (z.B., wie jede Regel eingehalten wurde).
  • Bei einigen Ausführungsformen kann die Validierungskomponentenkomponente in einem einzelnen oder in jedem Konformitätsmodul aufgerufen werden, und ein Nachweis kann für das einzelne Modul oder jedes Modul bereitgestellt werden. Bei einigen Ausführungsformen führt ein Modul oder jedes Modul einen Satz von vorkonfigurierten Regeln im Kontext der verarbeiteten Transaktion aus, der als Validierungskomponente fungieren kann.
  • Bei einigen Ausführungsformen kann die Erklärung in den Transaktionskopfdaten als Validierungsnachweis enthalten sein. Bei einigen Ausführungsformen kann die Verwendung der Erklärung als Nachweis dienen, dass die Konformitätsrichtlinie angewendet/bewertet wurde. Bei einigen Ausführungsformen kann der Nachweis außerdem als Beleg dienen, dass alle Peers den Nachweis genehmigt haben, da die Nachweise zwischen verschiedenen Peers übereinstimmen müssen, bevor der Nachweis auf das Blockchain-Netzwerk angewendet werden kann. Der Nachweis kann dann durch die Prüfer verwendet werden, um zu kontrollieren, ob und welche Regeln angewendet wurden.
  • Unter Bezugnahme auf 8 ist dort ein Flussdiagramm eines beispielhaften Verfahrens 800 veranschaulicht, das die Eröffnung, das Auswählen und das Verarbeiten eines Moduls gemäß Ausführungsformen der vorliegenden Offenbarung darstellt. Bei einigen Ausführungsformen wird das Verfahren 800 durch einen Prozessor in einem Blockchain-Netzwerk oder im Datenaustausch mit einem Blockchain-Netzwerk durchgeführt.
  • Bei einigen Ausführungsformen beginnt das Verfahren 800 mit der Eröffnung in Arbeitsschritt 812, in dem festgestellt wird, dass ein Modul erforderlich ist. Bei einigen Ausführungsformen kann der Arbeitsschritt eine Angabe enthalten, dass eine Regulierungs- oder eine Prüfanforderung vorliegt. Zum Beispiel kann eine Transaktion angeben, dass möglicherweise ein Verweis auf ein bestimmtes Modul oder Gesetzbuch erfolgen muss. Bei einigen Ausführungsformen kann der Überprüfungsprozess (z.B. Arbeitsschritt 710) eine oder mehrere Kontrollen auf ein Modul (z.B. Regulierungsmodul oder Prüfmodul) enthalten. Zum Beispiel kann das System eine Kontrolle ausführen, um zu ermitteln, ob jedes Mal ein Modul vorliegt oder vorliegen sollte, wenn eine Finanztransaktion stattfindet. Bei einigen Ausführungsformen kann die Überprüfung für jeden Arbeitsschritt Anforderungen juristischer Zuständigkeitsbereiche ermitteln. Zum Beispiel kann das System versuchen zu ermitteln, ob ein Gesetzeswerk für jeden Standort vorliegt, an dem ein Teil des Arbeitsschritts stattfindet. Bei einigen Ausführungsformen kann das System erfordern, dass bei jeder Transaktion ein Modul angewendet wird. Zum Beispiel kann ein Blockchain-Netzwerk, das Kryptowährungstransaktionen für ein in den USA ansässiges Unternehmen verarbeitet, stets erfordern, dass Module von der U.S. Securities and Exchange Commission aufgerufen werden.
  • Bei einigen Ausführungsformen wird das Verfahren 800 mit Arbeitsschritt 814 fortgesetzt, in dem ein Modul ausgewählt wird. Bei einigen Ausführungsformen können die Arbeitsschritt- oder Systemanweisungen eine direkte Angabe enthalten, welches Modul zu verwenden ist. Zum Beispiel kann ein Krypto-Arbeitsschritt Anweisungen enthalten, das Modul 405B der U.S. Securities and Exchange Commission aufzurufen (fiktives Beispiel). Bei einigen Ausführungsformen kann das System einen Erkennungsprozess verwenden, um wahrscheinliche Module zu ermitteln. Zum Beispiel kann das System alle juristischen Zuständigkeitsbereiche einer Transaktion untersuchen und Module für beliebige Kontrollbehörden heranziehen.
  • Bei einigen Ausführungsformen wird das Verfahren 800 mit Arbeitsschritt 814 fortgesetzt, in dem das Modell angewendet wird. Bei einigen Ausführungsformen ähnelt die Anwendung den Arbeitsschritten 710 und 712. Bei einigen Ausführungsformen können bestimmte Module auf bestimmte Teile eines Arbeitsschritts angewendet werden. Zum Beispiel kann ein Konformitätsmodul auf ein Verfahren einer Finanztransaktion angewendet werden, und ein Prüfmodul kann auf einen steuerlichen Abschnitt einer Finanztransaktion angewendet werden. Bei einem weiteren Beispiel kann ein US-Konformitätsmodul auf den US-Abschnitt einer Transaktion angewendet werden, und ein schwedisches Konformitätsmodul kann auf den schwedischen Abschnitt einer Transaktion angewendet werden.

Claims (9)

  1. Verfahren, das aufweist: Einvernehmen erzielen, durch einen Knoten in einem Blockchain-Netzwerk, bezüglich einer Behörde; Empfangen, durch den Knoten, eines Konformitätsmoduls von der Behörde; Akzeptieren, durch den Knoten, des Konformitätsmoduls, Speichern, durch den Knoten, des Moduls zur Ausführung eines Arbeitsschritts.
  2. Verfahren nach Anspruch 1, das ferner aufweist: Empfangen des Arbeitsschritts; Überprüfen einer Konformität des Arbeitsschritts auf der Grundlage des Konformitätsmoduls; Hinzufügen des überprüften Arbeitsschritts zu einem Ledger im Blockchain-Netzwerk.
  3. Verfahren nach Anspruch 2, das ferner aufweist: Ermitteln von Konformitätsinformationen auf der Grundlage des Überprüfens; Aufzeichnen von Konformitätsinformationen im Ledger.
  4. Verfahren nach Anspruch 1, das ferner aufweist: Empfangen, durch den Knoten, eines Prüfmoduls von einem Prüfer; Akzeptieren, durch den Knoten, des Prüfmoduls.
  5. Verfahren nach Anspruch 4, das ferner aufweist: Empfangen des Arbeitsschritts; Überprüfen der Konformität des Arbeitsschritts auf der Grundlage des Konformitätsmoduls und des Prüfmoduls; Übermitteln des überprüften Arbeitsschritts, der einem Ledger hinzugefügt werden soll, im Blockchain-Netzwerk.
  6. Verfahren nach Anspruch 5, das ferner aufweist: Ermitteln, auf der Grundlage des Überprüfens, von Prüfinformationen; Übermitteln der Prüfinformationen, die im Ledger aufgezeichnet werden sollen.
  7. Verfahren nach Anspruch 6, das ferner umfasst: Ermitteln einer Fähigkeit aller Knoten im Blockchain-Netzwerk zum Verarbeiten des Arbeitsschritts mit dem Konformitätsmodul und dem Prüfmodul.
  8. System, das aufweist: einen Speicher; und einen Prozessor im Datenaustausch mit dem Speicher, wobei der Prozessor so konfiguriert ist, dass Prozesse durchgeführt werden, die aufweisen: Einvernehmen erzielen bezüglich einer Behörde für ein Blockchain-Netzwerk; Empfangen eines Konformitätsmoduls von der Behörde; und Akzeptieren des Konformitätsmoduls, und Speichern des Moduls zur Ausführung eines Arbeitsschritts.
  9. Computerprogrammprodukt, wobei das Computerprogrammprodukt ein durch einen Computer lesbares Speichermedium aufweist, das darauf verkörperte Programmanweisungen enthält, wobei die Programmanweisungen durch einen Prozessor ausführbar sind, um zu bewirken, dass die Prozessoren eine Funktion ausführen, wobei die Funktion aufweist: Einvernehmen erzielen bezüglich einer Behörde für ein Blockchain-Netzwerk; Empfangen eines Konformitätsmoduls von der Behörde; Akzeptieren des Konformitätsmoduls; Speichern des Moduls zur Ausführung eines Arbeitsschritts.
DE102021122557.4A 2020-09-27 2021-08-31 Konformitätsmechanismen in blockchain-netzwerken Pending DE102021122557A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/033,850 2020-09-27
US17/033,850 US11711286B2 (en) 2020-09-27 2020-09-27 Compliance mechanisms in blockchain networks

Publications (1)

Publication Number Publication Date
DE102021122557A1 true DE102021122557A1 (de) 2022-03-31

Family

ID=80624746

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021122557.4A Pending DE102021122557A1 (de) 2020-09-27 2021-08-31 Konformitätsmechanismen in blockchain-netzwerken

Country Status (5)

Country Link
US (2) US11711286B2 (de)
JP (1) JP2022055352A (de)
CN (1) CN114363327A (de)
DE (1) DE102021122557A1 (de)
GB (1) GB2600543A (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11711286B2 (en) * 2020-09-27 2023-07-25 International Business Machines Corporation Compliance mechanisms in blockchain networks
US11700304B2 (en) * 2020-11-19 2023-07-11 Deixis, PBC Confirmation of service levels via distributed ledgers
US11582259B1 (en) 2021-11-23 2023-02-14 Radware Ltd. Characterization of HTTP flood DDoS attacks
US11552989B1 (en) * 2021-11-23 2023-01-10 Radware Ltd. Techniques for generating signatures characterizing advanced application layer flood attack tools
CN115801259B (zh) * 2022-11-10 2023-06-09 上海零数众合信息科技有限公司 事务监管方法、装置、电子设备及存储介质
US11941053B1 (en) 2023-03-09 2024-03-26 Bank Of America Corporation Secure data interactions performed by an internet of things (IoT) device

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8271366B2 (en) 2009-05-15 2012-09-18 Itg Software Solutions, Inc. System and method for providing high performance compliance services using pre-calculated rule evaluation
US9015832B1 (en) * 2012-10-19 2015-04-21 Google Inc. Application auditing through object level code inspection
US20140351129A1 (en) 2013-05-24 2014-11-27 Hewlett-Packard Development Company, L.P. Centralized versatile transaction verification
EP2816471A1 (de) * 2013-06-19 2014-12-24 British Telecommunications public limited company Kategorisierung des Software-Anwendungsstatus
US20150324787A1 (en) 2014-05-08 2015-11-12 Sequitur Labs, Inc. Policy-Based Control and Augmentation of Cryptocurrencies and Cryptocurrency Security
US20150379505A1 (en) 2014-06-30 2015-12-31 Intuit Inc. Using limited life tokens to ensure pci compliance
US11188899B2 (en) 2015-04-07 2021-11-30 Dmg Blockchain Solutions Inc. Off network identity tracking in anonymous cryptocurrency exchange networks
US20170011460A1 (en) * 2015-07-09 2017-01-12 Ouisa, LLC Systems and methods for trading, clearing and settling securities transactions using blockchain technology
US10402792B2 (en) 2015-08-13 2019-09-03 The Toronto-Dominion Bank Systems and method for tracking enterprise events using hybrid public-private blockchain ledgers
US20210211468A1 (en) * 2016-05-27 2021-07-08 Wells Fargo Bank, N.A. Systems and methods for service compliance via blockchain
JP7090161B2 (ja) * 2017-12-13 2022-06-23 ビザ インターナショナル サービス アソシエーション セキュアな取引のための装置の自己認証
US11238449B2 (en) 2017-12-18 2022-02-01 Nec Corporation Efficient validation of transaction policy compliance in a distributed ledger system
US11023218B1 (en) * 2017-12-31 2021-06-01 Wells Fargo Bank, N.A. Metadata driven product configuration management
US20190303932A1 (en) * 2018-03-28 2019-10-03 NEC Laboratories Europe GmbH Method and system for verifying policy compliance of transactions in a blockchain executing smart contracts
US10834095B2 (en) * 2018-05-17 2020-11-10 International Business Machines Corporation Post-commit validation in a distributed ledger
US20200028691A1 (en) 2018-07-20 2020-01-23 Honeywell International Inc. System and method for a blockchain based automated certifiable workflow process
CN109729092A (zh) * 2019-01-09 2019-05-07 山东浪潮质量链科技有限公司 一种业务平台准入的方法和装置
US11495347B2 (en) * 2019-01-22 2022-11-08 International Business Machines Corporation Blockchain framework for enforcing regulatory compliance in healthcare cloud solutions
US11212347B2 (en) * 2019-02-05 2021-12-28 S&P Global Inc. Private content storage with public blockchain metadata
CA3141042A1 (en) * 2019-06-13 2020-12-17 Luis Eduardo Gutierrez-Sheris System and method using a fitness-gradient blockchain consensus and providing advanced distributed ledger capabilities via specialized data records
CN110544095A (zh) * 2019-09-03 2019-12-06 腾讯科技(深圳)有限公司 区块链网络的交易处理方法及区块链网络
US11711286B2 (en) * 2020-09-27 2023-07-25 International Business Machines Corporation Compliance mechanisms in blockchain networks

Also Published As

Publication number Publication date
US20220103453A1 (en) 2022-03-31
CN114363327A (zh) 2022-04-15
GB2600543A (en) 2022-05-04
JP2022055352A (ja) 2022-04-07
US20230318959A1 (en) 2023-10-05
US11711286B2 (en) 2023-07-25

Similar Documents

Publication Publication Date Title
US11057353B2 (en) Systems, methods, and devices for implementing a smart contract on a distributed ledger technology platform
DE102021122557A1 (de) Konformitätsmechanismen in blockchain-netzwerken
DE102019123253A1 (de) System und einrichtung für datenvertraulichkeit im distributed ledger
DE112020005289B4 (de) Teilweise sortierte blockchain
DE112020005794T5 (de) Dynamische rechtevergabe und durchsetzung für transportprozess
DE112020005075B4 (de) Effiziente schwellenwertspeicherung von datenobjekten
DE102021123128A1 (de) Mittels blockchains realisiertes datenmigrationsprüfprotokoll
DE112020005429T5 (de) Zufallsknotenauswahl für zulassungsbeschränkte Blockchain
DE112021002797T5 (de) Datenschutzerhaltende architektur für genehmigungspflichtige blockchains
DE112021001413T5 (de) Verwaltung eines privilegierten zugriffs mit geringer vertrauenswürdigkeit
DE112021000688T5 (de) Indexstruktur für blockchain-ledger
DE112021001671T5 (de) Netzübergreifendes bereitstellen von identitäten
DE112021000608T5 (de) Schnellere ansichtsänderung für eine blockchain
EP1209579A1 (de) System zur automatisierten Abwicklung von Transaktionen durch aktives Identitätsmanagement
DE112021004344T5 (de) Konsensdienst für Blockchain-Netzwerke
US11664973B2 (en) Trust-varied relationship between blockchain networks
CN110674128A (zh) 区块链的链上治理
DE112022000906T5 (de) Trennen von blockchain-daten
DE112021002053T5 (de) Verrauschte Transaktion zum Schutz von Daten
US20210273780A1 (en) Encrypted blockchain voting system
DE112021003971T5 (de) Nachhaltige token für eine lieferkette mit datenschutzerhaltendem protokoll
DE112021005837T5 (de) Dezentrale sendeverschlüsselung und schlüsselerzeugungseinrichtung
WO2022200035A1 (de) Verfahren und vorrichtung zum erzeugen, bereitstellen und weitergeben eines vertrauenswürdigen elektronischen datensatzes oder zertifikates basierend auf einem einen nutzer betreffenden elektronischen dokument
US20230092436A1 (en) Framework for demaraction of digital assets
DE112021005862T5 (de) Selbstprüfende blockchain

Legal Events

Date Code Title Description
R012 Request for examination validly filed