Remix.run Logo
__MatrixMan__ 6 days ago

I don't think blockchains are the way forward, but the crypto people had one thing right: The incentive towards providing storage/compute/connectivity for transaction settlement should be built into the protocol, not provided by some corruptible institution. The idea that coins would be mined by the people providing the compute has unacceptable consequences, but it did solve the problem that it set out to solve. So we need something like that, but with fewer problematic side effects.

If I were to take a stab such a protocol, it would live on a web of trust that kept track of interpersonal debts. So if Alice owes Bob, and Bob owes Charlie, then Charlie can "pay" Alice by instructing Bob to cancel both of those debts. In this case Bob is the clearinghouse. Some network connectivity is needed (Alice, Bob, and Charlie all on the same network) but it still works if the internet partitions. We incentivize Bob to keep his device available for this by creating a new debt when the transaction settles: this time it's one where Alice and Charlie owe Bob for having been the transaction processor.

If Bob didn't want to act in this capacity, he wouldn't have trusted Alice and Charlie to begin with. Charlie would then need to find a different path to Alice if he wanted to use the network to pay her. (Presumably they don't trust each other directly, otherwise they'd be creating new debts instead of cancelling transitive ones). In this scenario I suppose Bob would be acting as "censor" but his capacity to do so is not greater than any other user of the network.

For Charlie to be fully denied the ability to pay Alice, one of them would have to be behaving so badly that everyone refuses to trust them. That's a desirable outcome, if we must have something like censorship, it should not depend on the feeling of some guy who owns a bank but is otherwise unconnected with the parties of the transaction. It should be decided by the people who are near to Alice and Bob on the trust graph and therefore have to deal with the real world consequences of Alice and Bob's behavior. If they want to collectively prevent those two from doing business, that's their right since it's their community that that business is happening in.

One imagines this featuring in cases where some rich foreigner wants to set up mining operations that would poison the drinking water. The locals can collectively prevent that foreign money from buying local groceries, thereby limiting the ability of the foreign actor to harm them.

So that's my harebrained idea. But I'm not making up fictions and asking people to treat them like money. The people involved with USD are. If they want us to continue participating in their harebrained idea, they should recognize that giving us a system with problematic properties represents a risk that they might lose their privileged position. My point is just that it's on them, the designers of the system, to figure it out how to make it all work--we need only accept or reject it.

immibis 5 days ago | parent [-]

The Circles white paper is something like this. (I heard the Circles project went off the rails, but the original white paper is still there)

__MatrixMan__ 5 days ago | parent [-]

Yeah, circles was the inspiration. I decided to deviate from the Circles design because I want partition tolerance--and you can't do token-issuance-on-a-schedule in a partition tolerant way (no way to agree about what time it is).

immibis 4 days ago | parent [-]

Sure you can, if you can resynchronize the time whenever partitions reconnect.

Some clock drift might even be ignorable. I say it's 5:00 and I have 100 tokens, you say it's 4:55 and I only have 99. Doesn't matter, I'm only spending 5 tokens anyway.

__MatrixMan__ 4 days ago | parent [-]

But how do you decide, when they come back together, which side was right?

I'll confess to sort of making this up as I go along, so I don't have any sources to cite here, but when I sit down and think about it I come to the conclusion that partition tolerance means that when you come across a disagreement of this kind, you can't just let the more powerful partition win (We already have that, both in banking and in blockchains. Snore.)

Consensus has to come from the circumstances of the transaction. What's the intersection of the people I trust with the people you trust? Are there transitive trust pathways between us? Calculate the consensus value based on those pathways. It comes not from whether one of us is backed by a bigger bully, but rather because we've both personally chosen to trust the people that we have, and we've provided incentives for them to continue to be trustworthy.