Bitcoin Forum

Bitcoin => Development & Technical Discussion => Topic started by: cunicula on June 17, 2011, 09:41:16 AM



Title: Forking the Blockchain for Bonds (25 BTC Bounty)
Post by: cunicula on June 17, 2011, 09:41:16 AM
[edited post to replace term futures with bonds and add bounty]
I think the bitcoin system should allow mining for bitcoin bonds. Bitcoin bonds would be tradable coins with a fixed maturity date.
Upon reaching the maturity date, bitcoin would become identical to regular bitcoins. In my view, this is a much more efficient solution than exchange-based loans that require third parties to hold collateral.

For example, miners would have the option of mining instantly maturing bitcoins or bitcoins maturing on Jan 1st of 2012, 2013, 2014, 2015, 2016. (one to five year maturity)
Average difficulty for all maturities would be pegged to hold the total number of all types of coins constant according to Satoshi's schedule. Difficulty for each individual maturity would be initially set to the average difficulty and then allowed to float (like difficulty is handled right now). Supply and demand would determine how coin generation was distributed across the various maturities. This would smooth discontinuities in the coin generation rate that exist under the current system.

Bonds could be exchanged for regular bitcoins on bankless electronic exchanges, much like the Namecoin/Bitcoin exchange at bitparking. These exchanges have extremely low costs because the exchange does not need to hold collateral for a prolonged period. The exchange rates would indicate bitcoin holders' expectations about the future of the bitcoin economy.

Bonds would give wealthy individuals a stronger incentive to develop the bitcoin economy. For example, suppose Mary holds bitcoins and has a business idea that would add significant value to the bitcoin economy within one to two years. It would be in Mary's interest to sell some of her current bitcoins for bonds and some for USD to finance her idea. Effectively, Mary would be loaning her bitcoins out to raise USD capital with perfect bitcoin collateral. Mary would internalize some benefit from any bitcoin appreciation resulting from her business. If Mary just held USD, she might want to purchase bitcoin futures for this reason as well. This mechanism could encourage larger companies to enter the bitcoin economy because value-adding companies would earn more from purchasing bitcoin bonds rather than regular bitcoin.

Many will object to revision of the bitcoin generation process, but I think this is misguided. Whether the bitcoin economy will be valuable several years from now depends on the currency remaining more innovative than potential competing currencies. The emergence of a competitor is a much more important concern than whether bitcoin will be inflated through revised currency generation. Bitcoin users wouldn't accept an inflationary revised currency generation anyway.

Offering 25 BTC bounty for this, see post below.



Title: Re: Forking the Blockchain for Futures
Post by: BubbleBoy on June 17, 2011, 10:29:13 AM
The futures market will not solve Bitcoin's inherent instability. There's no point in taking risks now to develop the Bitcoin economy, when you can leave somebody else to do it and reap the gains. If you don't have any faith in the long term viability of the Bitcoin economy you liquidate now, again zero risk. Efficient markets baby.


Title: Re: Forking the Blockchain for Futures
Post by: cunicula on June 17, 2011, 10:45:19 AM
Market efficiency depends on market organization. My proposed reorganization would create a deep futures market because of miner arbitrage across currency creation with different difficulty levels. It would offer much lower transaction costs than a third party based system. A deep futures market with low transaction costs would make it much easier for companies to reap benefits from long-term entry into the bitcoin economy.



Title: Re: Forking the Blockchain for Futures
Post by: relative on June 17, 2011, 05:16:42 PM
either you or I don't understand futures.
futures are by definition the exchange of one good for another (or a equivalent monetary settlement), here BTC for USD.
how can this NOT be done by an exchange but by bitcoin only?


Title: Re: Forking the Blockchain for Futures
Post by: Stefan Thomas on June 17, 2011, 06:47:29 PM
I've sold Bitcoin options and made good money with it. You can sell mining contracts, futures, etc. for Bitcoin just like silver or gold or any other commodity. There doesn't need to be any fancy mechanism in the software itself.  :-)


Title: Re: Forking the Blockchain for Futures
Post by: cunicula on June 17, 2011, 07:17:10 PM
A bitcoin now and a bitcoin delivered next year are distinct goods, but perhaps calling this a bond would be better. I will edit the original post to reflect the name change. I will also place a 25 BTC bounty on development of a bitcoin client which offers the 'bond' features I am proposing within one year. Happy to deliver the bounty in advance to Gavin Andresen to judge contributions. If he accepts this responsibility, he would judge contributions to successful development of the proposed bond features or return the BTC to me in one year if they are not successfully developed.


Title: Re: Forking the Blockchain for Bonds (25 BTC Bounty)
Post by: cunicula on June 17, 2011, 08:48:12 PM
@ Stefan

Transacting with you (or anyone else) creates default risks that radically drive up the cost of transaction. Negotiating terms with you increases the costs of transactions, evaluating your rep and monitoring changes increases the costs of transaction. Profit you earn from creating one side of a market increases the costs of transactions. Transferring a contract with you to a third party is difficult and this increases the cost of transaction. Transaction costs are so high that at present the bond market is so illiquid that it almost doesn't exist.

My proposal solves all of the above problems in their entirety. Allowing private parties or exchanges to handle this trade is an extremely inefficient alternative. The current lack of a bond market suggests that it is not a viable option.


Title: Re: Forking the Blockchain for Futures
Post by: relative on June 17, 2011, 09:04:17 PM
A bitcoin now and a bitcoin delivered next year are distinct goods, but perhaps calling this a bond would be better. I will edit the original post to reflect the name change. I will also place a 25 BTC bounty on development of a bitcoin client which offers the 'bond' features I am proposing within one year. Happy to deliver the bounty in advance to Gavin Andresen to judge contributions. If he accepts this responsibility, he would judge contributions to successful development of the proposed bond features or return the BTC to me in one year if they are not successfully developed.

I'm afraid you dont understand bonds either. bonds are issued by one party and bought by another, as a whole forming a loan agreement. if bitcoin succeeds there will be a bond market.

what has that to do with the monetary system and why do you need to "mine" them?


Title: Re: Forking the Blockchain for Bonds (25 BTC Bounty)
Post by: cunicula on June 17, 2011, 09:31:32 PM
Mining the bonds is just an efficient way of organizing the bond market. Establishing this market should appeal to hoarders. This is the core proposal. The semantics are irrelevant and a waste of time to debate.  

Perhaps it will help to think of the bonds as bitcoin-denominated treasury bonds issued by the bitcoin software. Trading current bitcoin for bonds of identical bitcoin value is equivalent to borrowing money using
your bitcoin as collateral.

For example, I would like to hold bitcoin on the chance it is successful in a few years time. Since I plan to hoard, I would like to convert my bitcoin holdings into bonds. I don't want to invest in a company that might rip me off.  A bond-holding agent who needs to buy things with BTC would want to sell their bond holdings to me in exchange for current bitcoins. I can't transact with this agent because the market doesn't exist at present. The proposal would establish exceptionally low cost markets for this transaction. I doubt that a more efficient solution than embedding the market in the bitcoin client exists.


Title: Re: Forking the Blockchain for Futures
Post by: Stefan Thomas on June 17, 2011, 10:37:21 PM
Average difficulty for all maturities would be pegged to hold the total number of all types of coins constant according to Satoshi's schedule. Difficulty for each individual maturity would be initially set to the average difficulty and then allowed to float (like difficulty is handled right now). Supply and demand would determine how coin generation was distributed across the various maturities.

You say that the difficulty for each maturity is determined "like difficulty is handled right now" i.e. self-adjusting so generation remains constant in terms of units generated per time period. But if generation of bonds of each maturity is constant, then the last sentence in the quote above makes no sense, the relative amount of each bond issued couldn't fluctuate.

You can either let relative hashing power determine the difficulty for each bond type or the amount of each bond type, but not both.

To do what I think you want, you'd need to find out what people are paying for those bonds. Then you would have enough information to adjust the difficulty such that the "(present value at market) per (unit of work)" is the same for all maturities. The problem is you cannot find out easily and securely how much the bonds are trading for - at least it would get very complex at that point.

Let me know if I misunderstood your proposal.


Title: Re: Forking the Blockchain for Bonds (25 BTC Bounty)
Post by: relative on June 17, 2011, 10:54:28 PM
Quote
For example, I would like to hold bitcoin on the chance it is successful in a few years time. Since I plan to hoard, I would like to convert my bitcoin holdings into bonds. I don't want to invest in a company that might rip me off.

...and there is your logical fallacy.
it doesnt add to the bitcoin economy if you buy a bond without risk generated by the monetary system.

a paper ("bond") without any risk and with no interest is known as cash, or BTC holdings in this case. why dont you just hold BTC for 2 years?
if you want to convert your cash into capital by buying a bond, there is risk involved, and that is the way it is supposed to be.
riskless bonds is certainly not a goal of a viable monetary system, neither is endless "capital".

the latter point is the main fallacy of our current monetary policy: the assumption that the injection of money creates capital and grows the economy.



Title: Re: Forking the Blockchain for Bonds (25 BTC Bounty)
Post by: cunicula on June 18, 2011, 12:11:40 AM
@Stefan. I really appreciate your question. The short answer is that the miners would observe prices on markets and their consequent mining decisions would determine difficulty. Here are some algebraic details of how it might work.

Here is the approximate existing system which provides a starting point and is left basically intact:

