Pages:
Author

Topic: Incorporating the p2pool concept into Bitcoin (Read 17470 times)

member
Activity: 69
Merit: 10
February 25, 2014, 10:51:50 AM
#74
The daily limit of 660,000 transactions isn't an issue.  Payouts would only be done using one transaction per block, the coinbase transaction, which does not necessarily need to be limited to an arbitrary number of outputs.

Yes, it does need to be limited. Every output, even in the coinbase transaction, takes up bytes, and the blocksize has a very hard limit.

Don't know how we got here, but I never said that ALL miners would receive DAILY payments.  Shares would grow in size and/or age until they qualified for a payout.  A 1TH miner might get a daily, while a 1GH miner might get a weekly or monthly.  Someone who only ever mined a few satoshi worth might not get a payout for several weeks.

The limits on block and transaction sizes are arbitrary and will need to be increased over time to accommodate an increase in transaction volume.  Considering the arbitrary nature of those limits, there's no reason that the limit on the coinbase transaction couldn't be modified to accommodate enough outputs to pay an equal mix of LARGE and OLD shares to the exhaustion of the block reward.  I don't think that it would take all that many outputs... several hundred at least, but probably not more than a thousand or so, which may not even require a modification of the limit.


member
Activity: 69
Merit: 10
Every full node checks the validity of the coinbase transaction.  SPV nodes currently don't, but they could if we switch to using Merkle sum trees.

The power that miners have over the network is strictly limited to choosing the transaction ordering.  Their attacks are limited to denial of service (mining empty blocks), double spending (chain reorgs), and censorship (selective rejection of transactions for political reasons).

But even this rests on the assumption that the folks running non-mining, verifying nodes are economically significant enough as a whole to resist miner fraud.

You're right, it is up to every full node to validate the blockchain, but to implement a change in the blockchain, you don't need the majority of users, or miners.  You only need the majority of mining operators.  Once they adopt a change, they can prevent everyone else from using Bitcoin until they comply with that change.

If the majority of mining operators (a very, very small minority of people) said "In order to spend Bitcoin, you must pay a 10% transaction fee (tax)."  People would bitch and complain, but rather than letting go of their Bitcoin, they will comply with the new rules.  If they decided to set Bitcoin on an inflationary tract, who's going to tell them differently?  Uncle Joe, who's entire net worth is measured in Bitcoin?  I don't think so.  90% are Uncle Joe, 10% will be cheering because their account balances will skyrocket!

Don't underestimate the general apathy of the people, it's a powerful weapon in the right hands.
You're seriously oversimplifying this scenario.  The dynamics of such an attack are economically and socially complex, but if you think deeply about it, I think you'll find that defences can be mounted that would eventually bankrupt the attackers.  Though it would be messy while it played out.

You also don't seem to be considering the implications that this attack would have on confidence in the system, if successful.  It's essentially an existential threat, and giving in simply isn't an option.

Yes, I am oversimplifying the scenario, much like how the banksters and our government oversimplified the issue with Gold as a currency.  The rich wanted gold as a store of wealth, while the common man just wanted something to use for purchasing everyday things like bread and milk.  The two purposes were at odds, and the common man lost.

I'm sorry to have gone off on such a tangent.  It wasn't my intention to get into the intentions of future parties or the ability of Bitcoin to fend off various attacks (monetary, technological, or social).  I was simply trying to express that there are potential threats, and that while implementing P2Pool in the client itself could be part of a solution, it cannot solve any real problem by itself.

In order to eliminate any potential threat of consolidation of power, we would need to eliminate the 'vote by hash' system.  And no, I do not believe that POS is the answer either, as that consolidates power in the hands of whomever controls the most coin.  I really don't know what the answer is.


newbie
Activity: 35
Merit: 0
It would be almost trivial to implement— just bundle it, if nothing else. But I suspect the ship has already sailed for this.

