DE112021003971T5 - Nachhaltige token für eine lieferkette mit datenschutzerhaltendem protokoll - Google Patents

Nachhaltige token für eine lieferkette mit datenschutzerhaltendem protokoll Download PDF

Info

Publication number
DE112021003971T5
DE112021003971T5 DE112021003971.7T DE112021003971T DE112021003971T5 DE 112021003971 T5 DE112021003971 T5 DE 112021003971T5 DE 112021003971 T DE112021003971 T DE 112021003971T DE 112021003971 T5 DE112021003971 T5 DE 112021003971T5
Authority
DE
Germany
Prior art keywords
blockchain
order
hash
block
information
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
DE112021003971.7T
Other languages
English (en)
Inventor
Jeronimo IRAZABAL
Mariela Claudia Lanza
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 DE112021003971T5 publication Critical patent/DE112021003971T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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
    • G06Q10/00Administration; Management
    • G06Q10/04Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
    • G06Q10/047Optimisation of routes or paths, e.g. travelling salesman problem
    • 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
    • G06Q10/00Administration; Management
    • G06Q10/08Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
    • G06Q10/083Shipping
    • G06Q10/0832Special goods or special handling procedures, e.g. handling of hazardous or fragile goods
    • 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
    • G06Q10/00Administration; Management
    • G06Q10/08Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
    • G06Q10/083Shipping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/80Management or planning
    • Y02P90/84Greenhouse gas [GHG] management systems
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/80Management or planning
    • Y02P90/84Greenhouse gas [GHG] management systems
    • Y02P90/845Inventory and reporting systems for greenhouse gases [GHG]

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • Economics (AREA)
  • Human Resources & Organizations (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Development Economics (AREA)
  • Tourism & Hospitality (AREA)
  • Physics & Mathematics (AREA)
  • Operations Research (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Marketing (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Game Theory and Decision Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Storage Device Security (AREA)

Abstract

Ein durch einen Computer implementiertes System und Verfahren stellen ein datenschutzerhaltendes Token-Erzeugungsprotokoll bereit. Das Verfahren weist Initiieren einer Bestellanforderung auf, wobei die Bestellanforderung öffentliche Bestellinformationen und private Bestellinformationen umfasst. Das Verfahren weist weiterhin Erzeugen einer Adresse in einem Blockchain-Netzwerk auf, das Verschlüsseln der Adresse mit einem privaten Schlüssel und Erzeugen eines Hash von Daten umfasst, die die privaten Bestellinformationen und eine Signatur des Hash enthalten. Die Signatur des Hash wird mit dem privaten Schlüssel erzeugt. Das Verfahren weist weiterhin Übermitteln der Bestellanforderung mit der Adresse, dem Hash und der Signatur an ein der Bestellung zugehöriges Transportunternehmen auf sowie Feststellen, dass das Transportunternehmen die Bestellanforderung erfüllt hat. Das Verfahren weist weiterhin Validieren auf, dass das Transportunternehmen die Bestellung ausgeführt hat, Berechnen eines dem Transportunternehmen zugehörigen Token-Wertes, wobei sich der Token-Wert auf einen CO2-Fußabdruck des Transportunternehmens bezieht, und Zuweisen des Token-Wertes zu der Adresse.

Description

  • HINTERGRUND
  • Hier werden ein System und ein damit verbundenes Verfahren zum Erzeugen und Verwenden nachhaltiger Token in einem Blockchain-Netzwerk für eine Lieferkette auf der Grundlage eines der Lieferkette zugehörigen CO2-Fußabdrucks beschrieben. Dies kann unter Wahrung privater Informationen durchgeführt werden, die sich auf die nachhaltigen Token beziehen können. Umweltbewusste Unternehmensziele gewinnen zunehmend an Bedeutung, und viele Unternehmen prüfen derzeit verschiedene Möglichkeiten, solche Ziele zu verwirklichen.
  • KURZDARSTELLUNG
  • Gemäß einem hier offenbarten Aspekt wird ein durch einen Computer implementiertes Verfahren für ein datenschutzerhaltendes Token-Erzeugungsprotokoll bereitgestellt. Das Verfahren weist Initiieren einer Bestellanforderung auf, wobei die Bestellanforderung öffentliche Bestellinformationen und private Bestellinformationen umfasst. Das Verfahren weist weiterhin Erzeugen einer Adresse in einem Blockchain-Netzwerk auf, das Verschlüsseln der Adresse mit einem privaten Schlüssel und Erzeugen eines Hash von Daten umfasst, die die privaten Bestellinformationen und eine Signatur des Hash enthalten. Die Signatur des Hash wird mit dem privaten Schlüssel erzeugt. Das Verfahren weist weiterhin Übermitteln der Bestellanforderung mit der Adresse, dem Hash und der Signatur an ein der Bestellung zugehöriges Transportunternehmen auf sowie Feststellen, dass das Transportunternehmen die Bestellanforderung erfüllt hat.
  • Gemäß einem weiteren hier offenbarten Aspekt wird ein durch einen Computer implementiertes Verfahren für ein datenschutzerhaltendes Token-Erzeugungsprotokoll bereitgestellt. Das Verfahren weist Empfangen von Bestellinformationen auf, die sich auf eine Bestellung beziehen, für die ein Transportunternehmen verwendet werden muss, wobei die Bestellinformationen eine Adresse in einem Blockchain-Netzwerk aufweisen. Das Verfahren weist weiterhin Validieren auf, dass das Transportunternehmen die Bestellung ausgeführt hat, Berechnen eines dem Transportunternehmen zugehörigen Token-Wertes, wobei sich der Token-Wert auf einen CO2-Fußabdruck des Transportunternehmens zum Transportieren der Bestellung bezieht, und Zuweisen des Token-Wertes zu der Adresse.
  • Gemäß einem weiteren hier offenbarten Aspekt wird ein System für nachhaltige Token bereitgestellt. Das System weist einen Hersteller und einen Blockchain-Controller auf. Das System ist so konfiguriert, dass es einen Herstellerprozessor verwendet, um Bestellinformationen zu empfangen, die sich auf eine Bestellung beziehen, für die ein Transportunternehmen verwendet werden muss, wobei die Bestellinformationen eine Adresse in einem Blockchain-Netzwerk aufweisen. Der Herstellerprozessor ist weiterhin so konfiguriert, dass er validiert, dass das Transportunternehmen die Bestellung ausgeführt hat, und einen dem Transportunternehmen zugehörigen Token-Wert berechnet. Der Token-Wert bezieht sich auf einen CO2-Fußabdruck des Transportunternehmens zum Transportieren der Bestellung. Der Herstellerprozessor ist weiterhin so konfiguriert, dass er den Token-Wert der Adresse zuweist. Das System ist so konfiguriert, dass es einen Prozessor eines Blockchain-Controllers verwendet, um eine Bestellanforderung zu initiieren, wobei die Bestellanforderung öffentliche Bestellinformationen und private Bestellinformationen enthält, um eine Adresse in einem Blockchain-Netzwerk zu erzeugen, das Verschlüsseln der Adresse mit einem privaten Schlüssel, Erzeugen eines Hash von Daten umfasst, die die privaten Bestellinformationen und eine Signatur des Hash enthalten. Die Signatur des Hash wird mit dem privaten Schlüssel erzeugt, und der Controller-Prozessor ist so konfiguriert, dass er die Bestellanforderung mit der Adresse, dem Hash und der Signatur an das Transportunternehmen übermittelt und feststellt, dass ein Transportunternehmen die Bestellanforderung erfüllt hat.
  • Darüber hinaus können Ausführungsformen die Form eines zugehörigen Computerprogrammprodukts annehmen, auf das von einem durch einen Computer verwendbaren oder durch einen Computer lesbaren Medium zugegriffen werden kann, das Programmcode zur Verwendung mit oder in Verbindung mit einem Computer oder einem beliebigen Anweisungsausführungssystem bereitstellt. Für die Zwecke dieser Beschreibung kann ein durch einen Computer verwendbares oder durch einen Computer lesbares Medium jede Vorrichtung sein, die einen Mechanismus zum Speichern, Austauschen von Daten, Weiterleiten oder Transportieren des Programms zur Verwendung mit oder in Verbindung mit dem System, der Vorrichtung oder der Einheit zur Anweisungsausführung enthalten kann.
  • Figurenliste
  • Hier werden verschiedene Ausführungsformen mit Bezug auf unterschiedliche Gegenstände beschrieben. Einige Ausführungsformen können insbesondere mit Bezug auf Verfahren beschrieben werden, während andere Ausführungsformen mit Bezug auf Vorrichtungen und Systeme beschrieben werden können. Ein Fachmann entnimmt jedoch aus dem Vorstehenden und der folgenden Beschreibung, dass, sofern nicht anders angegeben, neben jeder Kombination von Merkmalen, die zu einer Art von Gegenständen gehören, auch jede Kombination von Merkmalen als in diesem Dokument offenbart gilt, die sich auf andere Gegenstände beziehen, insbesondere von Merkmalen der Verfahren und Merkmale der Vorrichtungen und Systeme.
  • Die vorstehend definierten Aspekte und weitere hier offenbarte Aspekte ergeben sich aus den Beispielen von einer oder mehreren Ausführungsformen, die nachstehend beschrieben werden, und werden mit Bezug auf die Beispiele des einen oder der mehreren Ausführungsformen erläutert, auf die die Erfindung jedoch nicht beschränkt ist. Verschiedene Ausführungsformen werden nur beispielhaft und unter Bezugnahme auf die folgenden Zeichnungen beschrieben:
    • 1A ist ein Blockschaltbild eines Datenverarbeitungssystems (DVS) gemäß einer oder mehrerer hier offenbarter Ausführungsformen.
    • 1B ist eine bildliche Darstellung, die eine Cloud-Computing-Umgebung gemäß einer hier offenbarten Ausführungsform darstellt.
    • 1C ist eine bildliche Darstellung, die Abstraktionsmodellschichten gemäß einer hier offenbarten Ausführungsform darstellt.
    • 2A ist ein Blockschaubild, das eine beispielhafte Konfiguration einer Blockchain-Architektur gemäß beispielhaften Ausführungsformen veranschaulicht.
    • 2B ist ein Ablaufplan, der einen Blockchain-Transaktionsablauf gemäß beispielhaften Ausführungsformen veranschaulicht.
    • 3A ist ein Blockschaubild, das ein genehmigungspflichtiges Netzwerk gemäß beispielhaften Ausführungsformen veranschaulicht.
    • 3B ist ein Blockschaubild, das ein weiteres genehmigungspflichtiges Netzwerk gemäß beispielhaften Ausführungsformen veranschaulicht.
    • 3C ist ein Blockschaubild, das ein genehmigungsfreies Netzwerk gemäß beispielhaften Ausführungsformen veranschaulicht.
    • 4 ist ein Blockschaubild, das eine grundlegende Blockchain-Sequenz veranschaulicht.
    • 5A ist ein Blockschaubild, das ein beispielhaftes System veranschaulicht, das so konfiguriert ist, dass es eine oder mehrere hier beschriebene Operationen gemäß beispielhaften Ausführungsformen durchführt.
    • 5B ist ein Blockschaubild, das ein weiteres beispielhaftes System veranschaulicht, das so konfiguriert ist, dass es eine oder mehrere hier beschriebene Operationen gemäß beispielhaften Ausführungsformen durchführt.
    • 5C ist ein Blockschaubild, das ein weiteres beispielhaftes System veranschaulicht, das so konfiguriert ist, dass es einen Smart Contract (intelligenter Vertrag) gemäß beispielhaften Ausführungsformen verwendet.
    • 5D ist ein Blockschaubild, das noch ein weiteres beispielhaftes System veranschaulicht, das so konfiguriert ist, dass es eine Blockchain gemäß beispielhaften Ausführungsformen verwendet.
    • 6A ist ein Blockschaubild, das einen Prozess veranschaulicht, bei dem gemäß beispielhaften Ausführungsformen ein neuer Block zu einem Distributed Ledger (verteiltes Hauptbuch) hinzugefügt wird.
    • 6B ist ein Blockschaubild, das den Inhalt eines neuen Datenblocks gemäß beispielhaften Ausführungsformen veranschaulicht.
    • 6C ist ein Blockschaubild, das eine Blockchain für digitalen Inhalt gemäß beispielhaften Ausführungsformen veranschaulicht.
    • 6D ist ein Blockschaubild, dass einen Block veranschaulicht, der gemäß beispielhaften Ausführungsformen die Struktur von Blöcken in der Blockchain darstellen kann.
    • 7A ist ein Blockschaubild, das eine beispielhafte Blockchain veranschaulicht, die gemäß beispielhaften Ausführungsformen Daten zum maschinellen Lernen (künstliche Intelligenz) speichert.
    • 7B ist ein Blockschaubild, das eine beispielhafte quantensichere Blockchain gemäß beispielhaften Ausführungsformen veranschaulicht.
    • 8 ist ein Blockschaltbild, das ein allgemeines Blockschaltbild eines beispielhaften Computersystems veranschaulicht, das zum Implementieren eines oder mehrere der hier beschriebenen Verfahren, Tools und Module sowie der damit verbundenen Funktionen gemäß Ausführungsformen der vorliegenden Offenbarung verwenden kann.
    • 9 ist ein Blockschaubild, das die Hauptkomponenten veranschaulicht, die nachhaltigen Token für Lieferketten gemäß einigen Ausführungsformen zugehörig sind.
    • 10 ist ein Ablaufplan, der die Hauptkomponenten veranschaulicht, die nachhaltigen Token für Lieferketten gemäß einigen Ausführungsformen zugehörig sind.
  • AUSFÜHRLICHE BESCHREIBUNG
  • ÜBERBLICK ÜBER DEN NACHHALTIGEN TOKEN
  • Um eine Verringerung des CO2-Fußabdrucks in Verbindung mit der Beförderung von Waren in einem Lieferkettennetz zu fördern, kann es von Vorteil sein, Unternehmen zu belohnen, die CO2-Emissionen direkt verringern und/oder die Dienste derjenigen in Anspruch nehmen, die zum Erreichen dieses Ziels beitragen können.
  • Hier werden ein System und ein damit verbundenes Verfahren offenbart, die ein Blockchain-Ledger nutzen können, um nachhaltige Token als Belohnung zum Verbessern des CO2-Fußabdrucks gegenüber Vergleichswerten bereitzustellen. Die nachhaltigen Token können in andere Formen von sowohl virtuellem als auch realem Geld umgetauscht werden. Die Transaktionen ermöglichen es, dass private Informationen, die bei der Transaktion verwendet werden können, privat bleiben.
  • Folgende Abkürzungen können nachstehend verwendet werden:
  • API
    Anwendungsprogrammierschnittstelle
    ARM
    Erweiterte RISC-Maschine
    CD-ROM
    Compact Disc ROM
    CMS
    Content-Management-System
    CoD
    Capacity on Demand
    CPU
    Zentraleinheit
    CUoD
    Capacity Upgrade on Demand
    DVS
    Datenverarbeitungssystem
    DVD
    Digital Versatile Disk
    EPROM
    Löschbarer programmierbarer Nur-Lese-Speicher
    FPGA
    Vor Ort programmierbare Gatter-Anordnungen
    HV
    Hohe Verfügbarkeit
    laaS
    Infrastructure as a Service
    E/A
    Eingabe/Ausgabe
    IPL
    Einleitendes Programmladen
    IDA
    Internetdienstanbieter
    ISA
    Instruction-Set-Architecture
    LAN
    Lokales Netzwerk
    LPAR
    Logische Partition
    PaaS
    Platform as a Service
    PDA
    Persönlicher digitaler Assistent
    PLA
    Programmierbare Logikanordnungen
    RAM
    Direktzugriffsspeicher
    RISC
    Reduced Instruction-Set Computer
    CD-ROM
    Nur-Lese-Speicher
    SaaS
    Software as a Service
    SLA
    Dienstgütevereinbarung
    SRAM
    Statischer Direktzugriffsspeicher
    WAN
    Weitbereichsnetzwerk
  • DATENVERARBEITUNGSSYSTEM ALLGEMEIN
  • 1A ist ein Blockschaltbild eines beispielhaften DVS gemäß einer oder mehrerer Ausführungsformen. In diesem veranschaulichenden Beispiel kann das DVS 10 den Datenübertragungsbus 12 umfassen, der Datenübertragungen zwischen einer Prozessoreinheit 14, einem Arbeitsspeicher 16, einem permanenten Speicher 18, einer Datenübertragungseinheit 20, einer Eingabe/Ausgabe(E/A)-Einheit 22 und einer Anzeige 24 bereitstellt.
  • Die Prozessoreinheit 14 dient zum Ausführen von Anweisungen für Software, die in den Arbeitsspeicher 16 geladen werden können. Bei der Prozessoreinheit 14 kann es sich je nach besonderer Implementierung um eine Reihe von Prozessoren, einen Mehrkernprozessor oder eine andere Art von Prozessor handeln. Eine Reihe, wie sie hier in Bezug auf einen Gegenstand verwendet wird, bezeichnet einen oder mehrere Gegenstände. Die Prozessoreinheit 14 kann des Weiteren mit einer Reihe von heterogenen Prozessorsystemen implementiert werden, bei denen ein Hauptprozessor mit sekundären Prozessoren auf einem einzelnen Chip vorhanden ist. In einem weiteren veranschaulichenden Beispiel kann es sich bei der Prozessoreinheit 14 um ein symmetrisches Mehrprozessorsystem mit mehreren Prozessoren desselben Typs handeln.
  • Der Arbeitsspeicher 16 und der permanente Speicher 18 sind Beispiele für Speichereinheiten 26. Bei einer Speichereinheit kann es sich um eine beliebige Hardware handeln, die in der Lage ist, Informationen zu speichern, z.B., ohne darauf beschränkt zu sein, Daten, Programmcode in funktionaler Form und/oder andere geeignete Informationen entweder auf flüchtiger und/oder dauerhafter Grundlage. Bei dem Arbeitsspeicher 16 kann es sich in diesen Beispielen z.B. um einen Direktzugriffsspeicher oder eine andere geeignete flüchtige oder nichtflüchtige Speichereinheit handeln. Der permanente Speicher 18 kann je nach besonderer Implementierung verschiedene Formen aufweisen.
  • Beispielsweise kann der permanente Speicher 18 eine oder mehrere Komponenten oder Einheiten enthalten. Der permanente Speicher 18 kann z.B. eine Festplatte, ein Flash-Speicher, eine wiederbeschreibbare optische Platte, ein wiederbeschreibbares Magnetband oder eine beliebige Kombination daraus sein. Die vom permanenten Speicher 18 verwendeten Medien können auch wechselbar sein. Für den permanenten Speicher 18 kann beispielsweise eine wechselbare Festplatte verwendet werden.
  • Die Datenübertragungseinheit 20 kann in diesen Beispielen Datenübertragungen mit anderen DVSs oder Einheiten bereitstellen. In diesen Beispielen handelt es sich bei der Datenübertragungseinheit 20 um eine Netzwerkschnittstellenkarte. Die Datenübertragungseinheit 20 kann Datenübertragungen über physische und drahtlose Datenübertragungsverbindungen bereitstellen und zwar entweder über eine von beiden oder beide.
  • Die Eingabe-/Ausgabeeinheit 22 kann die Eingabe und Ausgabe von Daten mit anderen Einheiten ermöglichen, die mit dem DVS 10 verbunden werden können. Beispielsweise kann die Eingabe/Ausgabe-Einheit 22 eine Verbindung für Benutzereingaben über eine Tastatur, eine Maus und/oder eine andere geeignete Eingabeeinheit bereitstellen. Weiterhin kann die Eingabe-/Ausgabeeinheit 22 eine Ausgabe an einen Drucker senden. Die Anzeige 24 kann einen Mechanismus bereitstellen, um einem Benutzer Informationen anzuzeigen.
  • Anweisungen für das Betriebssystem, Anwendungen und/oder Programme können sich in den Speichereinheiten 26 befinden, die über den Datenübertragungsbus 12 mit der Prozessoreinheit 14 Daten austauschen. In diesen veranschaulichenden Beispielen liegen die Anweisungen in einer funktionalen Form in dem permanenten Speicher 18 vor. Diese Anweisungen können zum Ausführen durch die Prozessoreinheit 14 in den Arbeitsspeicher 16 geladen werden. Die Prozesse der verschiedenen Ausführungsformen können von der Prozessoreinheit 14 mithilfe von durch einen Computer implementierten Anweisungen durchgeführt werden, die sich in einem Speicher, z.B. dem Arbeitsspeicher 16, befinden können. Diese Programmanweisungen werden als Programmcode 38 (nachstehend beschrieben), durch einen Computer verwendbarer Programmcode oder durch einen Computer lesbarer Programmcode bezeichnet, der von einem Prozessor in der Prozessoreinheit 14 gelesen und ausgeführt werden kann. Der Programmcode kann in den verschiedenen Ausführungsformen auf verschiedenen physischen, durch einen Computer lesbaren Speichereinheiten, z.B. dem Arbeitsspeicher 16 oder dem permanenten Speicher 18, enthalten sein.
  • Das DVS 10 kann weiterhin eine Schnittstelle für ein Netzwerk 29 aufweisen. Die Schnittstelle kann Hardware, Treiber, Software und Ähnliches enthalten, um die Datenübertragung über drahtgebundene und drahtlose Netzwerke 29 zu ermöglichen, und kann eine beliebige Reihe von Datenübertragungsprotokollen implementieren, darunter solche, die sich beispielsweise auf verschiedenen Ebenen des OSI-Modells (Open Systems Interconnection) mit sieben Schichten befinden.
  • 1A veranschaulicht weiterhin ein Computerprogrammprodukt 30, das den Programmcode 38 enthalten kann. Der Programmcode 38 kann sich in einer funktionalen Form auf durch einen Computer lesbaren Medien 32 befinden, der selektiv entfernt werden und zum Ausführen durch den Prozessor 14 in das DVS 10 geladen oder dorthin übertragen werden kann. Der Programmcode 38 und die durch einen Computer lesbaren Medien 32 bilden in diesen Beispielen ein Computerprogrammprodukt 30. In einem Beispiel kann es sich bei den durch einen Computer lesbaren Medien 32 um durch einen Computer lesbare Speichermedien 34 oder um durch einen Computer lesbare Signalmedien 36 handeln. Die durch einen Computer lesbaren Speichermedien 34 können z.B. eine optische oder magnetische Platte umfassen, die in ein Laufwerk oder eine andere Einheit, die Teil des permanenten Speichers 18 ist, zum Übertragen auf eine Speichereinheit, z.B. eine Festplatte, die Teil des permanenten Speichers 18 ist, eingelegt oder eingesetzt wird. Die durch einen Computer lesbaren Speichermedien 34 können auch die Form eines permanenten Speichers haben, z.B. einer mit dem DSV 10 verbundenen Festplatte, einem damit verbundenen Thumb-Drive oder Flash-Speicher. In einigen Fällen sind die durch einen Computer lesbaren Speichermedien 34 möglicherweise nicht aus dem DVS 10 entfernbar.
  • Alternativ kann der Programmcode 38 mithilfe der durch einen Computer lesbaren Signalmedien 36 in das DVS 10 übertragen werden. Die durch einen Computer lesbaren Signalmedien 36 können z.B. ein weitergegebenes Datensignal sein, das den Programmcode 38 enthält. Zum Beispiel können die durch einen Computer lesbaren Signalmedien 36 ein elektromagnetisches Signal, ein Lichtsignal und/oder ein beliebiger anderer geeigneter Signaltyp sein. Diese Signale können über Datenübertragungsverbindungen übertragen werden, z.B. über drahtlose Datenübertragungsverbindungen, ein Lichtwellenleiterkabel, ein Koaxialkabel, einen Draht und/oder eine beliebige andere geeignete Art von Datenübertragungsverbindung. Mit anderen Worten, die Datenübertragungsverbindung und/oder die Verbindung kann in den veranschaulichenden Beispielen physisch oder drahtlos sein.
  • In einigen veranschaulichenden Ausführungsformen kann der Programmcode 38 über ein Netzwerk von einer anderen Einheit oder einem anderen DVS über die durch einen Computer lesbaren Signalmedien 36 zum Verwenden innerhalb des DVS 10 in den permanenten Speicher 18 heruntergeladen werden. Zum Beispiel kann Programmcode, der auf einem durch einen Computer lesbaren Speichermedium in einem Server-DSV gespeichert ist, über ein Netzwerk vom Server auf das DVS 10 heruntergeladen werden. Das DVS, das den Programmcode 38 bereitstellt, kann ein Server-Computer, ein Client-Computer oder eine andere Einheit sein, die in der Lage ist, den Programmcode 38 zu speichern und zu übertragen.
  • Die verschiedenen Komponenten, die für das DVS 10 veranschaulicht werden, sollen keine Architekturbeschränkungen der Art und Weise bereitstellen, wie verschiedene Ausführungsformen implementiert werden können. Die verschiedenen veranschaulichenden Ausführungsformen können in einem DVS implementiert werden, das Komponenten zusätzlich zu den oder anstelle der für das DVS 10 dargestellten Komponenten enthält.
  • CLOUD-COMPUTING ALLGEMEIN
  • Die vorliegende Offenbarung enthält zwar eine ausführliche Beschreibung von Cloud-Computing, es versteht sich jedoch, dass die Umsetzung der hier dargelegten Lehren nicht auf eine Cloud-Computing-Umgebung beschränkt ist. Stattdessen können Ausführungsformen der vorliegenden Erfindung gemeinsam mit beliebigen Arten von jetzt bekannter oder später entwickelter Datenverarbeitungsumgebung umgesetzt werden.
  • Cloud-Computing ist ein Modell zum Liefern eines Dienstes, der einen problemlosen, bedarfsorientierten Netzwerkzugriff auf einen gemeinsamen Pool von konfigurierbaren Datenverarbeitungsressourcen (z.B. Netzwerke, Netzwerkbandbreite, Server, Verarbeitung, Speicher, Anwendungen, virtuelle Maschinen und Dienste) ermöglicht, die mit minimalem Verwaltungsaufwand bzw. minimaler Interaktion mit einem Anbieter des Dienstes schnell bereitgestellt und freigegeben werden können. Dieses Cloud-Modell kann mindestens fünf Eigenschaften, mindestens drei Dienstmodelle und mindestens vier Implementierungsmodelle enthalten.
  • Bei den Eigenschaften handelt es sich um die Folgenden
  • On-Demand Self-Service (bedarfsorientierte Selbstbedienung): Ein Cloud-Nutzer kann einseitig automatisch nach Bedarf Datenverarbeitungsfunktionen wie Serverzeit und Netzwerkspeicher bereitstellen, ohne dass eine menschliche Interaktion mit dem Anbieter der Dienste erforderlich ist.
  • Broad Network Access (breiter Netzzugriff): Über ein Netzwerk sind Funktionen verfügbar, auf die durch Standardmechanismen zugegriffen wird, die die Verwendung durch heterogene schlanke oder leistungsintensive Client-Plattformen unterstützen (z.B. Mobiltelefone, Laptops und PDAs).
  • Ressource Pooling (Ressourcen-Bündelung): Die Datenverarbeitungsressourcen des Anbieters werden gebündelt, um mehreren Nutzern unter Verwendung eines Mehrmietermodells zu dienen, wobei verschiedene physische und virtuelle Ressourcen dynamisch nach Bedarf zugewiesen und neu zugewiesen werden. Es gibt eine gefühlte Standortunabhängigkeit, da der Nutzer allgemein keine Kontrolle bzw. Kenntnis über den genauen Standort der bereitgestellten Ressourcen hat, aber in der Lage sein kann, einen Standort auf einer höheren Abstraktionsebene festzulegen (z.B. Land, Staat oder Rechenzentrum).
  • Rapid Elasticity (schnelle Anpassungsfähigkeit): Funktionen können für eine schnelle horizontale Skalierung (scale out) schnell und elastisch bereitgestellt werden, in einigen Fällen auch automatisch, und für ein schnelles Scale-in schnell freigegeben werden. Für den Nutzer erscheinen die für das Bereitstellen verfügbaren Funktionen häufig unbegrenzt und sie können jederzeit in jeder beliebigen Menge gekauft werden.
  • Measured Service (messbarer Dienst): Cloud-Systeme steuern und optimieren die Verwendung von Ressourcen automatisch, indem sie eine Messfunktion auf einer gewissen Abstraktionsebene nutzen, die für die Art von Dienst geeignet ist (z.B. Speicher, Verarbeitung, Bandbreite sowie aktive Benutzerkonten). Die Inanspruchnahme von Ressourcen kann überwacht, gesteuert und gemeldet werden, wodurch sowohl für den Anbieter als auch für den Nutzer des verwendeten Dienstes Transparenz bereitgestellt wird.
  • Es gibt folgende Dienstmodelle
  • Software as a Service (Saas) (Software als Dienst): Die dem Nutzer bereitgestellte Funktion besteht darin, die in einer Cloud-Infrastruktur laufenden Anwendungen des Anbieters zu verwenden. Die Anwendungen sind über eine schlanke Client-Schnittstelle wie einen Web-Browser (z.B. auf dem Web beruhende eMail) von verschiedenen Client-Einheiten aus zugänglich. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, darunter das Netzwerk, Server, Betriebssysteme, Speicher bzw. sogar einzelne Anwendungsfunktionen, mit der möglichen Ausnahme von eingeschränkten benutzerspezifischen Einstellungen der Anwendungskonfiguration.
  • Platform as a Service (Paas) (Plattform als Dienst): Die dem Nutzer bereitgestellte Funktion besteht darin, durch einen Nutzer erstellte bzw. erhaltene Anwendungen, die unter Verwendung von durch den Anbieter unterstützten Programmiersprachen und Werkzeugen erstellt wurden, in der Cloud-Infrastruktur einzusetzen. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, darunter Netzwerke, Server, Betriebssysteme bzw. Speicher, hat aber die Kontrolle über die eingesetzten Anwendungen und möglicherweise über Konfigurationen der Hosting-Umgebung der Anwendung.
  • Infrastructure as a Service (laas) (Infrastruktur als Dienst): Die dem Nutzer bereitgestellte Funktion besteht darin, Verarbeiten, Speicher, Netzwerke und andere grundlegende Datenverarbeitungsressourcen bereitzustellen, wobei der Nutzer in der Lage ist, beliebige Software einzusetzen und auszuführen, zu der Betriebssysteme und Anwendungen gehören können. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, hat aber die Kontrolle über Betriebssysteme, Speicher, eingesetzte Anwendungen und möglicherweise eine eingeschränkte Kontrolle über ausgewählte Netzwerkkomponenten (z.B. Host-Firewalls).
  • Es gibt folgende Einsatzmodelle
  • Private Cloud: Die Cloud-Infrastruktur wird einzig und allein für eine Organisation betrieben. Sie kann durch die Organisation oder einen Dritten verwaltet werden und kann sich in den eigenen Räumen oder in fremden Räumen befinden.
  • Community Cloud (Benutzergemeinschafts-Cloud): Die Cloud-Infrastruktur wird von mehreren Organisationen gemeinsam genutzt und unterstützt eine spezielle Benutzergemeinschaft, die gemeinsame Anliegen hat (z.B. Aufgabe, Sicherheitsanforderungen, Richtlinien sowie Überlegungen bezüglich der Einhaltung von Vorschriften). Sie kann durch die Organisationen oder einen Dritten verwaltet werden und kann sich in den eigenen Räumen oder fremden Räumen befinden.
  • Public Cloud (öffentliche Cloud): Die Cloud-Infrastruktur wird der allgemeinen Öffentlichkeit oder einer großen Branchengruppe zur Verfügung gestellt und gehört einer Organisation, die Cloud-Dienste verkauft.
  • Hybrid Cloud (hybride Cloud): Die Cloud-Infrastruktur besteht aus zwei oder mehr Clouds (privat, Benutzergemeinschaft oder öffentlich), die zwar einzelne Entitäten bleiben, aber durch eine standardisierte oder herstellereigene Technologie miteinander verbunden sind, die eine Übertragbarkeit von Daten und Anwendungen ermöglicht (z.B. Cloud-Zielgruppenverteilung für den Lastenausgleich zwischen Clouds).
  • Eine Cloud-Computing-Umgebung ist dienstorientiert und schwerpunktmäßig auf Statusunabhängigkeit, geringe Kopplung, Modularität und semantische Interoperabilität ausgerichtet. Der Kern der Cloud-Computing ist eine Infrastruktur, die ein Netzwerk aus miteinander verbundenen Knoten enthält.
  • Mit Bezug nunmehr auf 1B ist eine veranschaulichende Cloud-Computing-Umgebung 52 dargestellt. Wie gezeigt, enthält die Cloud-Computing-Umgebung 52 einen oder mehrere Cloud-Computing-Knoten 50, mit denen von Cloud-Nutzern verwendete lokale Datenverarbeitungseinheiten wie der persönliche digitale Assistent (PDA) oder das Mobiltelefon 54A, der Desktop-Computer 54B, der Laptop-Computer 54C und/oder das Kraftfahrzeug-Computersystem 54N Daten austauschen können. Die Knoten 50 können miteinander Daten austauschen. Sie können physisch oder virtuell in einem oder mehreren Netzwerken wie private, benutzergemeinschaftliche, öffentliche oder hybride Clouds wie oben beschrieben oder in einer Kombination davon in Gruppen angeordnet sein (nicht dargestellt). Dies ermöglicht es der Cloud-Computing-Umgebung 52, Infrastruktur, Plattformen und/oder Software als Dienste anzubieten, für die ein Cloud-Nutzer keine Ressourcen auf einer lokalen Datenverarbeitungseinheit vorhalten muss. Es versteht sich, dass die in 1B gezeigten Arten von Datenverarbeitungseinheiten 54A bis N nur veranschaulichend sein sollen und die Datenverarbeitungsknoten 50 und die Cloud-Computing-Umgebung 52 mit jeder Art von computergestützter Einheit über jede Art von Netzwerk und/oder netzwerkadressierbarer Verbindung Daten austauschen kann (z.B. über einen Web-Browser).
  • Mit Bezug nunmehr auf 1C wird ein Satz funktionaler Abstraktionsschichten gezeigt, die von der Cloud-Computing-Umgebung 52 (1B) bereitgestellt werden. Es versteht sich im Voraus, dass die in 1C dargestellten Komponenten, Schichten und Funktionen nur veranschaulichend sein sollen und Ausführungsformen der Erfindung nicht darauf beschränkt sind. Wie dargestellt, werden die folgenden Schichten und entsprechenden Funktionen bereitgestellt:
  • Die Hardware- und Software-Schicht 60 enthält Hardware- und Software-Komponenten. Zu Beispielen für Hardware-Komponenten gehören: die Großrechner 61; die Server 62 auf Grundlage der RISC-Architektur (RISC = Reduced Instruction Set Computer, Computer mit reduziertem Befehlssatz), die Server 63; die Blade-Server 64; die Speichereinheiten 65; sowie die Netzwerke und Netzwerkkomponenten 66. In einigen Ausführungsformen enthalten die Software-Komponenten die Netzwerkanwendungs-Serversoftware 67 und die Datenbank-Software 68.
  • Die Virtualisierungsschicht 70 stellt eine Abstraktionsschicht bereit, aus der die folgenden Beispiele für virtuelle Entitäten bereitgestellt werden können: virtuelle Server 71; virtuelle Speicher 72; virtuelle Netzwerke 73; darunter virtuelle private Netzwerke; virtuelle Anwendungen und Betriebssysteme 74; und virtuelle Clients 75.
  • In einem Beispiel kann die Verwaltungsschicht 80 die nachfolgend beschriebenen Funktionen bereitstellen. Die Ressourcenbereitstellung 81 ermöglicht eine dynamische Bereitstellung von Datenverarbeitungsressourcen und anderen Ressourcen, die verwendet werden, um Aufgaben in der Cloud-Computing-Umgebung durchzuführen. Messen und Preisfindung 82 stellen Kostenverfolgung beim Verwenden von Ressourcen in der Cloud-Computing-Umgebung sowie Abrechnung oder Rechnungsstellung für die Inanspruchnahme dieser Ressourcen bereit. In einem Beispiel können diese Ressourcen Lizenzen für Anwendungssoftware umfassen. Die Sicherheitsfunktion stellt eine Identitätsprüfung für Cloud-Nutzer und Aufgaben sowie Schutz für Daten und andere Ressourcen bereit. Ein Benutzerportal 83 stellt Nutzern und Systemadministratoren den Zugang zur Cloud-Computing-Umgebung bereit. Die Verwaltung der Dienstgüte 84 stellt Zuordnung und Verwaltung von Cloud-Computing-Ressourcen bereit, sodass die erforderliche Dienstgüte erreicht wird. Die Planung und Erfüllung der Dienstgütevereinbarung (Service Level Agreement, SLA) 85 stellt eine Vorabeinteilung und eine Beschaffung von Cloud-Computing-Ressourcen bereit, deren künftiger Bedarf auf der Grundlage einer Dienstgütevereinbarung vorausgesehen wird.
  • Die Arbeitslastschicht 90 stellt Beispiele für Funktionalitäten bereit, für die die Cloud-Computing-Umgebung verwendet werden kann. Zu Beispielen für Arbeitslasten und Funktionen, die von dieser Schicht bereitgestellt werden können, gehören: Abbildung und Navigation 91; Software-Entwicklung und Lebenszyklusverwaltung 92; Bereitstellung von Ausbildung in virtuellen Klassenzimmern 93; Datenanalyseverarbeitung 94; Transaktionsverarbeitung 95; und mobiler Desktop 96.
  • Jeder der Knoten 50 in der Datenverarbeitungsumgebung 52 sowie die Datenverarbeitungseinheiten 54A bis N können ein DVS 10 sein.
  • GRUNDLEGENDE EINZELHEITEN ZUR BLOCKCHAIN
  • Die unmittelbaren Komponenten, die in den Figuren hier allgemein beschrieben und veranschaulicht sind, können in vielen verschiedenen Konfigurationen angeordnet und ausgeführt sein. Die folgende ausführliche Beschreibung der Ausführungsformen eines Verfahrens, einer Vorrichtung, eines nichtflüchtigen, durch einen Computer lesbaren Mediums und/oder eines Systems, wie in den beigefügten Figuren dargestellt, soll daher den Anwendungsbereich der beanspruchten Anmeldung nicht einschränken, sondern stellt lediglich ausgewählte Ausführungsformen dar.
  • Die in dieser Beschreibung dargelegten unmittelbaren Merkmale, Strukturen oder Eigenschaften können in jeder geeigneten Weise in einer oder mehreren Ausführungsformen kombiniert oder entfernt werden. Die Ausdrücke „beispielhafte Ausführungsformen“, „einige Ausführungsformen“ oder andere ähnliche Begriffe in dieser Beschreibung beziehen sich darauf, dass ein bestimmtes Merkmal, eine bestimmte Struktur oder eine bestimmte Eigenschaft, das/die in Verbindung mit der Ausführungsform beschrieben wird, in mindestens einer Ausführungsform enthalten sein kann. Daher beziehen sich die Ausdrücke „beispielhafte Ausführungsformen“, „in einigen Ausführungsformen“, „in anderen Ausführungsformen“ oder ähnliche Begriffe in dieser Beschreibung nicht unbedingt alle auf dieselbe Gruppe von Ausführungsformen, und die beschriebenen Merkmale, Strukturen oder Eigenschaften können in geeigneter Weise in einer oder mehreren Ausführungsformen kombiniert oder entfernt werden. Weiterhin kann in den Darstellungen jede Verbindung zwischen Elementen eine einseitige und/oder zweiseitige Datenübertragung ermöglichen, auch wenn die dargestellte Verbindung ein einseitiger oder zweiseitiger Pfeil ist. Ferner kann jede in den Zeichnungen dargestellte Einheit eine andere Einheit sein. Wenn zum Beispiel eine mobile Einheit gezeigt wird, die Informationen sendet, könnte auch eine drahtgebundene Einheit verwendet werden, um die Informationen zu senden.
  • Auch wenn in der Beschreibung der Ausführungsformen der Begriff „Nachricht“ verwendet wird, kann die Anwendung auf viele Arten von Netzwerken und Daten angewendet werden. Bestimmte Arten von Verbindungen, Nachrichten und Signalübertragungen können darüber hinaus zwar in beispielhaften Ausführungsformen dargestellt werden, die Anwendung ist jedoch nicht auf eine bestimmte Art von Verbindung, Nachricht und Signalübertragung beschränkt.
  • Beispielhafte Ausführungsformen stellen Verfahren, Systeme, Komponenten, nichtflüchtige, durch einen Computer lesbare Medien, Einheiten und/oder Netzwerke bereit, die nachhaltige Token für eine Lieferkette mit datenschutzerhaltendem Protokoll in Blockchain-Netzwerken bereitstellen.
  • In einer Ausführungsform verwendet die Anwendung eine dezentrale Datenbank (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änderliche „Append-only“-Datenstruktur (append-only = nur hinzufügen), die einem Distributed Ledger ähnelt und in der Lage ist, Datensätze zwischen gegenseitig nichtvertrauenswürdigen Parteien zu verwalten. Die nichtvertrauenswürdigen Parteien werden hier als Peers oder Peer-Knoten bezeichnet. Jeder Peer verwaltet eine Kopie der Datenbanksätze, und kein Peer alleine kann die Datenbanksätze ändern, ohne dass darüber ein Konsens zwischen den verteilten Peers erzielt wird. Die Peers können beispielsweise ein Konsensprotokoll ausführen, um Blockchain-Speichertransaktionen zu validieren, die Speichertransaktionen in Blöcke zu gruppieren und eine Hash-Kette über die Blöcke zu erzeugen. Dieser Prozess führt zur Bildung des Ledger, indem die Speichertransaktionen so in eine Reihenfolge gebracht werden, wie es für die Konsistenz erforderlich ist. In verschiedenen Ausführungsformen kann eine genehmigungspflichtige und/oder eine genehmigungsfreie Blockchain verwendet werden. Bei einer öffentlichen oder genehmigungsfreien Blockchain kann jeder teilnehmen, ohne dass eine bestimmte Identität erforderlich ist. Öffentliche Blockchains können native Kryptowährungen umfassen und verwenden einen Konsens auf der Grundlage verschiedener Protokolle wie z.B. Proof-of-Work (PoW). Andererseits stellt eine genehmigungspflichtige Blockchain-Datenbank sichere Interaktionen zwischen einer Gruppe von Entitäten bereit, die ein gemeinsames Ziel verfolgen, sich jedoch gegenseitig nicht vollständig vertrauen, z.B. Unternehmen, die Geldmittel, Waren, Informationen und Ähnliches austauschen.
  • Die vorliegende Anwendung kann eine Blockchain verwenden, die eine beliebige, programmierbare Logik ausführt, die auf ein dezentrales Schema zur Datenspeicherung zugeschnitten ist und als „Smart Contracts“ der „Chaincodes“ bezeichnet wird. In einigen Fällen können spezielle Chaincodes für Verwaltungsfunktionen und Parameter zur Verfügung stehen, die als System-Chaincode bezeichnet werden. Die Anwendung kann weiterhin Smart Contracts verwenden, bei denen es sich um vertrauenswürdige verteilte Anwendungen handelt, die fälschungssichere Eigenschaften der Blockchain-Datenbank und eine zugrunde liegende Vereinbarung zwischen den Knoten nutzen, die als Endorsement (Bestätigung) oder Endorsement Policy (Bestätigungsrichtlinie) bezeichnet wird. Blockchain-Transaktionen, die dieser Anwendung zugehörig sind, können „bestätigt“ werden, bevor sie in der Blockchain festgeschrieben (committed) werden, während nichtbestätigte Transaktionen ignoriert werden. Eine Endorsement Policy ermöglicht einem Chaincode, Endorser (Bestätiger) für eine Transaktion in Form eines Satzes von Peer-Knoten anzugeben, die für die Bestätigung notwendig sind. Wenn ein Client die Transaktion an die in der Endorsement Policy angegebenen Peers sendet, wird die Transaktion ausgeführt, um die Transaktion zu validieren. Nach dem Validieren beginnt eine Sortierphase für die Transaktionen, in der ein Konsensprotokoll verwendet wird, um eine geordnete Folge von bestätigten Transaktionen zu erstellen, die in Blöcken gruppiert sind.
  • Die vorliegende Anwendung kann Knoten verwenden, bei denen es sich um die Datenübertragungsentitäten des Blockchain-Systems handelt. Ein „Knoten“ kann eine logische Funktion in dem Sinne durchführen, dass mehrere Knoten unterschiedlichen Typs auf demselben physischen Server laufen können. Knoten werden in Vertrauensbereichen gruppiert und sind logischen Entitäten zugehörig, die sie auf verschiedene Weise steuern. Die Knoten können verschiedene Typen umfassen, z.B. einen Client- oder sendenden Client-Knoten, der einen Transaktionsaufruf an einen Endorser (z.B. einen Peer) sendet und Transaktionsvorschläge an einen Sortierdienst (z.B. einen Sortierknoten (ordering node)) übermittelt. Ein anderer Typ von Knoten ist ein Peer-Knoten, der vom Client gesendete Transaktionen empfangen, die Transaktionen festschreiben und einen Zustand und eine Kopie des Ledger der Blockchain-Transaktionen verwalten kann. Peers können auch die Rolle eines Endorser übernehmen, was jedoch nicht zwingend erforderlich ist. Ein Sortierdienstknoten oder Sortierer (orderer) ist ein Knoten, der den Datenübertragungsdienst für alle Knoten durchführt und eine Zustellungsgarantie implementiert, z.B. eine Übertragung an alle Peer-Knoten im System, wenn Transaktionen festgeschrieben werden und ein aktueller Zustand (World State) der Blockchain geändert wird, was ein anderer Name für die anfängliche Blockchain-Transaktion ist, die normalerweise Steuerungs- und Einrichtungsinformationen umfasst.
  • Die vorliegende Anwendung kann ein Ledger verwenden, bei dem es sich um eine sequenzierte, fälschungssichere Aufzeichnung aller Zustandswechsel einer Blockchain handelt. Zustandswechsel können sich aus Chaincode-Aufrufen (d.h. Transaktionen) ergeben, die von beteiligten Parteien (z.B. Client-Knoten, Sortierknoten, Endorser-Knoten, Peer-Knoten usw.) gesendet werden. Jede teilnehmende Partei (z.B. ein Peer-Knoten) kann eine Kopie des Ledger unterhalten. Eine Transaktion kann dazu führen, dass ein Satz von Asset-Schlüssel-Wert-Paaren als ein oder mehrere Operanden im Ledger festgeschrieben werden, z.B. Erzeugen, Aktualisieren, Löschen und Ähnliches. Das Ledger umfasst eine Blockchain (auch als Chain bezeichnet), in der ein unveränderlicher, sequenzierter Datensatz in Blöcken gespeichert wird. Das Ledger umfasst auch eine Zustandsdatenbank, in der ein aktueller Zustand der Blockchain festgehalten wird.
  • Die vorliegende Anwendung kann eine Chain verwenden, bei der es sich um ein Transaktionsprotokoll handelt, das als Hash-verknüpfte Blöcke strukturiert ist, wobei jeder Block eine Sequenz von N Transaktionen enthält, wobei N gleich oder größer als eins ist. Der Blockkopf umfasst einen Hash der Transaktionen des Blocks sowie einen Hash des Kopfes des vorherigen Blocks. Auf diese Weise können alle Transaktionen im Ledger sequenziert und kryptografisch miteinander verknüpft werden. Es ist daher nicht möglich, die Ledger-Daten zu manipulieren, ohne die Hash-Verknüpfungen zu beschädigen. Ein Hash eines zuletzt hinzugefügten Blockchain-Blocks stellt jede Transaktion in der Chain dar, die vor ihm stattgefunden hat, wodurch sichergestellt werden kann, dass sich alle Peer-Knoten in einem einheitlichen und vertrauenswürdigen Zustand befinden. Die Chain kann in einem Peer-Knoten-Dateisystem gespeichert werden (d.h. lokal, in einem angeschlossenen Speicher, in der Cloud usw.), wodurch der Append-only-Charakter der Arbeitslast der Blockchain wirksam unterstützt wird.
  • Der aktuelle Zustand des unveränderlichen Ledger stellt die neuesten Werte für alle Schlüssel dar, die im Transaktionsprotokoll der Chain enthalten sind. Da der aktuelle Zustand die neuesten Schlüsselwerte darstellt, die einem Kanal bekannt sind, wird er manchmal auch als „World State“ bezeichnet. Chaincode-Aufrufe führen mit den Daten des aktuellen Zustands des Ledger Transaktionen aus. Damit diese Chaincode-Interaktionen effizient sind, können die aktuellen Werte der Schlüssel in einer Zustandsdatenbank gespeichert werden. Die Zustandsdatenbank kann einfach eine indizierte Ansicht des Transaktionsprotokolls der Chain sein, daher kann sie jederzeit anhand der Chain neu erzeugt werden. Die Zustandsdatenbank kann automatisch wiederhergestellt (oder bei Bedarf erzeugt) werden, wenn der Peer-Knoten gestartet wird und bevor Transaktionen angenommen werden.
  • Zu den hier beschriebenen und dargestellten Vorteilen und Sofortlösungen gehören ein Verfahren und System für nachhaltige Token für eine Lieferkette mit datenschutzerhaltendem Protokoll in Blockchain-Netzwerken. Die beispielhaften Ausführungsformen lösen Zeit- und Vertrauenswürdigkeitsprobleme, indem sie die Merkmale einer Datenbank wie Unveränderlichkeit, digitale Signaturen und einzige Wissensressource erweitern. Die beispielhaften Ausführungsformen stellen eine Lösung für nachhaltige Token für eine Lieferkette mit datenschutzerhaltendem Protokoll in Blockchain-Netzwerken in Netzwerken auf der Grundlage einer Blockchain bereit. Die Blockchain-Netzwerke können je nach Art des Assets und der Regeln, die die Assets auf der Grundlage der Smart Contracts bestimmen, homogen sein.
  • Eine Blockchain unterscheidet sich von einer herkömmlichen Datenbank dadurch, dass eine Blockchain kein zentraler Speicher ist, sondern ein dezentraler, unveränderlicher und sicherer Speicher, bei dem sich die Knoten an den Änderungen der Datensätze im Speicher beteiligen müssen. Zu einigen Eigenschaften, die charakteristisch für eine Blockchain sind und die zum Implementieren der Blockchain beitragen, gehören, ohne auf diese beschränkt zu sein, ein unveränderliches Ledger, Smart Contracts, Sicherheit, Datenschutz, Dezentralisierung, Konsens, Bestätigung, Zugänglichkeit usw., die hier weiter beschrieben werden. Gemäß verschiedenen Aspekten wird das System für nachhaltige Token für eine Lieferkette mit datenschutzerhaltendem Protokoll in Blockchain-Netzwerken aufgrund der unveränderlichen Verantwortlichkeit, der Sicherheit, des Datenschutzes, der zulässigen Dezentralisierung, der Verfügbarkeit von Smart Contracts, Bestätigungen und der Zugänglichkeit implementiert, die für die Blockchain charakteristisch und spezifisch sind. Die Daten des Blockchain-Ledger sind insbesondere unveränderlich und diese Tatsache stellt ein effizientes Verfahren für nachhaltige Token für eine Lieferkette mit datenschutzerhaltendem Protokoll in Blockchain-Netzwerken bereit. Die Verschlüsselung in der Blockchain stellt darüber hinaus Sicherheit bereit und sorgt für Vertrauenswürdigkeit. Der Smart Contract verwaltet den Zustand des Assets, um den Lebenszyklus zu beenden. Bei den beispielhaften Blockchains handelt es sich um genehmigungspflichtige, dezentrale Blockchains. Auf diese Weise kann jeder Endnutzer seine eigene Kopie des Ledger haben, auf die er zugreifen kann. In das Blockchain-Netzwerk können mehrere Organisationen (und Peers) eingebunden werden. Die Hauptorganisationen können als bestätigende Peers fungieren, um die Ergebnisse der Ausführung des Smart Contract sowie den Lese- und Schreibsatz zu validieren. Mit anderen Worten: die für die Blockchain charakteristischen Merkmale stellen eine effiziente Implementierung eines Verfahrens für nachhaltige Token für eine Lieferkette mit datenschutzerhaltendem Protokoll in Blockchain-Netzwerken bereit.
  • Einer der Vorteile der beispielhaften Ausführungsformen besteht darin, dass sie die Funktionalität eines Datenverarbeitungssystems verbessern, indem sie ein Verfahren für nachhaltige Token für eine Lieferkette mit datenschutzerhaltendem Protokoll in Systemen auf der Grundlage einer Blockchain implementieren. Durch das hier beschriebene Blockchain-System kann ein Datenverarbeitungssystem Funktionen für nachhaltige Token für eine Lieferkette mit datenschutzerhaltendem Protokoll in Blockchain-Netzwerken durchführen, indem es Zugriff auf Funktionen wie Distributed Ledger, Peers, Verschlüsselungstechnologien, MSP, Ereignisverarbeitung usw. bereitstellt. Die Blockchain ermöglicht es darüber hinaus, ein Geschäftsnetzwerk zu schaffen und Benutzer oder Organisationen für die Teilnahme einzubinden. Bei der Blockchain handelt es sich daher nicht nur um eine Datenbank. Die Blockchain verfügt über Funktionen, um ein Geschäftsnetzwerk von Benutzern und internen/externen Organisationen zu schaffen, die zusammenarbeiten und Dienstprozesse in Form von Smart Contracts ausführen.
  • Die beispielhaften Ausführungsformen stellen erhebliche Vorteile gegenüber einer herkömmlichen Datenbank bereit. Durch die Blockchain stellen die Ausführungsformen zum Beispiel unveränderliche Verantwortlichkeit, Sicherheit, Datenschutz, zulässige Dezentralisierung, Verfügbarkeit von Smart Contracts, Berechtigungen und Zugänglichkeit bereit, die für die Blockchain charakteristisch und spezifisch sind.
  • Eine herkömmliche Datenbank könnte hingegen nicht verwendet werden, um die beispielhaften Ausführungsformen zu implementieren, da sie nicht alle Parteien in das Geschäftsnetzwerk einbindet, keine vertrauenswürdige Zusammenarbeit ermöglicht und kein effizientes Speichern von digitalen Assets bereitstellt. Die herkömmliche Datenbank stellt kein fälschungssicheres Speichern und keinen Schutz der gespeicherten digitalen Assets bereit. Das vorgeschlagene Verfahren für nachhaltige Token für eine Lieferkette mit datenschutzerhaltendem Protokoll in Blockchain-Netzwerken kann daher nicht in der herkömmlichen Datenbank implementiert werden.
  • Würde hingegen eine herkömmliche Datenbank zum Implementieren der beispielhaften Ausführungsformen verwendet, hätten die beispielhaften Ausführungsformen unnötige Nachteile wie die Suchfunktion, mangelnde Sicherheit und langsame Geschwindigkeit der Transaktionen zu verzeichnen. Das automatisierte Verfahren für nachhaltige Token für eine Lieferkette mit datenschutzerhaltendem Protokoll in einem Blockchain-Netzwerk wäre darüber hinaus einfach nicht möglich.
  • Die beispielhaften Ausführungsformen stellen somit eine spezifische Lösung für ein Problem in der Technik/auf dem Gebiet zum Kontrollieren einer virtuellen Währung bereit.
  • Die beispielhaften Ausführungsformen ändern auch die Art und Weise, wie Daten in einer Blockstruktur der Blockchain gespeichert werden können. Daten eines digitalen Assets können zum Beispiel in einem bestimmten Teil des Datenblocks (d.h. im Kopf, in einem Datensegment oder in den Metadaten) sicher gespeichert werden. Durch das Speichern der Daten eines digitalen Assets in Datenblöcken einer Blockchain können die Daten eines digitalen Assets über eine Hash-verknüpfte Kette von Blöcken an ein unveränderliches Blockchain-Ledger angehängt werden. In einigen Ausführungsformen kann sich der Datenblock von einem herkömmlichen Datenblock dadurch unterscheiden, dass die dem digitalen Asset zugehörigen personenbezogenen Daten nicht zusammen mit den Assets in einer herkömmlichen Blockstruktur einer Blockchain gespeichert werden. Durch Entfernen der dem digitalen Asset zugehörigen personenbezogenen Daten kann die Blockchain den Vorteil der Anonymität auf der Grundlage unveränderlicher Verantwortlichkeit und Sicherheit bereitstellen.
  • Gemäß den beispielhaften Ausführungsformen werden ein System und ein Verfahren für nachhaltige Token für eine Lieferkette mit datenschutzerhaltendem Protokoll in Blockchain-Netzwerken bereitgestellt. Ein Blockchain-Dokumentprozessor kann aus zwei Komponenten bestehen:
    • - einem privaten Prozessor außerhalb der Chain, der die sichere Verarbeitung privater Informationen in Verbindung mit einem Teilnehmer verwaltet; und
    • - einem Ledger-Prozessor, der die Verarbeitung gemeinsamer Informationen verwaltet, die mit allen Teilnehmern eines Blockchain-Netzwerks unter Verwendung des Konsensalgorithmus des Netzwerks geteilt werden.
  • Gemäß den beispielhaften Ausführungsformen verwendet jede der Organisationen, die beabsichtigt, Dokumente mit anderen Organisationen gemeinsam zu nutzen, einen Blockchain-Dokumentprozessor, der mit einem Blockchain-Netzwerk verbunden ist. Mithilfe des Dokumentprozessors können die Organisationen Folgendes im Ledger einrichten:
    • - eine Liste von Dokumentvorlagen;
    • - Attribute jeder Dokumentvorlage, die in gehashter Form im Ledger gemeinsam genutzt werden;
    • - eine Kombination von Schlüsselattributen von verschiedenen Vorlagen zum Abgleichen und gemeinsamen Nutzen von Dokumenten; und
    • - Merkle-Partnerschaftsbäume: jeder Merkle-Partnerschaftsbaum kann auf der Grundlage der Kennungen (IDs) der Partnerorganisationen erstellt werden.
  • Alle Dokumente (Dateien, JSONs) werden im Datenspeicher außerhalb der Chain gespeichert. Nur die Attribut-Hashes und Dokumentkennung (ID) werden als Teil einer Blockchain-Transaktion gesendet.
  • Gemäß einer beispielhaften Ausführungsform können eine Dokumentkennung und ein Dokumenttyp mit gehashten Attributen zum gemeinsamen Nutzen verknüpft werden. Die gehashte Eigner-Organisations-ID kann zusammengesetzte Schlüssel enthalten, sodass:
    • - bei Vorliegen der Dokument-ID ein Dokumentprozessor alle gehashten Attribute zum gemeinsamen Nutzen abrufen kann; und
    • - bei Vorliegen eines gehashten Attributs zum gemeinsamen Nutzen der Dokumentprozessor alle Dokument-IDs und ihre gehashten Eigner-Organisations-IDs abrufen kann.
  • Wenn ein Dokument aufgezeichnet wird und seine gehashten Attribute zum gemeinsamen Nutzen vorliegen, kann der Dokumentprozessor alle Dokumente und ihre gehashten Eigner-Organisations-IDs abrufen. Der Prozessor kann prüfen, ob die Eigner-Organisations-ID des eingehenden Dokuments und jede Eigner-Organisations-ID Teil eines Merkle-Partnerschaftsbaums sind. Wenn die IDs zum MerklePartnerschaftsbaum für den Teilsatz von Dokumenten in einer berechtigten Organisationsbeziehung gehören, kann der Prozessor die erforderlichen Vorlagen zum logischen Abgleichen abrufen. Auf der Grundlage des gehashten Attributabgleichs kann der Prozessor die Liste der Dokumente (und ihrer Eigner) abrufen, mit denen das eingehende Dokument verknüpft werden muss. Anschließend kann der Prozessor die verknüpften Dokumente erzeugen. Der Prozessor kann einen Einmalkenncode erzeugen, sodass die Teilnehmer sich mit diesem Dokument verknüpfen und es an alle Teilnehmer weiterleiten können. Die Teilnehmer können dann die Blockchain mit dem Einmalkenncode und der gehashten Organisations-ID abfragen, um den Schlüssel des eingehenden Dokuments abzurufen. Mithilfe des Dokumentschlüssels kann der Teilnehmer das gemeinsam genutzte Dokument von der Eignerpartei (d.h. ein Blockchain-Knoten) abrufen und das Dokument im Speicher des Empfängers außerhalb der Chain speichern.
  • 2A veranschaulicht eine Konfiguration 200 einer Blockchain-Architektur gemäß beispielhaften Ausführungsformen. Mit Bezug auf 2A kann die Blockchain-Architektur 200 bestimmte Blockchain-Elemente enthalten, so beispielsweise eine Gruppe von Blockchain-Knoten 202. Die Blockchain-Knoten 202 können einen oder mehrere Knoten 204 bis 210 umfassen (diese vier Knoten sind nur beispielhaft dargestellt). Diese Knoten sind an einer Reihe von Aktivitäten beteiligt, z.B. am Hinzufügen von Blockchain-Transaktionen und am Validierungsprozess (Konsens). Ein oder mehrere Blockchain-Knoten 204 bis 210 können Transaktionen auf der Grundlage einer Endorsement Policy bestätigen und einen Sortierdienst für alle Blockchain-Knoten in der Architektur 200 bereitstellen. Ein Blockchain-Knoten kann eine Blockchain-Authentifizierung initiieren und versuchen, in ein unveränderliches Blockchain-Ledger zu schreiben, das in der Blockchain-Schicht 216 gespeichert ist, von der eine Kopie auch in der zugrunde liegenden physischen Infrastruktur 214 gespeichert sein kann. Die Blockchain-Konfiguration kann eine oder mehrere Anwendungen 224 umfassen, die mit Anwendungsprogrammierschnittstellen (APIs) 222 verbunden sind, um auf gespeicherten Programm-/Anwendungscode 220 (z.B. Chaincode, Smart Contracts usw.) zuzugreifen und diesen auszuführen, der entsprechend einer von den Teilnehmern gewünschten individuellen Konfiguration erzeugt werden kann und der seinen eigenen Zustand aufrechterhalten, seine eigenen Assets kontrollieren und externe Informationen empfangen kann. Dies kann als Transaktion implementiert und durch Anhängen an das Distributed Ledger auf allen Blockchain-Knoten 204 bis 210 implementiert werden.
  • Die Blockchain-Basis oder -Plattform 212 kann verschiedene Schichten von Blockchain-Daten, Diensten (z.B. kryptographische Vertrauensdienste, virtuelle Ausführungsumgebung usw.) und die zugrunde liegende physische Computerinfrastruktur umfassen, die dazu verwendet werden kann, neue Transaktionen zu empfangen und zu speichern und Prüfern, die auf Dateneinträge zugreifen wollen, den Zugriff bereitzustellen. Die Blockchain-Schicht 216 kann eine Schnittstelle zur Verfügung stellen, die den Zugriff auf die virtuelle Ausführungsumgebung bereitstellt, die erforderlich ist, um den Programmcode zu verarbeiten und die physische Infrastruktur 214 zu nutzen. Die kryptografischen Vertrauensdienste 218 können verwendet werden, um Transaktionen wie den Austausch von Assets zu überprüfen und Informationen vertraulich zu halten.
  • Die Konfiguration der Blockchain-Architektur von 2A kann Programm-/ Anwendungscode 220 über eine oder mehrere von der Blockchain-Plattform 212 zur Verfügung gestellte Schnittstellen und bereitgestellte Dienste verarbeiten und ausführen. Der Code 220 kann Assets in der Blockchain kontrollieren. Der Code 220 kann beispielsweise Daten speichern und übertragen und von den Knoten 204 bis 210 in Form eines Smart Contract und eines zugehörigen Chaincodes mit Bedingungen oder anderen Codeelementen ausgeführt werden, die seiner Ausführung unterliegen. In einem nichteinschränkenden Beispiel können Smart Contracts erzeugt werden, um Erinnerungen, Aktualisierungen und/oder Mitteilungen aufgrund von Änderungen, Aktualisierungen usw. auszuführen. Die Smart Contracts können ihrerseits dazu verwendet werden, Regeln zu identifizieren, die den Autorisierungs- und Zugriffsanforderungen und der Nutzung des Ledger zugehörig sind. Beispielsweise können die Dokumentattributinformationen 226 von einer oder mehreren Verarbeitungsentitäten (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 zum Abrufen der hier beschriebenen Daten oder Informationen verwendet werden.
  • Ein Smart Contract kann über eine hoch entwickelte Anwendung und Programmiersprache erzeugt und dann in einen Block in der Blockchain geschrieben werden. Der Smart Contract kann einen ausführbaren Code enthalten, der in einer Blockchain (z.B. einem verteilten Netzwerk von Blockchain-Peers) registriert, gespeichert und/oder repliziert wird. Eine Transaktion ist eine Ausführung des Codes des Smart Contract, die als Reaktion auf Bedingungen, die dem Smart Contract zugehörig sind, durchgeführt werden kann. Das Ausführen des Smart Contract kann (eine) vertrauenswürdige Änderung(en) eines Zustands eines digitalen Blockchain-Ledger auslösen. Die durch das Ausführen des Smart Contract verursachte(n) Änderung(en) des Blockchain-Ledger kann (können) automatisch im gesamten verteilten Netzwerk von Blockchain-Peers durch ein oder mehrere Konsensprotokolle repliziert werden.
  • Der Smart Contract kann Daten im Format von Schlüssel-Wert-Paaren in die Blockchain schreiben. Darüber hinaus kann der Code des Smart Contract die in einer Blockchain gespeicherten Werte lesen und in Operationen der Anwendung verwenden. Der Code des Smart Contract kann die Ausgabe verschiedener logischer Operationen in die Blockchain schreiben. Der Code kann dazu verwendet werden, eine temporäre Datenstruktur in einer virtuellen Maschine oder einer anderen Datenverarbeitungsplattform zu erzeugen. Daten, die in die Blockchain geschriebenen werden, können öffentlich sein und/oder verschlüsselt und als vertraulich behandelt werden. Die temporären Daten, die vom Smart Contract verwendet/erzeugt werden, werden von der bereitgestellten Ausführungsumgebung im Speicher gespeichert und dann gelöscht, sobald die für die Blockchain benötigten Daten identifiziert sind.
  • Ein Chaincode kann die Code-Interpretation eines Smart Contract umfassen und zusätzliche Funktionen enthalten. Wie hier beschrieben, kann es sich bei dem Chaincode um einen Programmcode handeln, der in einem Datenverarbeitungsnetzwerk implementiert wird, wo er von den Chain-Validierern im Rahmen eines Konsensverfahrens ausgeführt und validiert wird. Der Chaincode empfängt einen Hash und ruft aus der Blockchain einen Hash ab, der der Datenvorlage zugehörig ist, die durch die Verwendung eines zuvor gespeicherten Merkmalsextraktors erzeugt wurde. Stimmen die Hashes der Hash-Kennung und der aus den gespeicherten Kennungsvorlagedaten erzeugte Hash überein, sendet der Chaincode einen Autorisierungsschlüssel an den angeforderten Dienst. Der Chaincode kann Daten in die Blockchain schreiben, die den kryptografischen Einzelheiten zugehörig sind.
  • 2B veranschaulicht ein Beispiel für einen Blockchain-Transaktionsablauf 250 zwischen Knoten der Blockchain gemäß einer beispielhaften Ausführungsform. Mit Bezug auf 2B kann der Transaktionsablauf einen Transaktionsvorschlag 291 umfassen, der von einem Anwendungs-Client-Knoten 260 an einen bestätigenden Peer-Knoten 281 gesendet wird. Der bestätigende Peer 281 kann die Client-Signatur prüfen und eine Chaincode-Funktion ausführen, um die Transaktion zu initiieren. Die Ausgabe kann die Chaincode-Ergebnisse, einen Satz von Schlüssel/Wert-Versionen, die im Chaincode gelesen wurden (Lesesatz), und den Satz von Schlüsseln/Werten, die in den Chaincode geschrieben wurden (Schreibsatz), umfassen. Die Antwort 292 auf den Vorschlag wird zusammen mit einer Bestätigungssignatur (falls genehmigt) an den Client 260 zurückgesendet. Der Client 260 stellt die Bestätigungen in den Transaktionsnutzdaten 293 zusammen und übertragt diese an einen Sortierdienstknoten 284. Der Sortierdienstknoten 284 gibt dann die sortierten Transaktionen als Blöcke an alle Peers 281 bis 283 in einem Kanal aus. Vor dem Festschreiben in der Blockchain kann jeder Peer 281 bis 283 die Transaktion validieren. So können die Peers beispielsweise die Endorsement Policy überprüfen, um sicherzustellen, dass die richtige Anzahl der angegebenen Peers die Ergebnisse signiert und die Signaturen anhand der Transaktionsnutzdaten 293 authentifiziert hat.
  • Mit erneutem Bezug auf 2B initiiert der Client-Knoten 260 die Transaktion 291, indem er eine Anforderung an den Peer-Knoten 281 erzeugt und sendet, bei dem es sich um einen Endorser handelt. Der Client 260 kann eine Anwendung umfassen, die ein unterstütztes Software-Entwicklungskit (software development kit - SDK) nutzt, das eine verfügbare API verwendet, um einen Transaktionsvorschlag zu erzeugen. Bei dem Vorschlag handelt es sich um eine Anforderung, eine Chaincode-Funktion aufzurufen, damit Daten gelesen und/oder in das Ledger geschrieben werden können (d.h., neue Schlüssel-Wert-Paare für die Assets schreiben). Das SDK kann als Shim dienen, um den Transaktionsvorschlag in ein geeignetes Architekturformat zu packen (z.B. Protokollpuffer über einen Fernprozeduraufruf (remote procedure call - RPC)) und die kryptografischen Berechtigungsnachweise des Clients zu verwenden, um eine eindeutige Signatur für den Transaktionsvorschlag zu erzeugen.
  • Als Reaktion darauf kann der bestätigende Peer-Knoten 281 prüfen, ob (a) der Transaktionsvorschlag korrekt formatiert ist, (b) die Transaktion nicht bereits in der Vergangenheit gesendet wurde (Schutz vor Wiederholungsangriffen), (c) die Signatur gültig ist und (d) dass der Sender (im Beispiel der Client 260) ordnungsgemäß berechtigt ist, die vorgeschlagene Operation auf diesem Kanal durchzuführen. Der bestätigende Peer-Knoten 281 kann die Eingaben des Transaktionsvorschlags als Argumente für die aufgerufene Chaincode-Funktion verwenden. Der Chaincode wird dann auf der Grundlage einer Datenbank mit dem aktuellen Zustand ausgeführt, um Transaktionsergebnisse zu erzeugen, darunter ein Antwortwert, ein Lesesatz und ein Schreibsatz. Das Ledger wird zu diesem Zeitpunkt jedoch nicht aktualisiert. In Schritt 292 werden der Satz von Werten zusammen mit der Signatur des bestätigenden Peer-Knotens 281 als Antwort 292 auf den Vorschlag an das SDK des Clients 260 zurückgesendet, der die Nutzdaten für die Anwendung zur Nutzung parst.
  • Als Reaktion darauf überprüft/verifiziert die Anwendung des Clients 260 die Signaturen der bestätigenden Peers und vergleicht die Vorschlagsantworten, um zu ermitteln, ob die Vorschlagsantwort dieselbe ist. Würde der Chaincode nur das Ledger abfragen, würde die Anwendung die Antwort auf die Abfrage überprüfen und die Transaktion in der Regel nicht an den Sortierdienstknoten 284 senden. Beabsichtigt die Client-Anwendung, die Transaktion zum Aktualisieren des Ledger an den Sortierknotendienst 284 zu senden, entscheidet die Anwendung vor dem Senden, ob die angegebene Endorsement Policy erfüllt ist (d.h., haben alle für die Transaktion erforderlichen Peer-Knoten die Transaktion bestätigt). In diesem Fall kann der Client nur eine von mehreren an der Transaktion beteiligten Parteien aufnehmen. In diesem Fall kann jeder Client seinen eigenen bestätigenden Knoten haben, und jeder bestätigende Knoten muss die Transaktion bestätigen. Die Architektur ist so angelegt, dass die Endorsement Policy auch dann von den Peers bestätigt und in der Phase des Festschreibens und Validierens aufrechterhalten wird, wenn eine Anwendung sich dafür entscheidet, Antworten nicht zu überprüfen oder ansonsten eine nichtbestätigte Transaktion weiterzuleiten.
  • Nach erfolgreichem Überprüfen stellt der Client 260 in Schritt 293 Bestätigungen zu einer Transaktion zusammen und sendet den Transaktionsvorschlag und die Antwort in einer Transaktionsnachricht an den Sortierknoten 284. Die Transaktion kann die Lese-/ Schreibsätze, die Signaturen der bestätigenden Peers und eine Kanal-ID enthalten. Der Sortierknoten 284 muss nicht den gesamten Inhalt einer Transaktion überprüfen, um seine Operation durchzuführen; stattdessen kann der Sortierknoten 284 einfach Transaktionen von allen Kanälen im Netzwerk empfangen, sie chronologisch nach Kanal sortieren und Blöcke von Transaktionen pro Kanal erzeugen.
  • Die Blöcke der Transaktion werden vom Sortierknoten 284 an alle Peer-Knoten 281 bis 283 im Kanal übermittelt. Die Transaktionen 294 im Block werden validiert, um sicherzustellen, dass die Endorsement Policy erfüllt ist und dass keine Änderungen am Zustand des Ledger für die Variablen des Lesesatzes vorgenommen wurden, seit der Lesesatz durch das Ausführen der Transaktion erzeugt wurde. Transaktionen im Block werden als gültig oder ungültig gekennzeichnet. Darüber hinaus fügt jeder Peer-Knoten 281 bis 283 in Schritt 295 den Block an die Chain des Kanals an, und für jede gültige Transaktion werden die Schreibsätze in der aktuellen Zustandsdatenbank festgeschrieben. Es wird ein Ereignis ausgelöst, um die Client-Anwendung darüber zu informieren, dass die Transaktion (der Aufruf) unveränderlich an die Chain angehängt wurde, und um mitzuteilen, ob die Transaktion für gültig oder ungültig erklärt wurde.
  • 3A veranschaulicht ein Beispiel für ein genehmigungspflichtiges Blockchain-Netzwerk 300, das eine verteilte, dezentrale Peer-to-Peer-Architektur aufweist. In diesem Beispiel kann ein Blockchain-Benutzer 302 eine Transaktion in der genehmigungspflichtigen Blockchain 304 beginnen. In diesem Beispiel kann es sich bei der Transaktion um Implementieren, Aufrufen oder Abfragen handeln, und sie kann über eine clientseitige Anwendung, die ein SDK nutzt, direkt über eine API usw. ausgegeben werden. Netzwerke können den Zugriff auf einen Regulierer 306, z.B. einen Prüfer, bereitstellen. Ein Blockchain-Netzwerkbetreiber 308 verwaltet die Genehmigungen der Mitglieder, z.B. Anmelden des Regulierers 306 als „Prüfer“ und des Blockchain-Benutzers 302 als „Client“. Ein Prüfer könnte darauf beschränkt sein, nur das Ledger abzufragen, während ein Client berechtigt sein könnte, bestimmte Arten von Chaincode zu implementieren, aufzurufen und abzufragen.
  • Ein Blockchain-Entwickler 310 kann Chaincode und clientseitige Anwendungen schreiben. Der Blockchain-Entwickler 310 kann Chaincode über eine Schnittstelle direkt in dem Netzwerk implementieren. Um Berechtigungsnachweise aus einer herkömmlichen Datenquelle 312 in Chaincode zu integrieren, kann der Entwickler 310 eine Out-of-Band-Verbindung verwenden, um auf die Daten zuzugreifen. In diesem Beispiel verbindet sich der Blockchain-Benutzer 302 über einen Peer-Knoten 314 mit der genehmigungspflichtigen Blockchain 304. Bevor der Peer-Knoten 314 mit den Transaktionen fortfährt, ruft er die Anmelde- und Transaktionszertifikate des Benutzers von einer Zertifizierungsstelle 316 ab, die Benutzerrollen und -genehmigungen verwaltet. In einigen Fällen müssen die Benutzer der Blockchain diese digitalen Zertifikate besitzen, um in der genehmigungspflichtigen Blockchain 304 Transaktionen durchführen zu können. In der Zwischenzeit muss ein Benutzer, der Chaincode verwenden möchte, unter Umständen seine Berechtigungsnachweise in der herkömmlichen Datenquelle 312 überprüfen. Um die Berechtigung des Benutzers zu bestätigen, kann der Chaincode eine Out-of-Band-Verbindung zu diesen Daten über eine herkömmliche Verarbeitungsplattform 318 nutzen.
  • 3B veranschaulicht ein weiteres Beispiel für ein genehmigungspflichtiges Blockchain-Netzwerk 320, das eine verteilte, dezentrale Peer-to-Peer-Architektur aufweist. In diesem Beispiel kann ein Blockchain-Benutzer 322 eine Transaktion an die genehmigungspflichtige Blockchain 324 senden. In diesem Beispiel kann es sich bei der Transaktion um Implementieren, Aufrufen oder Abfragen handeln, und sie kann über eine clientseitige Anwendung, die ein SDK nutzt, direkt über eine API usw. ausgegeben werden. Netzwerke können den Zugriff auf einen Regulierer 326, z.B. einen Prüfer, bereitstellen. Ein Blockchain-Netzwerkbetreiber 328 verwaltet die Genehmigungen der Mitglieder, z.B. Anmelden des Regulierers 326 als „Prüfer“ und des Blockchain-Benutzers 322 als „Client“. Ein Prüfer könnte darauf beschränkt sein, nur das Ledger abzufragen, während ein Client berechtigt sein könnte, bestimmte Arten von Chaincode zu implementieren, aufzurufen und abzufragen.
  • Ein Blockchain-Entwickler 330 schreibt Chaincode und clientseitige Anwendungen. Der Blockchain-Entwickler 330 kann Chaincode über eine Schnittstelle direkt in dem Netzwerk implementieren. Um Berechtigungsnachweise aus einer herkömmlichen Datenquelle 332 in Chaincode zu integrieren, kann der Entwickler 330 eine Out-of-Band-Verbindung verwenden, um auf die Daten zuzugreifen. In diesem Beispiel verbindet sich der Blockchain-Benutzer 322 über einen Peer-Knoten 334 mit dem Netzwerk. Bevor der Peer-Knoten 334 mit den Transaktionen fortfährt, ruft er die Anmelde- und Transaktionszertifikate des Benutzers von der Zertifizierungsstelle 336 ab, die die Rollen und Genehmigungen der Benutzer verwaltet. In einigen Fällen müssen die Benutzer der Blockchain diese digitalen Zertifikate besitzen, um in der genehmigungspflichtigen Blockchain 324 Transaktionen durchführen zu können. In der Zwischenzeit muss ein Benutzer, der Chaincode verwenden möchte, unter Umständen seine Berechtigungsnachweise in der herkömmlichen Datenquelle 332 überprüfen. Um die Berechtigung des Benutzers zu bestätigen, kann der Chaincode eine Out-of-Band-Verbindung zu diesen Daten über eine herkömmliche Verarbeitungsplattform 338 nutzen.
  • In einigen Ausführungsformen kann es sich bei der vorliegenden Blockchain um eine genehmigungsfreie Blockchain handeln. Im Gegensatz zu genehmigungspflichtigen Blockchains, für die eine Genehmigung zum Beitritt erforderlich ist, kann einer genehmigungsfreien Blockchain jeder beitreten. Um einer genehmigungsfreien Blockchain beizutreten, kann ein Benutzer beispielsweise eine persönliche Adresse erzeugen und beginnen, mit dem Netzwerk zu interagieren, indem er Transaktionen sendet und damit Einträge in das Ledger hinzufügt. Darüber hinaus haben alle Parteien die Möglichkeit, einen Knoten im System auszuführen und die Mining-Protokolle zum Überprüfen von Transaktionen zu verwenden.
  • 3C veranschaulicht einen Prozess 350 einer Transaktion, die von einer genehmigungsfreien Blockchain 352 verarbeitet wird und eine Mehrzahl von Knoten 354 umfasst. Ein Sender 356 möchte eine Zahlung oder ein beliebiges anderes werthaltiges Gut (z.B. eine Urkunde, medizinische Dokumente, einen Vertrag, eine Ware, eine Dienstleistung oder beliebige andere Assets, die in einen digitalen Datensatz eingebunden werden können) über die genehmigungsfreie Blockchain 352 an einen Empfänger 358 senden. In einer Ausführungsform können sowohl die Sendeeinheit 356 als auch die Empfängereinheit 358 über digitale Brieftaschen (die der Blockchain 352 zugehörig sind) verfügen, die Steuerungen der Benutzerschnittstelle und eine Anzeige der Transaktionsparameter bereitstellen. Daraufhin wird die Transaktion über die Blockchain 352 an die Knoten 354 übertragen. Je nach den Netzwerkparametern der Blockchain 352 überprüfen die Knoten 360 die Transaktion auf der Grundlage von Regeln (die vordefiniert oder dynamisch zugeordnet werden können), die von den Erzeugern der genehmigungsfreien Blockchain 352 aufgestellt wurden. Dies kann z.B. Überprüfen der Identität der beteiligten Parteien umfassen usw. Die Transaktion kann sofort überprüft werden oder in eine Warteschlange mit anderen Transaktionen gestellt werden, und die Knoten 354 ermitteln auf der Grundlage eines Satzes von Netzwerkregeln, ob die Transaktionen gültig sind.
  • In der Struktur 362 werden gültige Transaktionen zu einem Block zusammengefasst und mit einer Sperre (Hash) gesichert. Dieser Prozess kann durch Mining-Knoten unter den Knoten 354 durchgeführt werden. Mining-Knoten können zusätzliche Software speziell für das Mining und Erzeugen von Blöcken für die genehmigungsfreie Blockchain 352 verwenden. Jeder Block kann durch einen Hash (z.B. Bitzahl 256 usw.) identifiziert werden, der mit einem vom Netzwerk vereinbarten Algorithmus erzeugt wird. Jeder Block kann einen Kopf, einen Zeiger oder einen Verweis auf einen Hash des Kopfes des vorherigen Blocks in der Chain und eine Gruppe gültiger Transaktionen umfassen. Der Verweis auf den Hash des vorherigen Blocks ist dem Erzeugen der sicheren, unabhängigen Chain von Blöcken zugehörig.
  • Bevor Blöcke zur Blockchain hinzugefügt werden können, müssen die Blöcke validiert werden. Das Validieren der genehmigungsfreien Blockchain 352 kann ein Proof-of-Work (PoW) umfassen, bei dem es sich um eine Lösung eines Rätsels handelt, das aus dem Kopf des Blocks abgeleitet wird. Zwar ist dies im Beispiel von 3C nicht dargestellt, doch ist ein weiterer Prozess zum Überprüfen eines Blocks der Proof-of-Stake. Im Gegensatz zum Proof-of-Work, bei dem der Algorithmus Miner belohnt, die mathematische Probleme lösen, wird beim Proof-of-Stake der Erzeuger eines neuen Blocks auf deterministische Weise ausgewählt, abhängig von seinem Vermögen, das auch als „Stake“ definiert ist. Anschließend wird ein ähnlicher Nachweis von dem ausgewählten Knoten durchgeführt.
  • Beim Mining 364 versuchen Knoten, den Block zu lösen, indem sie schrittweise Änderungen an einer Variablen vornehmen, bis die Lösung ein netzwerkweites Ziel erfüllt. Auf diese Weise wird der PoW erzeugt und stellt auf diese Weise richtige Antworten sicher. Mit anderen Worten: eine potenzielle Lösung muss nachweisen, dass zum Lösen des Problems Datenverarbeitungsressourcen eingesetzt wurden. Bei einigen Arten von genehmigungsfreien Blockchains können Miner für ein korrektes Mining eines Blocks mit etwas von Wert (z.B. Münzen usw.) belohnt werden.
  • In diesem Fall macht der PoW-Prozess zusammen mit dem Chaining von Blöcken Änderungen an der Blockchain extrem schwierig, da ein Angreifer alle nachfolgenden Blöcke ändern muss, damit die Änderungen an einem Block akzeptiert werden. Außerdem nimmt mit dem Mining neuer Blöcke die Schwierigkeit zu, einen Block zu verändern, und die Zahl der nachfolgenden Blöcke steigt. Bei der Verteilung 366 wird der erfolgreich validierte Block über die genehmigungsfreie Blockchain 352 verteilt, und alle Knoten 354 fügen den Block zu einer Mehrheits-Chain hinzu, bei der es sich um das auditierbare Ledger der genehmigungsfreien Blockchain 352 handelt. Außerdem wird der Wert in der vom Sender 356 gesendeten Transaktion in der digitalen Brieftasche der Empfängereinheit 358 hinterlegt oder in anderer Weise an sie übertragen.
  • 4 ist ein Blockschaubild, das eine grundlegende Blockchain-Sequenz 400 von drei Transaktionen veranschaulicht. Der erste Block enthält einen ersten Kopf 410a und eine erste Gruppe von Transaktionen 420a, die den ersten Block bilden. Der Blockkopf enthält einen Hash 412a des vorherigen Blockkopfs und eine Merkle-Wurzel 414a. Die Merkle-Wurzel 414a ist ein Hash aller Hashes aller Transaktionen, die Teil eines Blocks in einem Blockchain-Netzwerk sind, das sicherstellt, dass Datenblöcke, die zwischen Peers übertragen werden, vollständig, unbeschädigt und unverändert sind. Der zweite Block enthält einen zweiten Kopf 410b und eine zweite Gruppe von Transaktionen 420b, die den zweiten Block bilden. Der Blockkopf enthält einen Hash 412b des vorherigen Blockkopfs 410a und eine Merkle-Wurzel 414b. Der dritte Block enthält einen dritten Kopf 410c und eine dritte Gruppe von Transaktionen 420c, die den dritten Block bilden. Der Blockkopf enthält einen Hash 412c des vorherigen Blockkopfs 410b und eine Merkle-Wurzel 414c. Die Anzahl der Blöcke kann auf eine beliebige realisierbare Länge erweitert werden, und die Hash-Werte können relativ einfach überprüft/verifiziert werden.
  • 5A veranschaulicht ein beispielhaftes System 500, das eine physische Infrastruktur 510 umfasst, die so konfiguriert ist, dass sie verschiedene Operationen gemäß beispielhaften Ausführungsformen durchführt. Mit Bezug auf 5A umfasst die physische Infrastruktur 510 ein Modul 512 und ein Modul 514. Das Modul 514 umfasst eine Blockchain 520 und einen Smart Contract 530 (der sich in der Blockchain 520 befinden kann), der jeden der in einer der beispielhaften Ausführungsformen enthaltenen operativen Schritte 508 (in Modul 512) ausführen kann. Die Schritte/Operationen 508 können eine oder mehrere der beschriebenen oder dargestellten Ausführungsformen umfassen und können ausgegebene oder geschriebene Informationen darstellen, die in einen oder mehrere Smart Contracts 530 und/oder Blockchains 520 geschrieben oder daraus gelesen werden. Die physische Infrastruktur 510, das Modul 512 und das Modul 514 können einen oder mehrere Computer, Server, Prozessoren, Speicher und/oder drahtlose Datenübertragungseinheiten umfassen. Weiterhin können das Modul 512 und das Modul 514 ein und dasselbe Modul sein.
  • 5B veranschaulicht ein weiteres Beispielsystem 540, das so konfiguriert ist, dass es verschiedene Operationen gemäß beispielhaften Ausführungsformen durchführt. Mit Bezug auf 5B umfasst das System 540 ein Modul 512 und ein Modul 514. Das Modul 514 umfasst eine Blockchain 520 und einen Smart Contract 530 (der sich in der Blockchain 520 befinden kann), der jeden der in einer der beispielhaften Ausführungsformen enthaltenen operativen Schritte 508 (in Modul 512) ausführen kann. Die Schritte/Operationen 508 können eine oder mehrere der beschriebenen oder dargestellten Ausführungsformen umfassen und können ausgegebene oder geschriebene Informationen darstellen, die in einen oder mehrere Smart Contracts 530 und/oder Blockchains 520 geschrieben oder daraus gelesen werden. Das physische Modul 512 und das Modul 514 können einen oder mehrere Computer, Server, Prozessoren, Speicher und/oder drahtlose Datenübertragungseinheiten umfassen. Weiterhin können das Modul 512 und das Modul 514 ein und dasselbe Modul sein.
  • 5C veranschaulicht ein beispielhaftes System, das so konfiguriert ist, dass es eine Konfiguration eines Smart Contract zwischen Vertragsparteien und einem vermittelnden Server verwendet, der so konfiguriert ist, dass er die Bedingungen des Smart Contract in der Blockchain gemäß beispielhaften Ausführungsformen umsetzt. Mit Bezug auf 5C kann die Konfiguration 550 eine Datenübertragungssitzung, eine Asset-Übertragungssitzung oder einen Prozess oder eine Prozedur darstellen, die durch einen Smart Contract 530 gesteuert wird, der ausdrücklich eine oder mehrere Benutzereinheiten 552 und/oder 556 identifiziert. Die Ausführung, die Operationen und die Ergebnisse der Ausführung des Smart Contract können von einem Server 554 verwaltet werden. Der Inhalt des Smart Contract 530 kann digitale Signaturen von einer oder mehreren der Entitäten 552 und 556 erfordern, die an der Transaktion des Smart Contract beteiligt sind. Die Ergebnisse der Ausführung des Smart Contract können als Blockchain-Transaktion in eine Blockchain 520 geschrieben werden. Der Smart Contract 530 befindet sich in der Blockchain 520, die sich in einem oder mehreren Computern, Servern, Prozessoren, Speichern und/oder drahtlosen Datenübertragungseinheiten befinden kann.
  • 5D veranschaulicht ein System 560, das eine Blockchain gemäß beispielhaften Ausführungsformen umfasst. Mit Bezug auf das Beispiel von 5D stellt ein Anwendungsprogrammierschnittstellen(API)-Gateway 562 eine gemeinsame Schnittstelle für den Zugriff auf eine Blockchain-Logik (z.B. Smart Contract 530 oder anderer Chaincode) und Daten (z.B. Distributed Ledger usw.) bereit. In diesem Beispiel ist das API-Gateway 562 eine gemeinsame Schnittstelle zum Durchführen von Transaktionen (Aufrufe, Abfragen usw.) in der Blockchain, indem eine oder mehrere Entitäten 552 und 556 mit einem Blockchain-Peer (d.h. einem Server 554) verbunden werden. In diesem Fall ist der Server 554 eine Peer-Komponente des Blockchain-Netzwerks, die eine Kopie des World State (allgemeiner Zustand) und ein Distributed Ledger enthält, das es den Clients 552 und 556 ermöglicht, Daten über den World State abzufragen und Transaktionen an das Blockchain-Netzwerk zu senden, wo die bestätigenden Peers die Smart Contracts 530 je nach Smart Contract 530 und Endorsement Policy ausführen werden.
  • Die vorstehenden Ausführungsformen können in Hardware, in einem von einem Prozessor ausgeführten Computerprogramm, in Firmware oder in einer Kombination der vorstehend Genannten implementiert werden. Ein Computerprogramm kann auf einem durch einen Computer lesbaren Medium wie beispielsweise einem Speichermedium ausgeführt werden. Ein Computerprogramm kann sich beispielsweise in einem Direktzugriffsspeicher („RAM“), einem Flash-Speicher, einem Nur-Lese-Speicher („ROM“), einem löschbaren programmierbaren Nur-Lese-Speicher („EPROM“), einem elektrisch löschbaren programmierbaren Nur-Lese-Speicher („EEPROM“), in Registern, auf einer Festplatte, auf einer Wechselplatte, in einem Compact-Disc-Nur-Lese-Speicher („CD-ROM“) oder auf jeder anderen in der Technik bekannten Form von Speichermedium befinden.
  • Ein beispielhaftes Speichermedium kann mit dem Prozessor verbunden werden, sodass der Prozessor Informationen aus dem Speichermedium lesen und in das Speichermedium schreiben kann. Alternativ kann das Speichermedium in den Prozessor integriert sein. Der Prozessor und das Speichermedium können sich in einer anwendungsspezifischen integrierten Schaltung („ASIC“) befinden. Alternativ können der Prozessor und das Speichermedium als einzelne Komponenten vorliegen.
  • 6A veranschaulicht einen Prozess 600, bei dem gemäß beispielhaften Ausführungsformen ein neuer Block zu einem Distributed Ledger 620 hinzugefügt wird, und 6B veranschaulicht gemäß beispielhaften Ausführungsformen den Inhalt einer neuen Datenblockstruktur 630 für eine Blockchain. Der neue Datenblock 630 kann Dokumentverknüpfungsdaten enthalten.
  • Mit Bezug auf 6A können Clients (nicht dargestellt) Transaktionen an die Blockchain-Knoten 611, 612 und/oder 613 senden. Clients können Anweisungen sein, die von einer beliebigen Quelle empfangen werden, um eine Aktivität in der Blockchain 620 auszuführen. Bei den Clients kann es sich beispielsweise um Anwendungen handeln, die im Namen eines Anforderers, z.B. einer Einheit, einer Person oder einer Entität, handeln, um Transaktionen für die Blockchain vorzuschlagen. Die Mehrzahl von Blockchain-Peers (z.B. die Blockchain-Knoten 611, 612 und 613) können einen Zustand des Blockchain-Netzwerks und eine Kopie des Distributed Ledger 620 speichern. Im Blockchain-Netzwerk können verschiedene Arten von Blockchain-Knoten/Peers vorhanden sein, z.B. bestätigende Peers, die von Clients vorgeschlagene Transaktionen simulieren und bestätigen, und festschreibende Peers, die Bestätigungen überprüfen, Transaktionen validieren und diese im Distributed Leder 620 festschreiben. In diesem Beispiel können die Blockchain-Knoten 611, 612 und 613 die Rolle eines Endorser-Knotens, eines festschreibenden Knotens oder beider durchführen.
  • Das Distributed Ledger 620 umfasst eine Blockchain, die unveränderliche, sequenzierte Datensätze in Blöcken speichert, und eine Zustandsdatenbank 624 (aktueller World State), in der ein aktueller Zustand der Blockchain 622 gespeichert ist. Pro Kanal kann ein Distributed Ledger 620 vorhanden sein, und jeder Peer unterhält seine eigene Kopie des Distributed Ledger 620 für jeden Kanal, dessen Mitglied er ist. Die Blockchain 622 ist ein Transaktionsprotokoll, das in Form von Hash-verknüpften Blöcken aufgebaut ist, wobei jeder Block eine Folge von N Transaktionen enthält. Blöcke können verschiedene Komponenten umfassen, wie z.B. in 6B dargestellt. Die Verknüpfung der Blöcke (in 6A durch Pfeile dargestellt) kann durch Hinzufügen eines Hash des Kopfes eines früheren Blocks in einen Blockkopf eines aktuellen Blocks erzeugt werden. Auf diese Weise werden alle Transaktionen in der Blockchain 622 sequenziert und kryptografisch miteinander verknüpft, um eine Manipulation der Blockchain-Daten zu verhindern, ohne die Hash-Verknüpfungen zu unterbrechen. Aufgrund der Verknüpfungen stellt der letzte Block in der Blockchain 622 außerdem jede Transaktion, die vor ihm stattgefunden hat, dar. Die Blockchain 622 kann in einem Peer-Dateisystem (lokaler oder angeschlossener Speicher) gespeichert werden, das eine Append-only-Blockchain-Arbeitslast unterstützt.
  • Der aktuelle Zustand der Blockchain 622 und des Distributed Ledger 622 kann in der Zustandsdatenbank 624 gespeichert werden. In diesem Fall stellen die Daten des aktuellen Zustands die neuesten Werte für alle jemals im Chain-Transaktionsprotokoll der Blockchain 622 enthaltenen Schlüssel dar. Chaincode-Aufrufe führen Transaktionen auf der Grundlage des aktuellen Zustands in der Zustandsdatenbank 624 aus. Damit diese Chaincode-Interaktionen höchst effizient sind, werden die aktuellen Werte aller Schlüssel in der Zustandsdatenbank 624 gespeichert. Die Zustandsdatenbank 624 kann eine indizierte Ansicht des Transaktionsprotokolls der Blockchain 622 enthalten und kann daher jederzeit aus der Chain neu erzeugt werden. Die Zustandsdatenbank 624 kann automatisch wiederhergestellt (oder bei Bedarf erzeugt) werden, wenn der Peer-Knoten gestartet wird und bevor Transaktionen angenommen werden.
  • Bestätigende Knoten empfangen Transaktionen von Clients und bestätigen die Transaktion auf der Grundlage simulierter Ergebnisse. Bestätigende Knoten enthalten Smart Contracts, die die Transaktionsvorschläge simulieren. Wenn ein bestätigender Knoten eine Transaktion bestätigt, erzeugt der bestätigende Knoten eine Transaktionsbestätigung, bei der es sich um eine signierte Antwort des bestätigenden Knotens an die Client-Anwendung handelt, die die Bestätigung der simulierten Transaktion anzeigt. Das Verfahren zum Bestätigen einer Transaktion hängt von einer Endorsement Policy ab, die im Chaincode festgelegt werden kann. Ein Beispiel für eine Endorsement Policy ist „die Mehrheit der bestätigenden Peers muss die Transaktion bestätigen“. Verschiedene Kanäle können unterschiedliche Endorsement Policies aufweisen. Bestätigte Transaktionen werden von der Client-Anwendung an den Sortierdienst 610 weitergeleitet.
  • Der Sortierdienst 610 lässt bestätigte Transaktionen zu, ordnet sie in einem Block an und übermittelt die Blöcke an die festschreibenden Peers. Beispielsweise kann der Sortierdienst 610 einen neuen Block initiieren, wenn ein Schwellenwert an Transaktionen erreicht wurde, ein Zeitgeber abgelaufen ist oder eine andere Bedingung vorliegt. In dem Beispiel von 6A handelt es sich bei dem Blockchain-Knoten 612 um einen festschreibenden Peer, der einen neuen Datenblock 630 zum Speichern in der Blockchain 620 empfangen hat. Der erste Block in der Blockchain kann als Genesis-Block bezeichnet werden, der Informationen über die Blockchain, ihre Mitglieder, die darin gespeicherten Daten usw. enthält.
  • Der Sortierdienst 610 kann aus einer Gruppe von Sortierern zusammengesetzt sein. Der Sortierdienst 610 verarbeitet keine Transaktionen und Smart Contracts und führt auch nicht das gemeinsam genutzte Ledger. Vielmehr kann der Sortierdienst 610 die bestätigten Transaktionen annehmen, und er legt die Reihenfolge fest, in der diese Transaktionen im Distributed Ledger 620 festgeschrieben werden. Die Architektur des Blockchain-Netzwerks kann so ausgelegt werden, dass die spezifische Implementierung des „Sortierens“ (z.B. Solo, Kafka, BFT usw.) zu einer integrierbaren Komponente wird.
  • Transaktionen werden in einer konsistenten Reihenfolge in das Distributed Ledger 620 geschrieben. Die Reihenfolge der Transaktionen wird festgelegt, um sicherzustellen, dass die Aktualisierungen der Zustandsdatenbank 624 gültig sind, wenn sie im Netzwerk festgeschrieben werden. Im Gegensatz zu einem Blockchain-System für Kryptowährungen (z.B. Bitcoin usw.), bei dem das Sortieren durch das Lösen eines kryptografischen Rätsels oder durch Mining erfolgt, können die Parteien des Distributed Ledger 620 in diesem Beispiel den Sortiermechanismus wählen, der am besten zu diesem Netzwerk passt.
  • Wenn der Sortierdienst 610 einen neuen Datenblock 630 initialisiert, kann der neue Datenblock 630 an die festschreibenden Peers (z.B. die Blockchain-Knoten 611, 612 und 613) übertragen werden. Daraufhin überprüft jeder festschreibende Peer die Transaktion im neuen Datenblock 630, indem er sicherstellt, dass der Lese- und der Schreibsatz immer noch mit dem aktuellen World State in der Zustandsdatenbank 624 übereinstimmen. Konkret heißt dies, dass der festschreibende Peer ermitteln kann, ob die gelesenen Daten, die vorhanden waren, als die Endorser die Transaktion simulierten, mit dem aktuellen World State in der Zustandsdatenbank 624 identisch sind. Wenn der festschreibende Peer die Transaktion validiert, wird die Transaktion in die Blockchain 622 im Distributed Ledger 620 geschrieben, und die Zustandsdatenbank 624 wird mit den Schreibdaten aus dem Lese-/Schreibsatz aktualisiert. Wenn eine Transaktion nicht erfolgreich ist, d.h., wenn der festschreibende Peer feststellt, dass der Lese-/Schreibsatz nicht mit dem aktuellen World State in der Zustandsdatenbank 624 übereinstimmt, ist die in einem Block zusammengefasste Transaktion zwar immer noch in diesem Block enthalten, aber sie ist als ungültig gekennzeichnet, und die Zustandsdatenbank 624 wird nicht aktualisiert.
  • Mit Bezug auf 6B kann ein neuer Datenblock 630 (auch als Datenblock bezeichnet), der in der Blockchain 622 des Distributed Ledger 620 gespeichert wird, mehrere Datensegmente enthalten, z.B. einen Blockkopf 640, Blockdaten 650 und Block-Metadaten 660. Es sei darauf hingewiesen, dass die verschiedenen dargestellten Blöcke und ihr Inhalt, z.B. der neue Datenblock 630 und sein Inhalt, die in 6B gezeigt werden, lediglich Beispiele sind und den Anwendungsbereich der beispielhaften Ausführungsformen nicht einschränken sollen. Der neue Datenblock 630 kann Transaktionsinformationen von N Transaktionen (z.B. 1, 10, 100, 500, 1000, 2000, 3000 usw.) in den Blockdaten 650 speichern. Der neue Datenblock 630 kann auch eine Verknüpfung zu einem früheren Block (z.B. in der Blockchain 622 in 7A) im Blockkopf 740 enthalten. Der Blockkopf 640 kann insbesondere einen Hash des Kopfes eines früheren Blocks enthalten. Der Blockkopf 640 kann auch eine eindeutige Blocknummer, einen Hash der Blockdaten 650 des neuen Datenblocks 630 und Ähnliches umfassen. Die Blocknummer des neuen Datenblocks 630 kann eindeutig sein und in verschiedenen Reihenfolgen zugewiesen werden, z.B. in einer inkrementellen/sequenziellen Reihenfolge, die bei null beginnt.
  • In den Blockdaten 650 können Transaktionsinformationen jeder Transaktion gespeichert werden, die im neuen Datenblock 630 aufgezeichnet werden. Die Transaktionsdaten können zum Beispiel eine Art der Transaktion, eine Version, einen Zeitstempel, eine Kanal-ID des Distributed Ledger 620, eine Transaktions-ID, eine Epoche, die Sichtbarkeit von Nutzdaten, einen Chaincode-Pfad (deploy tx), einen Chaincode-Namen, eine Chaincode-Version, eine Eingabe (Chaincode und Funktionen), eine Client-ID (Erzeuger-ID) wie einen öffentlichen Schlüssel und ein Zertifikat, eine Signatur des Clients, die Identitäten von Endorsers, Endorser-Signaturen, einen Vorschlags-Hash, Chaincode-Ereignisse, einen Antwortstatus, einen Namensbereich, einen Lesesatz (Liste der von der Transaktion gelesenen Schlüssel und Versionen usw.), einen Schreibsatz (Liste der Schlüssel und Werte usw.), einen Anfangsschlüssel, einen Endschlüssel, eine Schlüsselliste, eine Zusammenfassung der Merkle-Baum-Abfrage und/oder Ähnliches enthalten. Die Transaktionsdaten können für jede der N Transaktionen gespeichert werden.
  • In einigen Ausführungsformen können in den Blockdaten 650 auch neue Daten 662 gespeichert werden, wodurch der hash-verknüpften Kette von Blöcken in der Blockchain 622 zusätzliche Informationen hinzugefügt werden. Die zusätzlichen Informationen umfassen einen oder mehrere der hier beschriebenen oder dargestellten Schritte, Merkmale, Prozesse und/oder Maßnahmen. Entsprechend können die neuen Daten 662 in einem unveränderlichen Protokoll von Blöcken im Distributed Ledger 620 gespeichert werden. Einige der Vorteile des Speicherns dieser neuen Daten 662 werden in den verschiedenen hier offenbarten und dargestellten Ausführungsformen deutlich. In 6B sind die neuen Daten 662 zwar in den Blockdaten 650 dargestellt, sie könnten sich aber auch im Blockkopf 640 oder in den Block-Metadaten 660 befinden. Die neuen Daten 662 können einen Dokumentverbundschlüssel enthalten, der für ein Verknüpfen der Dokumente in einer Organisation verwendet wird.
  • In den Block-Metadaten 660 können mehrere Felder mit Metadaten gespeichert werden (z.B. als Byte-Anordnung usw.). Die Metadatenfelder können eine Signatur beim Erzeugen eines Blocks, einen Verweis auf einen letzten Konfigurationsblock, ein Transaktionsfilter, das gültige und ungültige Transaktionen im Block identifiziert, den letzten verbliebenen Offset eines Sortierdienstes, der den Block sortiert hat, und Ähnliches umfassen. Die Signatur, der letzte Konfigurationsblock und die Metadaten des Sortierers können vom Sortierdienst 610 hinzugefügt werden. In der Zwischenzeit kann ein Festschreibender (Committer) des Blocks (z.B. der Blockchain-Knoten 612) auf der Grundlage einer Endorsement Policy, der Überprüfung von Lese-/Schreibsätzen usw. Angaben zur Gültigkeit/Ungültigkeit hinzufügen. Das Transaktionsfilter kann eine Byte-Anordnung mit einer Größe umfassen, die der Anzahl von Transaktionen in den Blockdaten 650 entspricht, sowie einen Validierungscode, der kennzeichnet, ob eine Transaktion gültig oder ungültig war.
  • 6C veranschaulicht eine Ausführungsform einer Blockchain 670 für digitalen Inhalt gemäß den hier beschriebenen Ausführungsformen. Der digitale Inhalt kann eine oder mehrere Dateien und zugehörige Informationen enthalten. Die Dateien können Medien, Bilder, Video, Audio, Text, Links, Grafiken, Animationen, Webseiten, Dokumente oder andere Formen mit digitalem Inhalt umfassen. Die unveränderlichen Append-only-Aspekte der Blockchain dienen als Schutz für die Integrität, Gültigkeit und Echtheit des digitalen Inhalts, sodass sie sich für Gerichtsverfahren eignen, in denen Zulässigkeitsregeln angewandt werden, oder für andere Situationen, in denen Beweise in Betracht gezogen werden oder in denen die Darstellung und Verwendung digitaler Informationen anderweitig von Interesse sind. In diesem Fall kann der digitale Inhalt als digitaler Nachweis bezeichnet werden.
  • Die Blockchain kann auf verschiedene Weise gebildet werden. In einer Ausführungsform kann der digitale Inhalt in der Blockchain enthalten sein, und die Blockchain selbst kann darauf zugreifen. Beispielsweise kann jeder Block der Blockchain einen Hash-Wert von Verweisinformationen (z.B. Kopf, Wert usw.) zusammen mit dem zugehörigen digitalen Inhalt speichern. Der Hash-Wert und der zugehörige digitale Inhalt können dann gemeinsam verschlüsselt werden. Auf den digitalen Inhalt jedes Blocks kann somit zugegriffen werden, indem jeder Block in der Blockchain entschlüsselt wird, und der Hash-Wert jedes Blocks kann als Grundlage für einen Verweis auf einen vorherigen Block verwendet werden. Dies lässt sich wie folgt darstellen:
    Block 1 Block 2 ............. Block N
    Hash-Wert 1 Hash-Wert 2 Hash-Wert N
    Digitaler Inhalt 1 Digitaler Inhalt 2 Digitaler Inhalt N
  • In einer Ausführungsform kann der digitale Inhalt nicht in der Blockchain enthalten sein. So kann die Blockchain beispielsweise die verschlüsselten Hashes des Inhalts jedes Blocks ohne den digitalen Inhalt speichern. Der digitale Inhalt kann in Verbindung mit dem Hash-Wert der Originaldatei in einem anderen Speicherbereich oder an einer anderen Speicheradresse gespeichert werden. Bei dem anderen Speicherbereich kann es sich um dieselbe Speichereinheit handeln, die auch zum Speichern der Blockchain verwendet wird, oder um einen anderen Speicherbereich oder auch um eine gesonderte relationale Datenbank. Auf den digitalen Inhalt jedes Blocks kann durch Abrufen oder Abfragen des Hash-Wertes eines relevanten Blocks und anschließendes Suchen dieses Hash-Wertes im Speicherbereich, der in Übereinstimmung mit den tatsächlichen digitalen Inhalt gespeichert ist, verwiesen oder zugegriffen werden. Diese Operation kann z.B. von einem Datenbank-Gatekeeper durchgeführt werden. Dies lässt sich wie folgt darstellen:
    Blockchain Speicherbereich
    Block 1 Hash-Wert Block 1 Hash-Wert ... Inhalt
    Block N Hash-Wert Block N Hash-Wert ... Inhalt
  • In der beispielhaften Ausführungsform von 6C umfasst die Blockchain 670 eine Anzahl von Blöcken 6781, 6782, ... 678N, die in einer geordneten Folge kryptografisch verknüpft sind, wobei N ≥ 1 ist. Bei der Verschlüsselung, die verwendet wird, um die Blöcke 6781, 6782, ... 678N zu verknüpfen, kann es sich um eine beliebige Anzahl von verschlüsselten oder unverschlüsselten Hash-Funktionen handeln. In einer Ausführungsform werden die Blöcke 6781, 6782, ... 678N einer Hash-Funktion unterzogen, die aus Eingaben, die auf den Informationen in den Blöcken beruhen, n-bit alphanumerische Ausgaben erzeugt (wobei n 256 oder eine andere Zahl ist). Zu Beispielen für eine solche Hash-Funktion gehören, ohne auf diese beschränkt zu sein, ein Algorithmus vom Typ SHA (SHA steht für Secured Hash Algorithm, sicherer Hash-Algorithmus), ein Merkle-Damgard-Algorithmus, ein HAIFA-Algorithmus, ein Merkle-Baum-Algorithmus, ein Nonce-gestützter Algorithmus und ein nichtkollisionsresistenter PRF-Algorithmus. In einer anderen Ausführungsform können die Blöcke 6781, 6782, ..., 678N durch eine andere Funktion als eine Hash-Funktion kryptografisch verknüpft werden. Zur Veranschaulichung folgt eine Beschreibung mit Verweis auf eine Hash-Funktion, z.B. SHA2.
  • Jeder der Blöcke 6781, 6782, ..., 678N in der Blockchain umfasst einen Kopf, eine Version der Datei und einen Wert. Der Kopf und der Wert sind für jeden Block unterschiedlich, was auf das Hashing in der Blockchain zurückzuführen ist. In einer Ausführungsform kann der Wert im Kopf enthalten sein. Wie im Folgenden ausführlicher beschrieben, kann die Version der Datei die Originaldatei oder eine andere Version der Originaldatei sein.
  • Der erste Block 6781 in der Blockchain wird als Genesis-Block bezeichnet und umfasst den Kopf 6721, die Originaldatei 6741 und einen Anfangswert 6761. Das Hashing-Schema, das für den Genesis-Block und auch für alle folgenden Blöcke verwendet wird, kann unterschiedlich sein. Zum Beispiel können alle Informationen im ersten Block 6781 zusammen und auf einmal gehasht werden, oder jede Information oder ein Teil der Informationen im ersten Block 6781 kann separat gehasht werden, und dann kann ein Hash der separat gehashten Teile durchgeführt werden.
  • Der Kopf 6721 kann einen oder mehrere Anfangsparameter umfassen, die beispielsweise eine Versionsnummer, einen Zeitstempel, eine Nonce, Stamminformationen, einen Schwierigkeitsgrad, ein Konsensprotokoll, eine Dauer, ein Medienformat, eine Quelle, beschreibende Schlüsselwörter und/oder andere Informationen umfassen können, die der Originaldatei 6741 und/oder der Blockchain zugehörig sind. Der Kopf 6721 kann automatisch (z.B. durch eine Software zur Blockchain-Netzwerkverwaltung) oder manuell durch einen Blockchain-Teilnehmer erzeugt werden. Im Gegensatz zum Kopf in den anderen Blöcken 6782 bis 678N in der Blockchain verweist der Kopf 6721 im Genesis-Block nicht auf einen vorherigen Block, da es keinen vorherigen Block gibt.
  • Bei der Originaldatei 6741 im Genesis-Block kann es sich beispielsweise um Daten handeln, die von einer Einheit mit oder ohne Verarbeitung vor ihrer Aufnahme in die Blockchain erfasst wurden. Die Originaldatei 6741 wird über die Schnittstelle des Systems von der Einheit, der Medienquelle oder dem Knoten empfangen. Der Originaldatei 6741 sind Metadaten zugehörig, die z.B. von einem Benutzer, der Einheit und/oder dem Systemprozessor entweder manuell oder automatisch erzeugt werden können. Die Metadaten können im ersten Block 6781 enthalten sein, der der Originaldatei 6741 zugehörig ist.
  • Der Wert 6761 im Genesis-Block ist ein Anfangswert, der auf der Grundlage eines oder mehrerer eindeutiger Attribute der Originaldatei 6741 erzeugt wird. In einer Ausführungsform können das eine oder die mehreren eindeutigen Attribute den Hash-Wert für die Originaldatei 6741, Metadaten für die Originaldatei 6741 und andere der Datei zugehörige Informationen umfassen. In einer Implementierung kann der Anfangswert 6761 auf den folgenden eindeutigen Attributen beruhen:
    • 1) SHA2 berechneter Hash-Wert für die Originaldatei
    • 2) ID der ursprünglichen Einheit
    • 3) Anfangszeitstempel für die Originaldatei
    • 4) Anfänglicher Speicherort der Originaldatei
    • 5) Blockchain-Netzwerk-Mitglieder-ID für Software zur aktuellen Kontrolle der Originaldatei und der zugehörigen Metadaten
  • Die anderen Blöcke 6782 bis 678N in der Blockchain verfügen ebenfalls über Köpfe, Dateien und Werte. Im Gegensatz zum ersten Block 6721 umfasst jedoch jeder der Köpfe 6722 bis 672N in den anderen Blöcken den Hash-Wert eines unmittelbar vorhergehenden Blocks. Der Hash-Wert des unmittelbar vorhergehenden Blocks kann lediglich der Hash des Kopfes des vorherigen Blocks oder der Hash-Wert des gesamten vorherigen Blocks sein. Indem der Hash-Wert eines vorhergehenden Blocks in jeden der verbleibenden Blöcke integriert wird, kann eine Rückverfolgung vom N-ten Block zurück zum Genesis-Block (und der zugehörigen Originaldatei) Block für Block durchgeführt werden, wie durch die Pfeile 680 angezeigt, um eine überprüfbare und unveränderliche Chain-of-Custody herzustellen.
  • Jeder der Köpfe 6722 bis 672N in den anderen Blöcken kann auch andere Informationen enthalten, z.B. Versionsnummer, Zeitstempel, Nonce, Stamminformationen, Schwierigkeitsgrad, Konsensprotokoll und/oder andere Parameter oder Informationen, die den entsprechenden Dateien und/oder der Blockchain im Allgemeinen zugehörig sind.
  • Die Dateien 6742 bis 674N in den anderen Blöcken können der Originaldatei entsprechen, oder es kann sich um eine geänderte Version der Originaldatei im Genesis-Block handeln, beispielsweise je nach Art der durchgeführten Verarbeitung. Die Art der durchgeführten Verarbeitung kann sich von Block zu Block unterscheiden. Das Verarbeiten kann z.B. jede Änderung einer Datei in einem vorhergehenden Block umfassen, unter anderem Redigieren von Informationen oder sonstiges Ändern des Inhalts, Entfernen von Informationen oder Hinzufügen oder Anhängen von Informationen in den Dateien.
  • Zusätzlich oder alternativ kann das Verarbeiten lediglich ein Kopieren der Datei aus einem vorhergehenden Block, Ändern eines Speicherortes der Datei, Analysieren der Datei aus einem oder mehreren vorhergehenden Blöcken, Verlagern der Datei von einem Speicherort zu einem anderen oder Durchführen von Maßnahmen in Bezug auf die Datei der Blockchain und/oder ihrer zugehörigen Metadaten umfassen. Ein Verarbeiten, das Analysieren einer Datei umfasst, kann zum Beispiel Anhängen, Einbeziehen oder anderweitiges Zuordnen verschiedener analytischer, statistischer oder anderer Informationen umfassen, die der Datei zugehörig sind.
  • Die Werte in jedem der anderen Blöcke 6762 bis 676N sind eindeutige Werte, und aufgrund der durchgeführten Verarbeitung unterscheiden sie sich alle. So entspricht beispielsweise der Wert in einem beliebigen Block einer aktualisierten Version des Wertes im vorherigen Block. Die Aktualisierung spiegelt sich im Hash des Blocks wider, dem der Wert zugewiesen ist. Die Werte der Blöcke stellen somit einen Hinweis darauf bereit, welche Verarbeitung in den Blöcken durchgeführt wurde, und ermöglichen auch eine Rückverfolgung durch die Blockchain bis zur Originaldatei. Dieses Verfolgen bestätigt die Chain-of-Custody der Datei über die gesamte Blockchain.
  • Nehmen wir zum Beispiel den Fall, dass Teile der Datei in einem vorherigen Block redigiert, ausgeblendet oder verpixelt werden, um die Identität einer in der Datei gezeigten Person zu schützen. In diesem Fall umfasst der Block mit der redigierten Datei zugehörige Metadaten, z.B. wie das Redigieren durchgeführt wurde, wer das Redigieren durchgeführt hat, Zeitstempel, die angeben, wann die Redigierung(en) vorgenommen wurde(n), usw. Die Metadaten können gehasht werden, um den Wert zu bilden. Da sich die Metadaten des Blocks von den Informationen unterscheiden, die zum Bilden des Wertes im vorherigen Block gehasht wurden, unterscheiden sich die Werte voneinander und können beim Entschlüsseln wiederhergestellt werden.
  • In einer Ausführungsform kann der Wert eines vorherigen Blocks aktualisiert werden (z.B. kann ein neuer Hash-Wert berechnet werden), um den Wert eines aktuellen Blocks zu bilden, wenn einer oder mehrere der folgenden Fälle eintreten. In dieser beispielhaften Ausführungsform kann der neue Hash-Wert durch Hashing aller oder eines Teils der unten aufgeführten Informationen berechnet werden.
    1. a) Neuer SHA2 berechneter Hash-Wert, wenn die Datei in irgendeiner Weise verarbeitet wurde (z.B. wenn die Datei redigiert, kopiert, geändert oder auf sie zugegriffen wurde oder eine andere Maßnahme durchgeführt wurde)
    2. b) Neuer Speicherort für die Datei
    3. c) Neue Metadaten identifiziert, 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
  • 6D veranschaulicht eine Ausführungsform eines Blocks, die gemäß einer Ausführungsform die Struktur der Blöcke in der Blockchain 690 darstellen kann. Der Block Blocki umfasst einen Kopf 672i, eine Datei 674i und einen Wert 676i.
  • Der Kopf 672i umfasst einen Hash-Wert eines vorherigen Blocks Blocki-1 und zusätzliche Verweisinformationen, bei denen es sich z.B. um beliebige hier beschriebene Arten von Informationen (z.B. Kopf-Informationen mit Verweisen, Merkmalen, Parametern usw.) handeln kann. Alle Blöcke verweisen auf den Hash eines vorherigen Blocks, außer natürlich des Genesis-Blocks. Der Hash-Wert des vorherigen Blocks kann nur ein Hash des Kopfes im vorherigen Block sein oder ein Hash aller oder eines Teils der Informationen im vorherigen Block, einschließlich der Datei und der Metadaten.
  • Die Datei 674i umfasst eine Mehrzahl von Daten, z.B. Daten 1, Daten 2, ..., Daten N in Folge. Die Daten sind mit den Metadaten 1, Metadaten 2, ..., Metadaten N versehen, die den Inhalt und/oder die den Daten zugehörigen Merkmale beschreiben. Die Metadaten für die einzelnen Daten können beispielsweise Informationen zur Angabe eines Zeitstempels für die Daten, zur Verarbeitung der Daten, Schlüsselwörter zur Angabe der in den Daten abgebildeten Personen oder anderer Inhalte und/oder andere Merkmale umfassen, die hilfreich sein können, um die Gültigkeit und den Inhalt der Datei insgesamt und insbesondere ihre Verwendung als digitalen Nachweis festzustellen, wie beispielsweise im Zusammenhang mit einer unten beschriebenen Ausführungsform beschrieben. Zusätzlich zu den Metadaten können alle Daten mit einem Verweis REF1, REF2, ..., REFN auf frühere Daten versehen werden, um Manipulationen, Lücken in der Datei und sequenzielle Verweise in der Datei zu vermeiden.
  • Sobald die Metadaten den Daten zugewiesen sind (z.B. durch einen Smart Contract), können die Metadaten nicht mehr geändert werden, ohne dass sich der Hash ändert, der zum Ungültigmachen leicht identifiziert werden kann. Die Metadaten erzeugen somit ein Datenprotokoll mit Informationen, auf die Teilnehmer der Blockchain zur Verwendung zugreifen können.
  • Der Wert 676i ist ein Hash-Wert oder ein anderer Wert, der auf der Grundlage einer der zuvor beschriebenen Arten von Informationen berechnet wird. Beispielsweise kann für jeden gegebenen Block Blocki der Wert für diesen Block aktualisiert werden, um das für diesen Block durchgeführte Verarbeiten widerzuspiegeln, z.B. neuer Hash-Wert, neuer Speicherort, neue Metadaten für die zugehörige Datei, Übertragen der Kontrolle oder des Zugriffs, Kennung oder andere hinzuzufügende Maßnahme oder Informationen. Zwar ist der Wert in jedem Block getrennt von den Metadaten für die Daten der Datei und des Kopfes dargestellt, doch kann der Wert in einer anderen Ausführungsform ganz oder teilweise auf diesen Metadaten beruhen.
  • Sobald die Blockchain 670 gebildet ist, kann die unveränderliche Chain-of-Custody zu jedem beliebigen Zeitpunkt für die Datei abgerufen werden, indem die Blockchain nach der Transaktionshistorie der Werte in den Blöcken abgefragt wird. Diese Abfrage- oder Verfolgungsprozedur kann mit einem Entschlüsseln des Wertes des Blocks beginnen, der am aktuellsten erfasst ist (z.B. der letzte (N-te) Block), und dann mit dem Entschlüsseln des Wertes der anderen Blöcke fortfahren, bis der Genesis-Block erreicht und die Originaldatei wiederhergestellt ist. Das Entschlüsseln kann auch Entschlüsseln der Köpfe und Dateien und zugehöriger Metadaten in jedem Block umfassen.
  • Das Entschlüsseln wird auf der Grundlage der Art des Verschlüsselns, die in jedem Block verwendet wurde, durchgeführt. Dies kann Verwenden von privaten Schlüsseln, öffentlichen Schlüsseln oder von Paaren aus öffentlichen und privaten Schlüsseln umfassen. Bei der asymmetrischen Verschlüsselung können Blockchain-Teilnehmer oder ein Prozessor im Netzwerk beispielsweise ein Paar aus öffentlichem und privatem Schlüssel mithilfe eines vorgegebenen Algorithmus erzeugen. Der öffentliche und der private Schlüssel sind miteinander durch eine mathematische Beziehung verbunden. Der öffentliche Schlüssel kann öffentlich verteilt werden und als Adresse dienen, um Nachrichten von anderen Benutzern zu empfangen, z.B. eine IP-Adresse oder eine Privatadresse. Der private Schlüssel wird geheim gehalten und zum digitalen Signieren von Nachrichten verwendet, die an andere Blockchain-Teilnehmer gesendet werden. Die Signatur ist in der Nachricht enthalten, damit der Empfänger sie mit dem öffentlichen Schlüssel des Senders überprüfen kann. Auf diese Weise kann der Empfänger sicher sein, dass nur der Sender diese Nachricht gesendet haben kann.
  • Das Erzeugen eines Schlüsselpaares ist vergleichbar mit dem Erzeugen eines Kontos in der Blockchain, ohne dass man sich jedoch irgendwo registrieren muss. Außerdem wird jede Transaktion, die in der Blockchain ausgeführt wird, vom Sender mit seinem privaten Schlüssel digital signiert. Diese Signatur stellt sicher, dass nur der Inhaber des Kontos die Datei der Blockchain verfolgen und bearbeiten kann (sofern dies im Rahmen einer durch einen Smart Contract festgelegten Genehmigung liegt).
  • Die 7A und 7B veranschaulichen weitere Beispiele für Anwendungsfälle einer Blockchain, die hier einbezogen und verwendet werden können. 7A veranschaulicht insbesondere ein Beispiel 700 für eine Blockchain 710, in der Daten zum maschinellen Lernen (künstliche Intelligenz) gespeichert werden. Maschinelles Lernen stützt sich auf beträchtliche Mengen historischer Daten (oder Trainingsdaten), um Prognosemodelle für genaue Vorhersagen zu neuen Daten zu erstellen. Software für maschinelles Lernen (z.B. neuronale Netzwerke usw.) kann oft Millionen von Datensätzen durchforsten, um nichtintuitive Muster zu erkennen.
  • In dem Beispiel von 7A erstellt und implementiert eine Host-Plattform 720 ein Modell für maschinelles Lernen zum vorausschauenden Überwachen von Assets 730. Bei der Host-Plattform 720 kann es sich in diesem Fall um eine Cloud-Plattform, einen Industrieserver, einen Webserver, einen Personal Computer, eine Benutzereinheit oder Ähnliches handeln. Bei den Assets 730 kann es sich um jede Art von Asset (z.B. Maschine oder Ausrüstung) handeln, beispielsweise Flugzeuge, Lokomotiven, Turbinen, medizinische Anlagen und Geräte, Öl- und Gasanlagen, Boote, Schiffe, Fahrzeuge und Ähnliches. Ein weiteres Beispiel für die Assets 730 sind immaterielle Assets wie z.B. Aktien, Währungen, digitale Zahlungsmittel, Versicherungen oder Ähnliches.
  • Die Blockchain 710 kann verwendet werden, um sowohl einen Trainingsprozess 702 des Modells für maschinelles Lernen als auch einen Vorhersageprozess 704 auf der Grundlage eines trainierten Modells für maschinelles Lernen erheblich zu verbessern. Anstatt dass ein Datenwissenschaftler/-ingenieur oder ein anderer Benutzer die Daten sammeln muss, können die historischen Daten in Schritt 702 beispielsweise von den Assets 730 selbst (oder einer zwischengeschalteten Einheit, nicht dargestellt) in der Blockchain 710 gespeichert werden. Dies kann die Zeit, die die Host-Plattform 720 für das Sammeln von Daten beim Trainieren von Vorhersagemodellen benötigt, erheblich verringern. Mit Smart Contracts können Daten beispielsweise direkt und zuverlässig von ihrem Ursprungsort in die Blockchain 710 übertragen werden. Durch Verwenden der Blockchain 710, um die Sicherheit von und das Eigentum an den gesammelten Daten zu gewährleisten, können Smart Contracts die Daten von den Assets direkt an die Personen senden, die die Daten für den Aufbau eines Modells für maschinelles Lernen verwenden. Dadurch ist es möglich, dass die Assets 730 gemeinsam Daten nutzen.
  • Die gesammelten Daten können auf der Grundlage eines Konsensmechanismus in der Blockchain 710 gespeichert werden. Der Konsensmechanismus bezieht (genehmigungspflichtige Knoten) ein, um sicherzustellen, dass die aufgezeichneten Daten überprüft und korrekt sind. Die aufgezeichneten Daten werden mit einem Zeitstempel versehen, kryptografisch signiert und sind unveränderlich. Somit sind sie überprüfbar, transparent und sicher. Durch das Hinzufügen von loT-Einheiten, die direkt in die Blockchain schreiben, können in bestimmten Fällen (z.B. Lieferkette, Gesundheitswesen, Logistik usw.) sowohl die Häufigkeit als auch die Genauigkeit der aufgezeichneten Daten erhöht werden.
  • Darüber hinaus kann das Training des Modells für maschinelles Lernen mit den gesammelten Daten mehrere Durchgänge des Verfeinerns und Testens durch die Host-Plattform 720 erfordern. Jeder Durchgang kann auf zusätzlichen Daten oder Daten beruhen, bei denen man bisher nicht davon ausging, dass sie das Wissen des Modells für maschinelles Lernen erweitern könnten. In Schritt 702 können die verschiedenen Trainings- und Testschritte (und die zugehörigen Daten) von der Host-Plattform 720 in der Blockchain 710 gespeichert werden. Jede Verfeinerung des Modells für maschinelles Lernen (z.B. Änderungen bei den Variablen, Gewichten usw.) kann in der Blockchain 710 gespeichert werden. Dies stellt einen überprüfbaren Nachweis dafür bereit, wie das Modell trainiert wurde und welche Daten zum Trainieren des Modells verwendet wurden. Wenn die Host-Plattform 720 ein fertig trainiertes Modell erreicht hat, kann das resultierende Modell in der Blockchain 710 gespeichert werden.
  • Nachdem das Modell trainiert wurde, kann es in einer Live-Umgebung implementiert werden, wo es auf der Grundlage der Ausführung des fertig trainierten Modells für maschinelles Lernen Vorhersagen/Entscheidungen treffen kann. In Schritt 704 kann das Modell für maschinelles Lernen beispielsweise für die zustandsorientierte Instandhaltung (condition-based maintenance - CBM) eines Assets, z.B. eines Flugzeugs, einer Windturbine, einem Gerät im Gesundheitswesen und Ähnliches, verwendet werden. In diesem Beispiel können die vom Asset 730 zurückgemeldeten Daten in das Modell für maschinelles Lernen eingegeben und für die Vorhersage von Ereignissen wie z.B. Ausfällen, Fehlercodes usw. verwendet werden. Festlegungen, die durch das Ausführen des Modells für maschinelles Lernen in der Host-Plattform 720 getroffen werden, können in der Blockchain 710 gespeichert werden, um einen prüfbaren/überprüfbaren Nachweis bereitzustellen. Bei einem nichteinschränkenden Beispiel kann das Modell für maschinelles Lernen einen zukünftigen Ausfall/Fehler eines Teils des Assets 730 vorhersagen und eine Warnung oder eine Benachrichtigung zum Austauschen des Teils erzeugen. Die Daten, die dieser Entscheidung zugrunde liegen, können von der Host-Plattform 720 in der Blockchain 710 gespeichert werden. In einer Ausführungsform können die hier beschriebenen und/oder abgebildeten Funktionen und/oder Maßnahmen in der Blockchain 710 oder in Bezug auf diese durchgeführt werden.
  • Neue Transaktionen für eine Blockchain können in einem neuen Block zusammengefasst und zu einem bestehenden Hash-Wert hinzugefügt werden. Dieser wird dann verschlüsselt, um einen neuen Hash für den neuen Block zu erzeugen. Dieser wird der nächsten Liste von Transaktionen hinzugefügt, wenn diese verschlüsselt sind, usw. Das Ergebnis ist eine Kette von Blöcken, von denen jeder die Hash-Werte aller vorhergehenden Blöcke enthält. Computer, die diese Blöcke speichern, vergleichen regelmäßig ihre Hash-Werte, um sicherzustellen, dass sie alle übereinstimmen. Stellt einer der Computer einen Fehler fest, verwirft er die Datensätze, die das Problem verursachen. Dieser Ansatz ist gut geeignet, um die Manipulationssicherheit der Blockchain zu gewährleisten, aber er ist nicht perfekt.
  • Eine Möglichkeit, wie ein unehrlicher Benutzer dieses System umgehen kann, besteht darin, dass dieser die Liste der Transaktionen zu seinen Gunsten verändert, jedoch so, dass der Hash unverändert bleibt. Dies kann durch eine Brute-Force-Methode geschehen, d.h. durch Ändern eines Datensatzes, Verschlüsseln des Ergebnisses und Prüfen, ob der Hash-Wert derselbe ist. Und wenn dies nicht der Fall ist, wird dies wieder und wieder versucht, bis ein übereinstimmender Hash gefunden wird. Die Sicherheit von Blockchains beruht auf der Überzeugung, dass gewöhnliche Computer diese Art von Brute-Force-Angriffen nur in Zeiträumen durchführen können, die völlig utopisch sind, wie etwa das Alter des Universums. Im Gegensatz dazu sind Quantencomputer viel schneller (tausende Male schneller) und stellen daher eine viel größere Gefahr dar.
  • 7B zeigt ein Beispiel 750 für eine quantensichere Blockchain 752, die eine Quantenschlüsselverteilung (quantum key distribution - QKD) zum Schutz vor einem Quantencomputerangriff implementiert. In diesem Beispiel können die Benutzer der Blockchain die Identität der anderen Benutzer mit QKD überprüfen. Dabei werden Informationen mithilfe von Quantenteilchen wie Photonen übertragen, die von einem Abhörer nicht kopiert werden können, ohne sie zu zerstören. Auf diese Weise können sich ein Sender und ein Empfänger in der Blockchain der Identität des jeweils anderen sicher sein.
  • In dem Beispiel von 7B gibt es die vier Benutzer 754, 756, 758 und 760. Jedes Benutzerpaar kann einen geheimen Schlüssel 762 (d.h. eine QKD) untereinander nutzen. Da es in diesem Beispiel vier Knoten gibt, sind sechs Knotenpaare vorhanden, und daher werden sechs verschiedene geheime Schlüssel 762 verwendet, darunter QKDAB, QKDAC, QKDAD, QKDBC, QKDBD und QKDCD. Jedes Paar kann eine QKD erzeugen, indem es Informationen mithilfe von Quantenteilchen wie Photonen überträgt, die von einem Abhörer nicht kopiert werden können, ohne sie zu zerstören. Auf diese Weise kann sich ein Benutzerpaar der Identität des jeweils anderen sicher sein.
  • Die Funktion der Blockchain 752 beruht auf den beiden Verfahren (i) Erzeugen von Transaktionen und (ii) Bilden von Blöcken, die die neuen Transaktionen zusammenfassen. Neue Transaktionen können ähnlich wie in einem herkömmlichen Blockchain-Netzwerk erzeugt werden. Jede Transaktion kann Informationen über einen Sender, einen Empfänger, einen Erzeugungszeitpunkt, einen zu überweisenden Betrag (oder Wert), eine Liste von Verweistransaktionen, die belegen, dass der Absender über die nötigen Mittel für die Operation verfügt, und Ähnliches enthalten. Dieser Transaktionsdatensatz wird dann an alle anderen Knoten gesendet, wo er in einen Pool von unbestätigten Transaktionen aufgenommen wird. Hier authentifizieren zwei Parteien (d.h. ein Paar der Benutzer 754 bis 760) die Transaktion durch Bereitstellen ihres gemeinsam genutzten geheimen Schlüssels 762 (QKD). Diese Quantensignatur kann an jede Transaktion angehängt werden, wodurch sie äußerst schwer zu fälschen ist. Jeder Knoten prüft seine Einträge anhand einer lokalen Kopie der Blockchain 752, um zu überprüfen, ob jede Transaktion über ausreichende Mittel verfügt. Die Transaktionen sind jedoch noch nicht bestätigt.
  • Anstatt einen herkömmlichen Mining-Prozess bei den Blöcken durchzuführen, können die Blöcke dezentral mithilfe eines Übertragungsprotokolls erzeugt werden. Nach einer vorher festgelegten Zeitspanne (z.B. Sekunden, Minuten, Stunden usw.) kann das Netzwerk das Übertragungsprotokoll auf jede unbestätigte Transaktion anwenden, um so eine byzantinische Einigung (Konsens) über eine korrekte Version der Transaktion zu erzielen. So kann jeder Knoten beispielsweise einen privaten Wert (Transaktionsdaten des jeweiligen Knotens) besitzen. In einem ersten Durchgang übermitteln die Knoten sich gegenseitig ihre privaten Werte. In den folgenden Durchgängen übertragen die Knoten die Informationen, die sie im vorherigen Durchgang von anderen Knoten empfangen haben. In diesem Fall sind ehrliche Knoten in der Lage, einen kompletten Satz von Transaktionen in einem neuen Block zu erzeugen. Dieser neue Block kann der Blockchain 752 hinzugefügt werden. In einer Ausführungsform können die hier beschriebenen und/oder abgebildeten Funktionen und/oder Maßnahmen in der Blockchain 752 oder in Bezug auf diese durchgeführt werden.
  • Mit Bezug nunmehr auf 8 ist ein allgemeines Blockschaltbild eines beispielhaften Computersystems 800 dargestellt, das zum Implementieren eines oder mehrerer der hier beschriebenen Verfahren, Tools und Module sowie der damit verbundenen Funktionen (z.B. Verwenden von einem oder mehreren Prozessorschaltkreisen oder Computerprozessoren des Computers) gemäß Ausführungsformen der vorliegenden Offenbarung verwendet wird. Bei diesem Computersystem kann es sich in einigen Ausführungsformen wie vorstehend beschrieben um ein DVS 10 handeln. In einigen Ausführungsformen können die wichtigsten Komponenten des Computersystems 800 eine oder mehrere CPUs 802, ein Speicherteilsystem 804, eine Terminalschnittstelle 812, eine Speicherschnittstelle 816, eine E/A-(Eingabe/Ausgabe-)Einheitenschnittstelle 814 und eine Netzwerkschnittstelle 818 umfassen, die alle direkt oder indirekt zum Austauschen von Daten zwischen den Komponenten über einen Speicherbus 803, einen E/A-Bus 808 und eine E/A-Busschnittstelleneinheit 810 zum Zwecke der Datenübertragung verbunden sind.
  • Das Computersystem 800 kann eine oder mehrere programmierbare Universal-Zentraleinheiten (CPUs) 802A, 802B, 802C und 802D enthalten, die hier allgemein als CPU 802 bezeichnet werden. In einigen Ausführungsformen kann das Computersystem 800 mehrere Prozessoren enthalten, die für relativ große Systeme die Regel sind; in anderen Ausführungsformen kann es sich bei dem Computersystem 800 jedoch alternativ um ein einzelnes CPU-System handeln. Jede CPU 802 kann Anweisungen ausführen, die in dem Speicherteilsystem 804 gespeichert sind, und kann eine oder mehrere Ebenen eines integrierten Cache enthalten.
  • Der Systemspeicher 804 kann durch ein Computersystem lesbare Medien in Form von flüchtigen Speichern, z.B. Direktzugriffsspeicher (RAM) 822 und/oder Cache 824, enthalten. Das Computersystem 800 kann ferner weitere wechselbare/nichtwechselbare, flüchtige/nichtflüchtige Speichermedien eines Computersystems enthalten. Nur beispielhaft kann das Speichersystem 826 bereitgestellt werden, um ein nichtwechselbares, nichtflüchtiges magnetisches Medium wie eine „Festplatte“ auszulesen und zu beschreiben. Obwohl nicht dargestellt, können ein Laufwerk für magnetische Speicherplatten zum Auslesen und Beschreiben einer wechselbaren, nichtflüchtigen magnetischen Speicherplatte (z.B. „Diskette“) und ein Laufwerk für optische Speicherplatten zum Auslesen oder Beschreiben einer wechselbaren, nichtflüchtigen optischen Speicherplatte wie einer CD-ROM, DVD-ROM und andere optische Medien bereitgestellt werden. Der Speicher 804 kann darüber hinaus einen Flash-Speicher enthalten, z.B. einen Flash-Speicherstick oder ein Flash-Laufwerk. Die Speichereinheiten können über eine oder mehrere Datenmedien-Schnittstellen mit dem Speicherbus 803 verbunden sein. Der Speicher 804 kann mindestens ein Programmprodukt mit einem (z.B. mindestens einem) Satz von Programmmodulen enthalten, die so konfiguriert sind, dass sie die Funktionen verschiedener Ausführungsformen ausführen.
  • Ein oder mehrere Programme/Dienstprogramme 828 mit mindestens einem Satz von Programmmodulen 830 können im Speicher 804 gespeichert werden. Die Programme/Dienstprogramme 828 können einen Hypervisor (auch als virtuellen Maschinenmonitor bezeichnet) ein oder mehrere Betriebssysteme, ein oder mehrere Anwendungsprogramme, andere Programmmodule und Programmdaten umfassen. Jedes der Betriebssysteme, ein oder mehrere Anwendungsprogramme, weitere Programmmodule und Programmdaten oder eine Kombination daraus können jeweils eine Implementierung einer Netzwerkumgebung enthalten. Die Programme 828 und/oder Programmmodule 830 führen im Allgemeinen die Funktionen oder Methodiken verschiedener Ausführungsformen aus.
  • Der Speicherbus 803 ist in 8 zwar als einzelne Busstruktur dargestellt, die einen direkten Datenübertragungspfad zwischen den CPUs 802, dem Speicherteilsystem 804 und der E/A-Busschnittstelle 810 bereitstellt, der Speicherbus 803 kann in einigen Ausführungsformen jedoch mehrere verschiedene Busse oder Datenübertragungspfade umfassen, die in verschiedenen Formen wie Punkt-zu-Punkt-Verbindungen in hierarchischen, sternförmigen oder Netzkonfigurationen, mehreren hierarchischen Busse, parallelen und redundanten Pfaden oder jeder anderen geeigneten Art von Konfiguration angeordnet sein können. Die E/A-Busschnittstelle 810 und der E/A-Bus 808 sind zwar jeweils als einzelne Einheiten dargestellt, das Computersystem 800 kann in einigen Ausführungsformen jedoch mehrere E/A-Busschnittstelleneinheiten 810, mehrere E/A-Busse 808 oder beides enthalten. Es werden weiterhin zwar mehrere E/A-Schnittstelleneinheiten gezeigt, die den E/A-Bus 808 von den verschiedenen Datenübertragungspfaden trennen, die zu den verschiedenen E/A-Einheiten führen, in anderen Ausführungsformen können einige oder alle E/A-Einheiten direkt mit einem oder mehreren E/A-Systembussen verbunden sein.
  • In einigen Ausführungsformen kann es sich bei dem Computersystem 800 um ein Mehrbenutzer-Großrechnersystem, ein Einzelbenutzersystem oder einen Server-Computer oder eine ähnliche Einheit handeln, das/der/die kaum eine oder keine direkte Benutzerschnittstelle hat, jedoch Anforderungen von anderen Computersystemen (Clients) empfängt. In einigen Ausführungsformen kann das Computersystem 800 weiterhin als Desktop-Computer, tragbarer Computer, Laptop- oder Notebook-Computer, Tablet-Computer, Taschencomputer, Telefon, Smartphone, Netzwerk-Switch oder Router oder jede andere geeignete Art von elektrischer Einheit implementiert werden.
  • 8 zeigt die repräsentativen Hauptkomponenten eines beispielhaften Computersystems 800. In einigen Ausführungsformen können einzelne Komponenten jedoch eine größere oder geringere Komplexität aufweisen als in 8 dargestellt, andere oder zusätzliche Komponenten als die in 8 gezeigten können vorhanden sein, und Anzahl, Art und Konfiguration dieser Komponenten können variieren.
  • Wie hier näher erläutert, ist vorgesehen, dass einige oder alle Operationen einiger der Ausführungsformen der hier beschriebenen Verfahren in alternativer Reihenfolge oder überhaupt nicht durchgeführt werden können; außerdem können mehrere Operationen gleichzeitig oder als Bestandteil eines größeren Prozesses erfolgen.
  • NACHHALTIGE TOKEN
  • Angesichts der Tatsache, dass umweltbewusste Unternehmensziele für Organisationen immer mehr an Bedeutung gewinnen, werden viele Mechanismen in Betracht gezogen, die zur Förderung dieser Ziele beitragen können. Für jede Lieferkette, die physische Waren umfasst, sind Mittel zum Befördern dieser Waren und/oder ihrer Bestandteile von Punkt A nach Punkt B sowie möglicherweise viele Zwischenstationen erforderlich. Wie bei jeder Art des Transports ist für die Beförderung eines Gegenstands mit einem Fahrzeug eine Energiequelle erforderlich, sei es ein benzinbetriebener Lastwagen, ein atombetriebenes Schiff, ein Elektroauto usw.
  • Kohlendioxid (CO2) gilt als eines der am weitesten verbreiteten Treibhausgase, und eine Verringerung der Freisetzung dieses Gases (neben anderen) in die Atmosphäre wird als wesentlich angesehen, um sicherzustellen, dass die globale Erwärmung nicht ein katastrophales Ausmaß erreicht. Durch die meisten Verkehrsmittel wird letztlich CO2 erzeugt. Selbst scheinbar saubere Verkehrsmittel wie Elektrofahrzeuge sind möglicherweise nicht vollständig sauber. Bei Elektrofahrzeugen kann zum Beispiel eine gewisse Menge an CO2 erzeugt werden, da der Strom zum Aufladen der Autobatterien möglicherweise eine gewisse Menge CO2 in die Atmosphäre freigesetzt hat, und bei der Erzeugung von Solarzellen kann dies ebenso der Fall sein. Es ist jedoch klar, dass einige Verkehrsmittel weniger CO2 freisetzen als andere. Die Verkehrsmittel, die weniger CO2 freisetzen, haben einen geringen CO2-Fußabdruck, während diejenigen, die mehr CO2 freisetzen, einen großen CO2-Fußabdruck haben. Es wird als wünschenswert erachtet, bei sonst gleichen Faktoren einen geringeren CO2-Fußabdruck pro Wareneinheit zu haben.
  • Die vorliegende Offenbarung bezieht sich auf eine Möglichkeit, zur Verringerung des CO2-Fußabdrucks in der Lieferkette beizutragen, insbesondere durch Bereitstellen von Anreizen in Form einer Belohnung für die Verwendung von Elementen in der Lieferkette, die einen geringeren CO2-Fußabdruck aufweisen. Diese Anreize umfassen das Erzeugen und Verwenden von nachhaltigen Token mit Werten für nachhaltige Token für die Lieferkette bei gleichzeitiger Wahrung des Datenschutzes der beteiligten Parteien. Wie hier verwendet, handelt es sich bei einem nachhaltigen Token um eine Belohnung in Form einer virtuellen Währung, die einem Benutzer, Hersteller oder einem anderen Unternehmen in der Lieferkette bereitgestellt werden kann, um umweltfreundliche Praktiken zu fördern. Diese nachhaltigen Token haben die folgenden grundlegenden Eigenschaften: sie werden auf der Grundlage eines oder mehrerer Faktoren im Zusammenhang mit CO2-Emissionen erzeugt, sie haben einen Geschäftswert und sie können durch die Nutzung der Liefer-Blockchain für den Transport verdient werden. Es ist jedoch wichtig, dass in der Chain keine sensiblen Informationen zur Verfügung stehen und dass die Berechnung der CO2-Emissionen sowie die Zuweisung verdienter Token ohne Datenlecks erfolgt (d.h., dass private Daten an Stellen gelangen, die diese Daten nicht haben sollten). Einige Ausführungsformen können einen oder mehrere Vorteile in Bezug auf nachhaltige Token und/oder das hier offenbarte System bereitstellen. Nachhaltige Token können einen monetären Wert haben und in andere Währungen (virtuell und nichtvirtuell) konvertierbar sein; auf diese Weise können nachhaltige Token zwischen Unternehmen geteilt werden. Nachhaltige Token können Unternehmen dabei helfen, als „klimafreundlich“ zertifiziert zu werden und so ihre Attraktivität für Kunden und andere Unternehmen zu erhöhen. Nachhaltige Token können durch die Art, den Wert oder andere Merkmale der Warenlieferung geändert werden. Schließlich kann die Nutzung von Optimierungsdiensten in der Blockchain zu einer größeren Anzahl nachhaltiger Token sowie zu geringeren Kosten führen. Bei einigen Aspekten können die nachhaltigen Token ähnlich wie Kryptowährungen sein. Umweltorganisationen können sich mit anderen Organisationen zusammenschließen, um nachhaltige Token im Rahmen von Zertifizierungsprogrammen zu verwalten.
  • Gemäß verschiedenen hier offenbarten Ausführungsformen können eines oder mehrere der folgenden Lösungselemente verwendet werden. Die Verwaltung der Mitgliedschaft der Parteien kann von der Blockchain-Netzwerkverwaltung übernommen werden. Die Homologierung (nachstehend als „Zulassung“ durch eine öffentliche Stelle bezeichnet, bei der es sich um bestimmte Klimaschutzorganisationen handeln kann) für jedes Transportmittel und die Spezifikation der CO2-Emissionen können von Klimaschutzorganisationen vorgelegt werden, die bestimmte Kriterien erfüllen. Ein datenschutzerhaltendes Token-Erzeugungsprotokoll kann bereitgestellt werden, an dem ein oder mehrere Hersteller und Transportunternehmen beteiligt sind. Die Chain kann für das Berechnen der CO2-Emissionen, das Erzeugen der Token und deren Zuweisen an die Unternehmen zuständig sein. Wenn Variablen wie mehrere Bestellungen, Unternehmen und Transportmittel eine Rolle spielen, kann das System in einigen Ausführungsformen das Erzeugen von Token maximieren, indem es diese Variablen optimiert. Klimaschutzorganisationen können als Homologatoren („Zulassungsstellen“) von Daten im Zusammenhang mit CO2-Fußabdrücken fungieren, indem sie dem Blockchain-Netzwerk Informationen über die CO2-Emissionen jedes Transportmittels bereitstellen und Transportunternehmen eine Mitgliedszertifizierung gewähren.
  • 9 ist ein Blockschaubild, das verschiedene Komponente des Systems 900 für nachhaltige Token veranschaulicht. Das System 900 verwendet ein Blockchain-Netzwerk 910 als elektronisches Ledger zum Aufzeichnen von Transaktionen. Ein Controller 905 kann verwendet werden, um andere Funktionen in Verbindung mit dem hier beschriebenen System 900 für nachhaltige Token zu steuern, zu koordinieren und durchzuführen. Der Controller 905 kann in einem unabhängigen System betrieben werden und mit dem Blockchain-Netzwerk 910 verbunden sein, oder er kann in das Blockchain-Netzwerk 910 integriert sein. Der Controller 905 kann zum Beispiel in einem wie vorstehend beschriebenen DVS 10 implementiert sein.
  • In der folgenden Erörterung wird ein Anwendungsfall zur Veranschaulichung verschiedener Merkmale des Systems 900 verwendet, die Erfindung sollte jedoch nicht als auf die im Anwendungsfall dargestellten Einzelheiten beschränkt angesehen werden. Im Anwendungsfall liefert ein erster Holzhersteller 920A (FirstCo) Holz in Form von Bauholz als physisches Produkt an seine Kunden 950. Ein zweiter Holzhersteller 920B (SecondCo) liefert das gleiche Produkt. Der FirstCo verwendet hauptsächlich einen Lkw 922A für den Transport, und der SecondCo verwendet hauptsächlich ein Schiff 922B für den Transport. Hier kann eine Bezugsziffer ohne Buchstabensuffix verwendet werden, wenn es sich um gemeinsame oder repräsentative Elemente handelt.
  • Sobald das Blockchain-Netzwerk 910 von einem Erzeuger (nicht dargestellt) eingerichtet wurde, können die Hersteller 920 jeweils eine Adresse A im Blockchain-Netzwerk 910 zusammen mit einem zugehörigen Paar aus öffentlichem Schlüssel APuk und privatem Schlüssel APrK erzeugen, wobei der private Schlüssel APrK nur dem jeweiligen Hersteller 920 bekannt ist. Dieses Verfahren kann für jede Bestellung oder in einer vordefinierten Häufigkeit durchgeführt werden, um zu verhindern, dass Informationen von Bestellungen miteinander verknüpft werden, was den Datenschutz gefährden könnte. Im Anwendungsfall kann ein Kunde 950 eine Bestellung O für fünfzig 2,4 m × 5 cm × 10 cm erteilen, die an Hauptstraße 123 (Punkt B, wobei der FirstCo Punkt A ist) geliefert werden soll. Ein Hersteller wie der FirstCo 920A kann bestimmte Informationen im Zusammenhang mit der Bestellung O festlegen, darunter sowohl öffentliche als auch private Informationen. Er kann zum Beispiel die öffentlichen Bestellinformationen OPul festlegen, um darin aufzunehmen, dass die Entfernung zwischen PunktA und PunktB dreihundert Kilometer beträgt, das Gewicht des Pakets einhundert Kilogramm beträgt und der Container mit dem Produkt eine Größe von 1,2 m × 1,2 m × 2,4 m hat. Er kann weiterhin festlegen, dass die privaten Bestellinformationen OPrl den Inhalt der Bestellung selbst umfassen, z.B. die übertragenen Produkte, den Inhalt usw. Diese privaten Informationen können nur maßgeblichen oder berechtigten Parteien offengelegt werden. Dies steht im Gegensatz zu den öffentlichen Bestellinformationen OPul, die notwendige Informationen enthalten (z.B. Informationen, die erforderlich sind, um die Waren von Punkt A nach Punkt B zu transportieren, und/oder Informationen, die erforderlich sind, um den CO2-Fußabdruck zu berechnen). Anders ausgedrückt können die privaten Bestellinformationen OPrl teilweise oder ausschließlich Informationen über die Bestellung umfassen, die für den Transport oder die Ermittlung eines der Bestellung zugehörigen CO2-Fußabdrucks nicht erforderlich sind.
  • Der Hersteller, First Co 420A im Anwendungsfall, kann zunächst einen Hash über den privaten Bestellinformationen H(OPrl) und anschließend einen Hash über den öffentlichen Bestellinformationen H(OPul) erzeugen, der den Hash der privaten Bestellinformationen H(OPrl) enthalten kann. Es kann jede Form eines sicheren Hash verwendet werden, z.B. MD5, SHA-2 und CRC32. Der Hash der öffentlichen Bestellinformationen kann dann unter Verwendung des privaten Schlüssels der Adresse APrK (H(OPUl)) signiert werden, um einen signierten Hash der öffentlichen Bestellinformationen sH(OPul) zu erzeugen (hier auch als Signatur bezeichnet).
  • Der Hersteller First Co 920A kann die Bestellanforderung OR, die den berechneten Hash H(OPul), die Signatur sH(OPul) und die Adresse enthält, an das Transportunternehmen des Lkw 922A senden. Das Transportunternehmen kann dann die Bestellung O ausführen und die Transaktion an das Blockchain-Netzwerk 910 senden (z.B. als Teil einer automatisierten Funktion des Transportunternehmens, als Teil einer Maßnahme, die von einem Betreiber des Transportunternehmens ausgeführt wird, z.B. das Unterzeichnen einer Empfangsquittung, oder durch jedes andere Mittel, das mit dieser Offenbarung in Einklang steht). Der dem Blockchain-Netzwerk 910 zugehörige Controller 905 kann a) die von dem Transportunternehmen gesendete Transaktion validieren, die eine Transportsignatur, die Signatur des Herstellers sh(OPul) auf der Grundlage der Bestelldaten und die Adresse enthalten kann, b) verdiente nachhaltige Token auf der Grundlage des CO2-Verbrauchs des Transports (und jedes anderen CO2-erzeugenden Elements) berechnen und c) die nachhaltigen Token der angegebenen Adresse zuweisen. Beim Zuweisen der nachhaltigen Token kann ein Zuweisen in das Blockchain-Ledger aufgezeichnet werden.
  • Um sicherzustellen, dass eine korrekte Authentifizierung des CO2-Fußabdrucks verwendet wird, können verschiedene Klimaschutzorganisationen 924 dem Controller 905 des Blockchain-Netzwerks 910 Informationen zum CO2-Fußabdruck bereitstellen. Eine erste Klimaschutzorganisation 924A kann zum Beispiel die Angaben zu den CO2-Emissionen in Bezug auf das Transportmittel, bei dem es sich um einen Lkw 922A handelt, dem Lkw-Transportunternehmen bereitstellen, das den Lkw 922A verwendet, und eine zweite Klimaschutzorganisation 924B kann Angaben zu den CO2-Emissionen in Bezug auf das Transportmittel, bei dem es sich um ein Schiff 922B handelt, dem Schiffstransportunternehmen bereitstellen, das das Schiff 922B verwendet. Diese Informationen können auf der Motorgröße, Ladungen, Fahrzeugalter usw. beruhen und eine Vielfalt von Faktoren in Bezug auf das Fahrzeug, Streckeninformationen usw. berücksichtigen.
  • Zusätzlich dazu, dass dem Controller 905 die Informationen über den CO2-Fußabdruck bereitgestellt werden, kann die Klimaschutzorganisation 924 weiterhin eine Genehmigung und/oder Zertifizierung darüber bereitstellen, dass die dem Fahrzeug zugehörigen Informationen richtig sind. Das Fahrzeug 922 kann Informationen über die Lieferung der Bestellung O und deren Status senden. Danach kann es seine Informationen an den Controller 905 des Blockchain-Netzwerks senden, der dann die Lieferung dieser Bestellung O und den Status zusammen mit den von der Klimaschutzorganisation 924A bereitgestellten Informationen zum CO2-Fußabdruck berücksichtigen kann, um dem Betrieb 920 die ermittelten nachhaltigen Token zuzuweisen.
  • Zur Veranschaulichung werden folgende Anwendungsfälle betrachtet. Die nachhaltigen Token können auf der Grundlage einer Verringerung (oder einer negativen Änderung) der CO2-Emissionen vergeben werden. Um eine Änderung zu messen, können Vergleichseinheiten und eine Vergleichsmessung festgelegt werden, um eine vordefinierte Vergleichsmenge von CO2-Emissionen zu definieren. Bei den Vergleichseinheiten kann es sich beispielsweise um CO2-Masse pro Entfernung, pro Gewicht der Nutzlast, z.B. Kilogramm (kg) CO2 pro Kilometer (km) pro kg Nutzlast handeln. Auf diese Weise kann der CO2-Fußabdruck für die Fahrt zwischen PunktA und PunktB durch effizientere Antriebsmechanismen verringert werden. Zur Veranschaulichung anhand eines früheren Beispiels kann FirstCo 920A die Lkw 922A für den Transport verwenden. Als Vergleichswert wurde ermittelt, dass die Lkw bei einer Nutzlast von 10.000 kg 1,5 kg CO2 pro km ausstoßen, wenn sie mit Normalbenzin betrieben werden, wie es bei FirstCo Standardbetriebsverfahren ist. Die Lieferung der Bestellung O mit 100 kg für die 300 km zwischen PunktA und PunktB (und unter der Annahme, dass das Fahrzeug eine volle Nutzlast von 10.000 kg hat) ergibt somit einen CO2-Ausstoß von:
  • 1,5   k g   C O 2 k m × 100   k g 10.000   k g × 300   k m = 4,5   k g   C O 2
    Figure DE112021003971T5_0001
  • Der „Wert“ eines nachhaltigen Tokens kann beliebig festgelegt werden, z.B. 1 nachhaltiger Token = 1 kg CO2-Einsparung. Dieser Wert ist willkürlich, da der Wert des nachhaltigen Tokens einen Umrechnungswert mit Einheiten der realen Währung hat, z.B. 1 nachhaltiger Token kann zu einem bestimmten Zeitpunkt einen Umrechnungskurs von 5 USD haben.
  • Wenn das Beispiel fortgesetzt wird, kann festgestellt werden, dass durch die Verwendung von Benzin auf Ethanolbasis die Lkw-Emissionen unter denselben Bedingungen verringert werden auf nur 1,2 kg CO2, das heißt, dass die Verwendung eines Lkw auf Ethanolbasis für die Lieferung der Bestellung O eine CO2-Emission ergibt von:
  • 1,2   k g   C O 2 k m × 100   k g 10.000   k g × 300   k m = 3,6   k g   C O 2
    Figure DE112021003971T5_0002
  • Der Unterschied bei den CO2-Emissionen zwischen der Verwendung von Normalbenzin und Benzin auf Ethanolbasis für diese Bestellung O beträgt 0,9 kg CO2, was unter Verwendung der vorstehenden Zahlen zu einem Wert des nachhaltigen Tokens von 0,9 führt, der an eine Entität in der Blockchain 910 übertragen werden kann: entweder an das Transportunternehmen mit dem Lkw 922A oder an den FirstCo 920A, je nach den Vereinbarungen zwischen den beteiligten Parteien. Die Verwendung eines Elektrofahrzeugs kann zu noch größeren Einsparungen führen, wenn voraussichtlich auch nicht zu 100 %, da die Erzeugung von Strom zum Aufladen der Batterien des Elektrofahrzeugs oder zum Herstellen von Solarzellen immer noch dazu führen dürfte, dass eine gewisse Menge an CO2 erzeugt wird, die bei der Berechnung des CO2-Fußabdrucks berücksichtigt werden sollte.
  • Der Vergleichswert kann für ein bestimmtes Transportunternehmen 922 (um dieses Unternehmen zu ermutigen, Strategien zum Verringern von CO2-Emissionen zu entwickeln), einen bestimmten Hersteller 920 (um diesen Hersteller zu ermutigen, das CO2-freundlichste Transportmittel zu verwenden), die gesamte Branche (um den Wettbewerb bei der Suche nach dem CO2-freundlichsten Transportmittel zu maximieren) oder für andere Vergleichskriterien festgelegt werden, die zum Verringern der CO2-Emissionen beitragen können.
  • Beim Ermitteln der Einsparungen (für das CO2-Emissionsdelta) können neben einer Verbesserung der Fahrzeugeffizienz wie vorstehend beschrieben verschiedene anrechenbare Ursachen für eine Änderung berücksichtigt werden. Auch eine Verbesserung der Streckenführung kann in Betracht gezogen werden. Wenn beispielsweise eine neue Strecke zwischen PunktA und PunktB gefunden wird, durch die die Entfernung von 300 km auf 250 km verringert wird, kann eine Gutschrift von nachhaltigen Token gewährt werden, die diese Verringerung der Entfernung widerspiegelt. In einem anderen Fall kann eine Verbesserung der Einteilung in Betracht gezogen werden. Wenn der Vergleichswert auf einer typischen halbvollen Ladung beruht (z.B. 5.000 kg). Wenn der Kunde 950, der Hersteller 920 und/oder das Transportunternehmen 922 bereit sind, eine Verzögerung in Kauf zu nehmen, z.B. bis eine volle Ladung mit 10.000 kg für den Lkw 922A erworben werden kann, kann die Gutschrift von nachhaltigen Token dies ebenfalls widerspiegeln. In einem anderen Fall kann eine Verbesserung der Koordinierung in Betracht gezogen werden. Wenn Hersteller bereit sind, einen bestimmten Transport zu koordinieren und gemeinsam zu nutzen, kann die sich ergebende Verringerung der CO2-Emissionen mit nachhaltigen Token gutgeschrieben werden, die die Einsparungen widerspiegeln. Wenn der Kunde 950 beispielsweise FirstCo 920A eine Bestellung-1 O1 und SecondCo 920B eine Bestellung-2 O2 erteilt und wenn sich FirstCo 920A und SecondCo 920B weiterhin in unmittelbarer Nähe befinden (oder auch nur so, dass durch eine kombinierte Lieferung CO2-Emissionen eingespart werden können), können FirstCo 920A und SecondCo 920B vereinbaren, ein bestimmtes Fahrzeug (Lkw 922A) zu verwenden, um O1 und O2 an den Kunden 950 zu liefern, was zu einer Verringerung der CO2-Gesamtemissionen führt (und daraus sich ergebende nachhaltige Token).
  • Vorstehend werden zwar nur sehr vereinfachte Darstellungen verwendet, es können jedoch auch komplexere Lösungen in Betracht gezogen werden, z.B. die Verwendung mehrerer Transportunternehmen für eine bestimmte Bestellung O, die mehrfache Kombination und Neuordnung aller zu liefernden Bestellungen O usw.
  • 10 ist ein Ablaufplan beispielhafter Prozesse 1000, 1050 gemäß einigen Ausführungsformen. Der erste Prozess 1000 umfasst Operationen, die vom Hersteller 920 durchgeführt werden können, und der zweite Prozess 1050 umfasst Operationen, die vom Controller 905 durchgeführt werden können.
  • Im ersten Prozess 1000 kann der Hersteller 920 in Operation 1005 eine Bestellanforderung ausgeben, die auf einer Bestellung beruht, die der Hersteller 920 vom Kunden 950 erhalten hat. Der Hersteller 920 kann in Operation 1010 eine Adresse in dem Blockchain-Netzwerk 910 zusammen mit einem öffentlichen Schlüssel und einem privaten Schlüssel erzeugen, wobei letzterer vom Hersteller 920 aufbewahrt wird. Der Hersteller 920 kann in Operation 1015 einen Hash der öffentlichen Bestellinformationen und den Hash der privaten Bestellinformationen erzeugen. Der Hersteller 920 kann in Operation 1020 auf der Grundlage des privaten Schlüssels der Adresse weiterhin eine Signatur des Hash erzeugen. Der Hersteller 920 kann die Bestellanforderung zusammen mit dem Hash, der Signatur und der Adresse im Blockchain-Netzwerk 910 an das Transportunternehmen 922 senden.
  • Im zweiten Prozess 1050 empfängt der Controller 905 im Blockchain-Netzwerk 910 in Operation 1055 eine Mitteilung vom Transportunternehmen 922, dass die Bestellung ausgeführt worden ist, d.h., dass das Produkt ausgeliefert wurde. Der Controller 905 validiert die vom Transportunternehmen 922 gesendete Transaktion, einschließlich der Transportsignatur und der Herstellersignatur anhand der Bestelldaten und der Adresse. Der Controller berechnet anschließend in Operation 1060 die verdienten nachhalten Token auf der Grundlage eines CO2-Unterschieds in Bezug auf einen Vergleichswert und weist in Operation 1065 die verdienten nachhaltigen Token der empfangenen Adresse zu, mit denen der Entität auf der Grundlage der Verbesserung des CO2-Fußabdrucks eine Gutschrift gewährt wird.
  • TECHNISCHE ANWENDUNG
  • Die hier offenbarte(n) Ausführungsform(en) stellen somit eine Verbesserung der Computertechnologie dar. Eine Verbesserung eines digitalen Transaktions-Ledger und eines Systems, das nachhaltige Token unter gleichzeitiger Wahrung des Datenschutzes verwendet, ermöglicht beispielsweise eine effizientere und wirksamere Dokumentation von Computertransaktionen, die mehr Sicherheit bieten und eine Verringerung des CO2-Fußabdrucks fördern.
  • DURCH EINEN COMPUTER LESBARE MEDIEN
  • Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder durch einen Computer lesbare Medien auf jedem möglichen technischen Detaillierungsgrad der Integration handeln. Das Computerprogrammprodukt kann (ein) durch einen Computer lesbare(s) Speichermedium (oder -medien) umfassen, auf dem/denen durch einen Computer lesbare Programmanweisungen gespeichert ist/sind, um einen Prozessor dazu zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
  • Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Anweisungen zur Verwendung durch eine Einheit zur Ausführung von Anweisungen behalten und speichern kann. Bei dem durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder jede geeignete Kombination daraus handeln, ohne auf diese beschränkt zu sein. Zu einer nicht erschöpfenden Liste spezifischerer Beispiele des durch einen Computer lesbaren Speichermediums gehören die Folgenden: eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM bzw. Flash-Speicher), ein statischer Direktzugriffsspeicher (SRAM), ein tragbarer Kompaktspeicherplatte-Nur-Lese-Speicher (CD-ROM), eine DVD (digital versatile disc), ein Speicher-Stick, eine Diskette, eine mechanisch codierte Einheit wie zum Beispiel Lochkarten oder gehobene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination daraus. Ein durch einen Computer lesbares Speichermedium soll in der Verwendung hier nicht als flüchtige Signale an sich aufgefasst werden, wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder ein anderes Übertragungsmedium ausbreiten (z.B. Lichtwellenleiterkabel durchlaufende Lichtimpulse) oder durch einen Draht übertragene elektrische Signale.
  • Hier beschriebene, durch einen Computer lesbare Programmanweisungen können von einem durch einen Computer lesbaren Speichermedium auf jeweilige Datenverarbeitungs-/Verarbeitungseinheiten oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetzwerk und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Router, Firewalls, Vermittlungseinheiten, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in 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 entsprechenden Datenverarbeitungs-/Verarbeitungseinheit weiter.
  • Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Arbeitsschritten der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten, Konfigurationsdaten für integrierte Schaltungen oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben werden, darunter objektorientierte Programmiersprachen wie Smalltalk, C++ o. ä. sowie prozedurale Programmiersprachen wie 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 Software-Paket, 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. In letzterem Fall kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch eine beliebige Art Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetzwerk (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters). In einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, vor Ort programmierbare Gatter-Anordnungen (FPGA, field programmable gate arrays) oder programmierbare Logikanordnungen (PLA, programmable logic arrays) die durch einen Computer lesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der durch einen Computer lesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.
  • Aspekte der vorliegenden Erfindung sind hier unter Bezugnahme auf Ablaufpläne und/oder Blockschaubilder bzw. Schaltbildern von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es wird darauf hingewiesen, dass jeder Block der Ablaufpläne und/oder der Blockschaubilder bzw. Schaltbilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder den Blockschaubildern bzw. Schaltbildern mittels durch einen Computer lesbare Programmanweisungen ausgeführt werden können.
  • Diese durch einen Computer lesbaren Programmanweisungen können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, sodass die über den Prozessor des Computers bzw. der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte erzeugen. Diese durch einen Computer lesbaren Programmanweisungen können auch auf einem durch einen Computer lesbaren Speichermedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, sodass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, einen Herstellungsartikel aufweist, darunter Anweisungen, welche Aspekte der/des in dem Block bzw. den Blöcken des Ablaufplans und/oder der Blockschaubilder bzw. Schaltbilder angegebenen Funktion/Schritts umsetzen.
  • Die durch einen Computer lesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um das Ausführen einer Reihe von Prozessschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen auf einem Computer ausgeführten Prozess zu erzeugen, sodass die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführten Anweisungen die in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte umsetzen.
  • Die Ablaufpläne und die Blockschaubilder bzw. Schaltbilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder Blockschaubildern bzw. Schaltbildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zur Ausführung der bestimmten logischen Funktion(en) aufweisen. In einigen alternativen Ausführungen können die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt stattfinden. Zwei nacheinander gezeigte Blöcke können zum Beispiel in Wirklichkeit im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal je nach entsprechender Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es ist ferner anzumerken, dass jeder Block der Blockschaubilder bzw. Schaltbilder und/oder der Ablaufpläne sowie Kombinationen aus Blöcken in den Blockschaubildern bzw. Schaltbildern und/oder den Ablaufplänen durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die festgelegten Funktionen oder Schritte durchführen, oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.