A(t) is the actual total coins of all maturities per hour during period t
H is the  target number of aggregate coins of all types per hour. This decreases according to those strange discontinuities introduced in Satoshi's system, but I'll just pretend it is constant for simplicity.
D(t) = aggregate difficulty needed to approximate H at time A(t)

D(t)= [D(t-1)A(t-1)]/H   Note that this is determined without knowing anything about the past difficulties of specific maturity bonds.
    
Now I graft some bonds on to the existing system. Incorporating multiple bond types should be easy.

Ab(t) is the number of coins of one year maturity per hour during period t.
Ac(t) is the number of coins of instant maturity per hour during period t.
A(t) = Ab(t) + Ac(t) (by definition)

Db(t) is the difficulty for coins of one year maturity
Db(t) = [Db(t-1)Ab(t-1)] / D(t)  

Dc(t) is the difficulty for coins of instant maturity
Dc(t) = [Dc(t-1)Ac(t-1)] / D(t)

Rearranging the equations the ratio of the two difficulties is:

Dc(t)/Db(t)= Dc(t-1)Ac(t-1) /  Db(t-1)Ab(t-1)

Bounds on one period maximum upwards and downwards movements in the difficulty ratio would prevent sudden movements across maturities from screwing with the aggregate generation rate A(t).
e.g. Dc(t)/Db(t) = 0.8 [Dc(t-1)/Db(t-1)]           if       [Dc(t-1)Ac(t-1) /  Db(t-1)Ab(t-1)]   <=    0.8 [Dc(t-1)/Db(t-1)]
                       = [Dc(t-1)/Db(t-1)]               if       1.2 [Dc(t-1)/Db(t-1)] >  [Dc(t-1)Ac(t-1) /  Db(t-1)Ab(t-1)]   >    0.8 [Dc(t-1)/Db(t-1)]
                       = 1.2 [Dc(t-1)/Db(t-1)]          if       [Dc(t-1)Ac(t-1) /  Db(t-1)Ab(t-1)]   >    1.2 [Dc(t-1)/Db(t-1)]  
 
Initially the two difficulties should just be seeded as equal, Dc(t)/Db(t)=1. Over time Dc(t)/Db(t) would increase until it reaches a price that clears the mining market (i.e. miners are indifferent between maturities).
In the medium to long-term, Dc(t)/Db(t) would fall (increase) if markets became more (less) confident about the future of bitcoin.
  


Title: Re: Forking the Blockchain for Bonds (25 BTC Bounty)
Post by: cunicula on June 18, 2011, 12:20:56 AM
@ relative

Very glad you are not on the FED reserve board. Of course, cash dominates bonds if the bonds offer a zero percent or negative interest rate. This is the FED's 0% lower bound on nominal interest rates that is often referred to in the popular press. Bonds would not sell at a zero percent interest rate because other people (not me) would rather spend their bitcoins now.  






Title: Re: Forking the Blockchain for Bonds (25 BTC Bounty)
Post by: cunicula on June 18, 2011, 04:38:33 AM
This doesn't appear to be generating much well-reasoned discussion here. Could someone help me move this to Project Development and Technical Discussion?


Title: Re: Forking the Blockchain for Bonds (25 BTC Bounty)
Post by: lemonginger on June 18, 2011, 04:45:04 AM
I'm afraid you won't get much traction there either because forking the chain is a Big Deal and there is nothing you want to do that can't be done with already existing bitcoins and payment agreements.


Title: Re: Forking the Blockchain for Bonds (25 BTC Bounty)
Post by: Vince Torres on June 18, 2011, 04:48:42 AM
[edited post to replace term futures with bonds and add bounty]
I think the bitcoin system should allow mining for bitcoin bonds. Bitcoin bonds would be tradable coins with a fixed maturity date.
Upon reaching the maturity date, bitcoin would become identical to regular bitcoins. In my view, this is a much more efficient solution than exchange-based loans that require third parties to hold collateral.

For example, miners would have the option of mining instantly maturing bitcoins or bitcoins maturing on Jan 1st of 2012, 2013, 2014, 2015, 2016. (one to five year maturity)
Average difficulty for all maturities would be pegged to hold the total number of all types of coins constant according to Satoshi's schedule. Difficulty for each individual maturity would be initially set to the average difficulty and then allowed to float (like difficulty is handled right now). Supply and demand would determine how coin generation was distributed across the various maturities. This would smooth discontinuities in the coin generation rate that exist under the current system.

Bonds could be exchanged for regular bitcoins on bankless electronic exchanges, much like the Namecoin/Bitcoin exchange at bitparking. These exchanges have extremely low costs because the exchange does not need to hold collateral for a prolonged period. The exchange rates would indicate bitcoin holders' expectations about the future of the bitcoin economy.

Bonds would give wealthy individuals a stronger incentive to develop the bitcoin economy. For example, suppose Mary holds bitcoins and has a business idea that would add significant value to the bitcoin economy within one to two years. It would be in Mary's interest to sell some of her current bitcoins for bonds and some for USD to finance her idea. Effectively, Mary would be loaning her bitcoins out to raise USD capital with perfect bitcoin collateral. Mary would internalize some benefit from any bitcoin appreciation resulting from her business. If Mary just held USD, she might want to purchase bitcoin futures for this reason as well. This mechanism could encourage larger companies to enter the bitcoin economy because value-adding companies would earn more from purchasing bitcoin bonds rather than regular bitcoin.

Many will object to revision of the bitcoin generation process, but I think this is misguided. Whether the bitcoin economy will be valuable several years from now depends on the currency remaining more innovative than potential competing currencies. The emergence of a competitor is a much more important concern than whether bitcoin will be inflated through revised currency generation. Bitcoin users wouldn't accept an inflationary revised currency generation anyway.

Offering 25 BTC bounty for this, see post below.

Just go ahead and write code for this.


Title: Re: Forking the Blockchain for Bonds (25 BTC Bounty)
Post by: cunicula on June 18, 2011, 04:55:36 AM
I would be happy if someone could come up with a technical solution that didn't involve mining and forking the block chain. However, using a contract where a third party holds collateral does not accomplish what I want done. The idea is to reduce the cost of contracting and make bitcoin a more efficient medium of exchange.  This should be the primary goal of bitcoin developers.

I think the main problem is that the post readers aren't sufficiently intelligent and/or ignorant of economics.  I understand that almost no one here understands economics well, but the computer scientists are at least intelligent. As far as me writing the code, I am an economics professor, not a computer programmer.


Title: Re: Forking the Blockchain for Bonds (25 BTC Bounty)
Post by: MeSarah on June 18, 2011, 06:49:31 AM
Ive been thinking about something like this but from a different angle. I havent thought it all the way through but here are my ideas. One of the problems I see with btc is the whole decimal issue. From my prespective 0.000003 or 0.0005 is error prone. I also belive that it has an impeding effect on the adoption of btc.

So here is my unthought through idea. We add multiple coin types to the block chain. For example, if btc is our fixed base of 1 regarding quantity and dificulty, we might add a coin type that is 10 times the quantity of btc and 1/10 of the dificulty. If the orginal btc is the gold standard we might call this the silver btc. We might want to add a copper btc as well. That might look like 100 times the quantity of silver and 1/100 the dificulty of silver. We could go furth and add an aluminum btc. It might look like 1000 times the quantity and 1/1000 of the dificulty of copper btc. I think it would be important that these different coin types live in the same eco-system.

The key would be that they draw reference from the same dificulty, that of the orginal btc. With all coin types using the same reference dificulty it would add a measure of stablity between the coin types. I believe this would bring back cpu miners. That would broaden the user base. I believe it would also keep gpu miners mining gold btc instead of the aluminum because they would in essence be making the same but in a more mature market. But of course the market would decide the value of each coin type. If it becomes more profitible to mine aluminum btc then gold btc miners would transition. This would decrease quanities of new gold btc eventually making it more profitible to mine gold btc again. The affect of adding these new coin types would in essence increase the total btc quanity.

Well, there it is. Please dont be to harsh on me.




Title: Re: Forking the Blockchain for Bonds (25 BTC Bounty)
Post by: cunicula on June 18, 2011, 08:50:15 AM
@MeSarah
The redomination you suggest (which I think is a good one though though USD like terms might be better than WOW currency like terms) could be achieved by developing an improved GUI. I think that developers will do this in the near future. I don't think that creating new currencies from scratch is a good idea, however. For the reasons described below:

Eventually a digital currency will emerge (call it Bettercoin) which allows for more p2p contracting possibilities than are currently possible with Bitcoin. If bitcoin is widely used before Bettercoin emerges, than bitcoin will likely remain dominant despite its manifest technological inferiority (think QWERTY keyboards vs. superior alternative key arrangements, or Paypal vs. Bitcoin, or Windows vs. Linux). This is what current holders of bitcoin would like to see happen. If Bettercoin emerges before bitcoin becomes widely used, Bettercoin will gather a larger user base and bitcoin will collapse in value. Bitcoin holders would not be happy about that. The issue with creating new currencies from scratch (ones that don't grandfather in existing holdings) is that these currencies would fragment bitcoin in to several smaller interest groups each of which would like to see their currency take off. Collectively, the currencies would lose value due to uncertainty over which one would eventually take over. Bettercoin would be better positioned to step in and take over the market, and existing asset holders would be wiped out. 

I am doubtful that they will pursue options like the one I am suggesting precisely because of this fragmentation issue, but think that this is misguided. What I am suggesting would require significant modifications to the underlying currency generation rules. Most likely it would entail a splitting bitcoin into two currencies. However, provided that
1) one branch had superior features (for example was faster, more secure, or allowed for more contracting possibilities) 
2) this branch protected the value of incumbent bitcoin holders by grandfathering in their holdings within a certain time frame.
Then everyone would rapidly convert to the superior currency branch and fragmentation would be short-lived. I am worried that a reluctance to experiment with more radical modifications will leave bitcoin in a weaker position relative to future competitors. If everyone is too fixated on preserving Satoshi's original plan, then bitcoin will be unable to adopt features offered by superior p2p platforms. If bitcoin experiments with new features now, then bitcoin will be ready to copy features offered by competitors, effectively killing them off before they became threatening.



