Decentralized organizations - introduction and examples
Next: Tokens
Welcome to the next segment, after centralised organisations it is time to look at how decentralised alternatives can work. This is the first post in a series of segments to come in following weeks.
Introduction
TL;DR Decentralized platforms are owned and operated by users. To incentivize this, participants are given tokens as reward. Programmability allows low-cost experimentation with different economic and governance models.
We saw in the previous chapter that centralized platforms do not have the best interest of the buyers nor the sellers in their mind but can over time produce adverse results for both. They hold a control position and centralize all activity through them. And by nature, centralized Internet is a winner-take-all world. For both sellers and buyers, the biggest platform offers the best selection so over time more and more users gravitate towards the biggest platforms leading to a snowball effect.
In this chapter we look at decentralized platforms that do not have a controlling position in the system. And this is by design. Whether they offer compelling reasons for users to switch over remains to be seen.
Most popular models today are based blockchains. There are many other decentralized schemes as well, but as they do not have built in concept for rewarding participants (cryptocurrencies, tokens), they have not become too popular. And the ones that are popular, have centralized over time. Email is an example of a decentralized protocol where today most companies and individuals opt to use one of the handful cloud-based service providers.
Level playing field is achieved with three main ingredients:
decentralized participation and governance
tokens to keep track of contributions
smart contracts automating operations
In the decentralized organizations the resources used to deliver the service are crowdsourced from participants. As reward they get the major share of generated revenue. As an additional benefit that is becoming popular that participants are also granted decision power how the service evolves in the future (but not all project offer it). This is done by issuing so called governance tokens that people can use to vote whether a particular proposal should go forward or not.
Decentralized organizations are used to organize many kinds of services like ride sharing, room rentals, building communications networks etc. We will cover how in more detail later.
Comparing to centralized platforms, if they acted in same way, people joining say a social network would be granted shares in the company based on their contribution and would directly gain a share of the revenue and be able to decide how it evolves. Or if readers of a major newspaper would get to vote for example what types of reporters work for it leading over time to a situation where the staff has roughly same political distribution as its readers.
This is a crazy good offer compared to current centralized model where power and earnings are hierarchically organized. It is one of the key unique selling points of the distributed model.
Decentralized organizations need also to run on top of a decentralized technical platform, otherwise the whole idea of decentralization would be more marketing than anything else.
In blockchains you have the core chain that is used to store the state of the system and on top there are smart contracts that implement the logic for decentralized organizations. Not all blockchains can run smart contracts or their functionality can be quite limited for that. We will mostly focus on Ethereum (and compatible chains) that does.
The underlying concept of smart contracts and most of the subsequent ideas on top do not depend actually on the technical implementations of chains at all. In fact, the term and concept of smart contracts was coined by Nick Szabo in 1997 long before blockchains.
https://nakamotoinstitute.org/formalizing-securing-relationships/
Understanding how the block chains work is however beneficial for getting your head around the core concepts in the crypto aka web3 as the community likes to call itself these times.
So, let’s dive in, shall we?
Primer in chains
There are many variants of blockchains, what seems to have become the dominant design are the public and permissionless type. In these types of chains, anyone can join and leave the system at any time. Joining means simply that you download software implementing the blockchain functionality and run it in your computer connecting to other nodes in the system. Because blockchains are big business there are also dedicated hardware solutions (appliances) that can be used instead of using a regular computer.
At the basis of it all is cryptography and asymmetric keys in particular. You can think of asymmetric keys of having a pair of related keys (and keys are just very long prime numbers). One of them is private (you will not share with anyone) and another public. If you want to send me an encrypted message that no one else can read, you’d use my public key to encrypt it. Only I can unencrypt and read it with my private key. Underlying mathematical theories ensure that this fact holds. As an analogy you can think of two keys for a safe. You use one of them to lock stuff inside the safe but you cannot open the safe with it. And there is another key that is used for opening the safe.
Private-public key pair can also be used for digital signatures. I’d use my private key to sign some set of text by calculating a very big number from it and attaching it to the text to verify that it is from me. Digital signatures are unlike physical signatures because the mathematics works so that for every text that I sign, the signature will look completely different. If I change even a single character, signature will turn out looking quite different. Using the text of the document, signature and my public key anyone can verify that it was indeed me who signed it. This is important for example in ensuring signatures in contracts or when financial transactions are made.
In blockchains the keys are automatically created by software that is called a wallet. The wallet software can be in a smart phone or PC or even in a dedicated hardware device.
When I want to send some value (bitcoin, tokens etc.) to you, I will sign with my private key a message saying that my wallet address sends x number of tokens to your wallet address (+ some other housekeeping data). The wallet addresses are for example in Ethereum generated from the public key (by hashing and taking 20 first bytes for those who are not interested in technical details).
The signed message is set one or more nodes (computers, appliances) implementing the system. This is done by the wallet software that has some well-known addresses of nodes baked in (i.e. it knows where to start). The nodes may tell wallet addresses of additional nodes so the code running in say my phone knows additional destinations where to talk. When a node receives a signed message from a user like me, it checks the validity of the signature. If it is correct, it forwards it to further nodes in the system and they further pass it along. If it is invalid, the message gets dropped to the floor and kicked out. The node also punishes the sender first by temporarily rejecting further messages for a while and if bad behavior continues, finally permanently.
At regular intervals one of the nodes in the system is selected to collect a set of transactions it has seen into a batch and publish them as “the latest changes”. The batch has a fixed size and is called a “block”. The block also contains a link to the previous block and is signed by the node writing it. By having a well-defined chain of blocks all linking to each other, the system achieves shared understanding of the state of the system – for example how much tokens each address has. This shared understanding is called a consensus.
The node that collects the transactions and writes the block is called a miner. Not necessarily the best word as there is no mining whatsoever happening but that’s what the community uses. And for the efforts of writing it, the node is rewarded. In practice the node adds as first transaction a line where they grant themselves (address of the node owner) a reward defined by the blockchain protocol (today in bitcoin for example it is 6,25 bitcoins and for Ethereum 3.0 Ether).
One central design question is that how this collector of transactions aka miner is selected. If it were selected at random, it would be possible for participants to artificially create a whole fleet of nodes to increase their chances of being selected (by programming computer to execute code that just creates more and more node addresses and registering them to the system). The innovation first adapted by Bitcoin is that there needs to be real cost associated into participating to the selection process in a way that cannot be faked. In Bitcoin and other proof of work (PoW) system this cost is associated with computing power. The node that first solves a hard mathematical problem wins the selection race and the problem is such that there is real cost in solving it. This takes time and processing capacity.
Since public blockchains are permissionless, also fraudulent nodes could join. This means that the newly written block needs to be checked. The miner thus publishes the block to the network of nodes and they validate the transactions in it. If more than 51% agree that it was correct, the block gets accepted. Otherwise, it gets rejected and the miner loses their reward. For good work you get reward, for bad work you spent costs solving the problem and got punished by not receiving anything.
This proof of work is not the only way to help select miners. In proof of stake (PoS) miners put value (tokens) on the line. The more value you have locked in the system (staked), the more likely you will be the chosen one (miner) on next round. If a miner turns out to be fraudulent, they will lose the value they have staked. This system does use a lot less energy than the PoW system used by Bitcoin for example.
It's good to understand that what the blockchain contains is only these transactions. There is no concept of balance as a value written anywhere on the chains. Tokens are created when new blocks are created and then wallets pass value around in individual transactions and calculating the past transactions tells how much a given wallet address has no.
Ethereum is somewhat different as it also has a programming language (Solidity) and using programming it’s possible to implement all kinds of functionalities that we’ll cover a little bit later like your own currencies on top of the native token of the chain and implement logic for a myriad of applications. But more of them later.
A feature of the decentralized nature of the blockchains is that once a smart contract is deployed, it is impossible stop it by outsiders because its execution is in multiple places (all validators need to execute the code to ensure the result was correct). They are available 24*7. That’s why smart contracts are also called “unstoppable apps” or decentralized apps (dApps). Usually if the speaker wants to emphasize this technical implementation detail. It is now more common to speak of smart contracts based on what service they implement rather than how they work under the hood.
Smart contract and blockchain service examples
A decentralized solution consists simply of smart contracts for managing and keeping record on the state of say subscriptions/ownership/work rendered or whatever the nature of the service is. And the inbuilt tokens are used for payments or rights of any kind. Add then integration to external world, and you have a solution.
A few examples to get you started. From simple to more advanced.
Providence
Providence means that you have a complete history who made this thing and how it got to you. Providence is a complex way of saying that there is a log of ownership changes. The underlying cryptography in blockchains ensures that this chain of ownerships cannot be altered. This can be used for example to curb down counterfeiting.
Fake spare parts in airplanes and vehicles can cause catastrophic results, overfishing in protected areas endangers species, brands lose great value to replica makers and so on.
With providence each product has a unique code and its origin can be checked. This makes it hard for counterfeiters to inject their production into markets. Not impossible as not all buyers care, but reduces markets and makes reselling counterfeits harder.
This can be extended and record the whole logistics chain. Where it was made and how it travelled to customer. Who handled the product when with added environmental data like temperature, humidity, vibrations (did someone drop the parcel during delivery)? Sometime origin is very important and external validation technology is needed to check say location to ensure fish was caught in allowed area.
Providence is an example where the blockchain is used because it provides an immutable storage. This means that other parties cannot alter it afterwards. This immutability opens up a whole host of other use cases such as:
If I make an invention that I plan to patent later, I can write the idea and encrypt it with my public key and store to blockchain. If I ever need to prove the time when the invention was made originally due to some dispute, I can open it with my private key and demonstrate the fact undeniably.
A modified version can be used to store legal contracts. Both parties sign a document with their private keys. Both parties can independently decide to save the document in encrypted format to the chain as described above
Number portability (keeping old number when you switch operators) is another example. Numbering is a hierarchical system by nature (country->operator->mobile subscriber identification number). For number portability there is a translation service that maps users phone number to the right internal address. If blockchain were used, global number portability would be possible where users use their own private keys to change the translation records. In real life you would just use an app that does that for you.
Automated Room Rental with Smart Contacts
In this scenario users who want to rent rooms, browse a web site to see availability and customer reviews. When suitable alternative is found, they send reservation details like room/apartment, dates, money to the smart contract account. Smart contact reserves the apartment and sends back a reservation code (or just maintains in its data structure that this address has a valid reservation for set time period).
On the reservation day customer shows the key to the lock via bluetooth for example, software in lock queries a smart contact if this key is valid today and the door opens. On the day they leave, the key stops working. Smart contract releases funds to the owner of the apartment (who has earlier registered their wallet address) and orders cleaning.
Smart contract could send out a questionnaire for both renter and owner to evaluate each other and record results in blockchain so anyone can generate analytics of the reputation of parties.
Using this type mechanism someone can build an automated hotel business where rooms are crowdsourced. Once the smart contract is launched, no one owns it and the value goes to the room renters + some small amount to pay for the reservation front page web site. This can be extended so that small part of revenue goes to a “Treasury” and room owners and renters vote later how to further evolve the system.
The party setting up this could well be the lock hardware maker to promote the sale of their product.
What can not be done on blockchain is the discovery part - web site for finding rooms and browsing through recommendations and customer comments. Existing technologies work well here. And naturally the physical part – locks, rooms, cleaning and mandatory pillow chocolate.
Remittances
Remittances is a service utilising just the global “money” nature of tokens and not much more.
Banks charge enormous fees when people send money between countries. 10% is common and much larger shares are not unheard of. This means that a remote worker in foreign country needs to work around one month of the year just to pass money back to family at home.
Remittances using say Bitcoin as mediator work so that Bitcoin is purchased in one country with local national money, sent to an account in another country and sold there immediately and gained money passed to recipient. Buying and selling needs to happen roughly at the same time because free floating crypto currencies like Bitcoins tend to vary in value greatly (they are not good value containers). Coins.ph is example of such a remittance service.
The fees in this mechanism are much lower than with traditional banks. The remittance service provider can moreover bundle multiple money transfers together and do them in one go to reduce the amount of transaction costs of the underlying blockchain.
Plantoid – automated manufacturing
Automated room rental example showed a way of organizing work without requiring any permanent staff. Manufacturing can be organized in similar manner and Plantoid is a good example. Plantoid is a mechanical flower and an experiment between art and a real product.
In general, new technologies tend to get most benefit when they do not replicate something that already exists but solving new problems or old needs in completely new ways.
Plantoid is implemented as a smart contract and works by simple principle:
gather enough funds
issue request for quotations (RFQ) asking for offers to design it
vote on offers received
commission the winning team to design the product.
When design is ready, the investors review it and vote whether design is accepted
For accepted designs the manufacturing process started
RFQ (request for quotation => please make an offer with price) is issued for manufacturing
A project manager is hired to oversee the production and communicate with participants on hiccups along the road
The winner of RFQ process is commissioned to produce Plantoid for everyone who participated.
Finally, the design is published as open design to be used as baseline for next round.
Original creator of the concept receives a small reward for setting this all up.
Then the smart contracts start a next round waiting for new interested parties.
The management of the whole process is automated via smart contracts. Design, manufacturing and logistics are work done by people but this “company” needs no permanent management layer.
Unlike normal company that needs to pay staff all the time, this “company” has no costs while it is dormant. It has infinite patience waiting for better times when it again springs to action. You could call funds in this model also Digital Infinities or The Schrödinger Fund as it both exists and not exists at the same time. Next chapter (after this post series) is on that.
In the crypto-space automated organizations are normally called Decentralized Autonomous Organizations (DAOs) and there is a myriad of different models how they can work.
In next post we look at ways decentralized platform use tokens in a multitude of roles. Often as a way of counting contribution value, as payment assets, to record ownership or access rights and so on. Tokens (or actually the smart contracts controllign them) are programmable, meaning that the rules can be whatever designers desire.