Nimble Grin stack

This is just to gather ideas and brainstorm a bit.

I think a regular user would want to have the most minimal fully verifying node. This isn’t only a node, but everything that comes to avoid trusting third parties. It is possible to have a much lighter fully verifying grin node by doing something in the lines of this discussion here https://gist.github.com/phyro/347f16ba4dfd32ca63c18258681c7111 (there are some open questions like how does it interact with other actual full nodes, does it open attack vectors for syncing etc.)

Having a full node isn’t enough though, you want to also be querying the data from your own node and not rely on any external party like public chain explorers because they have acted malicious in the past for some projects (BitGrin).

A nimble Grin stack for me would be:
1.) nimble node
2.) nimble explorer
3.) grin-wallet (or a nimble variant - whatever that might be)

Does this make sense and are there any other tools that might make sense?

6 Likes

Great idea. Not much to add aside from the fact it is the best idea I have found along with the work on armored slates to give users a happy Grin experience in the middle term, by having full and trustless control over their funds on a simple mobile app.

Do we know if there is room to enhance the battery life issue? that is the main question. It would also depend on traffic.

That’s a nice undertaking that I would love to see work on, why not through a funding. Ivan has done Ironbelly which is a Grin mobile wallet, and I believe the two David are currently working on a mobile wallet as well for Grin++

In the meantime, good to have put the Gist together for the discussions, never saw the gist before^

Nimble Grin Stack :+1:

Thank you, it is a scratch of the idea, not enough details imo - I’ve not even touched things like does it affect the api calls etc.
I don’t know about the battery life, it was actually David that mentioned to me that the battery would likely be a problem. Another potential issue for mobile would be the data transfer because bandwidth is often limited on mobile.
I didn’t know they were working on the mobile wallet, that’s great. I’m silently hoping it’s a fully verifying node though I doubt it.

Instead of verifying bulletproofs individually during the live verification of the blockchain, nimble nodes could wait some time intervals and verifying them by batch instead, which is much less costly.

That would make those nodes not really contributing to the live verification by verifying txs individually, but I guess that’s ok. This method could be extended by also pruning the data as it goes, making the verification quite asynchronous, but the major benefit remains of having a trustless wallet.

Tricky choices to be made and non trivial project. lots more thoughts would be probably required as you have said

We’ve been thinking along similar lines and would be interested in collaboration somehow.

this is actually pretty interesting and useful, does this require any type of fork?

my guess is no. Theoretically, I could fork grin code and modify the client to merge the kernel curve points and start dropping the range proofs. It doesn’t impact consensus in any way, it does however require nodes being aware of the capabilities of other nodes (new node bootstrap, querying if they start asking each other questions at some points etc.)

2 Likes