We now have miners with hundreds of thousands of dollars of equipment which run it off a raspberry pi. Who send their coins directly to coinbase to be sold. Who have never used a Bitcoin client of any kind (except for the coinbase webwallet), certainly not a full node, and they have no concept of why they'd want to.  The name they trust most in mining is operator of their chosen pool— who could be robbing them blind, but maybe isn't— who has a financial interest to the tune of— say— >$700,000/month in keeping miners on their pool, and who tells them they don't need to worry about things, and who is believed because far too many people— including you— overly fixate on "51%" and ignore the fact that someone who controls 25% hashpower can reorg 6 confirms with 5% success or 2 with 31% success.

Never mind that the question of parties with large hashpower using it to harm other Bitcoin users is not hypothetical, as its recently been done— achieved huge profits in the process— and seems to have resulted in no negative consequences for the involved pool, just a lot of victim blaming, and some months delayed promises that the responsible parties have been sacked.

Perhaps many miners could be moved to running something p2pool like if doing so was easy, but just running a Bitcoin node is no longer so easy that it can be treated as costless, with now gigabytes of space wasted by pointless dust-scale messaging transactions. Transactions that the Bitcoin users didn't care about because they weren't running nodes and because many people had a monetary interest in being able to wastefully use the systems resources in that manner.

In any case, I don't think the problems you're facing are technical. The problem is that participants in the system don't know or care. I think the problem is also that to some extent people who should know better are not paying attention to the mining ecosystem and don't realize what a mess things are, and some who do are tempering their statements because saying "Hey everyone, the Bitcoin security assumptions are basically invalid in the current environment" too loudly may be adverse to the value of their holdings.

If you can figure how to educate people on the subject in a world where people have multimillion dollar a year income streams that depend on hashers not being educated and while other people own hundreds of millions of dollars of Bitcoin whos value might be eroded if the concerns become too wide spread— then I think progress could be made. Otherwise?  ::shrugs::

