Bietet Ethereum verschlüsselte Peer-to-Peer-Kommunikationsanwendungen an?

Ich frage mich, ob Ethereum für verschlüsselte Peer-to-Peer-Kommunikation wie die Übermittlung verschlüsselter Kurznachrichten oder verschlüsselter Daten in großen Mengen zwischen zwei oder mehreren Parteien verwendet werden kann.

Gibt es Beispiele oder Anwendungen, die ich überprüfen kann?

Antworten (2)

Sehen Sie sich den Abschnitt Anwendungsfälle im Ethereum Whisper-Protokoll unter https://github.com/ethereum/wiki/wiki/Whisper-Overview an :

  • shh.post({ "topic": t, "payload": p });Keine Signatur, keine Verschlüsselung: Anonymer Broadcast; ein bisschen wie ein anonymer, themengefilterter Twitter-Feed.
  • shh.post({ "from": myIdentity, "topic": t, "payload": p });Offene Signatur, keine Verschlüsselung: Klar signierte Sendung; Ein bisschen wie ein normaler Twitter-Feed – jeder, der daran interessiert ist, kann sehen, dass eine bestimmte Identität bestimmte Dinge an niemanden im Besonderen sendet.
  • shh.post({ "to": recipient, "topic": t, "payload": p });Keine Signatur, Verschlüsselung: Verschlüsselte anonyme Nachricht; ein bisschen wie eine anonyme Dropbox - die Nachricht ist privat für den Besitzer der Dropbox. Sie können nicht sagen, von wem es ist.
  • shh.post({ "from": myIdentity, "to": recipient, "topic": t, "payload": p });Geheime Signatur, Verschlüsselung: Verschlüsselte signierte Nachricht; wie eine sichere E-Mail. Eine Identität sagt einer anderen etwas – niemand sonst kann es lesen. Nur der Empfänger weiß, dass es vom Absender kam.
  • shh.post({ "from": myIdentity, "to": recipient, "topic": t, "payload": p, "deniable": d });Geheime Signatur, Verschlüsselung mit optionaler plausibler Abstreitbarkeit. Wenn der boolesche Parameter d falsch ist, entspricht er dem vorherigen Aufruf. Wenn d wahr ist, kann der Empfänger keinem Dritten beweisen, dass die Nachricht vom Absender stammt, kann es aber immer noch selbst überprüfen. Dies wird dadurch erreicht, dass die digitale Signatur anhand des symmetrischen Sitzungsverschlüsselungsschlüssels anstelle des Nachrichtentexts berechnet wird.

Antwort auf Ihren Kommentar unten

Zitieren Péter Szilágyiaus Was sind effektive Techniken zum Verschlüsseln/Entschlüsseln von Daten, die in einem Smart Contract gespeichert sind? :

Da alle Transaktionen und Daten auf der Blockchain öffentlich sind, müssen Sie die Daten außerhalb von Ethereum verschlüsseln und die bereits verschlüsselten Daten einfügen. Ebenso müssen Sie die verschlüsselten Daten abrufen und lokal entschlüsseln. Ich bin mir sicher, dass es viele Kryptobibliotheken für Javascript gibt, mit denen Sie dies tun können. Ich bezweifle, dass web3 solche Funktionen enthält, da es außerhalb des Bereichs liegt.

Und zitieren dbrysonaus Können intelligente Verträge mit verschlüsselten Daten rechnen? :

Wenn ich Ihre Frage richtig verstehe, wird das, worauf Sie sich beziehen, als sichere Mehrparteienberechnung bezeichnet, was derzeit keine Smart Contracts-Funktion ist. Tatsächlich ist es ein herausforderndes Problem, das wahrscheinlich am besten außerhalb der Blockchain gelöst wird, da es rechenintensiv sein kann. Ich würde empfehlen, sich zunächst die Enigma- und OpenPDS-Projekte des MIT anzusehen. Ich habe keine geplanten Meilensteine ​​für diese Fähigkeit in Ethereum gesehen.

Vielleicht möchten Sie auch Folgendes überprüfen:

@BokkyPoohBah Vielen Dank für deine Antwort. Kennen Sie Dapps, die für kleine oder große Verschlüsselungen implementiert sind? Wie kann man Smart Contract mit Verschlüsselung mit Whisper integrieren, sodass beispielsweise nach erfolgter Verschlüsselung die Entschlüsselung innerhalb von 24 Stunden erfolgt und nach erfolgter Entschlüsselung nicht erneut erfolgen kann. Ist das sinnvoll?
Gibt es eine Begrenzung für die Größe verschlüsselter Daten, die in die Ethereum-Blockchain aufgenommen werden können?

Wir haben gerade unser Projekt UnwiredApp basierend auf Ethereum vorgeschlagen. Das ist im Grunde ein Smart Contract, der Nachrichten aufzeichnet, die sich auf einen bestimmten Benutzer beziehen, und dem Empfänger und nur ihm ermöglicht, sie zu lesen. Das Pitch-Video ist hier .

Der wesentliche Soliditätscode im Smart Contract ist der folgende:

struct mess {
  uint256 idMessage;
  uint256 idPrevious;
  uint256 timestamp;
  address from;
  string message;
}

/* Array with all messages with structure messages[to][idMessage] */
mapping (address => mapping (uint256 => mess)) public messages;

Jede gespeicherte Nachricht ist also eine Struktur, die Werte für die ID, einen Zeiger auf die vorherige Nachricht, den Zeitstempel, den Absender (von) und die Nachricht selbst als Zeichenfolge enthält.

Alle Nachrichten werden auf einem Mapping mit 2 Indizes „to“ und „idMessage“ gespeichert. Auf diese Weise kann der Smart Contract immer über die letzten Nachrichten für ein bestimmtes Konto antworten.

Und wie funktioniert dieser Vertrag? Während dies die Frage theoretisch beantworten kann, wäre es vorzuziehen , die wesentlichen Teile der Antwort hier aufzunehmen und den Link als Referenz bereitzustellen.
Nun, ich habe einige Erklärungen hinzugefügt. Ich hoffe, es hilft.