Dieser Artikel ist eine kurze Zusammenfassung der Ergebnisse der Forschung und Untersuchung des Bitshares-Protokolls. Die gleichnamige dezentrale Plattform implementiert Kryptowährung, intelligente Verträge, eine Handelsplattform und viele interessante Funktionen. Das Material kann nützlich sein, da es bereits mit den Funktionen des Bitcoin-Protokolls vertraut ist, jedoch noch nichts über Bitshares gehört hat, das wiederum ein Abrechnungssystem mit einem guten Kompromiss zwischen Dezentralisierung und Bandbreite darstellt. Darüber hinaus wurde das Bitshares-Protokoll als Grundlage für andere dezentrale Systeme verwendet: Steemit, EOS.
Mit dem Bitshares-Protokoll soll ein Tool geschaffen werden, mit dem verschiedene Vermögenswerte und Währungen in einer dezentralen Umgebung gehandelt werden können, ohne sie tatsächlich auf dem Handelsplatz zu hinterlegen. Die Idee selbst gehört einem Programmierer namens Daniel Larimer. Er schlug es 2013 vor und diskutierte fünf Wochen lang aktiv in den Foren. So traf Daniel Larimer einen anderen aktiven Kryptowährungsaktivisten namens Charles Hoskinson, der bei der Entwicklung eines Geschäftsplans und der Gewinnung von Investitionen half.
Daniel Larimer in der SchulcafeteriaZweck der Bitshares-Plattform
Daniel Larimer, auch bekannt als Bytemaster, ist der Hauptideologe und Entwickler des Protokolls. Mit der Bitshares-Plattform kann jeder Benutzer erstellte Assets (UIAs) oder digitale Token erstellen. Somit berücksichtigt die Plattform die Basiswährung, d. H. Die Kryptowährung mit dem BTS-Ticker und vielen Benutzertoken.
Das Protokoll implementiert eine dezentrale Börse, an der diese digitalen Vermögenswerte gehandelt werden können. Bei der Entwicklung des Abrechnungssystems und des Mechanismus zur Erzielung eines Konsenses legten die Entwickler großen Wert auf die Bandbreite. Infolgedessen positioniert sich Bitshares als dezentrale Alternative zum Visa-Buchhaltungssystem. Während Visa sagt, dass es einige Zehntausende von Transaktionen pro Sekunde verarbeiten kann, spricht Bitshares über die Fähigkeit, hunderttausend Transaktionen pro Sekunde dezentral mit einer offenen Datenbank und Überwachungsfunktionen zu verarbeiten.
Darüber hinaus positioniert sich Bitshares als intelligente Vertragsplattform. Richtig, intelligente Verträge sind hier vordefiniert und ihre Anzahl ist begrenzt - die beliebtesten Verträge werden implementiert. Sie sind jedoch energieeffizienter und daher im Verhältnis zu Provisionen billiger.
Ein weiteres Merkmal der Plattform ist die Unterstützung von Zahlungen mit einem hohen Maß an Datenschutz für Benutzer, die optional verwendet werden können. Bei Bitshares wird diese Technologie Stealth Transfers genannt.
Entwicklungs- und Starthistorie
Machen Sie sich kurz mit der Geschichte des Starts dieser dezentralen Plattform vertraut.
Der Arbeitsaufwand für die Erstellung einer konzipierten Plattform war sehr groß. Die Macher beschlossen, im Voraus Menschen anzuziehen und Münzen der zukünftigen Kryptowährung zu verteilen, um zu verstehen, ob das Projekt genügend Aufmerksamkeit erregen würde und ob es weiter unterstützt werden sollte. Im November 2013 wurde die Idee Bitshares PTS geboren, was Protoshares bedeutet. Das Wesentliche war, dass die Verteilung von Münzen auf der Grundlage eines einfachen Protokolls abgebaut wird und zu diesem Zeitpunkt eine Vollversion von Bitshares entwickelt wird.
Um Bitshares PTS zu implementieren, haben sie Bitcoin (einen Klon des Repositorys mit Quellcode) gegabelt, geringfügige Änderungen daran vorgenommen und ein neues Netzwerk gestartet. Jeder, der an dem Projekt interessiert war, konnte einen vollständigen Bitshares PTS-Netzwerkknoten auf seinem Computer installieren, Münzen extrahieren, umtauschen und handeln. Der Wettbewerb um die Gewinnung dieser Münzen nahm zu, und sehr bald mussten sich die Teilnehmer in Bergbaubecken zusammenschließen.
Später führten die Entwickler das Bitshares-Protokoll Version 1.0 ein und das Veröffentlichungsdatum des letzten Blocks in der Bitshares PTS-Blockchain wurde im Voraus bekannt gegeben. Da die neue Version des Protokolls fast von Grund auf neu geschrieben wurde und völlig neue Datenformate verwendet, hat das Update seine eigenen Eigenschaften. Eine Momentaufnahme des Status aller nicht ausgegebenen Münzen zum Zeitpunkt des letzten Blocks der alten Blockchain wird erstellt und in den Genesis-Block der neuen Blockchain übertragen. Es stellt sich heraus, dass alle Entsprechungen zwischen öffentlichen Schlüsseln und Guthaben erhalten bleiben, dh Sie können weiterhin Münzen mit denselben privaten Schlüsseln verwenden. Daher haben Benutzer am 14. Dezember 2014 auf eine neue Version des Protokolls umgestellt, bei der bereits ein Konsens gemäß den Regeln des delegierten Nachweises des Einsatzes erzielt wird und der Abbau und die Ausgabe neuer Münzen nicht vorgesehen sind.
Im Oktober 2015 gab es ein weiteres wichtiges Update des Bitshares-Protokolls auf Version 2.0, das den gleichen Weg ging.
Es ist erwähnenswert, dass die Entwickler von Bitshares im Rahmen eines separaten Projekts namens Graphen den Kern einer dezentralen Plattform geschaffen haben. Graphen ist die Grundlage für dezentrale Buchhaltungssysteme der nächsten Generation. Neben Bitshares bildete Graphen die Grundlage für mehrere andere Projekte.
Kontomodell
Nun wollen wir sehen, wie die Konten im Bitshares 2.0-Protokoll angeordnet sind. Es verwendet Kryptographie für elliptische Kurven, und die Kurve selbst ist genau die gleiche wie im Bitcoin-Protokoll. Es gibt ein Adressformat, das den Hashwert des öffentlichen Schlüssels, das Basisnummernsystem 58, das BTS-Präfix verwendet und keine Prüfsumme enthält. Dieses Format wird jedoch selten verwendet, da die allgemeine Plattformdatenbank so optimiert ist, dass jedes Objekt, einschließlich des Benutzerkontos, eine eigene eindeutige Kennung hat, die tatsächlich eine Ganzzahl von 8 Byte (oder 64 Bit) ist. Bei den üblichen Vorgängen zum Senden einer Zahlung wird eine solche Kontokennung angegeben. Darüber hinaus unterstützt das Protokoll die Registrierung eindeutiger Namen. Eine ähnliche Funktionalität wurde zuerst im Namecoin-Protokoll implementiert. So können Sie in Bitshares eine für Menschen lesbare Zeichenfolge registrieren, die innerhalb der entsprechenden Blockchain eindeutig ist, und an Ihr Konto binden, um diesen Namen anstelle der Konto-ID zu verwenden.
DPoS-Konsens erzielen
Wie bereits erwähnt, legen die Regeln des DPoS-Protokolls nahe, dass alle Benutzer an der Konsensbildung teilnehmen können, indem sie Validatoren durch Abstimmung auswählen. Während des Abstimmungsprozesses wird das Gewicht der Stimmen des Benutzers durch sein Guthaben in der Basiswährung bestimmt. Die Blockbildung wird von einer Teilmenge ausgewählter Validatoren durchgeführt. Innerhalb des Bitshares-Protokolls wird der Validator als Zeuge bezeichnet.
Transaktionsmodell
Lassen Sie uns die Transaktionsmodelle in Bitshares genauer untersuchen.