[I don't even intend to suggest intentional misconduct due to the monetary interest, only: "It is difficult to get a man to understand something when his salary depends upon his not understanding it."]

What about for alt coins? Would it work for them?
legendary
Activity: 3878
Merit: 1193
The daily limit of 660,000 transactions isn't an issue.  Payouts would only be done using one transaction per block, the coinbase transaction, which does not necessarily need to be limited to an arbitrary number of outputs.

Yes, it does need to be limited. Every output, even in the coinbase transaction, takes up bytes, and the blocksize has a very hard limit.
sr. member
Activity: 461
Merit: 251
Every full node checks the validity of the coinbase transaction.  SPV nodes currently don't, but they could if we switch to using Merkle sum trees.

The power that miners have over the network is strictly limited to choosing the transaction ordering.  Their attacks are limited to denial of service (mining empty blocks), double spending (chain reorgs), and censorship (selective rejection of transactions for political reasons).

But even this rests on the assumption that the folks running non-mining, verifying nodes are economically significant enough as a whole to resist miner fraud.

You're right, it is up to every full node to validate the blockchain, but to implement a change in the blockchain, you don't need the majority of users, or miners.  You only need the majority of mining operators.  Once they adopt a change, they can prevent everyone else from using Bitcoin until they comply with that change.

If the majority of mining operators (a very, very small minority of people) said "In order to spend Bitcoin, you must pay a 10% transaction fee (tax)."  People would bitch and complain, but rather than letting go of their Bitcoin, they will comply with the new rules.  If they decided to set Bitcoin on an inflationary tract, who's going to tell them differently?  Uncle Joe, who's entire net worth is measured in Bitcoin?  I don't think so.  90% are Uncle Joe, 10% will be cheering because their account balances will skyrocket!

Don't underestimate the general apathy of the people, it's a powerful weapon in the right hands.
You're seriously oversimplifying this scenario.  The dynamics of such an attack are economically and socially complex, but if you think deeply about it, I think you'll find that defences can be mounted that would eventually bankrupt the attackers.  Though it would be messy while it played out.

You also don't seem to be considering the implications that this attack would have on confidence in the system, if successful.  It's essentially an existential threat, and giving in simply isn't an option.
member
Activity: 69
Merit: 10
Do you realize there's only 600,000 available transactions per day total? If everyone who downloaded bitcoin.exe was getting daily payouts, there'd be no room for actual peer to peer transactions. Everyone who uses bitcoin cannot be a miner.

The daily limit of 660,000 transactions isn't an issue.  Payouts would only be done using one transaction per block, the coinbase transaction, which does not necessarily need to be limited to an arbitrary number of outputs.  The P2Pool payout logic described in the wiki is a little fuzzy, but I can see the payout being divided up between an equal number of outputs for the largest share holders and oldest (qualifying) share holders until the total award has been spent.  The only shares that would expire without compensation, would be those with a value less than a defined threshold or the limit of the monetary unit (less than 1 Satoshi).

To clarify my last post:

Satoshi wrote in his paper that "Nodes will always consider the longest chain to be the correct one..."  To expand on this, wouldn't it be fair to also say that whomever controls the longest chain has the power to impose a tax?

Even if we were to incorporate P2Pool style code directly into the client, we still won't have any way of proving that Alice is only running a single node and that her node wasn't being secretly controlled by Bob, or that Alice and Bob are not colluding towards some nefarious purpose.

I don't know the answer to this problem, or if it even is a problem.  Perhaps the 'central' nodes need to be operated in a completely open and transparent manner with positive identification of all parties involved with it's operation?


member
Activity: 69
Merit: 10
Every full node checks the validity of the coinbase transaction.  SPV nodes currently don't, but they could if we switch to using Merkle sum trees.

The power that miners have over the network is strictly limited to choosing the transaction ordering.  Their attacks are limited to denial of service (mining empty blocks), double spending (chain reorgs), and censorship (selective rejection of transactions for political reasons).

But even this rests on the assumption that the folks running non-mining, verifying nodes are economically significant enough as a whole to resist miner fraud.

You're right, it is up to every full node to validate the blockchain, but to implement a change in the blockchain, you don't need the majority of users, or miners.  You only need the majority of mining operators.  Once they adopt a change, they can prevent everyone else from using Bitcoin until they comply with that change.

If the majority of mining operators (a very, very small minority of people) said "In order to spend Bitcoin, you must pay a 10% transaction fee (tax)."  People would bitch and complain, but rather than letting go of their Bitcoin, they will comply with the new rules.  If they decided to set Bitcoin on an inflationary tract, who's going to tell them differently?  Uncle Joe, who's entire net worth is measured in Bitcoin?  I don't think so.  90% are Uncle Joe, 10% will be cheering because their account balances will skyrocket!

Don't underestimate the general apathy of the people, it's a powerful weapon in the right hands.

Not to make this specific to the US, but that's where I'm at, so that's the example I'm going to use...


1866 - fungible gold certificates - fractional reserve
1913 - federal reserve bank given power to counterfeit our money
1933 - confiscation of gold - Dollar drops to 78 cents (vs 1932 prices)
1934 - Dollar drops to 58 cents
1971 - End of Gold Standard - Dollar worth 51 cents
1972 - Dollar drops to 35 cents
2014 - Dollar worth 1.5 cents


What happens when Bitcoin becomes THE currency and people devolve once again into apathy.  Who's to stop the miners from destroying value just like the FED destroyed the value of the dollar by taking gold out of the equation and engaging in unlimited printing?

Quote
To coin Money, regulate the Value thereof, and of foreign Coin, and fix the Standard of Weights and Measures;

To provide for the Punishment of counterfeiting the Securities and current Coin of the United States;

Congress is supposed to be representative of the people, to work the people's will.  The apathy of the people allowed Congress to do this to us.  The apathy of the people allowed the wholesale counterfeiting of our money.

Apathy happens, it's a fact of human existence.  Bitcoin does not have any controls to prevent abuses against an apathetic people.  Honestly, I don't know if there can be a 100% safety net against apathy, but making collusion between mining operators more difficult would likely be a step in the right direction.  I think I have a solution that would work on a new coin, but would be horrible at this stage of Bitcoin's development.


legendary
Activity: 3878
Merit: 1193
Do you realize there's only 600,000 available transactions per day total? If everyone who downloaded bitcoin.exe was getting daily payouts, there'd be no room for actual peer to peer transactions. Everyone who uses bitcoin cannot be a miner.
sr. member
Activity: 461
Merit: 251
This is where Bitcoin is headed if we only have a small handful of pool operators controlling the global hash power.  What if those few decided to get together and issue a code update that allows them to generate all the BTC they wanted.

Every full node checks the validity of the coinbase transaction.  SPV nodes currently don't, but they could if we switch to using Merkle sum trees.

The power that miners have over the network is strictly limited to choosing the transaction ordering.  Their attacks are limited to denial of service (mining empty blocks), double spending (chain reorgs), and censorship (selective rejection of transactions for political reasons).

But even this rests on the assumption that the folks running non-mining, verifying nodes are economically significant enough as a whole to resist miner fraud.
member
Activity: 69
Merit: 10
I don't know that forcing everyone into a P2Pool would really accomplish anything.  The large miners would not be hurt, they will simply continue mining their private nodes and carrying on like nothing has changed.  Pool operators will also not be hurt.  Shares will be found, payments will be made, fees will be taken.

The only real change by doing this, is that the mining operators (independent farms, pools, solo) get a smoother revenue stream.  Win for all.

Individual miners would have no incentive to organize themselves in to teams to support numerous nodes and large operators will have no incentive to break up their systems.  At best, (BIGPOOL) breaks up into 100 smaller nodes, but all 100 still controlled by the same people.

I really don't think that concentrated hashing power is as big a threat as most make it out to be.  Sure, someone might execute a double spend of their own funds, but the victim should have recourse.  Honestly, who's going to accept a $50,000 payment for a new car without requiring a few dozen confirmations before completing the deal?  It's a candybar?  Oh well, you just got shoplifted, call the cops.  Virtual service?  Well, you should have required payment in advance and waited for a few confirmations.

I wonder though, if there isn't a real threat of collusion between pool operators to impose new rules on the entire community.  For example, the US Dollar is controlled by 7 people (currently 5).  They can, without explicit approval of the government, print all the money they want.

This is where Bitcoin is headed if we only have a small handful of pool operators controlling the global hash power.  What if those few decided to get together and issue a code update that allows them to generate all the BTC they wanted.  Sure, if it happened tomorrow, everyone would just walk away.  What about when Bitcoin is the only currency in wide spread use?  We'll have to launch yet another form of currency to compete and hopefully take down the Fiat Bitcoin.

No, I'm not worried about double spending.  I'm worried about the will of a few people being imposed on everyone else.



legendary
Activity: 3430
Merit: 3080
it´s sad but now when p2pool should grow (because of massive danger that big mining pools take control over BTC network) it just gets smaller and smaller.

i expect/hope shortly to get my 17TH/s shipped (CT & BM) and brought already good server to build up my own public node. Now i am just testing and optimizing it with my current miner/s, but now i´m not sure anymore that it will pay itself back even if payouts are better than in centralized pools. last 2 weeks average payout is 20% less than with my other miners make in centralized pools.

most important is to find a way, how to bring miners back to p2pool. it is important that we get/set up more stabile nodes.

other important thing would be to find funds for dev-team (and also marketing-team) to make p2pool stronger and more known. if every nod would set up a small fee and spend it to dev-team (so i will do), we would be already a small step further.

Sorry about my bad englisch (not native speaker  Wink )

Many native english speakers have worse english than that.  Smiley

I donate on p2pool, although I do admit to reducing the fee before I ROI-ed my equipment (adjusted to the 0.5% standard now it's making profits).

I think we have a deficit in understanding mining, this will improve with time. It's obvious when you look at the GHashIO situation. One big reason people mine there is the edge they get from merge-mining every SHA-256 altcoin under the sun. I don't want to merge mine on principle, I'd prefer to keep bitcoin strongest and weaken the influence of alts. But this is what happens when you give people freedom to exercise rational self interest.

Doing what's rational is not the same for everyone, and some people see the short term view, or take the less thoughtful view of the ecosystem as a whole. I think once we have a bit more time to get more people mining, the debate will be opened up more and the prevalent rationale will change. I say prevalent, when you could argue that the majority use a pool that's healthier for the network right now, ~66% of people are not using GHashIO currently.
member
Activity: 112
Merit: 10
Just Fun!
it´s sad but now when p2pool should grow (because of massive danger that big mining pools take control over BTC network) it just gets smaller and smaller.

i expect/hope shortly to get my 17TH/s shipped (CT & BM) and brought already good server to build up my own public node. Now i am just testing and optimizing it with my current miner/s, but now i´m not sure anymore that it will pay itself back even if payouts are better than in centralized pools. last 2 weeks average payout is 20% less than with my other miners make in centralized pools.

most important is to find a way, how to bring miners back to p2pool. it is important that we get/set up more stabile nodes.

other important thing would be to find funds for dev-team (and also marketing-team) to make p2pool stronger and more known. if every nod would set up a small fee and spend it to dev-team (so i will do), we would be already a small step further.

Sorry about my bad englisch (not native speaker  Wink )
legendary
Activity: 1232
Merit: 1094
Isn't the answer, the main Bitcoin Exchanges - BTC-E, Bitstamp, MTGox etc. & Bitpay?
A) Isn't the danger posed by centralisation of mining the biggest threat to their business model and income stream?
B) Couldn't addressing the problem even improve their current income stream?
C) Wouldn't it be the most positive marketing investment they could make?

