Author Topic: Transactions as Proof-of-Stake & The End of Mining  (Read 36631 times)

0 Members and 1 Guest are viewing this topic.

Offline vikram

Re: Transactions as Proof-of-Stake & The End of Mining
« Reply #120 on: February 03, 2014, 06:39:48 pm »
After looking at the math it is clear to me that if a block is even a few CDD shy of the target for the minimum threshold no one will mine because the difficulty would be so much higher that it will not be profitable. 

Therefore in order to 'mine' every block must destroy the minimum number of coindays.  This means that for the blockchain to progress shareholders everywhere must be ready to use their accumulated coindays to mine.   So the question becomes how to divide the transaction fees between the miners and the dividends.   This is another case where I hate to employ price fixing so whether I set it at 100% like NXT, 50% like the original BTS white paper, or 1% like I have suggested recently the result is price fixing.

Fortunately I have a solution that is fair for all and avoids price fixing.  When a miner uses their own coindays to secure the network, they get a percentage of the fees in that block proportional to percentage of the CDD they provided vs those provided by 3rd party transactions.   This means that dividends are earned when security is provided entirely by real network transactions and that mining fees are earned when security is provided by the miner using their own CDD to secure the network. 

This should motivate miners to consume as many CDD as they can as quickly as they can to earn the maximum fees and move the network along.   

The next question people may have is how will transaction fees be priced?   Minimum fee will be set such that if the blockchain was running a full capacity (512K per block) that 1% of the share supply per year would be earned as dividends.  Then I will adjust the fee like I adjust difficulty to maintain an average block size of 512K and a maximum block size of 1 MB.   So if demand picks up then so do fees and when demand falls below 512K below fees will fall back to the minimum.

Could a minimum threshold on CDD make it difficult to bootstrap fledgling DACs which start out with very little activity?

Also, I found this post interesting: http://blog.ethereum.org/2014/02/01/on-transaction-fees-market-based-solutions/

Offline bytemaster

Re: Transactions as Proof-of-Stake & The End of Mining
« Reply #121 on: February 03, 2014, 07:00:34 pm »
After looking at the math it is clear to me that if a block is even a few CDD shy of the target for the minimum threshold no one will mine because the difficulty would be so much higher that it will not be profitable. 

Therefore in order to 'mine' every block must destroy the minimum number of coindays.  This means that for the blockchain to progress shareholders everywhere must be ready to use their accumulated coindays to mine.   So the question becomes how to divide the transaction fees between the miners and the dividends.   This is another case where I hate to employ price fixing so whether I set it at 100% like NXT, 50% like the original BTS white paper, or 1% like I have suggested recently the result is price fixing.

Fortunately I have a solution that is fair for all and avoids price fixing.  When a miner uses their own coindays to secure the network, they get a percentage of the fees in that block proportional to percentage of the CDD they provided vs those provided by 3rd party transactions.   This means that dividends are earned when security is provided entirely by real network transactions and that mining fees are earned when security is provided by the miner using their own CDD to secure the network. 

This should motivate miners to consume as many CDD as they can as quickly as they can to earn the maximum fees and move the network along.   

The next question people may have is how will transaction fees be priced?   Minimum fee will be set such that if the blockchain was running a full capacity (512K per block) that 1% of the share supply per year would be earned as dividends.  Then I will adjust the fee like I adjust difficulty to maintain an average block size of 512K and a maximum block size of 1 MB.   So if demand picks up then so do fees and when demand falls below 512K below fees will fall back to the minimum.

Could a minimum threshold on CDD make it difficult to bootstrap fledgling DACs which start out with very little activity?

Also, I found this post interesting: http://blog.ethereum.org/2014/02/01/on-transaction-fees-market-based-solutions/

The minimum threshold on CDD is not a problem when miners are rewarded with BTS from TRX fees for the CDD they destroy. I have carefully worked through things to make sure the chain does not 'hang' for lack of CDD.

I read that ethereum post and am going to offer my opinion as an economist:
1) They are attempting to set prices without using market forces which brings up all kinds of fallacies and problems:
  a) They assume that price can be calculated from costs... the input theory of prices which is the way all centrally planned systems attempt to manage their economies. 
  b) They assume that price can be voted on democratically.  This is flawed for the same reasons all voting systems are flawed, the minority loses.
  c) They assume prices can be calculated in the absence of voluntary trade.

2) They assume that a blockchain needs to grow to handle more than 7 trx per second which is based upon the one-chain to rule them all mentality.

3) Miners collect the fees, but users bear the costs.  Without a dividend system there is no way to compensate the average user for the costs on the network nor to reward them for holding and not transacting.   

I contend that a fixed bandwidth target with fees dynamically adjusting to match the supply/demand for transactions is the best market-based way of setting fees for a fixed definition of decentralization (bandwidth usage).   

If you are going to allow the blockchain size to grow then you create a prediction market that will set the target block size.  This way people can hedge their positions and it is resistant to sybil attacks.

 

For the latest updates checkout my blog: http://bytemaster.bitshares.org
Anything said on these forums does not constitute an intent to create a legal obligation or contract between myself and anyone else.   These are merely my opinions and I reserve the right to change them at any time.

Offline santaclause102

  • Hero Member
  • *****
  • Posts: 2486
    • View Profile
Re: Transactions as Proof-of-Stake & The End of Mining
« Reply #122 on: February 07, 2014, 06:25:17 pm »

Offline alexkravets

  • Full Member
  • ***
  • Posts: 81
    • View Profile
Re: Transactions as Proof-of-Stake & The End of Mining
« Reply #123 on: February 08, 2014, 09:56:18 am »
If such an algorithm existed I would be very interested in it.

Latest newsletter http://goo.gl/I7r1mM says that Ripple-style consensus will be replaced with an earlier tweaked TaPOS.

Is there a version of TaPOS that solves the centralization-one-block at a time problem that all block-chain systems face ?

(Any miner who solves a block has a window to insert arbitrary transactions to front-run the market while removing transactions that would go against him).

Dan,

After I saw your remark about once-block-at-a-time centralization that all chains face (you too ethereum) I thought that was gonna be enough to not consider block-chains for a decentralized market ...

Your previous concerns about Ripple style consensus have all been debated and put to rest by the Ripple community almost a year ago.

There IS one issue which is a Ripple-like consensus system DOES start centralized (but already much less so than ANY chain with top 3 pools having 50% hash power) but over time decentralization is inevitable as more nodes join and users choose to customize their UNL lists.

N^2 growth in traffic objection as N nodes join does not apply in practice because nodes only exchange messages between low and high watermark of local peers not everyone.

Perceived lack of incentive to participate for nodes is addressed by two thing:

1. Running a consensus nodes is a constant near-zero cost and keeps falling with moore's law.
2. Running a consensus node benefits the owner in various secondary ways (lower latency access to network, etc) which should be plenty enough for brokers, banks & market makers to do.

Cheers ...

TL;DR: How does modified TaPOS address the centralized-one-block-at-a-time problem ?
« Last Edit: February 13, 2014, 10:22:59 am by alexkravets »

Offline bytemaster

Re: Transactions as Proof-of-Stake & The End of Mining
« Reply #124 on: February 10, 2014, 09:00:53 pm »
It is entirely possible that I have not grasped some key aspect to how Ripple reaches consensus, but my analysis is based upon the following foundation:

1) If the first two nodes agree to reach consensus and they never add anyone else to their UNL list then no one else's opinion matters.   
2) If one of the two nodes adds a second person to his UNL list then there is a 50% chance of a fork because not everyone agrees.
3) You can minimize the likelihood of a fork so long as their is sufficient overlap in everyones UNL, however achieving sufficient overlap can be tricky.
4) Based upon my current understanding this only has the appearance of decentralization while effectively the only opinions that matter are those of the largest fully connected set in the UNL graph. 

So perhaps there is another means of solving this problem of setting up a UNL that is properly balanced with low likelihood of forking.    I suspect it is possible to avoid N^2 with the proper network topology, but am unsure how to guarantee the proper network topology in a decentralized manner.  After all, the 'center' of the network is constantly moving as new nodes are added and even if you start out properly balanced, you could find yourself outside the core to the point that either your opinion doesn't really matter or the network splits.  Remember, it doesn't matter who you put on your UNL... it matters who puts you on theirs.

I spent a lot of time talking about the ideal of not being centralized for a single block.  This is a huge advantage that Ripple has over random selection of block producers used by POS and POW.   I partially mitigate this problem in TaPOS because the difficulty of finding a block is reduced as the number of transactions increases.  This means that excluding a valid transaction from the block puts you at a disadvantage against everyone else.   Furthermore, even if you do produce a block and broadcast it, someone who produces a block with more CDD can always replace your head block which has fewer CDD, then the network could take your failed mining attempt and destroy your CDD anyway. 

