Author

Topic: Praktische Umsetzung von Multi-Signature-Wetten im Forum (Read 595 times)

legendary
Activity: 2618
Merit: 1252
Wenn Mezzo das Angebot weiterhin aufrechterhält, dann nehme ich das oben mit auf.

Das Angebot gilt weiterhin. Mein Key aus dem Thread ist ebenfalls noch gültig (den alten Key habe ich ebenfalls).

Was ich mich auch noch gefragt habe: Kann man den Public-Key des Schiedsrichters evtl. mehrfach einberechnen. Also bei einer 3:5-MultiSig 2x dieselbe. Muss ich mir mal anschauen.

Das sollte funktionieren. Ich habe aber noch nicht probiert, ob die Tools da mitspielen. Ich würde daher zumindest das Signieren mit einer 2-aus-2 Adresse und zwei identischen  Public Keys vorher testen, bevor ich sowas mit nennenswerten Summen durchführe.
legendary
Activity: 994
Merit: 1098
An AA rated Bandoneonista
Coinb.in hat zwar einen Walletteil, den braucht man aber nicht.

Richtig.

War nicht Multi das wo man mit einem privaten Schlüssel allein nichts anfangen kann?

Stimme Dir völlig zu. Alle Operationen oben sind auch online unkritisch, abgesehen eben vom Signieren. Wenn man sich strikt daran hält, dass alle die Signier-Adressen nur einmal verwenden und dann noch unterstellt, dass - wenn z.B. alle Teilnehmer Coinb.in online verwenden - Coinb.in die Schlüssel nicht einsammelt und zum Signieren einer anderen Transaktion verwendet, kann auch nix passieren. Das muss aber eben so nicht bleiben (Seite gehackt, Betreiber schwenkt Geschäftsmodell um, ...). Darum wäre mein Vorschlag auch: mindestens die Menge an Teilnehmern, die notwendig ist, um eine Tx vollständig zu signieren, verwendet nicht online Coinb.in.

EDIT: Ah, da ist mir ein Thread bzgl. Schiedsrichter/Escrow entgangen:

1:1 Wette. 2von3 Multisig mit Mezzomix als dritter Partei entsprechend
https://bitcointalksearch.org/topic/angebot-btc-2-aus-3-multisig-escrow-treuhandabwicklung-456563

Wenn Mezzo das Angebot weiterhin aufrechterhält, dann nehme ich das oben mit auf. Was ich mich auch noch gefragt habe: Kann man den Public-Key des Schiedsrichters evtl. mehrfach einberechnen. Also bei einer 3:5-MultiSig 2x dieselbe. Muss ich mir mal anschauen.
hero member
Activity: 773
Merit: 531
oder man nutzt Coinb.in o.ä. Da es sich bei letzterem um ein Online-Wallet handelt und man mit PrivKeys hantieren muss, ist das eher kein sinnvoller Weg (es sei denn, man führt das JS lokal aus).

Coinb.in hat zwar einen Walletteil, den braucht man aber nicht.
War nicht Multi das wo man mit einem privaten Schlüssel allein nichts anfangen kann?
legendary
Activity: 994
Merit: 1098
An AA rated Bandoneonista
Core kommt für mich nicht in Frage, ist mir echt zu aufwendig. Hätte gerne Electrum genutzt
So, ich hab' mich jetzt mal durch den ganzen Krempel gelesen - wollte einfach noch vor Ablauf der von elrippo gesetzten Frist für seine aktuelle Wette klären, ob man Electrum einsetzen kann. Ergebnis: a) Ja, wenn alle Teilnehmer Electrum nutzen und ihre Master-Public-Keys austauschen. b) Nein bzw. nur teilweise, wenn man in einer gemischten Umgebung ist. Das Problem ist schlicht, dass man in Electrum offensichtlich beim Signieren von Transaktionen nicht das Redeem-Script der MultiSig-Adresse mitgeben kann. Bedeutet: man kann mit Electrum schlicht nicht abschließend signieren.

Insgesamt hat sich herausgestellt, dass es keine Standards gibt, um teilsignierte Transaktionen zwischen verschiedenen Wallet-Implementierungen auszutauschen. Dazu liegt mit BIB174 aber inzwischen ein Vorschlag vor, der das Problem perspektivisch lösen könnte.

Bleibt unterm Strich: In der vorgeschlagenen Form ist man auf Core, Pybitcointools usw. angewiesen oder man nutzt Coinb.in o.ä. Da es sich bei letzterem um ein Online-Wallet handelt und man mit PrivKeys hantieren muss, ist das eher kein sinnvoller Weg (es sei denn, man führt das JS lokal aus).
legendary
Activity: 994
Merit: 1098
An AA rated Bandoneonista
also, was brauchst du jetzt von mir? Den pubkey meiner Adresse?

Du meinst für die Wette drüben? - Ich zögere noch, weil offensichtlich keine Mitspieler und kein Schiedsrichter in Sicht sind. Ich hatte dazu schon mal im Zusammenhang einer anderen Wette was geschrieben:

Da wir uns hier ja auch immer um Weiterbildung bemühen, quote ich auch das noch aus dem Ursprungsthread:


Hab meinen Post (3er) wieder gelöscht weil ich mir nicht vorstellen kann wie dann die Auszahlung an 2 (Sieger und Dich) klappen kann.

Bei der 2er Wette brauchen wir niemanden und das macht es ja so verlockend.
Ausgang klar - Verlierer gibt mittels Privatekey das Geld für den Gewinner frei. Fertig.

ein mann, ein wort. macht das so!  Wink

Es gibt eine Reihe interessanter psychologischer Experimente zum Themenfeld: http://www.wissenschaft.de/archiv/-/journal_content/56/12054/1565427/DIE-WURZELN-VON-GEIZ-UND-GIER/ Je nach "Typus" kann eine 2er-Wette den Verlierer dazu verleiten, seinen PrivKey nicht rauszurücken, weil er es dem Gewinner nicht gönnt. Bei 2er-Multisig ohne Mediator besteht für den Gewinner also (zumindest theoretisch) das doppelte Risiko: Er kann zum Schluss auch seinen eigenen Einsatz verlieren. Das geht beim "guten alten Kaufmannshandschlag" nicht. - Das aber nur so am Rande. Weiter geht's dann im eigenen Thread.

Spielt hier keine Rolle, da wir uns offensichtlich vertrauen, aber ist durchaus überdenkenswert. Natürlich spricht gegen eine 2er-Multisig auch das Risiko des Ablebens einer der Privkey-Besitzer.

Eine 2:2-MultiSig-Wette ist eigentlich unsinnig (schreibst Du ja auch indirekt in den Wettbedingungen: Multisig oder Escrow, je nach Teilnehmeranzahl). Beide Parteien sind hier vollständig abhängig von der Kooperation der Gegenpartei. Damit verdoppelt sich das Risiko beider Teilnehmer - es ist eigentlich dann sinnvoller, auf den "Ehrenmann-Modus" auszuweichen und auszuzahlen, wenn die Wette abgeschlossen ist. Ohne Schiedsrichter ist mir hier noch keine sinnvolle Lösung eingefallen - und auch ein Schiedsrichter macht die Sache nur bedingt besser als z.B. Escrow oder eben: Ehrenmann.
full member
Activity: 1179
Merit: 210
only hodl what you understand and love!
Hallöchen,

also, was brauchst du jetzt von mir? Den pubkey meiner Adresse?

elrippo
legendary
Activity: 994
Merit: 1098
An AA rated Bandoneonista
Ich hab' mal ein bisschen weiterrecherchiert, das muss ich mir dann nochmal weiter anschauen: 2-of-3 Escrow Example with Electrum. Und mal etwas weiter mit Electrum spielen.

EDIT: Ich hab' das mal in den ersten Schritten mit Electrum nachvollzogen und oben zusätzlich dokumentiert. Die Schritte 1-3 funktionieren analog Core, bei Schritt 4 muss ich nochmal weiter schauen. Da scheint sich was in der aktuellen Electrum-Implementierung geändert zu haben (oder ist entfernt worden).

