DSV acts as Replay Protection and Protects your Coins from Replay Attacks stale2000 Follow Nov 4, 2018 · 3 min read

Recently there was a announcement that Bitcoin.com will be using the new ABC client script op code, op_checkdatasigverify, (DSV for short) for its transactions. There has been a misleading narrative going on regarding this decision and its consequences.

This narrative is that by using DSV for transactions, Bitcoin.com, and others, are putting their users’ coins in danger if the ABC client ends up losing the Bitcoin Cash fork hash war to the competing Satoshi’s Vision(SV) client. IE, that if companies use DSV, then they put their users’ coins at risk of double spend, reorg, and other 51% style attacks.

In fact, it is quite the opposite. Using DSV for your transactions actually protects your coins from being lost due to replay attacks. It allows you to easily split your coins between the two different chains, and prevents them from being accidentally spent on the other chain. Regarding reorg attacks, the susceptibility of user’s coins to these types of attacks remains unchanged regardless of whether those transactions use DSV or not.

Why Replay Attacks are Dangerous

Imagine that I want to sell 1 ABC coin to someone for 400$. If I send a transaction to someone’s wallet, but don’t use DSV or another form of voluntary replay protection, then the transaction would be valid on both the ABC chain and the SV chain. If I publish this transaction without replay protection, then it is possible that when I send 1 ABC to the merchant, that it will also send 1 SV coin.

If the SV coin is worth 500$ in our hypothetical, then I will have paid 900$ worth of crypto to the merchant when I only intended to pay 400$ worth!

Protecting Against Replay Attacks

If I send crypto tokens to someone, I want to be absolutely sure that I am only sending the coins that I am intended to. Doing otherwise means that I could be overpaying unnecessarily.

Transactions that are created using DSV, will only appear on the ABC chain, and not the SV chain. This is because DSV transactions are not valid on the SV client, and therefore will not be included in the SV blockchain. This will allow you to later send both your ABC coins and your SV coins, to different people, as opposed to sometimes sending them when you did not intend to.

By not using replay protection for your transactions, you actually put your coins in danger. You risk accidentally publishing coins on both chains, when you only meant to publish them on one chain. It is disheartening that people on social media are condemning good business practices, like voluntary replay protections and safe coin splitting, that protect people’s coins.

On Reorg Attacks

A point that is often brought up is that if the ABC chain loses the hashwar then these businesses that use DSV transactions could suffer from reorg attacks. It is true that if the ABC chain has significantly less hashpower than an attacker then that attacker may be able to double spend your ABC transactions. But regardless of whether those coins do or do not use DSV, they are equally susceptible to reorg attacks.

Also, this is equivalent to saying that if your transactions are in danger of being double spent, then you should never ever spend them. But this argument doesn’t make any sense on its face. If you never ever spend your coins on a chain, then those coins would have no value. They may as well not exist.

So even if your coins are in danger of being double spent or stolen, this is still a better situation to be in than one where you effectively throw your coins away by deciding to never use them! Cryptocurrency that is never spent is as valueless as buried gold that is never dug up.

This is also completely irrelevant to the SV chain and DSV! If someone double spends your ABC coins, then your SV coins wouldn’t be affected at all, because you used DSV to split them and completely separate their fate.

A Path Forward

Regardless of whether you support the ABC client or the SV client, we should be encouraging businesses to engage in safe practices that protect its users’ coins. Using DSV to split people’s coins does precisely that.