Friday, May 11, 2018

Trade without trust using block-chain technology

I wrote about this at angrybearblog, but I think I might have joked too much and besides I was ignorant then.

The question is whether there is some feature of blockchains which makes the technology useful if no one trusts anyone else.

I am responding to a brilliant skeptical essay by Kai Stinchcombe. There is an implicit challenge in the essay.

There is no single person in existence who had a problem they wanted to solve, discovered that an available blockchain solution was the best way to solve it, and therefore became a blockchain enthusiast.

I want to try to meet this challenge here in this post. There is a strong hint here (sadly criminal but it doesn’t have to be).

Same with Silk Road, a cryptocurrency-driven online drug bazaar. The key to Silk Road wasn’t the bitcoins (that was just to evade government detection), it was the reputation scores that allowed people to trust criminals. And the reputation scores weren’t tracked on a tamper-proof blockchain, they were tracked by a trusted middleman!

So the challenge is how to have trade without a trusted middleman ?

I think the key aspect of blockchains which is useful for this purpose -- every transaction involves at least three agents, two who contract with each other and a third who makes the block (solving the proof of work problem). This third party is not known to the first two. Furthermore, her claim to have made a valid block is checked by the other blockmakers (called miners in the case of bitcoin). This means that there is a third party who is identified ex post but not when the contract is created and who does not have to be trusted (because her work can be checked). This can be very useful for designing incentive contracts for the other two parties.

Basically, the idea is that if one party asserts that the other has broken the contract or cheated, then the cryptocurrency involved is awarded to the block maker who records that accusation. This makes it possible for each party to punish the other, but does not create an incentive for false accusations -- because the party which gains if there is an accusation is unknown to the accuser so no collusion is possible.

I will describe this in the case of sale of a good or service. Agent A wants to buy the good. The algorithm is:

A describes the good and makes a bid to pay for it listing two dates T1 and T2, three quantities of cryptocurrency which A claims to own X1, X2 and X3, and a fourth quantity X4. T1 is the date the good must be delivered.

Agent A can offer this payment to a specific agent B or can make a general bid that any agent can accept by posting X4.

The bid and acceptance are a tentative draft transaction.

update: They are recorded in the blockchain in the block made by block maker 1 who then owns X2 cryptocurrency end update:

At any time between T1 and T2,Agent A can post a complaint saying the good was not delivered or it was of unacceptably low quality. A complaint is any text which refers to the tentative transaction and includes the word "complaint".

if no complaint is posted by A and T2 has passed, then Agent B can spend X1 and X4 is returned to agent B (the seller), the block maker gets X2, X3 is available again to the to the buyer.

If A files a complaint, then the bid, acceptance and complaint are recorded in the blockchain by block maker 2. The block maker2 owns X1+X3+X4 so the buyer and seller lose all of the posted cryptocurrency.

The quantities X1,X2, X3 and X4 can be positive, zero or negative. Typically X2,X3 and X4 will be small positive numbers. If A has a reputation for not complaining without good reason, then X3 can be zero or even negative (A can propose a contract in which A gets a money back if not satisfied guarantee, it is fairly likely that no seller will accept this offer, but the algorithm allows it).

An alternative parallel use is the advertisement with guarantee. Agent B offers to sell a good for price X1 plus fee X2, deposit required from the buyer X3 and promising to pay additional penalty X4 if the buyer who accepts the offer posts a complaint. If anyone accepts the offer and has X1 + X2+X3 then the contract is just as above. It doesn't matter whether a seller makes an offer and a buyer accepts or a buyer makes a bid and the seller accepts. Again agent B can make the offer to a specified agent A or can make a general offer which can be accepted by anyone who has X1+X3 cryptocurrency

I think this pretty much solves the problem of how can we trade without (much) trust. If the buyer loses an additional X3 for complaining, then the buyer does not have an incentive to file false complaints. I must assume that some peoplea are willing to pay a tiny fee to penalize a seller who doesn't deliver. X3 will be a number worth something like 1 Euro. This means that misbehavior is only punished (by people who pay a small fee to do so) if people get angry when they are cheated. People who don't get angry when cheated can participate in the system, but they are bluffing -- making a threat to complain even though they will never actually complain. People who gain a reputation as wimps who don't complain when cheated will be cheated until they learn to avoid using the techology. That is, agents can develop reputations, and they can be valuable (compared to being a new participant) or costly.

The fee for filing a complaint X3 is freely proposed by the agents. A trusted seller may be able to get buyers after setting a fairly high X3 to prevent nuisance complaints and posting X4 = 0. A trusted buyer can get the good posting X3 = 0 (or maybe even less if really trusted). The 4 parameters make it possible for people to trade even if no one trusts them or to gain an advantage if they are trusted.