Bah. Mir Rawtransactions rumzumachen ist echt kein Spaß. Ich hab' das jetzt so weit ergänzt, wie sich mir die Implementierungen jeweils erschlossen haben, aber meine Hoffnung, dass man eine einzelne Wette unter Nutzung einer MultiSig-Adresse kompatibel mit allen vier eingesetzten Tools (Core, Pybitcointools, Coinb.in und Electrum) umsetzen kann, hat sich bislang noch nicht erfüllt. Die ersten drei scheinen mir recht kompatibel, bei Electrum muss ich noch ab Schritt 4 passen.

Ansonsten habe ich eine Dreierwette mit Schiedsrichter und 3:5-MultiSig vorbereitet:

  https://blockchain.info/address/37bfMVBrk6hu7ypdzPYnh1QjakJDbm71fM

Da werde ich dann weiterforschen. Bei TX-Gebühren ~ 5 Sat/Byte macht das aktuell sogar wieder Spaß.
legendary
Activity: 994
Merit: 1098
An AA rated Bandoneonista
Ich hab' mal ein bisschen weiterrecherchiert, das muss ich mir dann nochmal weiter anschauen: 2-of-3 Escrow Example with Electrum. Und mal etwas weiter mit Electrum spielen.

EDIT: Ich hab' das mal in den ersten Schritten mit Electrum nachvollzogen und oben zusätzlich dokumentiert. Die Schritte 1-3 funktionieren analog Core, bei Schritt 4 muss ich nochmal weiter schauen. Da scheint sich was in der aktuellen Electrum-Implementierung geändert zu haben (oder ist entfernt worden).
legendary
Activity: 994
Merit: 1098
An AA rated Bandoneonista
Bleibt die Frage im Raum, wie wir es denn nun machen?  Grin

Siehe drüben. Smiley
legendary
Activity: 1202
Merit: 1042
elrippo will ja auch eher Escrow nutzen, nicht MultiSig. Bei Escrow kann man natürlich anders verfahren. Ich halte nur nicht viel von Escrow, wenn es um Wetten mit längerer Laufzeit geht.

Bleibt die Frage im Raum, wie wir es denn nun machen?  Grin
legendary
Activity: 994
Merit: 1098
An AA rated Bandoneonista
Ja, korrekt. Bei Limit Buy Orders über dem niedriegsten Verkaufspreis wird die Order automatisch mit den günstigsten Sell Orders verrechnet.
Es kann also niemand so einfach hingehen und  bei einem Kurs von 35k€ Bitcoins im Wert von 1€ kaufen.

Ich hab's mir gerade nochmal angeschaut auf Bitstamp. Ich sehe da auch keine andere Möglichkeit, eine solche Order auszuführen.

Guter Einwand. Ich weiß nicht wie Stamp das handhabt, habe dort keinen Account. Bei z.B. bitcoin.de würde es funktionieren.

Ja, auf bitcoin.de geht das natürlich problemlos. Darum wären Wetten auf Kurse dort tatsächlich: ziemlich schwachsinnig.

Indem man z.B. wie bei Iota geschehen, den Leuten auf einer Website verspricht einen Seed offline zu generieren, dieser aber schon vorgefertigt ist.

Yep. Ich hab' mir das JS von der Seite noch nicht angesehen, aber alle Schritte sowohl mit dem JS durchgeführt wie mit Core. Dadurch habe ich letztlich validiert, dass dort keine vorgefertigten Ergebnisse produziert werden. Dennoch würde ich grundsätzlich ebenfalls von Online-Wallets abraten. Wer Core nicht nutzen mag, ist mit den Pybitcointools (die übrigens von Vitalik Buterin stammen) bestens bedient. Man muss dafür eigentlich auch keine große Programmiererfahrung haben - der verlinkte Artikel beschreibt recht nachvollziehbar, wie die einzelnen Schritte von der Library implementiert werden.

Genau das wurde bei der Wette nicht klar kommuniziert.

elrippo will ja auch eher Escrow nutzen, nicht MultiSig. Bei Escrow kann man natürlich anders verfahren. Ich halte nur nicht viel von Escrow, wenn es um Wetten mit längerer Laufzeit geht.
legendary
Activity: 1202
Merit: 1042
Es ist zwar offtopic darauf hier zu antworten aber im Wett-Thread dazu zu schreiben erscheint auch idiotisch.
Für mich ist es keine Auslegungssache. Nach den aufgestellten Bedingungen hätte elrippo die Wette gewonnen, wenn ein Lakai oder er selbst den Mini-35k Trade tätigt. Das hätte ich auch als Schiedsrichter so entschieden bzw. beim Multisig sogar gegen mein Gewinninteresse gestimmt. Wenn jemand sein Häkchen unter die AGB setzt ohne sie genau lesen zu wollen oder zu verstehen, ist er einfach selber schuld. Seien wir ehrlich, ohne den Hinweis von Sukrim wäre uns der Fauxpas wohl nicht aufgefallen und ich hätte meine erste, du deine zweite Wett-Niete gezogen. Ich habe keine Ahnung ob elrippo das bewusst so forciert, oder seine Chance selber garnicht mitbekommen hat.

Ja, das stimmt, das wäre letztlich keine Auslegungssache. - Lassen wir das Off-topic mal beiseite: Geht das überhaupt? Auf Bitstamp? Die Tradingengine würde doch ein Limit-Kaufgebot für 35k/BTC gegen das niedrigste Verkaufsgebot ausführen - und nicht für 35k/BTC. Oder?

Guter Einwand. Ich weiß nicht wie Stamp das handhabt, habe dort keinen Account. Bei z.B. bitcoin.de würde es funktionieren.

Man kann JS auch offline ausführen, das hindert aber niemanden daran, einem gefakte Daten unterzuschieben. Ob das Angriffsszenario beim erwähnten Wallet greifen könnte, weiß ich nicht.

Was genau meinst Du mit "gefakte Daten unterzuschieben"? Und welches Angriffsszenario wäre das?

Indem man z.B. wie bei Iota geschehen, den Leuten auf einer Website verspricht einen Seed offline zu generieren, dieser aber schon vorgefertigt ist.

Gut, dann funktioniert das Ganze nicht solange jeder X-beliebige bis zum 18. an die Multisig-Adresse einzahlen kann.

Man muss einen Stichtag festlegen, bis zu dem alle Teilnehmer ihre PubKeys bereitgestellt haben müssen. Dann wird die MultiSig-Adresse auf dieser Basis berechnet und die Teilnehmer zahlen ein. Damit ist die Wette geschlossen - es können keine weiteren Teilnehmer mehr dazustoßen.

Genau das wurde bis heute bei der Wette nicht klar kommuniziert.

edit: sorry @spray, war zu spät.  Wink
sr. member
Activity: 592
Merit: 271
Die Tradingengine würde doch ein Limit-Kaufgebot für 35k/BTC gegen das niedrigste Verkaufsgebot ausführen - und nicht für 35k/BTC. Oder?

Ja, korrekt. Bei Limit Buy Orders über dem niedriegsten Verkaufspreis wird die Order automatisch mit den günstigsten Sell Orders verrechnet.
Es kann also niemand so einfach hingehen und  bei einem Kurs von 35k€ Bitcoins im Wert von 1€ kaufen.
legendary
Activity: 994
Merit: 1098
An AA rated Bandoneonista
Es ist zwar offtopic darauf hier zu antworten aber im Wett-Thread dazu zu schreiben erscheint auch idiotisch.
Für mich ist es keine Auslegungssache. Nach den aufgestellten Bedingungen hätte elrippo die Wette gewonnen, wenn ein Lakai oder er selbst den Mini-35k Trade tätigt. Das hätte ich auch als Schiedsrichter so entschieden bzw. beim Multisig sogar gegen mein Gewinninteresse gestimmt. Wenn jemand sein Häkchen unter die AGB setzt ohne sie genau lesen zu wollen oder zu verstehen, ist er einfach selber schuld. Seien wir ehrlich, ohne den Hinweis von Sukrim wäre uns der Fauxpas wohl nicht aufgefallen und ich hätte meine erste, du deine zweite Wett-Niete gezogen. Ich habe keine Ahnung ob elrippo das bewusst so forciert, oder seine Chance selber garnicht mitbekommen hat.

