It's a separate chain of blocks created based on data from the Steem blockchain. If that's not a sidechain I don't know what is. In any case, like you said there are no real definitions for any of these terms, and I don't know of anything that more closely and simply describes what this is than "sidechain".
By that definition, one might assert that hivemind is a sidechain. It even has a table called hive_blocks
and that table has the block hash. So on a cursory view, it's a sidechain.
I say cursory because in all seriousness, I agree that hivemind is not a sidechain. The blocks it tracks are not its own blocks.
But it does have some of the trappings. It follows the Steem blockchain and creates its own index based on custom_json
and other types of transactions.
So what makes steem-engine a sidechain and hivemind not? For instance, if hivemind added columns to calculate and track the hash of the block on its own, would it suddenly become a sidechain?
Look the definition of Dan Larimer of what is a side chain back in 2016:
This definition make sense for me, meaning that a side chain should be able to perform transactions (like transfer steem) in the mainnet using smart contracts.
Steem Engine is almost that. It still needs a central actor to use real steem, not with multisignatures.
I think what Dan is saying is that implementing a side-chain next to a main-chain, where the main-chain itself already has smart contracts, is trivial due to multisignature (side-chains in Easy Mode).
Steem Engine is setting up a side-chain in Hard Mode, without a main-chain smart contract system. Then, in its own side-chain, it defines a smart contract system within the side-chain.
Without the benefit of main-chain smart contracts, Steem Engine needs to establish consensus some other way. This external consensus could possibly leverage side-chain signatures in some way. E.g., when a block is included in the side-chain, it's signed in some way by a block producer. I'm not sure if side-chain multisignature has a role in block production in this scenario.
We already have main-chain multisignature, but by itself, multisignature is not a solution without main-chain smart contracts.
By the way, check this out.
Thanks for the link with the history of changes.
Suppose that the actions of @steemsc are made by consensus between several parties, like the witnesses of the side chain. In this scenario, @steemsc is a multisignature account, and one action requires 17 of 21 signatures to be performed.
The authorities (active/owner) of @steemsc are updated in the main chain as the witnesses change in the side chain.
I think that it is what Dan is saying in his article. In fact, he is saying that this is the way Lisk is working, and that we could do the same in steem: