Is an Escrow service possible with Grin? If not, What is missing in order to build it?
Escrow service is a very general term. What specific properties/behaviours do you have in mind?
The escrow would act as an intermediary between consumer and store. If there is an issue with the product, the consumer get’s their money back, etc.
Basically exactly like this: https://bitescrow.app/
That site claims the escrow is handled by a smart contract.
The buyer inspects the goods or services and confirms that they are satisfactory.
So what if the buyer (either truthy fully or falsely) claims the goods are not satisfactory? How does the escrow service decide who is right?
This is the #1 question about an escrow service and the webpage doesn’t even mention it.
For the fun of it, lets just compare how an escrow with grin would function compared to large escrow services such credit-card or debit-card companies.
Such a service provider could function either as an intermediary (not so private), or as a verifier in dispute settlement (more private).
As I understand it, there is not much of a difference when using Grin as compared to fiat as long as you generate proper payment proofs. When you pay in grin you can generate a payment proof with a memo that specifies the order number and both sender and receiver address, proving you paid to a certain address and that a payment is associated to a specific order number.
The only other thing that is needed on top of that is a verification services where you as company register/verify your grin address as being associated to your company, similar to how fiat bank addresses are associated to an entity. The rest is like a reputation system. When a company is multiple times in a dispute, it gets penalized by for example reducing their trust score, freezing financial assets (could be a fiat or crypto collateral) or sending a bailiff.
Doing a decentralized escrow is more tricky. I know there are enough crypto escrow services but I never get how they ‘remotely’ can check the physical reality if someone for example denies having received goods? They need a lot of access from for example shipping companies as well as access to a sort of rating system and perhaps collateral or they need to always play the middle man.
For now I think we could keep it more simple. Lets say one or more web-store would start offering payment in Grin. Forum users could associate a rating score or share their experience as ‘verified’ accounts to give an indication of trustworthiness. But first we would need stores who offers payment in Grin whether those are manually managed or with a payment plugin.
There are humans running the escrow service. There is human involvement at that point. I don’t think it mentions it because they assume that it’s obvious.
The end goal is that there are multiple different escrow services that compete for the best reputation. Similar to credit card companies, some of them may be known to favor the consumer instead of the brand or vice versa.
One thing I do like to mention is that blockchains that work with ID systems, such as Verus, might be better suited for escrow systems, simply because users have to invest to buy an ID. Lets say such an ID gets a bad reputation, that means the buyer or seller loses trust and as such money. Grin does not work with ID’s, nor should it, so the best we can do is linking a users addresses to an entity and giving ratings. Furthermore, trusted community members can function as middlemen in escrow services. I remember a while back such services were also offered at slatepackmarket (offline at the moment).
Grin’s payment proofs use IDs :
payment_info structure will contain:
sender_address- An ed25519 public key generated by the sender.
receiver_address- An ed25519 public key for the receiver, typically the public key of the user’s v3 onion address.
the ID system would be between the escrow agency and the consumer, right? The merchant shouldn’t be able to see the consumer ID themselves.
That way, the escrow agency can see the likelihood of someone trying to commit fraud. Sort of like how Steam can see how often you are trying to return games and see if you’re gaming the system etc
As far as I understand, the escrow agency would see your ID but not your delivery address. The merchant would see your delivery address but not your ID.
It’s a nice separation of concerns that would make me want to use an escrow just for this added privacy, ironically
You are right @tromp ,Grin does uses IDs. I did not properly explain myself. What I wanted to highlight is that there is no cost for creating a new ID in Grin. A consumer could for example claim each time not to have received goods since it is trivial to create a new wallet/ID, an escrow would not know it was the same customer. Any bad reputation would not be associated to them unless a central service or escrow would store physical addresses of customers who start a dispute. If creating an ID or account costs money, like in Verus, there is an intensive not to get a bad reputation associated to an ID since making new ID’s is costly. Grin could make it more costly to create IDs by putting a cost to registering an address with an escrow.
For stores it should be less of a problem since it could be noticed if they change their address/ID, meaning it would be more costly to switch IDs. They would have to create a new web-store for example if they accumulated to much bad reputation. But also here an escrow could ask for a fee to register with them.