Title: Re: Forking the Blockchain for Bonds (25 BTC Bounty)
Post by: ByteCoin on June 21, 2011, 04:26:59 AM
...
For example, miners would have the option of mining instantly maturing bitcoins or bitcoins maturing on Jan 1st of 2012, 2013, 2014, 2015, 2016. (one to five year maturity)
Average difficulty for all maturities would be pegged to hold the total number of all types of coins constant according to Satoshi's schedule.
...

So, given that the client instantly converts bitcoin bonds on maturity into bitcoins and given that the number of bitcoins in the economy meets a fairly strict schedule, in the run up to the maturity of one set of bonds the bitcoin client would have to know how many bonds were going to mature and adjust the difficulty of the normal block generation so that after they mature, the right number of bitcoins is in circulation. This would probably mess up the block generation rate in the time before maturity and so prevent this implementation of bonds. Block generation provides timely transaction confirmation and anything which harms this cannot be tolerated.

ByteCoin


Title: Re: Forking the Blockchain for Bonds (25 BTC Bounty)
Post by: cunicula on June 21, 2011, 07:20:57 AM
Don't understand the block chain design very well or have any coding knowledge, but I do have a strong hunch that it should be possible. Would love to know if the hunch is correct or wrong, and would love to hear more formal arguments from the developers about this.

After thinking more, I posted the next day about contingent claims. It's worth noting that bonds are redundant if you have contingent claims. A bond (with no default risk) is just a contingent claim that is a valid bitcoin in any possible future state of the world. You can make one from a bundle of contingent claims. Thus, implementing contingent claims probably makes more sense than implementing bonds.

 


Title: Re: Forking the Blockchain for Bonds (25 BTC Bounty)
Post by: marcus_of_augustus on June 21, 2011, 07:53:28 AM
Quote
I understand that almost no one here understands economics well, but the computer scientists are at least intelligent. As far as me writing the code, I am an economics professor, not a computer programmer.
(Watching .... this should be entertaining.)

You could always buy mining contracts from our good friend Vladimir the miner who is effectively selling futures contracts on bitcoins .... https://forum.bitcoin.org/index.php?topic=2883.0

Bonds are debt are they not? Bitcoin is a credit currency as fas I'm aware ... (economics can be prone to political bias if monetary concepts are not applied with rigour.)


Title: Re: Forking the Blockchain for Bonds (25 BTC Bounty)
Post by: cunicula on June 21, 2011, 08:08:26 AM
Would rather discuss contingent claims as I mentioned before, since I now believe it is more useful.
See this thread:
http://forum.bitcoin.org/index.php?topic=19130.0

I'm aware that Vladamir offers mining contracts which would seem expensive to most. Don't blame him at all, Vladamir would be bearing a whole lot of risk otherwise. Given that bitcoin didn't incorporate these features in its design, he is performing a useful service. So is paypal, however; so this argument doesn't go very far. Sorry if I was trolling above, just frustrated with the responses (my fault).



Title: Re: Forking the Blockchain for Bonds (25 BTC Bounty)
Post by: TierNolan on July 04, 2011, 10:54:29 AM
The bitcoin spec is pretty much already set down in stone.  You can't allow blocks in the main chain that previous versions of the client would reject.

The one exception is that some of the parameters like maximum block size are intended to be relaxed.  However, even that goes against the principle.

The trust that is placed in the bitcoin system is because there is no central bank with the power to change the rules.

I posted in your other thread, but can post again here (second pass of thinking about it).

I think the best plan would be to create an alternative chain and provide an incentive for miners to participate in it.  In theory, you could have lots of different types of futures in the one alternative chain, but that makes it more difficulty for miners to check things.

A future that is backed against the difficulty in the main bitcoin chain is something that would be easy for miners to test.

The header for the new chain could be

<version>
<previous-block>
<current-bitcoin-block-hash>
<current-bitcoin-difficulty>
<merkle-root*>

<current-bitcoin-index>

<transactions>

the merkle root is equal to

Hash(<current-bitcoin-index> , <root for all transactions>)

The way a Merkle tree works is that for any node, you can prove that a particular node (transaction) was part of the tree.

<node-hash> <some-number> <some-number> <some-number> ... <some-number>

The merkle inclusion check could be implemented in the scripting language for the main chain, so you could have a real bitcoin transaction that required that you prove that your win was included in the alternative chain in order to unlock it. 

Effectively, you would send a coin to on bitcoin chain with a release condition of "must provide proof that the unlock authorization was included in the alternative chain and was confirmed by K blocks and difficulty in the alt chain was at least D".

That would involve 3 checks, first you verify that the unlock code was part of a merkle tree.  Next, you verify that the <current-bitcoin-index> is valid and finally you verify that the alt chain block in question was buried deep enough in the alt chain.

A user would submit a proof request to the alternative chain.  "The difficulty for block N was greater than X and less than Y" and the alt chain would certify that it is true by including it in the chain. 

Once it has been confirmed by at least K blocks, the winner can take the proof and submit it to the main chain.

I am not sure how best to handle it so that the coin futures can be traded.  The alt chain would need to track the owner of the each future piece, so that the release code only works for 1 person.


Title: Re: Forking the Blockchain for Bonds (25 BTC Bounty)
Post by: becoin on July 13, 2011, 04:36:20 PM
For example, suppose Mary holds bitcoins and has a business idea that would add significant value to the bitcoin economy within one to two years. It would be in Mary's interest to sell some of her current bitcoins for bonds and some for USD to finance her idea.
Why would Mary sell her bitcoins to buy bitcoin bonds which in turn has to be sold to finance her idea? Why wouldn't she sell her bitcoins and buy directly whatever products and services she needs to implement her idea?


Title: Re: Forking the Blockchain for Bonds (25 BTC Bounty)
Post by: cunicula on July 14, 2011, 12:47:20 AM
Her idea could require holding a reserve of bitcoin assets. For example she might be building a bitcoin bank or a bitcoin casino. Alternatively she might just want a diversified btc portfolio. Bonds allow her to maintain an equivalent long position on bitcoin and also leave some money left ovwr for other investment or consumption purposes.


Title: Re: Forking the Blockchain for Bonds (25 BTC Bounty)
Post by: becoin on July 14, 2011, 04:45:03 AM
Bonds allow her to maintain an equivalent long position on bitcoin and also leave some money left ovwr for other investment or consumption purposes.
If Mary has X amount of bitcoins in her wallet.dat she already has a long position on bitcoin! If she wants to leverage this long position she must find someone willing to make the opposite bet - the equivalent short position on bitcoin. Bonds are essentially bets on future inflation. The buyer and seller have different inflationary expectations. In the bitcoin economy this is not possible because by design bitcoins can not be 'printed' arbitrarily.


Title: Re: Forking the Blockchain for Bonds (25 BTC Bounty)
Post by: phillipsjk on July 14, 2011, 04:54:34 AM
To be honest, I am not sure what you are proposing. If you want to "lock-in" a difficulty 6 months ahead of time, that will likely screw up block generation. On average, one block is produced every 10 minutes or so. If the next block was already produced 6 months ago, we would have to artificially raise the difficulty level to avoid generating coins. Worse, block generation is what processes transactions. Artificially raising the difficulty would slow transaction processing: you can't just "add" transactions to the 6 month old block now maturing.

