{"id":30047,"date":"2019-10-31T21:33:25","date_gmt":"2019-10-31T18:33:25","guid":{"rendered":"https:\/\/prohoster.info\/blog\/razbiraemsya-v-protokole-konsensusa-stellar\/"},"modified":"2019-10-31T21:33:25","modified_gmt":"2019-10-31T18:33:25","slug":"razbiraemsya-v-protokole-konsensusa-stellar","status":"publish","type":"post","link":"https:\/\/prohoster.info\/de\/blog\/razbiraemsya-v-protokole-konsensusa-stellar","title":{"rendered":"Lernen Sie das Stellar-Konsensprotokoll kennen","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Lernen Sie das Stellar-Konsensprotokoll kennen\" src=\"\/wp-content\/uploads\/2019\/03\/09b61160286ae40c21269e1590fc2b92.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDas Stellar-Konsensprotokoll wurde erstmals beschrieben von <noindex><a rel=\"nofollow\" href=\"https:\/\/www.stellar.org\/papers\/stellar-consensus-protocol.pdf\">in einem wissenschaftlichen Artikel<\/a><\/noindex> David Mazieres im Jahr 2015. Es handelt sich um ein \u201efederiertes System des byzantinischen Konsenses\u201c, das es dezentralen Rechennetzen ohne f\u00fchrende Instanzen erm\u00f6glicht, effektiv einen Konsens \u00fcber Entscheidungen zu erreichen. Das Zahlungsnetzwerk Stellar verwendet das Stellar Consensus Protocol (SCP), um eine konsistente Historie von Transaktionen zu f\u00fchren, die allen Teilnehmern sichtbar ist.<\/p>\n<p>Es wird angenommen, dass Konsensprotokolle schwer zu verstehen sind. SCP ist einfacher als die meisten, hat jedoch dennoch diesen Ruf, teilweise aufgrund der irref\u00fchrenden Vorstellung, dass \u201efederierte Abstimmung\u201c, die in der ersten H\u00e4lfte der wissenschaftlichen Arbeit behandelt wird, SCP ist. Das ist jedoch nicht der Fall! Es ist lediglich ein wichtiger Baustein, der in der zweiten H\u00e4lfte der Arbeit verwendet wird, um <i>das tats\u00e4chliche<\/i> Stellar-Konsensprotokoll zu erstellen.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nIn diesem Artikel werden wir kurz erl\u00e4utern, was ein \u201eAbkommenssystem\u201c ist, was es \u201ebyzantinisch\u201c machen kann und warum man ein byzantinisches System \u201efederiert\u201c gestalten sollte. Dann erkl\u00e4ren wir das federative Abst verfahren, das in der SCP-Arbeit beschrieben wird, und schlie\u00dflich erl\u00e4utern wir das Protokoll SCP selbst.<\/p>\n<h1>Abkommenssysteme<\/h1>\n<p>\nDas Vereinbarungssystem erm\u00f6glicht es einer Gruppe von Teilnehmern, zu einem Konsens zu kommen, beispielsweise dazu, was wir zum Mittagessen bestellen sollten.<\/p>\n<p>Wir bei Interstellar haben unser eigenes Mittagessen-Vereinbarungssystem eingef\u00fchrt: Wir bestellen das, was unser Operationsmanager John vorschl\u00e4gt. Es ist ein einfaches und effektives System. Wir vertrauen John und glauben, dass er jeden Tag etwas Interessantes und Nahrhaftes findet.<\/p>\n<p>Aber was, wenn John unser Vertrauen missbraucht? Er k\u00f6nnte einseitig entscheiden, dass wir alle Veganer werden sollten. In ein oder zwei Wochen w\u00fcrden wir ihn wahrscheinlich st\u00fcrzen und die Verantwortung an Elizabeth \u00fcbergeben. Aber was ist, wenn sie Avocado mit Sardellen liebt und denkt, dass das f\u00fcr alle das Richtige ist? Macht verdirbt. Daher w\u00e4re es besser, eine demokratischere Methode zu finden: eine M\u00f6glichkeit sicherzustellen, dass verschiedene Vorlieben ber\u00fccksichtigt werden, w\u00e4hrend ein zeitnahes und eindeutiges Ergebnis erzielt wird, damit nicht am Ende niemand das Mittagessen bestellt oder f\u00fcnf verschiedene Bestellungen aufgegeben werden, oder die Diskussion bis zum Abend dauert.<\/p>\n<p>Es scheint eine einfache L\u00f6sung zu sein: eine Abstimmung durchzuf\u00fchren! Doch dieser Eindruck t\u00e4uscht. Wer wird die Stimmzettel einsammeln und die Ergebnisse mitteilen? Und warum sollten die anderen dem, was er sagt, glauben? Vielleicht k\u00f6nnen wir <i>zuerst<\/i> f\u00fcr einen vertrauensw\u00fcrdigen F\u00fchrer stimmen, der die Abstimmung leitet \u2013 aber wer wird diese <i>erste<\/i> Abstimmung leiten? Was ist, wenn wir uns nicht auf einen F\u00fchrer einigen k\u00f6nnen? Oder wenn wir uns einig sind, dieser F\u00fchrer aber in einem Meeting festh\u00e4ngt oder krank wird?<\/p>\n<p>\u00c4hnliche Probleme treten in verteilten Computersystemen auf. Alle Teilnehmer oder Knoten m\u00fcssen eine Entscheidung treffen, beispielsweise, wer den gemeinsamen Datei aktualisieren oder eine Aufgabe aus der Warteschlange abrufen darf. In einem Kryptow\u00e4hrungsnetzwerk m\u00fcssen die Knoten wiederholt ausw\u00e4hlen, wie die vollst\u00e4ndige Geschichte aus mehreren m\u00f6glichen Versionen aussieht, die manchmal miteinander in Konflikt stehen. Dieses Netzwerkprotokoll stellt dem Empf\u00e4nger sicher, dass die M\u00fcnze (a) g\u00fcltig (nicht gef\u00e4lscht) ist und (b) noch nicht an anderer Stelle ausgegeben wurde. Es garantiert auch, dass er die M\u00fcnzen in der Zukunft ausgeben kann, da der neue Empf\u00e4nger die gleichen Garantien aus den gleichen Gr\u00fcnden haben wird.<\/p>\n<p>Jedes Konsenssystem in einem verteilten Rechennetzwerk muss ausfallsicher sein: Es muss konsistente Ergebnisse liefern, trotz Fehlern wie langsamen Kommunikationsleitungen, nicht reagierenden Knoten und falscher Reihenfolge der Nachrichten. <i>Byzantinisch<\/i> Das Konsenssystem ist zus\u00e4tzlich resistent gegen\u00fcber \u00bbbyzantinischen\u00ab Fehlern: Knoten, die falsche Informationen liefern, sei es durch einen Fehler oder in einem absichtlichen Versuch, das System zu untergraben oder sich einen Vorteil zu verschaffen. Die \u00bbbyzantinische\u00ab Fehlertoleranz \u2013 die F\u00e4higkeit, einer Gruppenzusammenkunft zu vertrauen, selbst wenn einige Mitglieder der Gruppe l\u00fcgen oder die Entscheidungsregeln nicht einhalten \u2013 hat ihren Namen von <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%97%D0%B0%D0%B4%D0%B0%D1%87%D0%B0_%D0%B2%D0%B8%D0%B7%D0%B0%D0%BD%D1%82%D0%B8%D0%B9%D1%81%D0%BA%D0%B8%D1%85_%D0%B3%D0%B5%D0%BD%D0%B5%D1%80%D0%B0%D0%BB%D0%BE%D0%B2\">der Fabel \u00fcber die Gener\u00e4le des Byzantinischen Reiches<\/a><\/noindex>, die versuchten, einen Angriff zu koordinieren. <noindex><a rel=\"nofollow\" href=\"https:\/\/medium.com\/coinmonks\/a-note-from-anthony-if-you-havent-already-please-read-the-article-gaining-clarity-on-key-787989107969\">Eine gute Beschreibung<\/a><\/noindex> von Anthony Stevens.<\/p>\n<p>Betrachten wir die Krypto-Besitzerin Alice, die zwischen dem Kauf von leckerem Eis bei Bob und der Begleichung einer Schuld bei Carol w\u00e4hlen muss. M\u00f6glicherweise m\u00f6chte Alice beide gleichzeitig bezahlen, indem sie dieselbe M\u00fcnze betr\u00fcgerisch ausgibt. Dazu muss sie den Computer von Bob \u00fcberzeugen, dass die M\u00fcnze niemals an Carol ausgezahlt wurde, und den Computer von Carol \u00fcberzeugen, dass die M\u00fcnze niemals an Bob ausgezahlt wurde. Das byzantinische Konsenssystem macht dies praktisch unm\u00f6glich, indem es eine Form der Mehrheitsregel verwendet, die als <i>Quorum<\/i>. Ein Knoten in einem solchen Netzwerk weigert sich, auf eine bestimmte Version der Historie zu wechseln, bis er sieht, dass eine ausreichende Anzahl von Peer-Knoten \u2014 ein Quorum \u2014 diesem Wechsel zustimmt. Sobald dies geschieht, bilden sie einen ausreichend gro\u00dfen Wahlblock, um die verbleibenden Knoten im Netzwerk zu zwingen, ihrer Entscheidung zuzustimmen. Alice kann einige Knoten dazu bringen, in ihrem Namen zu l\u00fcgen, aber wenn das Netzwerk gro\u00df genug ist, wird ihr Versuch durch die Stimmen ehrlicher Knoten unterdr\u00fcckt.<\/p>\n<p>Wie viele Knoten sind f\u00fcr ein Quorum erforderlich? Mindestens die Mehrheit, genauer gesagt eine qualifizierte Mehrheit, um Fehler und Betrug zu bek\u00e4mpfen. Um jedoch die Mehrheit zu z\u00e4hlen, muss man die Gesamtzahl der Teilnehmer kennen. Im B\u00fcro Interstellar oder bei Kommunalwahlen sind diese Zahlen leicht zu ermitteln. Aber wenn Ihre Gruppe ein schwach definiertes Netzwerk ist, in das Knoten nach Belieben ein- und austreten k\u00f6nnen, ohne mit einem Zentrum abzustimmen, dann ben\u00f6tigt man <i>eine f\u00f6derative<\/i> Ein System von byzantinischen Vereinbarungen, das in der Lage ist, Quoren nicht aus einer vorab definierten Liste von Knoten zu bestimmen, sondern dynamisch aus einem st\u00e4ndig wechselnden und unvermeidlich unvollst\u00e4ndigen Snapshot von Knoten zu einem bestimmten Zeitpunkt.<\/p>\n<p>Es mag unm\u00f6glich erscheinen, ein Quorum aus der Sicht eines einzelnen Knotens in einem umfassenden Netzwerk zu schaffen, aber das ist m\u00f6glich. Ein solches Quorum kann sogar die Ergebnisse einer dezentralen Abstimmung garantieren. Das technische Dokument SCP zeigt, wie dies mit einem Verfahren namens <i>f\u00f6derativer Abstimmung<\/i>.<\/p>\n<h1>F\u00fcr Ungeduldige<\/h1>\n<p>\nDer Rest des Artikels beschreibt genauer die f\u00f6derative Abstimmung und das Stellar-Konsensprotokoll. Wenn Sie an Details nicht interessiert sind, finden Sie hier einen allgemeinen \u00dcberblick \u00fcber den Prozess.<\/p>\n<ol>\n<li>Knoten f\u00fchren Runden der f\u00f6derativen Abstimmung \u00fcber \u201eNominierungen\u201c durch. Eine Runde der f\u00f6derativen Abstimmung bedeutet:\n<ul>\n<li>Ein Knoten stimmt \u00fcber eine Behauptung ab, wie z.B. \u201eIch schlage den Wert V vor\u201c;\n<\/li>\n<li>Ein Knoten h\u00f6rt die Stimmen der Peers, bis er einen findet, der \u201eannehmen\u201c kann;\n<\/li>\n<li>Ein Knoten sucht nach einem \u201eQuorum\u201c f\u00fcr diese Behauptung. Das Quorum \u201ebest\u00e4tigt\u201c den Nominanten.<\/li>\n<\/ul>\n<\/li>\n<li>Sobald der Knoten einen oder mehrere Nominierte best\u00e4tigen kann, versucht er, den \"Wahlzettel\" durch mehrere Runden f\u00f6derativer Abstimmung \"vorzubereiten\".\n<\/li>\n<li>Sobald der Knoten in der Lage ist, die Bereitschaft des Wahlzettels zu \u00fcberpr\u00fcfen, versucht er, ihn durch noch mehr Runden f\u00f6derativer Abstimmung zu committen.\n<\/li>\n<li>Sobald der Knoten den Commit des Wahlzettels best\u00e4tigen kann, kann er den Wert dieses Wahlzettels \"externeren\", indem er ihn als Ergebnis des Konsenses verwendet.<\/li>\n<\/ol>\n<p>\nDiese Schritte beinhalten mehrere Runden f\u00f6derativer Abstimmung, die zusammen eine Runde SCP bilden. Lassen Sie uns n\u00e4her betrachten, was in jedem Schritt passiert.<\/p>\n<h1>F\u00f6derative Abstimmung<\/h1>\n<p>\nDie f\u00f6derative Abstimmung ist ein Verfahren zur Feststellung, ob das Netzwerk einem Vorschlag zustimmen kann. In der Abstimmungsrunde muss jeder Knoten einen aus potenziell vielen m\u00f6glichen Werten ausw\u00e4hlen. Er kann dies nicht tun, solange er sich nicht sicher ist, dass andere Knoten im Netzwerk nicht ein anderes Ergebnis w\u00e4hlen. Um sicherzustellen, dass dies der Fall ist, tauschen die Knoten eine Flut von Nachrichten hin und her, sodass jeder <i>hat best\u00e4tigt<\/i>, dass <i>Quorum<\/i> Knoten <i>nimmt<\/i> dasselbe w\u00e4hlt. <i>L\u00f6sung<\/i>. Der restliche Teil dieses Abschnitts erkl\u00e4rt die Begriffe in diesem Satz und wie das gesamte Verfahren abl\u00e4uft.<\/p>\n<h1>Quoren und Quorum-Slices<\/h1>\n<p>\nFangen wir mit der Definition des Quorums an. Wie oben diskutiert, ist es in einem dezentralisierten Netzwerk mit dynamischer Mitgliedschaft unm\u00f6glich, im Voraus die Anzahl der Knoten zu kennen und somit zu bestimmen, wie viele f\u00fcr die Mehrheit erforderlich sind. Das f\u00f6derierte Abstimmen l\u00f6st dieses Problem, indem es eine neue Idee pr\u00e4sentiert. <i>Quorum-Slice<\/i> (quorum slice): eine kleine Menge von gleichrangigen Knoten, denen ein Knoten vertraut, um Informationen \u00fcber den Abstimmungsstatus im Rest des Netzwerks zu \u00fcbertragen. Jeder Knoten definiert sein eigenes Quorum-Slice (dem er faktisch angeh\u00f6rt).<\/p>\n<p>Die Bildung des Quorums beginnt mit dem Quorum-Slice. Zu jedem Knoten werden die Knoten seines Slices hinzugef\u00fcgt. Dann werden die Mitglieder der Slices <i>dieser Knoten<\/i> usw. Im Verlauf des Prozesses werden immer mehr Knoten erreicht, die Sie nicht hinzuf\u00fcgen k\u00f6nnen, weil sie bereits im Slice enthalten sind. Wenn es keine neuen Knoten mehr zum Hinzuf\u00fcgen gibt, wird der Prozess gestoppt: Wir haben ein Quorum durch 'transitive Closure' des Quorum-Slices des urspr\u00fcnglichen Knotens gebildet.<\/p>\n<p><img decoding=\"async\" alt=\"Lernen Sie das Stellar-Konsensprotokoll kennen\" src=\"\/wp-content\/uploads\/2019\/03\/6991e3f9a22d920e4a5e9c161f32dee1.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Um ein Quorum aus diesem Knoten zu finden\u2026<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Lernen Sie das Stellar-Konsensprotokoll kennen\" src=\"\/wp-content\/uploads\/2019\/03\/52b3d435a8f4a67b56deb43c83fee828.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>\u2026 f\u00fcgen wir Mitglieder seines Slices hinzu\u2026<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Lernen Sie das Stellar-Konsensprotokoll kennen\" src=\"\/wp-content\/uploads\/2019\/03\/0820e9ca560caf9ebfa92db8e7a1da85.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>\u2026 dann f\u00fcgen wir Mitglieder der Slices dieser Knoten hinzu.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Lernen Sie das Stellar-Konsensprotokoll kennen\" src=\"\/wp-content\/uploads\/2019\/03\/539933eb3c279fa7da68fc9049516fc8.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Wir machen weiter, bis keine Knoten mehr hinzuzuf\u00fcgen sind.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Lernen Sie das Stellar-Konsensprotokoll kennen\" src=\"\/wp-content\/uploads\/2019\/03\/48058639262412514641063a10503a01.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"Lernen Sie das Stellar-Konsensprotokoll kennen\" src=\"\/wp-content\/uploads\/2019\/03\/d068fb06f35337ae68c35b4606f329ae.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Es sind keine Knoten mehr zum Hinzuf\u00fcgen vorhanden. Das ist das Quorum.<\/i><\/p>\n<p>Tats\u00e4chlich kann jeder Knoten in mehr als einem Slice sein. Um ein Quorum zu bilden, w\u00e4hlen Sie nur einen der Slices aus und f\u00fcgen Sie Mitglieder hinzu; w\u00e4hlen Sie dann einen Slice f\u00fcr jedes Mitglied und f\u00fcgen Sie Mitglieder hinzu <i>dieses Ergebnis herauskommt<\/i> des Slices usw. Das bedeutet, dass jeder Knoten Teil vieler m\u00f6glicher Quoren ist.<\/p>\n<p><img decoding=\"async\" alt=\"Lernen Sie das Stellar-Konsensprotokoll kennen\" src=\"\/wp-content\/uploads\/2019\/03\/3427406c132cfd1cd174b856a1239908.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>W\u00e4hlen Sie bei jedem Schritt nur einen Slice des Quorums aus.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Lernen Sie das Stellar-Konsensprotokoll kennen\" src=\"\/wp-content\/uploads\/2019\/03\/79a8728890ecb36b2e127b1b76c44fc8.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"Lernen Sie das Stellar-Konsensprotokoll kennen\" src=\"\/wp-content\/uploads\/2019\/03\/22fe0422c73cdf5fb5416e389934c5c3.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"Lernen Sie das Stellar-Konsensprotokoll kennen\" src=\"\/wp-content\/uploads\/2019\/03\/60379efdde3b88fb9c86de6c5b4a0b62.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Ein m\u00f6gliches Quorum. Oder eine alternative Option\u2026<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Lernen Sie das Stellar-Konsensprotokoll kennen\" src=\"\/wp-content\/uploads\/2019\/03\/341f1e897be1474ee2d67324da2134b1.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>\u2026 w\u00e4hlen wir andere Slices aus\u2026<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Lernen Sie das Stellar-Konsensprotokoll kennen\" src=\"\/wp-content\/uploads\/2019\/03\/8a6d605050b075bf935e6151bd1cbe2c.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"Lernen Sie das Stellar-Konsensprotokoll kennen\" src=\"\/wp-content\/uploads\/2019\/03\/865567aa370605b7cf10da3457c3d158.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>&#8230;(wenn m\u00f6glich)\u2026<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Lernen Sie das Stellar-Konsensprotokoll kennen\" src=\"\/wp-content\/uploads\/2019\/03\/6343f774104454d62e7c8681bf25dbcb.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>\u2026 erzeugt ein anderes Quorum.<\/i><\/p>\n<p>Wie erkennt ein Knoten, in welchen Slices andere Knoten enthalten sind? Genau wie andere Informationen \u00fcber andere Knoten: aus \u00dcbertragungen, die jeder Knoten ins Netzwerk sendet, wenn sich sein Abstimmungsverhalten \u00e4ndert. Jede \u00dcbertragung enth\u00e4lt Informationen \u00fcber die Slices des sendenden Knotens. Im technischen Dokument SCP wird der Kommunikationsmechanismus nicht angegeben. Implementierungen verwenden in der Regel <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Gossip_protocol\">Gossip-Protokoll.<\/a><\/noindex> f\u00fcr die garantierte \u00dcbertragung von Nachrichten im gesamten Netzwerk.<\/p>\n<p>Wir erinnern daran, dass in einem nicht-f\u00f6derativen byzantinischen Konsenssystem das Quorum als die Mehrheit aller Knoten definiert ist. Das byzantinische Konsenssystem wurde mit der Frage entwickelt: Wie viele unehrliche Knoten kann das System tolerieren? In einem System mit N Knoten, das auf das \u00dcberleben bei f Ausf\u00e4llen (Betr\u00fcgereien) ausgelegt ist, muss ein Knoten in der Lage sein, Fortschritte zu erzielen, indem er Antworten von N\u2212f Peer-Knoten erh\u00e4lt, da f von ihnen m\u00f6glicherweise nicht funktionsf\u00e4hig sind. Wenn der Knoten Antworten von N\u2212f Peers erh\u00e4lt, kann man annehmen, dass alle f Peers (von denen der Knoten keine Antwort erhalten hat) tats\u00e4chlich ehrlich sind. So sind die sch\u00e4dlichen Knoten f aus den N\u2212f Peers (von denen eine Antwort erhalten wurde). Damit die Knoten zu einem konsistenten Konsens kommen, muss die Mehrheit der restlichen Knoten ehrlich sein; das bedeutet, dass wir ben\u00f6tigen, dass N\u2212f gr\u00f6\u00dfer ist als 2f oder N &gt; 3f. Daher hat ein System, das auf \u00dcberleben bei f Ausf\u00e4llen ausgelegt ist, normalerweise insgesamt N=3f+1 Knoten und eine Quorumgr\u00f6\u00dfe von 2f+1. Sobald ein Vorschlag die Quorumgrenze \u00fcberschreitet, sind die anderen Mitglieder des Netzwerks davon \u00fcberzeugt, dass alle konkurrierenden Vorschl\u00e4ge scheitern werden. So konvergiert das Netzwerk zu einem Ergebnis.<\/p>\n<p>In einem f\u00f6derativen byzantinischen System von Vereinbarungen kann es nicht nur keine Mehrheit geben (weil niemand die Gesamtgr\u00f6\u00dfe des Netzwerks kennt), sondern das Konzept der Mehrheit ist completamente nutzlos! Wenn die Mitgliedschaft im System offen ist, kann jemand die Mehrheit einfach erlangen, indem er einen sogenannten Sybil-Angriff durchf\u00fchrt: mehrmals durch verschiedene Knoten dem Netzwerk beitritt. Warum kann also die transitive Schlie\u00dfung eines Schnitts genannt werden <i>Quorum<\/i>, und wie ist sie in der Lage, konkurrierende Vorschl\u00e4ge zu unterdr\u00fccken?<\/p>\n<p>Technisch gesehen, \u00fcberhaupt nicht! Stellen Sie sich ein Netzwerk mit sechs Knoten vor, in dem zwei Gruppen jeweils in den Quorum-Schnitten des anderen isoliert sind. Die erste Untergruppe kann eine Entscheidung treffen, von der die zweite niemals erfahren wird, und umgekehrt. F\u00fcr dieses Netzwerk gibt es keinen Weg, Konsens zu erreichen (au\u00dfer zuf\u00e4llig).<\/p>\n<p>Deshalb verlangt SCP, dass f\u00fcr eine f\u00f6derative Abstimmung (und zur Anwendung wichtiger Theoreme des Artikels) das Netzwerk \u00fcber eine Eigenschaft verf\u00fcgen muss, die genannt wird <i>Quorum-Schnitte.<\/i>. In einem Netzwerk mit dieser Eigenschaft \u00fcberschneiden sich immer mindestens zwei Quoren an einem Knotenpunkt. Um die vorherrschenden Meinungen im Netzwerk zu bestimmen, ist dies ebenso effektiv wie eine Mehrheit zu haben. Intuitiv bedeutet dies, dass, wenn ein Quorum einer Aussage X zustimmt, kein anderes Quorum jemals etwas anderes zustimmen kann, da es zwangsl\u00e4ufig einen Knoten aus dem ersten Quorum enth\u00e4lt, der bereits f\u00fcr X abgestimmt hat.<\/p>\n<p><img decoding=\"async\" alt=\"Lernen Sie das Stellar-Konsensprotokoll kennen\" src=\"\/wp-content\/uploads\/2019\/03\/5b0aeec99e285b4bbeb92ec5b8dfe69d.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Wenn es im Netzwerk \u00dcberschneidungen von Quoren gibt\u2026<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Lernen Sie das Stellar-Konsensprotokoll kennen\" src=\"\/wp-content\/uploads\/2019\/03\/bdb3866cb02fb5991446f0cb0fa5a4fd.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>\u2026dann \u00fcberschneiden sich immer beide Quoren, die Sie bilden k\u00f6nnen\u2026<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Lernen Sie das Stellar-Konsensprotokoll kennen\" src=\"\/wp-content\/uploads\/2019\/03\/29ee8d1ce9fba6c5c24386ce1c1c639b.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>\u2026und werden stets \u00fcberlappen.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Lernen Sie das Stellar-Konsensprotokoll kennen\" src=\"\/wp-content\/uploads\/2019\/03\/6f1ef2b9896669c10fd19f1acd52db70.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"Lernen Sie das Stellar-Konsensprotokoll kennen\" src=\"\/wp-content\/uploads\/2019\/03\/6849569e849ac3b5487d31e0bf22a596.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n(Nat\u00fcrlich k\u00f6nnen sich die \u00fcberlappenden Knoten als byzantinisch-falsch oder in anderer Hinsicht fehlerhaft herausstellen. In diesem Fall hilft das \u00dcberschneiden von Quoren dem Netzwerk \u00fcberhaupt nicht, sich zu verst\u00e4ndigen. Aus diesem Grund basieren viele Ergebnisse im technischen Dokument SCP auf expliziten Annahmen, dass im Netzwerk auch nach dem Entfernen von schlechten Knoten ein \u00dcberschneidungsquorum verbleibt. <i>Um der Einfachheit willen lassen wir diese Annahmen<\/i>in der restlichen Artikel <i>unkenntlich<\/i> \u00fcber.<\/p>\n<p>Es mag unvern\u00fcnftig erscheinen, zu erwarten, dass in einem Netzwerk von unabh\u00e4ngigen Knoten eine zuverl\u00e4ssige Quorum-\u00dcberschneidung m\u00f6glich ist. Doch es gibt zwei Gr\u00fcnde, warum dies der Fall ist.<\/p>\n<p>Der erste Grund liegt in der Existenz des Internets selbst. Das Internet ist ein ideales Beispiel f\u00fcr ein Netzwerk unabh\u00e4ngiger Knoten mit Quorum-\u00dcberschneidungen. Die meisten Knoten im Internet verbinden sich nur mit einigen wenigen anderen lokalen Knoten, aber diese kleinen Mengen \u00fcberschneiden sich ausreichend, sodass jeder Knoten von jedem anderen Knoten \u00fcber einen bestimmten Weg erreichbar ist.<\/p>\n<p>Der zweite Grund ist spezifisch f\u00fcr das Zahlungsnetzwerk Stellar (die h\u00e4ufigste Anwendung von SCP). Jedes Asset im Stellar-Netzwerk hat einen Emittenten, und die Empfehlungen von Stellar verlangen, dass jeder Emittent einen oder mehrere Knoten im Netzwerk bestimmt, um R\u00fcckzahlungsanfragen zu bearbeiten. Es liegt in Ihrem Interesse, diese Knoten direkt oder indirekt in die Quorum-Schnitte f\u00fcr jedes interessierende Asset aufzunehmen. Die Quoren f\u00fcr alle Knoten, die an einem bestimmten Asset interessiert sind, werden sich dann mindestens in diesen R\u00fcckzahlungsknoten \u00fcberlappen. Knoten, die an mehreren Assets interessiert sind, werden in ihren Quorum-Schnitten alle R\u00fcckzahlungsknoten der entsprechenden Emittenten aufnehmen und versuchen, alle Assets zusammenzuf\u00fchren. Zudem sollten alle Assets, die nicht auf diese Weise mit anderen im Netzwerk verbunden sind, <i>nicht verbunden sein<\/i> \u2014 so ist es beabsichtigt, dass es f\u00fcr dieses Netzwerk keine Quorum-\u00dcberlappungen gibt (zum Beispiel m\u00f6chten Banken aus dem Dollarraum manchmal mit Banken aus dem Euroraum und Banken aus dem Peso-Raum handeln, daher befinden sie sich im selben Netzwerk, aber es interessiert keinen von ihnen, dass es ein separates Netzwerk von Kindern gibt, die mit Baseballkarten handeln).<\/p>\n<p>Nat\u00fcrlich <i>Warten<\/i> Die \u00dcberschneidungen von Quoren sind kein <i>Garantie<\/i>. Andere byzantinische Konsenssysteme verdanken ihre Komplexit\u00e4t weitgehend der Garantie von Quoren. Eine wichtige Neuerung von SCP besteht darin, dass es die Verantwortung f\u00fcr die Schaffung von Quoren vom Konsensalgorithmus auf die Anwendungsebene verlagert. Daher h\u00e4ngt die Zuverl\u00e4ssigkeit des f\u00f6derierten Abstimmens, obwohl es allgemein f\u00fcr die Abstimmung \u00fcber verschiedene Fragen verwendet wird, stark von den umfassenderen Bedeutungen dieser Werte ab. Bestimmte hypothetische Nutzungsszenarien k\u00f6nnten sich als weniger geeignet erweisen, um gut vernetzte Netzwerke zu erstellen, als andere.<\/p>\n<h1>Abstimmung, Annahme und Best\u00e4tigung<\/h1>\n<p>\nIn der Runde des f\u00f6derierten Abstimmens beginnt der Knoten wahlweise f\u00fcr einen bestimmten Wert V zu stimmen. Das bedeutet, dass eine Nachricht ins Netzwerk gesendet wird: \u201eIch bin Knoten N, meine Quoren-Schnitte sind Q, und ich stimme f\u00fcr V.\u201c Wenn ein Knoten auf diese Weise abstimmt, verspricht er, dass er niemals gegen V gestimmt hat und auch niemals dagegen stimmen wird.<\/p>\n<p>In Peer-to-Peer-\u00dcbertragungen sieht jeder Knoten, wie andere abstimmen. Sobald ein Knoten gen\u00fcgend dieser Nachrichten gesammelt hat, kann er die Quorum-Schnitte verfolgen und versuchen, Quoren zu finden. Wenn er ein Quorum von Peers sieht, die ebenfalls f\u00fcr V stimmen, kann er zu <i>der Annahme<\/i> von V \u00fcbergehen und diese neue Nachricht ins Netzwerk \u00fcbertragen: \u00abIch bin Knoten N, meine Quorum-Schnitte Q, und ich nehme V an\u00bb. Die Annahme bietet eine st\u00e4rkere Garantie als einfaches Abstimmen. Wenn ein Knoten f\u00fcr V stimmt, kann er nie f\u00fcr andere Optionen stimmen. Aber wenn ein Knoten V annimmt, wird kein Knoten im Netzwerk jemals eine andere Option annehmen (Theorem 8 im technischen Dokument SCP beweist dies).<\/p>\n<p>Nat\u00fcrlich besteht eine hohe Wahrscheinlichkeit, dass sofort kein Knotenquorum gefunden wird, das mit V \u00fcbereinstimmt. Andere Knoten k\u00f6nnten f\u00fcr andere Werte stimmen. Aber es gibt f\u00fcr den Knoten einen weiteren Weg, um von einfacher Abstimmung zur Annahme \u00fcberzugehen. N kann einen anderen Wert W annehmen, auch wenn er nicht daf\u00fcr gestimmt hat und selbst wenn er kein Quorum daf\u00fcr sieht. Um seine Stimme zu \u00e4ndern, reicht es aus, zu sehen, <i>dass eine blockierende Menge existiert.<\/i> Knoten, die W akzeptieren. Eine blockierende Menge besteht aus einem Knoten jeder Quorum-Scheibe von N. Wie der Name schon sagt, ist sie in der Lage, <i>zu blockieren<\/i> jeden anderen Wert. Wenn alle Knoten in einer solchen Menge W akzeptieren, dann kann (nach Theorem 8) nie ein Quorum gebildet werden, das einen anderen Wert akzeptiert, und daher ist es f\u00fcr N auch sicher, W zu akzeptieren.<\/p>\n<p><img decoding=\"async\" alt=\"Lernen Sie das Stellar-Konsensprotokoll kennen\" src=\"\/wp-content\/uploads\/2019\/03\/6dd4ec5595ab863daf684fec670d83a6.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Knoten N mit drei Quorum-Schnitten.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Lernen Sie das Stellar-Konsensprotokoll kennen\" src=\"\/wp-content\/uploads\/2019\/03\/b65e32160570af2883eef9990a74e3bd.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>B-D-F ist eine blockierende Menge f\u00fcr N: Sie umfasst einen Knoten jeder Scheibe von N.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Lernen Sie das Stellar-Konsensprotokoll kennen\" src=\"\/wp-content\/uploads\/2019\/03\/7e17b4a9ee83aac7fa2b68b2f9fae066.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>B-E ist ebenfalls eine blockierende Menge f\u00fcr N, da E in zwei Scheiben von N erscheint.<\/i><\/p>\n<p>Ein blockierendes Set stellt jedoch kein Quorum dar. Es w\u00e4re zu einfach, einen Knoten N zu t\u00e4uschen, sodass er den gew\u00fcnschten Wert annimmt, wenn es ausreicht, nur einen Knoten in jedem Schnitt N zu kompromittieren. Daher ist die Annahme eines Wertes noch nicht das Ende der Abstimmung. Stattdessen muss N den Wert best\u00e4tigen, das hei\u00dft, er muss ein Quorum von Knoten sehen, die ihn akzeptieren. Wenn er so weit kommt, wird, wie im technischen Dokument SCP (in Theorem 11) nachgewiesen, der Rest des Netzwerks letztendlich denselben Wert best\u00e4tigen, sodass N die f\u00f6derative Abstimmung mit einem bestimmten Wert als Ergebnis abschlie\u00dft.<\/p>\n<p><img decoding=\"async\" alt=\"Lernen Sie das Stellar-Konsensprotokoll kennen\" src=\"\/wp-content\/uploads\/2019\/03\/bd68dc5172460c17fa2de54fcc0d9017.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>F\u00f6derative Abstimmung.<\/i><\/p>\n<p>Der Prozess der Abstimmung, Annahme und Best\u00e4tigung bildet eine vollst\u00e4ndige Runde der f\u00f6derativen Abstimmung. Das Stellar-Konsensprotokoll kombiniert viele solcher Runden, um ein vollst\u00e4ndiges Konsenssystem zu schaffen.<\/p>\n<h1>Stellar-Konsensprotokoll<\/h1>\n<p>\nDie zwei wichtigsten Eigenschaften eines Konsenssystems sind <i>Sicherheit<\/i> und <i>Robustheit<\/i>. Der Konsensalgorithmus ist \u00absicher\u00bb, wenn er niemals unterschiedlichen Teilnehmern unterschiedliche Ergebnisse liefern kann (die Kopie von Bobs Geschichte wird niemals mit Carols widersprechen). \u201eRobustheit\u201c bedeutet, dass der Algorithmus immer ein Ergebnis liefert, also nicht h\u00e4ngen bleibt.<\/p>\n<p>Das beschriebene Verfahren der f\u00f6derierten Abstimmung <i>ist sicher<\/i> im Sinne, dass, wenn ein Knoten den Wert V best\u00e4tigt, kein anderer Knoten einen anderen Wert best\u00e4tigen wird. Aber \u201enicht einen anderen Wert best\u00e4tigen\u201c bedeutet nicht, dass er unbedingt etwas best\u00e4tigen wird. Die Teilnehmer k\u00f6nnen f\u00fcr so viele verschiedene Werte stimmen, dass keiner den Annahmegrenzwert erreicht. Das bedeutet, dass bei der f\u00f6derierten Abstimmung eine Abwesenheit von <i>Robustheit<\/i>.<\/p>\n<p>Das Stellar-Konsensprotokoll verwendet f\u00f6deratives Abstimmen, um sowohl Sicherheit als auch Resilienz zu gew\u00e4hrleisten. (Die Sicherheits- und Resilienzgarantien des SCP haben theoretische Grenzen. Das Design w\u00e4hlt eine sehr starke Sicherheitsgarantie und opfert dabei ein wenig Resilienz, aber bei ausreichender Zeit wird mit hoher Wahrscheinlichkeit ein Konsens erreicht.) Kurz gesagt, die Idee besteht darin, mehrere f\u00f6derative Abstimmungen \u00fcber mehrere Werte durchzuf\u00fchren, bis einer von ihnen alle Phasen des SCP-Abstimmungsverfahrens vollst\u00e4ndig durchl\u00e4uft, die weiter unten beschrieben sind.<\/p>\n<p>Die Werte, zu denen SCP Konsens anstrebt, k\u00f6nnen eine Transaktionshistorie, eine Bestellung zum Mittagessen oder etwas anderes sein, aber es ist wichtig zu beachten, dass dies nicht die Werte sind, die akzeptiert oder best\u00e4tigt werden. Stattdessen erfolgt das f\u00f6derative Abstimmen \u00fcber <i>Aussagen \u00fcber diese Werte.<\/i>.<\/p>\n<p>Die ersten Runden des f\u00f6derativen Abstimmens finden in der <i>Nominierungsphase statt.<\/i> (Nominierungsphase), bei der eine Vielzahl von Erkl\u00e4rungen des Typs \u201eIch schlage V vor\u201c gesammelt wird, m\u00f6glicherweise f\u00fcr viele verschiedene Bedeutungen von V. Das Ziel der Nominierung ist es, eine oder mehrere Erkl\u00e4rungen zu finden, die eine Annahme und Best\u00e4tigung durchlaufen.<\/p>\n<p>Nach der Identifizierung best\u00e4tigbarer Kandidaten geht SCP in die Abstimmungsphase \u00fcber, wo das Ziel darin besteht, einen <i>Wahlzettel<\/i> (also einen Container f\u00fcr den vorgeschlagenen Wert) und ein Quorum zu finden, das ihn bekannt geben kann (commit). Wenn das Quorum den Wahlzettel commit, wird dessen Wert als Konsens akzeptiert. Aber bevor ein Knoten f\u00fcr das Commit des Wahlzettels stimmen kann, muss er zuerst die <i>Commit<\/i> f\u00fcr ihn (commit). Wenn das Quorum den Bulletin-Commit macht, wird dessen Wert als Konsens akzeptiert. Doch bevor ein Knoten f\u00fcr den Bulletin-Commit stimmen kann, muss er ihn zuerst best\u00e4tigen. <i>Stornierung<\/i> aller Wahlzettel mit geringerem Z\u00e4hlerwert best\u00e4tigen. Diese Schritte \u2013 die Stornierung der Wahlzettel, um den zu finden, f\u00fcr den ein Commit best\u00e4tigt werden kann \u2013 beinhalten mehrere Runden f\u00f6derativer Abstimmungen \u00fcber verschiedene Wahlzettel-Erkl\u00e4rungen.<\/p>\n<p>In den folgenden Abs\u00e4tzen werden Nominierung und Abstimmung ausf\u00fchrlicher behandelt.<\/p>\n<h1>Nominierung<\/h1>\n<p>\nZu Beginn der Abstimmungsphase kann jeder Knoten spontan einen Wert V w\u00e4hlen und f\u00fcr die Aussage \u201eIch schlage V vor\u201c stimmen. Ziel in dieser Phase ist es, die Nominierung eines bestimmten Wertes durch f\u00f6deratives Abstimmen zu best\u00e4tigen.<\/p>\n<p>Es ist m\u00f6glich, dass eine ausreichende Anzahl von Knoten f\u00fcr ausreichend unterschiedliche Vorschl\u00e4ge stimmt und kein Vorschlag die Schwelle zur Annahme erreichen kann. Daher reflektieren Knoten neben ihren eigenen Nominierungsstimmen auch die Nominierungen ihrer Nachbarn. Die Reflexion bedeutet, dass, wenn ein Knoten f\u00fcr den Vorschlag V stimmt, aber eine Nachricht von einem Nachbarn sieht, der f\u00fcr den Vorschlag W stimmt, er nun sowohl f\u00fcr den Vorschlag V als auch f\u00fcr den Vorschlag W stimmen wird. (Nicht alle Stimmen der Nachbarn werden w\u00e4hrend der Nominierung reflektiert, da dies zu einer Explosion verschiedener Nominierten f\u00fchren k\u00f6nnte. SCP umfasst einen Mechanismus zur Regulierung dieser Stimmen. Kurz gesagt, es gibt eine Formel zur Bestimmung der \u201ePriorit\u00e4t\u201c eines Nachbarn aus der Sicht eines Knotens, und es werden nur die Stimmen von hochpriorisierten Knoten reflektiert. Je l\u00e4nger die Nominierung dauert, desto niedriger ist die Schwelle, sodass der Knoten den Satz von Nachbarn erweitert, deren Stimmen er reflektieren wird. Die Priorit\u00e4tsformel enth\u00e4lt als einen der Eingabewerte die Slotnummer, sodass ein hochpriorisierter Peer f\u00fcr einen Slot f\u00fcr einen anderen niedrigpriorisiert sein kann und umgekehrt).<\/p>\n<p>Das gleichzeitige Einbringen von V und W ist konzeptionell als separate f\u00f6derative Stimmen zu verstehen, die jeweils unabh\u00e4ngig zur Annahme oder Best\u00e4tigung f\u00e4hig sind. In der Praxis verpackt das SCP-Protokoll diese einzelnen Stimmen zusammen.<\/p>\n<p>Obwohl die Abstimmung f\u00fcr die Nominierung von V ein Versprechen ist, niemals gegen die Nominierung von V zu stimmen, wird auf Anwendungsebene \u2013 in diesem Fall SCP \u2013 festgelegt, was 'dagegen' bedeutet. SCP erkennt keine Erkl\u00e4rung, die der Abstimmung 'Ich nenne X' widerspricht, das hei\u00dft, es gibt keine Nachricht 'Ich bin gegen die Nominierung von X', weswegen der Knoten f\u00fcr jede Nominierung stimmen kann. Viele dieser Nominierungen werden zu nichts f\u00fchren, aber letztendlich kann der Knoten einen oder mehrere Werte annehmen oder best\u00e4tigen. Sobald der Nominierte best\u00e4tigt ist, wird er <i>ein Kandidat<\/i>.<\/p>\n<p><img decoding=\"async\" alt=\"Lernen Sie das Stellar-Konsensprotokoll kennen\" src=\"\/wp-content\/uploads\/2019\/03\/794f55d076ec3e1773c49d32e29c084d.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Die Nominierung von SCP mit f\u00f6derativer Abstimmung. Es k\u00f6nnen viele Werte \"B\" von gleichrangigen Knoten vorgeschlagen und vom Knoten \"reflektiert\" werden.<\/i> <\/p>\n<p>Die Nominierung von Kandidaten kann zu mehreren best\u00e4tigbaren Kandidaten f\u00fchren. Daher verlangt SCP, dass die Anwendungsebene eine Methode zur Zusammenf\u00fchrung der Kandidaten in eine Einheit bereitstellt. <i>komposit<\/i> (composite). Die Methode der Zusammenf\u00fchrung kann beliebig sein. Wichtig ist, dass wenn diese Methode deterministisch ist, jeder Knoten dieselben Kandidaten zusammenf\u00fchrt. In einem Abstimmungssystem f\u00fcr Mittagessen k\u00f6nnte \u201eZusammenf\u00fchrung\u201c einfach bedeuten, dass einer von zwei Kandidaten abgelehnt wird. (Aber deterministisch: Jeder Knoten muss denselben Wert f\u00fcr die Ablehnung ausw\u00e4hlen. Zum Beispiel die fr\u00fchere Wahl in alphabetischer Reihenfolge). In der Zahlungsnetzwerk Stellar, wo \u00fcber die Historie von Transaktionen abgestimmt wird, bedeutet die Zusammenf\u00fchrung von zwei vorgeschlagenen Nominierungen die Zusammenf\u00fchrung der Transaktionen, die sie enthalten, sowie der letzten ihrer beiden Zeitstempel.<\/p>\n<p>Die technische Beschreibung von SCP beweist (Theorem 12), dass das Netzwerk am Ende der Phase der Kandidatenbildung schlie\u00dflich zu einem einzigen Komposit konvergiert. Doch es gibt ein Problem: das f\u00f6derale Abstimmen ist ein asynchrones Protokoll (wie auch SCP). Mit anderen Worten, die Knoten sind nicht zeitlich koordiniert, sondern nur durch die gesendeten Nachrichten. Aus der Perspektive eines Knotens ist unklar, wann <i>die Phase der Kandidatenbildung abgeschlossen ist.<\/i> Und obwohl alle Knoten letztlich zu demselben Komposit gelangen, k\u00f6nnen sie unterschiedliche Wege auf diesem Pfad w\u00e4hlen, was zu verschiedenen Kandidaten f\u00fchrt, und sie k\u00f6nnen nie sicher sagen, welcher von ihnen der endg\u00fcltige ist.<\/p>\n<p>Aber das ist in Ordnung. Die Kandidatenbildung ist nur eine Vorbereitung. Es ist wichtig, die Anzahl der Kandidaten zu begrenzen, um den Konsens zu erreichen, der im Prozess <i>der Abstimmung<\/i> erreicht wird.<\/p>\n<h1>Abstimmung<\/h1>\n<p>\nEin Bulletin ist ein Paar , wobei counter eine ganze Zahl ist, die bei 1 beginnt, und value der Kandidat aus der Nominierungsphase. Dies kann ein eigener Knoten-Kandidat oder ein Nachbarkandidat sein, der von diesem Knoten angenommen wird. Grob gesagt, beim W\u00e4hlen werden wiederholt Versuche unternommen, das Netzwerk dazu zu bringen, Konsens \u00fcber einen bestimmten Kandidaten in einem bestimmten Bulletin zu erreichen, indem potenziell viele f\u00f6derale Abstimmungen \u00fcber die Bulletinantr\u00e4ge durchgef\u00fchrt werden. Die Z\u00e4hler in den Bulletinen verfolgen die unternommenen Versuche, und Bulletins mit h\u00f6heren Z\u00e4hlern haben Vorrang vor Bulletins mit niedrigeren Z\u00e4hlern. Wenn das Bulletin  feststeckt, beginnt eine neue Abstimmung, jetzt \u00fcber das Bulletin .<\/p>\n<p>Es ist wichtig zu unterscheiden <i>zwischen den Werten<\/i> (zum Beispiel, was die Bestellungen zum Mittagessen betreffen: Pizza oder Salate), <i>Bulletinen<\/i> (Paar counter-value) und <i>Antr\u00e4gen<\/i> zu Bulletins. Eine SCP-Runde umfasst mehrere Runden f\u00f6deraler Abstimmungen, insbesondere zu solchen Antr\u00e4gen:<\/p>\n<ul>\n<li>\"Ich bin bereit, das Bulletin B zu committen\" und\n<\/li>\n<li>\"Ich erkl\u00e4re das Commit des Bulletins B\".<\/li>\n<\/ul>\n<p>\nAus der Sicht dieses Knotens wird Konsens erreicht, wenn er das Bulletin B findet, f\u00fcr das er best\u00e4tigen kann (d.h. ein Quorum finden kann, das annehmbare Aussagen trifft) \"Ich erkl\u00e4re das Commit f\u00fcr das Bulletin B\". Ab diesem Punkt kann man sicher nach der Bedeutung von B handeln \u2013 beispielsweise die Bestellung des Mittagessens aufgeben. Dies wird genannt <i>Externalisierung<\/i> von Werten. Sobald die Annahme des Bulletins best\u00e4tigt ist, kann der Knoten sich darauf verlassen, dass jeder andere Knoten diesen Wert externisiert hat oder dies in Zukunft sicher tun wird.<\/p>\n<p>Obwohl konzeptionell viele f\u00f6derale Abstimmungen zu Erkl\u00e4rungen zu zahlreichen verschiedenen Bulletins stattfinden, tauschen sie nicht so viele Nachrichten aus, weil jede Nachricht eine Reihe von Bulletins verkapselt. Eine Nachricht f\u00f6rdert somit den Status vieler f\u00f6deraler Abstimmungen gleichzeitig, z.B.: \"Ich akzeptiere das Commit der Bulletins im Bereich von  bis \".<\/p>\n<p>Was bedeuten die Begriffe \u201eprepared\u201c (vorbereitet) und \u201ecommit\u201c (commit)?<\/p>\n<p>Ein Knoten stimmt f\u00fcr das Commit eines Protokolls, wenn er \u00fcberzeugt ist, dass andere Knoten nicht Protokolle mit anderen Werten committen werden. Diese \u00dcberzeugung ist das Ziel der Vorbereitungserkl\u00e4rung. Eine Abstimmung, die besagt: \u201eIch bin bereit, ein Protokoll B zu commiten\u201c, ist ein Versprechen, niemals ein Protokoll mit einem niedrigeren Wert als B zu committen, d. h. mit einem niedrigeren Z\u00e4hler (SCP verlangt, dass die Werte in den Protokollen eine bestimmte Reihenfolge haben. So ist das Protokoll  kleiner als , wenn N1&lt;N2, oder auch wenn N1=N2 und V1&lt;V2). Diese kleineren Protokolle werden w\u00e4hrend der vorbereitenden Abstimmung \u201eabgebrochen\u201c (aborted), w\u00e4hrend B als \u201evorbereitet\u201c gilt.<\/p>\n<p>Warum bedeutet \u201eIch bin bereit, ein Protokoll B zu commiten\u201c, dass ich verspreche, niemals Protokolle mit einem Wert kleiner als B zuzulassen? Weil SCP abort als das Gegenteil von commit definiert. Die Abstimmung zur Vorbereitung eines Protokolls impliziert auch eine Abstimmung zum Widerruf anderer Protokolle, und, wie bereits erw\u00e4hnt, ist das Abstimmen f\u00fcr etwas ein Versprechen, niemals dagegen zu stimmen.<\/p>\n<p>Bevor ein Knoten einen Commit \u00fcbertr\u00e4gt, muss er zun\u00e4chst eine Abstimmung finden, die er als vorbereitet best\u00e4tigen kann. Mit anderen Worten, er f\u00fchrt eine f\u00f6derative Abstimmung zum Thema \u201eIch bin bereit, das Abstimmungsbulletin B zu committen\u201c, m\u00f6glicherweise f\u00fcr viele verschiedene Abstimmungsbulletins, bis er eines findet, das ein Quorum akzeptiert.<\/p>\n<p>Woher stammen die Abstimmungsbulletins f\u00fcr die Vorbereitung der Abstimmung? Zun\u00e4chst \u00fcbertr\u00e4gt der Knoten die Vorbereitung f\u00fcr die Abstimmung \u00fcber , wobei C der Kandidat-Komposit ist, der in der Nominierungsphase erstellt wurde. Allerdings kann das Nominierungsverfahren, selbst nachdem die Vorbereitungen f\u00fcr die Abstimmung begonnen haben, zus\u00e4tzliche Kandidaten hervorbringen, die neue Abstimmungsbulletins werden. In der Zwischenzeit k\u00f6nnen die Peers unterschiedliche Kandidaten haben und ein blockierendes Set bilden, das \u201eIch bin bereit, das Abstimmungsbulletin B2 zu committen\u201c akzeptiert, was den Knoten \u00fcberzeugt, dies ebenfalls zu akzeptieren. Schlie\u00dflich gibt es einen Timer-Mechanismus, der neue Runden der f\u00f6derativen Abstimmung mit neuen Abstimmungsbulletins und h\u00f6heren Z\u00e4hlern generiert, falls die aktuellen Abstimmungsbulletins feststecken.<\/p>\n<p>Sobald ein Knoten das Bulletin B findet, das als vorbereitet best\u00e4tigt werden kann, sendet er die neue Nachricht \"Commit Bulletin B\". Diese Abstimmung signalisiert den Peers, dass der Knoten niemals von B abweichen wird. Tats\u00e4chlich bedeutet, wenn B ein Bulletin  darstellt, dass \"Commit Bulletin \" uneingeschr\u00e4nkte Zustimmung signalisiert, f\u00fcr die Bereitschaft jedes Bulletins von  bis . Diese zus\u00e4tzliche Bedeutung hilft anderen Knoten, mit dem Commit des Peers aufzuholen, falls sie sich noch in fr\u00fcheren Phasen des Protokolls befinden.<\/p>\n<p>An dieser Stelle sollte erneut betont werden, dass dies asynchrone Protokolle sind. Nur weil ein Knoten Stimmen f\u00fcr den Commit sendet, bedeutet das nicht, dass seine Kollegen das ebenfalls tun. Einige von ihnen k\u00f6nnten noch \u00fcber Antr\u00e4ge f\u00fcr die Abstimmung abstimmen, w\u00e4hrend andere m\u00f6glicherweise bereits den Wert externalisiert haben. SCP erkl\u00e4rt, wie ein Knoten jeden Typ von Peermessaging unabh\u00e4ngig von seiner Phase verarbeiten sollte.<\/p>\n<p>Wenn die Nachricht \u201eIch gebe den Commit &lt;N,C&gt; bekannt\u201c nicht angenommen oder best\u00e4tigt werden kann, besteht die M\u00f6glichkeit, die Nachricht &lt;N+1,C&gt; oder &lt;N+2,C&gt; anzunehmen oder zu best\u00e4tigen \u2013 oder, in jedem Fall, jedes Bulletin mit dem Wert C und nicht mit einem anderen, da der Knoten bereits versprochen hat, &lt;N,C&gt; niemals zur\u00fcckzunehmen. Zu dem Zeitpunkt, zu dem der Knoten Stimmen f\u00fcr den Commit \u00fcbertr\u00e4gt, wird es C oder nichts sein, je nachdem, wie weit der Konsens geht. Allerdings reicht das noch nicht aus, um C extern zu machen. Einige byzantinische Piraten (die weniger als das Quorum bilden, basierend auf unseren Sicherheitsannahmen) k\u00f6nnten den Knoten t\u00e4uschen. Die Annahme und anschlie\u00dfende Best\u00e4tigung eines bestimmten Bulletins (oder eines Bereichs von Bulletins) gibt dem Knoten schlie\u00dflich das Vertrauen, C extern zu machen.<\/p>\n<p><img decoding=\"async\" alt=\"Lernen Sie das Stellar-Konsensprotokoll kennen\" src=\"\/wp-content\/uploads\/2019\/03\/c59f036bb8aa189bb3d4540f54121391.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Abstimmung SCP durch f\u00f6derierte Abstimmung. Nicht gezeigt: jederzeit kann ein Timer ausgel\u00f6st werden, wodurch der Z\u00e4hler im Bulletin erh\u00f6ht wird (und m\u00f6glicherweise ein neuer Komposit aus zus\u00e4tzlichen vorgeschlagenen Kandidaten erzeugt wird).<\/i> <\/p>\n<p>Und das war's! Sobald das Netzwerk einen Konsens erreicht hat, ist es bereit, dies immer wieder zu tun. Im Stellar-Zahlungsnetzwerk geschieht dies alle 5 Sekunden: eine Leistung, die sowohl Sicherheit als auch Widerstandsf\u00e4higkeit erfordert, die durch SCP gew\u00e4hrleistet wird.<\/p>\n<p>SCP erreicht dies durch mehrere Runden f\u00f6derativer Abstimmung. F\u00f6derative Abstimmungen wurden durch das Konzept der Quorum-Slices m\u00f6glich: S\u00e4tze von gleichrangigen Knoten, denen jeder Knoten als Teil seines (subjektiven) Quorums vertrauen m\u00f6chte. Diese Konfiguration bedeutet, dass Konsens auch in einem Netzwerk mit offener Mitgliedschaft und byzantinischen Fehlern erreicht werden kann.<\/p>\n<h1>Weiterf\u00fchrende Lekt\u00fcre<\/h1>\n<p><\/p>\n<ul>\n<li>Das urspr\u00fcngliche technische Dokument zu SCP finden Sie <noindex><a rel=\"nofollow\" href=\"https:\/\/www.stellar.org\/papers\/stellar-consensus-protocol.pdf\">hier<\/a><\/noindex>, und <noindex><a rel=\"nofollow\" href=\"https:\/\/datatracker.ietf.org\/doc\/draft-mazieres-dinrg-scp\/\">hier<\/a><\/noindex> Projektbeschreibung f\u00fcr dessen Implementierung.\n<\/li>\n<li>Der urspr\u00fcngliche Autor des SCP-Protokolls, David Mazieres, erkl\u00e4rt es vereinfacht (aber dennoch technisch) <noindex><a rel=\"nofollow\" href=\"http:\/\/www.scs.stanford.edu\/~dm\/blog\/simplified-scp.html\">hier<\/a><\/noindex>.\n<\/li>\n<li>Vielleicht waren Sie \u00fcberrascht, in diesem Artikel keine Begriffe wie \"Mining\" oder \"Proof of Work\" zu finden. SCP verwendet diese Methoden nicht, aber einige andere Konsensalgorithmen tun dies. Zayn Wizerzpoon hat einen zug\u00e4nglichen <noindex><a rel=\"nofollow\" href=\"https:\/\/hackernoon.com\/a-hitchhikers-guide-to-consensus-algorithms-d81aae3eb0e3\">\u00dcberblick \u00fcber Konsensalgorithmen geschrieben.<\/a><\/noindex>.\n<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/bobg\/scp\/blob\/master\/Lunch.md\">Schritt-f\u00fcr-Schritt-Anleitung<\/a><\/noindex> ein einfaches Netzwerk, das Konsens in einem vollst\u00e4ndigen SCP-Round erzielt.\n<\/li>\n<li>F\u00fcr Leser, die sich f\u00fcr Implementierungen von SCP interessieren: siehe. <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/stellar\/stellar-core\/tree\/master\/src\/scp\">C++-Code<\/a><\/noindex>, der von dem Zahlungsnetzwerk Stellar genutzt wird, oder <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/bobg\/scp\">Go-Code<\/a><\/noindex>, den ich geschrieben habe, um das SCP besser zu verstehen.<\/li>\n<\/ul>\n<p>Quelle: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/444710\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u043a\u043e\u043d\u0441\u0435\u043d\u0441\u0443\u0441\u0430 Stellar \u0432\u043f\u0435\u0440\u0432\u044b\u0435 \u043e\u043f\u0438\u0441\u0430\u043d \u0432 \u043d\u0430\u0443\u0447\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0414\u044d\u0432\u0438\u0434\u0430 \u041c\u0430\u0437\u044c\u0435\u0440\u0430 \u0432 2015 \u0433\u043e\u0434\u0443. \u042d\u0442\u043e \u00ab\u0444\u0435\u0434\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0432\u0438\u0437\u0430\u043d\u0442\u0438\u0439\u0441\u043a\u043e\u0433\u043e \u0441\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u044f\u00bb, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0434\u0435\u0446\u0435\u043d\u0442\u0440\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u0441\u0435\u0442\u044f\u043c \u0431\u0435\u0437 \u043b\u0438\u0434\u0435\u0440\u043e\u0432 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e \u0434\u043e\u0441\u0442\u0438\u0433\u0430\u0442\u044c \u043a\u043e\u043d\u0441\u0435\u043d\u0441\u0443\u0441\u0430 \u043f\u043e \u043a\u0430\u043a\u043e\u043c\u0443-\u043b\u0438\u0431\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u044e. \u041f\u043b\u0430\u0442\u0451\u0436\u043d\u0430\u044f \u0441\u0435\u0442\u044c Stellar \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 Stellar Consensus Protocol (SCP) \u0434\u043b\u044f \u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0441\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0432\u0438\u0434\u044f\u0442 \u0432\u0441\u0435 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0438. \u0421\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u044b \u043a\u043e\u043d\u0441\u0435\u043d\u0441\u0443\u0441\u0430 \u0442\u0440\u0443\u0434\u043d\u044b \u0434\u043b\u044f \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f. [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-30047","post","type-post","status-publish","format-standard","hentry"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u043a\u043e\u043d\u0441\u0435\u043d\u0441\u0443\u0441\u0430 Stellar \u0432\u043f\u0435\u0440\u0432\u044b\u0435 \u043e\u043f\u0438\u0441\u0430\u043d \u0432 \u043d\u0430\u0443\u0447\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0414\u044d\u0432\u0438\u0434\u0430 \u041c\u0430\u0437\u044c\u0435\u0440\u0430 \u0432 2015 \u0433\u043e\u0434\u0443. \u042d\u0442\u043e \u00ab\u0444\u0435\u0434\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0432\u0438\u0437\u0430\u043d\u0442\u0438\u0439\u0441\u043a\u043e\u0433\u043e \u0441\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u044f\u00bb, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0434\u0435\u0446\u0435\u043d\u0442\u0440\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u0441\u0435\u0442\u044f\u043c \u0431\u0435\u0437 \u043b\u0438\u0434\u0435\u0440\u043e\u0432 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e \u0434\u043e\u0441\u0442\u0438\u0433\u0430\u0442\u044c \u043a\u043e\u043d\u0441\u0435\u043d\u0441\u0443\u0441\u0430 \u043f\u043e \u043a\u0430\u043a\u043e\u043c\u0443-\u043b\u0438\u0431\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u044e. \u041f\u043b\u0430\u0442\u0451\u0436\u043d\u0430\u044f \u0441\u0435\u0442\u044c Stellar \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 Stellar Consensus Protocol (SCP) \u0434\u043b\u044f \u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0441\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0432\u0438\u0434\u044f\u0442 \u0432\u0441\u0435 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0438. \u0421\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u044b \u043a\u043e\u043d\u0441\u0435\u043d\u0441\u0443\u0441\u0430 \u0442\u0440\u0443\u0434\u043d\u044b \u0434\u043b\u044f \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/de\/blog\/razbiraemsya-v-protokole-konsensusa-stellar\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0420\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u043c\u0441\u044f \u0432 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0435 \u043a\u043e\u043d\u0441\u0435\u043d\u0441\u0443\u0441\u0430 Stellar | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u043a\u043e\u043d\u0441\u0435\u043d\u0441\u0443\u0441\u0430 Stellar \u0432\u043f\u0435\u0440\u0432\u044b\u0435 \u043e\u043f\u0438\u0441\u0430\u043d \u0432 \u043d\u0430\u0443\u0447\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0414\u044d\u0432\u0438\u0434\u0430 \u041c\u0430\u0437\u044c\u0435\u0440\u0430 \u0432 2015 \u0433\u043e\u0434\u0443. \u042d\u0442\u043e \u00ab\u0444\u0435\u0434\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0432\u0438\u0437\u0430\u043d\u0442\u0438\u0439\u0441\u043a\u043e\u0433\u043e \u0441\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u044f\u00bb, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0434\u0435\u0446\u0435\u043d\u0442\u0440\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u0441\u0435\u0442\u044f\u043c \u0431\u0435\u0437 \u043b\u0438\u0434\u0435\u0440\u043e\u0432 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e \u0434\u043e\u0441\u0442\u0438\u0433\u0430\u0442\u044c \u043a\u043e\u043d\u0441\u0435\u043d\u0441\u0443\u0441\u0430 \u043f\u043e \u043a\u0430\u043a\u043e\u043c\u0443-\u043b\u0438\u0431\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u044e. \u041f\u043b\u0430\u0442\u0451\u0436\u043d\u0430\u044f \u0441\u0435\u0442\u044c Stellar \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 Stellar Consensus Protocol (SCP) \u0434\u043b\u044f \u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0441\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0432\u0438\u0434\u044f\u0442 \u0432\u0441\u0435 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0438. \u0421\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u044b \u043a\u043e\u043d\u0441\u0435\u043d\u0441\u0443\u0441\u0430 \u0442\u0440\u0443\u0434\u043d\u044b \u0434\u043b\u044f \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/de\/blog\/razbiraemsya-v-protokole-konsensusa-stellar\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T18:33:25+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:33:25+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Verstehen des Stellar-Konsensprotokolls | ProHoster","description":"Das Stellar-Konsensprotokoll wurde erstmals in einem wissenschaftlichen Artikel von David Mazieres im Jahr 2015 beschrieben. Es handelt sich um ein \u201ef\u00f6deriertes System des byzantinischen Konsenses\u201c, das dezentralen Rechen-Netzwerken ohne F\u00fchrer erlaubt, effizient Konsens \u00fcber eine Entscheidung zu erzielen. Das Zahlungsnetzwerk Stellar verwendet das Stellar Consensus Protocol (SCP) zur F\u00fchrung einer koh\u00e4renten Transaktionshistorie, die von allen Teilnehmern eingesehen wird. Es wird angenommen, dass Konsensprotokolle schwer zu verstehen sind.","canonical_url":"https:\/\/prohoster.info\/de\/blog\/razbiraemsya-v-protokole-konsensusa-stellar","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0420\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u043c\u0441\u044f \u0432 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0435 \u043a\u043e\u043d\u0441\u0435\u043d\u0441\u0443\u0441\u0430 Stellar | ProHoster","og:description":"\u041f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u043a\u043e\u043d\u0441\u0435\u043d\u0441\u0443\u0441\u0430 Stellar \u0432\u043f\u0435\u0440\u0432\u044b\u0435 \u043e\u043f\u0438\u0441\u0430\u043d \u0432 \u043d\u0430\u0443\u0447\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0414\u044d\u0432\u0438\u0434\u0430 \u041c\u0430\u0437\u044c\u0435\u0440\u0430 \u0432 2015 \u0433\u043e\u0434\u0443. \u042d\u0442\u043e \u00ab\u0444\u0435\u0434\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0432\u0438\u0437\u0430\u043d\u0442\u0438\u0439\u0441\u043a\u043e\u0433\u043e \u0441\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u044f\u00bb, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0434\u0435\u0446\u0435\u043d\u0442\u0440\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u0441\u0435\u0442\u044f\u043c \u0431\u0435\u0437 \u043b\u0438\u0434\u0435\u0440\u043e\u0432 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e \u0434\u043e\u0441\u0442\u0438\u0433\u0430\u0442\u044c \u043a\u043e\u043d\u0441\u0435\u043d\u0441\u0443\u0441\u0430 \u043f\u043e \u043a\u0430\u043a\u043e\u043c\u0443-\u043b\u0438\u0431\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u044e. \u041f\u043b\u0430\u0442\u0451\u0436\u043d\u0430\u044f \u0441\u0435\u0442\u044c Stellar \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 Stellar Consensus Protocol (SCP) \u0434\u043b\u044f \u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0441\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0432\u0438\u0434\u044f\u0442 \u0432\u0441\u0435 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0438. \u0421\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u044b \u043a\u043e\u043d\u0441\u0435\u043d\u0441\u0443\u0441\u0430 \u0442\u0440\u0443\u0434\u043d\u044b \u0434\u043b\u044f \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f.","og:url":"https:\/\/prohoster.info\/de\/blog\/razbiraemsya-v-protokole-konsensusa-stellar","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T18:33:25+00:00","article:modified_time":"2019-10-31T18:33:25+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"30047","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"Article","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-20 23:34:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 03:43:15","updated":"2026-01-20 23:34:19"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/30047","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=30047"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/30047\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=30047"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=30047"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=30047"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}