That is an interesting idea.

They also have no conflict of interests.  They don't get an advantage to centralised pools.

Quote
If there was a transparent P2Pool fund set up and administered by the Bitcoin Foundation that would be used to encourage a switch over in hashrate distribution to P2Pool till until none of the other pools controlled more than 10% of the hashing power, would you?

1) Be willing to contribute 5% of your trading fees during a trial period to see if we could make demonstrable headway to achieving that goal.
2) If not 5% what would be the maximum % you could consider contributing ?
3) If you were unable to contribute would you consider giving users the ability to opt-in to a higher trading fee on an individual basis.

Thoughts?

There is a system for donating to p2pool.  They could be encouraged to use that directly.

P2pool already has a higher than average expected payout.  Maybe advertising would be a more effective way to contribute.  Adding info on their main pages would cost them little.
legendary
Activity: 1138
Merit: 1001
Hi guys, I don't usually comment in the technical section as I'm not very technical so apologies if the following is naive.

As I understand it, one the best current options to address the biggest threat facing Bitcoin - the centralisation of mining, is to have miners & hashers switch to P2Pool, but currently they are not incentivised to do so.

So the question is -  Who is most incentivised to incentivise them to switch?

Isn't the answer, the main Bitcoin Exchanges - BTC-E, Bitstamp, MTGox etc. & Bitpay?