As becoin said, you can make your own bonds: Generate a savings wallet using Bitcoin Off-The-Grid (BOTG) (https://forum.bitcoin.org/index.php?topic=23081.0), and store it in a safe place; preferably two safe places. Send money to it. After the "bond period" is up, retrieve the savings wallet and import the private keys. You can then spend the coins again.


Title: Re: Forking the Blockchain for Bonds (25 BTC Bounty)
Post by: ctoon6 on July 14, 2011, 05:04:20 AM
why would we do this? it adds a plethora of additional challenges and complexity. why would i mine for bonds, when the current system gives me real money now. sure i could trade the bonds, but why, i got real money now, do you want 2 currencies competing? making each other less valuable.


Title: Re: Forking the Blockchain for Bonds (25 BTC Bounty)
Post by: cunicula on July 14, 2011, 06:45:34 AM
Some helpful points.The blockchain is the bond issuer (just as in mining). Private bond issuers are not neccesary. There are multiple ways of understanding why public bond issues are useful. Perhaps framing it in terms of time preference will help.

http://en.wikipedia.org/wiki/Time_preference

Creation of bonds allows trading between people with different time preference.
 
Bond buyers want to buy items tomorrow. Bond sellers want items today. Without the introduction of blockchain issued bonds, it is very difficult for these parties to profitably trade. Buyers and private bond issuers would need to negotiate and enforce contracts privately. Currently, the level of trust in the community and resources for enforcement make it difficult to support a private credit market. Introducing mined bonds reduces the need for trust and enforcement mechanisms, allowing for profitable trades between individuals with different time preference. One advantage of this is that it makes leveraging a bet cheaper.

Also, creation of bonds is also a useful step towards the creation of contingent claims. Contingent claims are discussed here:
http://forum.bitcoin.org/index.php?topic=19130.0
The contingent claims also provides some useful discussion about possible coin generation rules. This should make clear that bonds would not 'screw up coin generation"

None of the other new comments in the thread are worth addressing at this point.







Title: Re: Forking the Blockchain for Bonds (25 BTC Bounty)
Post by: gmaxwell on July 14, 2011, 06:58:50 AM
Average difficulty for all maturities would be pegged to hold the total number of all types of coins constant according to Satoshi's schedule. Difficulty for each

You're making a mistake of thinking about the mining process as primarily a mechanism for the initial wealth distribution.  This is an incorrect way of looking at it and it will lead to confusion.

The bitcoin hash chain embodies an attack resistant distributed algorithm for determining a consensus ordered transaction log which does not require a central authority or any trusted parties at all.  Difficulty is an absolutely essential part of providing the attack resistance, as is the average time between blocks and a multitude of other interlocking factors.

Mining, the process of extending the transaction log,  will continue / would be required even if there were no new coins being distributed.  

Initial wealth distribution has to happen somehow— and the absence of a central authority limits your options considerably: mostly you're left with lotteries of various kinds.  Linking it to mining had the dual benefit of promoting the system security early on, and taking advantage of an already existing lottery infrastructure.

So, in any case, you can't just change how difficulty works without completely reworking the system, and your desired tweaks may not be directly compatible with the behavior required for system security.  In which case, proof of work to create your bonds would need to be decoupled from the core blockchain process, which would inevitably distract from system security…



Title: Re: Forking the Blockchain for Bonds (25 BTC Bounty)
Post by: cunicula on July 14, 2011, 06:59:05 AM
The buyer and seller have different inflationary expectations. In the bitcoin economy this is not possible because by design bitcoins can not be 'printed' arbitrarily.


You think that it is impossible for one person to believe that the goods denominated in bitcoin will be say $xx per good in 2012 and for another person to disagree with them. "Because bitcoins can not be printed arbitrarily," you believe that everyone must be in perfect agreement about expected future prices.

It seems hard to believe that you made this argument intentionally. Am I understanding you correctly?


Title: Re: Forking the Blockchain for Bonds (25 BTC Bounty)
Post by: cunicula on July 14, 2011, 07:10:03 AM
Average difficulty for all maturities would be pegged to hold the total number of all types of coins constant according to Satoshi's schedule. Difficulty for each
your desired tweaks may not be directly compatible with the behavior required for system security. In which case, proof of work to create your bonds would need to be decoupled from the core blockchain process, which would inevitably distract from system security…

That is something that requires careful analysis. Projects should not be dismissed offhandedly just because their implementation requires careful analysis. The important problem is generating an adequate quantity of bonds. How they are initially distributed is not as important. For example, consider the following simplification.

Mining has only one difficulty level, adjusted to meet the one block every 6 hours target.

Make each block a mixture of 50 coins of different maturities. (e.g. 25% reg coins, 25% next year Jan 1st coins, 25% two years ahead Jan 1st coins, 25% five years ahead Jan 1st coins).

This requires adding more information to the blockchain, but it is not obvious to me why this type of change would meaningfully impact blockchain security. [I have no expertise here, but I can tell that gmaxwell hasn't considered the issue carefully, and is instead making an offhand remark.]





Title: Re: Forking the Blockchain for Bonds (25 BTC Bounty)
Post by: becoin on July 14, 2011, 11:44:20 AM
It seems hard to believe that you made this argument intentionally. Am I understanding you correctly?
Dear canicula, it is hard to believe that you make no difference between price of goods and price of money? Bonds are not about price of goods but about price of money!

Nobody knows what shall be the price of goods next year neither in bitcoins nor in dollars. Certainly, nobody knows what would be the price of the dollar in dollar terms next year because nobody knows how much dollars Fed will print and what would be the inflation rate. One can only suggest... In contrast to that, everybody knows what would be the price of bitcoins in bitcoin terms next year because everybody knows exactly how much bitcoins you'll have in circulation by that time!


Title: Re: Forking the Blockchain for Bonds (25 BTC Bounty)
Post by: TierNolan on July 14, 2011, 12:00:53 PM
Make each block a mixture of 50 coins of different maturities. (e.g. 25% reg coins, 25% next year Jan 1st coins, 25% two years ahead Jan 1st coins, 25% five years ahead Jan 1st coins).

What is the difference between "This bond will convert to a bitcoin on 1st January 2011" and a bitcoin?

A bond with 0% risk is not a bond.  If the bond is part of the bitcoin system, can be traded just like bitcoins and guaranteed in exactly the same way as bitcoins, then the 2 are equal in value.

"This bond will convert to a bitcoin on 1st January 2011, unless I go bankrupt" is a completely different thing.


Title: Re: Forking the Blockchain for Bonds (25 BTC Bounty)
Post by: cunicula on July 14, 2011, 01:00:10 PM
Make each block a mixture of 50 coins of different maturities. (e.g. 25% reg coins, 25% next year Jan 1st coins, 25% two years ahead Jan 1st coins, 25% five years ahead Jan 1st coins).

What is the difference between "This bond will convert to a bitcoin on 1st January 2011" and a bitcoin?

A bond with 0% risk is not a bond.  If the bond is part of the bitcoin system, can be traded just like bitcoins and guaranteed in exactly the same way as bitcoins, then the 2 are equal in value.

"This bond will convert to a bitcoin on 1st January 2011, unless I go bankrupt" is a completely different thing.

This is wrong.

Bonds pay positive real interest even with 0% risk. Bonds are difficult to spend because the shops will (most likely) not be set up to accept them directly. A positive risk-free interest rate occurs because of:

a) time preference (people [on average] prefer to spend money today rather than tomorrow)
b) technological change (goods [on average] are more expensive to produce today than they will be tomorrow, therefore people are willing to trade consumption of x goods today for consumption of (1+r)x goods next year, where r is the real interest rate.  Bonds facilitate these types of exchanges. With some simplification, the equilibrium level of r in an economy is equal to the productivity growth rate.

This primer is a little helpful, but not really:
http://en.wikipedia.org/wiki/Risk-free_interest_rate
Instead, I would suggest consulting an introductory macroeconomics text, such as those written by
Krugman and Wells,
Mankiw, or
Barro






Title: Re: Forking the Blockchain for Bonds (25 BTC Bounty)
Post by: becoin on July 14, 2011, 01:13:24 PM
This primer is a little helpful, but not really:
http://en.wikipedia.org/wiki/Risk-free_interest_rate
Instead, I would suggest consulting an introductory macroeconomics text
Look buddy, I can understand your frustration but nothing can be done. Get over it. All this pseudo science is based on assumption of future inflation. Bitcoin removes an entire layer of financial parasites living out of monetary inflation and peoples inflation expectations.

Hope this primer is a little helpful:
http://www.youtube.com/watch?v=VOapLkmhYG4


Title: Re: Forking the Blockchain for Bonds (25 BTC Bounty)
Post by: TierNolan on July 14, 2011, 01:37:44 PM
Bonds pay positive real interest even with 0% risk. Bonds are difficult to spend because the shops will (most likely) not be set up to accept them directly.

OK, but I did point out that if the bond is integrated into the bitcoin system, then it is effectively a bitcoin.

Now, if the bond cannot be spent as easily, then you are just adding an artificial roadblock. 

The bond is still worth the face number of bitcoins, it is just more inconvenient to use.

Quote
A positive risk-free interest rate occurs because of:

a) time preference (people [on average] prefer to spend money today rather than tomorrow)

The reason that banks pay out interest is because there is some risk.  They take your money and use it as collateral to borrow from the central bank.

If they make bad lending decisions, you could lose your money.

If you insisted that they put the money in a vault and not touch it, then they would refuse to give you any interest.

For bitcoins, the only way to create a zero risk bond, is to put a bitcoin in escrow for the year.  The bond is basically a title deed to that other coin.  It doesn't matter when it can be withdrawn, as long as it is certain to be withdrawn.


Title: Re: Forking the Blockchain for Bonds (25 BTC Bounty)
Post by: marcus_of_augustus on July 14, 2011, 02:04:38 PM

Starting to smell like gold loans ... they haven't blown up, just yet. They'll be the last to go, the final denouement on a bankrupt system.


Title: Re: Forking the Blockchain for Bonds (25 BTC Bounty)
Post by: cunicula on July 14, 2011, 02:55:53 PM
Bonds pay positive real interest even with 0% risk. Bonds are difficult to spend because the shops will (most likely) not be set up to accept them directly.

OK, but I did point out that if the bond is integrated into the bitcoin system, then it is effectively a bitcoin.

Now, if the bond cannot be spent as easily, then you are just adding an artificial roadblock. 

The bond is still worth the face number of bitcoins, it is just more inconvenient to use.

Quote
A positive risk-free interest rate occurs because of:

a) time preference (people [on average] prefer to spend money today rather than tomorrow)

The reason that banks pay out interest is because there is some risk.  They take your money and use it as collateral to borrow from the central bank.

If they make bad lending decisions, you could lose your money.


If you insisted that they put the money in a vault and not touch it, then they would refuse to give you any interest.

For bitcoins, the only way to create a zero risk bond, is to put a bitcoin in escrow for the year.  The bond is basically a title deed to that other coin.  It doesn't matter when it can be withdrawn, as long as it is certain to be withdrawn.
i will give you an important pointer. If you do not allow for artificial roadblocks, it is impossible to understand why monetary exchange as opposed to barter is the dominant mode of transactions in the economy...

what a bank would do is irrelevant. Bond coins would be issued by the blockchain not a bank. The relevant issue is whether people would trade 1 bond coin for 1 bitcoin. The poll i linked to above suggests that the vast majority of people would not be willing to make this trade. Instead they would make trades of 0.95 bitcoins for 1 bond coin or perhaps 0.9 bitcoins for 1 bondcoin. I tried to explain to you why most people report these valuations rather than the valuation you report. I give up. Still i hope that you will consult one of the textbooks i suggested in the future.


Title: Re: Forking the Blockchain for Bonds (25 BTC Bounty)
Post by: TierNolan on July 14, 2011, 03:29:36 PM
i will give you an important pointer. If you do not allow for artificial roadblocks, it is impossible to understand why monetary exchange as opposed to barter is the dominant mode of transactions in the economy...

So, you are creating an object which is basically a title deed for a bitcoin, but is worth less than a bitcoin, because you have intentionally crippled it.  Why do this?

Dollar bonds require interest because their is a risk that they won't pay back.

Quote
what a bank would do is irrelevant. Bond coins would be issued by the blockchain not a bank. The relevant issue is whether people would trade 1 bond coin for 1 bitcoin. The poll i linked to above suggests that the vast majority of people would not be willing to make this trade. Instead they would make trades of 0.95 bitcoins for 1 bond coin or perhaps 0.9 bitcoins for 1 bondcoin. I

It would be interesting to see what would actually happen if it was actually a market.  The majority don't actually decide market price.  All you need is one person to spot that they are actually identical and he will pay 0.99 BTC for 1 BTC (or 1 BTC - transaction fees and annoyance factor). 

If the bondcoins can be traded in exactly the same way as bitcoins, there is no reason to differentiate between the 2.


Title: Re: Forking the Blockchain for Bonds (25 BTC Bounty)
Post by: freequant on July 14, 2011, 06:46:07 PM
Canicula,

Very interesting idea that would indeed allow for Bitcoin loans, and counter deflation by reinjecting in the market the money hoarded by long term investors.
I am not sure I understand fully your proposal as you did not explain very clearly how it fits in the picture of the Bitcoin network.
There is however a way I can see that would make it possible technically without major changes to the client.

Let me rephrase what I understood in logical steps, and develop a short spec of how this could be done practically within the framework of the Bitcoin network.

1. People holding bitcoins and planning to hoard them for the long term should be able to enter a contract whereby they would loan this money sleeping in their wallet for a fixed amount of time in exchange of the guarantee of recovering their fund at the maturity of the contract. Doing so involve a certain risk, and a loss of opportunity as they won't be able to invest this money somewhere else, that should be compensated by the payment of a periodic interest rate / coupon representing the risk free timevalue of the money. Such  a contract is indeed very similar to what is called a bond, so let's call that a bond.

2. To guarantee that the funds of the bond can be refunded at maturity, the bond must be underwritten by a third party that will hold a colateral. This should also respect the design an philosophy of Bitcoin, namely not rely on any centralized authority to underwrite the claim, and not involved any physical and or centrally controlled asset as colateral. So the bond must be underwritten by a non-centralized authority, and backed by a non-centraly managed collateral.
2.1. The only non-centralized authority we know of in the Bitcoin realm is the Bitcoin network. The bond must therefore be underwritten by the Bitcoin network itself using the only certification mecanism supported by network : digital signature, and proof-of-work block generation.
2.2. The only non-centraly managed assets we know of in Bitcoin realm are computing power, and Bitcoin themselves. If the bond is denominated in Bitcoin, the collateral can therefore only be computing power.

3. If the colateral is the computing power, and knowing that in a bond contract, the colateral is provided by the bond seller, and the cash is provided by the bond buyer, the bond will effectively be a transaction between a miner and a long term bitcoin hoarder.

4. At the time of the bond issuance, the value of the colateral and the face value of the bond should be equal. Knowing that the smallest denomination for computing power on the Bitcoin network is a block, and that the bitcoin value for a valid block is fixed for two years to 50 bitcoins per block, we can establish logically that the minimum contract size of a bitcoin bond will be 1 contract of face value BTC50, backed by a collateral of one valid block.

5. The colateral being a valid bitcoin block it must be inserted in the blockchain at the time it is generated, otherwise it would not remain a valid block by defintion. The bond seller will therefore pay the colateral to the underwriter (the Bitcoin network) by simply inserting it in the block chain like usual. The underwriter (the Bitcoin network) will accept the block as a colateral by validating it and continue to grow the blockchain after it (like usual).

6. For the valid block to keeps its value as a colateral, it should not lead to the usual emission of 50 BTC in addition to the payment of the 50 BTC face value of the bond by the bond buyer to the bond seller (the miner). The miner will therefore receive only 50 BTC for its block like it would have got if he mined for a non-bond-related block. The bond buyer must pay the 50 BTC to validate the contract. There are only two ways this can be done :
6.1 (method 1 : quite some changes to the protocol) : the bond seller does not register his usual 50BTC mining incentive but leave the block empty. Once it printed the block with no 50BTC incentive, he effectively provided as colateral a non-redeemed block to the network that the network can use to refund the bond buyer at maturity without breaking the money supply rule as the non-redeemed block was minted in the past and did not generate the 50BTC it should have generated. To validate the transaction, the bond buyer must pay the 50BTC to the bond seller soon after the non-redeemed block was issued. If it doesn't send the payment within a given delay, the network will redeem the empty block to refund the bond seller by issuing 2 incentive transactions of 50BTC in a subsequent block. The major problem of this method is that the network must remember about this non-redeemded block and it must watch if the buyer makes the payment.
6.2. (method 2 :almost no change) The bond seller registers as usual his own 50BTC mining incentive in the block header, in which case he should not receive the payment from the bond buyer. The bond buyer should therefore pay the payment to the network and not the bond seller whose colateral value has already been depleted by redeeding the 50BTC incentive. The network being decentralized, it does not itself have a wallet.dat file, and cannot receive a payment. But it can print money at will provided that it does not increase the monetary supply by more than 6 blocks (300BT) per hour in average This is where the catch is : for the bond buyer to pay the bond face value to the network, it can simply destroy it by sending it to a dummy address where it can never be recovered, like 1DummyAddressForBondPayment (or my bitcoin address ;)). By doing so, it decreases the money supply by 50BTC, and therefore allows the network to print one more block before the next difficulty increase. The big interest of this method is : miners mine like usual, totally unaware that they are being the counterpart of a bound transaction. At some point, the bond buyer discard 50BTCs by sending it to a dummy address, which gets recorded to the ledger and generates the bond (the bond is therefore underwritten by this single transaction). At the time of calculating when the difficulty should increase, the clients will calculate the difficulty as the time taken to generate N+1 blocks (and not N, where N is the usual block count between difficulty changes) as one of the block was funded with the money that bond buyer destroyed and therefore did not increase the money supply. At the time of maturity, the network will generate a block containing a second 50BTC transaction sent to the address from which the bond buyer destroyed his 50BTC. Maturity can be expresset by sending the coins to a specifically formated non-recoverable address, like 1BondMaturityPayment20111203 or 1BondMaturityPayment123456 when 123456 is the block number where reimbusement of the bond should be made. Everyday or everyblock, the clients will check the transactions recorded in the related unrecoverable address, and pay it out by adding an extra 50BTC transaction to some block. This will be taken into account for next difficulty level calculation, and the network will calculate the time taken to compute N-1 block instead of N blocks where N is the number of blocks between difficulty reevaluation.

7. The benefit of this bond system is that it puts back in circulation the capital that is horded by long term investors. This keeps the moneraty supply pretty much constant (growing progressively as mining goes) instead of having it contract and expand as speculators hord it or sell it en mass. This will stabilize the price of bitcoin which will in turn help the economy develop, which will increase non articifically the demand for Bitcoin and increase its value in a much more healthy and sustainable way than the current situation where scarcity is only due to speculators hoarding the currency and the actual demand in the economy is still pretty weak.

8. Why would miners want to be the counterpart of the bonds? Effectively, while the bond buyer is an individual, the bond seller is not a single miner but the whole network. Indeed, handling the bond as explained in 6.2 is completely transparent to the miners: they continue mining in best effort as usual and try to generate as many block as possible given the current difficulty. Only, thanks to the bond and the bond-buyer funded extra block, they will effectively generate N+1 block in the current difficulty cycle without increasing the difficulty. This clearly increases their shortterm profitability. As the bond will be refunded in the future, rolling back the balance and increasing the difficulty, it will decrease the protitability in the future. But we all know that difficulty tends to increase, which makes easier and therefore more valuable to mine an extra block now than later. So the advantage of the bond for the miners is here: it allows to time-warp a part of the mining job earlier in time, and to postpone the difficulty increase effect of this to later, increasing early miners profitability.

