Cancelling transactions

3

I know it is currently not possible to cancel transactions in the Bitcoin. However, say someone wants to implement such mechanism in an altcoin. Is it theoretically possible without damaging the open nature of cryptocurrencies ? Do we have the required primitives for it ?

SpiderRico

Posted 2017-12-11T10:08:08.007

Reputation: 311

1It could probably be implemented by altcoin developers, or even bitcoin developers, in such a manner that both parties agree to the cancellation of the transaction, therefore avoiding double the transaction fees. As long as the transaction that is being canceled is still unspent.Monstrum 2017-12-11T14:25:24.093

Answers

0

There are proposals to introduce new opcodes which allow an parent output script to impose spending conditions onto the output(s) of the spending child transaction.

You could therefore "ensure" that the child transaction outputs would be "revocable", which is similar to what you are describing.

This output script could be a RSMC contract. If I wish to "cancel" the spending transactions outputs within a timeout period, I can sweep the output with the revocation key.

The proposed script opcode OP_PUSHTXDATA pushes transaction elements from the spending (child) transaction to the stack during verification, and this could include the output script data of the child transaction:

Parent transaction:

  • Output script: OP_PUSHTXDATA pushes spending child transaction output script elements onto stack, to verify that it is a revocable output.

Child transaction:

  • Input: Spends parent transaction
  • Output Script: Must be a revocable output with conditions enforced by parent transaction output script.

James C.

Posted 2017-12-11T10:08:08.007

Reputation: 2 183

0

One of the fundamental principals of cryptocurrency is to be able to operate without the need of a trusted central entity. I can't see how a transaction can be cancelled or reversed without involving a trusted central entity to arbitrate the transaction.

However we also have cryptocurrency like Ripple. In my opinion Ripple is not a cryptocurrency because of the centralized nature, but well what do I know.

Maybe in the future some genius will discover a method to implement this without a central entity :)

Chak

Posted 2017-12-11T10:08:08.007

Reputation: 1 187

@Mark: doesn't that just force vendors/recipients to "spend" received amounts before dispatching the goods (or providing services etc)?RedGrittyBrick 2019-06-28T14:06:01.180

@RedGrittyBrick, yes. Adding a cancellation system without a central authority is quite possible. Adding one that's "fair" isn't, because "fairness" is a human concept, not a mathematical one.Mark 2019-06-28T20:52:44.060

As long as the transaction outputs haven't been spent, it's easy to undo a transaction without a central authority: add a transaction type of "undo" that reverses a prior transaction to your coin's definition, and undoing a transaction is simply a matter of having that transaction accepted into the blockchain.Mark 2019-01-03T01:06:57.220

0

You surely could inplement the cancelling of an unconfirmed transaction by asking other clients to delete it from their memory. But I guess this could open door for transaction spam in your network (I mean people creating and then cancelling transactions at no cost).

Kozuch

Posted 2017-12-11T10:08:08.007

Reputation: 1 012