Das Diagramm zeigt, dass der Transaktionskörper aus fünf Hauptfeldern besteht. Die ersten beiden Felder der Transaktion sind erforderlich, um sie an einen bestimmten Block zu binden. Dies ist erforderlich, um die Blockkette zu bestimmen, zu der diese Transaktion hinzugefügt werden kann, da gemäß den Regeln des Protokolls eine Transaktion in der Kette, an die sie nicht angehängt ist, nicht bestätigt werden kann. Das Feld expiration_time legt die Zeit fest, bis zu der die Transaktion dem Block hinzugefügt werden kann. Wenn es vor diesem Zeitpunkt nicht bestätigt wurde, gilt es als ungültig und kann nicht mehr in die Blockchain aufgenommen werden.
Das Feld operation_vector ist etwas Besonderes. Diese Funktion besteht darin, dass viele verschiedene Vorgänge darin platziert werden können. Die Operation ist ein weiteres Schlüsselobjekt im Bitshares-Protokoll. Wir werden einige der beliebtesten Arten von Vorgängen nennen: Übertragung (Übertragung), Kontoaktualisierung (Kontoaktualisierung), Ausgabe von Vermögenswerten (Token-Ausgabe) und Auftrag (Handelsangebot). Jede Operation hat ein eigenes Format und die erforderlichen Parameter. Für den Überweisungsvorgang sind beispielsweise das Konto des Absenders, die Art des Vermögenswerts, der Überweisungsbetrag und das Konto des Empfängers erforderlich. Die Operationen selbst sind unabhängig voneinander, können jedoch nur zusammen ausgeführt werden, wenn die Transaktion akzeptiert wird.
Das Erweiterungsfeld wird benötigt, damit die aktuelle Softwareversion Transaktionen mit neuen Versionen verarbeiten kann, in denen zusätzliche Felder hinzugefügt werden können. Natürlich weiß alte Software nicht, wie zusätzliche Felder neuer Transaktionen korrekt überprüft werden können, aber zumindest kann sie Transaktionen gemäß den alten Regeln korrekt verarbeiten.
Dies ist ein nicht signiertes Transaktionsformat. Um die Transaktion korrekt zu signieren, müssen Sie alle Vorgänge im Feld operation_vector analysieren und eine Liste der Konten erstellen, die die Transaktion bestätigen müssen. Dann wird klar, welche Schlüssel Sie zum Signieren der Transaktion benötigen. Alle erforderlichen Signaturen werden in einem separaten Feld platziert - Signaturen. Wenn mindestens eine Signatur nicht ausreicht, wird die gesamte Transaktion als falsch betrachtet.
Beachten Sie, dass durch die Optimierung der Größe von Bezeichnern die endgültige Größe einer Transaktion, die eine Operation enthält, ungefähr 100 Byte beträgt. Dies ist in der Tat eine sehr kompakte Transaktion im Vergleich zu einer Transaktion in anderen Protokollen.
In Bezug auf Provisionsgebühren verfolgt das Bitshares-Protokoll einen besonderen Ansatz. Für jede Operation ist eine bestimmte Zahlung erforderlich, die zum Zeitpunkt der Transaktionsbestätigung vom Kontostand des Initiators entfernt wird. Die Provision für Operationen kann konstant sein, kann jedoch variieren. Zum groben Vergleich ist festzustellen, dass die Gebühren für normale Überweisungen und den Handel viel niedriger sind als die Gebühren für die Ausgabe neuer Vermögenswerte und die Registrierung eines neuen Kontos.
Dezentraler Austausch von Vermögenswerten
Lassen Sie uns nun sehen, wie der Handel mit Vermögenswerten funktioniert, die auf der Bitshares-Plattform ausgegeben und aufgezeichnet werden. Der Benutzer kann mit einer solchen Operation eine Transaktion durchführen, bei der er erklärt, dass er bereit ist, einen Vermögenswert in einem bestimmten Verhältnis und für einen bestimmten Betrag gegen einen anderen Vermögenswert auszutauschen. Diese Transaktion wird über das Netzwerk verteilt und erhält eine Bestätigung. Danach kann ein anderer Benutzer auf dieselbe Weise erklären, dass er dieselben Assets im gleichen Verhältnis ändern möchte. Zum Zeitpunkt der Bestätigung der zweiten Transaktion werden gemäß dem Protokoll die Salden dieser beiden Benutzer aktualisiert, d. H. Ein Asset-Austausch wird tatsächlich durchgeführt, auf der Grundlage, dass beide Benutzer Austauschauszüge unterzeichnet haben, die sich gegenseitig erfüllen.
Da dieser Handel auf einem dezentralen Buchhaltungssystem basiert, wird diese Handelsplattform als dezentrale Börse bezeichnet.
Flexibilität bei der Kontoverwaltung
Ein weiteres wichtiges Merkmal des Bitshares-Protokolls ist die Fähigkeit, Konten flexibel zu verwalten. Mit dem System der dynamischen Kontoberechtigungen (dynamische Kontoberechtigungen) können Sie die Kontoverwaltung nach dem Multisignaturprinzip über mehrere Schlüssel festlegen. Dies ist so angeordnet, dass jedes Konto durch eine ausgewogene Kombination anderer Konten oder elektronischer Signaturschlüssel gesteuert werden kann. Mit diesem Ansatz können Sie eine hierarchische Verwaltungsstruktur erstellen, deren Organisation einem Genehmigungssystem im wirklichen Leben ähnelt. Es stellt sich heraus, dass Sie die Mehrbenutzerverwaltung des Kontos und seiner Salden organisieren können, wobei jeder Benutzer ein bestimmtes Gewicht bei der Entscheidungsfindung hat. Darüber hinaus können Sie für verschiedene Vorgänge unterschiedliche Kriterien festlegen. Ein solcher Verwaltungsmechanismus kann das Risiko von Vermögensdiebstahl und Verlust der Kontokontrolle erheblich verringern.