9. Why would long term investors in Bitcoin want to buy bonds? First because by relaxing the monetary supply, it will help the economy which is likely to entail a long term sustainable appreciation of their assets. Second, because of the yield. I did not discuss that part yet, so here we go : where is the yield going to come from? It has to be paid periodically during all the duration of the contract. But we know that the monetary supply shouldn't increase more than what was originally planned, and we aren't going to ask the to miners to pay the yield off their 50BTC incentive. So that lets transaction fees : yield will be paid from transaction fees and calculated / adjusted in such a way that the total amount of transaction fees the network miners will not get due to the yield will match the extra bitcoin they made by mining that block sooner when difficulty was lower.

10. It would even be possible to allow to recall the bond (sell it back to the network and get back the cash) by paying with the same address some cancellation premium to the unrecoverable address of targeted maturity.

Cunicula, not sure how much of the above is what you where thinking about and how much is not.
It doesn't ask much modifications to the bitcoin client, it does not require to fork the block chain, it does not breach original Bitcoin mecanisms, and I think it could indeed be beneficial for the miners, the long term investors and the whole bitcoin economy.

Any feedback welcome.


Title: Re: Forking the Blockchain for Bonds (25 BTC Bounty)
Post by: becoin on July 14, 2011, 07:21:25 PM
Very interesting idea that would indeed allow for Bitcoin loans, and counter deflation by reinjecting in the market the money hoarded by long term investors.
1. Allow for bitcoin loans? There is nothing to prevent you from lending your bitcoins now!
2. Counter deflation? What deflation? Lack of inflation is not equal to deflation!


Title: Re: Forking the Blockchain for Bonds (25 BTC Bounty)
Post by: phillipsjk on July 14, 2011, 07:27:40 PM
I think both methods suggested open the door for fraud. Also, miners processing the transaction are chosen by lottery. If miner not recognizing bonds processes the maturing block, the payouts will be incorrect. Because of the possibility of block chain splits, such an error can't be corrected for about 120 block, were another non-bond recognizing  miner may process the transaction.

On second though, this will split the block chain. The "standard" miners have no way of recognising a "non-recoverable" address: in fact, there is no way for prove that such addresses will never be generated by chance. Any miners and not knowing about the "bonds" will reject any block containing the bond reimbursement transaction that appears to create money out of thin air. The way transactions work; all transactions are tracked back to the coin creation. Coin creation is governed by a set of rules all nodes must agree to in order to recognise valid coins.

I am confident that bonds can not be introduced directly into the blockchain without creating an new block chain. If you are confident there is demand for bonds, you can try to convince people to join bitcoin2. I will be staying with the original bitcoin for at least 2 years (to see what happens when the block-reward drops).


Title: Re: Forking the Blockchain for Bonds (25 BTC Bounty)
Post by: becoin on July 14, 2011, 08:00:43 PM
I think both methods suggested open the door for fraud.
That's the idea. Make other people to partially pay your risk as lender. As no bitcoin owner would voluntarily do that they want to force it by changing the bitcoin protocol. What a stupid idea. You can't teach old monkey to new tricks!


Title: Re: Forking the Blockchain for Bonds (25 BTC Bounty)
Post by: freequant on July 15, 2011, 04:50:41 AM
Very interesting idea that would indeed allow for Bitcoin loans, and counter deflation by reinjecting in the market the money hoarded by long term investors.
1. Allow for bitcoin loans? There is nothing to prevent you from lending your bitcoins now!
Is that supposed to be an argument?
There is nothing to prevent you from moving around using your feet, does that make cars and other means of transportation useless? No, because such means of transportation offer many advantages over using your feet alone.
Same thing for distributed bonds as explained above : no need for a third party, not need of a physical colateral in escrow, very low risk of default as the debtor is the whole network itself, and the payback is algorithmically guaranteed. The only way the network will default on the bond is if Bitcoin itself goes belly up in which case Bitcoins will be worthless anyway.


2. Counter deflation? What deflation? Lack of inflation is not equal to deflation!
Again is that supposed to be an argument?
Inflation and deflation are on a continuum...

That being said, you commented only on the first line which was not the main point of my post.


Title: Re: Forking the Blockchain for Bonds (25 BTC Bounty)
Post by: freequant on July 15, 2011, 05:29:49 AM
I think both methods suggested open the door for fraud.
Can you develop?

Also, miners processing the transaction are chosen by lottery.
Not with the second method I proposed (the first one was just there for the completeness but is impractical).
With the second method, the only transaction that will issue the bond is the bond buyer discarding his 50BTCs by sending then to an unrecoverable address. Which miner will get the block that contains the bond generating transaction does not matter. This is just a transaction among other transactions that need to be kept in the ledger.
The payment of the bond to the seller (the network) is implemented by allowing the network to issue one more block before next difficulty change without taking into account that block in the difficulty. This is possible because 50BTCs have been destroyed, and can therefore be reprinted.
The miner who will mine this last extra block is random, but that doesn't matter because everyone on the network has a chance to get the block that is proportional to their computing power.
This is exactly the same as if you have 60 fishes in a pond, and 10 fishers fishing them, and someone drops one extra fish in there.
Someone will get that extra fish, but who will get it doesn't matter at all.
What matters is that, by dropping this fish in the pond, the bond buyer paid one fish to the fishers network, and that the payout was fair to all the fishers as it increased equally the expected value of their income.

For the rest, I agree with your arguments that this cannot work if not all the clients recognize the bond-enabled protocol.
As there is no way to enforce that clients upgrade their software, this could result in a fork.

I expect however that the opportunity of mining more blocks now while the difficulty is less high will act a an incentive for the miners to move to the new block chain that is more profitable on short term.


Title: Re: Forking the Blockchain for Bonds (25 BTC Bounty)
Post by: freequant on July 15, 2011, 05:46:35 AM
I think both methods suggested open the door for fraud.
That's the idea. Make other people to partially pay your risk as lender. As no bitcoin owner would voluntarily do that they want to force it by changing the bitcoin protocol. What a stupid idea. You can't teach old monkey to new tricks!
Becoin, you don't need to force yourself to comment if you have really nothing constructive to tell.
You can claim things are stupid randomly without giving any valid argument.
But just keep in mind that by doing such claim, you are letting only two possible conclusions to people who read the thread : either the idea really is stupid, or you are the one who is.


Title: Re: Forking the Blockchain for Bonds (25 BTC Bounty)
Post by: becoin on July 15, 2011, 12:15:08 PM
Quote
Is that supposed to be an argument?
freequant, no argument is good enough for people that don't want to listen to any argument.

Quote
There is nothing to prevent you from moving around using your feet, does that make cars and other means of transportation useless? No, because such means of transportation offer many advantages over using your feet alone.
There are no advantages because what you suggest is not additional option of transportation but substitution. What you suggest is to surgically remove the legs of all newly born babies to force them use cars to move around whenever they need to. No thanks.

Quote
very low risk of default as the debtor is the whole network itself
That pretty much says it all.
So, I'll be a debtor because I have no choice but use your debt 'vehicle' as money. People will use cryptodebt as currency to facilitate commercial turnover IF ONLY the option of cryptocash is artificially removed. This is why you insist bitcoin protocol be changed. Again, no thanks. Make your own blockchain and try to find enough fools to use it just for the sake of being debtors.

Quote
Inflation and deflation are on a continuum...
Ahh, thank you for making yourself clear.

Quote
either the idea really is stupid, or you are the one who is.
This idea is really stupid. It is just stupid as saying that gold is not money but an asset. For the last 5000 years gold was used as money. For the last 30 years, however, some 'brilliant' people are trying to convince us it is not money but an asset?! We all know why... They just can't image how will their miserable life go on without the free lunch (aka risk-free debt)!


Title: Re: Forking the Blockchain for Bonds (25 BTC Bounty)
Post by: cunicula on July 15, 2011, 02:12:34 PM
Freequent'+, I like your idea, but I have two questions that concern me.

What reward is offerred for sending the coins to an unrecoverable address?
The bond purchaser needs to receive more coins at maturity than he offers initially escrows.

What determines the maximum number of bond coins that can be issued? If there is no constraint, the system will very quickly result in all 21 million coins being issued as bond coins immediately.

One note: It will probably be simpler to issue the bonds as zero coupon bond. These are bonds which pay all of their interest as a lump sum at maturity rather than a periodic stream of interest payments.


Title: Re: Forking the Blockchain for Bonds (25 BTC Bounty)
Post by: phillipsjk on July 16, 2011, 06:35:47 AM
I think both methods suggested open the door for fraud.
Can you develop?

It complicates the protocol. The system guards against fraud by using a lottery to determine who processes a block. The difficulty of producing a block is automatically adjusted such that one block is processed approximately every 10 minutes. Adding new types of blocks without the same constraints will hurt the security guarantees of the bitcoin network. You can likely mitigate this by only creating new types of transactions instead of new types of blocks. You would still have to convince everybody to agree to support them.

