If you had a trusted consensus hash (or the txid of a transaction that contained one), you could build a SNV client right now using the Python 2 library (see
blockstack/lib/snv.py ). No one really asks about it though.
I’m talking about building a light client that can gather a trusted consensus hash. Because without a trusted consensus hash it becomes a recursive problem
We can use BIP37 bloom filtering to get BTC peers to filter all possible Blockstack transactions. Then we can apply BNS rules on top, like a normal full BNS node.
Should work right?
Some possible concerns -
SPV attack vectors are inherited, and will have broader implications for a state management system based on BTC transactions like BNS.
The way Blockstack transactions are structured today, they cannot be bloom filtered.
#2 can be fixed by adding another OP_RETURN output to Blockstack transactions - a static ‘tag’ that can be filtered using BIP37 rules.
#1 can be fixed with a trade-off by limiting source of block headers to a set of semi-trusted BTC nodes. Although this is debatable but this is a better than having no source of trusted consensus hash.