{% include disclaimer.html translated="yes" translationOutdated="no" %} ## Inhaltsverzeichnis - [Inhaltsverzeichnis](#inhaltsverzeichnis) - [Einleitung](#einleitung) - [Monero-Multisig zusammengefasst](#monero-multisig-zusammengefasst) - [Die Architektur des MMS](#die-architektur-des-mms) - [Das Benutzererlebnis des MMS](#das-benutzererlebnis-des-mms) - [Ein Nachrichtensystem](#ein-nachrichtensystem) - [Unterzeichner und Nachrichten](#unterzeichner-und-nachrichten) - [Das MMS erhalten](#das-mms-erhalten) - [PyBitmessage installieren und einrichten](#pybitmessage-installieren-und-einrichten) - [Weitere PyBitmessage-Optimierungen](#weitere-pybitmessage-optimierungen) - [Befehlsübersicht des MMS](#befehlsübersicht-des-mms) - [Ein Wallet zur Nutzung mit MMS einrichten](#ein-wallet-zur-nutzung-mit-mms-einrichten) - [Adressen und Labels](#adressen-und-labels) - [CLI-Wallet starten](#cli-wallet-starten) - [MMS initialisieren](#mms-initialisieren) - [Unterzeichner einrichten](#unterzeichner-einrichten) - [Unterzeichner manuell einrichten](#unterzeichner-manuell-einrichten) - [Auto-Config](#auto-config) - [Unterzeichnerkonfiguration senden](#unterzeichnerkonfiguration-senden) - [Multisig-Adresse herleiten](#multisig-adresse-herleiten) - [Finanzausstattung des Multisig-Wallets](#finanzausstattung-des-multisig-wallets) - [Wallets synchronisieren](#wallets-synchronisieren) - [Multisig-Transaktionen erstellen](#multisig-transaktionen-erstellen) - [Die Befehle im Detail](#die-befehle-im-detail) - [mms init](#mms-init) - [mms info](#mms-info) - [mms signer](#mms-signer) - [mms list](#mms-list) - [mms next](#mms-next) - [mms sync](#mms-sync) - [mms transfer](#mms-transfer) - [mms delete](#mms-delete) - [mms send](#mms-send) - [mms receive](#mms-receive) - [mms note](#mms-note) - [mms show](#mms-show) - [mms export](#mms-export) - [mms set](#mms-set) - [mms start\_auto\_config](#mms-start_auto_config) - [mms auto\_config](#mms-auto_config) - [mms stop\_auto\_config](#mms-stop_auto_config) - [mms send\_signer\_config](#mms-send_signer_config) - [Sicherheit](#sicherheit) - [Nutzen von Verschlüsselung und Signaturen](#nutzen-von-verschlüsselung-und-signaturen) - [Kommunikation von MMS zu PyBitmessage](#kommunikation-von-mms-zu-pybitmessage) - [Identitätsbetrug](#identitätsbetrug) - [Von Angreifern kontrollierte Daten](#von-angreifern-kontrollierte-daten) - [Fehlerbehebung](#fehlerbehebung) - [Synchronisierungsprobleme lösen](#synchronisierungsprobleme-lösen) - [Eine Transaktion an einen anderen Unterzeichner umleiten/weiterleiten](#eine-transaktion-an-einen-anderen-unterzeichner-umleiten/weiterleiten) - [Unkooperative Unterzeichner beim Synchronisieren ignorieren](#unkooperative-unterzeichner-beim-synchronisieren-ignorieren) - [Von abhandengekommenen oder doppelten Nachrichten wiederherstellen](#von-abhandengekommenen-oder-doppelten-nachrichten-wiederherstellen) - [Informationen von Unterzeichnern korrigieren/aktualisieren](#informationen-von-unterzeichnern-korrigieren/aktualisieren) - [Von Grund auf beginnen](#von-grund-auf-beginnen) - [Interaktionen von MMS/PyBitmessage](#interaktionen-von-mms/pybitmessage) ## Einleitung Diese Anleitung behandelt das *Multisig Messaging System* (Multisig-Nachrichtensystem), kurz *MMS*. Dieses System strebt an, **Multisig-Transaktionen** für Monero und ähnliche, CryptoNote-basierte Kryptowährungen zu **vereinfachen**, indem der Austausch von Infos (etwa von Schlüsselsätzen) und die Synchronisation von Daten zwischen Wallets erleichtert werden. Zudem bietet es Unterstützung bezüglich des Arbeitsablaufs, indem Nutzer durch die verschiedenen Schritte geführt werden. Bislang erscheint das MMS für Nutzer wie eine Reihe neuer Befehle im CLI-Wallet, was im Grunde keine Überraschung ist: Das CLI-Wallet ist derzeit die einzige Möglichkeit zur interaktiven Erstellung von Multisig-Transaktionen. Dies wird aber in Zukunft hoffentlich erweitert; das MMS wurde auch mit anderen Wallets (etwa dem Monero-GUI) im Hinterkopf entworfen. Diese Anleitung umfasst einige übungsähnliche Punkte und sollte der Reihe nach durchgegangen werden, möglichst ohne die Kapitel vor dem *Die Befehle im Detail*-Teil zu überspringen. Wenn du hohe Sicherheitsanforderungen hast und dir nicht sicher bist, ob ein Gebrauch des MMS für dich überhaupt infrage kommt, solltest du als Erstes das Kapitel *Sicherheit* lesen. Die erste Version dieser Anleitung wurde um das Jahresende 2018 herum von René Brunner (*rbrunner7*), dem ursprünglichen Schöpfer des MMS, verfasst. ## Monero-Multisig zusammengefasst Es wird vermutlich ziemlich schwer sein, das MMS zu verstehen, ohne wenigstens ein Grundverständnis davon zu haben, wie Multisig-Transaktionen bei Monero prinzipiell funktionieren. Daher hier nun eine kurze Übersicht, gemeinsam mit Infos bezüglich der in dieser Anleitung verwendeten *Terminologie*. Für noch mehr Details und weitere *fachspezifische* Erklärungen müsstest du dich woanders umsehen. *Multisig* bedeutet, dass eine Transaktion mehrere Signaturen benötigt, bevor sie im Monero-Netzwerk eingereicht und ausgeführt werden kann. Anstelle eines einzigen Monero-Wallets, welches Transaktionen erstellt, signiert und absendet, hast du nun eine ganze Gruppe von Wallets, die zwecks Transaktion kollaborieren. In dieser Anleitung werden diese Wallets - oder die sie kontrollierenden Personen, wenn du es so präferierst - *autorisierte Unterzeichner* genannt. Je nach Form des genutzten Multisigs müssen zur Validierung einer Transaktion nicht **alle** der autorisierten Unterzeichner, sondern nur eine Teilmenge dieser signieren. Die entsprechende Anzahl (die kleiner oder gleich der Anzahl autorisierter Unterzeichner ist) wird als *erforderliche Unterzeichner* bezeichnet. Die üblicherweise genutzte Schreibweise ist *M/N*, wobei *M* für die Anzahl erforderlicher Unterzeichner und *N* für die Gesamtzahl autorisierter Unterzeichner steht. So wird bspw. die vermutlich nützlichste und beliebteste Multisig-Form als *2/3* geschrieben: Aus einer Gesamtsumme von **drei** autorisierten Unterzeichnern werden **zwei** beliebige Unterzeichner zur Validation einer Transaktion benötigt. Bei technisch "einfacheren" Coins wie Bitcoin und dessen Abspaltungen ist der Ablauf von Multisig-Transaktionen wie folgt: * Multisig-Wallets einrichten und die Multisig-Adresse herleiten * Multisig-Wallets/die Multisig-Adresse mit Guthaben ausstatten, sodass überhaupt etwas ausgegeben werden kann * So viele Multisig-Transaktionen durchführen, wie gewünscht Monero fügt dem eine Art weiteren Schritt hinzu, der gleichsam wichtig für die interne Buchhaltung ist. Einfach gesagt komplizieren all die Mechanismen, die Monero-Transaktionen wahrlich privat machen, doch so einiges und führen zu der Notwendigkeit des Austauschs von Informationen zwischen Wallets, um diese dazu zu befähigen, ein- wie ausgehende Transaktionen richtig zu verarbeiten. Das MMS nutzt den Begriff *syncing* ("Synchronisieren") für den Vorgang der Wiederherstellung der Betriebsbereitschaft, durch welchen Wallets nach dem Senden/Empfangen einer Transaktion auf neue Transaktionen vorbereitet werden. *multisig sync data* oder auch einfach *sync data* bezeichnet die Informationen, die dazu notwendigerweise ausgetauscht werden müssen. Die Schritte des Monero-Multisigs sehen also so aus: * Multisig-Wallets einrichten und die Multisig-Adresse herleiten * Multisig-Wallets/die Multisig-Adresse mit Guthaben ausstatten, sodass überhaupt etwas ausgegeben werden kann * Wallets erstmalig synchronisieren * Eine Multisig-Transaktion tätigen * Wallets erneut synchronisieren * Eine weitere Multisig-Transaktion tätigen und/oder Geld empfangen * Wallets ein weiteres Mal synchronisieren * ... Der Nutzen des MMS ist die Vereinfachung des Austauschs all dieser Datenpakete zwischen den Wallets. Außerdem wird Unterzeichnern mitgeteilt, in welchem Schritt des Arbeitsablaufs sie sich gerade befinden und was der nächste Schritt zum Fortfahren ist. ## Die Architektur des MMS Das MMS besteht im Grunde aus drei Teilen: * Einem Satz neuer Befehle im CLI-Wallet * Einer laufenden Instanz von PyBitmessage, die für den Computer, auf welchem das CLI-Wallet läuft, erreichbar ist und im Namen des Wallets Nachrichten transportiert * Internen Erweiterungen des Wallet-Codes, die pro Wallet eine neue `.mms`-Datei, die Nachrichten enthält, verwalten und mit PyBitmessage koppeln [PyBitmessage](https://bitmessage.org/wiki/Main_Page) ist das derzeit einzige unterstützte Nachrichtentransportprogramm; das MMS "interagiert" nicht mit anderen Systemen. Du kannst weder E-Mails noch irgendein anderes der unzähligen Kommunikationsprogramme da draußen verwenden. Wenn dir PyBitmessage nicht gefällt oder du es aus etwaigen Gründen nicht betreiben kannst, wird es dir nicht möglich sein, die aktuelle Version des MMS zu nutzen. Der Schöpfer des MMS hofft, dass du es zumindest ausprobierst: PyBitmessage ist komplett quelloffen, befindet sich in kontinuierlicher Entwicklung, hat genügend Nutzer, um den Nachrichtentransport beinahe jederzeit sicherzustellen und nimmt Privatsphäre sehr ernst - genau wie Monero. Ein zukünftiges MMS wird hoffentlich auf Moneros "eigenem", privaten Kommunikationssystem ([Kovri](https://kovri.io/)) aufgebaut; wir sind aber wahrscheinlich immer noch eine ganze Weile von der Veröffentlichung einer breit verwendbaren Kovri-Version entfernt. Kommunikationen des MMS sollten **sicher** sein: Das Bitmessage-System wird als sicher erachtet, da Informationen darüber, wer an wen Nachrichten sendet, komplett unsichtbar sind. Jeder Datenverkehr ist verschlüsselt. Für zusätzliche Sicherheit verschlüsselt das MMS auch alle Inhalte jeder Nachricht: Abgesehen vom Empfänger einer MMS-Nachricht kann niemand ihre Inhalte entschlüsseln und verwenden. Außerdem sind die Nachrichten signiert, wodurch der Empfänger sicher sein kann, dass sie von den richtigen Sendern stammen. ## Das Benutzererlebnis des MMS Um **ohne** MMS das "Benutzererlebnis" des Multisigs im CLI-Wallet zu erfahren, kannst du bspw. [hier](https://taiga.getmonero.org/project/rbrunner7-really-simple-multisig-transactions/wiki/22-multisig-in-cli-wallet) und [hier](https://taiga.getmonero.org/project/rbrunner7-really-simple-multisig-transactions/wiki/23-multisig-in-cli-wallet) nachsehen. Diese Seiten sind auch nützlich, um sich mit den Schritten von Multisig-Transaktionen im Allgemeinen vertraut zu machen. Das MMS wird weder die Schrittfolge ändern oder irgendeinen dieser Schritte überflüssig machen, aber es wird die Ausführung deutlich vereinfachen. Dabei wird das MMS dazu in der Lage sein, dir in den meisten Fällen automatisch und der Reihe nach die nächsten Schritte mitzuteilen. ### Ein Nachrichtensystem Der allgemeine Ansatz der MMS ist ziemlich **ähnlich zur E-Mail**: Wenn du Nachrichten umhersendest, agieren die MMS-Befehle im CLI-Wallet als dein E-Mail-Client und erlauben es dir damit, Nachrichten zu senden, zu empfangen und außerdem ein Verzeichnis abgespeicherter Nachrichten zu unterhalten - in etwa wie ein kombinierter Postein- und ausgang. Der Inhalt dieser Nachrichten umfasst natürlich all die Dinge, die zwischen den Wallets der Unterzeichner umhertransportiert werden müssen: Sätze von Schlüsseln, Synchronisationsdaten von Wallets und eben die zu signierenden und/oder im Netzwerk einzureichenden Transaktionen. PyBitmessage wird hierbei für den tatsächlichen Nachrichtentransport genutzt und übernimmt damit die Aufgabe deines E-Mail-Servers. Sobald die Einrichtung abgeschlossen ist, läuft das Senden und Empfangen von Nachrichten komplett automatisch ab und benötigt damit keinen manuellen Eingriff. Statt E-Mail-Adressen werden Monero-Adressen genutzt, welche die Ziele der Nachrichten kennen. Du schickst Nachrichten immer nur an autorisierte Unterzeichner: Mit einem 2/3-Multisig hast du bspw. lediglich zwei Partner, an die du etwas sendest. Wie bei E-Mails müssen Personen nicht gleichzeitig online sein, damit der Nachrichtentransport funktioniert: PyBitmessage speichert Nachrichten für bis zu zwei Tage und gibt dir damit Zeit, sie abzurufen. Im Allgemeinen ist dieser Ansatz ziemlich flexibel und robust: Solltest du zum Fortfahren Nachrichten mehrerer Unterzeichner benötigen, wartet das MMS, bis es all diese in seiner Liste empfangener Nachrichten findet. Hierbei ist die Empfangsreihenfolge unwichtig, wodurch ein ziemlich entspanntes Nutzererlebnis generiert wird. Wenn dir ein Unterzeichner mitteilt, dass eine bestimmte Nachricht nicht angekommen oder gar verschwunden ist, kannst du sie jederzeit erneut senden, indem du sie in der Nachrichtenliste auswählst - genauso, als würdest du in einer ähnlichen Situation eine E-Mail erneut absenden. ### Unterzeichner und Nachrichten Während also ein "normales" Monero-Wallet ohne MMS - einfach gesagt - drei Arten von Daten (Adressen, Konten und Transaktionen) managt, fügt das MMS zwei weitere hinzu: Unterzeichner und Nachrichten. Für jedes einzelne Multisig-Wallet managt das MMS eine separate Liste *autorisierter Unterzeichner*. Mit einem 2/3-Multisig umfasst eine solche Liste **drei** Einträge. Technisch gesehen repräsentiert jeder Eintrag ein Monero-Wallet, das zum Signieren von Multisig-Transaktionen verwendbare Schlüssel enthält. Konzeptuell gesehen ist es wohl einfacher, sich eine Gruppe von drei Leuten (etwa dich und zwei Partner) als ebendiese "autorisierten Unterzeichner" vorzustellen. (Häufig werden diese drei Wallets tatsächlich von drei verschiedene Menschen kontrolliert; dies ist aber natürlich nicht immer der Fall.) Das MMS unterhält außerdem eine einzelne Liste von *Nachrichten* pro Wallet, welche alle gesendeten und alle empfangenen Nachrichten enthält. Zwar ist die Liste autorisierter Unterzeichner in allen involvierten Wallets dieselbe, die Nachrichten unterscheiden sich jedoch. Je mehr autorisierte Unterzeichner vorhanden sind (die dir Nachrichten senden) und je länger du Transaktionen durchführst, desto mehr Nachrichten sammeln sich an. ## Das MMS erhalten Jetzt gerade, während des Verfassens dieser Anleitung (Jahresende 2018), ist das MMS nur als Teil des aktuellsten Monero-Codes (der `master`-Zweig in Moneros [GitHub-Repository](https://github.com/monero-project/monero)) verfügbar. Um es zu nutzen, musst du diesen Quellcode prüfen und eigenständig kompilieren. Das geht am einfachsten auf einem Linuxsystem. Mit dem nächsten Hardfork im Frühling 2019 wird das MMS zu einem integralen Bestandteil der Monero-Software: Du installierst Monero, du hast das MMS. Ein Wort der Warnung: Zur Zeit des Verfassens führt die Nutzung der aktuellsten Entwicklungsversion Moneros zu keinerlei Konflikten und Problemen mit jeglicher regulärer Versionssoftware und heruntergeladener Blockchain auf demselben System. Dies könnte sich aber in der Zwischenzeit von jetzt bis zum Hardfork - besonders um die Zeit des Hardforks herum - ändern. ## PyBitmessage installieren und einrichten Die Installation von PyBitmessage ist einfach: Du findest Links zu Downloads und Installationsanleitungen auf der [Seite des Bitmessage-Wiki](https://bitmessage.org/wiki/Main_Page). Dort sind Versionen für alle geläufigen, durch Monero unterstützten Betriebssysteme verfügbar: Linux, Windows und macOS. Führe das Programm nach dem Installieren aus, richte eine Bitmessage-Adresse für dich ein und notiere diese, da du sie später zum Einrichten deines Multisig-Wallets benötigen wirst. Mache dir keine Sorgen, wenn sich PyBitmessage nach dem ersten Start nicht gleich zum Bitmessage-Netzwerk zu verbinden scheint: Aufgrund des dezentralen Charakters dieses Netzwerks kann es bis zur ersten Verbindung eine ganze Weile dauern. Es scheint, als dauere dies häufig eine **halbe Stunde**. Ebenso kann das Senden der allerersten Nachricht an eine brandneue Bitmessage-Adresse einige Zeit - manchmal eine weitere halbe Stunde - dauern, weil hier ein Schlüsselaustausch involviert ist. Sobald dieser abgeschlossen ist, werden Nachrichten üblicherweise innerhalb weniger Minuten und manchmal schon nach Sekunden zugestellt. Du musst nicht mehr als eine Bitmessage-Adresse für dich einrichten. Du kannst problemlos mehrere Multisig-Wallets über eine **einzige** Adresse betreiben, weil das MMS die richtigen Nachrichten für die jeweils korrekten Wallets herausfiltert. Du kannst sogar dieselbe Adresse für "normale" Nachrichten verwenden; da das MMS schlicht jegliche Nachrichten, die nicht für ebenjenes gedacht sind, ignoriert, werden diese es nicht stören. Die vorkonfigurierte PyBitmessage-Installation ist in Verbindung mit dem MMS zunächst nicht einsatzbereit. Da es anderen Programmen standardmäßig die Verwendung seines APIs verwehrt, muss die entsprechende Berechtigung erst explizit erteilt werden (aus Sicherheitsgründen ergibt dies natürlich Sinn). Anleitungen bezüglich der **Freigabe des APIs** finden sich auf der [Bitmessage-Wiki-Seite zur "API reference"](https://bitmessage.org/wiki/API_Reference). Der hier gewählte Nutzername und das Passwort werden später als Befehlszeilenparameter für das CLI genutzt, damit der Log-in des MMS in PyBitmessage ermöglicht wird. ## Weitere PyBitmessage-Optimierungen Die aktuelle, offizielle Freigabeversion 0.6.3.2 verfügt über eine eingebaute [Dandelion++-Protokollerweiterung](https://arxiv.org/abs/1805.11060), die das Netzwerk gegenüber Angriffen, in welchen versucht wird, durch Verfolgen des Nachrichtenflusses Sender und Empfänger von Nachrichten auszumachen, verstärkt. Unglücklicherweise scheint irgendwo ein Bug zu existieren, der zu sehr unterschiedlichen und extrem langen Nachrichtenübertragungszeiten führen kann - beim Verwenden des MMS ist das ziemlich unerfreulich. Es besteht die Möglichkeit, Dandelion++ auszuschalten. Dies wird natürlich nicht empfohlen, kann für den Augenblick allerdings durchaus nützlich sein, um das MMS verwenden zu können: * Lokalisiere die PyBitmessage-Konfigurationsdatei `keys.dat` * Erstelle dort einen neuen, `[network]` genannten Abschnitt * Füge zu diesem neuen Abschnitt folgende Zeile hinzu: `dandelion = 0` * Starte PyBitmessage erneut Als "guter Bürger" möchtest du anderen Bitmessage-Nodes eventuell den Zugriff auf deinen Node ermöglichen. Dies erreichst du durch Öffnen des Ports 8444. Hintergrundinformationen darüber findest du im [Bitmessage-FAQ](https://bitmessage.org/wiki/FAQ). Damit dein Client funktioniert, ist dies aber nicht unbedingt notwendig. ## Befehlsübersicht des MMS Es gibt lediglich **einen** neuen Befehl im CLI-Wallet, der den Zugriff auf das MMS ermöglicht und - ganz zweckmäßig - die Bezeichnung `mms` trägt. Allerdings hat dieser Befehl eine ganze Zahl an Unterbefehlen, mit denen die verschiedenen Funktionen des MMS bedient werden. Hier ist eine Liste dieser Befehle; jeder Befehl hat aber auch im späteren Verlauf dieser Anleitung sein eigenes, detailliertes Kapitel. init MMS initialisieren und einstellen info Aktuelle MMS-Einstellung anzeigen signer Einen Unterzeichner durch ein Ein-Wort-Label, eine Transportadresse und eine Monero-Adresse bestimmen oder alle festgelegten Unterzeichner auflisten list Alle Nachrichten auflisten next Die nächste(n) potentielle(n) Multisig-bezogenen Aktion(en) gemäß Wallet-Status auswerten und wahlweise zeigen oder ausführen sync Erstellung von Multisig-Synchronisationsdaten ungeachtet des Wallet-Status, um nach besonderen Situationen, etwa Fehlern aufgrund "veralteter Daten", wiederherzustellen transfer Übertragung mit MMS-Unterstützung einleiten; Argumente sind identisch mit üblichen "transfer"-Befehlen, für Infos dort nachsehen delete Eine einzelne Nachricht durch Angabe ihrer ID löschen oder unter Verwendung von "all" alle Nachrichten löschen send Eine einzelne Nachricht durch Angabe ihrer ID versenden oder alle ausstehenden Nachrichten senden receive Unmittelbar auf zu empfangene Nachrichten überprüfen note Eine einzeilige, durch ihr Label gekennzeichnete Notiz als Nachricht an einen Unterzeichner senden oder alle ungelesenen Notizen anzeigen show Detaillierte Infos über eine einzelne Nachricht anzeigen export Den Inhalt einer Nachricht in eine Datei exportieren set Einstellungen festlegen; die einzige Option ist bislang 'auto-send' start_auto_config Den Auto-Config-Prozess im Wallet des Auto-Config-Managers durch Erstellen neuer Token starten auto_config Auto-Config unter Verwendung des vom Auto-Config-Manager erhaltenen Token starten stop_auto_config Jegliche Token löschen und Auto-Config-Prozess abbrechen send_signer_config Deine gesamte Unterzeichner-Konfiguration an alle anderen Unterzeichner senden Du erhältst die Liste der Befehle durch Erteilen des `help mms`-Befehls. Durch `help mms ` (bspw. `help mms next`) erhältst du Hilfestellung für einen bestimmten Unterbefehl. Alternativ kannst du `mms help ` nutzen, wenn dir das natürlicher erscheint. ## Ein Wallet zur Nutzung mit MMS einrichten ### Adressen und Labels Zwecks besserer Verständlichkeit hier einige grundlegende Fakten zum Adressieren von Unterzeichnern und Verweisen an ebendiese (bzw. ihre Wallets) via MMS: Wenn du ein neues Wallet erstellst, bekommt dieses (natürlich) seine eigene, einzigartige, öffentliche Monero-Adresse. Konfigurierst du das Wallet später für Multisig, **ändert** das Wallet seine öffentliche Adresse in die gemeinsame Multisig-Adresse, welche du mit allen anderen autorisierten Unterzeichnern teilst, ab. Das MMS nutzt über die gesamte Laufzeit des Wallets zum Adressieren die erste, "ursprüngliche", öffentliche Monero-Adresse, vor **und** nach dem Übergang zu Multisig. Es mag etwas verwirrend sein, dass ein Wallet irgendwie **zwei** öffentliche Adressen haben sollte; sobald die ursprüngliche Adresse in deine Unterzeichner-Einstellung integriert ist, musst du nicht mehr wirklich darüber nachdenken. Das MMS verwendet *Labels*, die es dir erlauben, dich selbst und andere Unterzeichner zu benennen. Diese Labels nutzt das MMS, wenn es an Unterzeichner verweist. (In solcherlei Befehlen wäre es ziemlich mühselig, Monero- oder Bitmessage-Adressen zu verwenden.) Labels müssen aus einem Wort bestehen und innerhalb eines einzelnen Wallets einzigartig sein. In einem späteren Beispiel innerhalb dieser Anleitung werden für ein 2/2-Multisig die Labels `alice` und `bob` genutzt. ### CLI-Wallet starten Wenn du das CLI-Wallet zum Gebrauch mit dem MMS öffnest, existieren zwei neue (optionale) Befehlszeilenparameter, um zu PyBitmessage zu verbinden: --bitmessage-address Use PyBitmessage instance at URL --bitmessage-login Specify as username:password for PyBitmessage API Wenn du auf dem gleichen Gerät sowohl PyBitmessage als auch das CLI-Wallet betreibst, ist die Voreinstellung des ersten Parameters ausreichend und es sollte nicht notwendig sein, eine andere Einstellung vorzunehmen. Wenn diese Voreinstellung trotz lokalen Betriebs nicht gefunden wird, kannst du versuchen, `http://localhost` oder `http://127.0.0.1` als Argument für den ersten Parameter zu verwenden. Um dich zum richtigen Netzwerk zu verbinden, benötigst du daneben natürlich entweder `--testnet` oder `--stagenet`. Auch der Gebrauch von `--log-level 0` könnte nützlich sein: Das Wallet wird hierdurch angewiesen, detaillierte Infos in seine Logdatei zu schreiben, welche zum Finden von Bugs oder Problemen innerhalb des MMS hilfreich sein könnten. Eine komplette Befehlszeile für das CLI-Wallet könnte also so aussehen: ./monero-wallet-cli --testnet --bitmessage-login mmstest:p4ssw0rd --log-level 0 ### MMS initialisieren Nach dem Erstellen eines neuen Wallets musst du es zunächst für den Gebrauch mit dem MMS vorbereiten, da es dir ohne diesen essenziellen ersten Schritt nicht möglich sein wird, jegliche MMS-Funktionen zu nutzen. Der entsprechende Befehl lautet `mms init`: mms init / `own_transport_address` ist die Bitmessage-Adresse, welche du in deinem eigenen PyBitmessage-Programm eingestellt hast. Ein kompletter `init`-Befehl könnte wie folgt aussehen: mms init 2/2 alice BM-2cUVEbbb3H6ojddYQziK3RafJ5GPcFQv7e Nutze diesen `init`-Befehl nur **ein Mal**: Eine zweite Ausführung würde das MMS durch Löschen jeglicher Unterzeichner-Informationen und Nachrichten neu initialisieren; abgesehen von besonderen Umständen ist dies nicht gewünscht. Wenn du einen MMS-Test schnellstmöglich durchführen möchtest, kannst du dein Wallet anweisen, das Passwort nur im technisch unbedingt notwendigen Fall abzufragen. Außerdem kannst du dem MMS befehlen, jede erstellte Nachricht direkt und ohne vorheriges Anzeigen abzusenden: set ask-password 0 mms set auto-send 1 (Beide Einstellungen sind in dem in dieser Anleitung angeführten 2/2-Multisig-Beispiel aktiviert.) ### Unterzeichner einrichten Das MMS muss drei Infos eines jeden Unterzeichners wissen: * Das Ein-Wort-*Label*, um an diesen Unterzeichner weiterzuleiten * Die *Transportadresse*, was derzeit und bis zur Unterstützung anderer Nachrichtentransportsysteme die Bitmessage-Adresse ist * Die *Monero-Adresse*, sprich die *ursprüngliche* Monero-Adresse des Wallets (Siehe auch das vorhergehende Kapitel *Adressen und Labels*.) Du musst die Unterzeichner nicht erst erstellen: Nach dem `mms init`-Befehl sind die bereits "da", obgleich bisher - mit Ausnahme von dir selbst - ohne jegliche Info. Die Befehle zum Einstellen der Unterzeichnerinformationen beziehen sich via Nummer auf die jeweiligen Unterzeichner, von eins bis hin zur Gesamtzahl der autorisierten Unterzeichner. Im folgenden 2/2-Multisig-Beispiel sind das also die Zahlen "1" und "2" für Unterzeichner mit den Namen "Alice" und "Bob" und damit den Labeln *alice* und *bob*. Nach dem obigen, beispielhaftem Ausführen des `init`-Befehls würde die Unterzeichnerliste also so aussehen: # Label Transport Address Auto-Config Token Monero Address 1 alice BM-2cUVEbbb3H6ojddYQziK3RafJ5GPcFQv7e A1VRwm8HT8CgA5bSULDZKggR9Enc9enhWHNJuDXDK4wDD6Rwha3W7UG5Wu3YGwARTXdPw1AvFSzoNPBdiKfpEYEQP1b5cCH 2 Beachte, dass Unterzeichner Nr. 1 immer "du" bist, also dein eigenes Label, deine Transport- und deine Monero-Adresse. In Alice' Unterzeichnerliste wird Alice selbst als Nr. 1 und Bob als Nr. 2 aufgeführt sein. In Bobs Wallet wäre es dagegen genau umgekehrt. Zum Vervollständigen der Unterzeichnerinformationen gibt es **drei Wege**: Du kannst diese manuell eingeben oder den vom MMS angebotenen Auto-Config-Vorgang (oder dessen "halbautomatische" Variante) nutzen. Bei 2/2 macht dies wohl keinen großen Unterschied bezüglich des Arbeitsaufwands, mit höheren Anzahlen von Unterzeichnern ist Auto-Config jedoch leichter und verlässlicher. Ein Vorteil von Auto-Config ist aufgrund der Nutzung von PyBitmessage in jedem Fall ein sicherer Adressentransport. Wähle also **eine** Methode aus den drei folgenden Kapiteln (*Unterzeichner manuell einrichten*, *Auto-Config* und *Unterzeichnerkonfiguration senden*) aus: ### Unterzeichner manuell einrichten Zur manuellen Eingabe der Unterzeichnerinformationen und zum Anzeigen der Unterzeichnerliste wird der Befehl `mms signer` ausgeführt: mms signer [