[Brainstorming] Namecoin SPV

biolizard89
Posts: 1932
Joined: Tue Jun 05, 2012 6:25 am
os: linux

Re: [Brainstorming] Namecoin SPV

Post by biolizard89 » Sat Jul 29, 2017 4:46 pm

dolphin wrote:Reviving an old thread... I was away working on something fundamentally different for a while, but came back to NameCoin lately. Looking at forum posts, I have a feeling that a completely trustless SPV is not implemented yet. Is that so or am I missing important updates in the buzz?

Is it still worthwhile looking into implementation of proposals, I've made a while ago or similar better alternatives? I have some cycles to spare and could look into implementing and submitting a pull request but thought to check with the community first.

Thank you,
Dolphin
I guess it depends on the definition of "completely trustless". Technically SPV is by definition not completely trustless, in the sense that it trusts miners to verify transaction validity. Of course, a full node is also not completely trustless, in the sense that it trusts miners to verify transaction ordering.

Anyway, if the question is "can we verify that a 3rd party isn't hiding name transactions from us, assuming that the miners are trusted", then the best thing we have right now is the leveldbtxcache mode of libdohj-namecoin. It does meet the security requirement I just described, but it does need to download the most recent 1 year of full blocks (as well as all historical block headers, which is always the case for SPV clients). This means it takes around 10 minutes to sync initially (at current blockchain usage).

If you're interested in experimenting with Merkle commitments so that full blocks don't need to be downloaded, you might be interested in the Electrum-NMC work that's ongoing by Joseph and Ahmed. Electrum's protocol has a UTXO commitment feature that might be adaptable to the UNO (unspent name output) set. This would be easier to prototype since it doesn't need a consensus fork, and it's actually useful by itself too (in the sense that it makes it much easier to detect misbehaving Electrum servers).
Jeremy Rand, Lead Namecoin Application Engineer
NameID: id/jeremy
DyName: Dynamic DNS update client for .bit domains.

Donations: BTC 1EcUWRa9H6ZuWPkF3BDj6k4k1vCgv41ab8 ; NMC NFqbaS7ReiQ9MBmsowwcDSmp4iDznjmEh5

domob
Posts: 1083
Joined: Mon Jun 24, 2013 11:27 am
Contact:

Re: [Brainstorming] Namecoin SPV

Post by domob » Mon Jul 31, 2017 5:43 pm

If you are interested to look into UNO commitments, there's also https://github.com/domob1812/namecore/tree/uno-trie which I started to work on two years ago. It might be useful to base further work on, but maybe it is also easier to just start from a clean slate.
BTC: 1domobKsPZ5cWk2kXssD8p8ES1qffGUCm | NMC: NCdomobcmcmVdxC5yxMitojQ4tvAtv99pY
BM-GtQnWM3vcdorfqpKXsmfHQ4rVYPG5pKS
Use your Namecoin identity as OpenID: https://nameid.org/

biolizard89
Posts: 1932
Joined: Tue Jun 05, 2012 6:25 am
os: linux

Re: [Brainstorming] Namecoin SPV

Post by biolizard89 » Tue Aug 01, 2017 9:50 am

domob wrote:If you are interested to look into UNO commitments, there's also https://github.com/domob1812/namecore/tree/uno-trie which I started to work on two years ago. It might be useful to base further work on, but maybe it is also easier to just start from a clean slate.
Honestly I'm a bit skeptical that it's a good idea to try to softfork for UNO commitments anytime soon; Bitcoin folks ran into major issues with their UTXO commitment stuff related to mining incentives. I'd be a lot more comfortable with a non-consensus-critical method (which could be based on your branch, or based on Electrum).
Jeremy Rand, Lead Namecoin Application Engineer
NameID: id/jeremy
DyName: Dynamic DNS update client for .bit domains.

Donations: BTC 1EcUWRa9H6ZuWPkF3BDj6k4k1vCgv41ab8 ; NMC NFqbaS7ReiQ9MBmsowwcDSmp4iDznjmEh5

domob
Posts: 1083
Joined: Mon Jun 24, 2013 11:27 am
Contact:

Re: [Brainstorming] Namecoin SPV

Post by domob » Wed Aug 02, 2017 6:50 pm

biolizard89 wrote:
domob wrote:If you are interested to look into UNO commitments, there's also https://github.com/domob1812/namecore/tree/uno-trie which I started to work on two years ago. It might be useful to base further work on, but maybe it is also easier to just start from a clean slate.
Honestly I'm a bit skeptical that it's a good idea to try to softfork for UNO commitments anytime soon; Bitcoin folks ran into major issues with their UTXO commitment stuff related to mining incentives. I'd be a lot more comfortable with a non-consensus-critical method (which could be based on your branch, or based on Electrum).
I've not followed the Bitcoin discussions about this (actually, not even really thought about UNO commitments since 2015), so I'm not yet convinced that there are issues. But I'm happy either way.
BTC: 1domobKsPZ5cWk2kXssD8p8ES1qffGUCm | NMC: NCdomobcmcmVdxC5yxMitojQ4tvAtv99pY
BM-GtQnWM3vcdorfqpKXsmfHQ4rVYPG5pKS
Use your Namecoin identity as OpenID: https://nameid.org/

Post Reply