Roger_Murdock
Active Member
The name "replay attack" seems really unfortunate to me -- because I don't see how "replaying" transactions is an "attack." Of course when you publicly broadcast a transaction, anyone who wants to can include it in any blockchain they want for which it's a valid transaction. Here's a hypothetical conversation that outlines how I see things:
Bitcoin User: "Hey, I received a transaction and it looks like it was included in a block. That's good."
Me: "Yeah, that is good. Oh, and it looks like your transaction was also mined into another block, one that's extremely likely to be orphaned."
Bitcoin User: "Oh? Huh... well, hey, I guess that's good too, right? Now I'm covered in two scenarios. In the unlikely event that that second block isn't orphaned but instead orphans the first, I've still received the funds."
Me: "Yes, absolutely. But there's a small wrinkle. Some people, a minority, are actually intentionally extending the chain that includes that second block, even though it's pretty clearly in the process of being orphaned."
Bitcoin User: "Oh, well that's ... weird. And actually kinda sad. Maybe we should tell them?"
Me: "You could try. But they actually think they know what they're doing. In fact, they'd be willing to trade you real value for outputs that exist only on their in-the-process-of-being-orphaned chain, ones that don't exist on the much higher-PoW chain."
Bitcoin User: "Wait, what? Did these guys not read the whitepaper?"
Me: "I don't think they understood it."
Bitcoin User: "So in order to take advantage of these people's... well, let's just be nice and say 'idiosyncratic value preferences,' I just need to figure out a way to segregate my outputs so that I can sell off these orphaned 'coins' for more actual bitcoins?"
Me: "That's right."
Bitcoin User: "Hmm, I suppose that splitting my outputs might be a little tricky, but certainly doable. Thanks for the heads up."
Bitcoin User: "Hey, I received a transaction and it looks like it was included in a block. That's good."
Me: "Yeah, that is good. Oh, and it looks like your transaction was also mined into another block, one that's extremely likely to be orphaned."
Bitcoin User: "Oh? Huh... well, hey, I guess that's good too, right? Now I'm covered in two scenarios. In the unlikely event that that second block isn't orphaned but instead orphans the first, I've still received the funds."
Me: "Yes, absolutely. But there's a small wrinkle. Some people, a minority, are actually intentionally extending the chain that includes that second block, even though it's pretty clearly in the process of being orphaned."
Bitcoin User: "Oh, well that's ... weird. And actually kinda sad. Maybe we should tell them?"
Me: "You could try. But they actually think they know what they're doing. In fact, they'd be willing to trade you real value for outputs that exist only on their in-the-process-of-being-orphaned chain, ones that don't exist on the much higher-PoW chain."
Bitcoin User: "Wait, what? Did these guys not read the whitepaper?"
Me: "I don't think they understood it."
Bitcoin User: "So in order to take advantage of these people's... well, let's just be nice and say 'idiosyncratic value preferences,' I just need to figure out a way to segregate my outputs so that I can sell off these orphaned 'coins' for more actual bitcoins?"
Me: "That's right."
Bitcoin User: "Hmm, I suppose that splitting my outputs might be a little tricky, but certainly doable. Thanks for the heads up."