Hi guys,
this thread is supposed to gather reviews for an implementation concept of Economic Clustering. Its purpose is to protect PoS systems as they suffer from the Nothing At Stake problem at defined here: Re: Proof of stake instead of proof of work
If reviews successfully provide insights about the correctitude and flaws can be removed from the concept, I have great hope that Economic Clustering is going to benefit all the Peercoin community, the Nxt community and all other PoS communities. Implementation in either PoS coin should be easy. I hope this thread fits the board’s regulations. BCT moderators are not that open to new concepts.
[i]source https://nxtforum.org/news-and-announcements/economic-clustering/[/i]
[quote=“Come-from-Beyond, post:8, topic:2425”]I’d like to announce a new feature. Today I committed code related to Economic Clustering (EC). This concept is a development of the idea of Economic Majority introduced by Meni Rosenfeld.
In his notes BCNext states that EC solves the most critical flaw of Proof-of-Stake concept, according to the description this flaw is what others call “Nothing-at-Stake” problem. The 3rd part of the Plan contains such the words:
Mining in Nxt relies on cooperation of people and even forces itThat was said about EC.
The concept of economic clustering is quite simple. Words “economic majority” say enough to explain how it works. From technical point of view it means that if someone decides to rewrite the history of the blockchain he won’t be able to include transactions of those who don’t take part in the attack, because every transaction contains the id of one of the recent blocks. When Alice sends money to Bob in exchange for something she’ll get what she wants only if Bob validates the transaction. And this can happen only if they are both on the same branch.
Forgers can’t forge all branches at once, they are faced with a choice, an attempt to forge more than one branch will lead to their exclusion from one of the clusters.
The proposed technical solution will also be used for analysis of transactions to detect forks. This is one of the reasons why I decided to implement part of EC without waiting for complete TF. Another reason is that proposed solution should be peer reviewed. Recent hot debates on BitcoinTalk regarding Nothing-at-Stake show that people are paying a lot of attention to PoS cryptocoins. This is a good opportunity to get a lot of reviews.
Extra consensus rule mentioned in the 1st part of the Plan is a rule that defines choice of an economic cluster a node sticks too. I can’t reveal all the details yet, we still need to build infrastructure of nodes and hubs and (this is more important) to form such a cluster…[/quote]
[i]source https://nxtforum.org/general-discussion/on-economic-clusters-and-the-longest-chain/[/i]
[quote=“Come-from-Beyond, post:120, topic:2353”][size=8pt](Based on BCNext’s notes and our discussions, TLDR version)[/size]
The rule of distributed consensus in Bitcoin is quite simple - the longest chain wins. By saying “longest” we mean one with the highest cumulative difficulty. Majority of bitcoiners are geeks and such “mathematical” approach is very appealing to them.
Bitcoin Fork that happened in March 2013 clearly showed that the longest chain rule is not enough. This rule doesn’t work in extraordinary situations, but we don’t have two Bitcoin branches so what fixed that problem? Some might argue that Bitcoin is centralized and Bitcoin users follow orders of Bitcoin devs, but BCNext thinks that the correct answer is “Economic Majority”. This term was coined by Meni Rosenfeld. In plain English it means that majority of users decided to abandon one of the branches and stick together even by violating the Rule.
BCNext decided to use this phenomenon to resolve extraordinary problems happening in Nxt. Nodes accept freshly forged blocks according to the longest chain rule, but when something happens they follow the economic majority. Economic laws can’t be ignored (history of Soviet Union proves that), by respecting these laws we actually make Nxt stronger.
Let’s conduct a thought experiment. Imagine that network splitted for 24 hours and there are 2 competing branches. Thousands transactions are processed, thousands goods are delivered to the buyers. Now the network is merged and we see that the longest chain contains only 30% of the transactions but the shortest the rest 70%. Which network will win? BCNext thinks that the shortest one, coz economic majority will decide to lose less than more (we assume that loss is proportional to number of rolled back transactions), and I tend to agree with him. The reader is free to have another opinion of coz.
Another experiment. 20% of Bitcoin economy that owns 65% of hashing power decided to fork Bitcoin and add unlimited supply of the coins. Let’s assume that they would mine 25 BTC per block forever. There are no other differences. What blockchain will a new user download? Of coz the one with unlimited supply because “the longest chain wins”. Will the user agree on that? I doubt he will chose 20% of economy instead of 80%. And again we see that economic laws are more important than “mathematical” ones.
Nxt uses economic laws to help a node to choose among thousands branches. In some cases this is supposed to happen automatically. For example, if Alice and Walmart are on different branches then she can’t buy anything coz Walmart won’t see her transaction. The things are more complicated for Walmart, it have to invest into servers or rely on other market participants. If a new user joins Nxt and there are several blockchains he should just ask friends, who brought him there, what blockchain to download (hash of a recent block is enough).
If one knows accounts of “big” market players he can analyze the blockchain to make sure that he keeps sticking to the majority.
PS: Well, I hope I didn’t forget anything important. I’ll add it if I did.
Edit: Looks like I made it confusing when said to ask a friend. This is required only for new users who don’t want to enter accounts of thousands market players. “Ask a friend” trick should be used only once, after that software will collect all necessary accounts according to economic activity of the user. It’s still possible to enter 10 accounts of “big” market players like Walmart if u don’t have friends. :)[/quote]