Cryptocurrency

From Adam Colton
Jump to navigation Jump to search

Notes and thoughts

Verification Selection

This is the linchpin of the whole operation. For BTC, it's accomplished with the hash puzzle. The likelihood of 100 consecutive bad actors is very low and the hash-puzzle evenly distributes who wins. It's also the source of the biggest flaws - uneven access (though much better than traditional banking) and enormous power consumption.

So validation of state can happen in fundamentally two ways; authority and "randomness". Randomness is in one sense easy and one sense hard. It is easy to pseudo-randomly choose and "entry", but it is very difficult to prevent "stuffing the ballot box". The best we can do is have everyone compete to see who has the most entries.

I actually think we can do a bit better with authority using Markov chains. It does require seeding authority. The seed state has every "authority" node equally weighted. Authority nodes can now extend trust to other nodes, including new nodes. Now, through a Markov process, we can find the total trust any node has. Over time, trust is distributed. However, I think this "authority" should not be used directly for block verification but for the distribution of mining credits. Mining credits can be used to verify state.

Dev Coin

The idea here is to nominate open-source project as the "authority seeds". As the worth of commits is continuously evaluated, the projects are granted mining credits. These credits can be traded along with the currency. Forging a block requires a mining credit. Now the "work" portion is valuable, open, contributions to open source projects. But the mining portion stays in place.

This also solves a potential problem of hoarding trust. In what's laid out above, there isn't really an incentive for authority nodes to extend trust. But using OSS, including software is an extension of trust. And the only way to build the best software is to use the best libraries.

Extending trust to emerging applications is tricky.

Proof of Social Good

We start with a set of entities that are good - at that moment in time. I need a precise definition, but the assumption is that rapid changes are rare. So an organization may go from mostly honest to mostly self serving over a few years, but rarely will it do it in a few days.

There is also an incentive for an entity to behave in a manor that is in the best interest of the currency (most of the time) because the mining credits they have will be worth more if the currency is worth more.

The key issues are

  • How to bring in new entities
  • How to redistribute trust

Lets assume that if no one does anything, the trust levels will stay fixed. If one entity extends more trust to another entity, the entity that extended the trust should also gain a small amount of trust.

There should also be a mechanism so that if an entity changes their trust levels and in the near future, the distribution of trust comes more in line with that change, their trust should go up because they have the ability to predict well.

Proposal Based

Any minting ID can make a proposal to change the trust distribution. The proposal should have text, but the algorithm ignores it, instead letting users judge the content and respond. Other minters can indicate how much trust they want to extend or withdraw in accordance with the proposal. They can also extend or withdraw trust to the author of the proposal. And a response can contain text with an explanation. So a response to a response can extend or withdraw to the subject, the author and the responder, and so on to arbitrary depth.

Proposals and responses are validated in the blockchain.

Authority and State

Each transaction block also contains a reference to a state block. Unlike BTC, this provides an anchor so that the entire history doesn't need to be kept. For this to work, each transaction block will also contain signatures for the previous block. Signing a block consumes a mining token. So hundreds of miners may sign a block, but the miner who produces the next block will have an incentive to choose the signatures that gain the most trust. The signatures that are chosen get part of the block payout (of the block they signed, not the block their included in).

This creates some very complex questions about authority. Want we want is "given that A has signed block X what does that say about the probability that the block is valid and will be in the winning chain if a fork occurs". But at the same time, we want to encourage diversity. So there needs to be a mechanism that discourages reusing a signature until several blocks have passed. There also needs to be a mechanism to discourage correlation - the more often two signatures show up on the same block, the less valuable that set of signatures is.

Black Holes

Simple idea - create a "nothing up my sleeve" address in another coin space and any coins sent to that address will be "imported" into the new coin.

Wax Coin

Something I'd like to bring into the Waxnet project at some point. Tightly incorporate a crypto-currency that can be used to pay for thing like network transmissions, storage - all the things that make it tick.