Perpetually KYC’d Coins Using Evil Covenants
Some governments, such as the EU, are working hard on crippling Bitcoin with excessive KYC laws. This also means that protocol updates could be abused to introduce a ‘perpetual KYC’ contract. Financial institutions would likely tend to welcome such a mechanism as it simplifies regulatory clarity while preserving the advantages they care about, e.g., quick international settlement and a limited supply.
Adversarial thinking is what keeps bitcoin secure. So we should explore and become aware of the different ways to implement “evil covenants”. For example, combining the opcodes OP_CTV
, OP_CSFS
, OP_CAT
, and OP_EXPIRE
enables such a perpetual KYC contract:
- Every two weeks the government signs the Merkle root of their whitelist. Additionally, that signature signs the current date
- The contract checks the government’s signature using
OP_CSFS
- The contract verifies the inclusion proof for the recipient’s address using
OP_CAT
- The contract enforces the covenant using
OP_CTV
- The contract uses
OP_EXPIRE
to ensure that the government’s signature is at most 2 weeks old
Features
- The whitelist can be updated without having to change the contracts of existing UTXOs
- The government does not have to run a cosigning server
- The government does not have to use a hot key. It can sign offline using air-gapped devices
- The government can add addresses to the whitelist at any time
- The government can remove addresses from the whitelist every two weeks
- The government has to publish only the updates to the list and their new signature on static file servers
- The contract can tighten (or relax) spending limits. E.g., send at most $1000 to non-KYC’d addresses. Or receiving more than $50000 could require more strict KYC processes.
- Self custody becomes much safer as attackers cannot steal KYC’d coins
- The government can force users to update their contracts
- The government can revoke its control of BTC held under this policy by whitelisting some non-covenant address