3

Typical mining guarantees that it is too difficult to recalculate block hashes, therefore, the ledger is practically immutable.

How does Stellar ledger achieve immutability? If it does.

  • Can you rephrase your question? Hashing difficulty (I imagine you’re talking about Bitcoin?) is not used to render blocks immutable, it’s used to implement proof of work which is used to implement consensus which is used to decide how to mutate the list of transactions – MonsieurNicolas Feb 16 '18 at 2:34
2

First thing to see is that the PoW algo isn't what gives BitCoin immutability; the PoW algo is throttling the speed at which new blocks can be found based on current conditions of the machines on the network. In fact, the oldest blocks on the chain are the easiest to manipulate because the hardware put to the task was so much more inferior to the hardware being used today. What grants the immutability is the agreement on which chain is the real chain. BitCoin basically says that the hardest chain to produce is the "one true chain" (assuming that the hardest to produce chain is most likely the chain we've all been agreeing to use).

The various algorithms are about how do you pick what the next valid block to add to the chain is. PoW and PoS(take) systems basically say "here's how we will pick the single solitary node that gets to produce the next block to add to the chain", and they describe their rules accordingly. Stellar doesn't do this at all.

Instead, Stellar passes information about transactions around the core network to build consensus about what transactions should go in the next block.

In Stellar, there is no single computer that's assigned the responsibility (or privilege) for unilaterally deciding what the next block is. Instead, the SCP is an algorithm that enables every machine on the core network to accurately determine exactly what transactions the other core nodes on the network can see and have found acceptable. When the acceptance level for a transaction reaches critical mass, it becomes part of the next "ledger close" (block on the chain).

What's happening in Stellar is all the nodes are collectively determining what entries belong in the next "ledger close" (block) based on "consensus of acceptance" for individual transactions. These transactions contain database modification instructions to the information on the "Stellar Ledger".

This collective consensus approach is "backwards" from PoW/PoS. The SCP requires that every node first communicate the individual transactions to each other and they all keep track locally of "whose seen what" so they can determine which transactions have reached the critical mass required to be accepted. In PoW/PoS, a single node (the "right" node) determines the data that goes into the next block to add, and then communicates that block to the other nodes, who then test it to see if it has the right form/came from the right place, and assuming it passes the test, gets integrated.

Though to your point, neither of these algorithms specifically address the "immutability" aspect of the ledger, they address the "how do we collectively decide what transactions go into the next link in the chain?". The immutability aspect comes from the math in the HASH results created from a combination of linked information from prior records and that block's crypto signed transaction data.

That HASH linking part is basically the same in all "BlockChain" technologies; and it's what I say is the determining characteristic of whether or not something should be called "blockchain" or not. The rest of it is about how the machines collectively build that chain.

1

Stellar achieves immutability by other means than Bitcoin (or any other proof-of-stake consensus algorithm).

In Stellar, you have numbered ledgers that each have hash of the ledger, that itself includes hash of previous block. In that case if you trust current ledger, you ought to trust the previous ledger it points to, and the one that points to, and so on - in the end you can trust the whole history (if you have one available from yourself or archivator node).

In case someone, i.e. the archivator node, wants to cheat and make arbitrary change to a historic ledger, then it's hash value also changes. That ledger would become obviously invalid for anyone who recalculates ledger's hash and compares to the one written in it, or in the next one who points to it.

  • How does what you've described differ from bitcoin's implementation? Bitcoin blocks include a hash of the current block, including the txns and the hash of the previous block. This is at the core of merkle trees. – Synesso Feb 16 '18 at 2:02
1

You mention the difficulty of mining as a method for achieving immutability in bitcoin. However, it is still trivial to change a block if you don't care about consensus. For bitcoin, take a GPU and a dozen minutes and you can get a solved, altered block (then add the same time again for every following block). However nobody else in the network will accept your changes, because you're certain to be too late.

I suspect your question is really about consensus. With the immutability issue solved via chained, hashed ledgers, how does the network protect itself against a competing version of the truth appearing and, ahem, trumping everything else?

To the best of my knowledge, the SCP solves this by having validators, each choosing to trust a set of other validators and forming a network. A quroum of validators agrees on the state of each ledger and it becomes the truth. Validators are akin to miners in the bitcoin world, except they do not receive rewards for mining and they choose which peers are trustworthy. The dashboard contains a list of some of the larger validators.

  • So, does this mean that if I have a local copy of a PoW blockchain i can change easily a block made 2 years ago, and therefore the entire history? If yes then I misunderstood it till now... that means that a blockchain is immutable within the network, because others won't agree with your version. So immutability is given by consensus, I will rephrase it later. – Maxim Gaina Feb 16 '18 at 16:46
  • Sorry, I didn't mean that. I mean you could easily change a single block, and it would be a valid chain up to that block. It would be a shorter chain than the "real" one, so it would not be accepted by the network. Changing the entire history is the same process repeated in sequence until the final block. if you could do it fast enough to catch up and surpass the rest of the world you would have successfully changed bitcoin history. – Synesso Feb 16 '18 at 21:57

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.