Bitcoin Forum
June 27, 2024, 07:26:00 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1] 2 »  All
  Print  
Author Topic: [PoS] Economic Clustering  (Read 2040 times)
ChuckOne (OP)
Sr. Member
****
Offline Offline

Activity: 364
Merit: 250

☕ NXT-4BTE-8Y4K-CDS2-6TB82


View Profile
May 23, 2014, 03:40:40 PM
Last edit: May 25, 2014, 09:06:51 PM by ChuckOne
 #1

This thread is about Economic Clustering. Please, share your reviews with us and try to find issues.


source https://nxtforum.org/news-and-announcements/economic-clustering/

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:
Quote
Mining in Nxt relies on cooperation of people and even forces it
That 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...
mczarnek
Hero Member
*****
Offline Offline

Activity: 527
Merit: 502


View Profile
May 23, 2014, 04:17:43 PM
Last edit: May 26, 2014, 03:02:12 PM by mczarnek
 #2

If not immediately obvious, this is related to how Nxt will be solving the Nothing at Stake problem.

Edit: Not sure if it more helps the Nothing at Stake problem or the downloading the blockchain and choosing who to trust problem.

BitSend ◢◤Clients | Source
www.bitsend.info
█▄
█████▄
████████▄
███████████▄
██████████████
███████████▀
████████▀
█████▀
█▀












Segwit | Core 0.14 | Masternodes
XEVAN | DK3 | Electrum soon
Bitcore - BTX/BTC -Project












BSD -USDT | Bittrex | C.Gather | S.Exchange
Cryptopia | NovaExchange | Livecoin
Litebit.eu | Faucet | Bitsend Airdrop













████
 ████
  ████
   ████
    ████
     ████
      ████
       ████
        ████
       ████
      ████
     ████
    ████
   ████
  ████
 ████
████

████
 ████
  ████
   ████
    ████
     ████
      ████
       ████
        ████
       ████
      ████
     ████
    ████
   ████
  ████
 ████
████
ChuckOne (OP)
Sr. Member
****
Offline Offline

Activity: 364
Merit: 250

☕ NXT-4BTE-8Y4K-CDS2-6TB82


View Profile
May 23, 2014, 04:45:55 PM
 #3

If not immediately obvious, this is related to how Nxt will be solving the Nothing at Stake problem.

Ah, yeah. Sorry for leaving that out. Thank you, Matt. Smiley
telepatheic
Jr. Member
*
Offline Offline

Activity: 56
Merit: 1


View Profile
May 23, 2014, 05:08:12 PM
 #4

Quote
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.

This won't protect against most attacks because transactions are easy to create. An attacker can create lots of bogus transactions to and from himself to fill up his blocks. In all cryptocurrencies both users must be on the same branch for a transaction to be seen as valid. The problem is that merchants aren't always online. When they come online they will see two forks, how will they know which is the real fork and which is the attack. Under this scheme they won't know, they will see valid transactions occurring on both forks.

Quote
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.

How are users excluded? Surely this requires consensus, how will that consensus be achieved?
ChuckOne (OP)
Sr. Member
****
Offline Offline

Activity: 364
Merit: 250

☕ NXT-4BTE-8Y4K-CDS2-6TB82


View Profile
May 23, 2014, 06:06:54 PM
Last edit: May 23, 2014, 09:13:18 PM by ChuckOne
 #5

source https://nxtforum.org/general-discussion/on-economic-clusters-and-the-longest-chain/

(Based on BCNext's notes and our discussions, TLDR version)

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. Smiley
telepatheic
Jr. Member
*
Offline Offline

Activity: 56
Merit: 1


View Profile
May 23, 2014, 07:19:16 PM
 #6

Quote
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.

A new user will download the longest chain which meets the rules of the protocol. If the longest chain breaks the rules and mines more coins than allowed the blocks are not valid and hence do not count towards the definition of longest.

Quote
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).

So this scheme achieves consensus via the trusted method of asking a friend. It will probably work but it won't scale.
ChuckOne (OP)
Sr. Member
****
Offline Offline

Activity: 364
Merit: 250

☕ NXT-4BTE-8Y4K-CDS2-6TB82


View Profile
May 23, 2014, 07:28:27 PM
Last edit: May 23, 2014, 07:38:46 PM by ChuckOne
 #7

So this scheme achieves consensus via the trusted method of asking a friend. It will probably work but it won't scale.

