You are viewing a single comment's thread from:

RE: Comparing Steem Engine to dstors and dlive

in #steemengine7 years ago

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?

Sort:  

Look the definition of Dan Larimer of what is a side chain back in 2016:

A smart contract on Steem can use side chains. A side chain is really a fancy way of saying a multisig account where the transactions that should be signed are agreed upon by consensus and then signed by multiple independent parties as defined by a smart contract. Steem Smart contracts can interact with the rest of the Steem blockchain just like any other user can. The smart contract consensus algorithm will generate and sign valid Steem transactions which get included in the Steem blockchain.

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.

I'm not sure if side-chain multisignature has a role in block production in this scenario.

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:

Lisk relies on 3rd party multi signature solutions to evaluate the code and authorize any transfers out of the smart contract.
...
App developers could use Steem and BitShares to implement smart contracts via Side Chains in the same manner