Ja, das stimmt, das wäre letztlich keine Auslegungssache. - Lassen wir das Off-topic mal beiseite: Geht das überhaupt? Auf Bitstamp? Die Tradingengine würde doch ein Limit-Kaufgebot für 35k/BTC gegen das niedrigste Verkaufsgebot ausführen - und nicht für 35k/BTC. Oder?

Man kann JS auch offline ausführen, das hindert aber niemanden daran, einem gefakte Daten unterzuschieben. Ob das Angriffsszenario beim erwähnten Wallet greifen könnte, weiß ich nicht.

Was genau meinst Du mit "gefakte Daten unterzuschieben"? Und welches Angriffsszenario wäre das?

Gut, dann funktioniert das Ganze nicht solange jeder X-beliebige bis zum 18. an die Multisig-Adresse einzahlen kann.

Man muss einen Stichtag festlegen, bis zu dem alle Teilnehmer ihre PubKeys bereitgestellt haben müssen. Dann wird die MultiSig-Adresse auf dieser Basis berechnet und die Teilnehmer zahlen ein. Damit ist die Wette geschlossen - es können keine weiteren Teilnehmer mehr dazustoßen.

Mache ich gerne, nur nicht unter (Wett-)Druck. Konnte die Geschichte (dank dir und des Threads) mit klar definierten Teilnehmern unter Electrum schon durchspielen. Feine Sache.  Smiley

Ah, prima.

EDIT: Ich hab' das oben bzgl. Nutzung von Electrum nochmal präzisiert. Der Unterschied ist, dass man bei Nutzung von Electrum MultiSig-Wallets erstellt, nicht eine einzelne MultiSig-Adresse. Alle Teilnehmer müssten also ebenfalls eine BIP32-kompatible Wallet-Implementierung nutzen, die auch MutliSig unterstützt.
legendary
Activity: 1202
Merit: 1042
Unabhängig davon, daß es einen großen Haken bei den Wettbedingungen gibt

Ja, die Wettbedingungen sind wohl häufig der zentrale Knackpunkt. Umso wichtiger, dass man einen vertrauenswürdigen Schiedsrichter wählt, der im Streitfall dann zu einer sinnvollen Auslegung kommt.

Es ist zwar offtopic darauf hier zu antworten aber im Wett-Thread dazu zu schreiben erscheint auch idiotisch.
Für mich ist es keine Auslegungssache. Nach den aufgestellten Bedingungen hätte elrippo die Wette gewonnen, wenn ein Lakai oder er selbst den Mini-35k Trade tätigt. Das hätte ich auch als Schiedsrichter so entschieden bzw. beim Multisig sogar gegen mein Gewinninteresse gestimmt. Wenn jemand sein Häkchen unter die AGB setzt ohne sie genau lesen zu wollen oder zu verstehen, ist er einfach selber schuld. Seien wir ehrlich, ohne den Hinweis von Sukrim wäre uns der Fauxpas wohl nicht aufgefallen und ich hätte meine erste, du deine zweite Wett-Niete gezogen. Ich habe keine Ahnung ob elrippo das bewusst so forciert, oder seine Chance selber garnicht mitbekommen hat.


tue ich mich mit dem Multisig schwer.
Core kommt für mich nicht in Frage, ist mir echt zu aufwendig.

Core brauchst Du ja nur, um PubKey und PrivKey zu ermitteln und die o.g. Operationen durchzuführen. Du musst also nicht die gesamte Blockchain syncen. Alternativ geht auch das o.g. Online-Wallet (man kann das JS auch ohne Netzverbindung ausführen).

Man kann JS auch offline ausführen, das hindert aber niemanden daran, einem gefakte Daten unterzuschieben. Ob das Angriffsszenario beim erwähnten Wallet greifen könnte, weiß ich nicht.


Hätte gerne Electrum genutzt, aber wenn ich das richtig verstehe, müsste dort die Anzahl der Teilnehmer schon vor Wettbeginn feststehen...

Das wäre bei jeder MultiSig-Wette der Fall. Man kann die Adresse erst berechnen, wenn alle Teilnehmer ihre PubKeys bekannt gemacht haben.
Gut, dann funktioniert das Ganze nicht solange jeder X-beliebige bis zum 18. an die Multisig-Adresse einzahlen kann.


Ob ich mich zu den genannten Alternativen bis zum Stichtag so einlesen könnte um mir 100% sicher zu sein was ich da tue, wüßte ich leider auch nicht.  Roll Eyes

Eigentlich ist's ja keine Raketenwissenschaft. Aber, Du hast recht: um das nachzuvollziehen, sollte man sich schon etwas einlesen. Bringt aber mE auch was.

Mache ich gerne, nur nicht unter (Wett-)Druck. Konnte die Geschichte (dank dir und des Threads) mit klar definierten Teilnehmern unter Electrum schon durchspielen. Feine Sache.  Smiley
legendary
Activity: 994
Merit: 1098
An AA rated Bandoneonista
Unabhängig davon, daß es einen großen Haken bei den Wettbedingungen gibt

Ja, die Wettbedingungen sind wohl häufig der zentrale Knackpunkt. Umso wichtiger, dass man einen vertrauenswürdigen Schiedsrichter wählt, der im Streitfall dann zu einer sinnvollen Auslegung kommt.

tue ich mich mit dem Multisig schwer.
Core kommt für mich nicht in Frage, ist mir echt zu aufwendig.

Core brauchst Du ja nur, um PubKey und PrivKey zu ermitteln und die o.g. Operationen durchzuführen. Du musst also nicht die gesamte Blockchain syncen. Alternativ geht auch das o.g. Online-Wallet (man kann das JS auch ohne Netzverbindung ausführen).

Hätte gerne Electrum genutzt, aber wenn ich das richtig verstehe, müsste dort die Anzahl der Teilnehmer schon vor Wettbeginn feststehen...

Das wäre bei jeder MultiSig-Wette der Fall. Man kann die Adresse erst berechnen, wenn alle Teilnehmer ihre PubKeys bekannt gemacht haben.

Ob ich mich zu den genannten Alternativen bis zum Stichtag so einlesen könnte um mir 100% sicher zu sein was ich da tue, wüßte ich leider auch nicht.  Roll Eyes

Eigentlich ist's ja keine Raketenwissenschaft. Aber, Du hast recht: um das nachzuvollziehen, sollte man sich schon etwas einlesen. Bringt aber mE auch was.

Du hattest den steuerlichen Aspekt zwar wieder rausgenommen, ich habe trotzdem dazu mal bei meiner Kanzlei angefragt, Antwort zur Lage in D steht noch aus.

Ja, ist eine wichtige Frage. Ich meine, 600watt hatte dazu auch bei seiner Wette mit Elrippo nachgeforscht. - Ich wollte die rechtlichen Fragen hier aber bewusst raushalten, da es mir primär um die Technik geht.
legendary
Activity: 1202
Merit: 1042
Vielen Dank für die Mühe. Unabhängig davon, daß es einen großen Haken bei den Wettbedingungen gibt, tue ich mich mit dem Multisig schwer.
Core kommt für mich nicht in Frage, ist mir echt zu aufwendig. Hätte gerne Electrum genutzt, aber wenn ich das richtig verstehe, müsste dort die Anzahl der Teilnehmer schon vor Wettbeginn feststehen... Ob ich mich zu den genannten Alternativen bis zum Stichtag so einlesen könnte um mir 100% sicher zu sein was ich da tue, wüßte ich leider auch nicht.  Roll Eyes

