LocalCryptos' Technical Design Philosophy
LocalCryptos is a non-custodial P2P trading platform, but it isn't a completely decentralized system. Instead it is a blend of centralized and decentralized components. In this article, we'll help you to understand why that is the case, and why some decisions were made over others.
Long before the development of LocalCryptos began, its creators laid out a set of rules and values that the P2P trading platform shouldn't compromise on. These are the principles we decided must be characteristics of the finished product to ensure a frictionless experience for everyone.
LocalCryptos isn't designed to only meet the needs of cypherpunks who have a complete understanding of the ins-and-outs of cryptography and privacy-enhancing decentralized technologies. It is designed for mass adoption, which means ease-of-use for your average crypto purchaser is of very high importance within our product development cycle.
LocalCryptos is a blend of centralized and decentralized components to balance the requirements of security and layman-user usability. It's centralized in the same way that end‐to‐end encrypted messaging apps like Signal, Telegram, Wickr, Viber and WhatsApp, each rely on a minimally-trusted central server for various operations and housekeeping.
Every one of the design requirements we set out to achieve has been met:
LocalCryptos must work in all modern web browsers without extra software, as that's what most people are comfortable with.
The necessity to download and install a browser extension is a big hurdle for people who aren't tech‐savvy, or who don't trust unfamiliar third‐party software on their device.
LocalCryptos fully supports MetaMask and other Web3 wallets, however we decided to make their use optional so that non-custodial P2P trading can reach a wider non-technical audience.
Also, relying on external software creates device‐compatibility issues and could pose security threats outside of our control.
LocalCryptos should work seamlessly across most devices, not only desktop browsers.
People often trade crypto on their mobiles phones, especially in countries where cryptocurrencies are used or needed most.
The platform must work on desktops, laptops, tablets, and phones — simultaneously.
Users shouldn't need to be online and available to accept a new trade or receive an encrypted message. This means that secure information must be able to be exchanged entirely asynchronously.
To accomplish this, it's necessary to have a high-availability service to reliably store data and allow users to retrieve it later at rapid speed.
Expectancy of crypto‐bankruptcy
Users must not need any cryptocurrency in their wallet to use any part of LocalCryptos. This can sometimes be challenging, esepcially when dealing with Ethereum, as every interaction with the blockchain demands a network fee as payment for computational work.
LocalCryptos will be many people's first interaction with cryptocurrency, so we expect many buyers to lack any cryptocurrency at all, which means they won't be able to interact with Ethereum smart contracts at their own expense.
Because of this, LocalCryptos has a system allowing users to interact with the Ethereum blockchain at no up‐front cost via a relay mechanism.
While every decentralized service has a duty to educate users on the basics of distributed ledger technology and crypto security hygiene, we recognize that the majority of the general public is probably not going to understand every detail, and that shouldn't matter.
Users shouldn't need to understand how LocalCryptos works on a technical level in order to use it to buy and sell crypto.
Lots of effort is directed toward making sure the user‐interface is friendly for all users, no matter their background or technical proficiency.
Toward a decentralized future
The decision to avoid a fully decentralized system was to ensure all the important design constraints outlined above would be met.
Many of these constraints will become less of an issue in the future as the world transitions to decentralization.
Our long‐term goal is to decentralize more components over time as the cryptocurrency and web-application security ecosystems mature.