SlideShare a Scribd company logo
OpenBazaar
Ricardian Contracts
Digital Content
1
2
3
Step 1: Vendor makes a listing
Listing
4
Step 1: Vendor makes a listing
Metadata
1. OBCV
• OpenBazaar contract version
• Contract schemas may evolve over time and it may be
necessary to track what version of the contract is being
used
2. Expiry
• The date until the contract is a valid listing
3. Category
• Category of Ricardian Contract
• Current categories: physical goods, digital goods, services
• More categories will appear with time
4. Sub-category
• At the moment, sub-category refers to the type of
payment model
• Future sub-categories: auction, barter etc
5
Step 1: Vendor makes a listing
ID (Vendor details)
1. GUID
• OpenBazaar network ID
2. Pubkeys
• Bitcoin: multisig signing key
• PGP: transportable identity if the vendor has >1 node
3. Passcard
• Onename’s Passcard username
• Used to establish broader ID of the Vendor
6
Step 1: Vendor makes a listing
Digital Content
1. Title
• Name of the item
2. Description
• Character limited description of the item
3. Price
• Bitcoin: shipping fee in bitcoin
• Fiat: shipping fee in fiat that the bitcoin price floats to
4. Images
• Image hash: SHA256 hash of the image to lock in identity of the
image
• Image URLs: if not locally hosted by the Vendor’s node
5. Keywords
• Used for reverse-lookup on the distributed hash table (i.e.
search)
6. Process Time
• The maximum predicted time it will take a Vendor to ship the
item after receiving an order
7. Ephemeral
• Defines how long the content is available for (time, downloads)
if applicable
7
Step 1: Vendor makes a listing
Moderator
1. GUID
• OpenBazaar network ID
2. Pubkeys
• PGP: transportable identity if the Moderator has
>1 node
• Escrow Pubkey: public key combined with the
buyer’s 32 byte chain code to generate
Moderator’s multisignature signing key
3. Passcard
• Onename’s Passcard username
• Used to establish broader ID of the Vendor
4. Service
• Service fee: percentage or flat fee per transaction
• Service description: activities and terms of service
8
Vendor cryptographic keys shown in
‘01_listing’ are used to digitally sign all of
the ‘01_listing’ data, which proves that the
owner of the keys created this data
Step 1: Vendor makes a listing
{"01_metadata":{"01_obcv":"","02_expiry":"","03_category":"physical good","04_category_sub":"fixed
price"},"02_id":{"01_guid":"","02_pubkeys":{"bitcoin":"","pgp":""},"03_passcard":""},"03_item":{"01_tit
le":"","02_description":"","03_condition":"","04_price":{"bitcoin":"","fiat":{"01_price":"","02_currency
_code":""}},"05_images":{"image_hashes":[""],"image_urls":[""]},"06_keywords":[""],"07_process_time
":""},"04_shipping":{"01_free":false,"02_flat_fee":{"01_bitcoin":{"01_domestic":"","02_international":"
"},"02_fiat":{"01_price":{"01_domestic":"","02_international":""},"02_currency_code":""}},"03_est_deli
very":{"01_domestic":"","02_international":""},"04_api":{"01_api_src":"Shippo","02_carriers":["FedEx",
"UPS"],"03_package":{"01_length":"","02_width":"","03_height":"","04_distance_unit":"","05_weight":
"","06_mass_unit":""},"04_shipping_origin":{"01_country":"","02_zip":""}}},"05_moderator":{"01_guid"
:"","02_pubkeys":{"pgp":"","pgp_sig":"sig(selfsig_pubkey)","pubkey":"xxx"},"03_passcard":"","04_servic
e":{"01_service_fee":"","02_service_desc":""}}}
What it looks
like in JSON
9
10
Stage 2: Buyer places an order
2. Buyer places an order, funds multisig address (funds are now in
escrow)
Buyer generates a 32 byte chain code, combines with Moderator
public key to generate a pubkey for the Moderator. The Moderator
can generate the private key in the event of a dispute after the 32
byte chain code is disclosed. Multisignature escrow address can now
be generated from the Vendor, Buyer and Moderator’s pubkeys.
11
Stage 2: Buyer places an order
2. Buyer places an order, funds multisig address (funds are now in
escrow)
Buyer generates a 32 byte chain code, combines with Moderator
public key to generate a pubkey for the Moderator. The Moderator
can generate the private key in the event of a dispute after the 32
byte chain code is disclosed. Multisignature escrow address can now
be generated from the Vendor, Buyer and Moderator’s pubkeys.
Reference Hash
1. Reference
• Contract ID (listing) that the order applies to
• Example:
• RIPEMD-160(01_vendor): cca4b4bf91a16ee76e1944624c4f7c0f8729a6f1
• Base58(RIPEMD-160[01_vendor]): 3rMrSZ2VDgb63ZvgEsdVjiscXurg
• Final: OB3rMrSZ2VDgb63ZvgEsdVjiscXurg
12
Stage 2: Buyer places an order
2. Buyer places an order, funds multisig address (funds are now in
escrow)
Buyer generates a 32 byte chain code, combines with Moderator
public key to generate a pubkey for the Moderator. The Moderator
can generate the private key in the event of a dispute after the 32
byte chain code is disclosed. Multisignature escrow address can now
be generated from the Vendor, Buyer and Moderator’s pubkeys.
ID (Buyer)
1. Pubkeys
• Unlike the Vendor, the Buyer is only identified in
the contract by their bitcoin signing key
• Bitcoin: multisig signing key
13
Stage 2: Buyer places an order
2. Buyer places an order, funds multisig address (funds are now in
escrow), and send shipping address
Buyer generates a 32 byte chain code, combines with Moderator
public key to generate a pubkey for the Moderator. The Moderator
can generate the private key in the event of a dispute after the 32
byte chain code is disclosed. Multisignature escrow address can now
be generated from the Vendor, Buyer and Moderator’s pubkeys.
Digital Content
1. Semantics
• Any data the buyer needs to give to the Vendor
to make a purchase
• E.g. Quality
14
Stage 2: Buyer places an order
2. Buyer places an order, funds multisig address (funds are now in
escrow), and send shipping address
Buyer generates a 32 byte chain code, combines with Moderator
public key to generate a pubkey for the Moderator. The Moderator
can generate the private key in the event of a dispute after the 32
byte chain code is disclosed. Multisignature escrow address can now
be generated from the Vendor, Buyer and Moderator’s pubkeys.
Multisignature Details
1. Chain code
• 32 bytes of random data used to generate the
Moderator’s multisig signing public key
2. Multisignature address
• Multisig address generated from the Vendor,
Buyer and Moderator’s bitcoin pubkeys
3. Redemption script
• To verify that the multisig address is comprised
of the pubkeys listed in the contract
4. Transaction ID (txid)
• Evidence that the Buyer has funded the
multisignature address with the purchase
amount in the listing
• Optional, in the sense that if the payment is
made from the Bitcoin purse, the TXID can be
automatically filled in
15
Stage 2: Buyer places an order
2. Buyer places an order, funds multisig address (funds are now in
escrow), and send shipping address
Buyer generates a 32 byte chain code, combines with Moderator
public key to generate a pubkey for the Moderator. The Moderator
can generate the private key in the event of a dispute after the 32
byte chain code is disclosed. Multisignature escrow address can now
be generated from the Vendor, Buyer and Moderator’s pubkeys.
Signatures
• Bitcoin
• Multisig signing key of the Buyer is used to
sign JSON data from ‘02_buyer.01_order’
16
17
Step 3: Vendor ships the item
3. Vendor indicates that the order is processed and a URL
to the digital content is sent; sends a signed transaction
releasing funds from escrow to their payout address
(signature required from Buyer or Moderator to release
funds after item delivered)Alice
The Vendor
18
Step 3: Vendor ships the item
3. Vendor indicates that the order is processed and a URL
to the digital content is sent; sends a signed transaction
releasing funds from escrow to their payout address
(signature required from Buyer or Moderator to release
funds after item delivered)Alice
The Vendor
Reference Hash
1. Reference
• Contract ID (order) that the data
applies to
19
Step 3: Vendor ships the item
3. Vendor indicates that the order is processed and a URL
to the digital content is sent; sends a signed transaction
releasing funds from escrow to their payout address
(signature required from Buyer or Moderator to release
funds after item delivered)Alice
The Vendor
Source
1. Content Source
• Encrypted URL: link for the Buyer to download,
stream, or access the digital content; XOR’d with
a nonce encrypted with the Buyer and
Moderator’s public key
• Encrypted Password: password to the content, if
any; XOR’d with a nonce and encrypted with the
Buyer and Moderator’s public key
• SHA256 nonce: necessary to determine the URL
and password; used to verify against
• Encrypted nonce: nonce encrypted to the Buyer’s
public key
2. Payout
• Payout address: Vendor’s bitcoin address where
the multisig funds will be released to after the
item is delivered
• Signed transaction: signed transaction releasing
funds from multisig to the payout address;
requires only 1 more signature from Buyer or
Moderator to be accepted
20
Step 3: Vendor ships the item
3. Vendor indicates that the order is processed and a URL
to the digital content is sent; sends a signed transaction
releasing funds from escrow to their payout address
(signature required from Buyer or Moderator to release
funds after item delivered)Alice
The Vendor
Signatures
• Bitcoin
• Multisig signing key of the Vendor is used to sign JSON
data from ‘03_vendor.01_invoice’
• PGP
• PGP key of the Vendor is used to sign JSON data from
‘03_vendor.01_invoice’
21
22
Step 4: Buyer confirms item received
Bob
The Buyer
4. Buyer indicates that the content was accessible;
signs transaction and release funds from multisig to
the Vendor. Attaches rating/review.
23
Reference Hash
1. Reference
• Contract ID (shipping notice) that the
data applies to
Step 4: Buyer confirms item received
Bob
The Buyer
4. Buyer indicates that the content was accessible;
signs transaction and release funds from multisig to
the Vendor. Attaches rating/review.
24
Digital Content
1. Received
• Was the digital content accessible
(Boolean)?
Step 4: Buyer confirms item received
Bob
The Buyer
4. Buyer indicates that the content was accessible;
signs transaction and release funds from multisig to
the Vendor. Attaches rating/review.
25
Payout
1. Signed transaction
• The Buyer-signed transaction from the
Vendor (in `03_vendor`) that releases funds
from multisig to the Vendor’s payout
address
2. Transaction ID (txid)
• Reference to the bitcoin transaction
releasing funds from multisig
• Automatically done if there is a
Bitcoin Purse
Step 4: Buyer confirms item received
Bob
The Buyer
4. Buyer indicates that the content was accessible;
signs transaction and release funds from multisig to
the Vendor. Attaches rating/review.
26
Rating
1. Transaction rating
• Select from choices:
• Positive
• Neutral
• Negative
2. Content quality
• Rate out of 5 stars
3. Content description
• Rate out of 5 stars
4. Customer service
• Rate out of 5 stars
5. Feedback
• Character limited text reviewing the
transaction
Step 4: Buyer confirms item received
Bob
The Buyer
4. Buyer indicates that the content was accessible;
signs transaction and release funds from multisig to
the Vendor. Attaches rating/review.
27
Step 4: Buyer confirms item received
Bob
The Buyer
4. Buyer indicates that the content was accessible;
signs transaction and release funds from multisig to
the Vendor. Attaches rating/review.
Dispute
1. Dispute
1. Does the Buyer flag a dispute? (boolean)
2. Claim
• If there is a dispute, what does the Buyer
claim as the grievance?
28
Signatures
• Bitcoin
• Multisig signing key of the Vendor is used to sign
JSON data from ‘04_buyer.01_receipt’
Step 4: Buyer confirms item received
Bob
The Buyer
4. Buyer indicates that the content was accessible;
signs transaction and release funds from multisig to
the Vendor. Attaches rating/review.

More Related Content

What's hot

Secure electronic transaction
Secure electronic transactionSecure electronic transaction
Secure electronic transaction
Nishant Pahad
 
Secure electronic transactions (SET)
Secure electronic transactions (SET)Secure electronic transactions (SET)
Secure electronic transactions (SET)
Omar Ghazi
 
Mb2420032007
Mb2420032007Mb2420032007
Mb2420032007
IJERA Editor
 
IRJET - Framework for Realtime Bitcoin Transaction
IRJET -  	  Framework for Realtime Bitcoin TransactionIRJET -  	  Framework for Realtime Bitcoin Transaction
IRJET - Framework for Realtime Bitcoin Transaction
IRJET Journal
 
Hyperledger fabric architecture
Hyperledger fabric architectureHyperledger fabric architecture
Hyperledger fabric architecture
Celine George
 
Secure payment systems
Secure payment systemsSecure payment systems
Secure payment systemsAbdulaziz Mohd
 

What's hot (6)

Secure electronic transaction
Secure electronic transactionSecure electronic transaction
Secure electronic transaction
 
Secure electronic transactions (SET)
Secure electronic transactions (SET)Secure electronic transactions (SET)
Secure electronic transactions (SET)
 
Mb2420032007
Mb2420032007Mb2420032007
Mb2420032007
 
IRJET - Framework for Realtime Bitcoin Transaction
IRJET -  	  Framework for Realtime Bitcoin TransactionIRJET -  	  Framework for Realtime Bitcoin Transaction
IRJET - Framework for Realtime Bitcoin Transaction
 
Hyperledger fabric architecture
Hyperledger fabric architectureHyperledger fabric architecture
Hyperledger fabric architecture
 
Secure payment systems
Secure payment systemsSecure payment systems
Secure payment systems
 

Similar to OpenBazaar Ricardian Contracts - digital content

Blockchain presentation.pptx
Blockchain presentation.pptxBlockchain presentation.pptx
Blockchain presentation.pptx
SwarnaSLcse
 
Introduction to Bit Coin Model
Introduction to Bit Coin ModelIntroduction to Bit Coin Model
Introduction to Bit Coin Model
Asoka Korale
 
Payment card security By Hitesh Asnani SVIT
Payment card security By Hitesh Asnani SVITPayment card security By Hitesh Asnani SVIT
Payment card security By Hitesh Asnani SVIT
hiteshasnani94
 
Bitcoin 101 - Certified Bitcoin Professional Training Session
Bitcoin 101 - Certified Bitcoin Professional Training SessionBitcoin 101 - Certified Bitcoin Professional Training Session
Bitcoin 101 - Certified Bitcoin Professional Training Session
Lisa Cheng
 
Digital signature and adv payment gateway
Digital signature and adv payment gatewayDigital signature and adv payment gateway
Digital signature and adv payment gateway
Kartik Kalpande Patil
 
secure electronics transaction
secure electronics transactionsecure electronics transaction
secure electronics transaction
Harsh Mehta
 
Bitcoin data mining
Bitcoin data miningBitcoin data mining
Bitcoin data mining
malathieswaran29
 
Blockchain and Bitcoin
Blockchain and BitcoinBlockchain and Bitcoin
Blockchain and Bitcoin
Hugo Rodrigues
 
Electronic Payment Protocol
Electronic Payment ProtocolElectronic Payment Protocol
Electronic Payment Protocol
Aju Thomas
 
Block chain introduction
Block chain introductionBlock chain introduction
Block chain introduction
Nagendra Kumar Y
 
Bitcoin apa apa saja tentang bitcoin
Bitcoin apa apa saja tentang bitcoinBitcoin apa apa saja tentang bitcoin
Bitcoin apa apa saja tentang bitcoin
seolangit7
 
Bitcoin
BitcoinBitcoin
Bitcoin
seolangit4
 
Anatomy of a blockchain
Anatomy of a blockchainAnatomy of a blockchain
Anatomy of a blockchain
Avtar Sehra
 
Introduction to Blockchain and Cryptocurrencies
Introduction to Blockchain and CryptocurrenciesIntroduction to Blockchain and Cryptocurrencies
Introduction to Blockchain and Cryptocurrencies
Tarek Mahran, TOGAF, PMP, ITIL, BPM
 
Blockchain Essentials - Harnessing the Technology for Banking Industry
Blockchain Essentials - Harnessing the Technology for Banking IndustryBlockchain Essentials - Harnessing the Technology for Banking Industry
Blockchain Essentials - Harnessing the Technology for Banking Industry
Goutama Bachtiar
 
Implementing OAuth with PHP
Implementing OAuth with PHPImplementing OAuth with PHP
Implementing OAuth with PHP
Lorna Mitchell
 
An Efficient Buyer - Seller Protocol to Identify the Perpetrator
An Efficient Buyer - Seller Protocol to Identify the PerpetratorAn Efficient Buyer - Seller Protocol to Identify the Perpetrator
An Efficient Buyer - Seller Protocol to Identify the Perpetrator
IDES Editor
 
Crypto currency
Crypto currencyCrypto currency
Crypto currency
Nibas Nazeem
 
qr code (1).pptx
qr code (1).pptxqr code (1).pptx
qr code (1).pptx
ShrutiGargIIT
 

Similar to OpenBazaar Ricardian Contracts - digital content (20)

Blockchain presentation.pptx
Blockchain presentation.pptxBlockchain presentation.pptx
Blockchain presentation.pptx
 
Introduction to Bit Coin Model
Introduction to Bit Coin ModelIntroduction to Bit Coin Model
Introduction to Bit Coin Model
 
Payment card security By Hitesh Asnani SVIT
Payment card security By Hitesh Asnani SVITPayment card security By Hitesh Asnani SVIT
Payment card security By Hitesh Asnani SVIT
 
Bitcoin 101 - Certified Bitcoin Professional Training Session
Bitcoin 101 - Certified Bitcoin Professional Training SessionBitcoin 101 - Certified Bitcoin Professional Training Session
Bitcoin 101 - Certified Bitcoin Professional Training Session
 
Digital signature and adv payment gateway
Digital signature and adv payment gatewayDigital signature and adv payment gateway
Digital signature and adv payment gateway
 
secure electronics transaction
secure electronics transactionsecure electronics transaction
secure electronics transaction
 
Bitcoin data mining
Bitcoin data miningBitcoin data mining
Bitcoin data mining
 
Blockchain and Bitcoin
Blockchain and BitcoinBlockchain and Bitcoin
Blockchain and Bitcoin
 
Electronic Payment Protocol
Electronic Payment ProtocolElectronic Payment Protocol
Electronic Payment Protocol
 
Block chain introduction
Block chain introductionBlock chain introduction
Block chain introduction
 
Bitcoin apa apa saja tentang bitcoin
Bitcoin apa apa saja tentang bitcoinBitcoin apa apa saja tentang bitcoin
Bitcoin apa apa saja tentang bitcoin
 
Bitcoin
BitcoinBitcoin
Bitcoin
 
Anatomy of a blockchain
Anatomy of a blockchainAnatomy of a blockchain
Anatomy of a blockchain
 
Introduction to Blockchain and Cryptocurrencies
Introduction to Blockchain and CryptocurrenciesIntroduction to Blockchain and Cryptocurrencies
Introduction to Blockchain and Cryptocurrencies
 
Blockchain Essentials - Harnessing the Technology for Banking Industry
Blockchain Essentials - Harnessing the Technology for Banking IndustryBlockchain Essentials - Harnessing the Technology for Banking Industry
Blockchain Essentials - Harnessing the Technology for Banking Industry
 
Implementing OAuth with PHP
Implementing OAuth with PHPImplementing OAuth with PHP
Implementing OAuth with PHP
 
Oauth Php App
Oauth Php AppOauth Php App
Oauth Php App
 
An Efficient Buyer - Seller Protocol to Identify the Perpetrator
An Efficient Buyer - Seller Protocol to Identify the PerpetratorAn Efficient Buyer - Seller Protocol to Identify the Perpetrator
An Efficient Buyer - Seller Protocol to Identify the Perpetrator
 
Crypto currency
Crypto currencyCrypto currency
Crypto currency
 
qr code (1).pptx
qr code (1).pptxqr code (1).pptx
qr code (1).pptx
 

Recently uploaded

LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
lorraineandreiamcidl
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
Globus
 
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptxText-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
ShamsuddeenMuhammadA
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
Globus
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
Łukasz Chruściel
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Crescat
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
Google
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Globus
 
AI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website CreatorAI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website Creator
Google
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)
abdulrafaychaudhry
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Łukasz Chruściel
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
Google
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus
 