@twbt: Du hattest den steuerlichen Aspekt zwar wieder rausgenommen, ich habe trotzdem dazu mal bei meiner Kanzlei angefragt, Antwort zur Lage in D steht noch aus.
legendary
Activity: 994
Merit: 1098
An AA rated Bandoneonista
Man kann beim Anlegen eines Multi-Sig-Wallets auch eine Option ("Use public or private keys") auswählen, aber anschließend kommt irgendwas bzgl. "xpub" (Master Public Key) und "xprv" (Master Private Key), das sich wohl eher auf komplette Wallets bezieht.

Okay, ich denke, ich hab's verstanden. Meine obige Vermutung ist wohl richtig - Electrum implementiert MultiSig auf Wallet-Ebene - unter Verwendung der xpub- und xpriv-Keys nach BIP32: https://en.bitcoin.it/wiki/Deterministic_wallet_tools Die Bezeichnungen, die Electrum verwendet, laden nur zum Missverständnis ein. - Nutzt man also Electrum, hat man ein gemeinsames Bündel von Adressen, die sich aus den BIP32-Keys ableiten. Für eine Wette ist das eigentlich quatsch, aber auch nicht weiter schädlich. Man sollte das "Bündel" dann eben auch nur einmal für die Wette verwenden.
legendary
Activity: 994
Merit: 1098
An AA rated Bandoneonista
Dies ist ja auch kein xpub Key. Sorry, Noobfrage meinerseits: Was ist das für ein pubkey? In welchem Schritt erhälst du soetwas?

Das ist Public-Key 1 oben aus Schritt 1 (über die Core-API):

Code:
validateaddress 15p1QoP2VwHUU2PaFtgEAGuU7Y3p9P59Zd

ergibt:

Code:
{
  ...
  "pubkey": "02b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca",
  ...
}

Also bei mir steht unter Add Cosigner nur Please enter the master publix key (xpub) of your cosigner. Enter their master private key (xprv) if you want to be able to sign for them.

Ich stolpere die ganze Zeit über das "master" in der Electrum-Beschreibung - dummerweise verwende ich Electrum eigentlich nie und hab' schlicht noch nicht verstanden, was Electrum hier haben will. Offensichtlich gibt es auch noch andere Leute, die an dieser Stelle (Nutzung Core/coinb.in auf der einen Seite, Electrum auf der anderen) Probleme haben: https://www.reddit.com/r/Electrum/comments/7twh5i/adding_multisig_from_electrum_wallet_to_site_xpub/
sr. member
Activity: 592
Merit: 271
Danke für die Rückmeldung!
Ich hab' das mit den oben genannten Adressen versucht. Also: 1. Neues Wallet erstellen. 2. Multi-signature wallet auswählen. 2 von 3 auswählen. 3. Use public or private keys auswählen. 4. Jetzt kommt der Dialog Add Cosigner 1. Wenn ich hier den Pubkey 02b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca der ersten Adresse eingebe, komme ich schlicht nicht weiter. Der Button Next bleibt ausgegraut.


Dies ist ja auch kein xpub Key. Sorry, Noobfrage meinerseits: Was ist das für ein pubkey? In welchem Schritt erhälst du soetwas?
Also bei mir steht unter Add Cosigner nur Please enter the master publix key (xpub) of your cosigner. Enter their master private key (xprv) if you want to be able to sign for them.

Mit der Eingabe eines solchen Keys xpub661MyMwAqRbcFk1QSEuuPBtWMLKD3n1tpnDYqi1KXdQNFeJCrRnnL8ErJwnqswtFMjxgozjEMru ednxpXDsqMCQgVq98N8JsifNUANuoppD klappt's dann auch.



legendary
Activity: 994
Merit: 1098
An AA rated Bandoneonista
Danke für die Rückmeldung!

Ja, bereits paar mal erfolgreich durchlaufen.
Wenn man dort den eigenen xpub und die der anderen eingibt hast du einen watching-only Zugriff auf die MultiSig Adresse.
Das hat im Grunde die gleiche Funktionalitäten wie die Auswahlmöglichkeit bei einer Standardwallet. xpub -> watching only, xprv -> signierungsfähig

Ich hab' das mit den oben genannten Adressen versucht. Also: 1. Neues Wallet erstellen. 2. Multi-signature wallet auswählen. 2 von 3 auswählen. 3. Use public or private keys auswählen. 4. Jetzt kommt der Dialog Add Cosigner 1. Wenn ich hier den Pubkey 02b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca der ersten Adresse eingebe, komme ich schlicht nicht weiter. Der Button Next bleibt ausgegraut.

Was meinst du mit "komplette" Wallets?
Einen Master Private Key habe ich für Multisig in Electrum allerdings noch nie benötigt, da immer über den Seed gegangen.

Auf mich machte das den Eindruck, dass ich nur komplette MultiSig-Wallets einrichten kann - wie im BitcoinBlog beschrieben (und auch in der Electrum-Doku). Vlt. hat Electrum aber z.Z. schlicht einen Bug beim o.g. Vorgehen? Oder - am wahrscheinlichsten - ich mache da noch irgendwas falsch.

Ein Use Case für die Sinnhaftigkeit von "Use public or private keys" wäre, dass der Schiedsrichter nach Eingabe der 3 xpubs der Teilnehmer seine 2 eigenen xprvs dort eintragen kann und dann mit beiden Schlüsseln gleichzeitig signieren kann. (noch nie ausprobiert, also keine Gewähr)

Genau das wollte ich durchspielen. Also zunächst mal mit den drei Adresse oben (PubKey von 1 und 2, PrivKey von 3) und dann erweitert mit einem Schiedsrichter (mit zwei PrivKeys).

Das stimmt - allein aus diesem Grund braucht es imo einen Schiedsrichter/Treuhänder.

Ich sehe eigentlich auch keine andere Lösung. Elaborierter ginge das nur mit komplexeren Smart Contracts, die z.B. die Anzahl der notwendigen Signierungen vom Eingang der entsprechenden Inputs von den entsprechenden Adressen abhängig machten. Dann wären wir aber wohl bei Ethereum.
sr. member
Activity: 592
Merit: 271
@all: Hat jemand von Euch mal Electrum für Multisig verwendet? Man kann beim Anlegen eines Multi-Sig-Wallets auch eine Option ("Use public or private keys") auswählen, aber anschließend kommt irgendwas bzgl. "xpub" (Master Public Key) und "xprv" (Master Private Key), das sich wohl eher auf komplette Wallets bezieht. Erschließt sich mir noch nicht wirklich.

Ja, bereits paar mal erfolgreich durchlaufen.
Wenn man dort den eigenen xpub und die der anderen eingibt hast du einen watching-only Zugriff auf die MultiSig Adresse.
Das hat im Grunde die gleiche Funktionalitäten wie die Auswahlmöglichkeit bei einer Standardwallet. xpub -> watching only, xprv -> signierungsfähig
Was meinst du mit "komplette" Wallets?
Einen Master Private Key habe ich für Multisig in Electrum allerdings noch nie benötigt, da immer über den Seed gegangen.

Das wurde in einem von deinen Links abgehandelt: Man macht 3von5 und der Schiedsrichter bekommt 2 Stimmen.
Ein Use Case für die Sinnhaftigkeit von "Use public or private keys" wäre, dass der Schiedsrichter nach Eingabe der 3 xpubs der Teilnehmer seine 2 eigenen xprvs dort eintragen kann und dann mit beiden Schlüsseln gleichzeitig signieren kann. (noch nie ausprobiert, also keine Gewähr)


EDIT: Ein weiteres "Angriffsszenario" unkooperativer Wettpartner gegen das Setup ohne Schiedsrichter: Sie stellen ihre Public-Keys bereit, zahlen dann aber nicht auf die Wettadresse ein. Damit scammen sie denjenigen, der - z.B. als Ausrichter der Wette - als erster eingezahlt hat. Er bekommt seine Kohle ohne Schiedsrichter schlicht nicht mehr raus. Unterm Strich spricht also vieles dafür, eine Wette nicht ohne Schiedsrichter auszurichten.

