Ich verstehe, dass jede Transaktion in der Blockchain sichtbar ist, aber wäre es möglich, eine DApp zu erstellen, die es Menschen ermöglicht, verkleidet abzustimmen? Ihre Stimme nicht präsentieren, bis der Abstimmungsprozess abgeschlossen ist?
Sie suchen nach Verpflichtungsprogrammen . Im Allgemeinen hat ein Commitment-Schema zwei Phasen: Commit- und Reveal- Phase. Ein einfaches Commitment-Schema ist das Folgende:
x
muss sie einen Zufallsgenerator r
(sagen r
wir mal mehr als 100 Bit) generieren und senden H(x||r)
, wobei H
eine kryptografisch sichere Hash-Funktion ist und ||
für Verkettung steht). Da H
es kryptografisch sicher ist, ist es rechnerisch unmöglich, ein Urbild von zu finden H(x||r)
(dh es hat eine vernachlässigbare Wahrscheinlichkeit). Diese Eigenschaft wird als rechnerische Bindung bezeichnet. Diese Eigenschaft stellt sicher, dass niemand (nicht einmal Alice) den Verpflichtungswert von Alice ändern kann x
.x'
und r'
. Bob prüft, ob H(x||r)==H(x'||r')
. Wenn es passt, dann akzeptiere es, andernfalls lehne es ab.Andere ausgefeiltere Commitment-Schemata könnten unter Verwendung des Discrete-Log-Problems aufgebaut werden.
Das ist möglich, aber nicht direkt. Der einfachste Weg wäre wohl, den Hash der Einzelstimme für jeden Wähler zu speichern. Sie können die Hash-Eigenschaft Hiding verwenden, um die Abstimmung zu verbergen: Wenn Sie die Möglichkeiten „Ja“ und „Nein“ haben, hängt jeder Wähler eine zufällige geheime Zeichenfolge entweder an „Ja“ oder „Nein“ an und lädt den Hash der resultierenden Zeichenfolge hoch. Auf diese Weise gibt der Hash die Stimme nicht preis, bis der Wähler die geheime angehängte Zeichenfolge und seine Stimme preisgibt. Wenn es aufgedeckt wird, kann jeder bestätigen, dass die Stimme nicht verändert wurde, indem er den Hash überprüft.
Eine anspruchsvollere Lösung kann mit homomorpher Verschlüsselung erstellt werden . Das beseitigt die Notwendigkeit, dass jeder Benutzer das Geheimnis nach dem Ende der Abstimmung preisgibt, ist aber etwas komplizierter.
Am Ende hängt es also von Ihrer Anwendung ab.
NemesisChain
István András Seres
NemesisChain