Bitcoin Forum

Bitcoin => Development & Technical Discussion => Topic started by: RHorning on November 12, 2010, 07:29:12 PM



Title: Rethinking Bitcoins
Post by: RHorning on November 12, 2010, 07:29:12 PM
This is mainly a theoretical discussion rather than an actual proposal I am making in terms of changes to Bitcoins, but I would like to perhaps open up the discussion about other "metrics" that might be used for a peer-to-peer electronic coin system similar to Bitcoins, and perhaps come up with a strong defense for the current system as well from a logical viewpoint.

It was this post that got me thinking originally:

I like the idea of separating the daemon core from the GUI. That way others can build their own interfaces for using bitcoin like a KDE version for my desktop or a web interface.

Oooh.. I do like the idea of a bitcoin daemon presenting itself through a KDE Plasma widget...  8)

Either way, I have been thinking about the whole mining aspect of Bitcoin these last weeks, since the difficulty has gone through the roof. It would be nice to have the whole generating part be (more) independent of processing power, and more balanced towards the amount of time one puts in. However, I think most alternatives will, sooner or later, fall victim to people using their non-bitcoin wallets in order to change a new more balanced way of generating bitcoins in their favor.

If generating would be dependent on time spent, people would simply spawn multiple processes, virtual machines, etc. If generation would be dependent on bandwidth spent (as a Tor middleman node perhaps?  ;)), people would invest in broadband connections, servers in datacenters, etc. If generation would be shifted from something GPU-optimized towards something only CPU's are good at computing, people would invest in CPU's.

As I am running out of ideas, I would like to add that I too am in favor of having Bitcoin default to 10/15% of a CPU core generating for the sake of network stability and security. In fact, it would be nice if Bitcoin allowed me to select percentage in addition to number of cores. I have no clue however if that is easily added or something incredibly complicated to code.

What kinds of alternative systems could there be and how could we reward people contributing to the project in some way that is concrete, automatic (or semi-automatic), and could be measured in some way that could be verified independently that those making the contributions are getting rewarded?

Network bandwidth is obviously something that is in fact necessary for the whole concept of Bitcoins to work out, yet there currently isn't any metric that encourages people to become the central node to a whole bunch of connection as opposed to having merely one or two connections to the outside world, other than perhaps who is going to get the first jump on the next work unit if it became a contest.

How could you monetize network bandwidth in this case? (for the purposes of Bitcoins)  Would "potential" capacity be more important or would simply measuring throughput be more significant?  Should nodes "pay" for previous work units to be sent their way?  If you request the current 90k work units, that represents a sizable amount of data, and it would seem like there could could be some cost to that sort of bandwidth represented in the network itself.  That would stink if you had no bitcoins, but then again it might spur on some "buy-in" if you were to set up another client.  I'm not talking a huge cost here, but paying 0.000001 BTC per work unit retrieved could be an interesting transaction (perhaps less, I'm just trying to put a starting point on this here).  It would also give a way for people who simply run a client but aren't mining to at least make a little bit of money simply running the client.

Even an option to voluntarily "pay for work units" might be interesting as perhaps there are some users who would be willing to "share the wealth".

Would "time served" or "time connected" be useful by itself?

Coming up with a different algorithm which can't be implemented in a GPU is an interesting concept too.  That has some of its own issues, but is again something to think about.

Ideally it would be nice if each participant in the project was able to get an equal slice of the coins generated.  Unfortunately, at best all I can think of is perhaps some other ways to "generate" coins based upon participation with the project.  Putting in a bug bounty or paying for participation in the forums seems like a good idea, but again the question comes to how is it being paid for.  Some of that is already happening anyway, so I don't see a need for that to be included in the client software itself.

Are there any other metrics that you can think of in terms of how else contributors to Bitcoins could be rewarded and automated with network rules?


Title: Re: Rethinking Bitcoins
Post by: ByteCoin on November 13, 2010, 02:14:34 AM
Bitcoin rewards user's expendature of CPU time to support the network but does not value their disk space and network bandwidth. You can't change this nor the traceable pseudonymity of transactions without the system ceasing to be Bitcoin.

ByteCoin


Title: Re: Rethinking Bitcoins
Post by: RHorning on November 13, 2010, 04:25:23 AM
Bitcoin rewards user's expendature of CPU time to support the network but does not value their disk space and network bandwidth. You can't change this nor the traceable pseudonymity of transactions without the system  ceasing to be Bitcoin.

ByteCoin

Why not?  A bald statement like that seems to need a bit of proof to support the notion.

I'm not completely dismissing the fact that it would hinder somewhat the anonymity, but you already lose a little bit of that simply by connecting to somebody else in the network.  If you are going to be paying for packets, you would be paying "peer nodes" in some fashion, which to me already could be logged or somehow monitored.  There isn't any knowledge already available that would additionally be given to "pay for" network bandwidth or disk space usage.

Perhaps, and this is something a bit tougher to work with, you could associate some bitcoin address directly with an IP address.  That doesn't have to be a 100% given (somebody in anonymous mode could list the address for somebody else like a favorite charity).  You also can create new addresses just for the peer to peer block transactions too.

I also fail to see how this would change the fundamental nature of Bitcoins.  I'm also trying to suggest some additional way for people to perhaps earn bitcoins.  Since the traditional method of mining coins is obviously not really working out for the casual new user, there could and perhaps should be some other methods available.

I also fail to see why Bitcoins (which still isn't officially in version 1.0, let's remember this is still in the "pre-release" experimental stage right now) can't possibly change or why new ideas keep getting shot down.  To force ideas to ferment and refine the concept to something strong, or shoot down poorly formed ideas is fine and I understand that too.


Title: Re: Rethinking Bitcoins
Post by: grondilu on November 13, 2010, 05:34:53 AM
I also fail to see why Bitcoins (which still isn't officially in version 1.0, let's remember this is still in the "pre-release" experimental stage right now) can't possibly change or why new ideas keep getting shot down.  To force ideas to ferment and refine the concept to something strong, or shoot down poorly formed ideas is fine and I understand that too.

Bitcoin is the implementation of a protocol.  The fact that the software is in a version inferior to 1 doesn't mean the protocol is in developpment.

When we say bitcoin is a beta software, it means that the software is an experimental attempt to implement the protocol.  But the protocol itself must not be changed, otherwise it would be a different software.

Any idea for a change in the protocol should not be applied to bitcoin, but to a bitcoin fork.  I can't talk for Satoshi, but I guess he would accept new ideas only if they allow a better implementation of the protocol, but not a modification of it.


Title: Re: Rethinking Bitcoins
Post by: jgarzik on November 13, 2010, 05:48:53 AM
Any idea for a change in the protocol should not be applied to bitcoin, but to a bitcoin fork.  I can't talk for Satoshi, but I guess he would accept new ideas only if they allow a better implementation of the protocol, but not a modification of it.

satoshi seems to fall on both sides of protocol compatibility ;-)

He makes a very strong effort to support ancient clients (and their ancient implementations of the bitcoin network protocol).

But he also suggests future incompatible changes may be integrated via patterns such as

Code:
if (block > 200000)
     Do Something New And Different ()


Title: Re: Rethinking Bitcoins
Post by: MoonShadow on November 13, 2010, 05:53:24 AM

Why not?  A bald statement like that seems to need a bit of proof to support the notion.


I'm guessing your not a programmer.  I'm not, but I can see how the proof-of-work system is self-evidently not readily exchangable with any other method.

Quote

I'm not completely dismissing the fact that it would hinder somewhat the anonymity,


Any level of anonymity is incidental to the function of bitcoin, and only exists due to the cash-like nature of the system.  The PoW system used with bitcoin was chosen as a security measure, not a secrecy measure.

Quote

I also fail to see how this would change the fundamental nature of Bitcoins.


I don't think that you have yet wrapped your head around the system.

Quote

  I'm also trying to suggest some additional way for people to perhaps earn bitcoins.  Since the traditional method of mining coins is obviously not really working out for the casual new user, there could and perhaps should be some other methods available.


The block reward is an incentive to contribute to the security of the blockchain.  It's not there to equitably distribute bitcoins.  Not only is it irrelevant if the casual new user is 'working out', it's not evident that is the case.

Quote

I also fail to see why Bitcoins (which still isn't officially in version 1.0, let's remember this is still in the "pre-release" experimental stage right now) can't possibly change or why new ideas keep getting shot down.  To force ideas to ferment and refine the concept to something strong, or shoot down poorly formed ideas is fine and I understand that too.

Actually, you can make any changes you desire, and start a parallel blockchain with your own  genesis block; but if you succeed in doing what I think you're doing, your blockchain will certainly be compromised if it were to ever grow enough to represent any real value.


Title: Re: Rethinking Bitcoins
Post by: grondilu on November 13, 2010, 05:55:04 AM
Any idea for a change in the protocol should not be applied to bitcoin, but to a bitcoin fork.  I can't talk for Satoshi, but I guess he would accept new ideas only if they allow a better implementation of the protocol, but not a modification of it.

satoshi seems to fall on both sides of protocol compatibility ;-)

He makes a very strong effort to support ancient clients (and their ancient implementations of the bitcoin network protocol).

But he also suggests future incompatible changes may be integrated via patterns such as

Code:
if (block > 200000)
     Do Something New And Different ()


Well, this is not good for my confidence into bitcoin.


Title: Re: Rethinking Bitcoins
Post by: theymos on November 13, 2010, 06:04:17 AM
But he also suggests future incompatible changes may be integrated via patterns such as
[...]

This has actually been done a few times. The conditional is removed after the "timer has gone off", so you can't easily see the evidence of it. The most recent one was with new transaction limitations:
Code:
if (nBestHeight > 84000)
{
    if (nKeysCount > 20)
        return false;
    nOpCount += nKeysCount;
    if (nOpCount > 201)
        return false;
}

This limitation on blocks was also phased in recently:
Code:
// Check that it's not full of nonstandard transactions
if (GetSigOpCount() > MAX_BLOCK_SIGOPS)
   return error("CheckBlock() : too many nonstandard transactions");


Title: Re: Rethinking Bitcoins
Post by: RHorning on November 13, 2010, 07:02:26 AM
I also fail to see why Bitcoins (which still isn't officially in version 1.0, let's remember this is still in the "pre-release" experimental stage right now) can't possibly change or why new ideas keep getting shot down.  To force ideas to ferment and refine the concept to something strong, or shoot down poorly formed ideas is fine and I understand that too.

Bitcoin is the implementation of a protocol.  The fact that the software is in a version inferior to 1 doesn't mean the protocol is in developpment.

When we say bitcoin is a beta software, it means that the software is an experimental attempt to implement the protocol.  But the protocol itself must not be changed, otherwise it would be a different software.

Any idea for a change in the protocol should not be applied to bitcoin, but to a bitcoin fork.  I can't talk for Satoshi, but I guess he would accept new ideas only if they allow a better implementation of the protocol, but not a modification of it.


I have a hard time trying to figure out where to start with this.  The whole reason there was an "emergency" upgrade from 0.3.9 to something higher was explicitly because there was a need to tweak of the protocol... precisely because it is under development.  Changing the protocol is not going to change the software, including major changes.

I think it is wrong to take something like this and treat it as if somehow a divine being has descended from on high with "The Word" as if it can never be changed.   I do think Satoshi has done a great many things right and certainly what has been described as the primary protocol for Bitcoins (the generation of coins) is on the whole a pretty good idea and it has been accepted by a great many people.

On the other hand, to say that the protocol can't be changed is simply wrong.  The protocol has changed and will change in the future.  Even after it hits version 1.0 and is declared pretty much operational there will continue to be tweaks to the protocol, including several talked about already in the forums.

In terms of forking, all "open source software" has the "right to fork" as a potential, but generally that isn't done because there is an advantage to keeping everybody on the same page.  On the other hand, I think some of the ideas presented here are powerful enough that a fork might be successful.  Indeed it is attitudes like this which lead to forking, where people with ideas for improvement are being drummed out of the group.

That people have invested real money into the protocol already is why it is important now to talk about the direction of the project, what could be and why it isn't happening rather than leaving that to a later discussion.


Title: Re: Rethinking Bitcoins
Post by: RHorning on November 13, 2010, 07:40:58 AM

Why not?  A bald statement like that seems to need a bit of proof to support the notion.


I'm guessing your not a programmer.  I'm not, but I can see how the proof-of-work system is self-evidently not readily exchangable with any other method.


Be careful about presumptions.  I'm curious about how you jumped to that conclusion.  I was likely programming computers before you were born.

Quote
Quote

I'm not completely dismissing the fact that it would hinder somewhat the anonymity,


Any level of anonymity is incidental to the function of bitcoin, and only exists due to the cash-like nature of the system.  The PoW system used with bitcoin was chosen as a security measure, not a secrecy measure.


I get that.  There have been some tweaks and changes to the protocol to increase anonymity for users that have been useful, and some other threads that have gone into details on how that could be improved.  I wasn't really intending to make this thread about anonymity anyway.

Quote
Quote

I also fail to see how this would change the fundamental nature of Bitcoins.


I don't think that you have yet wrapped your head around the system.


Enlighten me, please! I've been trying to figure this system out for several months, including reading the source code itself.  I'm still not convinced that tweaking the protocol or introducing new ways for people contributing to Bitcoins is necessarily going to change the primary facets of the project, including how the raw coins themselves are produced, how transactions are processed, or how the information is preserved.

Quote
Quote

  I'm also trying to suggest some additional way for people to perhaps earn bitcoins.  Since the traditional method of mining coins is obviously not really working out for the casual new user, there could and perhaps should be some other methods available.


The block reward is an incentive to contribute to the security of the blockchain.  It's not there to equitably distribute bitcoins.  Not only is it irrelevant if the casual new user is 'working out', it's not evident that is the case.

The equitable distribution is an issue in terms of encouraging participation in the project.  I get that inequalities are going to exist.  Still, if it isn't "working out" for new users there will be a lag between those joining the project and those giving up to leave.  Perhaps other aspects of bitcoins are going to be attractive and they seem to be.
Quote
Quote


I also fail to see why Bitcoins (which still isn't officially in version 1.0, let's remember this is still in the "pre-release" experimental stage right now) can't possibly change or why new ideas keep getting shot down.  To force ideas to ferment and refine the concept to something strong, or shoot down poorly formed ideas is fine and I understand that too.

Actually, you can make any changes you desire, and start a parallel blockchain with your own  genesis block; but if you succeed in doing what I think you're doing, your blockchain will certainly be compromised if it were to ever grow enough to represent any real value.