Das stimmt - allein aus diesem Grund braucht es imo einen Schiedsrichter/Treuhänder.
legendary
Activity: 994
Merit: 1098
An AA rated Bandoneonista
Na das mit den Multisig funktioniert ja, das wissen wir ja  Grin

Hehe, ja. Smiley - @all: Hat jemand von Euch mal Electrum für Multisig verwendet? Man kann beim Anlegen eines Multi-Sig-Wallets auch eine Option ("Use public or private keys") auswählen, aber anschließend kommt irgendwas bzgl. "xpub" (Master Public Key) und "xprv" (Master Private Key), das sich wohl eher auf komplette Wallets bezieht. Erschließt sich mir noch nicht wirklich.

EDIT: Ein weiteres "Angriffsszenario" unkooperativer Wettpartner gegen das Setup ohne Schiedsrichter: Sie stellen ihre Public-Keys bereit, zahlen dann aber nicht auf die Wettadresse ein. Damit scammen sie denjenigen, der - z.B. als Ausrichter der Wette - als erster eingezahlt hat. Er bekommt seine Kohle ohne Schiedsrichter schlicht nicht mehr raus. Unterm Strich spricht also vieles dafür, eine Wette nicht ohne Schiedsrichter auszurichten.
full member
Activity: 1179
Merit: 210
only hodl what you understand and love!
Hallöchen,

coole Sache, daß du dir die Mühe machst eine einheitliche Agenda aufzustellen. Na das mit den Multisig funktioniert ja, das wissen wir ja  Grin
legendary
Activity: 994
Merit: 1098
An AA rated Bandoneonista
Das wurde in einem von deinen Links abgehandelt: Man macht 3von5 und der Schiedsrichter bekommt 2 Stimmen.
Klar - so naheliegend. Besten Dank für den Hinweis! - Ich hatte die ganze Zeit dazu recherchiert, ob man irgendwie die Private-Keys gewichten kann. Viel zu umständlich gedacht: der Schiedsrichter rückt einfach zwei Publik-Keys raus, damit hat er dann die beiden notwendigen Stimmen.

EDIT: Rechtliche Fragen zum Thema "Wetten" werde ich erstmal nicht behandeln. Das hängt letztlich zu stark von den konkreten Wettbedingungen ab und dem Wohnsitz der Teilnehmer. Deshalb gestrichen.
hero member
Activity: 773
Merit: 531
Das wurde in einem von deinen Links abgehandelt: Man macht 3von5 und der Schiedsrichter bekommt 2 Stimmen.
legendary
Activity: 994
Merit: 1098
An AA rated Bandoneonista
So, der rein technische Teil ist jetzt erstmal fertig. Ich werde noch ein paar Links und Erläuterungen aufnehmen und die letzten Punkte nach etwas weiterer Recherche ergänzen.

Interessant wird es nun, wenn man sich über die konkrete Ausgestaltung der Signierungsanforderungen (n von m) ein paar Gedanken macht. Gehen wir vom obigen Fall einer Wette von drei Personen aus, von denen zwei abschließend signieren müssen. Unterstellen wir dabei ehrenhafte Teilnehmer, die feststellen, dass Teilnehmer A gewonnen hat. A erstellt also eine Transaktion und signiert diese. B oder C signieren ebenfalls. Damit ist die Wette abgeschlossen. Verbünden sich aber B und C gegen A, dann erstellt einfach B eine andere Transaktion, die von C signiert wird. A hat damit zwar die Wette gewonnen, B und C aber das Geld.

Verhindern könnte man das durch einen Schiedsrichter S. Man erstellt dann keine 2-von-3-Multi-Signature-Adresse, sondern eine 3-von-4-Adresse. B und C haben somit keine Möglichkeit, A über den Tisch zu ziehen (sofern sich nicht der Schiedsrichter ebenfalls auf ihre Seite schlägt). B und C können aber gemeinsam, auch gegen den Schiedsrichter, verhindern, dass A seine Kohle bekommt. Beide zeichnen einfach die Transaktion nicht, die A und S signiert haben.

Gibt es dazu Überlegungen?
legendary
Activity: 2618
Merit: 1006
- reserviert -  Huh
legendary
Activity: 994
Merit: 1098
An AA rated Bandoneonista
- reserviert -
legendary
Activity: 994
Merit: 1098
An AA rated Bandoneonista
Übersicht
Ausgangssituation
Grundlagen
Umsetzung mit drei Teilnehmern
Umsetzung mit drei Teilnehmern und Schiedsrichter
Nützliche Links
tl;dr

Ausgangssituation
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.

Grundlagen
Wetten 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 Teilnehmern
Die 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 bereitstellen
Jeder 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 1
Code: (Bitcoind)
validateaddress 15p1QoP2VwHUU2PaFtgEAGuU7Y3p9P59Zd
Code: (Electrum)
getpubkeys("15p1QoP2VwHUU2PaFtgEAGuU7Y3p9P59Zd")
Code: (Pybitcointools)
pybtctool privtopub {myprivkey}

Output Teilnehmer 1
Code: (Public-Key)
02b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca

Input Teilnehmer 2
Code: (Bitcoind)
validateaddress 14igQFDVN86HQ2tdo5QTqjTVUhz7Cjb2jV
Code: (Electrum)
getpubkeys("14igQFDVN86HQ2tdo5QTqjTVUhz7Cjb2jV")
Code: (Pybitcointools)
pybtctool privtopub {myprivkey}

Output Teilnehmer 2
Code: (Public-Key)
031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b14

Input Teilnehmer 3
Code: (Bitcoind)
validateaddress 1KtCSrphdSHVv9yumCGgecju6mBb2isMTR
Code: (Electrum)
getpubkeys("1KtCSrphdSHVv9yumCGgecju6mBb2isMTR")
Code: (Pybitcointools)
pybtctool privtopub {myprivkey}

Output Teilnehmer 3
Code: (Public-Key)
02a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d9

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 generieren
Aus 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) :

Input
Code: (Bitcoind)
createmultisig 2 '["02b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca", "031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b14", "02a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d9"]'
Code: (Electrum)
createmultisig(2, ["02b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca", "031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b14", "02a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d9"])
Code: (Pybitcointools)
pybtctool mk_multisig_script 02b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca 031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b14 02a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d9 2 3
pybtctool scriptaddr 522102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d953ae

Output
Code: (Adresse)
3ER5NMP4qhEowpf8F1Lwrtyw99GmfJs1my
Code: (Redeem-Script)
522102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d953ae

Alternativ kann das MultiSig-Formular von Coinb.in verwendet werden. Ein kurzer Check des Redeem-Scripts zeigt:

Input
Code: (Bitcoind)
decodescript 522102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d953ae

Output
Code: (Dekodiertes Script)
{
  "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ätze
Jeder 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):

  f3fdded77a5adf6fd1e7d2dcabb3cdb22f687226e61b111f29ed8226d846b859

Schritt 4: Erstellung der Transaktion an den Gewinner
Nach 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:
 
Input
Code: (Bitcoind)
createrawtransaction '[{"txid":"f3fdded77a5adf6fd1e7d2dcabb3cdb22f687226e61b111f29ed8226d846b859", "vout":2}, {"txid":"f3fdded77a5adf6fd1e7d2dcabb3cdb22f687226e61b111f29ed8226d846b859", "vout":0}, {"txid":"f3fdded77a5adf6fd1e7d2dcabb3cdb22f687226e61b111f29ed8226d846b859", "vout":1}]' '{"3Gp2Jhyy5N5dTqPkXjhSS8vmKttSysNnMK":0.00275}'
Code: (Pybitcointools)
pybtctool mktx f3fdded77a5adf6fd1e7d2dcabb3cdb22f687226e61b111f29ed8226d846b859:2 f3fdded77a5adf6fd1e7d2dcabb3cdb22f687226e61b111f29ed8226d846b859:0 f3fdded77a5adf6fd1e7d2dcabb3cdb22f687226e61b111f29ed8226d846b859:1 3Gp2Jhyy5N5dTqPkXjhSS8vmKttSysNnMK:275000