Someone wanting to attempt this could only do so proportional to the percent of the share supply they control.   Combined with my market matching algorithm that penalizes those who walk the book in a single block, I believe I have mitigated any meaningful attempt at 'front running' the market by withholding transactions, especially because large transactions are likely accompanied by large amount of CDD. 

Conclusion, the 'consensus' is automatically to include everything and thus excluding transactions is a major risk of both wasting energy and your CDD.
For the latest updates checkout my blog: http://bytemaster.bitshares.org
Anything said on these forums does not constitute an intent to create a legal obligation or contract between myself and anyone else.   These are merely my opinions and I reserve the right to change them at any time.

Offline vikram

Re: Transactions as Proof-of-Stake & The End of Mining
« Reply #125 on: February 12, 2014, 07:58:27 pm »
Paper on vulnerability of vanilla POS: http://www.reddit.com/r/BitcoinSerious/comments/1xpzb8/pos_is_more_vulnerable_to_51_attacks_than_pow/

I haven't looked thoroughly, but I don't think this affects TaPOS.

Offline bytemaster

Re: Transactions as Proof-of-Stake & The End of Mining
« Reply #126 on: February 12, 2014, 08:18:39 pm »
Paper on vulnerability of vanilla POS: http://www.reddit.com/r/BitcoinSerious/comments/1xpzb8/pos_is_more_vulnerable_to_51_attacks_than_pow/

I haven't looked thoroughly, but I don't think this affects TaPOS.

This paper is a bunch of mathematical mumbo-jumbo entirely detached from real economics.   If the US government announced that it wanted to buy 50% of the coins then the price would go through through the roof as every rational actor in the system would know several things:   

1) there is a buyer attempting to own the network... and that if they hold out they can get a higher price.   
2) the assumption that the coin becomes worthless once 50% ownership is held by a single player is also flawed.  For one thing, the government couldn't announce such a program "and mean it" without justifying to the public a reason to actually buy these coins vs simply outlawing them.   
3) the demand for a viable coin will simply cause a new alternative to pop up and the government is back to square one.
4) Unlike Proof-of-Work where once you own the mining you own every coin that uses that POW... with POS you can never own all the coins that can be created.

My conclusion is that this paper doesn't even apply to existing POS coins and certainly doesn't apply to TaPOS.
For the latest updates checkout my blog: http://bytemaster.bitshares.org
Anything said on these forums does not constitute an intent to create a legal obligation or contract between myself and anyone else.   These are merely my opinions and I reserve the right to change them at any time.

Offline bytemaster

Re: Transactions as Proof-of-Stake & The End of Mining
« Reply #127 on: February 12, 2014, 08:22:57 pm »
My counter to the supposed attack is for a credible organization (like the *Coin Foundation) to announce that a hard fork would be created removing all balances held by the government in the event they attempt such an attack.  The market consensus would support the foundation backing the coin and the market participants would see that if the government calls the bluff the price will rise as and when the government is successful everyone would fork and get a 50% dividend.   

For the latest updates checkout my blog: http://bytemaster.bitshares.org
Anything said on these forums does not constitute an intent to create a legal obligation or contract between myself and anyone else.   These are merely my opinions and I reserve the right to change them at any time.

Offline BldSwtTrs

  • Sr. Member
  • ****
  • Posts: 220
    • View Profile
Re: Transactions as Proof-of-Stake & The End of Mining
« Reply #128 on: February 12, 2014, 10:17:49 pm »
4) Unlike Proof-of-Work where once you own the mining you own every coin that uses that POW... with POS you can never own all the coins that can be created.
On Bitcointalk sometimes instead of ads there are informative messages about Bitcoin. One says Even in the event that an attacker gains more than 50% of the network's computational power, only transactions sent by the attacker could be reversed or double-spent. The network would not be destroyed. Another one: Even if every miner decided to create 1000 bitcoins per block, full nodes would stick to the rules and reject those blocks. I have also heard Andreas Antonoupolos said the 51% attacker would only be able to destroy the next 10 minutes of transaction before being kick out the network

So you are saying all of this is not true?
« Last Edit: February 12, 2014, 10:19:49 pm by BldSwtTrs »

Offline bytemaster

Re: Transactions as Proof-of-Stake & The End of Mining
« Reply #129 on: February 12, 2014, 11:11:14 pm »
4) Unlike Proof-of-Work where once you own the mining you own every coin that uses that POW... with POS you can never own all the coins that can be created.
On Bitcointalk sometimes instead of ads there are informative messages about Bitcoin. One says Even in the event that an attacker gains more than 50% of the network's computational power, only transactions sent by the attacker could be reversed or double-spent. The network would not be destroyed. Another one: Even if every miner decided to create 1000 bitcoins per block, full nodes would stick to the rules and reject those blocks. I have also heard Andreas Antonoupolos said the 51% attacker would only be able to destroy the next 10 minutes of transaction before being kick out the network