I'm curious what you think I want to do here?  All I'm asking is to rethink Bitcoins for a little bit and to get a more open mind about how people earn bitcoins.  Some of this can be put upon the existing structure, some of it would be so fundamental that you would indeed have to create a new genesis block and restart the project all over again (I admit that isn't practical), and some of it simply wouldn't work at all.

I'll tip my hand here a little bit as there is a selfish motive here for me as well.  I'm trying to pick the brains of some of those who have participated with Bitcoins from the beginning for another projects that I'm working on where I might just start something sort of like Bitcoins but not directly related to the concept and certainly isn't a competing currency in the sense that Bitcoins, Dollars, or Euros are.  I've mentioned it elsewhere and if people are interested I'll create another thread about that concept.  But I think it is still useful to talk about these issue in the context of Bitcoins itself and that there are things that could be discussed if you but open your mind just a little bit that things could be a little different too.

Perhaps I'm missing something here with Bitcoins too.  I don't understand why it is so awful to consider alternatives for how the coins themselves are generated, or to defend without ad hominem attacks the concept of a hash generation of coins.


Title: Re: Rethinking Bitcoins
Post by: ribuck on November 13, 2010, 11:53:11 AM
Code:
if (block > 200000)
     Do Something New And Different ()


Well, this is not good for my confidence into bitcoin.

Your confidence in bitcoin should not depend on whether the programming language supports "if" statements, but on whether you think more those who control 50% of the CPU power would accept bad changes in the future.

Let me give you a tangible example. If in the future the limitation of eight decimal places (for the subdivision of bitcoins) became a problem, and someone designed an acceptable way to remove that limitation, it would not be unreasonable to apply that change from a specified block number.

What I would like to see is a document that outlines the core values that can never change without it becoming something other than bitcoin. For example the absolute limit of 21 million bitcoins. There are probably only about half a dozen really core principles.

The purpose of that document would be to provide the moral authority to argue against a usurper (Facebook, say) giving their users an inferior system and saying that it is bitcoin.

I see an analogy with documents like the Debian Free Software Guidelines, the OSI's definition of Open Source, and the FSF's principles of free software. If those had not already been in place, it would have been very difficult to assert that things like Microsoft's "Shared Source" were inferior.


Title: Re: Rethinking Bitcoins
Post by: grondilu on November 13, 2010, 12:24:35 PM
What I would like to see is a document that outlines the core values that can never change without it becoming something other than bitcoin. For example the absolute limit of 21 million bitcoins. There are probably only about half a dozen really core principles.

The purpose of that document would be to provide the moral authority to argue against a usurper (Facebook, say) giving their users an inferior system and saying that it is bitcoin.

Agreed.  We should work on writing those specifications.


Title: Re: Rethinking Bitcoins
Post by: RHorning on November 13, 2010, 04:05:49 PM
What I would like to see is a document that outlines the core values that can never change without it becoming something other than bitcoin. For example the absolute limit of 21 million bitcoins. There are probably only about half a dozen really core principles.

The purpose of that document would be to provide the moral authority to argue against a usurper (Facebook, say) giving their users an inferior system and saying that it is bitcoin.

Agreed.  We should work on writing those specifications.


I wish there was more effort to actually document the protocol rather than simply "document through code" what is happening with Bitcoins.  I made an effort on the internal wiki to the Bitcoins project to get started, but it is rather pathetic at the moment:

http://www.bitcoin.org/wiki/doku.php?id=technical_documentation (http://www.bitcoin.org/wiki/doku.php?id=technical_documentation)

There was also a fiasco where one regular participant to Bitcoins was asserting "ownership" over the spec that sort of crashed the party.  I hope that is water over the dam now.

Ideally, the coding ought to be based upon the specification rather than the spec being based upon the coding.  I think that is backwards and should change.  It is much easier to debate the specification and make more informed decisions about the spec when you can divorce the programming environment and reference implementation from the standards used.

At the moment, the reference implementation is the specification.  Some people like it that way.  I don't.


Title: Re: Rethinking Bitcoins
Post by: throughput on November 13, 2010, 04:09:14 PM
This is mainly a theoretical discussion rather than an actual proposal I am making in terms of changes to Bitcoins, but I would like to perhaps open up the discussion about other "metrics" that might be used for a peer-to-peer electronic coin system similar to Bitcoins, and perhaps come up with a strong defense for the current system as well from a logical viewpoint.

It was this post that got me thinking originally:

I like the idea of separating the daemon core from the GUI. That way others can build their own interfaces for using bitcoin like a KDE version for my desktop or a web interface.

Oooh.. I do like the idea of a bitcoin daemon presenting itself through a KDE Plasma widget...  8)


By the way, do I understand it correctly, people are talking about the separation between the daemon core and the GUI, but not about
the splitting software into:
  • the network P2P messenger (operated by the local administrator, protected from the local users)
  • site wide database - the local storage for the blockchain and all the public data (operated by the local admin, but accessible to the local users for reading and publishing of transactions and blocks)
  • personal "wallet" database with transaction generation code
  • application software, GUI, command-line, whatever. Like billing system, electronic wallet, checkbook implementation, anything, that is not really built into the bitcoin, but makes it so useful.

So the protocol changes will only affect the first part,
changing the bitcoin 'rules' will require to modify second and third parts,
but not the fourth, since it will only need to interact with the "wallet" part.


But, again, it is impossible without protocol and 'rules' formal and public specification.


Title: Re: Rethinking Bitcoins
Post by: grondilu on November 14, 2010, 12:34:37 AM
I wish there was more effort to actually document the protocol rather than simply "document through code" what is happening with Bitcoins.  I made an effort on the internal wiki to the Bitcoins project to get started, but it is rather pathetic at the moment:

http://www.bitcoin.org/wiki/doku.php?id=technical_documentation (http://www.bitcoin.org/wiki/doku.php?id=technical_documentation)

There was also a fiasco where one regular participant to Bitcoins was asserting "ownership" over the spec that sort of crashed the party.  I hope that is water over the dam now.

Ideally, the coding ought to be based upon the specification rather than the spec being based upon the coding.  I think that is backwards and should change.  It is much easier to debate the specification and make more informed decisions about the spec when you can divorce the programming environment and reference implementation from the standards used.

At the moment, the reference implementation is the specification.  Some people like it that way.  I don't.


Satoshi's white paper (http://www.bitcoin.org/bitcoin.pdf) is actually an excellent specification document.  It is this document that convinced me about how great is the bitcoin concept.

However, Satoshi is making regular slight modifications to the protocol.  Therefore, I think the document lacks a clear and exhaustive list of features that are absolutely necessary to define what bitcoin is.

Such a list could be used to audit the source code and make sure it is compliant to the bitcoin concept.

Amongst those features would be :

* The halfing of bitcoins reward every 210,000 blocks
* use of SHA-256 for hash
* a target of 6 generated blocks per hour


Title: Re: Rethinking Bitcoins
Post by: jgarzik on November 14, 2010, 02:31:33 AM
* The halfing of bitcoins reward every 210,000 blocks
* An always increasing difficulty
* use of SHA-256 for hash
* a target of 6 generated blocks per hour

Bitcoin is not built to continually increase the difficulty.

Bitcoin is built to continually adjust the difficulty, to attempt to reach the target of 6 blocks per hour.

If the number of miners decreases, then the difficulty will decrease.


Title: Re: Rethinking Bitcoins
Post by: grondilu on November 14, 2010, 02:48:00 AM
Bitcoin is not built to continually increase the difficulty.

Bitcoin is built to continually adjust the difficulty, to attempt to reach the target of 6 blocks per hour.

If the number of miners decreases, then the difficulty will decrease.


My mistake.


Title: Re: Rethinking Bitcoins
Post by: theymos on November 14, 2010, 03:47:50 AM
However, Satoshi is making regular slight modifications to the protocol.  Therefore, I think the document lacks a clear and exhaustive list of features that are absolutely necessary to define what bitcoin is.

Such a list could be used to audit the source code and make sure it is compliant to the bitcoin concept.

Amongst those features would be :

* The halfing of bitcoins reward every 210,000 blocks
* use of SHA-256 for hash
* a target of 6 generated blocks per hour


Any of those things can be changed while still remaining Bitcoin. Anything can be changed, really, as long as people using the software still consider its network to be the "real Bitcoin network".

The safest "rules" would be the 21 million BTC limit and a responsibility to honor all transactions that have been in the chain for a certain amount of time. Even those might be changed, though.


Title: Re: Rethinking Bitcoins
Post by: grondilu on November 14, 2010, 04:34:21 AM
Any of those things can be changed while still remaining Bitcoin. Anything can be changed, really, as long as people using the software still consider its network to be the "real Bitcoin network".

The safest "rules" would be the 21 million BTC limit and a responsibility to honor all transactions that have been in the chain for a certain amount of time. Even those might be changed, though.

Well, bitcoin forks will have to use different names, at least in order to differentiate themselves from the others.  I think it wouldn't make much sense to use "bitcoin" for any cryptocurrency other than the one where the total amount is 21 millions, for it has been the name of the original one.

I know we can ultimately inspect the code in order to know what kind of crypto-currency we're dealing with, but come on...


Title: Re: Rethinking Bitcoins
Post by: RHorning on November 14, 2010, 05:03:52 AM
Any of those things can be changed while still remaining Bitcoin. Anything can be changed, really, as long as people using the software still consider its network to be the "real Bitcoin network".

