Thanks for your responses. Just for some background, my use-case in a nutshell is -
"Resolve human readable name
foo.bar.id to a Public Key"
As you’re going through my reply, please consider that I’m looking at Blockstack as a name service. Not a “decentralised computing network”.
Maybe Blockstack is not intended to solve my use case at all, please do let me know if you feel that is the case.
You can use the SNV protocol to determine whether or not a particular transaction happened in the past, given a later trusted Blockstack transaction (more specifically, the consensus hash from that transaction).
It seems like this might not be a critical part for most apps on Blockstack - since references to SPV are few and documentation very sparse, but for my use case it is very important.
Where can I find details about this process? I mean code/documentation/instructions.
That said, Stacks v2 addresses both limitations
Will certainly go though your documents to understand how it works
While it will never be fully feasible to for every end-user to run their own node, neither is it in Bitcoin
I don’t think that’s a fair comparison mate
Bitcoin’s function is to transfer value from A to B, and store it at B securely
A is sending money to B via TRUSTED_NODE_1 -> Low risk (maybe TRUSTED_NODE_1 can drop A’s transaction. not much more)
B is checking address transactions via TRUSTED_NODE_2 -> Low Risk (maybe TRUSTED_NODE_2 incorrect tells B about a fake transaction)
=> Blockstack Naming Service
Blockstack’s function is to map a public key and arbitrary data to a human readable name.
A creates a name A_NAME via TRUSTED_NODE_1 -> Low Risk (Maybe TRUSTED_NODE_1 can drop the name registration)
B resolves A_NAME via TRUSTED_NODE_2 -> Extremely High Risk! This is the core functionality of BNS.
Moreover - Bitcoin has an economic mechanism to encourage Network diversity. BNS nodes have no such thing.
but then the quote you pulled out says all they have to do is have faith in Google’s DNS resolver to return something positive? How do you trust that? By running your own full DNS node right…?
I think the point that the author (and I) were trying to emphasise is - in both DNS and in Blockstack, there is a similar deficiency of having to trust one single resolver and having no way to prove the result.
But at least in DNS there are other mechanisms HTTPS which works because of assumed trust in centralised CAs to make web browsing secure. And specs like DNSSEC also help in some scenarios.
If my users can locally verify the BNS response using just a trusted Bitcoin node, that would be a reasonable tradeoff. The problem is that right now they also need
- A separate trusted BNS node to get the consensus hash
- A separate trusted node which runs the SPV process and communicates with the Bitcoin Node.
That’s a big ask don’t you think?