ÜbersichtAusgangssituationGrundlagenUmsetzung mit drei TeilnehmernUmsetzung mit drei Teilnehmern und SchiedsrichterNützliche Linkstl;drAusgangssituation Nachdem es im Kursverlaufs-Thread
immer mal wieder zu der Situation kommt, dass verschiedene Beiträger mit ihren Chartanalysen, Kursphantasien, Wutausbrüchen und FUD-Trollereien am Ende sind, hat es sich als hilfreich erwiesen, einfach einen kleinen Wettspaß zu unternehmen - und auf zukünftige Kurs-Entwicklungen (oder sonstige Ereignisse der Kryptowelt) eine Wette abzuschließen. Frei nach dem Motto:
put your money where your mouth is.
Meistens verlaufen solche Wetten unkompliziert, manchmal münden sie in
umfänglicher Großzügigkeit, zuweilen kommt es aber auch zu Verwerfungen - seien es
nicht hinreichend definierte Wettbedingungen oder
bewusste Täuschungsmanöver gänzlich Unbeteiligter.
Dieser Thread hat deshalb das Ziel, einwenig drüber nachzudenken, wie man Wetten im Forum besser formalisieren, dabei Bitcoin-Funktionalitäten sinnvoll nutzen und auch noch etwas über smarte Verträge, die durch das Bitcoin-Protokoll ermöglicht werden, lernen kann. Hierzu gab es schon
hier,
da und
da Umsetzungen, wir fangen also nicht bei Null an.
GrundlagenWetten sind ideale Anwendungsfälle für
Smart Contracts, sofern sich sämtliche Wettbedingungen und Auszahlungsmodalitäten in einem
Algorithmus abbilden lassen, der automatisch die Erfüllungsbedingungen des geschlossenen Vertrages überprüfen und die resultierenden Auszahlungen an die Wettbeteiligten zum vertraglich vereinbarten Zeitpunkt vornehmen kann. Das
Bitcoin-Protokoll kann eine solche Abbildung nicht leisten, es verfügt jedoch über eine Teilfunktionalität, sofern man sich einer
Multi-Signature-Adresse bedient.
Um Transaktionen von einer Multi-Signature-Adresse durchzuführen, muss eine zuvor definierte Anzahl von Beteiligten (n von m) mit ihren passenden Private-Keys die Transaktion signieren. Für eine Wette hat dies den Vorteil, dass das Vertrauen in deren Einlösung über mehrere Stellen verteilt wird und nicht allein abhängig vom Willen und der Fähigkeit jedes einzelnen Wett-Teilnehmers oder eines
Escrows ist. Insofern formalisiert die Verwendung von Multi-Signature-Adressen den
Auszahlungsteil der geschlossenen Wette, kann aber nicht den
Bedingungsteil derselben realisieren.
Für die Wettpraxis bedeutet dies: Die
Wettbedingungen müssen natürlichsprachlich
möglichst eindeutig formuliert, die
Auszahlungsbedingungen formalisiert werden. Herrscht Einigkeit über die Bedingungen, müssen sich die Teilnehmer zu diesen bekennen. Dies geschieht durch Bekanntmachung des Public-Keys jedes Teilnehmers. Stehen alle Public-Keys sämtlicher Teilnehmer zur Verfügung, generieren sie eine Multi-Signature-Adresse auf dieser Grundlage. Anschließend leistet jeder Teilnehmer eine Transaktion des Wetteinsatzes an diese Adresse.
Umsetzung mit drei TeilnehmernDie nachfolgende Beispielumsetzung nutzt die
API von Bitcoin Core. Parallel wird das Vorgehen über die
Python-Konsole von Electrum dokumentiert sowie die Nutzung der
Pybitcointools. Ebenfalls wird auf die Nutzung der Online-Implementierung von
Coinb.in verwiesen, die recht praktisch ist, zum Signieren jedoch nicht bzw. nur offline verwendet werden sollte. Im
BitcoinBlog findet sich eine Beschreibung zur Nutzung von
Electrum. Die Multi-Signature-Umsetzung in Electrum basiert auf der Verwendung von
Master-Public- und Master-Private-Keys nach BIP32. Erstellt würde also ein gemeinsames Wallet mit einer beliebigen Anzahl von Adressen für alle Teilnehmer. Das Verfahren weicht insofern von der nachfolgend beschriebenen Umsetzung mit den Keys der Einzeladressen ab.
Schritt 1: Public-Keys bereitstellenJeder Teilnehmer wählt eine (am besten bislang nicht verwendete)
Adresse, über deren
Private-Key er verfügt, und stellt den
Public-Key dieser allen anderen Beteiligten zur Verfügung. Die Adressen dienen allein zum Signieren der Auszahlung in Schritt 4, nicht der Übersendung oder dem Halten der Wetteinsätze:
Input Teilnehmer 1validateaddress 15p1QoP2VwHUU2PaFtgEAGuU7Y3p9P59Zd
getpubkeys("15p1QoP2VwHUU2PaFtgEAGuU7Y3p9P59Zd")
pybtctool privtopub {myprivkey}
Output Teilnehmer 102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca
Input Teilnehmer 2validateaddress 14igQFDVN86HQ2tdo5QTqjTVUhz7Cjb2jV
getpubkeys("14igQFDVN86HQ2tdo5QTqjTVUhz7Cjb2jV")
pybtctool privtopub {myprivkey}
Output Teilnehmer 2031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b14
Input Teilnehmer 3validateaddress 1KtCSrphdSHVv9yumCGgecju6mBb2isMTR
getpubkeys("1KtCSrphdSHVv9yumCGgecju6mBb2isMTR")
pybtctool privtopub {myprivkey}
Output Teilnehmer 302a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d9
Bei Nutzung von Electrum kann der Public-Key auch über die Adressliste eingesehen werden. Dazu die Adresse markieren und im Kontextmenü
Details auswählen.
Schritt 2: Reedem-Script/Multi-Signature-Adresse generierenAus den Public-Keys der Teilnehmer sowie den Signierungs-Bedingungen (hier 2 von 3) wird ein Reedem-Script generiert. Der
Hash des Scripts ist die Multi-Signature-Adresse, auf die die Wetteinsätze im Schritt 3 übertragen werden (
P2SH) :
Inputcreatemultisig 2 '["02b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca", "031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b14", "02a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d9"]'
createmultisig(2, ["02b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca", "031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b14", "02a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d9"])
pybtctool mk_multisig_script 02b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca 031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b14 02a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d9 2 3
pybtctool scriptaddr 522102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d953ae
Output3ER5NMP4qhEowpf8F1Lwrtyw99GmfJs1my
522102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d953ae
Alternativ kann das
MultiSig-Formular von Coinb.in verwendet werden. Ein kurzer Check des Redeem-Scripts zeigt:
Inputdecodescript 522102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d953ae
Output{
"asm": "2 02b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca 031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b14 02a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d9 3 OP_CHECKMULTISIG",
"reqSigs": 2,
"type": "multisig",
"addresses": [
"15p1QoP2VwHUU2PaFtgEAGuU7Y3p9P59Zd",
"14igQFDVN86HQ2tdo5QTqjTVUhz7Cjb2jV",
"1KtCSrphdSHVv9yumCGgecju6mBb2isMTR"
],
"p2sh": "3ER5NMP4qhEowpf8F1Lwrtyw99GmfJs1my"
}
Electrum und Pybitcointools scheinen keine Möglichkeit vorzusehen, Redeem-Scripts zu decodieren. Es kann alternativ auf die
Validierungsfunktion von Coinb.in zurückgegriffen werden.
Schritt 3: Einzahlung der WetteinsätzeJeder Teilnehmer überträgt den vereinbarten Betrag auf die in Schritt 2 generierte Multi-Signature-Adresse (für dieses Beispiel drei Mal 0.001 BTC innerhalb einer Transaktion):
f3fdded77a5adf6fd1e7d2dcabb3cdb22f687226e61b111f29ed8226d846b859Schritt 4: Erstellung der Transaktion an den GewinnerNach Feststellung des Wettergebnisses wird eine Transaktion an die Zieladresse des Gewinners erstellt. Zur Veranschaulichung gehen 0.00275 BTC an den Gewinner, 0.00025 BTC werden als Transaktionsgebühr verwendet:
Inputcreaterawtransaction '[{"txid":"f3fdded77a5adf6fd1e7d2dcabb3cdb22f687226e61b111f29ed8226d846b859", "vout":2}, {"txid":"f3fdded77a5adf6fd1e7d2dcabb3cdb22f687226e61b111f29ed8226d846b859", "vout":0}, {"txid":"f3fdded77a5adf6fd1e7d2dcabb3cdb22f687226e61b111f29ed8226d846b859", "vout":1}]' '{"3Gp2Jhyy5N5dTqPkXjhSS8vmKttSysNnMK":0.00275}'
pybtctool mktx f3fdded77a5adf6fd1e7d2dcabb3cdb22f687226e61b111f29ed8226d846b859:2 f3fdded77a5adf6fd1e7d2dcabb3cdb22f687226e61b111f29ed8226d846b859:0 f3fdded77a5adf6fd1e7d2dcabb3cdb22f687226e61b111f29ed8226d846b859:1 3Gp2Jhyy5N5dTqPkXjhSS8vmKttSysNnMK:275000
Output010000000359b846d82682ed291f111be62672682fb2cdb3abdcd2e7d16fdf5a7ad7defdf30000000000ffffffff59b846d82682ed291f111be62672682fb2cdb3abdcd2e7d16fdf5a7ad7defdf30100000000ffffffff59b846d82682ed291f111be62672682fb2cdb3abdcd2e7d16fdf5a7ad7defdf30200000000ffffffff01383204000000000017a914a5dd1e12f6be37452b2488620cbbb16931cdbbfe8700000000
Alternativ kann das
Transaktions-Formular von Coinb.in verwendet werden.
Schritt 5: Signierung der Transaktion an den GewinnerDer sicherheitskritische Teil der Umsetzung ist die Signierung der Transaktion durch zwei von drei der Teilnehmer. Hierzu dienen die Private-Keys der in Schritt 1 bereitgestellten Adressen. Zunächst signiert der Teilnehmer 1 die in Schritt 4 erstellte Transaktion:
Input Teilnehmer 1signrawtransaction '010000000359b846d82682ed291f111be62672682fb2cdb3abdcd2e7d16fdf5a7ad7defdf30000000000ffffffff59b846d82682ed291f111be62672682fb2cdb3abdcd2e7d16fdf5a7ad7defdf30100000000ffffffff59b846d82682ed291f111be62672682fb2cdb3abdcd2e7d16fdf5a7ad7defdf30200000000ffffffff01383204000000000017a914a5dd1e12f6be37452b2488620cbbb16931cdbbfe8700000000' '[{"txid":"f3fdded77a5adf6fd1e7d2dcabb3cdb22f687226e61b111f29ed8226d846b859", "vout":2, "scriptPubKey":"a914a5dd1e12f6be37452b2488620cbbb16931cdbbfe87", "redeemScript":"522102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d953ae"}, {"txid":"f3fdded77a5adf6fd1e7d2dcabb3cdb22f687226e61b111f29ed8226d846b859", "vout":0, "scriptPubKey":"a914a5dd1e12f6be37452b2488620cbbb16931cdbbfe87", "redeemScript":"522102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d953ae"}, {"txid":"f3fdded77a5adf6fd1e7d2dcabb3cdb22f687226e61b111f29ed8226d846b859", "vout":1, "scriptPubKey":"a914a5dd1e12f6be37452b2488620cbbb16931cdbbfe87", "redeemScript":"522102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d953ae"}]' '["{myprivkey}"]
Output010000000359b846d82682ed291f111be62672682fb2cdb3abdcd2e7d16fdf5a7ad7defdf302000000b500483045022100db7111070928b3e2133ce8e892ae0a4bd4f60a09909922a666b63aa2ceecc687022003de0e357abdb54f31b959921cd750d1f20a71e66e4bc6d23d2aed273e3f6c5e014c69522102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d953aeffffffff59b846d82682ed291f111be62672682fb2cdb3abdcd2e7d16fdf5a7ad7defdf300000000b500483045022100c0b8087f88d01fddfc16ca725cdc94e3397a6aabc82048376f7422efd86d11f502200b328883bd85d8bf014da31c71a447620702894cdb424a30ada27d555d9a06c1014c69522102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d953aeffffffff59b846d82682ed291f111be62672682fb2cdb3abdcd2e7d16fdf5a7ad7defdf301000000b40047304402205978fa53489429eba7bad690550b0b32bc24e44fb08c1d5ba365d524405ed8ef02203abb5f6b06882af826b84ca9946e9f4d30c7287059e6cedf1ba510d637741e78014c69522102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d953aeffffffff01383204000000000017a914a5dd1e12f6be37452b2488620cbbb16931cdbbfe8700000000
Anschließend signiert Teilnehmer 3 analog die von Teilnehmer 1 signierte Transaktion:
Output010000000359b846d82682ed291f111be62672682fb2cdb3abdcd2e7d16fdf5a7ad7defdf302000000fdfe0000483045022100db7111070928b3e2133ce8e892ae0a4bd4f60a09909922a666b63aa2ceecc687022003de0e357abdb54f31b959921cd750d1f20a71e66e4bc6d23d2aed273e3f6c5e01483045022100f1e18083a370bb4267e41d01fa791af4f2d1ded91af51490301fe69d8ec7c2ac02204a375b1aa9d4a1573ffbe8a3b53c4c5f3d3c353304952881a3a545be7ecc229f014c69522102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d953aeffffffff59b846d82682ed291f111be62672682fb2cdb3abdcd2e7d16fdf5a7ad7defdf300000000fdfd0000483045022100c0b8087f88d01fddfc16ca725cdc94e3397a6aabc82048376f7422efd86d11f502200b328883bd85d8bf014da31c71a447620702894cdb424a30ada27d555d9a06c10147304402203bf222cb3a662f99aed033696e79361c6a776991d1722dc730aa15fd183f38b2022005d821a34759606fcb689b7d8509ebaedd33d479a4cc899bdc7041c608e8b932014c69522102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d953aeffffffff59b846d82682ed291f111be62672682fb2cdb3abdcd2e7d16fdf5a7ad7defdf301000000fdfd000047304402205978fa53489429eba7bad690550b0b32bc24e44fb08c1d5ba365d524405ed8ef02203abb5f6b06882af826b84ca9946e9f4d30c7287059e6cedf1ba510d637741e7801483045022100dcdb492f0ffc5ee4c72bf9523a8efbf90be10678f87d07c795994a63faefd29f02206509209d474acacd78ac8c217dbebd7e132f3b1dae92dcb0e3cb931e589602db014c69522102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d953aeffffffff01383204000000000017a914a5dd1e12f6be37452b2488620cbbb16931cdbbfe8700000000
Ein kurzer Check der von zwei Teilnehmern signierten Transaktion an den Gewinner zeigt:
Inputdecoderawtransaction 010000000359b846d82682ed291f111be62672682fb2cdb3abdcd2e7d16fdf5a7ad7defdf302000000fdfe0000483045022100db7111070928b3e2133ce8e892ae0a4bd4f60a09909922a666b63aa2ceecc687022003de0e357abdb54f31b959921cd750d1f20a71e66e4bc6d23d2aed273e3f6c5e01483045022100f1e18083a370bb4267e41d01fa791af4f2d1ded91af51490301fe69d8ec7c2ac02204a375b1aa9d4a1573ffbe8a3b53c4c5f3d3c353304952881a3a545be7ecc229f014c69522102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d953aeffffffff59b846d82682ed291f111be62672682fb2cdb3abdcd2e7d16fdf5a7ad7defdf300000000fdfd0000483045022100c0b8087f88d01fddfc16ca725cdc94e3397a6aabc82048376f7422efd86d11f502200b328883bd85d8bf014da31c71a447620702894cdb424a30ada27d555d9a06c10147304402203bf222cb3a662f99aed033696e79361c6a776991d1722dc730aa15fd183f38b2022005d821a34759606fcb689b7d8509ebaedd33d479a4cc899bdc7041c608e8b932014c69522102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d953aeffffffff59b846d82682ed291f111be62672682fb2cdb3abdcd2e7d16fdf5a7ad7defdf301000000fdfd000047304402205978fa53489429eba7bad690550b0b32bc24e44fb08c1d5ba365d524405ed8ef02203abb5f6b06882af826b84ca9946e9f4d30c7287059e6cedf1ba510d637741e7801483045022100dcdb492f0ffc5ee4c72bf9523a8efbf90be10678f87d07c795994a63faefd29f02206509209d474acacd78ac8c217dbebd7e132f3b1dae92dcb0e3cb931e589602db014c69522102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d953aeffffffff01383204000000000017a914a5dd1e12f6be37452b2488620cbbb16931cdbbfe8700000000
deserialize("010000000359b846d82682ed291f111be62672682fb2cdb3abdcd2e7d16fdf5a7ad7defdf302000000fdfe0000483045022100db7111070928b3e2133ce8e892ae0a4bd4f60a09909922a666b63aa2ceecc687022003de0e357abdb54f31b959921cd750d1f20a71e66e4bc6d23d2aed273e3f6c5e01483045022100f1e18083a370bb4267e41d01fa791af4f2d1ded91af51490301fe69d8ec7c2ac02204a375b1aa9d4a1573ffbe8a3b53c4c5f3d3c353304952881a3a545be7ecc229f014c69522102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d953aeffffffff59b846d82682ed291f111be62672682fb2cdb3abdcd2e7d16fdf5a7ad7defdf300000000fdfd0000483045022100c0b8087f88d01fddfc16ca725cdc94e3397a6aabc82048376f7422efd86d11f502200b328883bd85d8bf014da31c71a447620702894cdb424a30ada27d555d9a06c10147304402203bf222cb3a662f99aed033696e79361c6a776991d1722dc730aa15fd183f38b2022005d821a34759606fcb689b7d8509ebaedd33d479a4cc899bdc7041c608e8b932014c69522102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d953aeffffffff59b846d82682ed291f111be62672682fb2cdb3abdcd2e7d16fdf5a7ad7defdf301000000fdfd000047304402205978fa53489429eba7bad690550b0b32bc24e44fb08c1d5ba365d524405ed8ef02203abb5f6b06882af826b84ca9946e9f4d30c7287059e6cedf1ba510d637741e7801483045022100dcdb492f0ffc5ee4c72bf9523a8efbf90be10678f87d07c795994a63faefd29f02206509209d474acacd78ac8c217dbebd7e132f3b1dae92dcb0e3cb931e589602db014c69522102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d953aeffffffff01383204000000000017a914a5dd1e12f6be37452b2488620cbbb16931cdbbfe8700000000")
pybtctool deserialize 010000000359b846d82682ed291f111be62672682fb2cdb3abdcd2e7d16fdf5a7ad7defdf302000000fdfe0000483045022100db7111070928b3e2133ce8e892ae0a4bd4f60a09909922a666b63aa2ceecc687022003de0e357abdb54f31b959921cd750d1f20a71e66e4bc6d23d2aed273e3f6c5e01483045022100f1e18083a370bb4267e41d01fa791af4f2d1ded91af51490301fe69d8ec7c2ac02204a375b1aa9d4a1573ffbe8a3b53c4c5f3d3c353304952881a3a545be7ecc229f014c69522102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d953aeffffffff59b846d82682ed291f111be62672682fb2cdb3abdcd2e7d16fdf5a7ad7defdf300000000fdfd0000483045022100c0b8087f88d01fddfc16ca725cdc94e3397a6aabc82048376f7422efd86d11f502200b328883bd85d8bf014da31c71a447620702894cdb424a30ada27d555d9a06c10147304402203bf222cb3a662f99aed033696e79361c6a776991d1722dc730aa15fd183f38b2022005d821a34759606fcb689b7d8509ebaedd33d479a4cc899bdc7041c608e8b932014c69522102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d953aeffffffff59b846d82682ed291f111be62672682fb2cdb3abdcd2e7d16fdf5a7ad7defdf301000000fdfd000047304402205978fa53489429eba7bad690550b0b32bc24e44fb08c1d5ba365d524405ed8ef02203abb5f6b06882af826b84ca9946e9f4d30c7287059e6cedf1ba510d637741e7801483045022100dcdb492f0ffc5ee4c72bf9523a8efbf90be10678f87d07c795994a63faefd29f02206509209d474acacd78ac8c217dbebd7e132f3b1dae92dcb0e3cb931e589602db014c69522102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d953aeffffffff01383204000000000017a914a5dd1e12f6be37452b2488620cbbb16931cdbbfe8700000000
Output{
"txid": "c88ee8da1de3ba70a5b131e116fd5f8090b13780e7341b8c764ed690de2ee58d",
"hash": "c88ee8da1de3ba70a5b131e116fd5f8090b13780e7341b8c764ed690de2ee58d",
"version": 1,
"size": 931,
"vsize": 931,
"locktime": 0,
"vin": [
{
"txid": "f3fdded77a5adf6fd1e7d2dcabb3cdb22f687226e61b111f29ed8226d846b859",
"vout": 2,
"scriptSig": {
"asm": "0 3045022100db7111070928b3e2133ce8e892ae0a4bd4f60a09909922a666b63aa2ceecc687022003de0e357abdb54f31b959921cd750d1f20a71e66e4bc6d23d2aed273e3f6c5e[ALL] 3045022100f1e18083a370bb4267e41d01fa791af4f2d1ded91af51490301fe69d8ec7c2ac02204a375b1aa9d4a1573ffbe8a3b53c4c5f3d3c353304952881a3a545be7ecc229f[ALL] 522102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d953ae",
"hex": "00483045022100db7111070928b3e2133ce8e892ae0a4bd4f60a09909922a666b63aa2ceecc687022003de0e357abdb54f31b959921cd750d1f20a71e66e4bc6d23d2aed273e3f6c5e01483045022100f1e18083a370bb4267e41d01fa791af4f2d1ded91af51490301fe69d8ec7c2ac02204a375b1aa9d4a1573ffbe8a3b53c4c5f3d3c353304952881a3a545be7ecc229f014c69522102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d953ae"
},
"sequence": 4294967295
},
{
"txid": "f3fdded77a5adf6fd1e7d2dcabb3cdb22f687226e61b111f29ed8226d846b859",
"vout": 0,
"scriptSig": {
"asm": "0 3045022100c0b8087f88d01fddfc16ca725cdc94e3397a6aabc82048376f7422efd86d11f502200b328883bd85d8bf014da31c71a447620702894cdb424a30ada27d555d9a06c1[ALL] 304402203bf222cb3a662f99aed033696e79361c6a776991d1722dc730aa15fd183f38b2022005d821a34759606fcb689b7d8509ebaedd33d479a4cc899bdc7041c608e8b932[ALL] 522102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d953ae",
"hex": "00483045022100c0b8087f88d01fddfc16ca725cdc94e3397a6aabc82048376f7422efd86d11f502200b328883bd85d8bf014da31c71a447620702894cdb424a30ada27d555d9a06c10147304402203bf222cb3a662f99aed033696e79361c6a776991d1722dc730aa15fd183f38b2022005d821a34759606fcb689b7d8509ebaedd33d479a4cc899bdc7041c608e8b932014c69522102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d953ae"
},
"sequence": 4294967295
},
{
"txid": "f3fdded77a5adf6fd1e7d2dcabb3cdb22f687226e61b111f29ed8226d846b859",
"vout": 1,
"scriptSig": {
"asm": "0 304402205978fa53489429eba7bad690550b0b32bc24e44fb08c1d5ba365d524405ed8ef02203abb5f6b06882af826b84ca9946e9f4d30c7287059e6cedf1ba510d637741e78[ALL] 3045022100dcdb492f0ffc5ee4c72bf9523a8efbf90be10678f87d07c795994a63faefd29f02206509209d474acacd78ac8c217dbebd7e132f3b1dae92dcb0e3cb931e589602db[ALL] 522102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d953ae",
"hex": "0047304402205978fa53489429eba7bad690550b0b32bc24e44fb08c1d5ba365d524405ed8ef02203abb5f6b06882af826b84ca9946e9f4d30c7287059e6cedf1ba510d637741e7801483045022100dcdb492f0ffc5ee4c72bf9523a8efbf90be10678f87d07c795994a63faefd29f02206509209d474acacd78ac8c217dbebd7e132f3b1dae92dcb0e3cb931e589602db014c69522102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d953ae"
},
"sequence": 4294967295
}
],
"vout": [
{
"value": 0.00275000,
"n": 0,
"scriptPubKey": {
"asm": "OP_HASH160 a5dd1e12f6be37452b2488620cbbb16931cdbbfe OP_EQUAL",
"hex": "a914a5dd1e12f6be37452b2488620cbbb16931cdbbfe87",
"reqSigs": 1,
"type": "scripthash",
"addresses": [
"3Gp2Jhyy5N5dTqPkXjhSS8vmKttSysNnMK"
]
}
}
]
}
Zur Prüfung kann ebenfalls auf die
Validierungsfunktion von Coinb.in zurückgegriffen werden.
Schritt 6: Broadcast der Transaktion an den GewinnerAbschließend wird die Transaktion im Netzwerk verteilt:
sendrawtransaction 010000000359b846d82682ed291f111be62672682fb2cdb3abdcd2e7d16fdf5a7ad7defdf302000000fdfe0000483045022100db7111070928b3e2133ce8e892ae0a4bd4f60a09909922a666b63aa2ceecc687022003de0e357abdb54f31b959921cd750d1f20a71e66e4bc6d23d2aed273e3f6c5e01483045022100f1e18083a370bb4267e41d01fa791af4f2d1ded91af51490301fe69d8ec7c2ac02204a375b1aa9d4a1573ffbe8a3b53c4c5f3d3c353304952881a3a545be7ecc229f014c69522102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d953aeffffffff59b846d82682ed291f111be62672682fb2cdb3abdcd2e7d16fdf5a7ad7defdf300000000fdfd0000483045022100c0b8087f88d01fddfc16ca725cdc94e3397a6aabc82048376f7422efd86d11f502200b328883bd85d8bf014da31c71a447620702894cdb424a30ada27d555d9a06c10147304402203bf222cb3a662f99aed033696e79361c6a776991d1722dc730aa15fd183f38b2022005d821a34759606fcb689b7d8509ebaedd33d479a4cc899bdc7041c608e8b932014c69522102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d953aeffffffff59b846d82682ed291f111be62672682fb2cdb3abdcd2e7d16fdf5a7ad7defdf301000000fdfd000047304402205978fa53489429eba7bad690550b0b32bc24e44fb08c1d5ba365d524405ed8ef02203abb5f6b06882af826b84ca9946e9f4d30c7287059e6cedf1ba510d637741e7801483045022100dcdb492f0ffc5ee4c72bf9523a8efbf90be10678f87d07c795994a63faefd29f02206509209d474acacd78ac8c217dbebd7e132f3b1dae92dcb0e3cb931e589602db014c69522102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d953aeffffffff01383204000000000017a914a5dd1e12f6be37452b2488620cbbb16931cdbbfe8700000000
broadcast("010000000359b846d82682ed291f111be62672682fb2cdb3abdcd2e7d16fdf5a7ad7defdf302000000fdfe0000483045022100db7111070928b3e2133ce8e892ae0a4bd4f60a09909922a666b63aa2ceecc687022003de0e357abdb54f31b959921cd750d1f20a71e66e4bc6d23d2aed273e3f6c5e01483045022100f1e18083a370bb4267e41d01fa791af4f2d1ded91af51490301fe69d8ec7c2ac02204a375b1aa9d4a1573ffbe8a3b53c4c5f3d3c353304952881a3a545be7ecc229f014c69522102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d953aeffffffff59b846d82682ed291f111be62672682fb2cdb3abdcd2e7d16fdf5a7ad7defdf300000000fdfd0000483045022100c0b8087f88d01fddfc16ca725cdc94e3397a6aabc82048376f7422efd86d11f502200b328883bd85d8bf014da31c71a447620702894cdb424a30ada27d555d9a06c10147304402203bf222cb3a662f99aed033696e79361c6a776991d1722dc730aa15fd183f38b2022005d821a34759606fcb689b7d8509ebaedd33d479a4cc899bdc7041c608e8b932014c69522102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d953aeffffffff59b846d82682ed291f111be62672682fb2cdb3abdcd2e7d16fdf5a7ad7defdf301000000fdfd000047304402205978fa53489429eba7bad690550b0b32bc24e44fb08c1d5ba365d524405ed8ef02203abb5f6b06882af826b84ca9946e9f4d30c7287059e6cedf1ba510d637741e7801483045022100dcdb492f0ffc5ee4c72bf9523a8efbf90be10678f87d07c795994a63faefd29f02206509209d474acacd78ac8c217dbebd7e132f3b1dae92dcb0e3cb931e589602db014c69522102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d953aeffffffff01383204000000000017a914a5dd1e12f6be37452b2488620cbbb16931cdbbfe8700000000")
pybtctool pushtx 010000000359b846d82682ed291f111be62672682fb2cdb3abdcd2e7d16fdf5a7ad7defdf302000000fdfe0000483045022100db7111070928b3e2133ce8e892ae0a4bd4f60a09909922a666b63aa2ceecc687022003de0e357abdb54f31b959921cd750d1f20a71e66e4bc6d23d2aed273e3f6c5e01483045022100f1e18083a370bb4267e41d01fa791af4f2d1ded91af51490301fe69d8ec7c2ac02204a375b1aa9d4a1573ffbe8a3b53c4c5f3d3c353304952881a3a545be7ecc229f014c69522102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d953aeffffffff59b846d82682ed291f111be62672682fb2cdb3abdcd2e7d16fdf5a7ad7defdf300000000fdfd0000483045022100c0b8087f88d01fddfc16ca725cdc94e3397a6aabc82048376f7422efd86d11f502200b328883bd85d8bf014da31c71a447620702894cdb424a30ada27d555d9a06c10147304402203bf222cb3a662f99aed033696e79361c6a776991d1722dc730aa15fd183f38b2022005d821a34759606fcb689b7d8509ebaedd33d479a4cc899bdc7041c608e8b932014c69522102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d953aeffffffff59b846d82682ed291f111be62672682fb2cdb3abdcd2e7d16fdf5a7ad7defdf301000000fdfd000047304402205978fa53489429eba7bad690550b0b32bc24e44fb08c1d5ba365d524405ed8ef02203abb5f6b06882af826b84ca9946e9f4d30c7287059e6cedf1ba510d637741e7801483045022100dcdb492f0ffc5ee4c72bf9523a8efbf90be10678f87d07c795994a63faefd29f02206509209d474acacd78ac8c217dbebd7e132f3b1dae92dcb0e3cb931e589602db014c69522102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d953aeffffffff01383204000000000017a914a5dd1e12f6be37452b2488620cbbb16931cdbbfe8700000000
Alternativ kann das
Broadcast-Formular von coinb.in verwendet werden. Die Wette ist abgeschlossen, sobald die Transaktion in einen Block aufgenommen und bestätigt wurde:
c88ee8da1de3ba70a5b131e116fd5f8090b13780e7341b8c764ed690de2ee58dUmsetzung mit drei Teilnehmern und SchiedsrichterDas zuvor beschriebene Vorgehen sichert ab, dass die Durchführung der mit der Wette verbundenen Zahlungen nicht in der jeweiligen Hand der einzeln Beteiligten liegt, sondern nur zwei der drei beteiligten Personen die Zahlung gemeinsam autorisieren können. Was aber nun, wenn die beiden Verlierer sich gegen den Gewinner zusammentun - und sich einfach dessen Einsatz untereinander aufteilen? Hier kommt die Rolle eines unabhängigen Schiedsrichters ins Spiel. Der Schiedsrichter ist selbst nicht an der Wette beteiligt, sondern wacht unabhängig über die korrekte Abwicklung derselben.
Hierzu generiert man eine Multi-Signatur-Adresse, die nicht mit zwei der drei vorhandenen Private-Keys signiert werden muss, sondern mit drei von fünf. Die drei Wett-Teilnehmer stellen dazu wie oben beschrieben ihre Public-Keys bereit, der Schiedsrichter stellt zusätzlich seinen Public-Key. Unter zweifacher Verwendung des Public-Keys des Schiedsrichters wird anschließend das Redeem-Script samt Multi-Signature-Adresse (hier 3 von 5) berechnet. Sollten sich die Verlierer in dieser Konstellation unkooperativ verhalten, dann reicht der Private-Key des Gewinners zusammen mit dem Private-Key des Schiedsrichters, um die Transaktion zu autorisieren.
Die nachfolgende Beschreibung basiert auf der zuvor ausgeführten mit drei Teilnehmern ohne Schiedsrichter. Es werden nur noch die jeweiligen Outputs angegeben, auf eine nochmalige Beschreibung der einzelnen Schritte verzichtet.
Schritt 1: Public-Keys bereitstellenZusätzlich zu den drei Public-Keys der Teilnehmer stellt der Schiedsrichter einen Public-Key:
0369f10478917b0f3ba61fa35c6b3246cb9890ce82d35d2cd2fe78516f904e9f7e
Schritt 2: Reedem-Script/Multi-Signature-Adresse generierenAus den Public-Keys der Teilnehmer und des Schiedsrichters sowie den Signierungs-Bedingungen (hier 3 von 5) wird das Reedem-Script und die Multi-Signature-Adresse berechnet:
3K3aUH4HwWshjDZLe9Zi17JyygorWSJUqH
532102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d9210369f10478917b0f3ba61fa35c6b3246cb9890ce82d35d2cd2fe78516f904e9f7e210369f10478917b0f3ba61fa35c6b3246cb9890ce82d35d2cd2fe78516f904e9f7e55ae
{
"asm": "3 02b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca 031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b14 02a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d9 0369f10478917b0f3ba61fa35c6b3246cb9890ce82d35d2cd2fe78516f904e9f7e 0369f10478917b0f3ba61fa35c6b3246cb9890ce82d35d2cd2fe78516f904e9f7e 5 OP_CHECKMULTISIG",
"reqSigs": 3,
"type": "multisig",
"addresses": [
"15p1QoP2VwHUU2PaFtgEAGuU7Y3p9P59Zd",
"14igQFDVN86HQ2tdo5QTqjTVUhz7Cjb2jV",
"1KtCSrphdSHVv9yumCGgecju6mBb2isMTR",
"1EAFJKGB4LuSuHq5ZXrYEKMDdwZcoBtVLN",
"1EAFJKGB4LuSuHq5ZXrYEKMDdwZcoBtVLN"
],
"p2sh": "3K3aUH4HwWshjDZLe9Zi17JyygorWSJUqH"
}
Schritt 3: Einzahlung der WetteinsätzeJeder Teilnehmer überträgt den vereinbarten Betrag auf die in Schritt 2 generierte Multi-Signature-Adresse (drei Mal 0.001 BTC):
607e5189ac78a411d78d6599b6d79f369e93e7fd6a8b134fa6eb57bc3043c10e caf80f64ba96c58db00c377288fd674baa4515e67934bd32230def956b6b75fd 65d64c1df21b8e4be545310dab18c9c3a0c6cdfa0c756deb7a2b40f3522cdedcSchritt 4: Erstellung der Transaktion an den GewinnerNach Feststellung des Wettergebnisses wird eine Transaktion an die Zieladresse des Gewinners erstellt. Zur Veranschaulichung gehen 0.00275 BTC an den Gewinner, 0.00025 BTC werden als Transaktionsgebühr verwendet:
02000000030ec14330bc57eba64f138b6afde7939e369fd7b699658dd711a478ac89517e600100000000fffffffffd756b6b95ef0d2332bd3479e61545aa4b67fd8872370cb08dc596ba640ff8ca0000000000ffffffffdcde2c52f3402b7aeb6d750cfacdc6a0c3c918ab0d3145e54b8e1bf21d4cd6650000000000ffffffff01383204000000000017a914cf9b35930cb2d32980e1c293bf2a9e0e588113878700000000
Die Verlierer wollen sich damit aber nicht abfinden und erstellen schlicht eine andere Transaktion, mit der sie sich den Wetteinsatz untereinander aufteilen und auf ihre Signieradressen überweisen wollen (und dabei noch die Transaktionsgebühren vergessen, da jeder 0.0015 BTC bekommen soll):
0100000003fd756b6b95ef0d2332bd3479e61545aa4b67fd8872370cb08dc596ba640ff8ca00000000ad532102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d9210369f10478917b0f3ba61fa35c6b3246cb9890ce82d35d2cd2fe78516f904e9f7e210369f10478917b0f3ba61fa35c6b3246cb9890ce82d35d2cd2fe78516f904e9f7e55aeffffffff0ec14330bc57eba64f138b6afde7939e369fd7b699658dd711a478ac89517e6001000000ad532102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d9210369f10478917b0f3ba61fa35c6b3246cb9890ce82d35d2cd2fe78516f904e9f7e210369f10478917b0f3ba61fa35c6b3246cb9890ce82d35d2cd2fe78516f904e9f7e55aeffffffffdcde2c52f3402b7aeb6d750cfacdc6a0c3c918ab0d3145e54b8e1bf21d4cd66500000000ad532102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d9210369f10478917b0f3ba61fa35c6b3246cb9890ce82d35d2cd2fe78516f904e9f7e210369f10478917b0f3ba61fa35c6b3246cb9890ce82d35d2cd2fe78516f904e9f7e55aeffffffff02f0490200000000001976a91428ca5267ddb6438533a5b913249c0316ecf9b3f188acf0490200000000001976a914cf21085d0680987de4718c63e1d27689e7fe82f588ac00000000
Schritt 5: Signierung der Transaktion an den GewinnerAlle Teilnehmer signieren ihre jeweiligen Transaktionen. Der Gewinner mit einer Signatur, die beiden Verlieren mit ihren beiden.
02000000030ec14330bc57eba64f138b6afde7939e369fd7b699658dd711a478ac89517e6001000000f900483045022100f1f75d833f9cc91d45376685f5756c0d319b6362243c385dd6e0769f2cea4cb50220418491fa1bf90d02abca0447681b26bac185d4a2a64d8a2f6f7a16fe39dcf930014cad532102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d9210369f10478917b0f3ba61fa35c6b3246cb9890ce82d35d2cd2fe78516f904e9f7e210369f10478917b0f3ba61fa35c6b3246cb9890ce82d35d2cd2fe78516f904e9f7e55aefffffffffd756b6b95ef0d2332bd3479e61545aa4b67fd8872370cb08dc596ba640ff8ca00000000f800473044022062abe0047b20726ced98050187ed37d195586da74c4f5a4e7f70aa456cc65e98022065d40db17deef1fd9e7a6fb6a3b766507e8a373cc7fc3b203550cc15f773b8d9014cad532102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d9210369f10478917b0f3ba61fa35c6b3246cb9890ce82d35d2cd2fe78516f904e9f7e210369f10478917b0f3ba61fa35c6b3246cb9890ce82d35d2cd2fe78516f904e9f7e55aeffffffffdcde2c52f3402b7aeb6d750cfacdc6a0c3c918ab0d3145e54b8e1bf21d4cd66500000000f900483045022100d51a2dbd996e69b452ee8fc3b987aec952c9d9bca6d6bd7ab4eef3083cd651dc0220209db65fec66ec7b74b66a7871b7f6b815524b8349f2efee90d622d1cfc558d7014cad532102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d9210369f10478917b0f3ba61fa35c6b3246cb9890ce82d35d2cd2fe78516f904e9f7e210369f10478917b0f3ba61fa35c6b3246cb9890ce82d35d2cd2fe78516f904e9f7e55aeffffffff01383204000000000017a914cf9b35930cb2d32980e1c293bf2a9e0e588113878700000000
0100000003fd756b6b95ef0d2332bd3479e61545aa4b67fd8872370cb08dc596ba640ff8ca00000000fd420100483045022100c34c778e38a2da1a8d8e1440c265b788568f605301cfd92a34b8969cf201240702207f307a932ec3cc236d4f336d782277258e74ba707a8a0701bff3a312c356bfc101483045022100d9798001c7c613b4c773b1c3cdb4264f083c873f175f4a7866752340bb4ccdbc0220660f42e36ef7df7167ecf7662c6c313a57920dbf4bce3fe81efeae76752ec3ec014cad532102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d9210369f10478917b0f3ba61fa35c6b3246cb9890ce82d35d2cd2fe78516f904e9f7e210369f10478917b0f3ba61fa35c6b3246cb9890ce82d35d2cd2fe78516f904e9f7e55aeffffffff0ec14330bc57eba64f138b6afde7939e369fd7b699658dd711a478ac89517e6001000000fd41010047304402202eaca7cb06fe73b6dfa79efa82d59b47e9c399a023ffee4a004eaae04d481331022042e32448cf8db2abd0713dcbc0ab6bfd5ad320478dd1cbd77dba9a5f9540154a01483045022100f67df084933ee2cd3fa440fb4e7d8411f3d9f771e353dbaf28c8027bcdee33b1022002adef25c71c925088ddbfd58287edd258add61b7c8ff931b07327cdf775e325014cad532102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d9210369f10478917b0f3ba61fa35c6b3246cb9890ce82d35d2cd2fe78516f904e9f7e210369f10478917b0f3ba61fa35c6b3246cb9890ce82d35d2cd2fe78516f904e9f7e55aeffffffffdcde2c52f3402b7aeb6d750cfacdc6a0c3c918ab0d3145e54b8e1bf21d4cd66500000000fd420100483045022100fdbcfcdea80f92713b5741970cfa8d62e46cf2304d2b44148112e5768f3bf96802200d68f81bd4b3189407b2a554263c34b3d50ec16152bd4518b2248937ed4001e701483045022100e121506523dc48db1cdd1ece2f47e33d088031c46ae4843364a1b7b28a705d3a02204fac2aef36b37508fdf8d591f9c516d476fc0cf74b1cb91de525402ea896d4ee014cad532102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d9210369f10478917b0f3ba61fa35c6b3246cb9890ce82d35d2cd2fe78516f904e9f7e210369f10478917b0f3ba61fa35c6b3246cb9890ce82d35d2cd2fe78516f904e9f7e55aeffffffff02f0490200000000001976a91428ca5267ddb6438533a5b913249c0316ecf9b3f188acf0490200000000001976a914cf21085d0680987de4718c63e1d27689e7fe82f588ac00000000
Beide Transaktionen sind ungültig, da sie die Script-Bedingungen nicht erfüllen (keine enthält drei notwendige Signaturen). Versucht man sie im Netzwerk zu verteilen, werden sie von den Knoten abgelehnt. Der Schiedsrichter signiert deshalb die Transaktion des Gewinners:
02000000030ec14330bc57eba64f138b6afde7939e369fd7b699658dd711a478ac89517e6001000000fd890100483045022100f1f75d833f9cc91d45376685f5756c0d319b6362243c385dd6e0769f2cea4cb50220418491fa1bf90d02abca0447681b26bac185d4a2a64d8a2f6f7a16fe39dcf93001473044022065a494a0f2915ca84bdbfce4a3dda32478b947e5e2d40b1fe7ec91f72bcf82dd02203d11cc71693b393d2f95e76da61671f8dad03180b5c8b750e7dfc96a2657af8d01473044022065a494a0f2915ca84bdbfce4a3dda32478b947e5e2d40b1fe7ec91f72bcf82dd02203d11cc71693b393d2f95e76da61671f8dad03180b5c8b750e7dfc96a2657af8d014cad532102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d9210369f10478917b0f3ba61fa35c6b3246cb9890ce82d35d2cd2fe78516f904e9f7e210369f10478917b0f3ba61fa35c6b3246cb9890ce82d35d2cd2fe78516f904e9f7e55aefffffffffd756b6b95ef0d2332bd3479e61545aa4b67fd8872370cb08dc596ba640ff8ca00000000fd880100473044022062abe0047b20726ced98050187ed37d195586da74c4f5a4e7f70aa456cc65e98022065d40db17deef1fd9e7a6fb6a3b766507e8a373cc7fc3b203550cc15f773b8d90147304402202c18c10c8816e9d1974049cf07a4ced41828bbf692411d6f0e9eb96b1af5a69d0220597d7577f867065f58157b195aed8987bc102d313a0be273166ea2a7e00f258c0147304402202c18c10c8816e9d1974049cf07a4ced41828bbf692411d6f0e9eb96b1af5a69d0220597d7577f867065f58157b195aed8987bc102d313a0be273166ea2a7e00f258c014cad532102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d9210369f10478917b0f3ba61fa35c6b3246cb9890ce82d35d2cd2fe78516f904e9f7e210369f10478917b0f3ba61fa35c6b3246cb9890ce82d35d2cd2fe78516f904e9f7e55aeffffffffdcde2c52f3402b7aeb6d750cfacdc6a0c3c918ab0d3145e54b8e1bf21d4cd66500000000fd890100483045022100d51a2dbd996e69b452ee8fc3b987aec952c9d9bca6d6bd7ab4eef3083cd651dc0220209db65fec66ec7b74b66a7871b7f6b815524b8349f2efee90d622d1cfc558d70147304402204f7771c6dbde9b1197f68ca14f0bb9abafd214ce27be5ec69064a462ebe55261022061ae00f95787528936d4b3a91333b6a3bd59838e36512e95b2309674614d7ad70147304402204f7771c6dbde9b1197f68ca14f0bb9abafd214ce27be5ec69064a462ebe55261022061ae00f95787528936d4b3a91333b6a3bd59838e36512e95b2309674614d7ad7014cad532102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d9210369f10478917b0f3ba61fa35c6b3246cb9890ce82d35d2cd2fe78516f904e9f7e210369f10478917b0f3ba61fa35c6b3246cb9890ce82d35d2cd2fe78516f904e9f7e55aeffffffff01383204000000000017a914cf9b35930cb2d32980e1c293bf2a9e0e588113878700000000
Schritt 6: Broadcast der Transaktion an den GewinnerAbschließend wird die Transaktion im Netzwerk verteilt:
77004c571569f355474988c0bee82a178459c1b8b4d42d6d504e331358b97e80Nützliche Links tl;dr1) Bedingungen vereinbaren. 2) Schiedsrichter gewinnen. 3) Keys bereitstellen. 4) Einsätze einzahlen. 5) Gewinner festlegen. 6) Kohle kassieren.