So you are saying all of this is not true?

I am saying that a 51% attacker could perform a denial of service attack and prevent transactions from being included at all.  That is within the rules of the network. 
For the latest updates checkout my blog: http://bytemaster.bitshares.org
Anything said on these forums does not constitute an intent to create a legal obligation or contract between myself and anyone else.   These are merely my opinions and I reserve the right to change them at any time.

Offline JoelKatz

  • Newbie
  • *
  • Posts: 4
    • View Profile
    • Ripple Labs
Re: Transactions as Proof-of-Stake & The End of Mining
« Reply #130 on: February 13, 2014, 11:59:23 pm »
I have been working on the consensus algorithm and while it is fast it has the following problems:
1) There is no way to compensate people for running full nodes.
Right, but there is no need to compensate them. Bitcoin doesn't compensate people for running full nodes, only for mining, which consensus doesn't have.

Quote
2) The cost of running full nodes grows with N^2 the number of nodes participating in the consensus process
I'm not sure how you figure that. The cost of the consensus process itself scales as N log N and is divided over the nodes. The work each node has to do scales with the log of the number of nodes participating. Perhaps you're thinking that every node must directly consider what every other node is doing. That's not so. You only need a sample, and that scales with the diameter, which is the log of the number of nodes.

Quote
3) There is no way to reward nodes that participate in consensus to cover the cost of bandwidth growing
There is no evidence that there's any need to do this. Bitcoin doesn't reward transaction relaying either.

Quote
4) If you rely on charity, the regulatory risks may result in nodes not proliferating
It's not charity. People run nodes because they want high-quality access to the network. If the network doesn't provide services worth its bandwidth, it should die. This is the same reason people run Bitcoin nodes.

If you don't believe me or are still worried, then the community can just decide that, say, 1,000 validators is enough to provide reliability and decentralization. Adding more would provide no benefits, so just don't. There's no need for 100% agreement on this, people can just refuse to relay validations they don't think add sufficient value.

Also, you can't have it both ways. Your argument is basically, "nobody will run a validator because the bandwidth caused by all the reliable validators that we can't afford to drop will be too high" that's like "nobody wants to go to that restaurant because it's too crowded".
« Last Edit: February 14, 2014, 12:11:19 am by JoelKatz »
I am an employee of Ripple Labs, but my opinions are my own.

Offline JoelKatz

  • Newbie
  • *
  • Posts: 4
    • View Profile
    • Ripple Labs
Re: Transactions as Proof-of-Stake & The End of Mining
« Reply #131 on: February 14, 2014, 12:16:31 am »
2) If one of the two nodes adds a second person to his UNL list then there is a 50% chance of a fork because not everyone agrees.
You're assuming the nodes aren't trying to reach a consensus when in fact that is their top priority. If one node refuses to change its position because doing so will cause a fork, then the other node will change its position. Avoiding a fork is every node's priority, second only to correctness. Why would a node fork when changing its position would avoid one?

If two people are trying to decide where to go for dinner and one says "it must be Olive Garden" and the other says "Olive Garden is okay, but I prefer Burger King", they'll agree to go to Olive Garden.

Consensus is robust because if there's absolutely no reason at all to exclude a transaction, then every honest node will want to include it. If there's any reason at all to exclude a transaction, then every honest node is perfectly happy to exclude it, so long as it gets introduced into the next round, which every honest node will agree to.
« Last Edit: February 14, 2014, 12:20:26 am by JoelKatz »
I am an employee of Ripple Labs, but my opinions are my own.

Offline bytemaster

Re: Transactions as Proof-of-Stake & The End of Mining
« Reply #132 on: February 14, 2014, 12:28:09 am »
2) If one of the two nodes adds a second person to his UNL list then there is a 50% chance of a fork because not everyone agrees.
You're assuming the nodes aren't trying to reach a consensus when in fact that is their top priority. If one node refuses to change its position because doing so will cause a fork, then the other node will change its position. Avoiding a fork is every node's priority, second only to correctness. Why would a node fork when changing its position would avoid one?

If two people are trying to decide where to go for dinner and one says "it must be Olive Garden" and the other says "Olive Garden is okay, but I prefer Burger King", they'll agree to go to Olive Garden.

