Revocable Sequence Maturity Contracts
A revocable sequence maturity contract is a special output script within a bitcoin transaction that allows a sender to be able to revoke a payment. The main use case for such a contract is within the Lightning Network in which the revocation of transactions is used in breach remedy transactions to be able to invalidate previously negotiated channel balance and commitment transactions.
The SigScript which encodes a RSMC looks like this:
OP_IF 144 OP_CECKSEQUENCEVERIFY OP_HASH160 <Bob's key> OP_EQUALVERIFY OP_CHECKSIG OP_ELSE 2 <Alice's secret revocation key><Bob's secret revocation key> 2 OP_CHECKMULTISIGVERIFY OP_ENDIF
The semantics of this script are that the output created by the transaction having this Script can only be spend by Bob after 144 blocks. If however if Alice and Bob work together providing their secrete key the output can be spent more quickly. In the case of the lightning network this SigScript will be one output in the. If a new balance is negotiated which means that a news commitment transaction is created the old one is invalidated by Bob sharing his secret revocation key with Alice.
The key alone is of no use for alice. Since she could only claim the output if Bob publishes his old commitment transaction. If he however does so in the frist 144 blocks after publishing Alice will control the unspent output of this commitment transaction.