It's my understanding that if a transaction set is voted as valid during an SCP round, that transaction is applied to the "last closedledger". The new state of the ledger now becomes the "last closedledger" and the process repeats. So you can think of voting as modifying a big, shared global state.
E.g. if the last current ledger shows Foo: 1
and the transaction is +1 to Foo
, when the nodes ratify this transaction one is added to Foo
and the ledger state moves to Foo: 2
.
The ledgers are "linked" via a cryptographic hash so that they form a chain and you could verify the hashes match...but my understanding is that there's no real need to keep historical ledgers around other than for historical book-keeping/archival purposes.
Consensus is reached through the SCP voting algorithm rather than verifying cumulative hashes (proof of work). So the current state is valid because it's been voted on being valid, and there's no need to do the whole "validate the universe" sync that happens with proof-of-work blockchains. I'm assuming that when new nodes join, they just bootstrap themselves from nodes in their trusted quorum slice and there's not really any "verification" going on
It scales because, while you need an entry for all existing accounts, you really only need the current ledger rather than all previous permutations too.
Obligatory disclaimer: new to SCP myself, not a developer on the project but have been reading the whitepaper, may be wrong :)