It is like having two groups of friends, half want to go to Olive Garden and half want to go to Burger King... but not everyone cares what everyone else things because they all have a local perspective.   So from the perspective of the BK crew they have a super majority and from the perspective of the OG crew they have a super majority... anyone who tries to be friends with both crews is screwed they pick one side to go with... so one guy sides with OG and another sides with BK.

The only way to avoid this problem is if the network is properly balanced with enough interconnectedness.  At this point you can make some assumptions and see n log n scalability.   

So everyone wants to reach consensus and they do reach consensus within their domain...  some nodes who are in two domains will recognize a split as a minority of their UNL list goes some other direction. 

Every response I have seen in the Ripple discussions says this is just a misconfigured UNL.

Ok, now that we have established this the question becomes how do nodes add each other to their UNL in a way that insures properly connected network?    It seems to me that everyone will want to include the big players in their UNL and thus become yes-men, after all the big players have no incentive to care much about every new node that joins the network....

I am not ruling out consensus algorithm just yet, I just think it will require more work to understand and verify than TaPOS.   If we can get an implementation that uses consensus + POS then I will be very happy. 


For the latest updates checkout my blog: http://bytemaster.bitshares.org
Anything said on these forums does not constitute an intent to create a legal obligation or contract between myself and anyone else.   These are merely my opinions and I reserve the right to change them at any time.

Offline JoelKatz

  • Newbie
  • *
  • Posts: 4
    • View Profile
    • Ripple Labs
Re: Transactions as Proof-of-Stake & The End of Mining
« Reply #133 on: February 14, 2014, 12:34:59 am »
It is like having two groups of friends, half want to go to Olive Garden and half want to go to Burger King... but not everyone cares what everyone else things because they all have a local perspective.   So from the perspective of the BK crew they have a super majority and from the perspective of the OG crew they have a super majority... anyone who tries to be friends with both crews is screwed they pick one side to go with... so one guy sides with OG and another sides with BK.
There aren't two positions on an equal footing. Everyone understands that a transaction can only be included if it has a supermajority of support and they are perfectly happy to exclude a transaction for one round rather than risk a fork. If there's a standing agreement to go to Burger King if there's no agreement otherwise, the problem is much simpler.

Also, nothing terrible happens if they go to different restaurants. They just fail to produce a consensus ledger and can try again.

Quote
So everyone wants to reach consensus and they do reach consensus within their domain...  some nodes who are in two domains will recognize a split as a minority of their UNL list goes some other direction.
Those nodes will just convince the side that included the transaction to exclude it, because nobody wants a fork. You have to imagine a crazy topology for that not to work.

Our plan for Ripple is to have organizations that publish lists of validators whose performance they monitor. They will include the jurisidiction and organization type of the validator. By default, the software will pull validator lists from several such organizations and pick a random sample, weighted by the number of organizations that include that validator. You will be able to add filters like "no validators in the US" or "no validators operated by governments" if you wish, as organizations will include that information in the lists they publish. You will, of course, be able to add or blacklist validators, change the list of publishers, and so on.
« Last Edit: February 14, 2014, 12:41:16 am by JoelKatz »
I am an employee of Ripple Labs, but my opinions are my own.

Offline bytemaster

Re: Transactions as Proof-of-Stake & The End of Mining
« Reply #134 on: February 14, 2014, 12:46:22 am »
So effectively a single node can hold out and say... sorry I am not including any transactions until everyone agrees with me not to include any transactions?  The entire network would then halt....  I am assuming this is NOT the case which means there exist cases where consensus is reached by many but not all and the guy who is out voted must accept it or move on....   

Sure, eventually this node will be identified and pulled from the UNL of its peers, but for a while it could get away with excluding the node.

If the UNL nodes are public, the government could pass a law requiring filtering and then what?   

I believe the people at Ripple are smart and have a solution that works.  It was my faith in Ripple's mere existence that convinced me it was possible.   So I really, really want to understand at a deep level how Ripple works and their algorithm can be used.   

In fact, I will probably create a bounty for a version of BitShares X that implements the Consensus algorithm while I focus on getting our MVP done.   It just has too much potential if UNL lists can be properly organized. 

How many nodes are currently participating in the UNL consensus aspect of the Ripple network?   Has anyone produced a network topology of a directed graph of UNL lists? 
For the latest updates checkout my blog: http://bytemaster.bitshares.org
Anything said on these forums does not constitute an intent to create a legal obligation or contract between myself and anyone else.   These are merely my opinions and I reserve the right to change them at any time.