Regis: The Decentralized Registry
Registries are everywhere. We need registries for cars, real estate, company assets, books, marriages, births and deaths music, films, domain names, even your computer needs a registry to keep track of the software you install. We need them in order to have a common place to search for and keep track of items. Some of the most important registries, like those for public goods, are controlled by governments whose authority provide authenticity for the records.
One of the features of public registries is that they are open. This means that anyone can request the registration for the title of the home I live in and the real estate I own, for example. They are meant to be public. In order to get a real estate registration, one would just need to know the location and request the paperwork from at the local registry, right? Actually, no. At least in Brazil, it’s not that simple.
Real estate registries in Brazil are profit-driven private entities, authorized to work by the central government. And here is where some problems start to appear. If you have more than one registry for real estate in a given city, how do you know which registry the specific apartment you’re interested is registered in? Without asking the owners, it’s impossible to know. You need to personally go to each of the registry companies, spend time on their queue, and check if that particular registry has the registration you’re looking for. Sao Paulo, the largest city in Brazil, has 18 real estate registries. And their records are not unified.
Andres Junge, a ConsenSys crew member working from Chile, told me a similar story about horse registries. According to him, “race horses (or any other “valued” animal) are registered so that there are records of their pedigree, which is a marker of value in racehorses. Statistics shows that the offspring of a very good racehorses are more likely to win more races than the offspring of horses with poor racing records. If you buy a horse that is claimed to be a very good performer, you need a way to check their pedigree and background. The problem is that horse registries, called Studbooks, are scattered all over the place. They are private, costly (you need to pay to register and read records) and not ununified. It’s also very easy to commit fraud: if you have a normal horse and want to make it more valuable, you just need to ask (or pay) the Studbook owner to record it as being the offspring of a well-performed horse. Studbooks also contain the ownership records horses. Therefore, many of the problems of ownership registires mentioned above apply here too.
If, on the one hand, having multiple registries for the same object is not ideal (as we’ve seen for real estate registries in Brazil and for horses in Chile), on the other hand, having one registry would confer too much power to the registry owner. Is it possible to solve that puzzle? In fact, it is: we can build decentralized registries on top of the Ethereum blockchain.
The advantages of using blockchain based registries are many. First, the records are immutable: once a record is published, no one can remove it. They are publicly available to anyone to search for and consult. You have complete traceability of records. Second, it is totally digital: papers and signature checks are not needed anymore. Transferring ownership of records is as easy as sending an email. There is no central point of failure, since all of the infrastructure is decentralized. Third, security. Blockchain technology uses cryptographic algorithms, giving a high degree of security to all operations. For all these reasons, it’s natural to see that different types of blockchain-based registries will emerge in the coming years. In fact, some countries are already taking this option really seriously.
If we can predict, with a reasonable level of certainty, the urgency of many blockchain-based registries, why not build a tool for facilitating this task? At ConsenSys, we did. We created Regis.
Regis is a platform that makes it easy to build, deploy, and manage decentralized registries on the Ethereum blockchain. It allows users to design and maintain user-defined key-value pairs without costly infrastructure requirements and record data on an immutable blockchain that has no central point of failure.
With a very easy to use web interface, users don’t need to understand how to code smart contracts in order to to build and deploy their registries. Regis has a real-time smart contract builder that displays the registry code as it is created. Users choose among a rich set of parameters (registration fees, reward for early adopters, etc.) and can attach behaviors (like auction on the keys) to the registries they are building.
The possibility of easily building registries with an auction functionality is a key feature of Regis. Auctions are a desirable feature in many already existing registries. A well known example where an auction would be handy is for the Domain Name System (DNS). As you may already know, the DNS translates a domain name into an IP address. When you type google.com in your browser, the DNS is consulted and returns the IP address for that domain and, by the knowing the IP address, it knows which server to use on the internet. The problem with how the DNS currently works is that it encourages name squatting and that’s because it uses a very simple registration method. If you think of a domain name that’s not already taken, you can easily buy it for 10 dollars and it could be yours forever. Because of that simple registration mechanism, huge companies emerged with their only purpose being buying cheap domain names and reselling them for hundreds of times their acquisition price.
This is not a fair system. Using Regis we can build a DNS like registry and attach an auction behavior on it. You can specify, for instance, that before a domain name is taken, it should go into an auction that will accept bids for 6 months or one year and the participant that sends the highest bid takes the domain name at the end of the auction. This is a fairer system because it allows everyone to participate in domain name distribution.
Another type of auction supported by Regis is a sealed bid auction. In this kind of auction, the participant’s bid price is not revealed until the auction is over. It’s an intricate system where you bid how much you are willing to pay and your bid cannot be lower than any other participant’s bid, otherwise you lose the auction.
These kinds of auctions provide fairness to registries. And Regis allows users, organizations, and governments to attach three different types of auctions to the registries they’re building. Regis also allows users to build democratic registries, where the fees collected are distributed among users. This feature can be used to encourage the adoption of a specific registry.
A contract on the blockchain is immutable and cannot be modified. But sometimes there is a need for an updated version of a contract to be used. For example, maybe the old contract has a bug. A simple way for a decentralized application (dApp) to be fixed is to use a registry instead of hardcoding contract addresses. For example, if there is an escrow-contract at address 0xabc that a dApp uses, the escrow-contract could be put in a registry. The dApp then always looks at the registry to find the address of the escrow-contract, instead of using 0xabc. If a bug is found in the escrow-contract, a new one could be deployed, and the registry is updated with the address of the new escrow-contract. Since the DApp always look at the registry for the address of escrow-contract, the DApp would not need any changes.
The first company that has adopted Regis for building their decentralized registry is BVRio (http://bvrio.org). They have a digital market for timber trading in Brazil that works just like a stock market, with real-time quotes and price charts. They own a proprietary scoring system that is based on the origins, transportation and legality of the timber and they wanted to make this information available to anyone interested in this market as the scores have a direct influence on timber’s price.
Here is where Regis comes in: by creating a decentralized registry to keep timbers’ scores, producers now have traceability on their scores. They can make adjustments on the production or transportation side to check how this impacts their scores. The information is guaranteed to not change, given the immutability of blockchains, and it’s available publicly. And BVRio doesn’t need to maintain an infrastructure to keep the records or worry about server downtime, since the Ethereum blockchain has no single point of failure.
Regis is currently running on the Ethereum mainnet at http://regis.nu. Feel free to use it and provide feedback on how we can improve your experience.