Jeder Account auf Hive hat stets 4 kryptographische Schlüsselpaare, bestehend aus einem privaten und einem öffentlichen Schlüssel. Diese Schlüsselpaare sind der Memo Key, Posting Key, Active Key und Owner Key. Schaut man sich nun Grafiken wie die im Hive Wallet an, so stellt man fest, dass irgendwie ein Key in der Grafik verloren gegangen ist: Der Memo Key.

Foto: Hive Wallet
Der Memo Key erfüllt dabei auch nicht wirklich eine Funktion in der aktuellen Benutzung von Hive. Alles was dieser Schlüssel kann, ist Nachrichten an eine Person mit dem öffentlichen Schlüssel des Empfängers zu verschlüsseln, beziehungsweise Nachrichten an einen selbst, mit seinem eigenen privaten Schlüssel zu entschlüsseln, also lesbar zu machen.Dadurch, dass kaum jemand Nachrichten über Hive verschickt, sondern oftmals eher Discord benutzt wird, scheint dieser Schlüssel also quasi nutzlos.
Aber ich finde: Die Existenz dieses Schlüssels ist großartig! Hive ist dafür bekannt, dass man Nutzer nicht zensieren kann. Ja, man kann durch exzessives Downvoten Nutzer quasi in der Öffentlichkeit unsichtbar machen. Aber man kann ihnen nicht die Möglichkeit nehmen, Inhalte zu teilen, die von anderen aus der Blockchain abgerufen werden können. Somit stellt Hive eine deutlich zensursicherere Kommunikationsmöglichkeit dar, als jegliche zentralisierten Dienste. Auch kann durch die Nutzung der Memo Keys sichergestellt werden, dass tatsächlich nur Sender und Empfänger Zugriff auf den versendeten Nachrichteninhalt in Klartext haben. Und genau deswegen möchte ich dazu anstiften, die Funktion doch etwas mehr zu nutzen! Je mehr Personen diese Funktion nutzen, desto höher wird tendenziell auch der Anreiz der Entwickler Hives und der Frontends, die Integration der privaten On-Chain Kommunikation zu verbessern.
So geht's mit Hive Keychain (Firefox, Chrome)

Unten kann der Reiter "Send" gefunden werden, mit dem Transaktionen an andere Accounts auf Hive durchgeführt werden können. Diesen Reiter brauchen wir, denn um eine Memo auf Hive zu versenden, müssen wir auch immer Coins mitversenden. Das liegt einfach an der Natur der Implementierung der Hive Blockchain. Das sollte allerdings kein Problem darstellen, da man standardmäßig für eine Memo an einen anderen Nutzer nur 0,001 HIVE versendet. Das entspricht aktuell etwa einem Hundertstel eines Cents. Für nur 1€ kann man also beim aktuellen Kurs von HIVE ganze 10.000 Nachrichten versenden. Und noch dazu: Wenn der Empfänger antwortet, kommen die 0,001 HIVE wieder zurück. Der Kostenaspekt ist also irrelevant - In der Praxis sind private Nachrichten auf Hive kostenlos.

Im Fenster der Transaktion müssen dann Empfänger der Nachricht, Transaktionsbetrag (symbolische 0,001 HIVE) und die Nachricht in "MEMO (optional)" eingetragen werden. Ganz wichtig(!!!): Der Binärcode-Block (3x3 Gitter 010101010) muss angeklickt werden, sodass er NICHT durchgestrichen ist. Das aktiviert die automatische Verschlüsselung mithilfe des Memo Keys an den Empfänger. Nun heißt es nur noch auf den nicht zu übersehenden Knopf "Send" zu drucken.

Jetzt gibt es noch eine kleine Abfrage, ob die Transaktionsinformationen so richtig sind. Hier sollte man noch einmal darauf achten, dass hinter der Memo "(encrypted)" steht. Das ist die Bestätigung, dass die Nachricht tatsächlich verschlüsselt wird. Wenn alles richtig aussieht, kann man mit "Confirm" die Nachricht auf ihren Weg schicken.
Wirft man jetzt einen Blick in die Blockchain, dann sieht man, dass meine Transaktion an den @dach-support Bot tatsächlich durchgegangen ist. In der Transkation enthalten ist nun meine Memo, die wie folgt lautet: #63yWi2WbHJqLG2f9YGbj48HvKL6DY7tWrJwbnH7oizTFMTzLpBuBJCATLQDtKn7Pumpv4RgWdrm9VVwcNqJQFJpMJky3jiLFuzwPfk7hJkowbeQaH957Wwdyo7gHxPY3fhD2Jt2x92c54Dhg6LiZzxnIch stelle nun Mal die ganz gewagte Behauptung auf, dass hätte ich den Klartext nicht zuvor hier in Screenshots gezeigt, niemand in der Lage wäre, nun herauszufinden, was diese wirre Zeichenfolge bedeutet.
Der Empfänger, in diesem Fall der D-A-CH Bot könnte sich nun mit seinem privaten Schlüssel daran machen, die Nachricht zu entschlüsseln. Aber auch ich kann die Nachricht als Absender weiterhin mit meinem privaten Schlüssel für mich selbst entschlüsseln. Um den Entschlüsselungsprozess zu simulieren, mache ich auch das noch. Dazu gehen wir beispielsweise in die "Account History" im Hive Wallet, wo wir die Transaktionen finden. Hier finde ich nun an oberster Stelle meine Transaktion an den Bot:

Wenn ich nun auf den Knopf "DECODE MEMO" klicke, gelange ich in ein Fenster, in dem ich meinen privaten Memo Key angeben soll, um die Nachricht zu entschlüsseln.

Diesen Schlüssel weiß ich logischerweise weder aus dem Kopf, noch ist es besonders angenehm, jedes Mal in meine Backups meiner Key File zu gehen, um den Schlüssel zu suchen. Glücklicherweise ist der Schlüssel allerdings in meiner Keychain Erweiterung im Browser hinterlegt, die die Arbeit für mich übernimmt. Dafür muss ich einfach auf "Decode with Keychain" klicken, einmal das Dialog-Fenster der Erweiterung bestätigen, et voilà:

Ich sehe jetzt wieder genau den Text, den ich dem Bot geschickt habe. Der Prozess für den Empfänger zum Entschlüsseln ist identisch.
So geht's mit Hive Keychain (Android App)
Mit der Android-App der Keychain funktioniert es nahezu identisch. Es gibt zwar ein paar kleine Unterschiede, auf die ich auch aufmerksam machen werde. Im großen und ganzen ist es allerdings der identische Ablauf, weshalb ich es hier mit Text etwas kürzer halten werde.
Zunächst wird HIVE als Währung der Transaktion ausgewählt, eine Überweisung ausgewählt, Empfänger, Betrag und Nachricht eingetragen. Auch hier ist wieder darauf zu achten, die Verschlüsselung explizit zu aktivieren!



Bei der Entschlüsselung ist dann darauf zu achten, dass man im integrierten Browser der Keychain App im Hive Wallet nicht im Handy-Modus entschlüsseln kann. Man muss simulieren, am PC zu sein. Das tut man, indem man auf das Handy-Icon unten rechts klickt, sodass es zu einem Laptop wird, wie im folgenden Bild als 1 angezeigt. Danach macht man mit Schritt 2, dem entschlüsseln weiter.




Und da haben wir es schon wieder: Die entschlüsselte Nachricht.
Keine Benachrichtigungen über Nachrichten
Das ganze Verfahren hat noch einen kleinen Haken: Man bekommt nur schwerlich mit, wann man Nachrichten empfangen hat. Der einzige Weg ist eigentlich, regelmäßig manuell in den eingehenden Transaktionen zu gucken, ob kürzlich eine Nachricht eines anderen Nutzers eingegangen ist. Aber das ist zu verkraften, denke ich. Einfach immer wenn man auf Hive unterwegs ist, zwischendurch mal die 30 Sekunden nehmen, und die eingegangenen Transaktionen durchscrollen.
Abschließend
Sicherlich gibt es auch noch andere Wege und Möglichkeiten, Nachrichten verschlüsselt über Hive zu teilen, statt ausschließlich über die Keychain-Erweiterung (@keychain). Das ist allerdings die Option, die ich nutze. Und ich gehe auch davon aus, dass Keychain ohnehin für die Mehrheit der Nutzer die Software der Wahl für die Key Verwaltung ist.
Noch eine Abschlussbemerkung: Es gibt bei Transaktionen ein Zeichenlimit. Das liegt, soweit ich weiß bei 1.000 Zeichen. Ganze Bücher in einer einzelnen Nachricht sind also nicht wirklich im Bereich des möglichen. Aber für die meiste Kommunikation, die die 150 Wörter nicht überschreitet, was wohl äußerst selten der Fall sein sollte, wenn man ausschließlich locker hin und her schreibt, ist dieses Zeichenlimit wohl kaum eine bedeutende Einschränkung. Schließlich kann man ja im Fall der Fälle auch wie bei längeren Twitter-Posts mehrere Nachrichten mit dem Vermerk "(1/x)", "(2/x)" aneinanderhängen.
Die Funktion, Nachrichten direkt zensurfrei und dezentral über Hive versenden zu können, finde ich tatsächlich sehr cool und ich würde diese Funktion gerne mehr benutzen und auch andere sehen, wie sie diese Funktion untereinander nutzen. Nehmt diesen Post doch, wenn ihr wollt, als Anlass, jemandem auf Hive eine nette Nachricht auf diese Weise zu hinterlassen. Solltet ihr nicht wissen, ob der Empfänger seine eingehenden Transaktionen regelmäßig prüft, könnt ihr ja auch unter dessen neustem Post einen Hinweis hinterlassen, oder sie sonstwo auf Hive mit dem Hinweis taggen.
Edit:
Ergänzung (Danke @stayoutoftherz)
Mit dem Frontend PeakD kann man, sofern die Keychain-Erweiterung im Browser vorhanden ist ebenfalls die empfangenen und gesendeten verschlüsselten Nachrichten entschlüsseln. Und dabei geht das wohl sogar noch etwas einfacher und inuitiver als im Hive Wallet von Hive.blog. Dazu geht man bei PeakD in sein Wallet und scrollt dann etwas herunter. Dort findet man dann die Transaktionen. Wenn sich darunter eine verschlüsselte Memo befindet, wird dahinter ein Schloss angezeigt. Mit einem Klick auf das Schloss wird dann automatisch der Klartext der Nachricht angezeigt.

Anders als das Wallet von Hive.blog scheint PeakD das vorangestellte "#" aus der dekodierten Nachricht nicht zu entfernen. Das ist aber wohl meckern auf höchstem Niveau ^^ Danke an @stayoutoftherz für den Hinweis!