The safest "rules" would be the 21 million BTC limit and a responsibility to honor all transactions that have been in the chain for a certain amount of time. Even those might be changed, though.

Well, bitcoin forks will have to use different names, at least in order to differentiate themselves from the others.  I think it wouldn't make much sense to use "bitcoin" for any cryptocurrency other than the one where the total amount is 21 millions, for it has been the name of the original one.

I know we can ultimately inspect the code in order to know what kind of crypto-currency we're dealing with, but come on...


I am not completely convinced that the 21 million limit is necessary either, although this may be a topic for another thread entirely.  Since the coin miner has yet to be halved at all so far, this is a feature that has yet to be tested as a matter of fact, and its impact upon both difficulty and the exchange markets has yet to be seen as well.

The reason I suggest that perhaps the difficulty might be impacted is that there might be some people who simply give up even trying to mine coins altogether.  To me, that actually makes the network more vulnerable to "dangerous" attacks and could cause other problems too.  This remains to be seen how big of an attack it will be.

Also, I'm suggesting that the markets are adjusting to the continual influx of new coins coming "into the economy" and that the more important feature is not the absolute limit, but rather the very slow and steady growth of the Bitcoin economy.  Deflation is happening anyway as people are coming into usage of Bitcoins and applications of the currency are being found to soak up the coins faster than they can be mined.  Furthermore, there is a genuine need to be mining coins as it is the work units themselves that are processing transactions and determining how transaction fees are paid.

We are not talking somebody like the Fed Chariman sitting behind his computer and creating $3 trillion USD out of nothing and buying up all kinds of securities because he feels it is a good thing to do.  With bitcoins, such a move is impossible.

Correct me if I'm wrong here, but it is the person who "creates" the work unit (they get the hash correct that is recognized by the network) that collects the "fees" for the transactions processed with that work unit, in addition to the new coins mined with that work unit.  Is that correct?

I suppose that is the reason to continue to "mine" coins even if the value earned from the mining activity is zero.  Under the current system, the value "earned" from mining work units is eventually going to get to zero.

As a percentage of the total number of Bitcoins that are floating around, each new work unit even at 50 BTC each represents an ever decreasing proportion of the overall Bitcoin economy.  If anything, maintaining a constant flow and creation of bitcoins acts as an anti-deflationary method and ensures that "lost" bitcoins are not going to adversely impact the overall economy in terms of increasing deflationary pressure.

Again, I'll believe it when I see it, and it is when that work unit #210001 is created that it will be interesting to see what happens.  I'm just suggesting that even this particular sacred cow doesn't have to be so sacred as is being suggested and its impact has yet to even scratch the network yet.  Right now, the network is acting as if such a limit doesn't exist at all or at least you wouldn't notice a difference based on current behavior.


Title: Re: Rethinking Bitcoins
Post by: theymos on November 14, 2010, 05:14:13 AM
Well, bitcoin forks will have to use different names, at least in order to differentiate themselves from the others.  I think it wouldn't make much sense to use "bitcoin" for any cryptocurrency other than the one where the total amount is 21 millions, for it has been the name of the original one.

I was referring to the original Bitcoin. If Satoshi removes the halving of block rewards (eliminating the 21 million limit), and everyone switches to that version, then that network is still the real Bitcoin network.


Title: Re: Rethinking Bitcoins
Post by: grondilu on November 14, 2010, 05:21:43 AM
Well, bitcoin forks will have to use different names, at least in order to differentiate themselves from the others.  I think it wouldn't make much sense to use "bitcoin" for any cryptocurrency other than the one where the total amount is 21 millions, for it has been the name of the original one.

I was referring to the original Bitcoin. If Satoshi removes the halving of block rewards (eliminating the 21 million limit), and everyone switches to that version, then that network is still the real Bitcoin network.

That's one of the reason why I won't sell all my gold for bitcoins.  I mean, scarcity of gold is due to a physical reality.  Scarcity of bitcoin is only due to a form of consensus.  If for some reason most people decided to increase the number,  I'm not sure there is much I could do, apart from selling my bitcoins and buy some gold.

I don't see any way to prevent that from happening, though.


Title: Re: Rethinking Bitcoins
Post by: RHorning on November 14, 2010, 05:29:43 AM
Well, bitcoin forks will have to use different names, at least in order to differentiate themselves from the others.  I think it wouldn't make much sense to use "bitcoin" for any cryptocurrency other than the one where the total amount is 21 millions, for it has been the name of the original one.

I was referring to the original Bitcoin. If Satoshi removes the halving of block rewards (eliminating the 21 million limit), and everyone switches to that version, then that network is still the real Bitcoin network.

It doesn't even have to be everybody that switches.  All that has to happen is that a majority of the CPU power which decides what the next work unit will be will reject mined coins that don't follow the network.

Note, this already happened where for awhile the pre-0.3.9 network was producing one chain and the post 0.3.10 network was producing a completely different chain.  That is one of the reasons for the upgrade notice, as those people mining coins and even trying to process transactions won't be recognized when that happens by the main line network.  At the moment, you could stick with the pre-0.3.9 clients, but work units produced by them have the potential of not being incorporated into the main chain right now.

I know you get this Theymos, but I think it is an important point to note here.  Unlike some protocol situations, it doesn't have to be 100% agreement for a switch but rather a more "democratic" method.  The majority processing power runs the network and determines its fate.


Title: Re: Rethinking Bitcoins
Post by: theymos on November 14, 2010, 05:38:42 AM
It doesn't even have to be everybody that switches.  All that has to happen is that a majority of the CPU power which decides what the next work unit will be will reject mined coins that don't follow the network.

Changing anything that grondilu mentioned ("core parameters") would always split the network. Pre-change peers would never accept post-change blocks or transactions, even if post-change peers have 99% of the network.

There would be two networks, though likely both of them would consider themselves to be "the real Bitcoin network".


Title: Re: Rethinking Bitcoins
Post by: ribuck on November 14, 2010, 09:10:11 AM
There would be two networks, though likely both of them would consider themselves to be "the real Bitcoin network".

That's why the core principles of Bitcoin should be documented now, to avoid this kind of semantic war in the future. Sure, the networks can split, but there should be no doubt that the one issuing unlimited coins is not Bitcoin.

Obviously there's no legal force behind this; no trademark protection. But an "enshrined" document carries huge moral weight and influence, as has been found with the Debian Free Software Guidelines, the OSI Open Source definition, and the FSF Free Software definition.


Title: Re: Rethinking Bitcoins
Post by: ByteCoin on November 15, 2010, 12:09:38 AM
In your initial post RHorning you raised a number of interesting issues and I did not give them an adequate response in my immediate reply.

You think that people should be rewarded for participating in the network by providing network bandwidth for example. This is a perfectly reasonable position and I agree with you. Unfortunately there's no way that I can think of to implement this in the current Bitcoin system without being scammed or having some other negative consequences. If you were to think of a way to implement it and specify it in some detail then I'm sure the proposal would be examined in considerable detail.