The key to the proposal and the reason it must involve blockchains is that penalties are paid to the block maker who records the complaint. The identity of the block maker is not known to the agents until the block recording the complaint is made. Agents have no reason to care about the block maker and no way to collude with the block maker. Since the block maker is just checking public information, the block maker does not have to be trusted. The block makers must check that agents have the cryptocurrency they post (as they currently do for BitCoin etc), that a bid (or offer) was made, that it was accepted, and, in the case of the block maker who records complaints, that a complaint was or was made by a published time T2. As usual, the block makers must also solve proof of work problems.

Throughout I am assuming agents' have a secret key so no one but agent A can file a complaint. I stress that agent A is not required to present any evidence that the complaint is valid. Any reference to the contract which includes the word "complaint" and is sent out by agent A counts as an official final complaint.

The buyer and seller may communicate privately to make sure they agree on what B promises to deliver to A. A sensible seller may wish to do this before accepting a bid. These communications have no effect on the final ownership of cryptocurrency.

The problem with the proposal is that the contracts are potentially vulnerable to renegotiation. A dissatisfied buyer and a seller both lose if the buyer files a complaint so relative to that they gain if the seller gives the buyer some of her money back in exchange for no complaint (this would be a private transaction hidden from the other participants in the system). I do not think this is a problem. The reason is that they buyer can not sign a contract renouncing the right to complain. A dissatisfied buyer may take half her money back then complain being angry both at the poor good or service and the attempt to renegotiate. Also a seller who tries this may get a reputation as a crook.

The problem is the dishonest buyer who theatens to complain and demands a refund or else. This is not likely to be a huge problem as the threat is a bluff. Actually complaining is costly to the buyer. A reputation for making such threats is costly to the buyer. A reputation for giving in to such threats is extremely costly to the seller.

If the buyer can present proof to the seller that the good was no good, then that proof and a threat might cause renegotion. this would not be a problem at all; the block maker would end up with less wealth as no complaint is filed, but the buyer and seller have reached an agreement based on evidence both consider to be convincing.

I think the system works without trust. It does require two things. One is that most people generally tell the truth if they don't have an incentive to lie. The other is that people who genuinely feel they were cheated are angry and willing to pay a small fee to punish the person who cheated them. I think both of these assumptions about psychology are highly plausible and supported by solid experimental evidence.

update2: I think I just rediscovered the concept of a smart contract (note I definitely didn't know what smart contracts are (or will be if none now exist) when I wrote the older post). I think my proposal differs from other smart contract proposals in a few ways which I will now explain.

First, I think the standard idea is that the seller gets X1 if some proof of fulfilment of the contract appears in the blockchain after the block recording the contract. In my proposal, the seller gets X1 if T2 passes without a complaint. In the standard proposed smart contract, a contract recorded in the blockchain without any additional proof of fulfilment works as escrow -- neither party can spend the cryptocurrency until they agree on who owns it. My honest guess is that people won't like a deadline T2 and will not use my proposal. But I think it is useful. The reason is that it limits renegotiation. If a buyer threatens to complain unless she is given a partial refund (and the seller thinks the complaint would be invalid and the threat is an attempt at fraud by renegotiation which I will call "Trumping") then the seller can call the bluff by doing nothing until T2 passes. If control the cryptocurrency is in escrow until the parties reach agreement, then dishonest buyers can Trump (that is do what Donald Trump regularly did). A reputation for threatening to complain and then actually complaining is costly to the buyer (like Trump such buyers will end up dealing only with people who enforce contracts with violence), so I think threats which are bluffs will actually be called.

The other thing that might be unusual about my proposal is that the buyer has final authority to keep cryptocurrency from the seller without having to offer any proof. Block makers just have to check if there has been a complaint. I think this is an important advantage. I think it is essential that it is easy to see if a proposed block is a valid block. Blockchains are maintained not just by the agent who mines the new block and gets a reward, but also by many other agents who verify new blocks and add them to their copies of the blockchain just to keep their blockchain updated so they can keep competing to make the next block. This means it is important that verifying blocks is easy and almost all of the work involved in making a block is solving the proof of work problem. Sellers may collect and communicate extensive information about the production and delivery of the good or service in order to convince buyers that they have done a good job. But there is no need to record this information in the blockchain. I would suggest that, if collected, it be sent privately to the buyer.

Finally, I have payment to seller if there is no complaint. An equally simple proposal would transfer X1 to the seller if the buyer reported satisfaction before T2 (say with a reference to the contract and text including the word "satisfied"). That isn't important. What is important is that they buyer promisees to sacrifice X3 to a block maker in order to penalize the seller for bad performance.

1 comment:

  1. Icoguide9:20 AM

    Hello here is easy way how to buy crypto
    https://icoguide.com/en/blog/the-best-ways-to-buy-cryptocurrencies

    ReplyDelete