Output
Code: (Unsignierte Transaktion)
010000000359b846d82682ed291f111be62672682fb2cdb3abdcd2e7d16fdf5a7ad7defdf30000000000ffffffff59b846d82682ed291f111be62672682fb2cdb3abdcd2e7d16fdf5a7ad7defdf30100000000ffffffff59b846d82682ed291f111be62672682fb2cdb3abdcd2e7d16fdf5a7ad7defdf30200000000ffffffff01383204000000000017a914a5dd1e12f6be37452b2488620cbbb16931cdbbfe8700000000

Alternativ kann das Transaktions-Formular von Coinb.in verwendet werden.

Schritt 5: Signierung der Transaktion an den Gewinner
Der 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 1
Code: (Bitcoind)
signrawtransaction '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}"]

Output
Code: (Mit Private-Key 1 signierte Transaktion)
010000000359b846d82682ed291f111be62672682fb2cdb3abdcd2e7d16fdf5a7ad7defdf302000000b500483045022100db7111070928b3e2133ce8e892ae0a4bd4f60a09909922a666b63aa2ceecc687022003de0e357abdb54f31b959921cd750d1f20a71e66e4bc6d23d2aed273e3f6c5e014c69522102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d953aeffffffff59b846d82682ed291f111be62672682fb2cdb3abdcd2e7d16fdf5a7ad7defdf300000000b500483045022100c0b8087f88d01fddfc16ca725cdc94e3397a6aabc82048376f7422efd86d11f502200b328883bd85d8bf014da31c71a447620702894cdb424a30ada27d555d9a06c1014c69522102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d953aeffffffff59b846d82682ed291f111be62672682fb2cdb3abdcd2e7d16fdf5a7ad7defdf301000000b40047304402205978fa53489429eba7bad690550b0b32bc24e44fb08c1d5ba365d524405ed8ef02203abb5f6b06882af826b84ca9946e9f4d30c7287059e6cedf1ba510d637741e78014c69522102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d953aeffffffff01383204000000000017a914a5dd1e12f6be37452b2488620cbbb16931cdbbfe8700000000

Anschließend signiert Teilnehmer 3 analog die von Teilnehmer 1 signierte Transaktion:

Output
Code: (Mit Private-Key 3 signierte Transaktion von 1)
010000000359b846d82682ed291f111be62672682fb2cdb3abdcd2e7d16fdf5a7ad7defdf302000000fdfe0000483045022100db7111070928b3e2133ce8e892ae0a4bd4f60a09909922a666b63aa2ceecc687022003de0e357abdb54f31b959921cd750d1f20a71e66e4bc6d23d2aed273e3f6c5e01483045022100f1e18083a370bb4267e41d01fa791af4f2d1ded91af51490301fe69d8ec7c2ac02204a375b1aa9d4a1573ffbe8a3b53c4c5f3d3c353304952881a3a545be7ecc229f014c69522102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d953aeffffffff59b846d82682ed291f111be62672682fb2cdb3abdcd2e7d16fdf5a7ad7defdf300000000fdfd0000483045022100c0b8087f88d01fddfc16ca725cdc94e3397a6aabc82048376f7422efd86d11f502200b328883bd85d8bf014da31c71a447620702894cdb424a30ada27d555d9a06c10147304402203bf222cb3a662f99aed033696e79361c6a776991d1722dc730aa15fd183f38b2022005d821a34759606fcb689b7d8509ebaedd33d479a4cc899bdc7041c608e8b932014c69522102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d953aeffffffff59b846d82682ed291f111be62672682fb2cdb3abdcd2e7d16fdf5a7ad7defdf301000000fdfd000047304402205978fa53489429eba7bad690550b0b32bc24e44fb08c1d5ba365d524405ed8ef02203abb5f6b06882af826b84ca9946e9f4d30c7287059e6cedf1ba510d637741e7801483045022100dcdb492f0ffc5ee4c72bf9523a8efbf90be10678f87d07c795994a63faefd29f02206509209d474acacd78ac8c217dbebd7e132f3b1dae92dcb0e3cb931e589602db014c69522102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d953aeffffffff01383204000000000017a914a5dd1e12f6be37452b2488620cbbb16931cdbbfe8700000000

Ein kurzer Check der von zwei Teilnehmern signierten Transaktion an den Gewinner zeigt:

Input
Code: (bitcoind)
decoderawtransaction 010000000359b846d82682ed291f111be62672682fb2cdb3abdcd2e7d16fdf5a7ad7defdf302000000fdfe0000483045022100db7111070928b3e2133ce8e892ae0a4bd4f60a09909922a666b63aa2ceecc687022003de0e357abdb54f31b959921cd750d1f20a71e66e4bc6d23d2aed273e3f6c5e01483045022100f1e18083a370bb4267e41d01fa791af4f2d1ded91af51490301fe69d8ec7c2ac02204a375b1aa9d4a1573ffbe8a3b53c4c5f3d3c353304952881a3a545be7ecc229f014c69522102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d953aeffffffff59b846d82682ed291f111be62672682fb2cdb3abdcd2e7d16fdf5a7ad7defdf300000000fdfd0000483045022100c0b8087f88d01fddfc16ca725cdc94e3397a6aabc82048376f7422efd86d11f502200b328883bd85d8bf014da31c71a447620702894cdb424a30ada27d555d9a06c10147304402203bf222cb3a662f99aed033696e79361c6a776991d1722dc730aa15fd183f38b2022005d821a34759606fcb689b7d8509ebaedd33d479a4cc899bdc7041c608e8b932014c69522102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d953aeffffffff59b846d82682ed291f111be62672682fb2cdb3abdcd2e7d16fdf5a7ad7defdf301000000fdfd000047304402205978fa53489429eba7bad690550b0b32bc24e44fb08c1d5ba365d524405ed8ef02203abb5f6b06882af826b84ca9946e9f4d30c7287059e6cedf1ba510d637741e7801483045022100dcdb492f0ffc5ee4c72bf9523a8efbf90be10678f87d07c795994a63faefd29f02206509209d474acacd78ac8c217dbebd7e132f3b1dae92dcb0e3cb931e589602db014c69522102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d953aeffffffff01383204000000000017a914a5dd1e12f6be37452b2488620cbbb16931cdbbfe8700000000
Code: (Electrum)
deserialize("010000000359b846d82682ed291f111be62672682fb2cdb3abdcd2e7d16fdf5a7ad7defdf302000000fdfe0000483045022100db7111070928b3e2133ce8e892ae0a4bd4f60a09909922a666b63aa2ceecc687022003de0e357abdb54f31b959921cd750d1f20a71e66e4bc6d23d2aed273e3f6c5e01483045022100f1e18083a370bb4267e41d01fa791af4f2d1ded91af51490301fe69d8ec7c2ac02204a375b1aa9d4a1573ffbe8a3b53c4c5f3d3c353304952881a3a545be7ecc229f014c69522102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d953aeffffffff59b846d82682ed291f111be62672682fb2cdb3abdcd2e7d16fdf5a7ad7defdf300000000fdfd0000483045022100c0b8087f88d01fddfc16ca725cdc94e3397a6aabc82048376f7422efd86d11f502200b328883bd85d8bf014da31c71a447620702894cdb424a30ada27d555d9a06c10147304402203bf222cb3a662f99aed033696e79361c6a776991d1722dc730aa15fd183f38b2022005d821a34759606fcb689b7d8509ebaedd33d479a4cc899bdc7041c608e8b932014c69522102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d953aeffffffff59b846d82682ed291f111be62672682fb2cdb3abdcd2e7d16fdf5a7ad7defdf301000000fdfd000047304402205978fa53489429eba7bad690550b0b32bc24e44fb08c1d5ba365d524405ed8ef02203abb5f6b06882af826b84ca9946e9f4d30c7287059e6cedf1ba510d637741e7801483045022100dcdb492f0ffc5ee4c72bf9523a8efbf90be10678f87d07c795994a63faefd29f02206509209d474acacd78ac8c217dbebd7e132f3b1dae92dcb0e3cb931e589602db014c69522102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d953aeffffffff01383204000000000017a914a5dd1e12f6be37452b2488620cbbb16931cdbbfe8700000000")
Code: (Pybitcointools)
pybtctool deserialize 010000000359b846d82682ed291f111be62672682fb2cdb3abdcd2e7d16fdf5a7ad7defdf302000000fdfe0000483045022100db7111070928b3e2133ce8e892ae0a4bd4f60a09909922a666b63aa2ceecc687022003de0e357abdb54f31b959921cd750d1f20a71e66e4bc6d23d2aed273e3f6c5e01483045022100f1e18083a370bb4267e41d01fa791af4f2d1ded91af51490301fe69d8ec7c2ac02204a375b1aa9d4a1573ffbe8a3b53c4c5f3d3c353304952881a3a545be7ecc229f014c69522102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d953aeffffffff59b846d82682ed291f111be62672682fb2cdb3abdcd2e7d16fdf5a7ad7defdf300000000fdfd0000483045022100c0b8087f88d01fddfc16ca725cdc94e3397a6aabc82048376f7422efd86d11f502200b328883bd85d8bf014da31c71a447620702894cdb424a30ada27d555d9a06c10147304402203bf222cb3a662f99aed033696e79361c6a776991d1722dc730aa15fd183f38b2022005d821a34759606fcb689b7d8509ebaedd33d479a4cc899bdc7041c608e8b932014c69522102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d953aeffffffff59b846d82682ed291f111be62672682fb2cdb3abdcd2e7d16fdf5a7ad7defdf301000000fdfd000047304402205978fa53489429eba7bad690550b0b32bc24e44fb08c1d5ba365d524405ed8ef02203abb5f6b06882af826b84ca9946e9f4d30c7287059e6cedf1ba510d637741e7801483045022100dcdb492f0ffc5ee4c72bf9523a8efbf90be10678f87d07c795994a63faefd29f02206509209d474acacd78ac8c217dbebd7e132f3b1dae92dcb0e3cb931e589602db014c69522102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d953aeffffffff01383204000000000017a914a5dd1e12f6be37452b2488620cbbb16931cdbbfe8700000000

