
For most people,
Joseph Lubin is a leading thinker in the rapidly growing field of digital currencies. For me, he was a man with whom I had my
first bitcoin exchange
deal , and a man who was used to saying big things in an even and modest voice.
In the winter of 2014, he called me with him to a bitcoin conference in Miami to talk about the new project
Ethereum , which he and like-minded people from Canada had launched several months before. When he explained to me the essence of the project, he did not stint on the forecasts: "We will replace insurance companies and Wall Street."
')
The list continued to grow. Online movie distribution services like Netflix and Hulu. Gaming platforms like the Xbox and Sega Genesis. Messengers like Twitter. Pensions, currency exchanges, voting systems, intellectual property management, trust funds. If you believe Lubin, then everything - really everything that we do through the Internet or through other digital channels, will undergo radical changes.
His idea has since captured the minds of digital currency enthusiasts. The idea is that the technology that provides secure transactions on the Bitcoin network, making them transparent, very fast and uncensored, and not requiring trust to other parties, can be used to process more complex transactions and store any digital information on the Internet.
Over the past year, this theory has evolved very inconsistently and unorganized. There is already a distributed domain name system, a digital notary that does not require third-party services, and financial contract management services through decentralized ex-accounts. Some experiments are conducted in the Bitcoin network itself. Other projects, like Ethereum, have launched new networks or are connected to alternative digital currencies - bitcoin clones. Many initiatives have already received funding. In January, Spark Capital and Israeli venture capital firm Aleph financed a $ 2.5 million startup company Colu.
At meetings and conferences there is a tangible feeling of endless possibilities, and that money is only the first and most boring use of Bitcoin technology.
With all the variety of projects, they strive to change one unpleasant trend - the lack of “truthful agencies” on the Internet. All data created online and all operations are processed by centralized servers, most of which are located in data centers managed by corporations and the government. We depend on them for everything. They store our emails, send them, verify our identity when entering sites and mobile apps. They track our purchases and process payments.
Nominally, our data belongs to us, but to access and manage them, we need accompanying persons to get from one digital room to another. We do not own our data, but only visit them from time to time.
Nick Szabo (whose theories on digital contract and smart property have earned him so much respect among digital currency fans that he is constantly accused of creating a Bitcoin network) summarizes the problem in his blog post:
For all these machines, the architecture was designed to be controlled by one person or a hierarchy of people who know and trust each other. They can read, change, delete or block all data on these computers. With modern web services, we completely trust, that is, completely depend on the computer, or rather on the people who have access to it, insiders, hackers, in matters of fulfilling our orders, processing payments, etc. If someone at the other end wants to ignore or fake your instructions, they will not be stopped by protection systems - only unreliable and expensive organizations whose jurisdiction usually ends at the border of the country.
For a long time, all this was taken for granted. If our digital world can be reduced to a set of records that we update and transfer from place to place, then protecting these records from damage is vital. The traditional solution is to restrict access to a small group of proxies. In most cases, we trust Internet services, assuming that their priorities coincide with ours, and that we have the opportunity to hold them accountable for their wrongdoings.
But more and more the priorities of these organizations do not coincide with the priorities of the people they should serve. Remember when Facebook
switched its digital switches on the social network and launched a universal psychological experiment on its users?
Faced with an unsolvable problem, we settled on the least bad option possible - transferring responsibility for our data to as few people as possible. After all, it is more stupid than trusting our valuable digital recordings of a certain central authority, it will only be to entrust them to a handful of unknown persons.
But this is exactly what Bitcoin does: a public database that everyone can see, to which everyone can add, and which no one can destroy.
Why should we trust Bitcoin, or rather, the technology behind it? Because it immediately implies that all parties to the transaction are dishonest, and at the same time forces everyone to follow the rules.
When people talk about Bitcoin technology, they mean two things. The first is a worldwide database that records transactions and grows linearly in pieces called “blocks”, forming a “block chain”. The second is a network of participants, called miners, which are computers (and their owners) that add blocks to the network.
First, take a look at the block chain. If you have Bitcoins, it means that there is a record in the chain containing a numerical value (“coins”) and half of the digital signature. Digital signature is a cryptographic task that only you can solve, because only you have the corresponding half. This is your "private key", and if you have a bitcoin wallet, then that is in it.
Wanting to spend bitcoins, you make a request to add a new record in the block chain. The new record refers to those bitcoins that you want to spend - it points to the previous transaction, thanks to which you received these coins. It proves that you really have them, because your half of the signature solves the cryptotask, and adds a new signature to the bitcoins, which only the new bitcoin owner can add. When he wants to spend it, the process will be repeated.
Therefore, a block chain is just a long chain of transactions, each of which refers to the previous record in the chain. But Bitcoin users do not update the block chain directly. To transfer coins to someone, you need to create a request and distribute it over the peer-to-peer network. After that, he will be in the hands of miners. They process requests and verify the correctness of signatures, and that the number of bitcoins is sufficient to conduct the transaction. They push new records into the block and add it to the end of the chain.

