Dieser Text beschreibt die Abstraktion eines Vertrauenssystems, mit dem Sie Treuhanddienste in jeden Bereich der Wirtschaftsbeziehungen integrieren können.
Die Einzahlung von Geldern ist ein wesentlicher Bestandteil jeder Transaktion. Wenn die Gegenparteien keine verlässlichen Informationen über einander kennen, steigt das Betrugsrisiko. Mit diesem Ansatz können Sie in einem dezentralen Netzwerk ein Streitbeilegungsmodell, ein Modell für die Durchführung automatischer Transaktionen, sichere Transaktionen usw. programmieren. Darüber hinaus ist ein solches Modell eines Vertrauenssystems offen. Alle Transaktionen, die unter Beteiligung der Multi-Subscription-Wallet-Hierarchie durchgeführt werden, ermöglichen es uns, das Rating der Gegenpartei zu überprüfen und uns vor betrügerischen Schemata neuer Teilnehmer an Wirtschaftsbeziehungen zu schützen.
Inhalt
1
Einleitung2
Beschreibung einer Brieftasche mit mehreren Signaturen3
Möglichkeiten zum Erstellen einer Brieftaschenhierarchie4
Mehrtägige Benutzeroberfläche für die Brieftaschenhierarchie5
Interaktionsströme5.1
Standard-Interaktionsfluss5.2
Sicherer Interaktionsfluss5.3
Umstrittener Interaktionsfluss6
Protokoll ESCB97
Integration eines Vertrauenssystems und intelligenter Verträge zur Implementierung des ESCB9-Protokolls8
Beispiele für Verträge, die ESCB9 implementieren8.1
Smart Contract für den privaten Vermietungsmarkt nach dem Vorbild von AirBnb8.2 Ein
intelligenter Vertrag für den Austausch einer Kryptowährung gegen Fiat-Geld und zurück in einem dezentralen Modus9
Schiedsgerichtsknoten10
Wörterbuch1. Einleitung
Das Hauptproblem für Treuhanddienste ist die Schaffung vertrauensvoller Beziehungen zwischen allen Teilnehmern. Darüber hinaus sollten die Teilnehmer selbst nicht unbedingt jedem Thema der Beziehungen bekannt sein. Um alle Fälle zusammenzufassen, werden wir berücksichtigen, dass sie alle anonym sind. Für ein solches vertrauensvolles Beziehungssystem ist es wichtig, die Beziehungen neuer Teilnehmer zu alten zu regeln. Alte Teilnehmer haben bereits eine bestimmte Bewertung im Beziehungssystem und sorgen so für mehr Vertrauen. Da niemand im Vertrauenssystem jemanden kennt, führt dies zu Problemen bei der Überprüfung der vorherigen Bewertung. Dieses Dokument beschreibt das Vertrauenssystem, das auf Crypto-Wallets mit mehreren Abonnements basiert. Ein solches System kann in einen intelligenten Vertrag programmiert werden. Angesichts der breiten Verbreitung der Ethereum-Plattform werden wir diese Plattform als Plattform für die Beschreibung aller intelligenten Verträge in diesem Dokument auswählen.
2. Beschreibung einer Brieftasche mit mehreren Signaturen
Eine Abstraktion, mit der Sie Transaktionen nur dann bestätigen oder abbrechen können, wenn zwischen den autorisierten Teilnehmern ein Konsens erzielt wurde, um eine solche Entscheidung zu treffen, wird als Brieftasche mit mehreren Signaturen bezeichnet. Eine Transaktion ist in diesem Zusammenhang eine atomare Operation, die so programmiert ist, dass sie eine Methode in einem anderen oder demselben intelligenten Vertrag ausführt.
Die Schnittstelle für den Smart-Vertrag einer solchen Abstraktion kann dargestellt werden als:
- Der Konstrukteur akzeptiert die Adressen der Gründungsmitglieder und die Anzahl der erforderlichen Mindestbestätigungen für Transaktionen
constructor(address[]:members, uint256:requiredConfirmationCount)
- Autorisierte Teilnehmerschnittstelle
- eine Liste der Teilnehmer erhalten
static getMembers() -> address[]:address
- Mitgliedsadresse anzeigen
static getMember(uint256:indexNumber) -> address:address
- Überprüfung der Adresse für die Mitgliedschaft
static isMember(address:address) -> bool:value
- Erhalten der maximalen Teilnehmerzahl für die Brieftasche
static getMaxMemberCount() -> uint256:value
- Mindestkonsensbestätigung
static getRequiredConfirmationCount() -> uint256:value
- Ereignis des Hinzufügens eines neuen Mitglieds
event MemberAddition() -> address:member
- Ereignis zum Löschen von Mitgliedern
event MemberRemoval() -> address:member
- Das Ereignis ändern erfordert die Anzahl der auszuführenden Bestätigungen
event RequiredConfirmationCountChange() -> uint256:count
- Mitglied hinzufügen
execute addMember(address:member) -> void:value
- Löschung von Mitgliedern
execute removeMember(address:member) -> void:value
- Mitgliederersatz
execute replaceMember(address:currentMember, address:newMember) -> void:value
- Änderung der Anzahl der obligatorischen Bestätigungen für die Ausführung
execute changeRequiredConfirmationCount(uint256:count) -> void:value
- Transaktionsschnittstelle
- Überprüfung der Transaktionsbestätigung an der Adresse des Teilnehmers
static getConfirmationByAddress(uint256:indexNumber, address:addressMember) -> bool:value
- Informationen aus einer Transaktion abrufen
static getTransactionInfo(uint256:indexNumber) -> [address:destination, uint256:value, bytes:data, bool:executed]
- Abrufen der Gesamtzahl der Transaktionen in dieser Brieftasche
static getTransactionCount() -> uint256:value
- Transaktionsbestätigungsstatus erhalten
static isConfirmed(uint256:transactionId) -> bool:value
- Erhalt der Anzahl der Bestätigungen
static getConfirmationCount(uint256:transactionId) -> uint256:count
- Abrufen der Anzahl der Transaktionen nach Typ
static getTransactionCount(bool:pending, bool:executed) -> uint256:count
- Abrufen der Liste der Teilnehmer, die die Transaktion bestätigt haben
static getConfirmations(uint256:transactionId) -> address[]:confirmations
- Abrufen einer Liste der Transaktions-ID nach Typ in einem bestimmten Zeitraum
static getTransactionIds(uint256:from, uint256:to, bool:pending, bool:executed) -> uint256[]:transactionIds
- Ereignis zur Bestätigung der Partytransaktion
event Confirmation() -> [address:sender, uint256:transactionId, uint256:timeStamp]
- Rücknahmeereignis zur Bestätigung der Teilnehmer vor der Transaktion
event Revocation() -> [address:sender, uint256:transactionId, uint256:timeStamp]
- Warteschlangentransaktion Ereignis hinzufügen
event Submission() -> [uint256:transactionId]
- Transaktionsausführungsereignis
event Execution() -> [uint256:transactionId]
- Transaktionsfehlerereignis
event ExecutionFailure -> [uint256:transactionId]
- Brieftaschenauffüllungsereignis
event Deposit -> [address:sender, uint256:amount]
- Mitglied fügt Transaktion hinzu
execute submitTransaction(address:destination, uint256:value, bytes:data) -> uint256:transactionId
- Transaktionsbestätigung durch den Teilnehmer
execute confirmTransaction(uint256:transactionId) -> void:value
- Widerruf der Bestätigung durch den Teilnehmer
execute revokeConfirmation(uint256:transactionId) -> void:value
- manuelle Transaktion
execute executeTransaction(uint256:transactionId) -> void:value
3 Möglichkeiten zum Erstellen einer Brieftaschenhierarchie
Es gibt zwei Möglichkeiten, ein Vertrauenssystem aufzubauen. Vertikal und horizontal. Die horizontale Bauweise impliziert die Erstellung einer Liste von untergeordneten Geldbörsen durch einen Hauptelternteil. Die vertikale Bauweise impliziert eine Kette, die aus untergeordneten Geldbörsen in Bezug auf die Eltern besteht. In diesem Fall kann die übergeordnete Brieftasche ein Kind einer anderen übergeordneten Brieftasche sein.
Wie wir sehen, kann der horizontale Konstruktionspfad eine Unterart des vertikalen Konstruktionspfads sein. Daher lassen wir diesen Ansatz weiter unbeaufsichtigt.
4 Mehrtägige Benutzeroberfläche für die Brieftaschenhierarchie
Um ein Vertrauenssystem aufzubauen, muss die oben beschriebene einfache Oberfläche der Multi-Subscription-Brieftasche erweitert werden, um Mechanismen zur Regulierung der Hierarchie und zur automatischen Ausführung von Bestätigungen sowie die Möglichkeit einer verzögerten Ausführung hinzuzufügen.
- Der Konstruktor akzeptiert die Adresse der übergeordneten Brieftasche, die Adressen der Gründungsmitglieder, die Anzahl der erforderlichen Mindestbestätigungen für Transaktionen und die Standardzeit für automatische Bestätigungen in Sekunden
constructor(address:parent, address[]:members, uint256:requiredConfirmationCount, uint256:standardTimeAutoConfirmation)
- Mitgliederschnittstelle
- eine Liste der Teilnehmer erhalten
static getMembers() -> address[]:address
- Funktion zum Anzeigen der Adresse des Teilnehmers
static getMember(uint256:indexNumber) -> address:address
- Überprüfung der Adresse für die Mitgliedschaft
static isMember(address:address) -> bool:value
- Erhalten der maximalen Anzahl von Wallet-Teilnehmern
static getMaxMemberCount() -> uint256:value
- Mindestkonsensbestätigung
static getRequiredConfirmationCount() -> uint256:value
- Ereignis des Hinzufügens eines neuen Mitglieds
event memberAddition() -> address:member
- Ereignis zum Löschen von Mitgliedern
event memberRemoval() -> address:member
- Das Ereignis ändern erfordert die Anzahl der auszuführenden Bestätigungen
event requiredConfirmationCountChange() -> uint256:count
- Mitglied hinzufügen
execute addMember(address:member) -> void:value
- Löschung von Mitgliedern
execute removeMember(address:member) -> void:value
- Mitgliederersatz
execute replaceMember(address:currentMember, address:newMember) -> void:value
- Änderung der Anzahl der obligatorischen Bestätigungen für die Ausführung
execute changeRequiredConfirmationCount(uint256:count) -> void:value
- Hierarchie-Schnittstelle
- eine Liste der Kinderbrieftaschen bekommen
static getChildren() -> address[]:wallets
- Überprüfen Sie, ob die Brieftaschenadresse ein Kind der aktuellen Adresse ist
static isChild() -> bool:value
- Die Überprüfung, ob die Brieftaschenadresse der aktuellen Adresse entspricht, erfolgt über isChild, indem sie gegenübergestellt wird.
- Affiliate Wallet Attachment Event
event childAttachment() -> [address:address,uint256:timeStamp]
- Ereignis zum Entfernen der Brieftasche für Kinder
event childRemoval() -> [address:address,uint256:timeStamp]
- Anbringen einer Kinderbrieftasche
execute attachChild(addres:child) -> void:value
- Kindergeldbörse löschen
execute removeChild(address:address) -> void:value
- Ändern Sie eine Kinderbrieftasche in eine andere
execute replaceChild(address:newAddress) -> void:value
- Transaktionsschnittstelle
- Überprüfen Sie den Transaktionsstatus
static getTransactionStatus(uint256:transactionId) -> enum:{submitted,completed,frozen,disputed,reverted}
- Überprüfen des Transaktionsstatus auf Konformität
static isTransactionStatus(uint256:transactionId, uint256:enumStatusNumber) -> bool:value
- Überprüfung der Transaktionsbestätigung an der Adresse des Teilnehmers
static getConfirmationByAddress(uint256:transactionId, address:addressMember) -> bool:value
- Informationen aus einer Transaktion abrufen
static getTransactionInfo(uint256:transactionId) -> [address:destination, uint256:value, bytes:data, bool:executed]
- Abrufen der Gesamtzahl der Transaktionen in der Brieftasche
static getTransactionCount() -> uint256:value
- Transaktionsbestätigungsstatus erhalten
static isConfirmed(uint256:transactionId) -> bool:value
- Erhalt der Anzahl der Bestätigungen
static getConfirmationCount(uint256:transactionId) -> uint256:count
- Abrufen der Anzahl der Transaktionen nach Typ
static getTransactionCount(bool:pending, bool:executed) -> uint256:count
- Abrufen der Liste der Teilnehmer, die die Transaktion bestätigt haben
static getConfirmations(uint256:transactionId) -> address[]:confirmations
- Zeit für die automatische Bestätigung bekommen
static getTimeAutoConfirmation(uint256:transactionId) -> uint256:timestamp
- Abrufen einer Liste der Transaktions-ID nach Typ in einem bestimmten Zeitraum
static getTransactionIds(uint256:from, uint256:to, bool:pending, bool:executed) -> uint256[]:transactionIds
- Ereignis zur Bestätigung der Partytransaktion
event Confirmation() -> [address:sender, uint256:transactionId, uint256:timeStamp]
- automatisches Transaktionsbestätigungsereignis
event AutoConfirmation() -> [uint256:transactionId, uint256:timeStamp]
- Rücknahmeereignis zur Bestätigung der Teilnehmer vor der Transaktion
event Revocation() -> [address:sender, uint256:transactionId, uint256:timeStamp]
- Warteschlangentransaktion Ereignis hinzufügen
event Submission() -> [uint256:transactionId]
- Transaktionsausführungsereignis
event Execution() -> [uint256:transactionId]
- Transaktionsfehlerereignis
event ExecutionFailure -> [uint256:transactionId]
- Änderung des Transaktionsstatus in eingefrorenes Ereignis
event TransactionFrozen -> [uint256:transactionId]
- Transaktionsstatusänderung zu kontroversem Ereignis
event TransactionDisputed -> [uint256:transactionId]
- Änderung des Transaktionsstatus zum zurückgegebenen Ereignis
event TransactionReverted -> [uint256:transactionId]
- Brieftaschenauffüllungsereignis
event Deposit -> [address:sender, uint256:amount]
- Fügen Sie die auszuführende Transaktion hinzu
execute submitTransaction(address:destination, uint256:value, uint256:TimeAutoConfirmation, bytes:data) -> uint256:transactionId
- Transaktionsbestätigung
execute confirmTransaction(uint256:transactionId) -> void:value
- Widerrufsbestätigung
execute revokeConfirmation(uint256:transactionId) -> void:value
- Ändern Sie den Transaktionsstatus in eingefroren
execute setTransactionStatus(uint256:transactionId, uint256:enumStatusNumber) -> void:value
- manuelle Transaktion
execute executeTransaction(uint256:transactionId) -> void:value
- Rating Management
- eine Bewertung erhalten bei
static getRatingByAddress(address:agent) -> [uint256:negativeRating, uint256:positiveRating, uint256:countRatingRecords]
- Abrufen des Bewertungsverlaufs nach Adresse und Seriennummer
static getRatingRecordForAddress(address:agent, uint256:indexNumber) -> void:value
- Ereignis des Hinzufügens eines Datensatzes zur Bewertung bei
event RatingRecordAdded -> [address:author, address:agent, bytes32:smartContractAddress, bool:positiveOrNegative, uin256:ratingNumber, bytes:comment, uint256:indexNumber]
- Datensatz zur Bewertung der Adresse hinzufügen
execute addRatingRecord(address:agent, bytes32:smartContractAddress, bool:positiveOrNegative, uin256:ratingNumber, bytes:comment) -> void:value
- Integration mit dem ESCB9-Protokoll
- Überprüfen an der Adresse, ob es sich bei dem an diese Brieftasche angehängten Smart-Vertrag um einen Smart-Vertrag mit ESCB9-Implementierung handelt
static isAttachedESCB9SmartContract(address:smartContract) -> bool:result
- Überprüfen des Einzahlungsstatus für einen intelligenten Vertrag mit ESCB9, der an diese Brieftasche angehängt ist
static getDepositStatusForESCB9SmartContract(address:smartContract) -> enum:{awaiting,founded,returned}
- Ereignis des Anhängens eines intelligenten Vertrags mit der Implementierung der ESCB9-Brieftasche
event AttachingESCB9SmartContract -> [address:smartContract]
- Einzahlungsereignis für einen intelligenten Vertrag mit Implementierung der ESCB9-Brieftasche
event ConfirmationForDepositESCB9SmartContract -> [address:smartContract, uint256:sum, bytes:notice]
- Anhängen eines intelligenten Vertrags mit der Implementierung von ESCB9 an die Brieftasche
execute attachESCB9SmartContract(address:smartContract) -> void:value
- Einzahlungsbestätigung für einen intelligenten Vertrag mit ESCB9-Implementierung. Wenn sich die Einzahlung im externen System befindet, wird der Hinweis mit einem Etikett versehen. Wenn sich die Einzahlung in der ETH befindet, wird der Einzahlungsbetrag bei Ausführung der Methode gesendet.
execute fundDepositForESCB9SmartContract(address:smartContract, uint256:sum, bytes:notice) -> void:value
5 Interaktionsströme
Jeder intelligente Vertrag kann in die Hierarchie der Brieftaschen mit mehreren Signaturen integriert werden. Eine solche Integration wird Wechselwirkungsströme haben. Im Allgemeinen unterscheiden wir verschiedene Arten von Flüssen:
- Standard . In diesem Formular erfolgt die Transaktion automatisch. Ohne die Teilnahme autorisierter Mitglieder der Brieftaschenhierarchie.
- Geschützt . In diesem Formular kann die Transaktionszeit vom Standard für die automatische Bestätigung der Zeit auf die erforderliche Zeit erhöht werden. In diesem Fall ist die Teilnahme autorisierter Mitglieder der Brieftaschenhierarchie erforderlich.
- Umstritten . In diesem Formular kann der Transaktionsteilnehmer die Transaktion einfrieren. In diesem Fall ist die Teilnahme autorisierter Mitglieder der Brieftaschenhierarchie erforderlich, um einen Konsens herzustellen.
Jede Brieftasche im Vertrauenssystem hat eine Reihe von bevollmächtigten Teilnehmern, die ein Urteil fällen. Aus einfachen Gründen werden wir alle autorisierten Teilnehmer an der Brieftasche in einem Konzept zusammenfassen - dem
Schiedsrichter .
5.1 Standard-Interaktionsfluss
Zur Vereinfachung der Darstellung bringen wir das Konzept von Waren und Dienstleistungen in das Konzept des Übertragungsobjekts (Objekt) und das Konzept von Fiat Money, Kryptowährung, in das Konzept der Übertragungsmittel (Mittel).
Die Gegenpartei, der Eigentümer des Objekts, schließt zum Zweck des Austauschs einen Vertrag mit der Gegenpartei, dem Eigentümer der Fonds. In diesem Fall erstellt der Eigentümer des Objekts einen intelligenten Treuhandvertrag, indem er eine standardisierte Transaktion an eine der autorisierten Brieftaschen in der Hierarchie der Brieftaschen mit mehreren Signaturen sendet. In diesem Fall wird die Transaktion von einem Dritten als Vertrauenssystem registriert. Für jede Transaktion wird die Standardzeit für ihre Ausführung bestimmt. Die Gegenpartei, der Eigentümer des Fonds, leistet eine Einzahlung bei der Transaktion, indem sie das Geld an das Treuhandsystem überweist. Danach überträgt der Eigentümer des Objekts das Objekt an den Eigentümer des Geldes. Der Eigentümer des Fonds überprüft die Qualität des Objekts. Wenn er vor Ablauf der Transaktionszeit die Qualität nicht bestätigt hat, wird das Geld innerhalb der Transaktion an den Eigentümer des Objekts überwiesen. Beide Gegenparteien geben sich gegenseitig Komfortbewertungen. Somit kann der Eigentümer des Fonds den Interaktionsfluss ändern, bis die Transaktion abgeschlossen ist. Nach der Überweisung von Geldern an den Eigentümer des Objekts kann der Eigentümer des Geldes einen höheren Geldbeutel auf Hierarchieebene beantragen, um Streitigkeiten innerhalb der in der Verordnung festgelegten Zeit beizulegen. Nach dieser Zeit werden die Ratings für die Transaktion auf beide Parteien angewendet und die Transaktion wird unwiderruflich.
5.2 Sicherer Interaktionsfluss
Wenn aus bestimmten Gründen, die außerhalb der Kontrolle der Gegenparteien liegen, die Frist für die Transaktion verlängert werden muss, kann die Multi-Signature-Hierarchie-Brieftasche (Arbiter) nach Vereinbarung der Parteien die für die Transaktion vorgesehene Zeit ändern. Nach dem Ändern der Zeit kehrt der der Transaktion zugewiesene Interaktionsfluss auf die Logikstufe des Standardflusses zurück.
5.3 Umstrittener Interaktionsfluss
Wenn die Qualität des Objekts während der Transaktion nicht der Gegenpartei entspricht, dem Eigentümer des Geldes, das er zum Vertrauenssystem der Hierarchie der Brieftaschen mit mehreren Signaturen beiträgt, kann die Transaktion eingefroren werden. In diesem Fall wird die Anzahlung erst dann an die Gegenpartei, den Eigentümer des Objekts, übertragen, wenn ein Urteil über die Transaktion gefällt wurde. Der Inhaber der Fonds muss dem Schiedsrichter der Transaktion wesentliche Nachweise vorlegen. Danach fällt der Schiedsrichter ein Urteil zugunsten einer der Gegenparteien. Wenn eine Partei der Transaktion mit dem Urteil nicht zufrieden ist, wird eine höhere Brieftasche in der Reihenfolge in der Hierarchie der Brieftaschen mit mehreren Signaturen verwendet. Nachdem alle Hierarchieinstanzen bestanden wurden, kann jede Partei eine öffentliche Abstimmung beantragen. Diese außergewöhnliche Maßnahme kann nur durch einen absoluten Geldbeutel zugewiesen werden.
6 Protokoll ESCB9
Ein Beispiel für das ESCB9-Protokoll in Solidity als abstrakter Smart-Vertrag (das Protokoll befindet sich in der Entwicklung und kann sich ändern).
contract ESCB9 { modifier onlyArbitrage() { require(msg.sender == arbitrage()); _; } modifier isDeposited { uint i; bytes memory _funcName = bytes4(keccak256("getDepositStatusForESCB9SmartContract(address)")); bytes memory _concat = new bytes(_funcName.length + 32); for(i=0; i < address(this).length; i++) { _concat[i] = address(this)[i]; } require(arbitrage().call.value(0)(_concat) == 1);
7 Integration eines Vertrauenssystems und intelligenter Verträge zur Implementierung des ESCB9-Protokolls
Um das Vertrauenssystem der Hierarchie der Brieftaschen mit mehreren Signaturen in Ihrem eigenen Projekt zu verwenden, müssen Sie einen intelligenten Vertrag erstellen, der den ESCB9-Standard implementiert, und einen solchen intelligenten Vertrag an einen der Schiedsrichter anhängen, der keine untergeordneten Brieftaschen hat. Solche Brieftaschen in einer Hierarchie mit mehreren Abonnements werden als "Eingabeknoten" bezeichnet. Alle vorgelagerten Brieftaschen mit mehreren Signaturen werden als "Arbitrierungsknoten" bezeichnet.
8 Beispiele für Verträge, die ESCB9 implementieren
8.1 Smart Contract für den privaten Vermietungsmarkt nach dem Vorbild von AirBnb
8.2 Ein intelligenter Vertrag für den Austausch einer Kryptowährung gegen Fiat-Geld und zurück in einem dezentralen Modus
Das unten beschriebene Beispiel eines Smart-Vertrags ermöglicht es Ihnen, BTC direkt gegen Fiat-Geld einzutauschen, ohne dass Austauscher und Dienste von Drittanbietern teilnehmen müssen. Der BTC-Verkäufer überträgt den Betrag im Smart-Vertrag auf die Einzahlung in der BTC-Blockchain. Der Käufer überweist nach Bestätigung der Anzahlung durch den Schiedsrichter automatisch den im Vertrag festgelegten Betrag auf das im Vertrag enthaltene Konto oder die Plastikkartennummer. Der Schiedsrichter kann nach Berufung eines der Teilnehmer in die Transaktion eingreifen. Zunächst wird die Anzahlung eingefroren, und wenn die Parteien nicht einvernehmlich zustimmen, wird ein solcher Vertrag mit einer weiteren Lösung über den Fluss der umstrittenen Interaktion bestritten.
9 Schiedsgerichtsknoten
Um die Arbeit des Vertrauenssystems aufrechtzuerhalten, wird eine Hierarchie von Brieftaschen mit mehreren Signaturen eingeführt. Schiedsgerichtsknoten, dh solche Geldbörsen in der Hierarchie, unter denen sich untergeordnete Geldbörsen befinden, fungieren als Garanten für die Streitbeilegung. Bevollmächtigte für solche Knoten können nur durch eine übergeordnete Hierarchie ernannt werden. Jeder autorisierte Teilnehmer erhält eine Belohnung, indem er Dividenden und Boni für die Arbeit mit umstrittenen Interaktionsströmen verteilt. Die Bonusgröße wird im Konsens festgelegt.
Um den Status eines autorisierten Teilnehmers in einem Schiedsgerichtsknoten zu erhalten, muss eine konsensdefinierte Anzahl von Token an der Adresse eines autorisierten Teilnehmers vorhanden sein.
Somit ist ein stabiler Dividendenempfang bei allen Teilnehmern der Schiedsgerichtsknoten gewährleistet. Je höher die Hierarchie einer Brieftasche mit mehreren Signaturen ist, desto mehr Token sollten an der Adresse eines autorisierten Teilnehmers vorhanden sein.10 Wörterbuch
Ethereum ist eine Open Source-Technologie, mit der Sie eine dezentrale, unveränderliche Transaktionskette erstellen können. Jede Transaktion kann unter bestimmten Bedingungen ausgeführt werden, die in einem Smart-Vertrag festgehalten sind.Intelligenter Vertrag - geschrieben in Solidity, der in der virtuellen Maschine von Ethereum ausgeführten Logik, mit der Sie die Transaktionslogik erweitern können.Ein Multi-Signature-Wallet (Arbiter) ist ein spezieller Smart-Vertrag, der von einer Gruppe autorisierter Teilnehmer gesteuert wird, die Transaktionen bestätigen oder stornieren können. Mithilfe des Mechanismus von Brieftaschen mit mehreren Abonnements können Sie eine Kette von Gateways für Transaktionen erstellen und die Ausführung oder Rückerstattung rechtzeitig überwachen.Eigentümer eines Objekts - ist ein Vermieter, Lieferant, Entwickler eines Softwareprodukts usw. Das heißt, eine Person, die ein Objekt verkauft und letztendlich eine Kaution als Belohnung erhält.Eigentümer von Geldern - ist ein Mieter, Käufer, Kunde eines Softwareprodukts usw. Das heißt, eine Person, die eine Kaution für ein Objekt hinterlegt, um ein Produkt oder eine Dienstleistung zu kaufen.