Kann mir jemand ELI5 für Bitcoin Atomic Swaps?

Ich lese die Wiki-Seite hier: https://en.bitcoin.it/wiki/Atomic_cross-chain_trading

Ich verstehe, dass ein Benutzer eine Transaktion erstellen kann, ohne sie zu signieren und sie nicht an das Netzwerk zu senden . Ich weiß, dass dies das Hauptkonzept ist, um atomare Swaps zum Laufen zu bringen. Aber ich bin ein bisschen verwirrt, wie jeder Schritt genau funktioniert. Kann jemand jede Zeile erklären?

 A picks a random number x

 A creates TX1: "Pay w BTC to <B's public key> if (x for H(x) known and signed by B) or (signed by A & B)"

 A creates TX2: "Pay w BTC from TX1 to <A's public key>, locked 48 hours in the future, signed by A"

 A sends TX2 to B

 B signs TX2 and returns to A

 1) A submits TX1 to the network

 B creates TX3: "Pay v alt-coins to <A-public-key> if (x for H(x) known and signed by A) or (signed by A & B)"

 B creates TX4: "Pay v alt-coins from TX3 to <B's public key>, locked 24 hours in the future, signed by B"

 B sends TX4 to A

 A signs TX4 and sends back to B

 2) B submits TX3 to the network

 3) A spends TX3 giving x

 4) B spends TX1 using x

 This is atomic (with timeout).  If the process is halted, it can be reversed no matter when it is stopped.

 Before 1: Nothing public has been broadcast, so nothing happens
 Between 1 & 2: A can use refund transaction after 72 hours to get his money back
 Between 2 & 3: B can get refund after 24 hours.  A has 24 more hours to get his refund
 After 3: Transaction is completed by 2
 - A must spend his new coin within 24 hours or B can claim the refund and keep his coins
 - B must spend his new coin within 72 hours or A can claim the refund and keep his coins

 For safety, both should complete the process with lots of time until the deadlines.

Antworten (2)

Ich denke, das ist einfacher zu verstehen, wenn Sie ein wenig abstrahieren. Auf hoher Ebene ist ein Atomic Swap sehr einfach: Die beiden Parteien richten Transaktionen so ein, dass sie beide ihre Coins nehmen können, indem sie das Urbild an einen (vorab festgelegten) Hash weitergeben H. Zunächst kennt eine Partei das Urbild. Sie müssen es offenbaren, um ihre Münzen zu nehmen, so dass die Handlung des Nehmens ihrer Münzen ausreicht, damit die andere Partei ihre Münzen nehmen kann.

Genauer gesagt funktioniert der Tier Nolan im OP wie folgt.

  1. A wählt zufällig einen aus xund gibt H(x)B.
  2. A schickt ihre Münzen zu einem 2-von-2-Ausgang, den B nehmen kann, wenn er aufdeckt x. In ähnlicher Weise sendet B seine Münzen an einen 2-von-2-Ausgang, den A nehmen kann, wenn sie aufdeckt x. Dies sind TX1 bzw. TX3.
  3. (Bevor sie diese übertragen, erstellen sie die „Rückerstattungs“-Transaktionen TX2 und TX4 mit Sperrzeit. Es ist wichtig, dass die Sperrzeit von A viel länger ist als die von B, sodass B, wenn sie ihre Rückerstattung erhält, lange Zeit hatte, um seine Rückerstattung zu erhalten, und nicht dabei ist Gefahr, dass A verrät , dass xer auch seine Münzen nimmt.)
  4. An diesem Punkt nimmt A ihre Münzen und enthüllt x.
  5. Als er dies sieht, lernt B xund nimmt seine Münzen.

Es gibt eine Variante davon namens Coinswap , bei xder die Blockchain nicht getroffen wird, bei der die Schritte (4) und (5) durch A ersetzt werden, die die xOff-Chain aufdecken, und die Unterzeichner sich dann einfach gegenseitig die Coins geben, nur xals Fallback. Dies verkompliziert die Locktime-Struktur und erfordert auch anders geformte Transaktionen, die aufbewahrt werden müssen, xund deren Hash von der Blockchain, was das Protokoll leider sehr beängstigend aussehen lässt, aber das ist alles, was passiert.

Grundsätzlich hängt dies von der Kenntnis der Zufallszahl X ab :

Bitcoin

      TX1      (To redeem: reveal secret number X or refund)
A   -------> B  ---->

Altmünze

     TX2       (To redeem: reveal secret number X or refund)
B   -------> A  ---->
  • In beiden Fällen ist die Rückerstattungstransaktion (unterzeichnet von A und B) also eine Sperrzeittransaktion, sodass der Absender das Geld nach einer bestimmten Zeit zurückfordern kann
  • Um nun das Geld in TX2 zu beanspruchen, wird A X auf der Altcoin-Blockchain preisgeben (durch Ausgabenskript)
  • B liest dieses geheime X aus der Altcoin-Blockchain und löst Geld von TX1 in der Bitcoin-Blockchain ein

Betrachten wir nun einige Fälle:

  • Wenn A das Geheimnis X nie preisgibt : Zuerst erhält B seine Rückerstattung und nach 24 Stunden erhält A seine Rückerstattung. Der Unterschied in den Rückerstattungszeiten besteht darin, den Fall zu vermeiden, in dem A die Rückerstattung erhält und dann X offenbart, sowohl Bitcoin als auch Altcoins zu behalten.
  • A enthüllt das geheime X auf der Altcoin-Blockchain: B muss X auf der Bitcoin-Blockchain enthüllen, bevor die Sperrzeit für Rückerstattungstransaktionen von A beginnt.