Interesting. Scalability. Could you elaborate more on why not?
telepatheic
Jr. Member
*
Offline Offline

Activity: 56
Merit: 1


View Profile
May 23, 2014, 08:43:01 PM
 #8

So this scheme achieves consensus via the trusted method of asking a friend. It will probably work but it won't scale.

Interesting. Scalability. Could you elaborate more on why not?

So a fork occurs at some point and an exchange has to decide which fork it should take. Does the exchange owner have to contact all his customers to see which forks they are on, contact other exchanges to see what forks they are on. And what happens if some people disagree? That doesn't sound very scalable to me.
ChuckOne (OP)
Sr. Member
****
Offline Offline

Activity: 364
Merit: 250

☕ NXT-4BTE-8Y4K-CDS2-6TB82


View Profile
May 23, 2014, 08:51:29 PM
 #9

Not sure.

I think it will look like a hierarchy.

Big market players will make it damn sure they do not loose each other.

Smaller players adhere to the big ones they like.

Tiny players adhere to the next bigger one.

AND of course everybody can feel free to adhere to various other players on different layers on the hierarchy. Smiley
DeathAndTaxes
Donator
Legendary
*
Offline Offline

Activity: 1218
Merit: 1079


Gerald Davis


View Profile
May 23, 2014, 08:57:02 PM
Last edit: May 23, 2014, 09:17:05 PM by DeathAndTaxes
 #10

Quote
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 this worked you wouldn't need mining/forging/minting you would just ask your trusted friends and know which tx are right.  So why are you using PoS to begin with if you can just ask your trusted authority which chain to use.  However what if you have two trusted friends and one says chain A is the "best" and one says chain B is the "best".  Or what if you friends are wrong, they all think "A" is the best chain but they are minority of users?   Or what if someone had no trusted friends (pretty dubious concept for a trustless network to need trusted oracles)?

Taken to the logical extreme you wouldn't ask just one or two or a dozen nodes you would connect to all of them (or as many as you possibly could) hundreds or thousands of nodes and poll them to find the best chain.   The problem with this is it is vulnerable to a sybil attack and preventing that in a decentralized pseudo anonymous network is an unsolved problem.  PoX systems acts as a PROXY for consensus bypassing the sybil attack by not attempting to restrict nodes and instead relying on the proxy (which should be harder to spoof than identity) rather than the opinion of individual nodes.  Of course we now have just made a full circle.  The very fact that a network is using PoX means that the opinion of nodes trusted or otherwise is insufficient to achieve a consensus.  If you could achieve consensus by checking with your friends then why are you using PoS to begin with.

Also when talking about attacks and vulnerabilities will simplify the scenario that the attacker makes a chain of double spends and the "good guys" make a chain of legit spends.  The reality is an attack can very easily include legitimate payments in the "attack" chain, and then add double spends of those in the "legit" chain.  So as a practical example say BTC-E and Bitstamp were both double spent however one was paid in chain A and double spent in chain B and the other was reversed.   How exactly are they going to decide on a consensus?  Which one is going to fall on the swords and potentially low millions of dollars by accepting the chain where they were double spent?

Note: this isn't an analysis of the "EC" as the key elements are still magical secret sauce to be revealed at a later date but your interpretation of how it would work doesn't.
bluemeanie1
Sr. Member
****
Offline Offline

Activity: 280
Merit: 257


bluemeanie


View Profile WWW
May 23, 2014, 09:03:53 PM
 #11

The simple fact is that achieve a USEFUL consensus in a transaction network, the participants must have a significant stake in that network.

One (primitive) way to achieve this is to show your computational power.  One cannot fake hashing power.  It must be procured in some way at a cost.

Another model is called PoS(Proof Of Stake), the user shows a stake in a digital asset as proof to their identity.

-bm

Just who IS bluemeanie?    On NXTautoDAC and a Million Stolen NXT

feel like your voice isn't being heard? PM me.   |   stole 1M NXT?
jonald_fyookball
Legendary
*
Offline Offline

Activity: 1302
Merit: 1004


Core dev leaves me neg feedback #abuse #political


View Profile
May 23, 2014, 09:04:41 PM
 #12

Not sure.

I think it will look like a hierarchy.

Big market players will make it damn sure they do not loose each other.

Smaller players adhere to the big ones they like.

Tiny players adhere to the next bigger one.

AND of course everybody can feel free to adhere to various other players on different layers on the hierarchy. Smiley