All miners work independently of each other, with their version of the block chain. Finishing a new block, they distribute it to the rest of the participants, who check it, accept it, add it to the end of the chain and continue to work from this point.
All this will work only if the miners agree on what the newest version of the block chain should look like. But since they do not know each other, they have no reason to trust each other. What will stop the miner if he wants to cheat with early entries in the chain and cancel the payments?
A strategy thought out by
Satoshi Nakamoto (the pseudonym of a Bitcoin architect) to achieve consensus in this system is considered a breakthrough in distributed computing.
“Since the 1980s, there were consensus algorithms where you reached it by providing logs of several computers working on the same network,” says Paul Snow, founder of Factom, a service that packs data and sends them to a chain of Bitcoin blocks. But these systems successfully worked under the condition of their cooperation and loyalty.
Bitcoin replaces loyalty with mathematical certainty. Given the cryptographic evidence that needs to be given to conduct a transaction, we are already confident that only those who have them can spend bitcoins. But the miner can also be sure that other miners do not change the record in the chain, since Bitcoin cannot be rolled back.
The process of adding a new block to the chain is very difficult. All participants have to use large computational power, and therefore electricity, in order to drive new data through a set of calculations, called hash functions. Only after this work is completed can the block be added to the chain so as to satisfy all the other miners in the network.
“You are building a giant wall,” says Peter Kirby, President of Factom. “And every time you need to agree on something, you put a thousand bricks upstairs. Agree on something else, and lay another thousand bricks on top. This makes it very, very difficult for anyone to remove one brick from the bottom of the wall. ”
Do not believe? Let's attack the system.
Suppose there is a record in the bitcoin block chain that I want to change, and it is contained in the hundredth block of the chain. In the meantime, the miner community is already deciding block number 110. In order for my changes to be accepted by the network, I need to provide my alternative version of the entire chain. I need to roll back to block 100, change the record, and perform the necessary calculations. Since all subsequent hashes are based on the data I have changed, I will have to repeat the work on each of the subsequent blocks, up to 110.
And I need to do this before the miners of the whole world finish the 110th block. The rest will work on my alternative chain only if I give them a chain longer than the one they are already working on. But I’m just a lone miner with a small amount of computer power compared to the whole network, so I’ll never catch up with them. Moreover, in order to crank up such a trick, I need to control more than half of all computing power that is used on the Bitcoin network at any time.
And this is a big network. Competing with each other, miners invest in computers with specialized chips, ASIC, which are designed to calculate hashes. The processing speed of computers on the network has
doubled from August 2014 to March 2015 , and the numbers are growing. Some of these computing centers are giants that consume 500 kilowatts each and require
specially selected liquid cooling .
This means that the chain of Nakamoto blocks becomes safer the more people participate in the network. But why do they need it? In the case of Bitcoin - because they get paid for it. Every time a block is resolved, a new transaction is created, according to which a little bit of new Bitcoins are assigned to the first miner, who completed the work.
In the old security models, you tried to isolate yourself from all greedy and dishonest people. Bitcoin invites everyone, hoping that they will work in their own interests, and uses their greed to ensure the security of the network.
“This is the main contribution,” says Ittay
Eyal , a computer science specialist from Cornell, who studies Bitcoin and other decentralized networks. Bitcoin is designed so that it is more profitable for an attacker to work together with the system rather than attack it. The incentive system encourages to contribute with the help of its resources for the benefit of the system. ”
When using a chain of blocks to store a record of a certain amount, we get a Bitcoin network. When Nakamoto launched Bitcoin in 2009, the block chain was just a sequence of transactions. But people quickly realized that transactions could be tailored as transport to include non-financial data.
Last year, after stormy discussions, protocol developers added the ability to attach 40 bytes of metadata to each transaction.
Now the chain is crammed with all sorts of non-financial messages. Valentines, prayers, praise speeches, excerpts from wikilex, hashes of texts of books and of course the original scientific work describing Bitcoin technology. All this lives in a chain of blocks, being included in the transaction.
When metadata is included in the chain, they get all the benefits of using a p2p network. This data is available to anyone on the planet who has a computer and an internet connection. To destroy them, you would need to reach every computer on the network. They can not be changed, and therefore it is impossible to apply censorship to them. They have both creation time and cryptographic proof of authorship.
So what can you do with a block chain? The simplest option is a simple storage system that has unique advantages. Everyone who is interested in transparency and accessibility sees in the chain a way of organizing and storing important records and the possibility of including people in the legislative process.
Since each entry has a timestamp, it can be used as a decentralized notary. Imagine that you have photographed a dent in a rented car and loaded it into a chain of blocks. Using the properties of the chain later you can prove that the dent was on the car before you left the parking lot.
Since bitcoin transactions are cryptographically protected, the network can also replace the standard “login + password” approach. In such a system, the Bitcoin address can be the user name, and the private key the password. Everyone can ask you to confirm your identity by solving the same task with your key that you would have done when creating a transaction.
The chain also solves the problem of censorship. If you insert metadata once into a chain, it’s impossible to remove them from there. The developers used this feature to create an uncensored version of Twitter called
Twister and a decentralized domain name system (
Namecoin ).
“Everything you own and do is controlled by a stack of records,” says Kirby. “The bank is just a bunch of records. Insurance company - a bunch of records. Economics is a bunch of records. If you can accept the concept of a world ledger and say: "Now we can organize all the records in the world in this way," then this is very cool. "
For now, these are all examples of how a block chain can be used to change the methods for storing data on the Internet. But storage is the tip of the iceberg. Bitcoin is not just a transaction ledger. When it is, there is an army of miners working as one distributed virtual machine.
Today their role is simple. After collecting a pack of requests, the miner drives them through the verification program. It confirms that you are who you are and that you have enough bitcoins to conduct a transaction. Then your transaction is accepted or discarded.
And what if you ask the miners to do something else? For example, "do not approve the transaction while I am alive." Or "when approving a transaction, correct the number of coins sent, taking into account the price of Tesla Motors shares."
The first example is the germ of automatic distribution of funds under a will without the need for a lawyer. The second is a decentralized exchange.
The examples are simplified and create new problems, but they simply illustrate an opinion - the calculations made by miners can turn into something more exotic. This is the basis of what are called “smart contracts” in which miners ensure the fulfillment of financial obligations. You can even imagine autonomous corporations linking financial transactions for smart devices with contracts concluded through a chain of blocks.
Now bitcoin has restrictions on such contracts. A minimalistic programming language limits the types of operations that miners can perform. But developers are constantly discussing new additions to the protocol.
It will be necessary to add flexibility to the protocol if Bitcoin wants to go beyond the static ledger. In 2012, the developers, in anticipation of this, added transactions with multiple signatures. They allow users to share ownership of addresses into several people, assigning them several private keys. Since then, many companies offer escrow services based on such transactions.
Changes to the protocol take time. To make sure that all participants in the network play by the rules, you need to make changes so that they satisfy all interested parties. This process can be tedious. Some believe that it limits the evolution of Bitcoin. “Now there are already five different parties involved in finding a consensus: developers, miners, retailers, users and service providers. Usually, the consent of all five parties is required in order to make changes to the protocol, says Andreas Antonopoulos, author of the instruction “Mastering Bitcoin”. “We are approaching the end of an era in which radical changes were possible.”
Recently, programmers involved in development have suggested a possible solution to the problem. Adam Beck, a cryptographer who developed the functionality that is central to Bitcoin security, has long advocated the creation of parallel chains of blocks, or third-party chains (sidechains).
They should work as a source of innovation in the Bitcoin ecosystem. It would be possible to freeze your coins in the main chain of blocks so that they could not be spent, and translate them into a parallel chain that communicates with the main one. She accepts exchanges, but works by her own rules. And the process must be reversible. Using third-party chains, developers could freely construct exotic platforms. Bitcoin owners could make payments through these experimental chains without leaving the Bitcoin system at all.Recently, the Blockstream company, founded by Beck along with a dozen other respected people in the community, released the implementation of third-party open source chains called Sidechain Elements.Meanwhile, Ethereum does not wait until the chain of Bitcoin blocks is tightened to its ambitions. This is a project working with a new chain that wants to turn the network of miners into a working distributed computer. Instead of handing out to the miners several new commands that need to be executed during the processing of a transaction, Ethereum allows them to run any programs. This means that miners can run software that is completely unrelated to transactions. Theoretically, the platform can be used to interact with any application, replacing a set of Internet servers with one large distributed virtual machine. The ultimate goal does look fantastic. “We are building a new type of Internet,” says Lubin.“In the Ethereum project, since each node is a full-fledged virtual computer. A developer can download a transaction with a computer code and add it to the network, he says. - The system recognizes it and installs a code on each node of the network. In a few seconds, your application will run worldwide. ”Interaction with applications consists in sending “ethers” (ethers, an analogue of bitcoins) to the network and requesting access to the software in a block chain.Financing of the project was extremely successful. The non-profit organization registered in Switzerland, the Ethereum Foundation, decided to receive funding by selling broadcasts to everyone. Unlike Bitcoin, Ethereum Network was designed to create a set of coins-ethers before the network starts. Last summer for 42 daysthe fund sold part of its reserves in exchange for bitcoins. The sale brought 31,529 bikoinov (at the time, the equivalent of $ 18 million, but now it is two times less).In recent months, developers have shown preliminary versions of their software at various meetings. In March in New York, Connor Keenan showed an application that performs all the functions of a web forum like Reddit. The program code is recorded in a software object called "contract" in the test version of the Ethereum chain. To use the program, it is necessary to create and distribute a transaction over the network (after spending a small amount of ethers, sending them to the address of the contract). Miners will run local copies of this program on their computers, allowing you to add posts and comments, etc. Another speaker showed a rudimentary video game.You can submit programs that accept transactions to show films, secure complex financial contracts, or organize a decentralized corporation.Take a rental car. Instead of going to the window and talking to the person who will spend your credit card and give you the keys, you send a transaction through Ethereum, which establishes a contract between you and the tenant company. This payment will be the code that activates the smart card (or mobile application, or any other type of key) so that you can start the car. Other programs in the block chain will track the number of kilometers traveled and calculate the rental price, and the profit will be automatically sent to the owners of the company. Adherents of bitcoins believe that this model is not only unnecessary, but also dangerous. “I am suspicious of complex ideas - distributed autonomous corporations that operate independently and in some miraculous way ensure their security,” says Gavin Andresen, one of the main developers of the bitcoin protocol. “Maybe someday, when we have romance mobiles and robot inspectors, we will be able to afford a company controlled by a code without people. Maybe then we will need complex contracts in a chain of blocks. But I think that this is still very far away. ”If we come there, says Lubin, then not through Bitcoin. “This is a very narrow protocol. “He does only one thing, and he does it well,” he says. - Probably, it would be possible to build everything that Ethereum can do through Bitcoin. And it would take you 10-100 times longer. In Ethereum, everything happens at the application level. It turns everything at the application level into software, the writing of which is accessible to millions of people - in contrast to the complicated fuss with cryptographic primitives. ”It is surprising that only six years after the creation of Bitcoin, those who already consider the system too close appeared. Developers can argue about how the future looks and where the next generation of bitcoin applications will appear, but they agree on one thing: the future will not be centralized. At least on this issue, a happy consensus was reached by the adherents of Bitcoin.