You may want to investigate if contracts (https://en.bitcoin.it/wiki/Contracts) and scripts (https://en.bitcoin.it/wiki/Script) can do what you want. I think you would be able to force a coin to be unspendable for a length of time, but I don't think you would be able to loan a coin.


Title: Re: Forking the Blockchain for Bonds (25 BTC Bounty)
Post by: cunicula on July 16, 2011, 06:40:49 AM
I think both methods suggested open the door for fraud.
Can you develop?

It complicates the protocol. The system guards against fraud by using a lottery to determine who processes a block. The difficulty of producing a block is automatically adjusted such that one block is processed approximately every 10 minutes. Adding new types of blocks without the same constraints will hurt the security guarantees of the bitcoin network. You can likely mitigate this by only creating new types of transactions instead of new types of blocks. You would still have to convince everybody to agree to support them.

You may want to investigate if contracts (https://en.bitcoin.it/wiki/Contracts) and scripts (https://en.bitcoin.it/wiki/Script) can do what you want. I think you would be able to force a coin to be unspendable for a length of time, but I don't think you would be able to loan a coin.

Include the "same kinds of constraints" on processing speed then. Where is the problem?


Title: Re: Forking the Blockchain for Bonds (25 BTC Bounty)
Post by: phillipsjk on July 16, 2011, 07:00:23 AM
Include the "same kinds of constraints" on processing speed then. Where is the problem?

The problem is that currently transaction blocks create coins at a predictable rate. The difficulty is tuned such that transaction blocks happen at a predictable rate. If you throw new types of transaction blocks into the mix, either you will affect the rate of coin creation or the rate at which transactions are processed. You would break the automatic tuning mechanism.

The only way your proposal can work is if you come up with a new type of transaction that does not directly affect coin creation. In any case, it is likely you will still need to start your own block chain. This may be a case where Bitcoin should focus on doing a few things well.

Guaranteeing bonds does not appear to be something bitcoin is designed to do. Bitcoin works by keeping a public transaction log. Participants trust that the majority of participants don't want to tamper with the public transaction log. The individual participants still need to trust each other when exchanging goods and services. The payments can't be reversed, but the seller can fail to send the goods, for example.


Title: Re: Forking the Blockchain for Bonds (25 BTC Bounty)
Post by: cunicula on July 16, 2011, 08:59:02 AM
Include the "same kinds of constraints" on processing speed then. Where is the problem?

The problem is that currently transaction blocks create coins at a predictable rate. The difficulty is tuned such that transaction blocks happen at a predictable rate. If you throw new types of transaction blocks into the mix, either you will affect the rate of coin creation or the rate at which transactions are processed. You would break the automatic tuning mechanism.

The only way your proposal can work is if you come up with a new type of transaction that does not directly affect coin creation. In any case, it is likely you will still need to start your own block chain. This may be a case where Bitcoin should focus on doing a few things well.

Guaranteeing bonds does not appear to be something bitcoin is designed to do. Bitcoin works by keeping a public transaction log. Participants trust that the majority of participants don't want to tamper with the public transaction log. The individual participants still need to trust each other when exchanging goods and services. The payments can't be reversed, but the seller can fail to send the goods, for example.

yeah of course this would radically alter the system. Regardless of how it is implemented, it will significantly alter the time structure of the money supply. If the change is almost certain to add value it should be implemented. Conservatism is an ideology not an argument.


Title: Re: Forking the Blockchain for Bonds (25 BTC Bounty)
Post by: markm on July 16, 2011, 09:15:48 AM
By forking, do you mean everyone who owned coins prior to the fork owns coins in both resulting forks?

If you simply mean starting a new blockchain-based currency with a new feature the original Bitcoins do not have, that can be done and there are those who would welcome it.

You could even pick yourself a nation in the Galactic Milieu to play, whose currency will operate in the way you design.

-MarkM-


Title: Re: Forking the Blockchain for Bonds (25 BTC Bounty)
Post by: cunicula on July 16, 2011, 10:10:56 AM
By forking, do you mean everyone who owned coins prior to the fork owns coins in both resulting forks?

If you simply mean starting a new blockchain-based currency with a new feature the original Bitcoins do not have, that can be done and there are those who would welcome it.


First option is much better. If the bitcoin protocols are not adjusted, a new crpytocurrency can only emerge by replacing bitcoin. Prolonged coexistence of the two currencies seems extremely unlikely to me. All stakeholders in bitcoin would be wiped out. The new cryptocurrency would suffer the same fate at some point unless it adopted a more flexible approach. Forking is attractive because it allows innovation without wiping out stakeholders. Wiping out stakeholders in one cryptocurrency project will undermine trust in future cryptocurrency projects.

I'm worried that the bitcoin community will take an extremely rigid approach and try to avoid forks at all costs. I think excessive rigitidity will cause bitcoin to fail. If need be, I certainly plan to try to contribute towards the introduction of a new blockchain. In the meantime, I will continue to push for forking which I view as better for cryptocurrency at large.

Finally, if one introduces a new blockchain, it is better to introduce many improvements simultaneously rather than just one. This is just one of the ones I have in mind.


Title: Re: Forking the Blockchain for Bonds (25 BTC Bounty)
Post by: markm on July 16, 2011, 11:24:46 AM
Well get it down in code and when all the features you want are in the code we can fire it up.

EDIT: we already have 100-block bonds! The 50 coins a miner mines do not mature for 100 blocks. Maybe you could start by making use of those to establish that there is in fact a market for coins that are not yet mature. If there is, then maybe in your blockchain you could simply have the time to maturity increase each block so that eventually miners will be mining long term bonds instead of the current 100-block bonds?

-MarkM-


Title: Re: Forking the Blockchain for Bonds (25 BTC Bounty)
Post by: cunicula on July 16, 2011, 12:00:14 PM
Well get it down in code and when all the features you want are in the code we can fire it up.

-MarkM-

you missed the part where i said i was an economist not a coder. Nevertheless i am trying to help organize a network of people who are interested in creating a new and improved blockchain. The key steps are
1) recruiting interested talent
2) thinking about possible improvements
3) arriving at a consensus about which improvements should be incorporated in a new chain
4) coding the chain



It will be a long process with only a small probability of success. Interested parties are welcome to pm me, either just to offer suggestions or to express interest in future participation.



Title: Re: Forking the Blockchain for Bonds (25 BTC Bounty)
Post by: markm on July 16, 2011, 12:06:02 PM
CHeck out the GRouPcoin->DEVcoin project. We are currently developing and testing code aimed, apparently, at funding developers and thus, presumably, development.

Also, come up with a name for your new currency, one that can be nicely represented by a three-letter code (e.g. BTC, CDN, UKB, NKL, UNS, GRP, DEV, etc etc etc) so we have a name to use as we prototype it.

-MarkM-


