P2P Escrow AAS
🔐

P2P Escrow AAS

P2P Escrow as a Service

Details

Creator

User: Koush eMail: kousha@bitcoinabc.org Telegram: @e_Koush

Overview

📝
This is document is work in progress and will include more information and development plans once the first subtask (Research) has been completed, unlocking further subtasks. So even if you don’t want to work on the entire project, you can help out with research and conceptualizing to unlock further development for others. Check the “Task” section for more info.

The escrow module is meant to be an external service, that can be integrated in any eCash service that has a use for it. Be it a wallet, tipping platform or a p2p exchange or our eBounty platform, anyone should be able to hook up their service to the escrow module.

Some services might just need a simple time-lock (Webtipper), others will need dispute resolution (eBounty) and therefor there should be a dashboard for our moderators to access a contract and make a decision on which of the two eligible parties will get paid out / paid back.

Optimally I would have this module be provided as an escrow as a service which further platforms, wallets and services in the ecosystem can hook up to easily.

How this is done the best and most secure way is basically up to you and can be discussed further. What is important to me however, is that it is able to take a fee in a non-custodial way from every escrow created. A first iteration of this service would be a simple time-lock escrow used for a tipping mechanism, reverting funds back to the sender if the recipient doesn’t redeem it in time.

Concept

This blogpost from localcryptos which utilizes p2p escrow on BTC and BCH also gives you a nice overview of the concept behind implementing Bitcoin based smart contract escrow for the purpose of powering a non-custodial exchange. The escrow is intended to take a fee for the service provided in order to maintain itself and to be able to provide dispute resolution services.

It would be preferable if you have some knowledge on how such covenants work and what type of structure and features are viable/sensible. Also it would be helpful if you tell me what further details and info you would need from me as a developer.

📌
A flowchart of different services I am working on and what features they need and a plan on how this is best implemented will be included, after the first subtask is completed

Notes

Many of my conceptualized services and tools (Webtipper, Cashsuite, Commerce Map and eBounty) would have a need for a simple p2p escrow module enabling transaction dynamics that are impossible with most other crypto services as well as legacy finance. Adding eToken functionality (for stabletoken support) would be a nice to have if possible, but has low priority for the first iteration.

User-Story

(eBounty)

1. User Alice choses from available options for desired escrow service 2. User Alice sends funds to the escrow and locks it, which notifies user Bob 3. User Bob completes tasks, which notifies user Alice 4a. User Alice reviews and confirms the completion of task 5a. escrow unlocks funds and takes predetermined % of fees

Alternatively:

4b. User Alice reviews completion of task and rejects the unlocking of funds 5b. If User Bob disputes the rejection, third party moderators gets notified and resolves the dispute, eventually sending funds to either Alice or Bob 6. Escrow unlocks and sends funds to one party and takes predetermined % of fees

(WebTipper / UberChat)

  1. User tips youtube channel
    1. During Livestream: A chat message is generated: “💸Uberchat Donation💸: $amount in XEC - visit out uberchat.cash to claim your p2p donation”. A copy of the message is sent as email
    2. “Offline”: An email is sent to the content creators channel mail account: “💸Uberchat Donation💸: $amount in XEC - visit out uberchat.cash to claim your p2p donation”
  2. Plugin checks database for corresponding youtube account being signed up already:
    1. If yes, the money will be sent to the corresponding wallet address of the content creator
    2. If not, an escrow address will be generated and linked to the youtube account and the money will be sent there
  3. If content creator is not signed up already, he gets a message in youtube channel discussion inbox and per email from uberchat.cash with the username of tipper and the amount tipped to the escrow address related to his channel - “[..]visit out uberchat.cash to claim”
  4. Content creator signs up channel on uberchat.cash (webwallet generated with wallet linked to youtube channel)
  5. Once corresponding channel is signed up on uberchat database, the XEC donation will be sent from escrow into user custody (web wallet)

Development

Features

- Custom Time Lock (from minutes to years, sent back to payer upon expiration) - Ability for users to communicate before and during the escrow process - Simple Logs - Ability for moderators to communicate with users during dispute - Moderator ability to send funds to either party to resolve disputes - eToken support (specific token IDs), essential for BUX - ability to take service fees (non custodial) The MVP escrow can have less of these features, but I’d like the wireframe to be set up with those in mind.

Tools

Tools and documentation are based on BCH but should be easy to apply on eCash as well. Comment from eCash dev Ethan about the escrow implementation: "It should be via this version (spedn) that can run with bch-js": https://spedn.readthedocs.io/en/latest/bchjs.html documentation on script: http://reference.cash overview on spedn covenants by tendo pein: https://read.cash/@pein/bch-covenants-with-spedn-4a980ed3

Head Hunter Premium

If you forward this Project to a developer and he turns out to complete the main task or subtasks, I am happy to pay you 10% of that given task on top. Please get in touch with me to be eligible for this Head Hunter Reward. https://t.me/e_Koush

Sponsorships

This Project is intended to be fleshed out with a solid development plan to get sponsored by the GNC. Additional to 30M XEC for the first set of tasks. If you want to contribute to this project as an individual sponsor, shoot me a message over telegram. https://t.me/e_Koush

Tasks

Main Task

Create a first iteration of a working P2P Escrow, that can be utilized by eBounty.cash and the Webtipper project.

Subtasks active

Research Tools and create a simple Concept and Development Plan (10M XEC)
Assemble contracts required for Escrow AAS for UX
Create web-app providing a basic Escrow service for p2p trade

Subtasks inactive

Create an Interface / Dashboard for dispute resolution

Reward

If you are interested in working on this project, I would suggest starting with the Research-Subtask (10M XEC), so we can go forward with more solid documentation to assess costs and have a chance for sponsorship to increase the reward beyond current 30M XEC.

Update

Developer Sam Rock has started work on creating and maintaining Escrow templates and is now working on a webapp to apply a base escrow that could be used be individuals/businesses for p2p trading.

See more projects

💾
Content Database