A) Isn't the danger posed by centralisation of mining the biggest threat to their business model and income stream?
B) Couldn't addressing the problem even improve their current income stream?
C) Wouldn't it be the most positive marketing investment they could make?

If some of the above were true, would it be worthwhile asking them something along the lines of the following?..

If there was a transparent P2Pool fund set up and administered by the Bitcoin Foundation that would be used to encourage a switch over in hashrate distribution to P2Pool till until none of the other pools controlled more than 10% of the hashing power, would you?

1) Be willing to contribute 5% of your trading fees during a trial period to see if we could make demonstrable headway to achieving that goal.
2) If not 5% what would be the maximum % you could consider contributing ?
3) If you were unable to contribute would you consider giving users the ability to opt-in to a higher trading fee on an individual basis.

Thoughts?
hero member
Activity: 718
Merit: 545
Question..

If you were running a 10 second share chain, like p2pool, is it even possible to run a pool on that ?

The chain would be too fast to have another pool trying to find smaller shares, say every 1 second ?

The messages just wouldn't have time to propagate across the network.

Is that correct?

You would need a different mechanism. Maybe one based on sending different miners a range of nonce values they should try, so that no 2 miners search the same space, and then when someone finds a valid block just publish it with payouts made to all.. Seems like 'trust' would need to be involved for that to work though.


sr. member
Activity: 285
Merit: 250
Bitcoin.org maintainer
If you want to work on fixing this, IMHO the right place to start is by improving the bitcoin.org website. Create a section for miners and put best practices and advice there, make videos showing how to configure p2pool, heck, as p2pool screwed up their own website why not give it a section of bitcoin.org and work with Forrest to make that the official website? There are no other competing decentralised pools after all.

I just opened a pull request to recommend smaller pools / P2Pool / pools with GBT in the "Support Bitcoin" page on bitcoin.org, in case anyone is interested:
Pull req : https://github.com/bitcoin/bitcoin.org/pull/296

IMO, it would be nice to have a similar recommendation on bitcoinmining.com:
http://www.bitcoinmining.com/bitcoin-mining-pools/

And I would be happy to help forrestv to make his own website a little more readable:
http://p2pool.in/

FWIW, I think it is more suitable for P2Pool to remain on a dedicated domain. Serving it on bitcoin.org would just bury it under a lot of unrelevant information and make it harder to find. The website would also be managed by people with no involvement with P2Pool, which I think isn't the logical next step.

I agree that promoting P2Pool is only a small part of the solution. Yet, still much better than not doing it.
legendary
Activity: 1232
Merit: 1094
This would mean having literally a million payouts in the coinbase txn..

There would need to be a payout threshold.  At the moment, fees are 0.0001 per tx.

Centralised pools generally have a payout threshold that is larger than that too.

Even if you get a share, you don't get paid until you have increased your "balance" sufficiently.
hero member
Activity: 718
Merit: 545
Actually, thinking about it..

How does a p2pool sub pool get paid by the p2pool main chain 1 level up ?

There could be, let's say 1000 outputs on the coinbase txn of the sub pool, and then in the p2pool main chain there could be 1000 shares from the various subpools.

This would mean having literally a million payouts in the coinbase txn..

err.. not sure now..

You can have the top level p2pool, but then you need the regular centralised pools as the sub pools, otherwise as I said, the coinbase becomes toooo large..

 Huh

hero member
Activity: 718
Merit: 545
I envision p2pool being hierarchical for it to succeed: sharechain > sub-pools > nodes > miners
randomly connecting to nodes/sub-pools solves the high variance problem of bitcoin. Miners are no longer incentivized to join a pool/node with the most hashrate, since they should be automatically balanced.
However, doing so raises the trust issue that TierNolan described and to which he proposes an incremental trust level solution.
I believe this is the way to go for p2pool to go mainstream. People just access the network, start mining, no cares given unless they want to.

+1

How about..

Main p2pool share-chain. (Or a blockchain that ran on a 1024 PPLNS system by default)

Then 1024 sub-p2pools, each mining the main p2pool chain.

When you connect to the network you always connect to one of the sub-pools. Basically the weakest one in terms of hashrate.

You reconnect/re-organise your miner every 24hrs/Some amount of blocks. To keep the sub pool hash rates even.

Repeat.

The goal would be 1024 p2pools with ~0.1% total hashrate each. Not that it would matter that much if one pool was a few percent more powerful than another. Your payouts would be of the same amount, just different variance.

All done automagically.. No need for user to worry about it. Just connect and go!
  
newbie
Activity: 28
Merit: 0
I don't think you understood what I was talking about wrt hardware changes. I wasn't suggesting a change to the controllers at all.

Thanks - my bad. I confused your point about the challenge (or benefits) of integrating p2pool into the reference client ("…these cheap machines would still be out of the question… The main client really struggles on the 512Mb RAM raspberry pi") with your separate/main point regarding variance. Thanks for being patient with me as I become more familiar with the details of p2pool and the mining landscape.

It sounds like there are some good discussions happening among people who know a lot more about this than I, so I'm happy about that. I'm just hoping that an effective solution can be engineered, deployed, and adopted before it's too late Smiley
Pages:
Jump to: