You are viewing a single comment's thread from:

RE: Hive’s future as a 2nd layer blockchain network

in #hive4 years ago (edited)

My issue with layer 2 systems is that there generally doesn't seem to be a clear consensus or schelling point/mechanism for how to proceed when there is a breakdown in consensus.

In Bitcoin and most PoW crypto networks the 'longest PoW' is a widely agreed upon metric for what gets to be called 'Bitcoin' and what needs to find its own brand after a split. In Steem, DPoS, there are voting mechanism which decide what is the 'valid' continuity when there is a split. Even when Hive was more popular than the "original" Steem, the chain which the top witnesses decided to continue with, still got to continue as "Steem".

On the other hand with Layer 2 systems, we don't have clear mechanisms for what is valid when the rules need to change or there is a major split in the community. You used Omni as an example, in November 2017 Omni released a 'mandatory fork'. There was no consensus mechanism, all users had to change their software or it would not be valid for Tether. They had the power to do this because if Tether only respects a particular version, then everyone else doesn't really have an option (they will not redeem tokens on other versions). Other 2nd layer systems have similar dynamics - if an online card game changes the software that decides which card tokens are valid, most likely you will have no option but to go along with their change. Even if the change is unpopular, there is no clear way to determine what is the 'valid' continuity beyond "it's this version because we say it is".

Layer 2 systems could establish some set of rules ahead of time for deciding valid continuity, but I have not seen clear examples of this being done and followed through with, and establishing consensus is not really a core part of layer 2 projects in general, layer 1 projects tend to have such by default.

I recognize that this doesn't decide what is valid or more valuable, people and particularly exchanges do. But it does help people quickly decide valid continuity without defaulting to the developers having special authority each time.

Sort:  

There's two separate forms of consensus in blockchains: 1) consensus about the order in which transactions have occurred and 2) condensus about what rules are valid for the blockchain. But only the first of these forms of consensus needs to be enforced by code. 2nd layer systems rely on the 1st layer to enforce transaction ordering consensus, but they make it simpler and less contentious to fork in the case of disagreement about the rules.

Perhaps you're arguing that there should be more work involved and that the code should try to choose a winner and loser in such discussions by adding extra pressure to the majority side in such disagreements. If so, I disagree with that. I think minority groups should be able to easily select an alternative set of rules if they don't like the rules that the majority is going with. In the end, there's literally little difference though: if a minority doesn't agree with the majority, they can just fork the coin. This happens all the time.

And it doesn't require skilled devs to do so: you can hire super cheap devs who are capable of forking coins. There was actually a program you could download at one point to generate your own "shit coins" based off bitcoin.

I think your tether argument is flawed, because it misses the key detail about tether: Tether is not really a decentralized coin in most senses of the word, because it's value comes from fiat backing, and a central entity, Tether.io, controls that backing. So there's no way to fork tether, unless you're willing to also assume a huge debt to do so.

In case my point in the last paragraph wasn't clear, the problems you mention are problems with centralized backing. They have nothing to do with 1st layer blockchains, 2nd layer applications, or smart contracts. The same centralization problem that prevents forking exists for tether coins stored on 1st layer blockchains such as Ethereum.

On the contrary I think it should be as easy as possible to fork, and for such forks to be as non-disruptive as possible in the case of a contentious change. When there is a split, not only do individuals need to decide what they see as valid or more worthwhile going forward, but exchanges and ecosystem infrastructure need to decide what gets to be considered to be the same token, with the same brand.

In a truly contentious fork, eg. if Bitcoin XT, Bitcoin Classic or Bitcoin Segwit2x had forked as originally planned, both camps may be claiming to be the 'true' Bitcoin at the time of fork, rather than ceding with a fork rebrand as in Bitcoin Cash or Hive. In this case the ecosystem of exchanges etc. need to make a decision fairly quickly as to which network gets to be 'Bitcoin'. Regardless of which side of the debate they actually lie on - exchanges need to go along with everyone else, or we end up with a situation where Binance is selling tokens on one chain as "Bitcoin" and Kraken is selling "Bitcoin" on another. Formalizing the consensus rules as happens in layer 1 allows for easy schelling points upon which people can make these decisions, generally avoiding the undesirable situation.

Layer 2 applications could formalize rules to decide what is 'valid' in the event where a change to the rules is necessary, but they generally don't. In the absence of it, the default is for the developers (or even just the person who owns the website or code repository) to be the deciders, which gives them special control and authority on the network. That is what makes me uncomfortable with layer 2 applications. While I can decide if I like the rules of a layer 2 system as is, I have no way of knowing what the rules will be in a year, and no way to be confident that there is a way for the community to come to consensus on it.

I agree that Tether is centralized but I disagree that it doesn't show the point. It wasn't just Tether that forked, it was the entire Omni protocol. At the time of the fork there were over 300 different asset definitions on Omni and they ALL had to fork to the new version. Tether simply had so much weight that it forced the issue for everyone. In the absence of any other way to make the decision, everyone had to go along with the developers choice of what was now the valid rules for Omni, which included the possibility of tokens being frozen by asset definers.

I have yet to see a layer 2 system where the developers don't have the weight/clout to change the rules on their own, where their application is used so much that it will be the default accepted by exchanges in every change that happens, regardless of what the community wants. I'm not saying it's unsolvable, but it's how L2 systems typically are today and there's no pressure for that to change.