OpenBazaar 2.0: P2P trade takes the next step
The first version of the OpenBazaar software launched April of this year, but the concept behind OpenBazaar — making trade free by moving it from closed platforms to a peer-to-peer (p2p) network — has only taken its first steps. What does the future of p2p trade look like? What does the next step for the OpenBazaar software look like?
This article lays out a vision for the near to mid-term future of OpenBazaar, which we’re calling OpenBazaar 2.0. We welcome feedback on this vision, and assistance in developing this open source software.
Thursday, July 7th at 5pm EST, the development team will be presenting this vision via a Hangout event, and engaging in a Q&A session with the community.
What is OpenBazaar?
OpenBazaar is a decentralized network for trade. No company or organization controls the network; there’s no central point of failure. All trade is done directly between peers. No middlemen means no fees and no censorship.
This describes what OpenBazaar is technically, but it doesn’t describe the values the project upholds. We have strong beliefs about what OpenBazaar is at its core, which guide development and make it unique.
The development team proposes the following core attributes that describe OpenBazaar:
- Anyone Can Buy and Sell Anything to Anyone Anywhere for Free
- Free to download and use
- Permissionless (No banks, credit cards, paperwork, or approval needed)
- No restrictions on who can buy or sell
- No restrictions on what you can buy or sell
- No restrictions on where trade can occur (borderless)
- You Control Your Own Trade
- Decentralized (controlled by no one; belongs to everyone)
- You control your own information
- Private (identity, location and activity are yours to control)
- No one can censor your trade
- Open source; anyone can add to or modify code with no restrictions
- P2P Trade for Everyday People
- It’s equal to or better than other professional e-commerce platforms
- It’s secure and trustworthy
- It’s easy to use and understand
- Removes as many barriers to trade as possible
These attributes are aspirational, meaning they aren’t necessarily describing what OpenBazaar is at any given moment, but instead describing what we aim for it to become over time. They help inform where the software can be improved, and have helped us decide what changes are needed for OpenBazaar 2.0.
Some of these attributes are already present in the first version of the software. It’s completely free to use, permissionless, open source, and no one can impose restrictions on what can be sold.
Other areas need more effort. While the network itself is decentralized, the data for each store isn’t distributed yet. Traffic between peers is encrypted, thus private, but there’s little ability to use privacy enhancing tools such as Tor to give users more anonymity. The software is easier to set up and run than running your own web server and installing existing ecommerce tools, but it isn’t simple enough for many users to effectively run their own stores. There aren’t nearly as many features as established ecommerce platforms.
With these goals in mind, we’ve begun working on the next major version of OpenBazaar. While we are working on this next major version we will still be maintaining the 1.0 version and releasing bug fixes, but will not be adding significant new features.
Some of the new features mentioned here will be present as soon as 2.0 is launched, but some of them won’t be available immediately. Those features will be high priorities after release.
Switch to IPFS
OpenBazaar is actually two separate pieces of software. The back-end server communicates to the rest of the network, manages the purchases and sales, and handles the Bitcoin payments and escrow system. The front-end client is a visual interface to be able to connect to the back-end server and control it. Each user on the network is running their own server and client.
The current back-end server hosts each user’s store data locally. The information about the store, as well as the listings (and their pictures) are all controlled locally by the computer running the server. This means that no one else can censor the store listings, since the only way to take down those listings would be to shut down that computer itself.
There is a drawback to this method. If the user shuts down their computer, or loses their internet connection, their listings are no longer available to anyone else on the network. Especially for those without access to reliable electricity or internet, this makes running a store difficult.
To address this problem, we’re changing how the data is stored in OpenBazaar 2.0 by using the InterPlanetary File System (IPFS).
What is IPFS? As the white paper explaining the software states,
[IPFS] is a peer-to-peer distributed file system that seeks to connect all computing devices with the same system of files.
IPFS is described as “the distributed web” because it’s meant to be a more resilient and faster version of the HTTP-based web we currently use.
Using this peer-to-peer, distributed file system means that OpenBazaar store data no longer needs to be hosted purely locally by one server. Instead, the data can be distributed across a network of users, and if the OpenBazaar server hosting the data goes down temporarily, that data can still be accessed because it’s replicated by another peer on the network. This makes OpenBazaar stores more censorship-resistant, and improves the user experience for buyers as well.
A user will be able to set up their store, list their goods or services for sale, and other users who visit their store will then begin seeding their content to the rest of the network. If they turn off their computer, people can still access and buy their products, and sellers will receive the orders the next time they use OpenBazaar.
Using IPFS also allows for better networking and discovery of products, since you aren’t forced to pull the data from only one location but can instead pull it from anywhere on the p2p file system.
Work is roughly two-thirds complete on the next OpenBazaar server based on IPFS (and written in Go); if you’re interested in p2p networking and/or knowledgeable in Go we welcome your contributions.
New User Interface
After receiving lots of helpful feedback on the current user interface (UI) we’ll be introducing a new design in 2.0.
In keeping with our goal of making p2p trade accessible to everyone, the new design tries to make it simpler than ever to buy and sell on the platform, while still allowing a high degree of customization.
If you’d like to see more, check out the user page / store prototype.
Including a Wallet
Bitcoin is a core part of OpenBazaar. Building a permissionless trade platform can only be accomplished with a permissionless money. Unfortunately, Bitcoin isn’t mainstream yet, and the fact that OpenBazaar is Bitcoin-only is a significant barrier for many ecommerce users.
We’re trying to make using Bitcoin simpler in 2.0 by building a Bitcoin wallet directly into the app itself. Instead of forcing the user to do all of their Bitcoin management outside of the app, they’ll now be able to do everything from within the app itself (other than obtaining Bitcoin, which may also be possible eventually). The goal is that users won’t need to be familiar with using Bitcoin in order to send or accept money within OpenBazaar.
Managing the Bitcoin directly has other benefits as well. Since OpenBazaar is p2p and includes many social features such as encrypted chat and blockchain ID-linked profiles we will enable people to send Bitcoin directly to each other at their OpenBazaar location instead of using Bitcoin addresses. Having Bitcoin built in will also allow more complex transactions which will help make refunds and escrow transactions even more smooth.
Search and Discovery
Being completely decentralized makes it difficult to search and discover listings on the network. The current approach uses a simple method of adding keywords to each listing, placing those keywords into the distributed hash table (DHT) along with a pointer to the listing location, and then allowing searches of the DHT for those keywords. This method isn’t ideal, but the nature of decentralized search means there aren’t many better options.
In order to give a better user experience, in 2.0 we’re introducing the ability for users to use third party search tools within the client. There are already several search engines for the OpenBazaar network, such as Duosear.ch and Bazaarbay.org, and these third parties provide a better search than the app can provide itself. Users will be able to access the search engine results within the client from any third parties who provide APIs when 2.0 is released.
Since a core attribute of OpenBazaar is its decentralization, we will never require users to be reliant on a third party for search or anything else. This is purely optional in order to have a better experience. Users can choose which third party search providers they want to use in the app, or none at all. The DHT search will still be available.
Curation of Content
Search won’t be the only way to discover content on the network. We’ll be introducing the ability for users to create collections of content that they can share with others.
Once we’ve shifted to using IPFS, curation of content becomes much simpler. Any user will be able to create a list of the content they find interesting and then attach the location of each listing on IPFS. This means that even if the store originally hosting the content goes down, the listings within the collection should all still be accessible if they are seeded elsewhere on IPFS. Note that this list itself will also be seeded on IPFS, meaning that if the content provider is also offline their collection will still be available.
These users will have their own section of the 2.0 client to display their content, and other users can search through these content providers to add ones they like. One content provider might have a curation of the best sneaker stores and listings on the network, and another might only list stores that are based in Berlin or Detroit.
It’s important to clarify that curation of content is unrelated to censorship of content. No central authority can censor listings on OpenBazaar. Curation just means that a user can collect all the stores or items they like into a list and then share that list with others. Visiting content by navigating directly to its location on the OpenBazaar network will always be possible.
Privacy and Security
Giving OpenBazaar users as much privacy as possible, while keeping them as secure as possible, are essential priorities. All traffic between nodes is encrypted already, and will remain so.
Our current messaging system is being rewritten in order to allow for secure asynchronous messaging. Our goal is to implement the signal ratchet, which is widely used and trusted.
IPFS should also allow more privacy for users, since IPFS is expected to allow Tor connections on their network. This will allow OpenBazaar users to use the Tor network for their stores. At this time it seems likely this would actually create two networks, one being clear-net and the other based on Tor. It’s possible that these two networks will be able to talk to each other, but it’s not certain yet.
Another exciting privacy-enhancing feature is the introduction of private store or private listings. Currently any store or listing created on the OpenBazaar network is automatically public to everyone. But a private store or listing will only be visible to those who know the OpenBazaar address. This will allow users to buy and sell goods to each other without third parties even being aware of their existence.
There are three current listing options: Physical goods, digital goods, and services. All of these listings focus on the supply side of users, giving them the ability to signal to others what they can offer.
We’ll be introducing a new option in 2.0: the ability to request goods and services instead of only offer them to others. This addresses the demand side of users, giving them the ability to signal to others what they need but don’t yet have.
Users can make requests for any of the other listing types. They can request a certain rare SNES game, or they can request a custom digital avatar from their photo, or request someone help them fix their car. Other users can then bid on offering this service, with the requester choosing from the bid that suits them best.
We’ll also be improving digital goods by allowing for instant delivery of the goods as soon as the seller’s Bitcoin address is funded. Instead of the seller needing to manually send the link / file, it will automatically be released to the buyer once payment has been sent.
More Ecommerce Features
Compared to existing ecommerce platforms, OpenBazaar is light on features. This is partially because some features are more difficult to do in a decentralized fashion, but largely a result of having limited time and resources. We’ll be introducing many new features in 2.0 that will help users manage their stores.
Vendors need better flexibility over how they track and manage their inventory, and in 2.0 we’re introducing some tools — such as product variants — to help them out. We’ll also add the ability to import listings from other ecommerce platforms.
Improved moderator discovery
The current process for selecting moderators doesn’t give users much information about them, and the process is confusing. We’ll be making the moderator selection process simpler and more informative.
More Flexible Shipping Options
OpenBazaar has no borders, which means shipping options need to be flexible. Users will be able to customize their shipping options in detail.
Stores on the network don’t have much data about users that visit them, and we’re trying to introduce ways to collect that information to help them manage their store while still letting users remain as private or anonymous as possible.
Reputation & Reviews
Reputation and reviews are very limited at the moment, and 2.0 will introduce a more robust and useful system for all users.
Our mission to free ecommerce by moving from closed platforms to an open, p2p network is not simple, and won’t be accomplished overnight. If free trade and new technology interest you, consider joining this open source project.
If you want to hear more about the 2.0 changes, and ask some questions of the developers, join us Thursday, July 7th at 5pm EST for our global Hangout event.