Skip to content

Instantly share code, notes, and snippets.

@lsparrish
Last active December 16, 2015 20:49
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lsparrish/5495631 to your computer and use it in GitHub Desktop.
Save lsparrish/5495631 to your computer and use it in GitHub Desktop.

Proto: Demand-Flexible Bitcoin Units

What they are...

Swarms of small bitcoin transactions directed into semi-public addresses that require proof of work to claim.

Less literally, they are a form of e-currency (synthetic commodity with cryptographically enforced scarcity) that is supply elastic, but can be easily traded for or converted to bitcoins with no centralized exchange.

Throughout this document, I will refer to "proto" as the money-like substance and Proto as the protocol or client. Note: This will not alter the existing bitcoin in any way, it is just a new client that leverages its cryptographic capabilities in new ways. Proto does not yet exist.

Why do we need this? What's wrong with just using Bitcoin?

Bitcoin is designed to be supply inelastic. This complicates certain things. Long term debts in a currency that tends to grow in value is a very bad thing for the borrower, and the lender may expect them to default on the loan because of this.

Also, price stickiness clashes with deflation, which means that we can't easily price things in bitcoin -- a good rate for a pizza one year (20,000 bitcoins) might be a million dollars a couple years later. This means that while we might make payments in bitcoin, such currencies as the euro and the dollar cannot be completely replaced as measurement units.1

Proto is based on the idea that deflation is a problem for a currency. It may be that some bitcoin advocates won't want to jump on board because they disagree with this economic hypothesis. However, that is fine because Proto works well with fairly small numbers of bitcoin investors. Its usefulness does will not be high (outside of specialized environments like forums and games perhaps) until it achieves sufficient network effects, but in terms of value it should remain relatively stable regardless of network size.

What's in it for Bitcoin investors?

Proto puts some fraction of the available bitcoins in an unspendable state, or at least a state where you are strongly discouraged from spending them. If bitcoin value crashes momentarily, the coins in Proto form tend to stay there until it recovers. In a longer term low, it soaks up the extra bitcoins. If bitcoin value recovers, the bitcoins will get pulled out of the system, which decreases the bitcoin-relative value of proto.

If/when demand for Proto rises, it may be a way to earn money. However it is more complicated than just buying and holding. If bitcoin demand rises rapidly compared to the demand for proto, your total bitcoin stake per unit of proto will drop. But if it crashes, your bitcoin stake would tend to rise because more people would become proto planters. So the thing to do as a trader would be to move assets from proto to bitcoin when you think bitcoin will rise in value, and from bitcoin to proto when the market seems likely to lull or drop.

How does it work?

This is where it gets interesting. It is all based on the fact that bitcoin transactions require a certain amount of information to go through, and that information can be obfuscated in ways that a person with no privileged access would need to expend work to access and claim them. This work is called Proto Farming.

Side note: The alpha model of Proto (simplest possible, barely working, no optimizations) involves many small transactions, and does not lend itself to transaction fees. It will probably evolve a bit to be able to "factor out" the small transactions and only expose the bitcoin blockchain to the significant ones. The small transactions may be verified using Proto's own proof of work strategy. But for now assume we are relying on publishing them the normal way.

Proto Farming

Unlike Bitcoin Mining, the process for generating proto is a little more like farming. The investor (planter) puts a certain amount of their bitcoins on the line, along with a corresponding wager of proto. If the bitcoins get passed to another random account, which is cryptographically easy to do with the published info, the proto supply is increased and the person who does the moving (cultivator) is awarded newly created proto, as well as the planter.

If they are removed, which is cryptographically harder but still very possible, the proto portion of the wager is destroyed and the bitcoin is awarded to the harvester. This shows that people with computing resources (harvesters) are willing to work harder for bitcoins than cultivators are for some amount of proto.

More about the mechanism

Planters create a large number of public addresses, and also generate multiple possible transactions based on them. These are then published -- not necessarily spammed to the bitcoin blockchain, but made available to other Proto users who can use them to collect proto or bitcoin.

Before publishing them, they are subjected to weak encryption that will take a small amount of time to break. For example, the last few characters of the address, transaction, and private keys could be missing, but a checksum would be provided so that you can see when you guess the right set of answers.

The cultivators' transactions would be encrypted more weakly than harvesters', giving them a head start. Since bitcoin prevents double-spending, there would be no point in pushing the transaction through any more once the cultivator has moved the funds. Cultivators would have no choice about bitcoin destination address, they would go to a random planter-generated address where the amount of proto is not yet matched by bitcoin.

Glossary

  • Planters -- investors who run the Proto client and deposit bitcoins into the system.
  • Cultivators -- people who choose to keep bitcoins in the Proto system, and get paid in proto.
  • Harvesters -- people who choose to remove bitcoins from the Proto system.
  • Proto -- bitcoin client and network that permits bitcoin to enter and exit at a controlled rate.
  • proto -- token of credit intended to remain value-stable over time, used to reward planters and cultivators.
  • bitcoin -- a scarce, fungible digital commodity with significant market value.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment