Make your blockchain smart contracts smarter with business rules
4 stars based on
43 reviews
Trade verticals in OpenBazaar refers to types of markets that can be built on top of the platform. In the theory section of the Github ReadmeI have attempted to describe in minor detail how different types of markets can be built on the platform.
One question we are often asked is 'can OpenBazaar support X market? The answer is yes if the terms and conditions can be fully represented in a RC and Bitcoin is being used for the trade in exchange or to collateralise an exchange.
The challenge for market developers is to design RCs that capture the semantic detail of a trade to:. To incentivise good performance by each party, surety bonds can also be written into the contract.
Surety bonds essentially reward or penalise a trading party based on performance criteria, blockchain architecture terms and conditions would be clearly stated within the RC. It is becoming increasingly clear that OpenBazaar will become a powerful platform that will support a variety of peer-to-peer market transactions. One of the most fundamental market transaction types is the auction of blockchain architecture terms and conditions good by a seller to discover the market price.
In this article, we cover one possible way of auctioning a good using Ricardian contracts. It should be noted that this proposal essentially describes the 'back-end' of implementing Ricardian contracts into auctions on OpenBazaar.
It is important that the end-user i. The merchant firstly selects an auction template contract in OpenBazaar. In this type of contract, the product and auction details of the good to be sold are entered into required fields within the JSON or XML file. The product auction details would include:. For example, let's imagine Alice wants to sell a yellow pinata on OpenBazaar. Bob accesses the contract and chooses to bid on the pinata, appending his ID details and the bid price.
Alice may receive five different bids on the yellow pinata and according to her conditions, the originally contract is updated with the latest bid price. At the end of the expiration date of the contract, Alice digitally signs the final winning bid contractsends it to the arbiter for digitally signing and creating a multisignature bitcoin address for the winning bidder, Bob.
If Alice digitally signs the blockchain architecture terms and conditions, the contract is sent to an arbiter for sigining and creation of the multisignature bitcoin address for Bob, the winning bidder, to send funds to. As a reward for hosting the contract, the negotiator node is rewarded by a fee paid for by Alice via another multisignature address setup with anoter arbiter.
If Alice disapproves of how the contract was negotiated by the negotiator node on her behalf, she can simply refuse to sign the contract and raise a dispute to blockchain architecture terms and conditions arbiter for a refund of the fee from the multisignature address. For the seller Aliceshe can have confidence that the funds for the item actually exist once Bob has sent the required amount of bitcoins to the multisignature bitcoin address, upon which she will ship the item to Bob's designated address.
Similarly for Bob, he can retrieve the funds from the multisignature address if he can prove to the arbiter's satisfaction that he goods either did not arrive, or did not arrive in the condition specified in the contract. To further promote good behavior, the arbiter may require a surety bond from blockchain architecture terms and conditions or both parties. The surety bond is a quantity of bitcoins sent from either the buyer or seller or both held in a multisignature bitcoin address that is refundable upon a successful trade.
If a dispute arises, and one party is found to be at malicious fault, the funds within the surety bond are transferred to the arbiter and opposing party as compensation. A non-malicious versus malicous fault may be, for example, a shipping comapany damaging the goods during transport non-malicious versus the seller knowingly sending a damaged good malicious. The value of the surety bond is negotiable and completely optional. A service contract in OpenBazaar replaces a physical good to be sold with the terms and conditions of a service to be performed by one party.
The distinction between a good and service within a Ricardian contract is minimal. Morever, the combination of reputation management and surety bonds can ensure a robust service industry within OpenBazaar.
The final format of a service contract is of course comparable to that of a physical good. Similar to physical goods, there are several discovery mechanisms for services on OpenBazaar. For the sake of simplicity, we will examine two types of service contracts that can be supported in OpenBazaarfollowing the Ricardian contract model:. A call for bids, call for blockchain architecture terms and conditions, or invitation to tender ITT often called tender for short is a special procedure for generating competing offers from different bidders looking to obtain an award of business activity in works, supply, or service contracts Open tenders, open blockchain architecture terms and conditions for tenders, or advertised tenders are open to all vendors or contractors who can guarantee performance.
The first type of contract is an invitation to tender ITTwhereby a client publishes their list of requirements for a desired good or service.
In the context of a service, these details are specified within a Ricardian contract and distributed to potential service providers in the OpenBazaar network. Relevant ITT contract details include:.
The details of the contract can be further negotiated between the parties before a contract is double-signed i. For example, if Alice wanted to deliver some cupcakes to a co-worker on the other side of the city, she writes the following Blockchain architecture terms and conditions as an ITT:. Bob, owner of 'Raven Drone Courier', is interested in securing the contract.
In order for a service provider to place a bid on a contract, they prepare a 'tender' that will append the following details to Alice's contract:. The contract is then sent to Alice. Alice may receive tens or hundreds of bidding contracts to her ITT and can filter the bidding contracts according to their price, delivery time, reputation etc.
Once Alice chooses the winning bid contract, and provided she has not finer details to negotiate, she digitally signs contract and sends copies to the bidder and an arbiter to blockchain architecture terms and conditions the multisignature address.
These applications would issue tenders for goods or services on the TradeNetreceive bids and automatically purchase contracts based on algorithmically-determined conditions factoring in price, proximity, time etc.
This is achievable using Ricardian contracts as they are both human and application readable, permitting human-application exchanges without either party known the true identity of each other if so desired.
The second type of service contract is called a service listingwhere service providers can advertise their services to potential clients in the hope of receiving a quotation request. The service listing will be formatted as a Ricardian contract including the following fields:.
A potential client can request a quote from the a service provider by drawing up a fresh service contract according their requirements that includes a hash of the service listing. The inclusion of the hash indicates that the client is requesting a quote based off the specifications advertised by the service provider's service listing. From here, the contract is negotiated between both parties as described above prior to double and triple digital signing to initate the contract.
A surety bond can be created to cover a failed contract, which either partially or fully remediates the costs of the failed contract for the damaged party. These smaller surety bonds can be called 'good performance bonds' GPB.
For example, GPB may be written to penalise a service provider or supplier for failing to meet a contractually obligated deadline. Another blockchain architecture terms and conditions is a GPB for the client to follow the terms and conditions of the service specified in the contract i.
The GPB can be factored as a deduction for the service provider's fee for the sake of simplicity, which can be carefully monitored by the arbiter. Within the contract, a GPB can be formatted within the following fields using the example above:.
The inclusion of GPBs would occur from the outset of the contract's formation, requiring both parties to digitially sign to indicate their agreement. The arbiter can verify the authenticity and integrity of these terms by both party's digital signatures and contract hashes, as per a normal Ricardian contract. Banks are centralised institutions that, among other things, offer credit to individuals, groups and corporations. Historically, banks were a nexus of borrowers and lenders, matching the supply of liquidity to the demand for credit.
The primary role of a bank was risk management in the form of the due diligence required to assess if a potential borrower was a blockchain architecture terms and conditions investment. With the advent of nation-state money printing and fractional-reserve banking, whereby money is lent into existence and losses are publicly subsidized by inflation and bailouts, the traditional care of risk management for loans has all but been obiliterated.
Peer-to-peer P2P lending has emerged as a means to decentralise the oligopolistic hold that banks possess in every category for lending. Using Bitcoin, blockchain architecture terms and conditions legacy threat is largely eliminated, but introduces new problems in blockchain architecture terms and conditions traditional approach of risk management. The purpose of this article is blockchain architecture terms and conditions suggest possible solutions to these problems and blockchain architecture terms and conditions they might be executed on a pseudonymous censorship-resistant marketplace like OpenBazaar.
As with other goods and services on OpenBazaarthe loan is drawn up as a Ricardian-style contract that I will refer to as the loan contract for the rest of the article. Bob wants to borrow mBTC. The following fields are introduced blockchain architecture terms and conditions the loan contract:. If Alice wants to change the terms of part of the contract, she can write, sign and send a fresh contract to Bob. If Bob disagrees, he can simply ignore the contract, or sign it if the change in terms acceptable e.
Note that this is the only stage where this can happen as blockchain architecture terms and conditions both parties have signed the terms of the contract, it is locked-in as far as dispute resolution is concerned. Bob debtor confirms that the loan will proceed and appends a signed blockchain architecture terms and conditions releasing the funds into his control. For every repayment, Bob appends to the loan contract evidence of the repayment addresses being funded along with the outstanding balance of the loan, until it is paid off.
The process above has thus far described how the loan contract is created and processed for auditing purposes by the arbiter.
However, it has not dealt with how loan contracts will be protected from fraud by bad actors on OpenBazaar. Traditionally, there are two major ways to manage risk for potential loans:. As a credit rating often involves an individual disclosing their income and previous financial dealings to the creditor and other third parties, the concept of a traditional credit rating is incompatible with the goals and purpose of OpenBazaar.
New and innovative solutions are required assess the credit-worthiness of an individual in a pseudonymous marketplace.
A borrower must provide collateral to the creditor before a loan is approved. Collateral can be any blockchain architecture terms and conditions belonging to the borrower that has an equivalent value to the amount being loaned. In case of a credit default, blockchain architecture terms and conditions creditor can physically possess the collateral to recover their losses.
Taking the web of trust concept one step further, OpenBazaar can facilitate peers extending lines of credit to each other. Bob can borrow this money at any time according to the prescribed conditions set by Alice. The funds can be kept in a 2-of-3 multisignature address, using an arbiter as a third signature.
This line of credit can be publicly disclosed and audited by other peers. The aggregate of a pseudonym's line of credit becomes a powerful and informative risk signal for other peers, with risk being inversely proportional to the sum total line of credit. The blockchain architecture terms and conditions of credit can be considered as collateral by a potential creditor, knowing that a pseudonym's line of credit can be called upon to satisfy a renumberation of second loan.
For individual extending lines of credit, they have an opportunity to invest in successful and well-regarded trade partners. In OpenBazaarcollateral can be transferred by digitally signing possession of a user-created asset, represented by a Ricardian contract.
Briefly, Jack may posses 0. Jack writes a contract stating that he has possession of 0. To sign ownership blockchain architecture terms and conditions that contract to another individual, Jill, Jack can create a fresh contract with the following data:. The new contract is then digitally signed with Jack's private key. Now, this entire process assumes that Jack actually has 0.
The burden of proof will be on Jack to demonstrate to Jill that contract is valid.