Claims (20)

  1. Durch einen Computer implementiertes Verfahren für ein datenschutzerhaltendes Token-Erzeugungsprotokoll, wobei das Verfahren aufweist: Initiieren einer Bestellanforderung, wobei die Bestellanforderung öffentliche Bestellinformationen und private Bestellinformationen umfasst; Erzeugen einer Adresse in einem Blockchain-Netzwerk, indem die Adresse mindestens mit einem privaten Schlüssel verschlüsselt wird; Erzeugen eines Hash von Daten, die die privaten Bestellinformationen und eine Signatur des Hash umfassen, wobei die Signatur des Hash mit dem privaten Schlüssel erzeugt wird; Übermitteln der Bestellanforderung mit der Adresse, dem Hash und der Signatur an ein der Bestellung zugehöriges Transportunternehmen; und Feststellen, dass das Transportunternehmen die Bestellanforderung erfüllt hat.
  2. Verfahren nach Anspruch 1, wobei der Hash erzeugt wird, um öffentliche Bestellinformationen zu enthalten.
  3. Verfahren nach Anspruch 1, das weiterhin aufweist: Empfangen einer Kundenbestellung; und Verwenden von Informationen der Kundenbestellung in der Bestellung.
  4. Verfahren nach Anspruch 1, wobei die privaten Bestellinformationen Informationen über die Bestellung umfassen, die sowohl für den Transport als auch zum Festlegen eines der Bestellung zugehörigen CO2-Fußabdrucks nicht erforderlich sind.
  5. Verfahren nach Anspruch 1, das weiterhin Empfangen von Token-Werten vom Blockchain-Netzwerk aufweist, die der Bestellung zugehörig sind.
  6. Verfahren nach Anspruch 5, wobei es sich bei den Token-Werten um Werte für nachhaltige Token handelt, die sich auf einen CO2-Fußabdruck beziehen, der einer Bestellung zugehörig ist.
  7. Verfahren nach Anspruch 6, wobei die Werte für nachhaltige Token auf einem CO2-Emissionsdelta beruhen, bei dem es sich um die Differenz zwischen einer Menge von CO2-Emissionen, die durch Ausführen der Bestellung erzeugt werden, und einer Vergleichsmenge von CO2-Emissionen handelt.
  8. Verfahren nach Anspruch 7, wobei das CO2-Emissionsdelta auf einem Faktor beruht, der aus der Gruppe ausgewählt wird, die aus einer Verbesserung der Fahrzeugeffizienz, einer Verbesserung der Strecke, einer Verbesserung der Einteilung und einer Verbesserung der Koordinierung besteht.
  9. Verfahren nach Anspruch 1, das weiterhin aufweist: Erzeugen eines zweiten Hash der privaten Bestellinformationen; und Aufnehmen des zweiten Hash in den Hash.
  10. Verfahren nach Anspruch 1, wobei der Hash aus der Gruppe ausgewählt wird, die aus MD5, SHA-2 und CRC32 besteht.
  11. Durch einen Computer implementiertes Verfahren für ein datenschutzerhaltendes Token-Erzeugungsprotokoll, wobei das Verfahren aufweist: Empfangen von Bestellinformationen, die sich auf eine Bestellung beziehen, für die ein Transportunternehmen verwendet werden muss, wobei die Bestellinformationen eine Adresse in einem Blockchain-Netzwerk aufweisen; Validieren, dass das Transportunternehmen die Bestellanforderung erfüllt hat; Berechnen eines dem Transportunternehmen zugehörigen Token-Wertes, wobei sich der Token-Wert auf einen CO2-Fußabdruck des Transportunternehmens zum Transportieren der Bestellung bezieht; und Zuweisen des Token-Wertes zu der Adresse.
  12. Verfahren nach Anspruch 11, wobei sich der Token-Wert auf ein CO2-Emissionsdelta zwischen einer Menge von CO2-Emissionen zum Transportieren der Bestellung und einer vordefinierten Vergleichsmenge von CO2-Emissionen bezieht.
  13. Verfahren nach Anspruch 11, das weiterhin aufweist: Empfangen von Informationen über den CO2-Fußabdruck, der dem Transportunternehmen zugehörig ist, von einer Klimaschutzorganisation; und Verwenden der Informationen über den CO2-Fußabdruck zum Zuweisen des Token-Wertes.
  14. Verfahren nach Anspruch 11, wobei das CO2-Emissionsdelta auf einem Faktor beruht, der aus der Gruppe ausgewählt wird, die aus einer Verbesserung der Fahrzeugeffizienz, einer Verbesserung der Strecke, einer Verbesserung der Einteilung und einer Verbesserung der Koordinierung besteht.
  15. Verfahren nach Anspruch 11, das weiterhin Aufzeichnen der Zuweisung des Token-Wertes als Transaktion in der Blockchain aufweist.
  16. System zum Implementieren von datenschutzerhaltenden Token, das aufweist: einen Hersteller; und einen Blockchain-Controller; wobei das System so konfiguriert ist, dass es: einen Prozessor eines Herstellers verwendet, um: Bestellinformationen zu empfangen, die sich auf eine Bestellung beziehen, für die ein Transportunternehmen verwendet werden muss, wobei die Bestellinformationen eine Adresse in einem Blockchain-Netzwerk aufweisen; zu validieren, dass das Transportunternehmen die Bestellanforderung erfüllt hat; einen dem Transportunternehmen zugehörigen Token-Wert zu berechnen, wobei sich der Token-Wert auf einen CO2-Fußabdruck des Transportunternehmens zum Transportieren der Bestellung bezieht; und den Token-Wert der Adresse zuzuweisen; und einen Prozessor eines Blockchain-Controller verwendet, um: eine Bestellanforderung zu initiieren, wobei die Bestellanforderung öffentliche Bestellinformationen und private Bestellinformationen umfasst; eine Adresse in einem Blockchain-Netzwerk zu erzeugen, indem die Adresse mindestens mit einem privaten Schlüssel verschlüsselt wird; einen Hash von Daten zu erzeugen, die die privaten Bestellinformationen und eine Signatur des Hash umfassen, wobei die Signatur des Hash mit dem privaten Schlüssel erzeugt wird; die Bestellanforderung mit der Adresse, dem Hash und der Signatur an das Transportunternehmen zu übermitteln; und festzustellen, dass das Transportunternehmen die Bestellanforderung erfüllt hat.
  17. System nach Anspruch 16, das weiterhin ein Transportunternehmen aufweist, wobei das System weiterhin so konfiguriert ist, dass es: einen Prozessor des Transportunternehmens verwendet, um: eine Zertifizierung von einer Klimaschutzorganisation zu empfangen; und Informationen in Verbindung mit dem Abschluss des Transports der Bestellung zu senden.
  18. System nach Anspruch 17, wobei: der Prozessor des Herstellers weiterhin so konfiguriert ist, dass er: eine Kundenbestellung empfängt; und Informationen der Kundenbestellung in der Bestellung verwendet; und Token-Werte vom Blockchain-Netzwerk empfängt, die der Bestellung zugehörig sind.
  19. System nach Anspruch 17, wobei: es sich bei den Token-Werten um Werte für nachhaltige Token handelt, die sich auf einen CO2-Fußabdruck beziehen, der einer Bestellung zugehörig ist; die Werte für nachhaltige Token auf einem CO2-Emissionsdelta beruhen, bei dem es sich um die Differenz zwischen einer Menge von CO2-Emissionen, die durch Ausführen der Bestellung erzeugt werden, und einer Vergleichsmenge von CO2-Emissionen handelt; und das CO2-Emissionsdelta auf einem Faktor beruht, der aus der Gruppe ausgewählt wird, die aus einer Verbesserung der Fahrzeugeffizienz, einer Verbesserung der Strecke, einer Verbesserung der Einteilung und einer Verbesserung der Koordinierung besteht.
  20. System nach Anspruch 19, wobei der Prozessor des Blockchain-Controllers weiterhin so konfiguriert ist, dass er das Zuweisen des Token-Wertes in der Blockchain aufzeichnet.
DE112021003971.7T 2020-07-24 2021-07-21 Nachhaltige token für eine lieferkette mit datenschutzerhaltendem protokoll Pending DE112021003971T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/937,811 2020-07-24
US16/937,811 US20220027803A1 (en) 2020-07-24 2020-07-24 Sustainable tokens for supply chain with privacy preserving protocol
PCT/CN2021/107599 WO2022017413A1 (en) 2020-07-24 2021-07-21 Sustainable tokens for supply chain with privacy preserving protocol

Publications (1)

Publication Number Publication Date
DE112021003971T5 true DE112021003971T5 (de) 2023-05-11

Family

ID=79689342

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112021003971.7T Pending DE112021003971T5 (de) 2020-07-24 2021-07-21 Nachhaltige token für eine lieferkette mit datenschutzerhaltendem protokoll

Country Status (5)

Country Link
US (1) US20220027803A1 (de)
JP (1) JP2023535914A (de)
DE (1) DE112021003971T5 (de)
GB (1) GB2612267A (de)
WO (1) WO2022017413A1 (de)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220138179A1 (en) * 2020-11-02 2022-05-05 Blue Tech Inc. Private blockchain system and method
US20220337611A1 (en) * 2021-04-16 2022-10-20 Somos, Inc. Systems and methods for monitoring records in an internet of things (iot) device registry for changes in device property data
US11615375B2 (en) * 2021-07-02 2023-03-28 dexFreight, Inc. Electronic management of supply chain factoring with shared state storage in a distributed ledger
US11552989B1 (en) 2021-11-23 2023-01-10 Radware Ltd. Techniques for generating signatures characterizing advanced application layer flood attack tools
US11582259B1 (en) 2021-11-23 2023-02-14 Radware Ltd. Characterization of HTTP flood DDoS attacks

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017196655A1 (en) * 2016-05-10 2017-11-16 GeoPRI, LLC Systems and methods for managing and validating the exchange of product information
CN110634069B (zh) * 2018-06-25 2023-03-31 巍乾全球技术有限责任公司 用于碳交易的方法、设备、存储介质和程序产品
US11025431B2 (en) * 2018-12-31 2021-06-01 Mastercard International Incorporated Method and system for two factor authentication for blockchain transactions
CN110135983A (zh) * 2019-01-17 2019-08-16 深圳市元征科技股份有限公司 一种碳排放配额交易方法和装置
US11774255B2 (en) * 2019-03-07 2023-10-03 Greenlines Technology Inc. Methods and systems for conversion of physical movements to carbon units
US11880882B2 (en) * 2019-04-25 2024-01-23 Intellectual Frontiers Llc Computer-controlled marketplace network for digital transactions

