Titel: Multisig-Tutorial: Eine Schritt-für-Schritt-Anleitung zur sicheren Verwaltung von Bitcoin-Geldern Die Welt der Kryptowährungen ist reich an Möglichkeiten, aber auch an Herausforderungen, insbesondere wenn es um die Sicherheit der digitalen Vermögenswerte geht. Eine Methode, die sich als besonders effektiv zur Erhöhung der Sicherheit herausgestellt hat, ist das Multisignatur-Verfahren, oft abgekürzt als "Multisig". In diesem Artikel werden wir beleuchten, was Multisig ist, warum es wichtig ist und wie man ein Multisig-Wallet mit Bitcoin Core erstellt, unter Berücksichtigung der neusten Entwicklungen und Best Practices. Was ist Multisig? Bei Multisig handelt es sich um eine Wallet-Technologie, die mehrere Schlüssel benötigt, um eine Transaktion zu signieren. Dies bedeutet, dass nicht eine einzige Person, sondern mehrere Parteien (Co-Signer) an der Genehmigung und Durchführung von Transaktionen beteiligt sind.
Diese Technik erhöht die Sicherheit erheblich, da ein Angreifer mehrere Schlüssel benötigen würde, um unbefugt auf das Wallet zuzugreifen. Dies ist besonders nützlich für Unternehmen oder Gruppen von Personen, die gemeinsame finanzielle Verantwortlichkeiten haben. Durch die Implementierung von Multisig können sie die Kontrolle über ihre Bitcoin-Investitionen verteilen und so das Risiko eines Verlusts verringern. Warum ein Multisig-Wallet verwenden? Es gibt mehrere Gründe, warum die Verwendung eines Multisig-Wallets für die Verwaltung von Bitcoin-Geldern sinnvoll ist: 1. Erhöhte Sicherheit: Da mehrere Schlüssel benötigt werden, ist es für einen Angreifer nahezu unmöglich, auf das Wallet zuzugreifen, selbst wenn er einen Schlüssel erlangt.
2. Undurchdringliche Transaktionen: Um eine Transaktion zu genehmigen, müssen alle beteiligten Parteien zustimmen. Dies verringert das Risiko unautorisierter Änderungen. 3. Flexibilität: Multisig kann angepasst werden, um unterschiedliche Anforderungen zu erfüllen.
Zum Beispiel kann ein 2-von-3-Modell eingerichtet werden, bei dem zwei von drei Co-Signern eine Transaktion genehmigen müssen. 4. Transparenz: In einem Geschäftsumfeld ermöglicht Multisig allen Beteiligten zu sehen, welche Transaktionen genehmigt und ausgeführt werden, was die Verantwortung erhöht. Das Erstellen eines Multisig-Wallets mit Bitcoin Core Im Folgenden finden Sie eine Schritt-für-Schritt-Anleitung zur Erstellung eines Multisig-Wallets mit Bitcoin Core. Wir werden die Signet-Testumgebung verwenden, die es Entwicklern ermöglicht, Transaktionen zu testen, ohne echtes Geld zu riskieren.
Schritt 1: Bitcoin Node starten Zunächst müssen Sie einen Bitcoin-Knoten auf dem Signet-Netzwerk starten. Dies geschieht mit dem folgenden Befehl: ``` ./build/src/bitcoind -signet -daemon ``` Schritt 2: Wallets erstellen Für ein 2-von-3-Multisig benötigen wir drei Wallets. Diese Wallets sollten vom Typ "Descriptor" sein, damit wir die Wallet-Descriptors abrufen können. Verwenden Sie den folgenden Befehl, um die Teilnehmer-Wallets zu erstellen: ``` for ((n=1;n<=3;n++)) do .
/build/src/bitcoin-cli -signet createwallet \"participant_${n}\" done ``` Schritt 3: Extrahieren der xpubs Nachdem die Wallets erstellt wurden, müssen wir die xpub (Extended Public Key) jeder Wallet extrahieren. Dies erfolgt mit dem Befehl `listdescriptors`: ``` declare -A xpubs for ((n=1;n<=3;n++)) do xpubs[\"internal_xpub_${n}\"]=$(./build/src/bitcoin-cli -signet -rpcwallet=\"participant_${n}\" listdescriptors | jq '.descriptors | [.[] | select(.
desc | startswith(\"wpkh\") and contains(\"/1/*\"))][0] | .desc' | grep -Po '(?<=\\().*(?=\\))') xpubs[\"external_xpub_${n}\"]=$(./build/src/bitcoin-cli -signet -rpcwallet=\"participant_${n}\" listdescriptors | jq '.descriptors | [.
[] | select(.desc | startswith(\"wpkh\") and contains(\"/0/*\") )][0] | .desc' | grep -Po '(?<=\\().*(?=\\))') done ``` Um sicherzustellen, dass die xpubs korrekt erstellt wurden, können wir den folgenden Befehl verwenden, um sie auszugeben. Schritt 4: Definieren der Multisig-Descriptors Jetzt definieren wir die externen und internen Multisig-Descriptors.
Dies erfolgt durch die Erstellung einer JSON-Datenstruktur: ``` external_desc=\"wsh(sortedmulti(2,${xpubs[\"external_xpub_1\"]},${xpubs[\"external_xpub_2\"]},${xpubs[\"external_xpub_3\"]}))\" internal_desc=\"wsh(sortedmulti(2,${xpubs[\"internal_xpub_1\"]},${xpubs[\"internal_xpub_2\"]},${xpubs[\"internal_xpub_3\"]}))\" ``` Schritt 5: Erstellen des Multisig-Wallets Um das Multisig-Wallet zu erstellen, müssen wir zunächst ein leeres Wallet ohne Schlüssel anlegen: ``` ./build/src/bitcoin-cli -signet -named createwallet wallet_name=\"multisig_wallet_01\" disable_private_keys=true blank=true ``` Anschließend importieren wir die zuvor definierten Descriptors: ``` ./build/src/bitcoin-cli -signet -rpcwallet=\"multisig_wallet_01\" importdescriptors \"$multisig_desc\" ``` Schritt 6: Wallet finanzieren Bevor Transaktionen ausgeführt werden können, müssen wir das Wallet mit Test-Geld aufladen. Dies geschieht über die Signet Faucet: ``` receiving_address=$(./build/src/bitcoin-cli -signet -rpcwallet=\"multisig_wallet_01\" getnewaddress) .
/contrib/signet/getcoins.py -c ./build/src/bitcoin-cli -a $receiving_address ``` Schritt 7: Erstellen einer PSBT Um eine Transaktion zu erstellen, müssen wir eine Partially Signed Bitcoin Transaction (PSBT) erstellen. Dies geschieht mit dem `walletcreatefundedpsbt` Befehl: ``` funded_psbt=$(./build/src/bitcoin-cli -signet -named -rpcwallet=\"multisig_wallet_01\" walletcreatefundedpsbt outputs=\"{\\\"$destination_addr\\\": $amount}\" | jq -r '.
psbt') ``` Schritt 8: Signieren der PSBT Die PSBT muss nun von den Co-Signern signiert werden. Jeder Co-Signer verwendet den `walletprocesspsbt` Befehl: ``` psbt_1=$(./build/src/bitcoin-cli -signet -rpcwallet=\"participant_1\" walletprocesspsbt $funded_psbt | jq '.psbt') psbt_2=$(./build/src/bitcoin-cli -signet -rpcwallet=\"participant_2\" walletprocesspsbt $funded_psbt | jq '.
psbt') ``` Schritt 9: Kombinieren der PSBTs Nachdem alle Co-Signer ihre Unterschriften geleistet haben, werden die beiden PSBTs mit dem `combinepsbt` Befehl zusammengefügt: ``` combined_psbt=$(./build/src/bitcoin-cli -signet combinepsbt \"[$psbt_1, $psbt_2]\") ``` Schritt 10: Finalisieren und Senden der Transaktion Schließlich wird die PSBT mit dem `finalizepsbt` Befehl finalisiert und die Transaktion kann gesendet werden: ``` finalized_psbt_hex=$(./build/src/bitcoin-cli -signet finalizepsbt $combined_psbt | jq -r '.hex') ./build/src/bitcoin-cli -signet sendrawtransaction $finalized_psbt_hex ``` Fazit Die Verwendung eines Multisig-Wallets ist eine der sichersten Methoden, um Bitcoin zu verwalten.
Mit den richtigen Werkzeugen und einem soliden Verständnis für den Prozess können Benutzer ihre digitalen Vermögenswerte effektiv schützen und gleichzeitig die Kontrolle über ihre Finanzen bewahren. Das Multisig-Verfahren bietet einen starken Schutz gegen Diebstahl und unautorisierte Transaktionen, was es zu einer wertvollen Strategie für Einzelpersonen und Gruppen macht, die in der Welt der Kryptowährungen tätig sind.