It's hard to imagine how network participation would be rewarded because Bitcoin is not good at micropayments. Every payment is sent to each client and gets recorded in the block chain on each client's hard disk. The number of fee free payments per block is relatively low. Let's say you can get 50k of transaction data in a block before you have to pay. Let's say the minimum size of a transaction is 100 bytes (it's actually more) so that's 500 transactions in about 10 minutes or less than one transaction per second and everyone's hard disk fills up at 2.628G bytes per year. Even if one lets the micropayments accumulate on account and you settle it relatively infrequently, it's still going to be a significant proportion of transactions.

The second problem is that any reward that creates coins from thin air has to be mutually agreeable and verifiable. It would be hard to verify that all this network participation was not just falsified to get the money.

The third issue is satoshi's de-facto control over all aspects of Bitcoin. I don't have an opinion about whether this is good or bad, it just is and has to be taken into account. In another thread, gavinandresen opined that it's way too early to start asking for commitments to adhere to a particular interface or functionality. Upon reflection I believe he is right. If you look at the amount of generally useful code written to further the project, essentially all of it has been written and tested by satoshi. Note that I'm not counting GPU miners as useful! Thanks to him, we all have a nice reference implementation of Bitcoin that we can examine and play with and a wonderful forum to share our thoughts. If he discontinued development for whatever reason the project would rapidly grind to a halt. People disagree on what exactly Bitcoin is and how much would have to change before it wasn't Bitcoin anymore. The real answer is that Bitcoin is whatever satoshi implements for the forseeable future. At the moment and for the forseeable future there are a lot of features of the current system that need to be discovered and addressed before an improved system can be designed intelligently. If the current scheme were substantially changed then a lot of the momentum would be lost and it would take quite a while for the new system to reach even the current low level of maturity.

ByteCoin


Title: Re: Rethinking Bitcoins
Post by: throughput on November 15, 2010, 11:00:44 AM
Don't you think, that kind of democracy will leave satoshi no choice, but to drop 21M limit
and will also force him to accept a lot of other stupid misimprovements to bitcoin's core?
And don't you see, bitcoin will become totally unusable and will die it's natural death that way,
without proper PR, public opinion management, endless education, everything, that today also
happens with any other democracy?



Title: Re: Rethinking Bitcoins
Post by: ribuck on November 15, 2010, 11:37:56 AM
Don't you think, that kind of democracy will leave satoshi no choice, but to drop 21M limit
and will also force him to accept a lot of other stupid misimprovements to bitcoin's core?

Satoshi has never shown any sign of diverging from his principles for the sake of expediency, or to satisfy peer pressure, etc.

Anyway, I wonder how many "core principles" there actually are? Perhaps "Only 21 million bitcoins" and "Greatest proof of work wins" are all, with the rest being relatively minor details?


Title: Re: Rethinking Bitcoins
Post by: grondilu on November 15, 2010, 11:47:53 AM
Don't you think, that kind of democracy will leave satoshi no choice, but to drop 21M limit
and will also force him to accept a lot of other stupid misimprovements to bitcoin's core?
And don't you see, bitcoin will become totally unusable and will die it's natural death that way,
without proper PR, public opinion management, endless education, everything, that today also
happens with any other democracy?


Nobody should have to force anyone.

If some people want to make their crappy inflationned, socialistic distributed crypto-currency, then be it !  All they have to do is TO FORK BITCOIN.  That's what is good with free-software :  there is room for all ideas, even for stupid ones !

All I want is a name for a sound crypto-currency, so that I can buy it without having to check every single line of the source code.



Title: Re: Rethinking Bitcoins
Post by: Anonymous on November 15, 2010, 12:29:35 PM
Don't you think, that kind of democracy will leave satoshi no choice, but to drop 21M limit
and will also force him to accept a lot of other stupid misimprovements to bitcoin's core?
And don't you see, bitcoin will become totally unusable and will die it's natural death that way,
without proper PR, public opinion management, endless education, everything, that today also
happens with any other democracy?




I highly doubt that.


Title: Re: Rethinking Bitcoins
Post by: FreeMoney on November 15, 2010, 03:29:19 PM
Don't you think, that kind of democracy will leave satoshi no choice, but to drop 21M limit
and will also force him to accept a lot of other stupid misimprovements to bitcoin's core?
And don't you see, bitcoin will become totally unusable and will die it's natural death that way,
without proper PR, public opinion management, endless education, everything, that today also
happens with any other democracy?


Nobody should have to force anyone.

If some people want to make their crappy inflationned, socialistic distributed crypto-currency, then be it !  All they have to do is TO FORK BITCOIN.  That's what is good with free-software :  there is room for all ideas, even for stupid ones !

All I want is a name for a sound crypto-currency, so that I can buy it without having to check every single line of the source code.



This.

There is no voting or convincing or anything like that needed. When some fools want a new inflatable currency they'll do it like they have for 1000s of years, I relay doubt they'll bother with bitcoin type infrastructure when printers work just fine.

But it doesn't matter what they do, I use the good chain.



Title: Re: Rethinking Bitcoins
Post by: MoonShadow on November 15, 2010, 07:02:03 PM
Don't you think, that kind of democracy will leave satoshi no choice,

No, I don't.  The current client exists only because Satoshi wrote it, if you don't like it, write your own and start your own blockchain.  If you can get others to join you, that is democracy.  Any attempt to compel Satoshi to change his code against his will is not democracy and is not an acceptable form of advocacy.


Title: Re: Rethinking Bitcoins
Post by: grondilu on November 15, 2010, 08:35:46 PM
I suppose that is the reason to continue to "mine" coins even if the value earned from the mining activity is zero.  Under the current system, the value "earned" from mining work units is eventually going to get to zero.

There are transaction fees which were designed for that.

And no, there is just no way I'll buy a currency whose total amount is constantly growing, no matter how slow is this growing rate.  I don't want to spend days and days watching a total amount number on my computer, wondering if I should or not sell the corresponding currency.


Title: Re: Rethinking Bitcoins
Post by: FreeMoney on November 16, 2010, 06:05:35 AM
I suppose that is the reason to continue to "mine" coins even if the value earned from the mining activity is zero.  Under the current system, the value "earned" from mining work units is eventually going to get to zero.

There are transaction fees which were designed for that.

And no, there is just no way I'll buy a currency whose total amount is constantly growing, no matter how slow is this growing rate.  I don't want to spend days and days watching a total amount number on my computer, wondering if I should or not sell the corresponding currency.


"Total amount" is either a known finite number or it is not. If "total amount" changes it never was and still isn't the "total amount".


Title: Re: Rethinking Bitcoins
Post by: throughput on November 16, 2010, 11:39:36 AM
Hmm, it seems, that you understood well the reasons behind bitcoin principles and you can defend them yourself from
your's greed and evil temptations. But look, how useful bitcoin itself is with only you using it?

Hey, you can even trade it for USD!!! Wow!

Honestly, that trade volumes frighten me, they are too low to buy into the system.
Ofcourse, yes, you can play with a new thing, bragging, something new happened!

But everyone here agree, that bitcoin have no choice, but to expand it's userbase to a wider public.
Do you understand, that most of you are quite different from the rest of the public?
Not every human is capable of bying into a bright new idea, not everyone have the ability
to recognize the future, believe me, my psychologist told me exactly that.
 Look at the description, maybe it is about you too (http://www.intp.org/intprofile.html), other people are best at using the
good old verified ideas and methods, not at inventing or accepting them, since they feel that too risky/stupid.

The rest of people, ignorant of details and concepts, will outweight you, who understand and care about the root concepts, the idea of Truth.
Due to greed and ignorance they will be manipulated with ease and will accept an idea of prolonging the generation phase as a good idea.
They will be a majority of users, and no one is prohibited to modify the source, to fork, etc, to serve the 'evil temptations' of the majority.
It is not that hard to update the code to change the limit, AFAIK, and then to distribute the binaries.
So, eventually, they will become 'the Bitcoin' and you, or we, will become a private fork.
And their bitcoin will be of more use, than our's, simply because of the network effect.

So, I'm sure, looking at how satoshi is concerned by the mediocre new users' needs,
he will not vote for splitting the network, he will accept whatever the majority dictates to him.

That's the evil face of democracy, the power of majority.


Title: Re: Rethinking Bitcoins
Post by: Anonymous on November 16, 2010, 12:50:33 PM
Don't you think, that kind of democracy will leave satoshi no choice,

No, I don't.  The current client exists only because Satoshi wrote it, if you don't like it, write your own and start your own blockchain.  If you can get others to join you, that is democracy.  Any attempt to compel Satoshi to change his code against his will is not democracy and is not an acceptable form of advocacy.

Im not a fan of democracy. That ends up being two wolves and a sheep voting on whats for dinner. If 51% decide there should be more than 21 million coins what will happen to the 49% who disagree? You cant do anything because you have to follow the block chain the majority decides ?


Title: Re: Rethinking Bitcoins
Post by: grondilu on November 16, 2010, 02:51:28 PM
No, I don't.  The current client exists only because Satoshi wrote it, if you don't like it, write your own and start your own blockchain.  If you can get others to join you, that is democracy.  Any attempt to compel Satoshi to change his code against his will is not democracy and is not an acceptable form of advocacy.

Im not a fan of democracy. That ends up being two wolves and a sheep voting on whats for dinner. If 51% decide there should be more than 21 million coins what will happen to the 49% who disagree? You cant do anything because you have to follow the block chain the majority decides ?

Democracy is certainly not the best system in cyberspace, where scarcity doesn't exist.

In real life democracy, the minority has to comply to the decision of the majority.  But in cyberspace, there is room for everyone.  Any minority which doesn't agree with majority can build its own "kingdom".  Sessessionism and autocratism are better fit in cyberspace.

For instance, Satoshi is bitcoin's autocrat, as Linus Torwalds is for linux, Marc Shuttleworth for Ubuntu, and so on.  And there is nothing wrond with that.


Title: Re: Rethinking Bitcoins
Post by: throughput on November 16, 2010, 05:06:25 PM
For instance, Satoshi is bitcoin's autocrat, as Linus Torwalds is for linux, Marc Shuttleworth for Ubuntu, and so on.  And there is nothing wrond with that.


Nope.

Sorry, you are wrong.

No Linux kernel will stop working, if it get abandoned by the majority of users.

Bitcoin have attached Network Effect (http://en.wikipedia.org/wiki/network_effect), and is unique in that
it depends on it not only for propagation and popularity, but also on everyday usability for the rest of the old users.

Linux kernel have no such feature, it will not drop value for me if you stop using it. Whoever may stop using it,
it will still be useable for me. It may only become unuseful, if it get dropped by the maintainers.

Bitcoin is not only a software project, it is also a P2P network - a set of peers, that operate Bitcoin, you should not forget that.
You may not successfully fork the network, you may only split it. Linux is very different on it, it allows you to fork itself infinitely
and with no harm to the public.



Title: Re: Rethinking Bitcoins
Post by: MoonShadow on November 16, 2010, 07:56:28 PM
Don't you think, that kind of democracy will leave satoshi no choice,

No, I don't.  The current client exists only because Satoshi wrote it, if you don't like it, write your own and start your own blockchain.  If you can get others to join you, that is democracy.  Any attempt to compel Satoshi to change his code against his will is not democracy and is not an acceptable form of advocacy.

Im not a fan of democracy.


Neither am I, but I used the term for expediency.  Most people don't really know that no government in the world is actually a democracy.  Most are parlimentary republics, and the US is a federated republic.  Democracy only functions on a very local scale, such as the Baptist church business meeting, and results in mob rule or gridlock on scales beyond that.

Quote

That ends up being two wolves and a sheep voting on whats for dinner.


Ben Franklin did have some memorable one-liners.  Another that I like is, "Beer is living proof that God loves us, and wants us to be happy."

Quote

If 51% decide there should be more than 21 million coins what will happen to the 49% who disagree? You cant do anything because you have to follow the block chain the majority decides ?

It's actually not 51% of users, but 51% of total proof-of-work.  The practical result being that established users, particularly those with a relatively high Bitcoin net worth, have both the motivation and the means to maintain the status quo, as major changes would be harmful to their future buying power.  So it's not really even a democracy, since it's not one opinion one vote, but one clock-cycle one vote.  More like a plutocracy, perhaps?


Title: Re: Rethinking Bitcoins
Post by: FreeMoney on November 17, 2010, 06:03:52 AM
Unless I'm badly mistaken there is no reason 95% of people agreeing to accept generates of 50BTC forever requires the remaining 5% to do so. Smart merchants will insist on the limited chain and those finite coins will hold value while the others will decay. Some people will change their mind and use the limited gen chain and as the value diverges the new chain people will probably decide they aren't generating fast enough and increase to 1000/block and beyond. And this fireball of stupidity will probably last less than a month since there won't be an army and swat teams to enforce acceptance of the dummy chain.

If this happens, which it likely won't, it'll look like the collapse of any fiat currency played out in extreme speed.

edit: I'm not say the bad chain is fiat, only that their collapses will look similar. I think it would happen faster because it isn't fiat, it's just straight inferior with no force propping it up.


Title: Re: Rethinking Bitcoins
Post by: RHorning on November 19, 2010, 04:29:05 PM
Unless I'm badly mistaken there is no reason 95% of people agreeing to accept generates of 50BTC forever requires the remaining 5% to do so. Smart merchants will insist on the limited chain and those finite coins will hold value while the others will decay. Some people will change their mind and use the limited gen chain and as the value diverges the new chain people will probably decide they aren't generating fast enough and increase to 1000/block and beyond. And this fireball of stupidity will probably last less than a month since there won't be an army and swat teams to enforce acceptance of the dummy chain.

If this happens, which it likely won't, it'll look like the collapse of any fiat currency played out in extreme speed.

edit: I'm not say the bad chain is fiat, only that their collapses will look similar. I think it would happen faster because it isn't fiat, it's just straight inferior with no force propping it up.

I don't see how the currency would collapse if 50 BTC keep being created "forever".  It is a matter of sinks and sources, just like you find in most MMORPGs.  Coin sinks in this case would be people who are sitting on coins and not spending them, "lost" coins due to people losing their coin wallets, and others ways that coins are essentially pulled out of circulation like members of the bitcoin community dying and people reformatting those computers or throwing those computers into a local landfill.  Over time, the flow of bitcoins would stabilize and the overall bitcoin economy would adjust to whatever scheme or system is set up for creating bitcoins.

Besides, as I've been trying to point out, this is precisely the network model we are currently using at the moment, and the only distinguishing feature between one that has 50 BTC forever and one that has a finite limit in the future with diminishing returns is invoking a part of the code in the current client that has yet to be activated or really tested, and the impact of that change of halving the value of mined coins certainly hasn't worked its way into the value people place upon bitcoins.  In spite of the fact that each new workunit, at the moment, is worth 50 BTC, the value of bitcoins has been steadily increasing based upon the various markets.  The theoretical musing is about how people will react when the total number of new coins is zero.

I don't understand the rest of what you are trying to say here, as the network already limits the number of new work units being created.  If you try to increase the creation rate, the network simply increases the workunit difficulty.  In trying to interpret what you are saying, the presumption is that by having a constant influx of new coins coming into the Bitcoin economy, that at some point in the future the value of a single bitcoin will collapse, presumably from more bitcoins chasing fewer goods and services.  That would be true if there was a shock to the system of a huge number of new bitcoins coming into the economy all at once, but a steady stream of new bitcoins is something that I think would be more than predictable and people would adjust to that happening.

By far and away the one thing that would cause a collapse in the value of Bitcoins would be somebody hoarding a large number of Bitcoins and then dumping them onto the market all at once.  This has been described on other threads and is completely irrelevant in terms of the generation system being used.


Title: Re: Rethinking Bitcoins
Post by: FreeMoney on November 19, 2010, 06:00:35 PM
I hold coins because I believe a thriving economy will grow up around bitcoin. My actions are telegraphed to the via the market price for coins letting people know that there is a little more interest now and they can plan accordingly in choosing to offer goods or build sites or whatever.

If coins were unlimited I wouldn't want to hold them, I wouldn't expect anyone else to hold many either, I would just wait and get coins once there were more if I needed some, which I probably never would because people, knowing there will be more coins later will wait until they can trade their stuff for more coins, after all there is no hurry, just use the dollar for now. At least with the dollar there is a chance the printing will stop (hahaha, right)

Anyway, it should be really easy to set up BitFlatoCoin now that all the tech is available and open source. New genesis block, new generate rules, tada.


Title: Re: Rethinking Bitcoins
Post by: RHorning on November 19, 2010, 09:22:59 PM
I hold coins because I believe a thriving economy will grow up around bitcoin. My actions are telegraphed to the via the market price for coins letting people know that there is a little more interest now and they can plan accordingly in choosing to offer goods or build sites or whatever.

If coins were unlimited I wouldn't want to hold them, I wouldn't expect anyone else to hold many either, I would just wait and get coins once there were more if I needed some, which I probably never would because people, knowing there will be more coins later will wait until they can trade their stuff for more coins, after all there is no hurry, just use the dollar for now. At least with the dollar there is a chance the printing will stop (hahaha, right)

Anyway, it should be really easy to set up BitFlatoCoin now that all the tech is available and open source. New genesis block, new generate rules, tada.

Dollars, Euros, Pounds, and other currencies are "unlimited", yet people hold them, value them, and use them for exchange.  Ditto with Linden Dollars and many other "alternative" currencies as well, and for that matter even precious metals like gold and silver.  At some point in the future, a new gold mine or perhaps an asteroid made of pure gold will be discovered which will substantially increase the supply of one of these metals.

I'm simply suggesting that having an open ended currency system doesn't necessarily make it fatal and there are plenty of examples of currencies without a formal limit.  Indeed I am suggesting that every currency system is open ended with possibly the exception of Bitcoins itself.  It is Bitcoins with it being defined as a closed and absolute limit by definition which is new and different, something that I'm not entirely sure how it is going to pan out in the long run.  It may be fun to find out.

I guess another exception as a "closed" currency is the Iraqi Dinar as printed by Saddam Hussein's government.  It also has an interesting history too as it was able to maintain its value and in fact appreciate when the government which established it by fiat no longer existed.  Most people expected the Dinar to collapse in a fashion similar to Confederate Dollars, but ended up becoming even more valuable than they were during Saddam Hussein's presidency.  Closed and limited currencies are by far and away the exception rather than the rule.

As far as forking Bitcoins with a new genesis block an new rules, that is a strawman argument.  There might be a fork or if there are some fatal problems to Bitcoins (the final chapter on Bitcoins hasn't been written yet) there might be a move to fork the project.  In this regard, it is good to at least consider other approaches, which is also the point of this thread, to see what else Bitcoins might have been instead of what it currently is.  What decisions on the part of Bitcoins are essential and which are merely arbitrary choices that simply had to be made?  I consider the decision to gradually reduce the value of Bitcoins as an arbitrary decision which might have even excessively complicated the algorithms for Bitcoins.  We'll see how that works out, which is why this is a fun experiment.

Arguing on behalf of a closed and limited number of Bitcoins overall is that it might lead to a faster adoption of the currency as it is a unique feature.  The limit is being defined as a mathematical algorithm rather than some fiat declaration, which also makes it a bit more interesting still.  It may be that an open ended currency, even with a controlled and limited growth as presuming the 50 BTC per new work unit would be allowed to continue, might reduce the number of people during a rapid growth phase who would be willing to use it.  Perhaps even people like yourself, FreeMoney.  I'm not completely convinced it would be a huge number, but I'm sure there would be some who would be more attracted to a completely closed currency system.  At that point what we are arguing about is the number who would reject an open ended version of Bitcoins.


Title: Re: Rethinking Bitcoins
Post by: MoonShadow on November 19, 2010, 10:39:21 PM
Dollars, Euros, Pounds, and other currencies are "unlimited", yet people hold them, value them, and use them for exchange. 


Fiat currencies are unlimited in theory, but are limited by practical constraints.  The most important one being time.  Bitcoin is limited in the same way, as the distribution of future coins plays a role in the value of the currency now.  Of course, an unlimited currency is not a fatal flaw, but it is a flaw that must be countered by issuing governments by legal tender laws.  Bitcoin has no such support, and therefore must have other apparent advantages to succeed.  If the protocol permitted perpetual inflation, even at a predictable and unalterable rate, I certainly wouldn't be here to talk about it.  I can only guess at the motivations of others.


Title: Re: Rethinking Bitcoins
Post by: ribuck on November 19, 2010, 10:49:49 PM
If the protocol permitted perpetual inflation, even at a predictable and unalterable rate, I certainly wouldn't be here to talk about it.  I can only guess at the motivations of others.
Ditto. The fixed coin limit was what got me hooked.


Title: Re: Rethinking Bitcoins
Post by: RHorning on November 20, 2010, 01:36:00 AM
Dollars, Euros, Pounds, and other currencies are "unlimited", yet people hold them, value them, and use them for exchange. 


Fiat currencies are unlimited in theory, but are limited by practical constraints.  The most important one being time

I know this is getting off-topic, but I'm curious what sort of time limitation there is to dollars when the chairman of the Fed can simply type in some number in a desktop computer to create a trillion dollars and send those dollar electronically to buy securities or whatever The Fed cares to buy with them?  It is a bit more complicated than than, but not much more so.  It certainly doesn't require the printing of any physical medium.

If there is a practical limit, it has been the historical reluctance of central banks to do this kind of wild sort of intervention or performing substantial inflation causing actions.  In other words, it is the whimsy of individuals who have the power to inflate the currency, not any sort of actual limit.

The fact that Bernake doesn't seem to have this kind of restraint is something I find especially disturbing, but this is getting very much off topic.


Title: Re: Rethinking Bitcoins
Post by: theymos on November 20, 2010, 01:48:36 AM
I don't see how the currency would collapse if 50 BTC keep being created "forever".  It is a matter of sinks and sources, just like you find in most MMORPGs.

Reality has limited resources. Video games do not.


Title: Re: Rethinking Bitcoins
Post by: MoonShadow on November 20, 2010, 01:53:33 AM
Dollars, Euros, Pounds, and other currencies are "unlimited", yet people hold them, value them, and use them for exchange. 


Fiat currencies are unlimited in theory, but are limited by practical constraints.  The most important one being time

I know this is getting off-topic, but I'm curious what sort of time limitation there is to dollars when the chairman of the Fed can simply type in some number in a desktop computer to create a trillion dollars and send those dollar electronically to buy securities or whatever The Fed cares to buy with them?  It is a bit more complicated than than, but not much more so.  It certainly doesn't require the printing of any physical medium.

If there is a practical limit, it has been the historical reluctance of central banks to do this kind of wild sort of intervention or performing substantial inflation causing actions.  In other words, it is the whimsy of individuals who have the power to inflate the currency, not any sort of actual limit.

The fact that Bernake doesn't seem to have this kind of restraint is something I find especially disturbing, but this is getting very much off topic.

Time is restrictive upon both the actual inflation of the monetary base and the effects upon the market due to it's sheer size.  The former is a political resistance, the later simply a propagation delay.  The latter is also regularly manipulated by masters of finance to benefit from 'time arbitrage'.  Basicly, if they know that inflation is going to hit the mindshare of the public in the future (usually due to announcements) they can 'front run' by buying up whatever is expected to be most directly affected by said inflation and then 'selling on the news' once the cat is out of the bag.  This effect was prominant leading up to the Fed's most recent announcement on Nov. 3rd with regard to treasury bonds; but in retrospect can be found in many commodities markets since about July.  It is this anticipation of monetary base inflation that has led to the actual price inflation in cotton & corn, as well as others.  This is speculation by it's definition, but it's speculation based entirely upon the future faith & purchasing power of the Federal Reserve Note.  All fiat currencies suffer from the threat of hyperinflation, and puts them all at a disadvantage to Bitcoin or gold or silver, but all fiat currencies are at the advantage of the implicit and explict support of governments; which includes both the support of an army as well as the artificial demand created by the payment of taxes in only the fiat currency in question.  If the US FRN were to lose it's monopoly status with regard to payment of taxes, the currency would crash today.



Title: Re: Rethinking Bitcoins
Post by: RHorning on November 20, 2010, 07:22:16 AM
In your initial post RHorning you raised a number of interesting issues and I did not give them an adequate response in my immediate reply.

You think that people should be rewarded for participating in the network by providing network bandwidth for example. This is a perfectly reasonable position and I agree with you. Unfortunately there's no way that I can think of to implement this in the current Bitcoin system without being scammed or having some other negative consequences. If you were to think of a way to implement it and specify it in some detail then I'm sure the proposal would be examined in considerable detail.

It's hard to imagine how network participation would be rewarded because Bitcoin is not good at micropayments. Every payment is sent to each client and gets recorded in the block chain on each client's hard disk. The number of fee free payments per block is relatively low. Let's say you can get 50k of transaction data in a block before you have to pay. Let's say the minimum size of a transaction is 100 bytes (it's actually more) so that's 500 transactions in about 10 minutes or less than one transaction per second and everyone's hard disk fills up at 2.628G bytes per year. Even if one lets the micropayments accumulate on account and you settle it relatively infrequently, it's still going to be a significant proportion of transactions.

The second problem is that any reward that creates coins from thin air has to be mutually agreeable and verifiable. It would be hard to verify that all this network participation was not just falsified to get the money.

The third issue is satoshi's de-facto control over all aspects of Bitcoin. I don't have an opinion about whether this is good or bad, it just is and has to be taken into account. In another thread, gavinandresen opined that it's way too early to start asking for commitments to adhere to a particular interface or functionality. Upon reflection I believe he is right. If you look at the amount of generally useful code written to further the project, essentially all of it has been written and tested by satoshi. Note that I'm not counting GPU miners as useful! Thanks to him, we all have a nice reference implementation of Bitcoin that we can examine and play with and a wonderful forum to share our thoughts. If he discontinued development for whatever reason the project would rapidly grind to a halt. People disagree on what exactly Bitcoin is and how much would have to change before it wasn't Bitcoin anymore. The real answer is that Bitcoin is whatever satoshi implements for the forseeable future. At the moment and for the forseeable future there are a lot of features of the current system that need to be discovered and addressed before an improved system can be designed intelligently. If the current scheme were substantially changed then a lot of the momentum would be lost and it would take quite a while for the new system to reach even the current low level of maturity.

ByteCoin

Getting onto another topic that I initially tried to raise, I've been trying to think about even perhaps how you could "earn" bitcoins for network bandwidth, as a way to encourage participation in the network.  A few basic ground rules I'd like to put into this discussion however.


  • This is something that would have to be put on top of the existing rules.  In other words, if this were to be done it would have to be completely compatible with the existing network rules, and more importantly it would have to be something that could work with earlier versions of the network client so it would have to be forward compatible with the current version of the client.
  • Axiomatically, based upon the the premise of the previous requirement, the actual "mining" of Bitcoins themselves would have to be from the generation of the hashes themselves and the creation of new blocks.  This isn't something that would be a way to create new bitcoins, but merely a way to pay for the service itself
  • Charging for bandwidth would have to be something that is voluntary, in part because not everybody would agree to this at least in the beginning.  It limits the options perhaps on what you can do, but it also forces you to think of different opportunities as a result.
  • The advantages for moving in direction would have to be beneficial to the network as a whole and likely be adopted by Satochi even in the reference application, aka the main Bitcoin client.

My idea that I've considered is essentially where some system could be set up where data sent from one peer to another has some kind of payment arrangement based upon bandwidth delivered.  A trust metric of some sort would have to be worked out here and perhaps even a "leap of faith" of some sort too, but I'm suggesting something sort of like the following:

Alice connects to Bob, where Bob claims to have blocks in the network chain that Alice doesn't have

Alice has some experience with Bob, or Bob has established some sort of trust with Charlie, who Alice trusts.  Note, this is something that still could be worked out, but at some level there is some modest level of trust.  Not hard trust, but that things may work out.  Blacklisting and Whitelisting is possible here.  Bob can similarly establish trust with Alice on the same premise or rules.

Bob lists the price for the blocks (yes, a microtransaction) with payment address, Alice agrees to pay that price or reject the fee.  If the fee is rejected, nothing happens.  Alice sends the coins, possibly to a trusted escrow.

Bob transmits new blocks in the chain.

Alice receives blocks, scans blocks as valid, and releases escrow (if in place).

If everything works out, trust metric is strengthened, or if things don't work out, trust metric is weakened and "reported" to the network as a troll or bad relationship.

In this case Bob could be altruistic and transmit the blocks for no fee at all (aka the current system), be greedy charging a high fee for the blocks (likely to be rejected) or charge a competitive fee (and get lots and lots of Bitcoins from "customers"... well, perhaps some at least).  The advantage somebody gets from "buying" blocks in this system is that they can perhaps get blocks from high speed connections or at least get them from users who are willing to open up their connections.  In the long run, you would be more "connected" if you are paying for blocks as opposed to those who aren't.  You might even "win" in terms of tie breakers between who creates (mines) the next block by paying for the connections to the core miners on the network.  For those with high bandwidth, they have an incentive to offer more network connections and become a network "core" that is distributing blocks to other users.  The more connections they have, it gives them many more opportunities to earn Bitcoins.

-------

Now to problems I see in this scheme:

This really does make the network a whole lot more complex, and substantially increases the number of transactions in the network.  If nearly every node in the network is going to be receiving at least a couple transactions, it pushes the bandwidth requirements up and out of sight.  There are a few ways this might be taken care of including perhaps setting up "accounts" with other Bitcoin users where you agree to ship so much bandwidth off of a single payment transaction.  In other words, you could send 0.01 BTC to a "friend" or at least a trusted member of the network, and the "charges" would be deducted between the two users until it is time to send another 0.01 BTC for another batch, which might be enough for a few hours, days, or even weeks of block transferes.  Some kind of credit between clients would happen in this fashion and thus minimize the transactions for a specific block being transferred.  The presumption here is if coins are transferred between users, that there would also be incentives in place to connect to each other and continue the relationship.

There is the potential of scaming going on here, where false blocks could be transmitted.  This would be an attack by Bob on the network, claiming that he has lots of blocks, and thus extracting payment from lots of users, and then fails to deliver.  This kind of attack would be identified quickly where the actual data would be shown to be bogus using the existing rules.  "Proof of work" would be shown as not really being proof, or being duplicates of previous blocks.  Verification could also happen (with bandwidth being paid for from other clients), but again Bob would be shown to be untrustworthy.  "News" of this lack of trust with Bob could spread through the network quickly where Bob could even be effectively kicked from the network and possibly even have payment rejected as a transaction before it gets into the next block.

Alice could attack too, spreading false rumors of lack of trust in an attempt to damage Bob's reputation.  On the other hand, depending on how the trust metric system is set up, Charlie and others could show they they trust Bob and possibly start to reject Alice as a false rumor.  As a result, Alice would be kicked off the network instead.

If Alice and Bob are starting out with no trust relationship at all (one or both of them are new to the network) a "leap of faith" could happen where a few freebee blocks could be sent by Bob or some minor amount of Bitcoins could be sent by Alice to start the trust metric.  Perhaps both, but it would be an establishment relationship.  Some users may not want to get into a leap of faith, which is an individual choice.

Still, there are wheels in wheels here where undoubtedly there will be somebody who will figure out how to turn this into a scam.  The whole thing works only if a super-majority is "honest".  My experience is that that more than likely would be the case.  A couple of bad users would be weeded out quickly, but it isn't a guarantee.  I'm also not completely certain that this sort of system would work.

I also see that potentially with these webs of relationships that perhaps you might even get isolated Bitcoin networks due to trust relationships creating an "island" network.  That may or may not be a problem depending on how it is set up, but it would be important to know if you are on the "main" network in some fashion.  Certainly blocks created on the isolated island would not be recognized by the rest of the network.

Perhaps this is making something overly complicated, but it would be a way to "pay" for something that at the moment is a free good, namely network bandwidth.  It would provide another way for even new users to Bitcoins to make a little bit of money on the side simply for running the software, as people who stay connected to the network would over time earn more Bitcoins than those who connect for a brief while and then disconnect frequently.

As a separate note, the issue of microtransactions is something I thought was an overall goal of Bitcoins.  If microtransactions aren't working out very well, perhaps that too is something that needs revisiting.


Title: Re: Rethinking Bitcoins
Post by: Anonymous on November 20, 2010, 11:08:28 AM
Bitcoin would be perfect to drive adoption of a mesh network where people could earn bitcoins for sharing bandwidth. Want to pay for the coffee you just bought at starbucks? Share your connection over wifi direct and earn bitcoins to do so.