DE102019214255A1 - Dynamisches Zuweisen von Sonderaufgaben in verteilten Netzwerken - Google Patents

Dynamisches Zuweisen von Sonderaufgaben in verteilten Netzwerken Download PDF

Info

Publication number
DE102019214255A1
DE102019214255A1 DE102019214255.9A DE102019214255A DE102019214255A1 DE 102019214255 A1 DE102019214255 A1 DE 102019214255A1 DE 102019214255 A DE102019214255 A DE 102019214255A DE 102019214255 A1 DE102019214255 A1 DE 102019214255A1
Authority
DE
Germany
Prior art keywords
node
nodes
subset
network
delegated
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
DE102019214255.9A
Other languages
English (en)
Inventor
Alexander PODDEY
Fredrik Winzer
Nik Scharmann
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.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
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 Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102019214255.9A priority Critical patent/DE102019214255A1/de
Priority to US17/020,470 priority patent/US11226825B2/en
Priority to CN202010985580.XA priority patent/CN112527731A/zh
Publication of DE102019214255A1 publication Critical patent/DE102019214255A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/1735Network adapters, e.g. SCI, Myrinet
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/102Entity profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Mathematical Physics (AREA)
  • Multimedia (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Computing Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

Verfahren (100) zum Betreiben eines Netzwerks (1), wobei Knoten (2) Informationen im dem Netzwerk (1) untereinander verteilen und wobei eine echte Teilmenge (4) der Knoten (2) mindestens eine Sonderaufgabe ausführt, die den Betrieb des Netzwerks (1) als Ganzes beeinflusst, mit den Schritten:• jedem Knoten (2) wird ein Gewicht (2c) im Netzwerk (1) zugewiesen (110), wobei jeder Knoten (2) die Möglichkeit hat, als Geber-Knoten (2a) Anteile (2c') seines Gewichts (2c) bedingt oder unbedingt an andere Nehmer-Knoten (2b) zu delegieren (120);• auf der Basis des Gewichts (2c) eines jeden Knoten (2) zuzüglich der an ihn als Nehmer-Knoten (2b) delegierten Anteile (2c') und abzüglich der von ihm als Geber-Knoten (2a) an andere Nehmer-Knoten (2b) delegierten Anteile (2c') wird anhand mindestens eines vorgegebenen Kriteriums (4a) diejenige echte Teilmenge (4) der Knoten (2) ausgewählt (130), denen die mindestens eine Sonderaufgabe zugewiesen wird;wobei mindestens ein Anteil (2c') von einem Geber-Knoten (2a)• bedingt an mindestens zwei Nehmer-Knoten (2b) delegiert wird (121) unter der auflösenden Bedingung, dass der jeweilige Nehmer-Knoten (2b) nach der Auswahl (130) nicht zu der echten Teilmenge (4) gehört,• mit der zusätzlichen Einschränkung (121a), dass ein und derselbe Anteil (2c'), der an mehrere Nehmer-Knoten (2b) bedingt delegiert ist, höchstens bei der Aufnahme eines dieser Nehmer-Knoten (2b) in die echte Teilmenge (4) berücksichtigt werden kann.

Description

  • Die vorliegende Erfindung betrifft verteilte Netzwerke computerimplementierter Knoten, in denen von einer echten Teilmenge der Knoten Sonderaufgaben durchzuführen sind, die den Betrieb des Netzwerks als Ganzes betreffen.
  • Stand der Technik
  • Blockchains sind Datenspeicher, die als eine Kette von Datenblöcken organisiert sind. Jeder neue Datenblock wird vor dem Hinzufügen zur Blockchain auf die Einhaltung eines vorgegebenen Regelwerks geprüft und enthält zusätzlich einen kryptographischen Hashwert des Vorgängerblocks. Dadurch führt jede nachträgliche Veränderung von Informationen in einem Datenblock dazu, dass mindestens ein kryptographischer Hashwert in der Kette nicht mehr zum Inhalt des betreffenden Blocks passt, es sei denn, die Hashwerte aller bereits vorhandenen nachfolgenden Blöcke werden ebenfalls angepasst.
  • Genau diese Anpassung wird mit der Verwaltung von Blockchains durch verteilte Netzwerke computerimplementierter Knoten effektiv verhindert. In diesen Netzwerken tauschen alle Knoten die in der Blockchain bereits vorhandenen und die neu aufzunehmenden Informationen sowohl untereinander als auch mit anfragenden Client-Stationen aus. Aufgaben zur Verwaltung und Fortführung der Blockchain, beispielsweise das Hinzufügen neuer Blöcke zur Blockchain, sind Sonderaufgaben, die innerhalb des Netzwerks einer Teilmenge an Knoten nach Maßgabe eines automatisierten Konsensmechanismus zugewiesen werden können. Eine nachträgliche Änderung von Daten in der Blockchain erfordert daher einen Konsens einer Mehrheit der Knoten im Netzwerk.
  • Dabei kann die Wahrscheinlichkeit, dass ein gegebener Knoten den nächsten Block zur Blockchain hinzufügen darf, beispielsweise von einem Rechenaufwand abhängen, den dieser Knoten für das Netzwerk aufbringt („Proof of Work“). Alternativ kann diese Wahrscheinlichkeit beispielsweise von einem Pfandbetrag abhängen, mit dem sich der jeweilige Knoten für die Einhaltung des Regelwerks verbürgt („Proof of Stake“). Hierbei kann es Knoten insbesondere freistehen, aus eigenen Mitteln Beiträge zum Pfandbetrag eines anderen Knoten aus einer vorgegebenen Liste („Delegation Proof of Stake“) oder sogar eines beliebigen anderen Knoten („Unpermissioned Delegation Proof of Stake“) zu leisten, um diesen bei seiner „Kandidatur“ für das Hinzufügen des nächsten Blocks zu unterstützen.
  • Offenbarung der Erfindung
  • Im Rahmen der Erfindung wurde ein Verfahren zum Betreiben eines Netzwerks aus einer Vielzahl computerimplementierter Knoten entwickelt. Die Knoten verteilen Informationen in dem Netzwerk untereinander und tauschen Informationen mit anfragenden Client-Stationen aus. Wenn das Netzwerk beispielsweise eine Blockchain verwaltet, können die Client-Stationen mit ihren Anfragen beispielsweise bereits vorhandene Informationen aus der Blockchain auslesen und/oder neue Informationen zur Ablage in der Blockchain anmelden.
  • Eine echte Teilmenge der Knoten führt mindestens eine Sonderaufgabe aus, die den Betrieb des Netzwerks als Ganzes beeinflusst. Wenn das Netzwerk beispielsweise eine Blockchain verwaltet, kann die Sonderaufgabe insbesondere beispielsweise mindestens einen Teilbeitrag dazu beinhalten, einen für die Hinzufügung zur Blockchain anstehenden neuen Block zu erstellen, und/oder die in einem solchen Block enthaltenen Informationen auf Korrektheit im Hinblick auf ein für die Blockchain vorgegebenes Regelwerk zu prüfen, und/oder den Block bei positivem Ausgang dieser Prüfung der Blockchain hinzuzufügen.
  • Beispielsweise können die Informationen in dem neuen Block Transaktionen in mindestens einer Kryptowährung umfassen. Die Prüfung auf Korrektheit kann sich dann beispielsweise darauf erstrecken, ob die Transaktionen von den jeweils Berechtigten signiert sind und ob ein und dasselbe Guthaben in Kryptowährung nicht unerlaubt mehrfach ausgegeben wird. Das Erstellen des Blocks kann beispielsweise umfassen,
    • • Transaktionskandidaten von anderen Knoten und/oder von Client-Stationen zu sammeln,
    • • hieraus eine Teilmenge an gültigen Transaktionen auszuwählen,
    • • eine stimmige Abfolge der gültigen Transaktionen zu bilden, die beispielsweise anhand einer mit der Transaktion mitgeschickten Gebühr in der Kryptowährung priorisiert ist, und
    • • aus dieser Abfolge eine Teilmenge möglicher Mitglieder des Blocks zu bilden, die beispielsweise den Platzbedarf einzelner Transaktionen und den im zu erstellenden Block maximal verfügbaren Platz berücksichtigen.
  • Ein Block in einer Blockchain kann alternativ oder auch in Kombination mindestens einen zu beglaubigenden Sachverhalt umfassen. Beispiele für solche Sachverhalte sind vertragliche Regelungen, Zeitstempel, Ereignisprotokolle von Computersystemen (Logfiles) oder auch Messwerte, die in beweiskräftiger Form erhoben werden müssen.
  • Im Netzwerk wird jedem Knoten ein Gewicht zugewiesen. Dabei hat jeder Knoten die Möglichkeit, als Geber-Knoten Anteile seines Gewichts bedingt oder unbedingt an andere Nehmer-Knoten zu delegieren. Hierbei ist ein unbedingtes Delegieren immer sofort wirksam, während die Wirksamkeit eines bedingten Delegierens von aufschiebenden oder auflösenden Bedingungen abhängen und sich insoweit noch nachträglich ändern kann.
  • Auf der Basis des Gewichts eines jeden Knoten zuzüglich der an ihn als Nehmer-Knoten delegierten Anteile und abzüglich der von ihm als Geber-Knoten an andere Nehmer-Knoten delegierten Anteile wird anhand mindestens eines vorgegebenen Kriteriums diejenige echte Teilmenge der Knoten ausgewählt, denen die mindestens eine Sonderaufgabe zugewiesen wird.
  • Dieses Prinzip funktioniert ähnlich wie die zuvor erwähnte „(Unpermissioned) Delegation Proof of Stake“. Es ist jedoch dahingehend abgewandelt, dass mindestens ein Anteil von einem Geber-Knoten bedingt an mindestens zwei Nehmer-Knoten delegiert wird. Das Delegieren erfolgt also unter der auflösenden Bedingung, dass der jeweilige Nehmer-Knoten nach der Auswahl nicht zu der echten Teilmenge gehört.
  • Wenn der Geber-Knoten also mehrere verschiedene Nehmer-Knoten bei der „Kandidatur“ für die Aufnahme in die echte Teilmenge derjenigen Knoten, die die Sonderaufgabe im Netzwerk wahrnehmen, unterstützen will, dann muss er sich nicht für nur einen dieser Nehmer-Knoten entscheiden. Stattdessen kann er seine Unterstützung in vollem Umfang allen gewünschten Nehmer-Knoten gleichzeitig gewähren.
  • Hierbei gilt lediglich die Einschränkung, dass ein und derselbe Anteil, der an mehrere Nehmer-Knoten bedingt delegiert ist, höchstens bei der Aufnahme eines dieser Nehmer-Knoten in die echte Teilmenge berücksichtigt werden kann. Durch das bedingte Delegieren kann also der Beitrag des Anteils zum letztendlichen Ergebnis, nämlich dem Konsens darüber, welche Knoten im Netzwerk die Sonderausgabe ausführen, nicht unbegrenzt vervielfältigt werden.
  • In einem illustrativen Beispiel seien ein Knoten A mit einem Gewicht von 5, ein Knoten B mit einem Gewicht von 10 und ein Knoten C mit einem Gewicht vom 11 gegeben. Der Knoten A kann nun beispielsweise einen Gewichtsanteil von 4 bedingt an die beiden Knoten B und C delegieren. Dann können bezüglich der Knoten B und C die folgenden vier Fälle auftreten:
    • • Keiner der Knoten B und C schafft es in die echte Teilmenge der Knoten, die die Sonderaufgabe ausführen. Die bedingten Zuweisungen des Gewichtsanteils 4 vom Geber-Knoten A an die Nehmer-Knoten B und C werden also beide unwirksam, und A geht mit seinem ursprünglichen Gewicht von 5 in die Auswahl der echten Teilmenge.
    • • Knoten B wird in die echte Teilmenge aufgenommen, Knoten C nicht. Dem Knoten B wächst der bedingt delegierte Gewichtsanteil 4 zu; er geht also mit einem Gesamtgewicht von 14 in die Auswahl der echten Teilmenge. Die bedingte Zuweisung des gleichen Gewichtsanteils 4 an den Knoten C wird hingegen unwirksam, so dass Knoten C bei seinem ursprünglichen Gewicht von 11 bleibt. Knoten A sinkt in der Auswahl auf ein Gewicht von 1.
    • • Knoten C wird in die echte Teilmenge aufgenommen, Knoten B nicht. Hier verhält es sich umgekehrt: Der Gewichtsanteil von 4 wächst Knoten C zu, der bei einem Gesamtgewicht von 15 landet. Knoten B bleibt bei seinem ursprünglichen Gewicht von 10, und Knoten A sinkt auf 1.
    • • Beide Knoten B und C werden in die echte Teilmenge aufgenommen. Auf Grund der besagten Einschränkung kann auch in diesem Fall nur entweder Knoten B auf Gewicht 14 wachsen und Knoten C bei 11 bleiben, oder es kann Knoten C auf Gewicht 15 wachsen und Knoten B bei Gewicht 10 bleiben. In beiden Fällen sinkt Knoten A auf Gewicht 1.
  • Das Beispiel illustriert, dass die Berechnung der letztendlichen Auswahl und der letztendlichen Gewichte im Vergleich zur„(Unpermissioned) Delegation Proof of Stake‟ deutlich komplizierter wird. Es kann im weitesten Sinne als Zirkelschluss verstanden werden, wenn es einerseits von den Gewichten abhängt, welche Knoten in die echte Teilmenge aufgenommen werden, und andererseits dieses Ergebnis wiederum nachträglich die Gewichte, auf deren Grundlage es ermittelt wurde, abändert.
  • Es wurde jedoch erkannt, dass im Austausch für diese Komplexität die Tendenz des Netzwerks, beim wiederholten Neu-Auswählen der echten Teilmenge auf ein statisches und vorhersehbares Ergebnis zu konvergieren, deutlich vermindert wird. Einer dauerhaften Zentralisierung der Sonderaufgaben bei einigen wenigen Knoten wird entgegengewirkt. Dies ist sehr vorteilhaft für die Zuverlässigkeit und Sicherheit des Netzwerks, insbesondere im Zusammenhang mit der Verwaltung einer Blockchain.
  • Die Tendenz zur Zentralisierung lässt sich am einfachsten am Beispiel des „Proof of Work“-Konsenses nachvollziehen. So ging der gerade beim Schürfen („Mining“) von Bitcoins in gewollter Weise progressiv ansteigende Rechenaufwand pro neu erschaffenem Bitcoin, mit dem die progressive Knappheit des physischen Goldes nachgebildet wird, mit einem hohen Energieverbrauch einher. Während die ersten Bitcoins noch auf den CPUs handelsüblicher PCs profitabel geschürft werden konnten, hat heute nur das Schürfen mit spezialisierter Hardware in professionell betriebenen „Mining-Farmen“ noch eine Chance, Gewinne zu erwirtschaften. Wichtigster Standortfaktor hierbei ist die preiswerte Verfügbarkeit von Strom in der nötigen Menge, so dass das Schürfen zeitweise stark in chinesischen Mining-Farmen konzentriert war.
  • Eine solche Zentralisierung kann beispielsweise zur Folge haben, dass ein Zusammenschluss einiger weniger Betreiber von „Mining-Farmen“ bereits recht nahe an eine konsensfähige Mehrheit im Netzwerk kommt und somit die Hürde für nachträgliche Änderungen von in einer Blockchain hinterlegten Informationen abgesenkt wird. Weiterhin kann beispielsweise ein Preisschub für Strom oder gar ein staatliches Verbot bewirken, dass in kurzer Zeit ein großer Anteil der insgesamt im Netzwerk vorhandenen Rechenkapazität wegbricht.
  • Eine Tendenz zur Zentralisierung kann auch bei einem „(Unpermissioned) Delegated Proof of Stake“-Konsens entstehen, wenn Geber-Knoten für den Fall, dass sie Anteile ihres Gewichts an Nehmer-Knoten delegieren und dies zur Aufnahme des Nehmer-Knotens in die echte Teilmenge führt, Belohnungen (beispielsweise in Geld) in Aussicht gestellt werden. Die Aussicht auf derartige Belohnungen setzt einen Anreiz, Gewichtsanteile bevorzugt an diejenigen Nehmer-Knoten zu delegieren, bei denen die Wahrscheinlichkeit am größten ist, dass sie auch tatsächlich in die echte Teilmenge aufgenommen werden und die Belohnung fällig wird.
  • Die Möglichkeit, ein und denselben Gewichtsanteil bedingt an mehrere Nehmer-Knoten zu delegieren, bewirkt in diesem Kontext, dass der Geber-Knoten den Gewichtsanteil beispielsweise
    • • sowohl an einen bekannten etablierten Nehmer-Knoten, der mit vergleichsweise hoher Wahrscheinlichkeit in die echte Teilmenge aufgenommen wird,
    • • als auch an einen vergleichsweise neuen Nehmer-Knoten, der zwar berechtigte Aussicht auf Aufnahme in die echte Teilmenge hat, ohne dass dies jedoch sicher ist,
    jeweils bedingt delegieren kann. Der Geber-Knoten kann hierdurch seine Wahrscheinlichkeit, eine Belohnung zu erhalten, nur erhöhen, denn wenn der etablierte Nehmer-Knoten wider Erwarten nicht in die echte Teilmenge aufgenommen wird, eröffnet sich mit dem neuen Nehmer-Knoten eine Zusatzchance, dass dieser aufgenommen wird. Umgekehrt führt das bedingte Delegieren an den neuen Nehmer-Knoten in dem Fall, in dem der etablierte Nehmer-Knoten wie erwartet in die echte Teilmenge aufgenommen wird, nicht zum „Verlust“ des Gewichtsanteils. Der Geber-Knoten erhält seine Belohnung dann eben von diesem etablierten Nehmer-Knoten.
  • Im Ergebnis wird die Hürde für neue Knoten, in die echte Teilmenge aufgenommen zu werden, insgesamt deutlich abgesenkt. Dadurch wird mit einer höheren Wahrscheinlichkeit die Zusammensetzung der echten Teilmenge an Knoten, die Sonderaufgaben im Netzwerk wahrnehmen, sowohl in Bezug auf die Betreiber dieser Knoten als auch in Bezug auf deren geographische Standorte eine ausgewogene Mischung sein und von Zeit zu Zeit wechseln. Auf diese Weise wird zum einen die Wahrscheinlichkeit vermindert, dass ein einziges Ereignis (etwa ein größerer Stromausfall oder ein staatliches Verbot) einen Großteil der Kapazität des Netzwerks auf einmal außer Gefecht setzt. Zum anderen ist es weniger vorhersehbar, welche Knoten wann die Sonderaufgaben wahrnehmen, so dass gezielte Manipulationsversuche erschwert werden.
  • So trägt es beispielsweise zur Integritätssicherung der in einer Blockchain hinterlegten Informationen bei, wenn es schwer vorhersehbar ist, welcher Knoten den nächsten Block zu der Blockchain hinzufügen wird. Ein Angreifer, der diesen Knoten durch eine gezielte Manipulation zur Hinzufügung eines nicht dem Regelwerk entsprechenden Blocks veranlassen will, weiß also nicht, welchen Knoten er zu diesem Zweck angreifen muss.
  • Typischerweise sind beim Betrieb verteilter Netzwerke Anreize gleich welcher Art eine treibende Kraft dafür, dass Knoten sich zur Übernahme von Sonderaufgaben bereiterklären. Beispielsweise kann bei der Ausführung bestimmter Sonderaufgaben ein erhöhter Verbrauch an Rechenleistung, Netzwerkbandbreite oder Energie anfallen. Der Betreiber eines Knotens kann dann beispielsweise die Bereitschaft, derartige Ressourcen zur Verfügung zu stellen, davon abhängig machen, dass die dabei entstehenden Kosten zumindest zum Teil vergütet werden. Wie zuvor erläutert, wird durch das bedingte Delegieren die Tendenz von Belohnungssystemen, Fehlanreize in Richtung einer Zentralisierung des Netzwerks zu setzen, vermindert. Man muss also beim Betrieb des Netzwerks nicht die Nutzung von Belohnungssystemen vermeiden, um eine selbstverstärkende Zentralisierung des Netzwerks zu vermeiden.
  • In einer besonders vorteilhaften Ausgestaltung wählt der Geber-Knoten die Nehmer-Knoten aus einer Teilmenge aus, die diejenigen Knoten umfasst, die sich für die Übernahme der Sonderaufgabe zur Wahl gestellt haben, und/oder die hierfür zur Wahl gestellt worden sind. Auf diese Weise lässt sich vermeiden, dass Aufwand in Form von Zeit und/oder Rechenleistung in die Auswahl gerade solcher Knoten in die echte Teilmenge der mit der Sonderaufgabe betrauten Knoten investiert wird, die diese Sonderaufgabe gar nicht übernehmen können, wollen oder dürfen.
  • In einer besonders vorteilhaften Ausgestaltung beinhaltet das Auswählen der echten Teilmenge, mindestens eine Kandidaten-Teilmenge von Knoten aufzustellen. Es wird sichergestellt diese Kandidaten-Teilmenge mit einer Nutzung der delegierten Anteile konsistent ist, bei der ein und derselbe delegierte Anteil höchstens für einen Nehmer-Knoten in der Kandidaten-Teilmenge berücksichtigt wird. Dies lässt sich anhand einer vorgegebenen Kandidaten-Teilmenge nachprüfen. Wenn die Kandidaten-Teilmenge diese Prüfung nicht besteht, wird sie verworfen. Die Kandidaten-Teilmenge lässt sich aber auch schon von vornherein mit der Maßgabe erzeugen, dass der ein und derselbe delegierte Anteil höchstens für einen Nehmer-Knoten berücksichtigt wird.
  • Die Kandidaten-Teilmenge wird nach Maßgabe eines frei wählbaren Optimalitätskriteriums mit einer Bewertungszahl bewertet. Auf der Basis der Bewertungszahl wird eine Kandidaten-Teilmenge als echte Teilmenge ausgewählt.
  • Beispielsweise kann die Kandidaten-Teilmenge mit der besten Bewertungszahl als echte Teilmenge ausgewählt werden. Es kann auch beispielsweise eine gewisse Bandbreite von Kandidaten-Teilmengen mit ähnlichen Bewertungszahlen in die engere Wahl kommen. Jede Kandidaten-Teilmenge aus dieser engeren Wahl kann dann beispielsweise mit einer Wahrscheinlichkeit, die entsprechend ihrer Bewertungszahl gewichtet ist, als finale echte Teilmenge ausgewählt werden.
  • Es werden also aus den möglichen Kandidaten-Teilmengen zunächst diejenigen ausgeschlossen, die nicht der Einschränkung genügen, dass ein bedingt delegierter Gewichtsanteil letztendlich nur für einen Nehmer-Knotens in die echte Teilmenge berücksichtigt werden kann. Diejenigen Kandidaten-Teilmengen, die diese Bedingung erfüllen, sind zumindest selbstkonsistent in Bezug auf den besagten Zirkelschluss zwischen Aufnahme in die echte Teilmenge und nachträgliches Bereinigen bedingt delegierter Anteile, die nicht zum Tragen kommen. Um diese Kandidaten-Teilmengen eingehend zu bewerten, kann ein beliebiges Optimalitätskriterium zum Einsatz kommen, in dem die Besonderheiten des bedingten Delegierens nicht mehr berücksichtigt sein müssen.
  • Die im Rahmen der Auswahl der echten Teilmenge auszuführenden Aufgaben können beispielsweise von einer zentralen Autorität im Netzwerk ausgeführt werden, aber auch beispielsweise in beliebiger Weise auf die Knoten im Netzwerk verteilt werden. Beispielsweise kann es für einige Anwendungen des Netzwerks sinnvoll sein, von allen Knoten Kandidaten-Teilmengen zu akzeptieren. Für andere Anwendungen kann es hingegen sinnvoll sein, lediglich von den Knoten, die aktuell der echten Teilmenge angehören, Kandidaten-Teilmengen zu akzeptieren. Die Berechnung der Bewertungszahl und die Auswahl der Kandidaten-Teilmenge mit der besten Bewertungszahl können beispielsweise von weiteren Knoten, und/oder Gruppen von Knoten, vorgenommen werden.
  • Für das Aufstellen der Kandidaten-Teilmenge und die Auswahl der Kandidaten-Teilmenge auf der Basis der Bewertungszahl, beispielsweise mit der besten Bewertungszahl, können situationsangepasst beliebige Algorithmen zum Einsatz kommen. Auf diese Weise lassen sich beispielsweise durch die konkrete Anwendung des Netzwerks vorgegebene Randbedingungen umsetzen. So kann beispielsweise für sicherheitsrelevante Anwendungen ein sogenanntes „Minimal Agency Scheme“ vorgeschrieben sein, um die maximale Einflussmöglichkeit jedes einzelnen Knoten zu begrenzen.
  • Programmroutinen, die im Prozess der Auswahl der echten Teilmenge genutzt werden, können insbesondere in Form sogenannter „Smart Contracts“ implementiert sein. Dies sind Programme, die beispielsweise auf den Knoten einer Blockchain (etwa den Knoten der öffentlichen Ethereum-Blockchain) ausgeführt werden und dort, nachdem sie einmal installiert wurden, zwar öffentlich einsehbar, aber zugleich nicht mehr änderbar sind. Nicht einmal der Ersteller eines „Smart Contracts“ kann diesen nachträglich ändern oder löschen, wenn diese Möglichkeit nicht bereits im ursprünglichen Programmcode des „Smart Contracts“ vorgesehen ist.
  • Alternativ oder auch in Kombination hierzu können Programmroutinen für die Auswahl der echten Teilmenge so ausgestaltet sein, dass ein Abweichen des Auswahlprozesses von einem zuvor festgelegten Regelwerk zumindest erkannt wird. Beispielsweise kann ein und dieselbe Aufgabe mehreren Knoten zugewiesen werden, und die Ergebnisse können von diesen Knoten, oder auch von anderen Knoten, gegeneinander plausibilisiert werden.
  • In einer besonders vorteilhaften Ausgestaltung wird mindestens eine Kandidaten-Teilmenge auf der Basis einer Kandidaten-Verteilung der Nutzung der delegierten Anteile durch Anwenden des vorgegebenen Kriteriums für die Auswahl der echten Teilmenge ermittelt. Wenn festgelegt ist, welche Gewichtsanteile von welchen Geber-Knoten an welche Nehmer-Knoten unbedingt bzw. bedingt delegiert sind, gibt es für jeden an mehrere Nehmer-Knoten bedingt delegierten Gewichtsanteil noch den Freiheitsgrad, welchem Nehmer-Knoten dieser Gewichtsanteil letztendlich zu Gute kommt. Die diesbezüglichen Entscheidungen für alle mehrfach delegierten Gewichtsanteile können die Kandidaten-Verteilung der Nutzung der delegierten Anteile bilden.
  • Das Optimalitätskriterium kann beispielsweise die Gesamtsumme aller Gewichte unter der Voraussetzung, dass die echte Teilmenge entsprechend der Kandidaten-Teilmenge ausgewählt wird, beinhalten. Als echte Teilmenge wird dann bevorzugt diejenige Kandidaten-Teilmenge ausgewählt, die im Netzwerk insgesamt die größte Unterstützung durch alle Knoten erhält.
  • Das Optimalitätskriterium kann alternativ oder in Kombination hierzu beispielsweise ein Verhältnis der Summe der unbedingt an alle Knoten in der Kandidaten-Teilmenge delegierten Anteile zur Summe der unbedingt an alle Knoten des Netzwerks delegierten Anteile beinhaltet. Beispielsweise kann für dieses Verhältnis ein Schwellwert oder sonstiger Sollwert festgelegt werden. Auf diese Weise kann insbesondere beispielsweise berücksichtigt werden, dass in einem unbedingten Delegieren eines Gewichtsanteils von einem Geber-Knoten an einen Nehmer-Knoten ein stärkerer „Unterstützungswille“ des Geber-Knotens liegt als in einem bedingten Delegieren. Beim bedingten Delegieren behält sich der Geber-Knoten noch Alternativen vor; beim unbedingten Delegieren ist der Nehmer-Knoten aus Sicht des Geber-Knotens alternativlos.
  • In einer weiteren besonders vorteilhaften Ausgestaltung beinhaltet das Optimalitätskriterium einen Vergleich der Verteilung einer vorgegebenen Eigenschaft über alle Knoten des Netzwerks mit der Verteilung dieser Eigenschaft über alle Knoten der Kandidaten-Teilmenge. Hierbei kann die Verteilung sich auf eine beliebige Eigenschaft beziehen, die sinnvoll individuellen Knoten zugeordnet werden kann. Beispielsweise kann die Eigenschaft sich auf den Typ der Entität beziehen, die den Knoten betreibt (etwa Privatperson, Unternehmen oder öffentliche Institution). Wenn beispielsweise über alle Knoten im Netzwerk eine Diversität dahingehend existiert, dass von Privatpersonen, von Unternehmen und von öffentlichen Institutionen betriebene Knoten sich in einem bestimmten prozentualen Mix ergänzen, dann kann dieser Mix auch in die zu bildende echte Teilmenge der Knoten, die Sonderaufgaben übernehmen, transferiert werden.
  • In einer weiteren besonders vorteilhaften Ausgestaltung werden neue Kandidaten-Teilmengen von Knoten aufgestellt, bis deren Bewertungszahl ein vorgegebenes Kriterium erfüllt oder bis ein vorgegebenes Kontingent an Aufwand für die Auswahl der echten Teilmenge erschöpft ist, je nachdem, was zuerst eintritt. Der Aufwand kann beispielsweise in Zeit und/oder in Rechenschritten, oder auch in einem beliebigen anderen quantitativen Maß, vorgegeben bzw. gemessen werden. Da Kandidaten-Teilmengen zunächst auf die besagte Selbstkonsistenz überprüft werden und nur bei Bestehen dieser Prüfung überhaupt weiter inhaltlich bewertet werden, ist es vorab schwer absehbar, wie schnell die Suche nach der optimalen echten Teilmenge insgesamt konvergiert. Durch die Begrenzung des Aufwandes lässt sich sicherstellen, dass zu einem gewünschten Zeitpunkt auf jeden Fall eine echte Teilmenge von Knoten, die Sonderaufgaben wahrnimmt, zur Verfügung steht. So gibt es beispielsweise beim Betrieb von Blockchains häufig Vorgaben, in welchem Takt der Blockchain neue Blöcke hinzugefügt werden sollten, um beispielsweise für in der Blockchain zu speichernde Transaktionen in einer Kryptowährung einen hinreichenden Durchsatz zu gewährleisten.
  • In einer weiteren besonders vorteilhaften Ausgestaltung korrespondiert das Gewicht, das einem jeden Knoten im Netzwerk zugewiesen wird, zu einem Mengenanteil an mindestens einer Ressource. Der Knoten ist über diesen Mengenanteil verfügungsberechtigt ist und bürgt mit ihm für eine mangelfreie Ausführung der Sonderaufgabe. Auf diese Weise können insbesondere Geber-Knoten, die Gewichtsanteile an Nehmer-Knoten bedingt oder unbedingt delegieren, hierdurch ein Vertrauen dokumentieren, dass sie den Nehmer-Knoten entgegenbringen.
  • Die Ressource kann beispielsweise von dem Netzwerk selbst verwaltet werden. Die Ressource kann aber auch beispielsweise ganz allgemein eine Ressource sein, bei der das Netzwerk in der Lage ist, die Verfügungsberechtigung von Knoten auf diese Ressource zu prüfen und/oder zu steuern. Beispielsweise kann die Ressource Gelder in einer Kryptowährung umfassen, die von einer anderen Blockchain verwaltet wird. Das Netzwerk kann über diese Ressource beispielsweise mit einem „Smart Contract“, den es auf dieser anderen Blockchain (etwa der Ethereum-Blockchain) platziert, eine Kontrolle ausüben.
  • Das Bürgen für eine mangelfreie Ausführung kann insbesondere beispielsweise bedeuten, dass in Antwort auf die Feststellung, dass ein Knoten in der echten Teilmenge seinen Part der Sonderaufgabe nicht oder mangelhaft ausgeführt hat, Mengenanteile der Ressource, die zum Gewicht dieses Knotens einschließlich der an diesen Knoten als Nehmer-Knoten delegierten Anteile korrespondieren, dem Zugriff dieses Knotens, und/oder dem Zugriff von Anteile an diesen Knoten delegierenden Geber-Knoten, ganz oder teilweise entzogen werden.
  • Mit anderen Worten, wenn die mit den Mengenanteilen als Pfand gesicherte Bedingung nicht eingelöst wird, ist das Pfand fällig. Zur Sicherung des Pfandes können insbesondere beispielsweise die Mengenanteile der Ressource, die zu den Gewichten der Knoten in der echten Teilmenge einschließlich der an diese Knoten als Nehmer-Knoten delegierten Anteile korrespondieren, gesperrt gehalten werden.
  • Insofern ist die Ressource, mit der die Gewichtsanteile hinterlegt sind, vorzugsweise eine Ressource, an der jeder Knoten ein starkes eigenes Interesse hat. Wenn in der Blockchain beispielsweise Transaktionen in einer Kryptowährung gespeichert werden, dann kann die Ressource beispielsweise einem Geldbetrag in dieser Kryptowährung entsprechen.
  • Formulierungen der Art, dass Knoten Entscheidungen treffen, auf Anreize eingehen oder Interessen verfolgen, dienen lediglich dem besseren Verständnis anhand von Analoga in menschlichen Entscheidungsprozessen. Sie sind jedoch nicht dahingehend zu verstehen, dass die Knoten zumindest teilweise von Menschen gesteuert werden müssen. Die Knoten in dem Netzwerk arbeiten autonom, wobei ihr jeweiliger Betreiber ihnen generelle Vorgaben machen kann. Gerade das autonome, automatisierte Arbeiten der Knoten gibt Anlass zu den selbstverstärkenden Zentralisierungseffekten, denen das hier beschriebene Verfahren entgegenwirkt. Dies ist ein Stück weit analog zum automatisierten Hochfrequenzhandel an Börsen, bei dem das Zusammenwirken nominell unabhängiger autonomer Agenten zu selbstverstärkenden Effekten führt, die das System als Ganzes betreffen.
  • In einer weiteren besonders vorteilhaften Ausgestaltung beinhaltet die Sonderaufgabe mindestens einen Teilbeitrag dazu, mindestens eine Änderung eines für den Austausch von Informationen innerhalb des Netzwerks, und/oder mit anfragenden Client-Stationen, und/oder für die Durchführung von Aufgaben, verwendeten Protokolls, und/oder eines sonstigen für das Netzwerk vorgegeben Regelwerks, umzusetzen und/oder zu koordinieren. Auch hierbei handelt es sich um Aufgaben, die vorteilhaft in die Hände eines begrenzten Gremiums von Knoten entsprechend der echten Teilmenge gelegt werden, weil eine gleichzeitige Beteiligung sämtlicher vorhandener Knoten eher hinderlich ist. Ein Regelwerk kann beispielsweise auf einer „Meta-Ebene“ Grundsätze enthalten, wie Änderungen von Protokollen im Netzwerk abzustimmen sind. Ein Protokoll kann dann wiederum beispielsweise Spezifikationen dahingehend enthalten, wie die Blöcke einer Blockchain auszusehen haben. Ein Abstimmungsprozess innerhalb des Netzwerks kann dann beispielsweise darauf gerichtet sein, die maximale Blockgröße zu erhöhen, weil das Aufkommen an in den Blöcken zu speichernden Informationen (etwa Transaktionen) hoch ist und es mit der aktuellen Blockgröße immer wieder zu Engpässen kommt. Wenn eine Abstimmung innerhalb des Netzwerks durchgeführt werden kann, kann möglicherweise ein „Hard-Fork“, also eine Spaltung der Blockchain in zwei Blockchains auf Grund einer nicht beizulegenden Uneinigkeit zwischen bestimmten Gruppen von Akteuren, vermieden werden. Derartige „Hard-Forks“ gab es in der Vergangenheit beispielsweise in der Bitcoin-Blockchain, so dass es neben den ursprünglichen Bitcoins nun auch „Bitcoin Cash“ und „Bitcoin Gold“ gibt.
  • In einer weiteren besonders vorteilhaften Ausgestaltung beinhaltet die Sonderaufgabe mindestens einen Teilbeitrag dazu, die echte Teilmenge der Knoten neu auszuwählen. Wie zuvor erläutert, ist es im Sinne der Verfügbarkeit und der Sicherheit des Netzwerks günstig, wenn diejenigen Knoten, die Sonderaufgaben in dem Netzwerk wahrnehmen, regelmäßig gewechselt werden. Ein solcher Wechsel ist also nicht gleichbedeutend damit, dass den Knoten, die bislang die Sonderaufgaben wahrgenommen haben, das Vertrauen abgesprochen wird. Die neue Auswahl wird vielmehr gerade von solchen Knoten vorgenommen, denen zuvor bereits ausdrücklich Vertrauen ausgesprochen wurde.
  • Da die Knoten computerimplementiert sind und das Netzwerk ein Zusammenschluss der Knoten ist, kann das Verfahren insbesondere auch in einer auf den Knoten laufenden Software verkörpert sein. Daher bezieht sich die Erfindung auch auf ein Computerprogramm mit maschinenlesbaren Anweisungen, die, wenn sie auf einem oder mehreren Computern ausgeführt werden, den oder die Computer dazu veranlassen, eines der beschriebenen Verfahren auszuführen. In diesem Sinne sind auch Steuergeräte für Fahrzeuge und Embedded-Systeme für technische Geräte, die ebenfalls in der Lage sind, maschinenlesbare Anweisungen auszuführen, als Computer anzusehen.
  • Ebenso bezieht sich die Erfindung auch auf einen maschinenlesbaren Datenträger und/oder auf ein Downloadprodukt mit dem Computerprogramm. Ein Downloadprodukt ist ein über ein Datennetzwerk übertragbares, d.h. von einem Benutzer des Datennetzwerks downloadbares, digitales Produkt, das beispielsweise in einem Online-Shop zum sofortigen Download feilgeboten werden kann.
  • Weiterhin kann ein Computer mit dem Computerprogramm, mit dem maschinenlesbaren Datenträger bzw. mit dem Downloadprodukt ausgerüstet sein.
  • Weitere, die Erfindung verbessernde Maßnahmen werden nachstehend gemeinsam mit der Beschreibung der bevorzugten Ausführungsbeispiele der Erfindung anhand von Figuren näher dargestellt.
  • Figurenliste
  • Es zeigt:
    • 1 Ausführungsbeispiel des Verfahren 100;
    • 2 Stark vereinfachtes Beispiel eines Netzwerks 1, in dem das Verfahren 100 einsetzbar ist.
  • 1 ist ein Ablaufdiagramm eines Ausführungsbeispiels des Verfahrens 100. Das Verfahren 100 geht davon aus, dass ein Netzwerk 1 mit einer Vielzahl von Knoten 2 vorhanden ist. Eine echte Teilmenge 4 dieser Knoten 2 führt mindestens eine Sonderaufgabe aus, die den Betrieb des Netzwerks 1 im Ganzen beeinflusst.
  • In Schritt 110 wird jedem Knoten 2 ein Gewicht 2c zugewiesen. In Schritt 120 erhält jeder Knoten 2 die Möglichkeit, als Geber-Knoten 2a Anteile 2c' seines Gewichts 2c bedingt oder unbedingt an Nehmer-Knoten 2b zu delegieren. In Schritt 130 wird auf der Basis des Gewichts 2c eines jeden Knoten 2 zuzüglich der an ihn als Nehmer-Knoten 2b delegierten Anteile 2c' und abzüglich der von ihm als Geber-Knoten 2a an andere Nehmer-Knoten 2b delegierten Anteile 2c' wird anhand eines vorgegebenen Kriteriums 4a diejenige echte Teilmenge (4) der Knoten 2 ausgewählt, denen die mindestens eine Sonderaufgabe zugewiesen wird.
  • Innerhalb des Kastens 120 ist skizziert, wie das bedingte Delegieren erfolgt. Gemäß Block 121 wird mindestens ein Anteil 2c' von einem Geber-Knoten 2a bedingt an mindestens zwei Nehmer-Knoten 2b delegiert unter der auflösenden Bedingung, dass der jeweilige Nehmer-Knoten 2b nach der Auswahl 130 nicht zu der echten Teilmenge 4 gehört. Dabei gilt die zusätzliche Einschränkung 121a, dass ein und derselbe Anteil 2c', der an mehrere Nehmer-Knoten 2b bedingt delegiert ist, höchstens bei der Aufnahme eines dieser Nehmer-Knoten 2b in die echte Teilmenge 4 berücksichtigt werden kann.
  • Innerhalb des Kastens 130 sind beispielhafte Kriterien 4a dargestellt, anhand derer die echte Teilmenge 4 auf der Basis der Gewichte 2c und delegierten Anteile 2c' ausgewählt werden kann.
  • Gemäß Block 131 wird mindestens eine Kandidaten-Teilmenge 4b von Knoten 2 aufgestellt. Gemäß Block 132 wird bereits beim Aufstellen der Kandidaten-Teilmenge oder durch nachträgliche Prüfung sichergestellt, dass die Kandidaten-Teilmenge 4b mit einer Nutzung der delegierten Anteile 2c' konsistent ist, bei der ein und derselbe Anteil 2c' höchstens für einen Nehmer-Knoten 2b in der Kandidaten-Teilmenge 4b berücksichtigt wird. Sollte sich bei einer Prüfung herausstellen, dass dies nicht der Fall ist (Wahrheitswert 0), ist die Einschränkung 121a verletzt, und die Kandidaten-Teilmenge 4b kann nicht verwendet werden. Es wird zum Aufstellen 131 einer neuen Kandidaten-Teilmenge 4b zurückverzweigt. Ist die Einschränkung 121a hingegen erfüllt (Wahrheitswert 1 bei Block 132), wird die Kandidaten-Teilmenge 4b nach Maßgabe eines Optimalitätskriteriums 133a mit einer Bewertungszahl 133b bewertet.
  • Wenn die Bewertungszahl 133b das Kriterium 135 erfüllt (Wahrheitswert 1), wird gemäß Block 134 die Kandidaten-Teilmenge 4b als echte Teilmenge 4 der Knoten 2, die in dem Netzwerk 1 Sonderaufgaben ausführen, festgelegt. Wenn die Bewertungszahl 133b das Kriterium 135 hingegen nicht erfüllt (Wahrheitswert 0), wird zum Aufstellen 131 einer neuen Kandidaten-Teilmenge 4b zurückverzweigt.
  • Dabei wird jedoch gemäß Block 136 zuvor geprüft, ob ein vorgegebenes Kontingent an Aufwand für die Auswahl der echten Teilmenge 4 bereits erschöpft ist. Ist dies der Fall (Wahrheitswert 1), wird zu Block 134 vorverzweigt und die Kandidaten-Teilmenge 4b mit der bis zu diesem Zeitpunkt besten Bewertungszahl 133b als echte Teilmenge 4 festgelegt. Die Prüfung gemäß Block 136 erfolgt auch dann, wenn von Block 132 zu Block 131 zurückverzweigt wird.
  • Gemäß Schritt 140 können Mengenanteile einer Ressource des Netzwerks 1 (etwa Geldbeträge in Kryptowährung), die zu den Gewichten 2c der Knoten 2 in der echten Teilmenge 4 einschließlich der an diese Knoten 2 als Nehmer-Knoten 2b delegierten Anteile 2c' korrespondieren, gesperrt gehalten und somit als Pfand für eine ordnungsgemäße Ausführung der mindestens einen Sonderaufgabe gesichert werden.
  • Gemäß Schritt 150 können in Antwort auf die Feststellung 150, dass ein Knoten 2 in der echten Teilmenge 4 seinen Part der Sonderaufgabe nicht oder mangelhaft ausgeführt hat, Mengenanteile der Ressource, die zum Gewicht 2c dieses Knotens 2 einschließlich der an diesen Knoten 2 als Nehmer-Knoten 2b delegierten Anteile 2c' korrespondieren, verfallen.
  • 2 zeigt ein stark vereinfachtes Beispiel eines Netzwerks 1, in dem das Verfahren 100 einsetzbar ist. Die Knoten 2 tauschen entlang der gestrichelt eingezeichneten bidirektionalen Pfade Informationen untereinander und mit Client-Stationen 3 aus. Das Netzwerk 1 als Ganzes stellt für die Client-Stationen 3 mindestens einen Dienst bereit, wie beispielsweise die Verwaltung einer Blockchain für Transaktionen in einer Kryptowährung.
  • Jedem der Knoten 2 ist ein Gewicht 2c zugewiesen. Einige Knoten 2 fungieren als Geber-Knoten 2a und delegieren Anteile 2c' ihres Gewichts 2c an Nehmer-Knoten 2b, wobei ein und derselbe Anteil 2c' von einem Geber-Knoten 2a an mehrere Nehmer-Knoten 2b delegiert werden kann. Auf der Basis der Gewichte 2c einschließlich der delegierten Anteile 2c' wird eine echte Teilmenge 4 der Knoten 2 für die Ausführung von Sonderaufgaben im Netzwerk 1 ausgewählt.
  • Die Nehmer-Knoten 2b können beispielsweise aus einer Teilmenge 5 von Knoten 2 des Netzwerks ausgewählt sein, die überhaupt für die Ausführung von Sonderaufgaben zur Wahl stehen.

Claims (18)

  1. Verfahren (100) zum Betreiben eines Netzwerks (1) aus einer Vielzahl computerimplementierter Knoten (2), wobei die Knoten Informationen im dem Netzwerk (1) untereinander verteilen und mit anfragenden Client-Stationen (3) auszutauschen und wobei eine echte Teilmenge (4) der Knoten (2) mindestens eine Sonderaufgabe ausführt, die den Betrieb des Netzwerks (1) als Ganzes beeinflusst, mit den Schritten: • jedem Knoten (2) wird ein Gewicht (2c) im Netzwerk (1) zugewiesen (110), wobei jeder Knoten (2) die Möglichkeit hat, als Geber-Knoten (2a) Anteile (2c') seines Gewichts (2c) bedingt oder unbedingt an andere Nehmer-Knoten (2b) zu delegieren (120); • auf der Basis des Gewichts (2c) eines jeden Knoten (2) zuzüglich der an ihn als Nehmer-Knoten (2b) delegierten Anteile (2c') und abzüglich der von ihm als Geber-Knoten (2a) an andere Nehmer-Knoten (2b) delegierten Anteile (2c') wird anhand mindestens eines vorgegebenen Kriteriums (4a) diejenige echte Teilmenge (4) der Knoten (2) ausgewählt (130), denen die mindestens eine Sonderaufgabe zugewiesen wird; wobei mindestens ein Anteil (2c') von einem Geber-Knoten (2a) • bedingt an mindestens zwei Nehmer-Knoten (2b) delegiert wird (121) unter der auflösenden Bedingung, dass der jeweilige Nehmer-Knoten (2b) nach der Auswahl (130) nicht zu der echten Teilmenge (4) gehört, • mit der zusätzlichen Einschränkung (121a), dass ein und derselbe Anteil (2c'), der an mehrere Nehmer-Knoten (2b) bedingt delegiert ist, höchstens bei der Aufnahme eines dieser Nehmer-Knoten (2b) in die echte Teilmenge (4) berücksichtigt werden kann.
  2. Verfahren (100) nach Anspruch 1, wobei der Geber-Knoten (2a) die Nehmer-Knoten (2b) aus einer Teilmenge (5) auswählt, die diejenigen Knoten (2) umfasst, die sich für die Übernahme der Sonderaufgabe zur Wahl gestellt haben, und/oder die hierfür zur Wahl gestellt worden sind.
  3. Verfahren (100) nach einem der Ansprüche 1 bis 2, wobei das Auswählen (130) der echten Teilmenge (4) beinhaltet, • mindestens eine Kandidaten-Teilmenge (4b) von Knoten (2) aufzustellen (131), • sicherzustellen (132), dass diese Kandidaten-Teilmenge (4b) mit einer Nutzung der delegierten Anteile (2c') konsistent ist, bei der ein und derselbe delegierte Anteil (2c') höchstens für einen Nehmer-Knoten (2b) in der Kandidaten-Teilmenge (4b) berücksichtigt wird; • die Kandidaten-Teilmenge (4b) nach Maßgabe eines Optimalitätskriteriums (133a) mit einer Bewertungszahl (133b) zu bewerten (133); und • auf der Basis der Bewertungszahl (133b) eine Kandidaten-Teilmenge (4b) als echte Teilmenge (4) auszuwählen (134).
  4. Verfahren (100) nach Anspruch 3, wobei das Optimalitätskriterium (133a) die Gesamtsumme aller Gewichte (2c) unter der Voraussetzung, dass die echte Teilmenge (4) entsprechend der Kandidaten-Teilmenge (4b) ausgewählt wird, beinhaltet.
  5. Verfahren (100) nach einem der Ansprüche 3 bis 4, wobei das Optimalitätskriterium (133a) ein Verhältnis der Summe der unbedingt an alle Knoten (2) in der Kandidaten-Teilmenge (4b) delegierten Anteile (2c') zur Summe der unbedingt an alle Knoten (2) des Netzwerks (1) delegierten Anteile (2c') beinhaltet.
  6. Verfahren (100) nach einem der Ansprüche 3 bis 5, wobei das Optimalitätskriterium (133a) einen Vergleich der Verteilung (6a) einer vorgegebenen Eigenschaft (6) über alle Knoten (2) des Netzwerks (1) mit der Verteilung (6b) dieser Eigenschaft (6) über alle Knoten (2) der Kandidaten-Teilmenge (4b) beinhaltet.
  7. Verfahren (100) nach einem der Ansprüche 3 bis 6, wobei neue Kandidaten-Teilmengen (4b) von Knoten (2) aufgestellt werden (131), bis deren Bewertungszahl (133b) ein vorgegebenes Kriterium (135) erfüllt oder bis ein vorgegebenes Kontingent (136) an in Zeit, Rechenschritten oder einem anderen quantitativen Maß gemessenen Aufwand für die Auswahl der echten Teilmenge (4) erschöpft ist, je nachdem, was zuerst eintritt.
  8. Verfahren (100) nach einem der Ansprüche 3 bis 7, wobei mindestens eine Kandidaten-Teilmenge (4b) auf der Basis einer Kandidaten-Verteilung der Nutzung der delegierten Anteile (2c') durch Anwenden des vorgegebenen Kriteriums (4a) ermittelt wird.
  9. Verfahren (100) nach einem der Ansprüche 1 bis 8, wobei das Gewicht (2c), das einem jeden Knoten (2) im Netzwerk (1) zugewiesen wird (110), zu einem Mengenanteil an mindestens einer Ressource korrespondiert, über den dieser Knoten (2) verfügungsberechtigt ist und mit dem dieser Knoten (2) für eine mangelfreie Ausführung der Sonderaufgabe bürgt.
  10. Verfahren (100) nach Anspruch 9, wobei die Mengenanteile der Ressource, die zu den Gewichten (2c) der Knoten (2) in der echten Teilmenge (4) einschließlich der an diese Knoten (2) als Nehmer-Knoten (2b) delegierten Anteile (2c') korrespondieren, gesperrt gehalten werden (140).
  11. Verfahren (100) nach einem der Ansprüche 9 bis 10, wobei in Antwort auf die Feststellung (150), dass ein Knoten (2) in der echten Teilmenge (4) seinen Part der Sonderaufgabe nicht oder mangelhaft ausgeführt hat, Mengenanteile der Ressource, die zum Gewicht (2c) dieses Knotens (2) einschließlich der an diesen Knoten (2) als Nehmer-Knoten (2b) delegierten Anteile (2c') korrespondieren, dem Zugriff dieses Knotens (2), und/oder dem Zugriff von Anteile an diesen Knoten (2, 2b) delegierenden Geber-Knoten (2a), ganz oder teilweise entzogen werden (160).
  12. Verfahren (100) nach einem der Ansprüche 1 bis 11, wobei die Sonderaufgabe mindestens einen Teilbetrag dazu beinhaltet, einen neuen Block, der für die Hinzufügung zu einer von dem Netzwerk (1) verwalteten Blockchain ansteht, zu erstellen, und/oder die in einem solchen Block enthaltenen Informationen auf Korrektheit im Hinblick auf ein für die Blockchain vorgegebenes Regelwerk zu prüfen, und/oder den Block bei positivem Ausgang dieser Prüfung der Blockchain hinzuzufügen.
  13. Verfahren (100) nach Anspruch 12, wobei die Informationen in dem für die Hinzufügung zu der Blockchain anstehenden neuen Block Transaktionen in mindestens einer Kryptowährung, und/oder mindestens einen zu beglaubigenden Sachverhalt, umfassen.
  14. Verfahren (100) nach einem der Ansprüche 1 bis 13, wobei die Sonderaufgabe mindestens einen Teilbeitrag dazu beinhaltet, mindestens eine Änderung eines für den Austausch von Informationen innerhalb des Netzwerks (1), und/oder mit anfragenden Client-Stationen (3), und/oder für die Durchführung von Aufgaben, verwendeten Protokolls, und/oder eines sonstigen für das Netzwerk (1) vorgegeben Regelwerks, umzusetzen und/oder zu koordinieren.
  15. Verfahren (100) nach einem der Ansprüche 1 bis 14, wobei die Sonderaufgabe mindestens einen Teilbeitrag dazu beinhaltet, die echte Teilmenge (4) der Knoten (2) neu auszuwählen.
  16. Computerprogramm, enthaltend maschinenlesbare Anweisungen, die, wenn sie auf einem oder mehreren Computern ausgeführt werden, den oder die Computer dazu veranlassen, ein Verfahren (100) nach einem der Ansprüche 1 bis 15 auszuführen.
  17. Maschinenlesbarer Datenträger und/oder Downloadprodukt mit dem Computerprogramm nach Anspruch 16.
  18. Computer, ausgerüstet mit dem Computerprogramm nach Anspruch 16, und/oder mit dem maschinenlesbaren Datenträger und/oder Downloadprodukt nach Anspruch 17.
DE102019214255.9A 2019-09-19 2019-09-19 Dynamisches Zuweisen von Sonderaufgaben in verteilten Netzwerken Pending DE102019214255A1 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE102019214255.9A DE102019214255A1 (de) 2019-09-19 2019-09-19 Dynamisches Zuweisen von Sonderaufgaben in verteilten Netzwerken
US17/020,470 US11226825B2 (en) 2019-09-19 2020-09-14 Dynamic assignment of special tasks in distributed networks
CN202010985580.XA CN112527731A (zh) 2019-09-19 2020-09-18 在分布网络中动态分派特殊任务

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102019214255.9A DE102019214255A1 (de) 2019-09-19 2019-09-19 Dynamisches Zuweisen von Sonderaufgaben in verteilten Netzwerken

Publications (1)

Publication Number Publication Date
DE102019214255A1 true DE102019214255A1 (de) 2021-03-25

Family

ID=74845950

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102019214255.9A Pending DE102019214255A1 (de) 2019-09-19 2019-09-19 Dynamisches Zuweisen von Sonderaufgaben in verteilten Netzwerken

Country Status (3)

Country Link
US (1) US11226825B2 (de)
CN (1) CN112527731A (de)
DE (1) DE102019214255A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115577983B (zh) * 2022-11-24 2023-04-18 神华上航疏浚有限责任公司 基于区块链的企业任务匹配方法、服务器及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9875510B1 (en) * 2015-02-03 2018-01-23 Lance Kasper Consensus system for tracking peer-to-peer digital records
US20180300694A1 (en) * 2018-05-14 2018-10-18 Beijing Good Fortune Innovative Intelligence Technology Co.Ltd Method for intelligently selecting accounting node of blockchain

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070094323A1 (en) * 2005-10-25 2007-04-26 Smith Jeffrey C Managed resource sharing method and apparatus
US8479215B2 (en) * 2009-08-18 2013-07-02 International Business Machines Corporation Decentralized load distribution to reduce power and/or cooling costs in an event-driven system
KR102514457B1 (ko) * 2017-01-10 2023-03-29 한국전자통신연구원 블록체인을 이용한 공공 단체의 거래 정보 관리 방법 및 시스템
US11216306B2 (en) * 2017-06-29 2022-01-04 Intel Corporation Technologies for dynamically sharing remote resources across remote computing nodes
US20190012595A1 (en) * 2017-07-07 2019-01-10 Pointr Data, Inc. Neural network consensus using blockchain
US11468046B2 (en) * 2018-01-17 2022-10-11 Geeq Corporation Blockchain methods, nodes, systems and products
US20210058989A1 (en) * 2019-11-06 2021-02-25 Intel Corporation Network coding and delay-efficient integrated access and backhaul network topologies

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9875510B1 (en) * 2015-02-03 2018-01-23 Lance Kasper Consensus system for tracking peer-to-peer digital records
US20180300694A1 (en) * 2018-05-14 2018-10-18 Beijing Good Fortune Innovative Intelligence Technology Co.Ltd Method for intelligently selecting accounting node of blockchain

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
DO, T. et al.: Delegated Proof of Reputation: a Novel Blockchain Consensus. In: 2019 International Electronics Communication Conference (IECC '19), Okinawa, Japan, July 7 – 9, 2019, pp. 90 – 98 *
NATOLI, C. et al.: Deconstructing Blockchains: A Comprehensive Survey on Consensus, Membership and Structure. arXiv:1908.08316 [cs.DC], 22 August 2019. URL: https://arxiv.org/abs/1908.08316v1 [abgerufen am 15.04.2020] *
SALIMITARI, M. et al.: A Survey on Consensus Protocols in Blockchain for IoT Networks. arXiv:1809.05613v4 [cs.NI], 19. Juni 2019. URL: https://arxiv.org/abs/1809.05613v4 [abgerufen am 14.04.2020] *
YANG, F. et al.: Delegated Proof of Stake With Downgrade: A Secure and Efficient Blockchain Consensus Algorithm With Downgrade Mechanism. IEEE Access, vol. 7, pp. 118541-118555, 2019 *

Also Published As

Publication number Publication date
US11226825B2 (en) 2022-01-18
US20210089320A1 (en) 2021-03-25
CN112527731A (zh) 2021-03-19

Similar Documents

Publication Publication Date Title
DE69031195T2 (de) Zuweisungsabhängiges Verfahren zur Zuteilung von Herstellungshilfsmitteln
DE112020000123T5 (de) Patch-verwaltung in einer hybriden datenverwaltungsumgebung
DE60301202T2 (de) Verfahren und vorrichtung zur verkehrssteuerung einer web-farm
AU2007263173B2 (en) System and method for monitoring trading
DE112012004999T5 (de) Beschleunigungselement zur Cloud-Bereitstellung
DE202012013609U1 (de) System zur Verteilung der Verarbeitung von Computer-Sicherheitsaufgaben
DE102021127679A1 (de) Lenkung von anfragen an koten eines clusters einer container-orchestrationsplattform, verteilt über ein host- system und einen hardware-acccelerator des host- systems
DE102016200028A1 (de) Personalbereichsverwaltungssystem
DE202023100249U1 (de) Ein System zum Finden und Optimieren eines Zeitplans für die Betriebszeiten von intelligenten Geräten
DE102019214255A1 (de) Dynamisches Zuweisen von Sonderaufgaben in verteilten Netzwerken
DE112019005043T5 (de) Streamzuweisung unter verwendung von stream-guthaben
DE112021003499T5 (de) Skalierbare operatoren für eine automatische verwaltung von arbeitslasten in hybriden cloud-umgebungen
DE10024347B4 (de) Sicherheitsservice-Schicht
DE112021000619T5 (de) Adaptive zustandsverwaltung für statusunabhängige services
DE112009001207T5 (de) Kenntnisverteilung
Kamijo et al. Overcoming coordination failure using a mechanism based on gradualism and endogeneity
WO2020164974A1 (de) Verfahren zur überwachung einer funktionalität eines fahrzeuginformationssystems eines kraftfahrzeugs, sowie elektronische recheneinrichtung, computerprogramm und datenträger
EP3617977A1 (de) Einrichtung und verfahren zum ermitteln einer konsensversion eines transaktionsbuchs und einrichtung und verfahren zum überwachen eines verteilten datenbanksystems
DE602004006648T2 (de) Benutzungsverfahren und system in einem kommunikationsnetz
WO2020064132A1 (de) Datenbanksystem für ein soziales netzwerk mit verwendung von blockchain-technologie
EP3557341A1 (de) Verfahren und verwaltungseinrichtung zur optimierung eines industriellen prozesses
DE102017000167A1 (de) Anonymisierung einer Blockkette
DE202021102315U1 (de) Flexibles Computing
DE112021001559T5 (de) Regelverteilung auf instanzen einer regelmaschine
DE10309615A1 (de) Dynamische Verarbeitung von Datenverarbeitungsaufträgen

Legal Events

Date Code Title Description
R163 Identified publications notified