Title: Re: Forking the Blockchain for Bonds (25 BTC Bounty)
Post by: TierNolan on July 16, 2011, 05:29:32 PM
You may want to investigate if contracts (https://en.bitcoin.it/wiki/Contracts) and scripts (https://en.bitcoin.it/wiki/Script) can do what you want. I think you would be able to force a coin to be unspendable for a length of time, but I don't think you would be able to loan a coin.

Mostly, loans require trust outside the system.  You give someone the loan and if they buy something with the money, the seller gets the money.  The lender has no further claim against the seller.

A loan that is enforced by the system would effectively be a coin that expires at time X (and reverts back to its original owner).  I doubt people would be willing to treat it as a full bitcoin, but maybe it would have some value.


Title: Re: Forking the Blockchain for Bonds (25 BTC Bounty)
Post by: phillipsjk on July 16, 2011, 05:40:09 PM
I'm worried that the bitcoin community will take an extremely rigid approach and try to avoid forks at all costs. I think excessive rigitidity will cause bitcoin to fail. If need be, I certainly plan to try to contribute towards the introduction of a new blockchain. In the meantime, I will continue to push for forking which I view as better for cryptocurrency at large.

Finally, if one introduces a new blockchain, it is better to introduce many improvements simultaneously rather than just one. This is just one of the ones I have in mind.

I disagree completely. I think starting a new block chain will almost always be better than forking the existing one. Forking the chain undermines the currency; thus eroding confidence and value.

A rival blockchain is not something to be feared. There already exists the testnet and namecoin blockchains. If somebody starts up a "Bitcoin with bonds" blockchain, some people may move over to it. If you are correct that bonds are needed for long-term stability, it may even become the new "standard." It does not matter if people have money invested in the first bitcoin: If the transition happens slowly enough, the people who want to sell bitcoin can sell it in exchange for "bitcoin with bonds".

The reason I am so cavalier about the failure of bitcoin is that I expect any crypto-currency, no matter how good, to fail in the medium-long term. Computers are just not secure enough to handle a crypto-currency in my opinion. Modern computers systems are complex and unproven. Subtle errors missed by this oversight can likely be leveraged into a devastating attack on any crypto-currency; given enough time an resources. For the record, I expect the computer industry to finally mature into reliable, proven correct systems after about 6 generations (150 years) or so. As precedent, I point to the Agricultural revolution, the invention of the wheel and the printing press. All took centuries to fundamentally change society.


Title: Re: Forking the Blockchain for Bonds (25 BTC Bounty)
Post by: phillipsjk on July 16, 2011, 05:44:19 PM
Mostly, loans require trust outside the system.  You give someone the loan and if they buy something with the money, the seller gets the money.  The lender has no further claim against the seller.

A loan that is enforced by the system would effectively be a coin that expires at time X (and reverts back to its original owner).  I doubt people would be willing to treat it as a full bitcoin, but maybe it would have some value.

I think it is still prudent to investigate is it is possible using scripting. If so, it would be a double-spend attack with a potentially years-long lag time.


Title: Re: Forking the Blockchain for Bonds (25 BTC Bounty)
Post by: cunicula on July 17, 2011, 06:11:32 AM
Mostly, loans require trust outside the system.  You give someone the loan and if they buy something with the money, the seller gets the money.  The lender has no further claim against the seller.

A loan that is enforced by the system would effectively be a coin that expires at time X (and reverts back to its original owner).  I doubt people would be willing to treat it as a full bitcoin, but maybe it would have some value.

I think it is still prudent to investigate is it is possible using scripting. If so, it would be a double-spend attack with a potentially years-long lag time.


Phillip could you rephrase or Elaborate? I don't understand.


Title: Re: Forking the Blockchain for Bonds (25 BTC Bounty)
Post by: cunicula on July 17, 2011, 06:18:32 AM
I'm worried that the bitcoin community will take an extremely rigid approach and try to avoid forks at all costs. I think excessive rigitidity will cause bitcoin to fail. If need be, I certainly plan to try to contribute towards the introduction of a new blockchain. In the meantime, I will continue to push for forking which I view as better for cryptocurrency at large.

Finally, if one introduces a new blockchain, it is better to introduce many improvements simultaneously rather than just one. This is just one of the ones I have in mind.

I disagree completely. I think starting a new block chain will almost always be better than forking the existing one. Forking the chain undermines the currency; thus eroding confidence and value.

A rival blockchain is not something to be feared. There already exists the testnet and namecoin blockchains. If somebody starts up a "Bitcoin with bonds" blockchain, some people may move over to it. If you are correct that bonds are needed for long-term stability, it may even become the new "standard." It does not matter if people have money invested in the first bitcoin: If the transition happens slowly enough, the people who want to sell bitcoin can sell it in exchange for "bitcoin with bonds".

The reason I am so cavalier about the failure of bitcoin is that I expect any crypto-currency, no matter how good, to fail in the medium-long term. Computers are just not secure enough to handle a crypto-currency in my opinion. Modern computers systems are complex and unproven. Subtle errors missed by this oversight can likely be leveraged into a devastating attack on any crypto-currency; given enough time an resources. For the record, I expect the computer industry to finally mature into reliable, proven correct systems after about 6 generations (150 years) or so. As precedent, I point to the Agricultural revolution, the invention of the wheel and the printing press. All took centuries to fundamentally change society.


You make some good points here. I still favor forking, but I can understand your reasoning. One issue is that forking is an unknown. No one can be sure hoow smoothly it will occur. I would like to see a demonstration of this because I view forking as one of the best features of the technology. It promises to provide some protection from obsolescence of the underlyong bitcoin technology. Can it fulfill this promise? I want to see a demonstration.

Perhaps you can see why I don't agree with you about forking eroding value.


Title: Re: Forking the Blockchain for Bonds (25 BTC Bounty)
Post by: phillipsjk on July 18, 2011, 05:08:07 AM
Quote
I think it is still prudent to investigate is it is possible using scripting. If so, it would be a double-spend attack with a potentially years-long lag time.

Phillip could you rephrase or Elaborate? I don't understand.

I looked at the scripting opcodes and my eyes kind of glazed over. I am currently assuming an automated loan is not possible.

The reason I am potentially concerned about a double-spend attack is what happens if somebody uses these bonds to buy goods or services? On the appointed date, they would "cash out," leaving the bond-holder with nothing.

Thinking about it a little more, I decided a customized client is probably needed to use "weird" scripts anyway. The default Bitcoin client probably mainly sticks to "standard" transactions, which are also scripts. Again, I have not carefully checked if my impressions are true or not. The default client will relay "weird" transactions with no problem as far as I can tell.

Quote
One issue is that forking is an unknown. No one can be sure hoow smoothly it will occur. I would like to see a demonstration of this because I view forking as one of the best features of the technology. It promises to provide some protection from obsolescence of the underlyong bitcoin technology. Can it fulfill this promise? I want to see a demonstration.

A "Fork" in the traditional sense won't work: it is all or nothing. The clients not recognizing the fork will studiously ignore it.

That said, there is reason to believe that if there is a compelling reason, all (or at least the majority)  of the participants can agree to a protocol change. If the change is not urgent, it can take place with decades of lead time. However, in order to get the (vast) majority to agree, the change should be non-controversial. I think your bond proposal would be too controversial to gain widespread acceptance for a protocol change. A non-controversial change would be something like: changing the hash function if collisions are demonstrated with SHA-256. Or, possibly, increasing the sub-divisibility beyond 8 decimal places if too many bitcoins are lost over the years.

Edit: I already explained why I think these non-controversial changes won't happen: I think bitcoin fail (and be replaced with something better) before the specific design choices become too inconvenient. (That is to say, I don't think Bitcoin will fail based on its own technical merits.)


Title: Re: Forking the Blockchain for Bonds (25 BTC Bounty)
Post by: cunicula on July 18, 2011, 06:36:23 AM

A "Fork" in the traditional sense won't work: it is all or nothing. The clients not recognizing the fork will studiously ignore it.

That said, there is reason to believe that if there is a compelling reason, all (or at least the majority)  of the participants can agree to a protocol change. If the change is not urgent, it can take place with decades of lead time. However, in order to get the (vast) majority to agree, the change should be non-controversial. I think your bond proposal would be too controversial to gain widespread acceptance for a protocol change. A non-controversial change would be something like: changing the hash function if collisions are demonstrated with SHA-256. Or, possibly, increasing the sub-divisibility beyond 8 decimal places if too many bitcoins are lost over the years.

Edit: I already explained why I think these non-controversial changes won't happen: I think bitcoin fail (and be replaced with something better) before the specific design choices become too inconvenient. (That is to say, I don't think Bitcoin will fail based on its own technical merits.)

In other words, convincing people to fork the blockchain requires the introduction of a serious threat to incumbents.  Without a looming threat, there is no way that the bitcoin sytem will ever be changed.

Given that threatened destruction is a prerequisite for change, the only way to make bitcoin better is to introduce a competing blockchain which threatens bitcoin. If the competing blockchain gains substantial traction (say one twentieth of the market cap of bitcoin), it would strongly suggest that the new currency's protocol was superior to bitcoin's. [Bitcoin couldn't wait too much longer than this to react. Since any reaction would inevitably be slow and cumbersome.]

Best Case Scenario: Once bitcoin users are threatened by the new blockchain, they agree to copy its protocol. If they copied the new protocol quickly enough, then the competing currency would cease to hold value. (With two identical products, the biggest network will win every time). In the best case scenario, bitcoin is demonstrated to have an effective governance system.

Worst Case Scenario: There is a good probability that bitcoin would never get its shit together and introduce the necessary changes in time. If this occurs, bitcoin will collapse, and the new cryptocurrency will take over.  Everyone would have to hope that the new currency adds a better governance system so that Worst Case Scenarios aren't repeated.

Does this seem like a reasonable analysis to you?  ???


Title: Re: Forking the Blockchain for Bonds (25 BTC Bounty)
Post by: markm on July 18, 2011, 06:53:01 AM
You can have a fork of the kind you seem to want easily. You simply grab the existing bitcoin blockchain up to whatever specific point you want to fork from to use as blockchain for your own new vurrency so that you have an existing bunch of stakeholders, everyone who is rich in bitcoin being rich in your new blockchain too.

-MarkM-


Title: Re: Forking the Blockchain for Bonds (25 BTC Bounty)
Post by: Romoku on July 18, 2011, 03:30:21 PM
I'm surprised the OP hasn't heard of Open Transactions.

https://github.com/FellowTraveler/Open-Transactions/wiki

It's pretty much what he is describing:

http://forum.bitcoin.org/index.php?topic=28565.msg363945#msg363945


Title: Re: Forking the Blockchain for Bonds (25 BTC Bounty)
Post by: cunicula on July 18, 2011, 03:35:13 PM
I'm surprised the OP hasn't heard of Open Transactions.

https://github.com/FellowTraveler/Open-Transactions/wiki

It's pretty much what he is describing:

http://forum.bitcoin.org/index.php?topic=28565.msg363945#msg363945

No, it is not. There is an implicit tax on all transactions in future claims unless the claims are issued by the blockchain itself. This has been discussed in this thread and my thread on "securing contingent claims"


Title: Re: Forking the Blockchain for Bonds (25 BTC Bounty)
Post by: Romoku on July 18, 2011, 03:54:43 PM
I'm surprised the OP hasn't heard of Open Transactions.

https://github.com/FellowTraveler/Open-Transactions/wiki

It's pretty much what he is describing:

http://forum.bitcoin.org/index.php?topic=28565.msg363945#msg363945

No, it is not. There is an implicit tax on all transactions in future claims unless the claims are issued by the blockchain itself. This has been discussed in this thread and my thread on "securing contingent claims"

I guess what you're wanting then is what was suggested earlier of a bondcoin backed by the bitcoin chain.

Bitcoin wasn't really created to take on all functions of a market (at least I believe that). It is the digital equivalent to gold.

It's entire purpose it to open up a new canvas of money aside from the traditional system and change the perception of who should control money.

This looks a little hard to implement or not even worthwhile in the main bitcoin chain, so I would suggest getting it implemented in the testcoin chain and seeing if there is a demand for bondcoins.

https://en.bitcoin.it/wiki/Testnet

I'm sure if enough people get into the idea it could become possible from a free enterprise perspective.

There's even a post about it:

http://forum.bitcoin.org/index.php?topic=7219.0