Stellen Sie sich das schematisch vor. An der Spitze der Hierarchie befindet sich ein Konto, in dessen Namen es unmöglich ist, die Transaktion mit einem Schlüssel sicherzustellen. Dies kann nur mit der Bestätigung mehrerer anderer Konten und Schlüssel erfolgen. Mitglieder der unteren Hierarchieebenen werden normalerweise als Unterzeichner bezeichnet. Jeder von ihnen hat sein eigenes Gewicht in der Bestätigung der Operation. In diesem Schema haben Unterzeichner beispielsweise ein Gewicht von 25, 40, 35 und 40 Einheiten, und der erforderliche Schwellenwert zur Bestätigung einer bestimmten Art von Operation kann 50, 60 oder 70 Einheiten betragen. Gleichzeitig können bei anderen Arten von Operationen eine andere Gewichtsverteilung und ein anderer Schwellenwert auftreten.
Wie funktioniert es auf Transaktionsebene? Einer der Unterzeichner erstellt eine Transaktion mit bestimmten Vorgängen und bescheinigt im Namen seines Kontos. Die Transaktion wird bestätigt, aber die Operationen, die sie eingeben, werden nicht ausgeführt, sondern befinden sich im Standby-Bestätigungsmodus. Dann sehen andere Unterzeichner das Angebot und können es entweder bestätigen oder das Angebot im Namen ihres Kontos mithilfe von Transaktionen ablehnen, die spezielle Vorgänge enthalten.
UIA-Problem
Lassen Sie uns die Funktionen der Freigabe von Benutzerressourcen auf der Bitshares-Plattform genauer untersuchen. Jeder kann eine Transaktion mit dem Vorgang des Erstellens eines neuen Assets bilden, eine bestimmte Provision zahlen, die Parameter dieses Assets festlegen und mit der Ausgabe der entsprechenden Token beginnen. Diese Protokollfunktionalität ist als vorinstallierter Smart Contract implementiert und verfügt über einige Funktionen.
Auf Anfrage des Emittenten ist es möglich, die Anforderungen von KYC (Know Your Customer - Know Your Client) mithilfe des White-List-Mechanismus (Liste der zulässigen Konten) und einer zusätzlichen Emittentenbestätigung zu erfüllen. Die weiße Liste enthält Konten, auf die der Emittent des Vermögenswerts die Erlaubnis erteilt, seine Token zu empfangen und zu halten. Der Mechanismus der zusätzlichen Bestätigung ermöglicht es dem Emittenten, jede Transaktion für die Übertragung oder den Handel von Token zu kontrollieren (er kann jede Transaktion mit seinem Vermögenswert ablehnen oder genehmigen).
Darüber hinaus kann der Emittent den Handel mit Token einschränken und nur Speicherung und Übertragung zulassen oder Übertragungen einschränken und nur Handel zulassen. Der Emittent kann auch zusätzliche Gebühren für Überweisungen und Token-Handel festlegen.
Ein weiteres Merkmal ist, dass der Aussteller die Funktion zum Zurückziehen und Umverteilen von Token aktivieren kann. Dies funktioniert in Fällen, in denen Sie externe Mechanismen unterstützen müssen, um Transaktionen zu verurteilen und Zahlungen zurückzusetzen. Es ist auch erwähnenswert, dass alle Einstellungen von Benutzerressourcen in Form von intelligenten Vertragsparametern festgelegt werden und der Emittent festlegt, welche Eigenschaften geändert werden können und welche dauerhaft sind. Beispielsweise kann es sich auf eine zusätzliche Ausgabe von Token beschränken und die Möglichkeit einer willkürlichen Freigabe lassen. Und diese Vertragsparameter sind für alle Benutzer sichtbar.
Eine interessante Eigenschaft von Token, die auf der Bitshares-Plattform ausgegeben werden, ist, dass der Benutzer bei Transaktionen mit ihnen eine Gebühr entweder mit der Basiswährung oder mit diesen Token zahlen kann. Die Umrechnung basiert auf dem vom Emittenten festgelegten Wechselkurs.
Abstimmungsmechanismus
Beim Studium der Bitshares-Plattform muss der Mechanismus erwähnt werden, mit dem Entscheidungen in einer dezentralen Umgebung getroffen werden können - dies ist eine Abstimmung. Die Mitglieder des Komitees (Komiteemitglieder), Validatoren (Zeugen) und Entwickler (Arbeiter) werden durch Abstimmung gewählt. Die Ausschussmitglieder müssen für die Änderung einiger Protokollparameter wie Provisionen, Anzahl der Validatoren usw. abstimmen. Validatoren, sie sind Delegierte, werden benötigt, um Transaktionen zu überprüfen und Blöcke zu bilden. Und Entwickler bieten Software-Verbesserungen an. Wenn sie eine ausreichende Anzahl von Stimmen erhalten und die Entwicklungsfristen einhalten, erhalten sie eine Belohnung.
Bei der Abstimmung ist das Gewicht der Abstimmung jedes Kontos proportional zu seinem Saldo in der Basiswährung. Gleichzeitig wird die Proxy-Voting-Option unterstützt, mit der Sie Ihre Stimme an einen anderen Wähler abgeben können. Dies ist praktisch, wenn der Benutzer selbst nicht weiß, für welchen Kandidaten er am besten stimmen kann, und dieses Recht einem kompetenteren Benutzer gewährt. Im Allgemeinen ist die Abstimmung sehr wichtig, um die hohe Zuverlässigkeit der Bitshares-Plattform sicherzustellen.
Mechanismus der Kommission
Betrachten wir nun den Mechanismus zum Sammeln von Provisionen für Transaktionen und Belohnungen aktiver Netzwerkteilnehmer. Es gibt einen solchen Kontostand, der keinem der Benutzer der Plattform gehört und der nur gemäß den Regeln des Protokolls verwaltet werden kann. Dieser Saldo wird als Reservepool bezeichnet. Die Regeln gehen davon aus, dass Provisionsgebühren für alle Transaktionen von allen Konten in den Reservepool fallen. Eine Gebühr aus dem Reservepool wird als Prozentsatz des Guthabens auf die Konten der Prüfer und Entwickler gezahlt. Darüber hinaus können die Regeln des Empfehlungsprogramms, das die Plattform ebenfalls unterstützt, der Erhebung und Verteilung von Provisionsgebühren überlagert werden (Sie können dies separat nachlesen).