Recently uploaded (20)

LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
 
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptxText-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
 
AI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website CreatorAI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website Creator
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
 

OpenBazaar Ricardian Contracts - digital content

  • 2. 2
  • 3. 3 Step 1: Vendor makes a listing Listing
  • 4. 4 Step 1: Vendor makes a listing Metadata 1. OBCV • OpenBazaar contract version • Contract schemas may evolve over time and it may be necessary to track what version of the contract is being used 2. Expiry • The date until the contract is a valid listing 3. Category • Category of Ricardian Contract • Current categories: physical goods, digital goods, services • More categories will appear with time 4. Sub-category • At the moment, sub-category refers to the type of payment model • Future sub-categories: auction, barter etc
  • 5. 5 Step 1: Vendor makes a listing ID (Vendor details) 1. GUID • OpenBazaar network ID 2. Pubkeys • Bitcoin: multisig signing key • PGP: transportable identity if the vendor has >1 node 3. Passcard • Onename’s Passcard username • Used to establish broader ID of the Vendor
  • 6. 6 Step 1: Vendor makes a listing Digital Content 1. Title • Name of the item 2. Description • Character limited description of the item 3. Price • Bitcoin: shipping fee in bitcoin • Fiat: shipping fee in fiat that the bitcoin price floats to 4. Images • Image hash: SHA256 hash of the image to lock in identity of the image • Image URLs: if not locally hosted by the Vendor’s node 5. Keywords • Used for reverse-lookup on the distributed hash table (i.e. search) 6. Process Time • The maximum predicted time it will take a Vendor to ship the item after receiving an order 7. Ephemeral • Defines how long the content is available for (time, downloads) if applicable
  • 7. 7 Step 1: Vendor makes a listing Moderator 1. GUID • OpenBazaar network ID 2. Pubkeys • PGP: transportable identity if the Moderator has >1 node • Escrow Pubkey: public key combined with the buyer’s 32 byte chain code to generate Moderator’s multisignature signing key 3. Passcard • Onename’s Passcard username • Used to establish broader ID of the Vendor 4. Service • Service fee: percentage or flat fee per transaction • Service description: activities and terms of service
  • 8. 8 Vendor cryptographic keys shown in ‘01_listing’ are used to digitally sign all of the ‘01_listing’ data, which proves that the owner of the keys created this data Step 1: Vendor makes a listing {"01_metadata":{"01_obcv":"","02_expiry":"","03_category":"physical good","04_category_sub":"fixed price"},"02_id":{"01_guid":"","02_pubkeys":{"bitcoin":"","pgp":""},"03_passcard":""},"03_item":{"01_tit le":"","02_description":"","03_condition":"","04_price":{"bitcoin":"","fiat":{"01_price":"","02_currency _code":""}},"05_images":{"image_hashes":[""],"image_urls":[""]},"06_keywords":[""],"07_process_time ":""},"04_shipping":{"01_free":false,"02_flat_fee":{"01_bitcoin":{"01_domestic":"","02_international":" "},"02_fiat":{"01_price":{"01_domestic":"","02_international":""},"02_currency_code":""}},"03_est_deli very":{"01_domestic":"","02_international":""},"04_api":{"01_api_src":"Shippo","02_carriers":["FedEx", "UPS"],"03_package":{"01_length":"","02_width":"","03_height":"","04_distance_unit":"","05_weight": "","06_mass_unit":""},"04_shipping_origin":{"01_country":"","02_zip":""}}},"05_moderator":{"01_guid" :"","02_pubkeys":{"pgp":"","pgp_sig":"sig(selfsig_pubkey)","pubkey":"xxx"},"03_passcard":"","04_servic e":{"01_service_fee":"","02_service_desc":""}}} What it looks like in JSON
  • 9. 9
  • 10. 10 Stage 2: Buyer places an order 2. Buyer places an order, funds multisig address (funds are now in escrow) Buyer generates a 32 byte chain code, combines with Moderator public key to generate a pubkey for the Moderator. The Moderator can generate the private key in the event of a dispute after the 32 byte chain code is disclosed. Multisignature escrow address can now be generated from the Vendor, Buyer and Moderator’s pubkeys.
  • 11. 11 Stage 2: Buyer places an order 2. Buyer places an order, funds multisig address (funds are now in escrow) Buyer generates a 32 byte chain code, combines with Moderator public key to generate a pubkey for the Moderator. The Moderator can generate the private key in the event of a dispute after the 32 byte chain code is disclosed. Multisignature escrow address can now be generated from the Vendor, Buyer and Moderator’s pubkeys. Reference Hash 1. Reference • Contract ID (listing) that the order applies to • Example: • RIPEMD-160(01_vendor): cca4b4bf91a16ee76e1944624c4f7c0f8729a6f1 • Base58(RIPEMD-160[01_vendor]): 3rMrSZ2VDgb63ZvgEsdVjiscXurg • Final: OB3rMrSZ2VDgb63ZvgEsdVjiscXurg
  • 12. 12 Stage 2: Buyer places an order 2. Buyer places an order, funds multisig address (funds are now in escrow) Buyer generates a 32 byte chain code, combines with Moderator public key to generate a pubkey for the Moderator. The Moderator can generate the private key in the event of a dispute after the 32 byte chain code is disclosed. Multisignature escrow address can now be generated from the Vendor, Buyer and Moderator’s pubkeys. ID (Buyer) 1. Pubkeys • Unlike the Vendor, the Buyer is only identified in the contract by their bitcoin signing key • Bitcoin: multisig signing key
  • 13. 13 Stage 2: Buyer places an order 2. Buyer places an order, funds multisig address (funds are now in escrow), and send shipping address Buyer generates a 32 byte chain code, combines with Moderator public key to generate a pubkey for the Moderator. The Moderator can generate the private key in the event of a dispute after the 32 byte chain code is disclosed. Multisignature escrow address can now be generated from the Vendor, Buyer and Moderator’s pubkeys. Digital Content 1. Semantics • Any data the buyer needs to give to the Vendor to make a purchase • E.g. Quality
  • 14. 14 Stage 2: Buyer places an order 2. Buyer places an order, funds multisig address (funds are now in escrow), and send shipping address Buyer generates a 32 byte chain code, combines with Moderator public key to generate a pubkey for the Moderator. The Moderator can generate the private key in the event of a dispute after the 32 byte chain code is disclosed. Multisignature escrow address can now be generated from the Vendor, Buyer and Moderator’s pubkeys. Multisignature Details 1. Chain code • 32 bytes of random data used to generate the Moderator’s multisig signing public key 2. Multisignature address • Multisig address generated from the Vendor, Buyer and Moderator’s bitcoin pubkeys 3. Redemption script • To verify that the multisig address is comprised of the pubkeys listed in the contract 4. Transaction ID (txid) • Evidence that the Buyer has funded the multisignature address with the purchase amount in the listing • Optional, in the sense that if the payment is made from the Bitcoin purse, the TXID can be automatically filled in
  • 15. 15 Stage 2: Buyer places an order 2. Buyer places an order, funds multisig address (funds are now in escrow), and send shipping address Buyer generates a 32 byte chain code, combines with Moderator public key to generate a pubkey for the Moderator. The Moderator can generate the private key in the event of a dispute after the 32 byte chain code is disclosed. Multisignature escrow address can now be generated from the Vendor, Buyer and Moderator’s pubkeys. Signatures • Bitcoin • Multisig signing key of the Buyer is used to sign JSON data from ‘02_buyer.01_order’
  • 16. 16
  • 17. 17 Step 3: Vendor ships the item 3. Vendor indicates that the order is processed and a URL to the digital content is sent; sends a signed transaction releasing funds from escrow to their payout address (signature required from Buyer or Moderator to release funds after item delivered)Alice The Vendor
  • 18. 18 Step 3: Vendor ships the item 3. Vendor indicates that the order is processed and a URL to the digital content is sent; sends a signed transaction releasing funds from escrow to their payout address (signature required from Buyer or Moderator to release funds after item delivered)Alice The Vendor Reference Hash 1. Reference • Contract ID (order) that the data applies to
  • 19. 19 Step 3: Vendor ships the item 3. Vendor indicates that the order is processed and a URL to the digital content is sent; sends a signed transaction releasing funds from escrow to their payout address (signature required from Buyer or Moderator to release funds after item delivered)Alice The Vendor Source 1. Content Source • Encrypted URL: link for the Buyer to download, stream, or access the digital content; XOR’d with a nonce encrypted with the Buyer and Moderator’s public key • Encrypted Password: password to the content, if any; XOR’d with a nonce and encrypted with the Buyer and Moderator’s public key • SHA256 nonce: necessary to determine the URL and password; used to verify against • Encrypted nonce: nonce encrypted to the Buyer’s public key 2. Payout • Payout address: Vendor’s bitcoin address where the multisig funds will be released to after the item is delivered • Signed transaction: signed transaction releasing funds from multisig to the payout address; requires only 1 more signature from Buyer or Moderator to be accepted
  • 20. 20 Step 3: Vendor ships the item 3. Vendor indicates that the order is processed and a URL to the digital content is sent; sends a signed transaction releasing funds from escrow to their payout address (signature required from Buyer or Moderator to release funds after item delivered)Alice The Vendor Signatures • Bitcoin • Multisig signing key of the Vendor is used to sign JSON data from ‘03_vendor.01_invoice’ • PGP • PGP key of the Vendor is used to sign JSON data from ‘03_vendor.01_invoice’
  • 21. 21
  • 22. 22 Step 4: Buyer confirms item received Bob The Buyer 4. Buyer indicates that the content was accessible; signs transaction and release funds from multisig to the Vendor. Attaches rating/review.
  • 23. 23 Reference Hash 1. Reference • Contract ID (shipping notice) that the data applies to Step 4: Buyer confirms item received Bob The Buyer 4. Buyer indicates that the content was accessible; signs transaction and release funds from multisig to the Vendor. Attaches rating/review.
  • 24. 24 Digital Content 1. Received • Was the digital content accessible (Boolean)? Step 4: Buyer confirms item received Bob The Buyer 4. Buyer indicates that the content was accessible; signs transaction and release funds from multisig to the Vendor. Attaches rating/review.
  • 25. 25 Payout 1. Signed transaction • The Buyer-signed transaction from the Vendor (in `03_vendor`) that releases funds from multisig to the Vendor’s payout address 2. Transaction ID (txid) • Reference to the bitcoin transaction releasing funds from multisig • Automatically done if there is a Bitcoin Purse Step 4: Buyer confirms item received Bob The Buyer 4. Buyer indicates that the content was accessible; signs transaction and release funds from multisig to the Vendor. Attaches rating/review.
  • 26. 26 Rating 1. Transaction rating • Select from choices: • Positive • Neutral • Negative 2. Content quality • Rate out of 5 stars 3. Content description • Rate out of 5 stars 4. Customer service • Rate out of 5 stars 5. Feedback • Character limited text reviewing the transaction Step 4: Buyer confirms item received Bob The Buyer 4. Buyer indicates that the content was accessible; signs transaction and release funds from multisig to the Vendor. Attaches rating/review.
  • 27. 27 Step 4: Buyer confirms item received Bob The Buyer 4. Buyer indicates that the content was accessible; signs transaction and release funds from multisig to the Vendor. Attaches rating/review. Dispute 1. Dispute 1. Does the Buyer flag a dispute? (boolean) 2. Claim • If there is a dispute, what does the Buyer claim as the grievance?
  • 28. 28 Signatures • Bitcoin • Multisig signing key of the Vendor is used to sign JSON data from ‘04_buyer.01_receipt’ Step 4: Buyer confirms item received Bob The Buyer 4. Buyer indicates that the content was accessible; signs transaction and release funds from multisig to the Vendor. Attaches rating/review.