@pete @pwuille Here's how this can be implemented:
- Require actor objects to have identity proof that cryptographically links bitcoin address to actor ID. The mechanism of identity proofs is described in FEP-c390 (this proposal relies on DIDs, but bitcoin address can be represented as did:pkh identifier).
- Also require actor objects to contain a proof of burn. For example, it can be an ID of transaction that burns BTC.
- When the server receives activity from some actor for the first time, it should verify the proof of burn (for example, by connecting to a bitcoin node, looking up the transaction, and checking the sender address and the burnt amount). If the proof is correct, the server accepts activity. Otherwise it rejects activity and adds actor to a blacklist (temporarily or permanently).
The only problem I see here is that transaction lookup can be expensive.