Can Nano prove its immutability?

Hello! Do Nano package world state + transactions into a block at any point? If not, I don't see how the chain will ever be verifiable, since the hash root is always changing.

This question sounds similar to the issue I raised here about possible non-deterministic outcomes of account forks: Does asynchronous processing of "change" blocks mean that block confirmation is non-deterministic?

If I am understanding your question correctly, then the answer is no, currently there is no objective way to verify the global state of the Nano ledger at a given point in time. A few people have proposed ways that we might rectify this. But currently there is a certain small amount of "trust" involved in the process of bootstrapping a node. I definitely think this issue can be resolved, but it has not been resolved yet.

3 Likes

Also see this thread for some of the ideas bouncing around to resolve this issue: Some long-term improvements of ORV consensus

Specifically the bit that begins with: "3 - Change rep is modified to be more conservative."

2 Likes

OP question isn’t directly related to that.

Nano uses an append only ledger where the links between blocks are immutable, works just like other “blockchains”.

Every block in an account chain has a previous field that is the previous blocks hash. Changing any block in the account change would break all links past that point. You can follow the links all the way to the genesis block by following the previous field to the first block then following the link field of the open block of an account chain.

1 Like

I think OPs confusion comes from a lack of global canonical order. A block lattice has canonical ordering within account-chains.

An account will always be changing in Nano. Meaning, we could never look at a static hash string of the account and determine if it isn't corrupted.

We don't finalize a block like in ETH.

For us to verify correctness, we would need some sort of algorithm that keeps track of the latest verified hash and then continuously updates the verification proof, right? Can that algorithm be just to follow the links back?

So what you're saying is, we can't verify global state because there's no implemented method to preform the verification. Now it's plausible to implement such a method since Nano has a hashing chain that in theory can verify its state, or is that not part of the solution at all? Is the hashing chain in use?

Check my answer over this one also.

From your responses, it sounds like you may not yet have understood the "block lattice" structure used by Nano. The Nano ledger uses a significantly different data structure for storing transaction history compared to most other cryptocurrencies. It might be worth reading the section about the lattice structure in the Nano whitepaper if you haven't already. That might clarify your questions a bit.

Please forgive me if I am still misunderstanding.

I'm probably misinterpreting something. Thank you for your answer!

Picture one blockchain for each account but also linked with each other every time there's a transaction between them.
In a way, several blockchains that are held together with cryptoglue™
If you know an address you can verify it's state just like any other blockchain, if you want to verify the whole lattice you get all frontier blocks and verify from those.
Better yet, each block has two connections (previous and link) instead of one.

And we do cement our blocks, that's the whole point of the ORV.
So to answer your question: yes, Nano can prove its immutability.

I'm not really following you.

Nano's ledger is an immutable append-only structure where each state change is immutably linked (through a hash pointer) and finality is achieved through the confirmation (ORV) process.

Each account has canonical ordering (all nodes will have the same block for a given account at a given block height).