What happens when someone higher in your trust network goes rouge?  Doesn't that mean they could attack anyone in their trust down line?

Eadeqa
Hero Member
*****
Offline Offline

Activity: 644
Merit: 500


View Profile
May 23, 2014, 09:11:22 PM
 #13

Not sure.

I think it will look like a hierarchy.

Big market players will make it damn sure they do not loose each other.

Smaller players adhere to the big ones they like.

Tiny players adhere to the next bigger one.

AND of course everybody can feel free to adhere to various other players on different layers on the hierarchy. Smiley

What happens when someone higher in your trust network goes rouge?  Doesn't that mean they could attack anyone in their trust down line?

Maybe trust is based on consensus. One rogue will just kicked out from the cluster as trusted source.

Nomi, Shan, Adnan, Noshi, Nxt, Adn Khn
NXT-GZYP-FMRT-FQ9K-3YQGS
https://github.com/Lafihh/encryptiontest
ChuckOne (OP)
Sr. Member
****
Offline Offline

Activity: 364
Merit: 250

☕ NXT-4BTE-8Y4K-CDS2-6TB82


View Profile
May 23, 2014, 09:13:42 PM
 #14

CfB updated the second post. Smiley See "EDIT".
ChuckOne (OP)
Sr. Member
****
Offline Offline

Activity: 364
Merit: 250

☕ NXT-4BTE-8Y4K-CDS2-6TB82


View Profile
May 23, 2014, 09:16:07 PM
 #15

Not sure.

I think it will look like a hierarchy.

Big market players will make it damn sure they do not loose each other.

Smaller players adhere to the big ones they like.

Tiny players adhere to the next bigger one.

AND of course everybody can feel free to adhere to various other players on different layers on the hierarchy. Smiley

What happens when someone higher in your trust network goes rouge?  Doesn't that mean they could attack anyone in their trust down line?

Maybe trust is based on consensus. One rogue will just kicked out from the cluster as trusted source.

Yeah. I mean that hierarchy model is just an approach to handle the scalability issue.

But by any means necessary, you need to have others of course. Single points of failure are bad. Smiley

Btw. see the edit of CfB's second post here.
ChuckOne (OP)
Sr. Member
****
Offline Offline

Activity: 364
Merit: 250

☕ NXT-4BTE-8Y4K-CDS2-6TB82


View Profile
May 23, 2014, 09:17:53 PM
 #16

source PM

Maybe this is a better explanation:

Nodes use longest chain rule when they r up to date and use EC when they r not. Asking a friend is required only for those who have not identified cluster participants yet.

I think this sums it up quite well.
ThePurplePlanet
Full Member
***
Offline Offline

Activity: 144
Merit: 100


View Profile
May 23, 2014, 09:25:44 PM
 #17

So from mockery and  lols from NXT devs we go to the state to acknowledge the problem?

You still need a higher authority to guide your operations... Still dont see the point if you are looking for a decentralized currency.

It took satoshi 20 years to solve the problem of decentralized concensus and NXT devs solving the problem by overnight patches and rushed work without much discussion...
ChuckOne (OP)
Sr. Member
****
Offline Offline

Activity: 364
Merit: 250

☕ NXT-4BTE-8Y4K-CDS2-6TB82


View Profile
May 23, 2014, 09:33:47 PM
 #18

It took satoshi 20 years to solve the problem of decentralized concensus and NXT devs solving the problem by overnight patches and rushed work without much discussion...

Jealous? Cheesy Trollolololo... Okay, back to topic, please. Smiley
ThePurplePlanet
Full Member
***
Offline Offline

Activity: 144
Merit: 100


View Profile
May 23, 2014, 09:41:15 PM
 #19

It took satoshi 20 years to solve the problem of decentralized concensus and NXT devs solving the problem by overnight patches and rushed work without much discussion...

Jealous? Cheesy Trollolololo... Okay, back to topic, please. Smiley

Not jealous... I am interested in a decentralized PoS solution ... just not seeing that happening. Maybe I dont have the vision but it looks to me impossible.
knightcoin
Full Member
***
Offline Offline

Activity: 238
Merit: 100


Stand on the shoulders of giants


View Profile
May 23, 2014, 09:48:18 PM
 #20

just came to my mind the old web-of-trust ...Key signing party




 Grin

http://www.introversion.co.uk/
mit/x11 licence 18.x/16|o|3ffe ::71
Pages: [1] 2 »  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!