Output
Code: (Dekodierte Transaktion)
{
  "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 Gewinner
Abschließend wird die Transaktion im Netzwerk verteilt:

Code: (bitcoind)
sendrawtransaction 010000000359b846d82682ed291f111be62672682fb2cdb3abdcd2e7d16fdf5a7ad7defdf302000000fdfe0000483045022100db7111070928b3e2133ce8e892ae0a4bd4f60a09909922a666b63aa2ceecc687022003de0e357abdb54f31b959921cd750d1f20a71e66e4bc6d23d2aed273e3f6c5e01483045022100f1e18083a370bb4267e41d01fa791af4f2d1ded91af51490301fe69d8ec7c2ac02204a375b1aa9d4a1573ffbe8a3b53c4c5f3d3c353304952881a3a545be7ecc229f014c69522102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d953aeffffffff59b846d82682ed291f111be62672682fb2cdb3abdcd2e7d16fdf5a7ad7defdf300000000fdfd0000483045022100c0b8087f88d01fddfc16ca725cdc94e3397a6aabc82048376f7422efd86d11f502200b328883bd85d8bf014da31c71a447620702894cdb424a30ada27d555d9a06c10147304402203bf222cb3a662f99aed033696e79361c6a776991d1722dc730aa15fd183f38b2022005d821a34759606fcb689b7d8509ebaedd33d479a4cc899bdc7041c608e8b932014c69522102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d953aeffffffff59b846d82682ed291f111be62672682fb2cdb3abdcd2e7d16fdf5a7ad7defdf301000000fdfd000047304402205978fa53489429eba7bad690550b0b32bc24e44fb08c1d5ba365d524405ed8ef02203abb5f6b06882af826b84ca9946e9f4d30c7287059e6cedf1ba510d637741e7801483045022100dcdb492f0ffc5ee4c72bf9523a8efbf90be10678f87d07c795994a63faefd29f02206509209d474acacd78ac8c217dbebd7e132f3b1dae92dcb0e3cb931e589602db014c69522102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d953aeffffffff01383204000000000017a914a5dd1e12f6be37452b2488620cbbb16931cdbbfe8700000000
Code: (Electrum)
broadcast("010000000359b846d82682ed291f111be62672682fb2cdb3abdcd2e7d16fdf5a7ad7defdf302000000fdfe0000483045022100db7111070928b3e2133ce8e892ae0a4bd4f60a09909922a666b63aa2ceecc687022003de0e357abdb54f31b959921cd750d1f20a71e66e4bc6d23d2aed273e3f6c5e01483045022100f1e18083a370bb4267e41d01fa791af4f2d1ded91af51490301fe69d8ec7c2ac02204a375b1aa9d4a1573ffbe8a3b53c4c5f3d3c353304952881a3a545be7ecc229f014c69522102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d953aeffffffff59b846d82682ed291f111be62672682fb2cdb3abdcd2e7d16fdf5a7ad7defdf300000000fdfd0000483045022100c0b8087f88d01fddfc16ca725cdc94e3397a6aabc82048376f7422efd86d11f502200b328883bd85d8bf014da31c71a447620702894cdb424a30ada27d555d9a06c10147304402203bf222cb3a662f99aed033696e79361c6a776991d1722dc730aa15fd183f38b2022005d821a34759606fcb689b7d8509ebaedd33d479a4cc899bdc7041c608e8b932014c69522102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d953aeffffffff59b846d82682ed291f111be62672682fb2cdb3abdcd2e7d16fdf5a7ad7defdf301000000fdfd000047304402205978fa53489429eba7bad690550b0b32bc24e44fb08c1d5ba365d524405ed8ef02203abb5f6b06882af826b84ca9946e9f4d30c7287059e6cedf1ba510d637741e7801483045022100dcdb492f0ffc5ee4c72bf9523a8efbf90be10678f87d07c795994a63faefd29f02206509209d474acacd78ac8c217dbebd7e132f3b1dae92dcb0e3cb931e589602db014c69522102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d953aeffffffff01383204000000000017a914a5dd1e12f6be37452b2488620cbbb16931cdbbfe8700000000")
Code: (Pybitcointools)
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:

  c88ee8da1de3ba70a5b131e116fd5f8090b13780e7341b8c764ed690de2ee58d

Umsetzung mit drei Teilnehmern und Schiedsrichter
Das 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 bereitstellen
Zusätzlich zu den drei Public-Keys der Teilnehmer stellt der Schiedsrichter einen Public-Key:

Code: (Public-Key)
0369f10478917b0f3ba61fa35c6b3246cb9890ce82d35d2cd2fe78516f904e9f7e

Schritt 2: Reedem-Script/Multi-Signature-Adresse generieren
Aus 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:

Code: (Adresse)
3K3aUH4HwWshjDZLe9Zi17JyygorWSJUqH
Code: (Redeem-Script)
532102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d9210369f10478917b0f3ba61fa35c6b3246cb9890ce82d35d2cd2fe78516f904e9f7e210369f10478917b0f3ba61fa35c6b3246cb9890ce82d35d2cd2fe78516f904e9f7e55ae

Code: (Dekodiertes Script)
{
  "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ätze
Jeder Teilnehmer überträgt den vereinbarten Betrag auf die in Schritt 2 generierte Multi-Signature-Adresse (drei Mal 0.001 BTC):

  607e5189ac78a411d78d6599b6d79f369e93e7fd6a8b134fa6eb57bc3043c10e

  caf80f64ba96c58db00c377288fd674baa4515e67934bd32230def956b6b75fd

  65d64c1df21b8e4be545310dab18c9c3a0c6cdfa0c756deb7a2b40f3522cdedc

Schritt 4: Erstellung der Transaktion an den Gewinner
Nach 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:

Code: (Unsignierte Transaktion)
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):

Code: (Unsignierte Transaktion)
0100000003fd756b6b95ef0d2332bd3479e61545aa4b67fd8872370cb08dc596ba640ff8ca00000000ad532102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d9210369f10478917b0f3ba61fa35c6b3246cb9890ce82d35d2cd2fe78516f904e9f7e210369f10478917b0f3ba61fa35c6b3246cb9890ce82d35d2cd2fe78516f904e9f7e55aeffffffff0ec14330bc57eba64f138b6afde7939e369fd7b699658dd711a478ac89517e6001000000ad532102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d9210369f10478917b0f3ba61fa35c6b3246cb9890ce82d35d2cd2fe78516f904e9f7e210369f10478917b0f3ba61fa35c6b3246cb9890ce82d35d2cd2fe78516f904e9f7e55aeffffffffdcde2c52f3402b7aeb6d750cfacdc6a0c3c918ab0d3145e54b8e1bf21d4cd66500000000ad532102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d9210369f10478917b0f3ba61fa35c6b3246cb9890ce82d35d2cd2fe78516f904e9f7e210369f10478917b0f3ba61fa35c6b3246cb9890ce82d35d2cd2fe78516f904e9f7e55aeffffffff02f0490200000000001976a91428ca5267ddb6438533a5b913249c0316ecf9b3f188acf0490200000000001976a914cf21085d0680987de4718c63e1d27689e7fe82f588ac00000000

Schritt 5: Signierung der Transaktion an den Gewinner
Alle Teilnehmer signieren ihre jeweiligen Transaktionen. Der Gewinner mit einer Signatur, die beiden Verlieren mit ihren beiden.

Code: (Signierte Transaktion des Gewinners)
02000000030ec14330bc57eba64f138b6afde7939e369fd7b699658dd711a478ac89517e6001000000f900483045022100f1f75d833f9cc91d45376685f5756c0d319b6362243c385dd6e0769f2cea4cb50220418491fa1bf90d02abca0447681b26bac185d4a2a64d8a2f6f7a16fe39dcf930014cad532102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d9210369f10478917b0f3ba61fa35c6b3246cb9890ce82d35d2cd2fe78516f904e9f7e210369f10478917b0f3ba61fa35c6b3246cb9890ce82d35d2cd2fe78516f904e9f7e55aefffffffffd756b6b95ef0d2332bd3479e61545aa4b67fd8872370cb08dc596ba640ff8ca00000000f800473044022062abe0047b20726ced98050187ed37d195586da74c4f5a4e7f70aa456cc65e98022065d40db17deef1fd9e7a6fb6a3b766507e8a373cc7fc3b203550cc15f773b8d9014cad532102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d9210369f10478917b0f3ba61fa35c6b3246cb9890ce82d35d2cd2fe78516f904e9f7e210369f10478917b0f3ba61fa35c6b3246cb9890ce82d35d2cd2fe78516f904e9f7e55aeffffffffdcde2c52f3402b7aeb6d750cfacdc6a0c3c918ab0d3145e54b8e1bf21d4cd66500000000f900483045022100d51a2dbd996e69b452ee8fc3b987aec952c9d9bca6d6bd7ab4eef3083cd651dc0220209db65fec66ec7b74b66a7871b7f6b815524b8349f2efee90d622d1cfc558d7014cad532102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d9210369f10478917b0f3ba61fa35c6b3246cb9890ce82d35d2cd2fe78516f904e9f7e210369f10478917b0f3ba61fa35c6b3246cb9890ce82d35d2cd2fe78516f904e9f7e55aeffffffff01383204000000000017a914cf9b35930cb2d32980e1c293bf2a9e0e588113878700000000

Code: (Signierte Transaktion der Verlierer)
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:

Code: (Signierte Transaktion durch den Schiedsrichter)
02000000030ec14330bc57eba64f138b6afde7939e369fd7b699658dd711a478ac89517e6001000000fd890100483045022100f1f75d833f9cc91d45376685f5756c0d319b6362243c385dd6e0769f2cea4cb50220418491fa1bf90d02abca0447681b26bac185d4a2a64d8a2f6f7a16fe39dcf93001473044022065a494a0f2915ca84bdbfce4a3dda32478b947e5e2d40b1fe7ec91f72bcf82dd02203d11cc71693b393d2f95e76da61671f8dad03180b5c8b750e7dfc96a2657af8d01473044022065a494a0f2915ca84bdbfce4a3dda32478b947e5e2d40b1fe7ec91f72bcf82dd02203d11cc71693b393d2f95e76da61671f8dad03180b5c8b750e7dfc96a2657af8d014cad532102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d9210369f10478917b0f3ba61fa35c6b3246cb9890ce82d35d2cd2fe78516f904e9f7e210369f10478917b0f3ba61fa35c6b3246cb9890ce82d35d2cd2fe78516f904e9f7e55aefffffffffd756b6b95ef0d2332bd3479e61545aa4b67fd8872370cb08dc596ba640ff8ca00000000fd880100473044022062abe0047b20726ced98050187ed37d195586da74c4f5a4e7f70aa456cc65e98022065d40db17deef1fd9e7a6fb6a3b766507e8a373cc7fc3b203550cc15f773b8d90147304402202c18c10c8816e9d1974049cf07a4ced41828bbf692411d6f0e9eb96b1af5a69d0220597d7577f867065f58157b195aed8987bc102d313a0be273166ea2a7e00f258c0147304402202c18c10c8816e9d1974049cf07a4ced41828bbf692411d6f0e9eb96b1af5a69d0220597d7577f867065f58157b195aed8987bc102d313a0be273166ea2a7e00f258c014cad532102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d9210369f10478917b0f3ba61fa35c6b3246cb9890ce82d35d2cd2fe78516f904e9f7e210369f10478917b0f3ba61fa35c6b3246cb9890ce82d35d2cd2fe78516f904e9f7e55aeffffffffdcde2c52f3402b7aeb6d750cfacdc6a0c3c918ab0d3145e54b8e1bf21d4cd66500000000fd890100483045022100d51a2dbd996e69b452ee8fc3b987aec952c9d9bca6d6bd7ab4eef3083cd651dc0220209db65fec66ec7b74b66a7871b7f6b815524b8349f2efee90d622d1cfc558d70147304402204f7771c6dbde9b1197f68ca14f0bb9abafd214ce27be5ec69064a462ebe55261022061ae00f95787528936d4b3a91333b6a3bd59838e36512e95b2309674614d7ad70147304402204f7771c6dbde9b1197f68ca14f0bb9abafd214ce27be5ec69064a462ebe55261022061ae00f95787528936d4b3a91333b6a3bd59838e36512e95b2309674614d7ad7014cad532102b81e1f104cfe73bdaeff62181c691cc34ea4360053891ddc42d3b8992c8fc1ca21031ea604b64c7e36131966c9b6e959a12a2a85799a4cff37601ceda61f267e3b142102a3d7a35c6bc98f48ba8037ce22129efb9c497ca70c5362ece181d9dfb31819d9210369f10478917b0f3ba61fa35c6b3246cb9890ce82d35d2cd2fe78516f904e9f7e210369f10478917b0f3ba61fa35c6b3246cb9890ce82d35d2cd2fe78516f904e9f7e55aeffffffff01383204000000000017a914cf9b35930cb2d32980e1c293bf2a9e0e588113878700000000

Schritt 6: Broadcast der Transaktion an den Gewinner
Abschließend wird die Transaktion im Netzwerk verteilt:

  77004c571569f355474988c0bee82a178459c1b8b4d42d6d504e331358b97e80

Nützliche Links

tl;dr
1) Bedingungen vereinbaren. 2) Schiedsrichter gewinnen. 3) Keys bereitstellen. 4) Einsätze einzahlen. 5) Gewinner festlegen. 6) Kohle kassieren.
Jump to: