Wie verhindert Quorum doppelte Ausgaben, wenn Zustände verschlüsselt sind?

Mein Verständnis von Quorum ist, dass private Verträge verschlüsselte Zustände haben, daher bin ich verwirrt darüber, wie sie einen Konsens erzielen und doppelte Ausgaben verhindern. Wenn jeder Zustand verschlüsselt ist, wie können die Knoten sicher sein, dass ein TX nicht doppelt ausgegeben wird, wenn die Daten verschlüsselt sind?

Antworten (2)

Quorum hat zwei Arten von Transaktionen, öffentliche Transaktionen und private Transaktionen. Öffentliche Transaktionen werden ähnlich verarbeitet wie öffentliche Ethereum-Transaktionen, werden in Blöcke aufgenommen und leiten einen öffentlichen Zustand ab.

Private Transaktionen werden als "privat" gekennzeichnet, sind aber ansonsten öffentlich sichtbar und werden ebenfalls in die Blöcke aufgenommen; die Nutzlast (Daten) ist verschlüsselt und kann von jedem entschlüsselt werden, der Teil der „privaten Gruppe“ ist. Der private Zustand wird nicht veröffentlicht, da er für niemanden außer Ihnen selbst nutzlos ist und als Wurzelknoten im privaten Trie dient.

Private Transaktionen können schreibgeschützt mit öffentlichen Verträgen interagieren. Dies ist eine Einschränkung, andernfalls könnte der öffentliche Status durch den privaten Status geändert werden, was wiederum zu unterschiedlichen Status für die Clients führen würde. Öffentliche Transaktionen können nicht mit dem privaten Staat interagieren.

https://www.reddit.com/r/ethereum/comments/6azhkk/quorum_vs_ethereum/

Quorum hat ein privatesFor: das einen Vertrag, Zustand und zugehörige Transaktionen mit den beteiligten Parteien enthält. Die an der privaten Transaktion beteiligten Parteien sehen jedoch den Vertrag. Sie führen die Funktionen aus und halten den Zustand auf eine Weise, die Ethereum sehr ähnlich ist. Nur Nicht-Teilnehmer, die nicht auf der privateFor:-Liste stehen, können die Transaktionen nicht interpretieren.

Ich hoffe es hilft.

Interessant... Danke für deine Antwort Rob. Ich muss auch fragen, was ist, wenn Sie einen Vertrag verwenden und nicht möchten, dass jeder Teilnehmer es sieht (sagen wir, Bank A und Bank b handeln, aber sie möchten nicht, dass Bank c es sieht). Müssen sie einen komplett neuen Vertrag abschließen? Hat jeder privateFor-Teilnehmer einen Schlüssel, um die Zustände zu entschlüsseln?