Есть фундаментальная вещь, которую я не понимаю в блокчейне. Проблема выглядит настолько очевидной, что даже неловко задавать вопрос. Скорее всего я чего-то не знаю. Но выглядит все так, что у блокчейна есть неразрешимая проблема. На уровне законов сохранения.
Представьте себе инфраструктуру любого крупного сервиса, например ВКонтакте. Она централизована. Если очень упростить, то миллионы пользователей делают запросы к одной точке. Чтобы эта точка выдержала нагрузку, ее горизонтально масштабируют - строят датацентры, добавляют серверы с ростом нагрузки. Условно, один сервер отвечает за 10 тысяч пользователей. Очень простая схема, каждый сервер обрабатывает запросы не более чем от 10к пользователей, сервис гарантированно справляется с нагрузкой. При хорошей архитектуре зависимость будет близка к линейной — если пользователей стало в 2 раза больше, надо добавить в 2 раза больше серверов.
Блокчейн — децентрализованная архитектура, она сделана так, чтобы ни одному узлу сети не пришлось верить на слово. Для этого каждый пользователь хранит полную копию всех операций в системе. Это тоже упрощение, но общая идея такая: чтобы провести операцию, она должна попасть на все машины всех пользователей сети. Это значит, что с ростом количества пользователей растет количество запросов на _каждый_ узел сети. Если условные 100 млн человек пользуются банковскими картами и генерируют тысячу транзакций в секунду, то для стабильной работы потребуется, условно, сто серверов. Каждая транзакция будет записываться на свой сервер. Одна транзакция — один запрос к одному из ста серверов. Чтобы обслужить 100млн человек в блокчейне, нужно чтобы эту же тысячу транзакций к себе каждую секунду записывали 100 миллионов компьютеров. Каждая отдельная операция должна попасть к каждому. Вместо одного запроса к небольшому датацентру нам нужно сделать 100 миллионов запросов — рассказать всем в сети о новой операции.
Я сознательно упрощаю, опускаю историю про блоки, майнеров, алгоритмы синхронизации с блокчейном. Конечно, все не настолько плохо, вы не должны персонально каждому компьютеру в сети рассказать о транзакции. Меня больше волнует не техническая, а философская составляющая этой истории. Похоже, что настоящая честная децентрализация без доверия физически невозможна, потому что в любой такой системе каждый узел должен обслуживать операции всех других узлов. Это как если бы ВКонтакте обслуживал 100 миллионов человек на единственном сервере. Только серверов 100 миллионов, но зато каждый должен сделать запрос к каждому (так или иначе, не важно по цепочке или сам).
Собственно, блокчеин потому и тормозит нещадно уже сейчас. А синхронизация с ним так сильно нагружает систему, что может убить вам жесткий диск — именно потому что ваш компьютер должен сам проверить все операции, которые произошли до его подключения к сети, прежде чем начать их проводить сам. Ведь он никому не доверяет, в этом философия блокчейна. Проблему низкой скорости криптовалютных сетей сейчас решают просто: проводят операции off-chain, то есть с участием стороннего сервиса, вне блокчейна. А потом уже этот сервис загружает их обратно в блокчеин. Посредник в проведении операций — это разрыв цепочки доверия, ради которой вся эта криптовалютная история затевалась. Сторонний сервис, которому ты доверяешь свои деньги, называется словом «банк». Стоило изобретать децентрализованную валюту, чтобы проводить операции с помощью обычного банка ¯\_(ツ)_/¯
Представьте себе инфраструктуру любого крупного сервиса, например ВКонтакте. Она централизована. Если очень упростить, то миллионы пользователей делают запросы к одной точке. Чтобы эта точка выдержала нагрузку, ее горизонтально масштабируют - строят датацентры, добавляют серверы с ростом нагрузки. Условно, один сервер отвечает за 10 тысяч пользователей. Очень простая схема, каждый сервер обрабатывает запросы не более чем от 10к пользователей, сервис гарантированно справляется с нагрузкой. При хорошей архитектуре зависимость будет близка к линейной — если пользователей стало в 2 раза больше, надо добавить в 2 раза больше серверов.
Блокчейн — децентрализованная архитектура, она сделана так, чтобы ни одному узлу сети не пришлось верить на слово. Для этого каждый пользователь хранит полную копию всех операций в системе. Это тоже упрощение, но общая идея такая: чтобы провести операцию, она должна попасть на все машины всех пользователей сети. Это значит, что с ростом количества пользователей растет количество запросов на _каждый_ узел сети. Если условные 100 млн человек пользуются банковскими картами и генерируют тысячу транзакций в секунду, то для стабильной работы потребуется, условно, сто серверов. Каждая транзакция будет записываться на свой сервер. Одна транзакция — один запрос к одному из ста серверов. Чтобы обслужить 100млн человек в блокчейне, нужно чтобы эту же тысячу транзакций к себе каждую секунду записывали 100 миллионов компьютеров. Каждая отдельная операция должна попасть к каждому. Вместо одного запроса к небольшому датацентру нам нужно сделать 100 миллионов запросов — рассказать всем в сети о новой операции.
Я сознательно упрощаю, опускаю историю про блоки, майнеров, алгоритмы синхронизации с блокчейном. Конечно, все не настолько плохо, вы не должны персонально каждому компьютеру в сети рассказать о транзакции. Меня больше волнует не техническая, а философская составляющая этой истории. Похоже, что настоящая честная децентрализация без доверия физически невозможна, потому что в любой такой системе каждый узел должен обслуживать операции всех других узлов. Это как если бы ВКонтакте обслуживал 100 миллионов человек на единственном сервере. Только серверов 100 миллионов, но зато каждый должен сделать запрос к каждому (так или иначе, не важно по цепочке или сам).
Собственно, блокчеин потому и тормозит нещадно уже сейчас. А синхронизация с ним так сильно нагружает систему, что может убить вам жесткий диск — именно потому что ваш компьютер должен сам проверить все операции, которые произошли до его подключения к сети, прежде чем начать их проводить сам. Ведь он никому не доверяет, в этом философия блокчейна. Проблему низкой скорости криптовалютных сетей сейчас решают просто: проводят операции off-chain, то есть с участием стороннего сервиса, вне блокчейна. А потом уже этот сервис загружает их обратно в блокчеин. Посредник в проведении операций — это разрыв цепочки доверия, ради которой вся эта криптовалютная история затевалась. Сторонний сервис, которому ты доверяешь свои деньги, называется словом «банк». Стоило изобретать децентрализованную валюту, чтобы проводить операции с помощью обычного банка ¯\_(ツ)_/¯
There is a fundamental thing that I do not understand in the blockchain. The problem seems so obvious that it’s even awkward to ask a question. Most likely I don’t know something. But it looks like the blockchain has an insoluble problem. At the level of conservation laws.
Imagine the infrastructure of any major service, such as VKontakte. It is centralized. To simplify it, millions of users make requests to a single point. In order for this point to withstand the load, it is scaled horizontally - data centers are built, servers are added with increasing load. Conventionally, one server is responsible for 10 thousand users. A very simple scheme, each server processes requests from no more than 10k users, the service is guaranteed to cope with the load. With a good architecture, the dependence will be close to linear - if there are 2 times more users, you need to add 2 times more servers.
Blockchain is a decentralized architecture, it is made in such a way that no network node has to take a word. To do this, each user stores a complete copy of all operations in the system. This is also a simplification, but the general idea is this: in order to carry out an operation, it must go to all the machines of all network users. This means that with an increase in the number of users, the number of requests to _ every_ host on the network increases. If the conditional 100 million people use bank cards and generate a thousand transactions per second, then for the stable operation it will take, conditionally, one hundred servers. Each transaction will be recorded on its server. One transaction - one request to one of one hundred servers. In order to serve 100 million people on the blockchain, it is necessary that 100 million computers record this same thousand transactions to themselves every second. Each individual operation should go to each. Instead of a single request to a small data center, we need to make 100 million requests - to tell everyone on the network about the new operation.
I deliberately simplify, omit the history of blocks, miners, synchronization algorithms with the blockchain. Of course, everything is not so bad, you do not have to personally tell each computer on the network about the transaction. I am more concerned not with the technical, but with the philosophical component of this story. It seems that true honest decentralization without trust is physically impossible, because in any such system each node must serve the operations of all other nodes. It is as if VKontakte served 100 million people on a single server. There are only 100 million servers, but everyone should make a request to everyone (one way or another, it doesn’t matter along the chain or himself).
Actually, the blockchain is therefore slowing down mercilessly now. And synchronization with it loads the system so much that it can kill your hard drive - precisely because your computer must check all the operations that happened before it connected to the network itself before starting to carry out them yourself. After all, he does not trust anyone, this is the philosophy of the blockchain. The problem of low speed cryptocurrency networks is now solved simply: they conduct off-chain operations, that is, with the participation of a third-party service, outside the blockchain. And then this service loads them back into the blockchain. The intermediary in conducting operations is the breaking of the chain of trust, for the sake of which this entire cryptocurrency story was conceived. A third-party service that you trust your money with is called the word "bank." It was worth inventing a decentralized currency in order to conduct operations with the help of an ordinary bank ¯ \ _ (ツ) _ / ¯
Imagine the infrastructure of any major service, such as VKontakte. It is centralized. To simplify it, millions of users make requests to a single point. In order for this point to withstand the load, it is scaled horizontally - data centers are built, servers are added with increasing load. Conventionally, one server is responsible for 10 thousand users. A very simple scheme, each server processes requests from no more than 10k users, the service is guaranteed to cope with the load. With a good architecture, the dependence will be close to linear - if there are 2 times more users, you need to add 2 times more servers.
Blockchain is a decentralized architecture, it is made in such a way that no network node has to take a word. To do this, each user stores a complete copy of all operations in the system. This is also a simplification, but the general idea is this: in order to carry out an operation, it must go to all the machines of all network users. This means that with an increase in the number of users, the number of requests to _ every_ host on the network increases. If the conditional 100 million people use bank cards and generate a thousand transactions per second, then for the stable operation it will take, conditionally, one hundred servers. Each transaction will be recorded on its server. One transaction - one request to one of one hundred servers. In order to serve 100 million people on the blockchain, it is necessary that 100 million computers record this same thousand transactions to themselves every second. Each individual operation should go to each. Instead of a single request to a small data center, we need to make 100 million requests - to tell everyone on the network about the new operation.
I deliberately simplify, omit the history of blocks, miners, synchronization algorithms with the blockchain. Of course, everything is not so bad, you do not have to personally tell each computer on the network about the transaction. I am more concerned not with the technical, but with the philosophical component of this story. It seems that true honest decentralization without trust is physically impossible, because in any such system each node must serve the operations of all other nodes. It is as if VKontakte served 100 million people on a single server. There are only 100 million servers, but everyone should make a request to everyone (one way or another, it doesn’t matter along the chain or himself).
Actually, the blockchain is therefore slowing down mercilessly now. And synchronization with it loads the system so much that it can kill your hard drive - precisely because your computer must check all the operations that happened before it connected to the network itself before starting to carry out them yourself. After all, he does not trust anyone, this is the philosophy of the blockchain. The problem of low speed cryptocurrency networks is now solved simply: they conduct off-chain operations, that is, with the participation of a third-party service, outside the blockchain. And then this service loads them back into the blockchain. The intermediary in conducting operations is the breaking of the chain of trust, for the sake of which this entire cryptocurrency story was conceived. A third-party service that you trust your money with is called the word "bank." It was worth inventing a decentralized currency in order to conduct operations with the help of an ordinary bank ¯ \ _ (ツ) _ / ¯
У записи 20 лайков,
1 репостов,
1545 просмотров.
1 репостов,
1545 просмотров.
Эту запись оставил(а) на своей стене Андрей Мима