Erwähnenswert ist die maximale Anzahl von Münzen in der Basiswährung. Insgesamt wurden 3,6 Milliarden Münzen ausgegeben, und es wurde keine zusätzliche Ausgabe bereitgestellt. Gleichzeitig befinden sich zum Zeitpunkt des Jahres 2018 etwa 2,6 Milliarden Münzen im freien Umlauf, und etwa 1 Milliarde befinden sich im Reservepool.
Smartcoins
Vorher haben wir über einen intelligenten Vertrag gesprochen, der normale Token implementiert, und jetzt werden wir über einen anderen intelligenten Vertrag sprechen, der marktgebundene Vermögenswerte implementiert, die Token, die zu einem externen Vermögenswert bewertet werden. Sie werden auch als SmartCoins bezeichnet. Dies funktioniert nach dem Prinzip des Differenzvertrags, d. H. Einem Differenzvertrag. Dementsprechend kann jeder diese Token ausgeben, indem er einfach eine bestimmte Kaution einfriert, beispielsweise in der Basiswährung. Die Sicherheitenquote ist deutlich höher als eins, und es werden 2 oder mehr empfohlen. Hier funktioniert alles nach den Prinzipien des Margin-Handels, bei denen Margin-Positionen und automatische Margin-Calls verwendet werden. Damit der Preis des Vermögenswerts auf ausländischen Märkten auf der Plattform angezeigt wird, werden vertrauenswürdige Parteien verwendet, die den Preis des Vermögenswerts mithilfe einer speziellen Art von Transaktion in die Bitshares-Blockchain einfügen. In diesem Fall sind diese vertrauenswürdigen Parteien die Prüfer selbst.
Block-Header-Format
Der Blockheader in Bitshares ist einfacher aufgebaut und kleiner als der Blockheader in Bitcoin.
Hier gibt es solche Felder: Kennung des vorherigen Blocks, Zeitstempel, Ersteller-Kennung, Hash-Wert der eingehenden Transaktionen und Erweiterungsfeld, um die Kompatibilität mit neuen Versionen des Block-Headers aufrechtzuerhalten.Der vollständige Block enthält den Titel des Blocks, die Signatur des Validators, der diesen Block erstellt hat, und die Liste der Transaktionen, die in diesem Block enthalten sind.Innerhalb des Bitshares-Protokolls gibt es vier Konzepte, die beim Betrieb der Plattform eine Schlüsselrolle spielen: Blöcke, Transaktionen, Operationen und Objekte. Die Objekte hier heißen Konto, Vermögenswert, Saldo, Angebot usw.Viele Operationen und Funktionen ihrer Implementierung
Lassen Sie uns das Betriebskonzept im Kontext dieses Protokolls genauer betrachten. Zum Zeitpunkt des Jahres 2018 gibt es in Bitshares etwa 40 verschiedene Arten von Vorgängen, und mit neuen Protokollaktualisierungen können neue Arten hinzugefügt werden. Mit Vorgängen können Sie einige einfache Änderungen im Buchhaltungssystem und komplexere Mechanismen wie vordefinierte intelligente Verträge einleiten. Es wurde bereits oben gesagt, dass eine Transaktion mehrere Operationen enthalten kann, die bei Erfolg gleichzeitig ausgeführt werden.Hier ist eine kurze Liste der beliebtesten Operationen:- transfer_operation überträgt einen bestimmten Vermögenswert vom Kontostand eines Kontos auf ein anderes.
- limit_order_create_operation erstellt ein Asset-Exchange-Anforderungsobjekt; limit_order_cancel_operation bricht eine solche Anwendung ab.
- fill_order_operation , , , ;
- account_create_operation ;
- blind_transfer_operation ;
- asset_create_operation ;
- asset_update_operation - ;
- asset_issue_operation ;
- witness_create_operation .
In Bezug auf die Statistik können wir sagen, dass die Belastung des Bitshares-Netzwerks in Bezug auf die Anzahl der Transaktionen mit der Belastung des Bitcoin- oder Ethereum-Netzwerks vergleichbar ist. Darüber hinaus verarbeitete die Bitshares-Plattform an einigen Stellen im Jahr 2018 mehr Transaktionen als Bitcoin und Ethereum zusammen. Die Ergebnisse von Lasttests zeigen, dass die maximale Bandbreite des Bitshares-Netzwerks hunderte Male höher ist als die maximale Bandbreite der Bitcoin- und Ethereum-Netzwerke.
Laut der analytischen Ressource blocktivity.info verarbeitet die Bitshares-Plattform zum Zeitpunkt Juli 2018 mehr als 60% der Gesamtzahl der von allen dezentralen Plattformen bestätigten Transaktionen.Datenbankorganisation
Schauen wir uns nun ein wichtiges Architekturmerkmal des Bitshares-Protokolls an, das dazu beiträgt, einen so hohen Durchsatz zu erzielen.
Das Diagramm links zeigt eine Möglichkeit, eine Datenbank namens Blockchain zu organisieren, mit deren Hilfe normalerweise die Speicherung des gesamten Transaktionsverlaufs organisiert wird. Rechts ist eine andere Möglichkeit, die Datenbank zu organisieren - Ledger. Mit seiner Hilfe wird normalerweise die Speicherung von Korrespondenzen zwischen Kennungen und Staaten organisiert (z. B. ein Konto und sein Kontostand).Mit den Blockchain-Eigenschaften können Sie auf einfache Weise die Integrität der Datenbank und den Verlauf ihrer Änderungen überprüfen sowie die Synchronisierung organisieren und in einer dezentralen Umgebung einen Konsens erzielen.Das Hauptbuch ist praktisch, da es den neuesten Status der Datenbank kompakt speichert und gleichzeitig eine schnelle Suche, Lesung und Aktualisierung von Datensätzen ermöglicht. Deshalb haben sie grundsätzlich eine höhere Bandbreite. Das Hauptbuch wird häufig in zentralisierten Buchhaltungssystemen verwendet.Die Idee hinter Bitshares ist es, beide Möglichkeiten zu nutzen, um Ihre Datenbank gleichzeitig zu organisieren. Somit zeichnet ein vollständiger Netzwerkknoten gleichzeitig zwei Datenbanken auf, die nach dem Blockchain- bzw. dem Ledger-Typ organisiert sind. Gleichzeitig synchronisieren die Knoten Daten mithilfe von Blöcken miteinander und aktualisieren die lokale Kopie der Blockchain. Sie führen die Überprüfung und Akzeptanz von Transaktionen durch und konzentrieren sich dabei auf den letzten Status der Datenbank, die Ledger speichert. Darüber hinaus wird die Größe aller Daten, aus denen Ledger besteht, so optimiert, dass die Netzwerkknoten sie im RAM halten. Auf diese Weise können Sie den Prozess der Überprüfung und Übernahme neuer Transaktionen erheblich beschleunigen.Optimierung der Geschäftslogik
Viele Buchhaltungssysteme verwenden eine allgemeine Skriptsprache, um alle Vorgänge zu definieren. Diese Buchhaltungssysteme verwenden letztendlich den "Geschäftslogikprozessor" als virtuelle Maschine, und alle Transaktionen werden als Skripte definiert, die von der virtuellen Maschine ausgeführt werden. Dieser Ansatz verwendet die Mechanismen der Synchronisation von Threads eines realen Prozessors und kombiniert sie, wobei alle Anweisungen über einen virtuellen Prozessor ausgeführt werden. Ein virtueller Prozessor ist selbst bei der Just-In-Time-Kompilierung immer langsamer als ein realer Prozessor, aber die endgültige Berechnungsgeschwindigkeit ist nicht das einzige Problem des Ansatzes, wenn alles ein Skript ist.Wenn Transaktionen auf einer so niedrigen Ebene definiert werden, bedeutet dies, dass die meisten statischen Überprüfungen und kryptografischen Transformationen in der Geschäftslogikverarbeitung verbleiben und der Gesamtdurchsatz sinkt. Um die Leistung des Buchhaltungssystems zu steigern und Geschäftslogik schnell auszuführen, müssen alle statischen Überprüfungen, einschließlich aller kryptografischen Transformationen, aus dem Bereich des Geschäftslogikmoduls herausgenommen werden.Ein weiterer Optimierungsschritt ist das Speichern von Daten des Endzustands des Abrechnungssystems im RAM. Dies bedeutet, dass der Geschäftslogikprozessor den Zeigern auf den Speicher schnell folgen und die benötigten Daten direkt empfangen kann und nicht gezwungen ist, zeitaufwändige Datenbankabfragen durchzuführen. Dies bedeutet auch, dass auf Daten zugegriffen werden kann, ohne sie zu kopieren, und dass Daten direkt an Ort und Stelle geändert werden können. Diese Optimierung bietet eine Leistungssteigerung gegenüber der Verwendung eines datenbankbasierten Ansatzes.Um ein Buchhaltungssystem mit hoher Leistung zu erstellen, sind daher keine komplexen Technologien und keine Trennung der Prozesse zwischen den Netzwerkknoten erforderlich. Um einen Hochleistungsvalidator zu erstellen, müssen lediglich alle unabhängigen Berechnungen von der Hauptgeschäftslogik getrennt und in einem Thread ohne Unterbrechungen ausgeführt werden, um alle Überprüfungsabhängigkeiten im RAM zu synchronisieren und zu speichern.Datenschutzoptionen für Benutzer
Es wurde oben angemerkt, dass das Bitshares-Buchhaltungssystem im Gegensatz zu Bitcoin Konten und Salden verwendet, bei denen die Buchhaltung auf nicht ausgegebenen Transaktionsausgaben basiert. Das Erhöhen des Datenschutzniveaus auf der Bitshares-Plattform ist keine triviale Aufgabe, da es bei Konten und Guthaben noch einfacher ist, Benutzer zu dekanonymisieren als bei Bitcoin.Aber die Entwickler von Bitshares haben dieses Problem auf interessante Weise gelöst. Sie implementierten die Möglichkeit, mehrere Ein- und Ausgänge in einer einzigen Operation anzugeben. Jetzt können Sie viele Ein- und Ausgaben in eine Transaktion einbeziehen, was die Analyse der Cashflows erschwert und die Privatsphäre der Benutzer erhöht.Darüber hinaus verwenden diese Vorgänge standardmäßig Techniken wie vertrauliche Transaktionen und Stealth-Adressen. Die vertrauliche Transaktion verbirgt die Beträge an den Ein- und Ausgängen der Operation, verwendet jedoch den Beweis, dass die Summe der Ausgänge die Summe der Eingaben nicht überschreitet. Und Stealth-Adressen verbergen die Verbindung zwischen dem öffentlichen Schlüssel, der als Kennung des Empfängers verwendet wird, und der Adresse, die tatsächlich in der Ausgabe der Transaktion angegeben ist.Bitshares verwendet standardmäßig regelmäßige (nicht vertrauliche) Zahlungen, aber Benutzer können Stealth-Transfers verwenden, wenn sie dies wünschen. Somit wird die Abrechnung von Münzen auf der Plattform auf zwei verschiedene Arten durchgeführt.Es gibt so etwas wie das Übertragen von Münzen von einer Abrechnungsmethode auf eine andere. Hierzu werden separate Operationen implementiert:- transfer_to_blind_operation wird verwendet, um Münzen von offen nach versteckt zu übertragen.
- blind_transfer_operation zum Übertragen von Münzen auf versteckte Weise und transfer_from_blind_operation zum Übertragen von Münzen von einer versteckten in eine offene Runde.
Es ist klar, dass diese Vorgänge hinsichtlich des Datenvolumens größer als gewöhnlich sind und dementsprechend eine größere Provision erfordern.Es ist bemerkenswert, dass jeder berechnen kann, wie viele Münzen in den versteckten Umlauf gegangen sind. Es gibt also so etwas wie Stealth-Versorgung (die Anzahl der Münzen im versteckten Umlauf). Derzeit (Juli 2018) gibt es jedoch einen praktischen Fehler bei der Datenschutzoption bei Bitshares. Tatsache ist, dass es immer noch keine praktischen grafischen Oberflächen für einfaches Arbeiten im Modus mit hoher Privatsphäre gibt.Häufig gestellte Fragen
- Unterstützt Bitshares die Möglichkeit, beliebige Bedingungen für das Ausgeben von Münzen festzulegen, z. B. mithilfe von Bitcoin Script?Nein, die aktuelle Version des Protokolls unterstützt diese Funktionalität nicht. Es ist unwahrscheinlich, dass es hinzugefügt wird, da es in Bitshares am bequemsten ist, neue Arten von Vorgängen zu erstellen und diese in nachfolgenden Aktualisierungen des Protokolls einzuführen.- Gibt es Implementierungen von Lightweight-Knoten für das Bitshares-Netzwerk, die beispielsweise SPV-Knoten für das Bitcoin-Netzwerk ähneln?Im Moment nicht. Darüber hinaus sind sie technisch komplizierter als SPV in Bitcoin, da DPoS und nicht PoW verwendet werden, was sehr einfach ist. Anstelle einer einfachen Site können Sie Anwendungen verwenden, die eine Verbindung zu vertrauenswürdigen Sites herstellen.- Wie lange dauert die Bildung des Blocks auf der Bitshares-Plattform?Zum Zeitpunkt des Jahres 2018 sind dies 3 Sekunden. Interessanterweise kann die Blockbildungsperiode konfiguriert werden, ohne das Protokoll zu aktualisieren.- Wenn Sie einen schönen Kontonamen auf der Bitshares-Plattform registrieren, ist es möglich, ihn an einen anderen Benutzer zu verkaufen?Ja, in der Tat gibt es eine solche Option und sie funktioniert gut.