Also Published As

Publication number Publication date
US20220027803A1 (en) 2022-01-27
GB2612267A (en) 2023-04-26
WO2022017413A1 (en) 2022-01-27
GB202302501D0 (en) 2023-04-05
JP2023535914A (ja) 2023-08-22

Similar Documents

Publication Publication Date Title
DE112020005289B4 (de) Teilweise sortierte blockchain
DE112021003971T5 (de) Nachhaltige token für eine lieferkette mit datenschutzerhaltendem protokoll
DE112020005075B4 (de) Effiziente schwellenwertspeicherung von datenobjekten
DE112020005794T5 (de) Dynamische rechtevergabe und durchsetzung für transportprozess
DE112021002797T5 (de) Datenschutzerhaltende architektur für genehmigungspflichtige blockchains
DE112021004344T5 (de) Konsensdienst für Blockchain-Netzwerke
DE112021001413T5 (de) Verwaltung eines privilegierten zugriffs mit geringer vertrauenswürdigkeit
DE112021000608T5 (de) Schnellere ansichtsänderung für eine blockchain
DE112021001671T5 (de) Netzübergreifendes bereitstellen von identitäten
DE112021000688T5 (de) Indexstruktur für blockchain-ledger
DE112021002053T5 (de) Verrauschte Transaktion zum Schutz von Daten
US11455403B2 (en) Privacy-preserving document sharing
CN114450708A (zh) 基于现有链码的链码推荐
DE102021122557A1 (de) Konformitätsmechanismen in blockchain-netzwerken
WO2022023875A1 (en) Electronic wallet allowing virtual currency expiration date
DE112021005862T5 (de) Selbstprüfende blockchain
US11354425B2 (en) Privacy-preserving document sharing
US20210224334A1 (en) Conflict-free version control
DE112021006165T5 (de) Schlüsselwiederherstellung in einem blockchain-netzwerk mit oprf
DE112021005837T5 (de) Dezentrale sendeverschlüsselung und schlüsselerzeugungseinrichtung
DE112021000219T5 (de) Konfliktfreie versionssteuerung
US20210279284A1 (en) Behavior driven graph expansion
CN115427980A (zh) 上下文完整性保持
US20210174292A1 (en) Anonymization of partners
US20230412402A1 (en) Endorsement policy consolidation in blockchain networks

Legal Events

Date Code Title Description
R012 Request for examination validly filed