Как работает блокчейн? Технология блокчейн объясняется простыми словами
Технология BLockchain, вероятно, лучшее изобретение со времен самого Интернета. Это позволяет обмен ценностей без необходимости доверия или центральных органов власти. Представьте, что вы и я поставили 50 долларов на завтрашнюю погоду в Сан-Франциско. Могу поспорить, что будет солнечно, вы, что будет дождь. Сегодня у нас есть три варианта управления этой транзакцией:
- Мы можем доверять друг другу. Дождливо или солнечно, проигравший даст победителю 50 долларов. Если мы друзья, это может быть хорошим способом справиться с этим. Однако, друзья или незнакомцы, один может легко не заплатить другому.
- Мы можем превратить ставку в контракт . При наличии контракта обе стороны будут более склонны платить. Однако, если кто-либо из них решит не платить, победитель должен будет заплатить дополнительные деньги, чтобы покрыть судебные издержки, и судебное дело может занять много времени. Особенно для небольшого количества денег, это не кажется оптимальным способом управления транзакцией.
- Мы можем привлечь нейтральную третью сторону . Каждый из нас отдает 50 долларов третьей стороне, которая передаст общую сумму победителю. Но, эй, она также может сбежать со всеми нашими деньгами. Таким образом, мы получаем один из первых двух вариантов: доверие или контракт .
Ни доверие, ни контракт не являются оптимальным решением: мы не можем доверять незнакомцам, а выполнение контракта требует времени и денег. Технология blockchain интересна тем, что предлагает нам третий вариант - безопасный, быстрый и дешевый.
Блокчейн позволяет нам написать несколько строк кода, программу, работающую на блокчейне, на которую мы оба отправляем 50 долларов. Эта программа будет хранить $ 100 в безопасности и проверять погоду завтрашнего дня автоматически на нескольких источниках данных. Солнечно или дождливо, он автоматически переведет всю сумму победителю. Каждая сторона может проверить логику контракта, и после запуска в цепочке блоков ее нельзя изменить или остановить. Это может быть слишком много усилий для ставки в 50 долларов, но представьте себе продажу дома или компании.
В этой статье объясняется, как работает блокчейн, не обсуждая технические детали в деталях, но копая достаточно, чтобы дать вам общее представление о базовой логике и механизмах.
Основы Биткойн
Наиболее известным и обсуждаемым применением технологии блокчейн является биткойн , цифровая валюта, которая может использоваться для обмена продуктами и услугами, так же как доллар США, евро, китайский юань и другие национальные валюты. Давайте использовать это первое приложение технологии блокчейн, чтобы узнать, как она работает.
«Биткойн впервые дает нам возможность для одного интернет-пользователя передать уникальную часть цифровой собственности другому интернет-пользователю, так что передача гарантированно будет безопасной и надежной, все знают, что передача произошла, и никто не может оспорить законность передачи. Последствия этого прорыва трудно переоценить ».
- Марк Андреессен
Один биткойн - это единица цифровой валюты Биткойн (BTC). Как и доллар, биткойн сам по себе не имеет никакой ценности; это имеет ценность только потому, что мы согласны торговать товарами и услугами, чтобы взять больше валюты под наш контроль, и мы верим, что другие будут делать то же самое.
Для отслеживания количества биткойнов, которым владеет каждый из нас, блокчейн использует регистр , цифровой файл, который отслеживает все транзакции биткойнов.
Рис. 1 - упрощенный цифровой файл Биткойн-книги
Файл бухгалтерской книги не хранится на сервере центральной сущности, например в банке, или в отдельном центре обработки данных. Он распространяется по всему миру через сеть частных компьютеров, которые хранят данные и выполняют вычисления. Каждый из этих компьютеров представляет собой « узел » сети блокчейна и имеет копию файла бухгалтерской книги.
Если Дэвид хочет отправить биткойны Сандре, он передает в сеть сообщение, в котором говорится, что количество биткойнов на его счете должно уменьшиться на 5 BTC, а сумма на счете Сандры должна увеличиться на то же количество. Каждый узел в сети получит сообщение и применит запрошенную транзакцию к своей копии книги, обновив остатки на счетах.
Рис. 2 - Упрощенное сообщение с запросом на транзакцию
Тот факт, что бухгалтерская книга поддерживается группой подключенных компьютеров, а не централизованным предприятием, таким как банк, имеет несколько последствий:
В нашей банковской системе мы знаем только наши собственные транзакции и остатки на счетах; В блокчейне все могут видеть транзакции других.
Хотя вы, как правило, можете доверять своему банку, сеть биткойнов распределена, и, если что-то пойдет не так, нет справочной службы, к которой можно обратиться, или кого-то, кто подаст в суд.
Система блокчейна разработана таким образом, что доверие не требуется; безопасность и надежность достигаются с помощью специальных математических функций и кода.
Мы можем определить блокчейн как систему, которая позволяет группе подключенных компьютеров поддерживать единый обновленный и безопасный регистр. Для выполнения транзакций на блокчейне вам нужен кошелек , программа, которая позволяет хранить и обменивать ваши биткойны. Поскольку только вы должны иметь возможность тратить свои биткойны, каждый кошелек защищен специальным криптографическим методом, который использует уникальную пару отдельных, но связанных ключей: личный и открытый ключи.
Если сообщение зашифровано определенным открытым ключом, только владелец парного закрытого ключа может расшифровать и прочитать сообщение. Обратное также верно: если вы шифруете сообщение с помощью своего закрытого ключа, расшифровать его может только парный открытый ключ. Когда Дэвид хочет отправить биткойны, ему необходимо передать сообщение, зашифрованное с помощью закрытого ключа его кошелька. Поскольку Дэвид единственный, кто знает личный ключ, необходимый для разблокировки своего кошелька, он единственный, кто может потратить свои биткойны. Каждый узел в сети может перепроверить, что запрос на транзакцию исходит от Дэвида, расшифровав сообщение с помощью открытого ключа своего кошелька.
Когда вы шифруете запрос транзакции с помощью закрытого ключа вашего кошелька, вы генерируете цифровую подпись, которая используется компьютерами цепочки блоков для проверки источника и подлинности транзакции. Цифровая подпись - это текстовая строка, полученная в результате вашего запроса на транзакцию и вашего личного ключа; поэтому его нельзя использовать для других транзакций. Если вы измените один символ в сообщении запроса транзакции, цифровая подпись изменится, поэтому потенциальный злоумышленник не сможет изменить ваши запросы транзакций или изменить количество отправляемого вами биткойна.
Рис. 3 - Упрощенное шифрование транзакций цифровой подписи
Чтобы отправить биткойн, вам нужно доказать, что вы являетесь владельцем закрытого ключа конкретного кошелька, так как вам нужен ключ для шифрования сообщения запроса транзакции. Поскольку вы передаете сообщение только после того, как оно было зашифровано, вам никогда не придется раскрывать свой закрытый ключ.
Отслеживание баланса вашего кошелька
Каждый узел в блокчейне хранит копию книги . Итак, как узел узнает баланс вашего счета? Система блокчейнов вообще не отслеживает остатки на счетах; он только регистрирует каждую транзакцию, которая проверена и одобрена. По сути, бухгалтерская книга не отслеживает сальдо, а только отслеживает каждую транзакцию, транслируемую в сети биткойнов (рис. 4). Чтобы определить баланс своего кошелька, вам необходимо проанализировать и проверить все транзакции, которые когда-либо имели место во всей сети, подключенной к вашему кошельку.
Рис. 4 - Блокчейн ГК
Эта проверка «баланса» выполняется на основе ссылок на предыдущие транзакции. Чтобы отправить Джону 10 биткойнов, Мэри должна сгенерировать запрос транзакции, который включает ссылки на предыдущие входящие транзакции, которые в сумме составляют не менее 10 биткойнов. Эти ссылки называются «входами». Узлы в сети проверяют сумму и гарантируют, что эти входы еще не потрачены. Фактически, каждый раз, когда вы ссылаетесь на входные данные в транзакции, они считаются недействительными для любой будущей транзакции. Все это выполняется автоматически в кошельке Мэри и дважды проверяется узлами сети биткойнов; она только отправляет транзакцию в 10 BTC на кошелек Джона, используя его открытый ключ.
Рис. 5 - Структура запроса транзакции Blockchain
Итак, как система может доверять действительным входным транзакциям? Он проверяет все предыдущие транзакции, связанные с кошельком, который вы используете для отправки биткойнов через входные ссылки. Для ускорения процесса проверки сетевыми узлами ведется специальная запись неизрасходованных транзакций. Благодаря этой проверке безопасности невозможно потратить биткойны дважды.
Владение биткойнами означает, что в бухгалтерской книге записаны транзакции, которые указывают на адрес вашего кошелька и еще не использовались в качестве входных данных. Весь код для выполнения транзакций в сети биткойнов имеет открытый исходный код; это означает, что любой человек с ноутбуком и подключением к Интернету может управлять транзакциями. Однако в случае ошибки в коде, используемом для трансляции сообщения с запросом транзакции, соответствующие биткойны будут потеряны навсегда.
Помните, что, поскольку сеть распределена, вам не придется звонить в службу поддержки клиентов, и никто не сможет помочь вам восстановить потерянную транзакцию или забытый пароль кошелька. По этой причине, если вы заинтересованы в совершении сделок в сети биткойнов, рекомендуется использовать официальную версию программного обеспечения биткойн-кошелька с открытым исходным кодом (например, Bitcoin Core ) и хранить пароль или закрытый ключ вашего кошелька в очень безопасное хранилище.
Но действительно ли это безопасно? И почему он называется Blockchain?
Любой может получить доступ к сети биткойнов через анонимное соединение (например, сеть TOR или сеть VPN ) и отправлять или получать транзакции, не раскрывая ничего, кроме своего открытого ключа. Однако, если кто-то использует один и тот же открытый ключ снова и снова, можно подключить все транзакции к одному и тому же владельцу. Сеть биткойнов позволяет генерировать столько кошельков, сколько вам нужно, каждый со своим собственным закрытым и открытым ключами. Это позволяет вам получать платежи по разным кошелькам, и никто не может знать, что вы владеете закрытыми ключами всех этих кошельков, если только вы не отправите все полученные биткойны на один кошелек.
Общее количество возможных адресов биткойнов составляет 2¹⁶⁰ или 1461501637330902918203684832716283019655932542976.
Это большое количество защищает сеть от возможных атак, позволяя любому иметь собственный кошелек.
При такой настройке все еще существует серьезная дыра в безопасности, которую можно использовать для отзыва биткойнов после их использования. Транзакции передаются от узла к узлу в сети, поэтому порядок, в котором две транзакции достигают каждого узла, может быть различным. Злоумышленник может отправить транзакцию, подождать, пока контрагент отправит продукт, а затем отправить обратную транзакцию обратно на свою учетную запись. В этом случае некоторые узлы могут получить вторую транзакцию перед первой и, следовательно, считать первоначальную транзакцию оплаты недействительной, поскольку входные данные транзакции будут отмечены как уже использованные. Как узнать, какая транзакция была запрошена первой? Заказывать транзакции по отметке времени небезопасно ,потому что это может быть легко подделать. Следовательно, невозможно определить, произошла ли транзакция раньше другой, и это открывает возможность для мошенничества.
Если это произойдет, между узлами сети возникнут разногласия относительно порядка транзакций, полученных каждой из них. Таким образом, система блокчейнов была разработана для использования соглашения об узлах для заказа транзакций и предотвращения мошенничества, описанного выше.
Сеть биткойнов упорядочивает транзакции, группируя их в блоки ; каждый блок содержит определенное количество транзакций и ссылку на предыдущий блок. Это то, что ставит один блок за другим во времени. Поэтому блоки организованы в цепочку, связанную со временем (рис. 6), которая дает имя всей системе: блокчейн .
Рис. 6 - Упрощенная структура цепочки блоков
Транзакции в одном и том же блоке считаются выполненными в одно и то же время, а транзакции, которые еще не находятся в блоке, считаются неподтвержденными. Каждый узел может группировать транзакции в блок и транслировать их в сеть в качестве предложения, для которого блок должен быть следующим. Поскольку любой узел может предложить новый блок, как система согласует, какой блок должен быть следующим?
Для добавления в цепочку блоков каждый блок должен содержать ответ на сложную математическую задачу, созданную с использованием необратимой криптографической хеш-функции . Единственный способ решить такую математическую задачу - угадать случайные числа, которые в сочетании с предыдущим содержимым блока дают определенный результат. Обычному компьютеру может потребоваться около года, чтобы угадать правильное число и решить математическую задачу. Однако из-за большого числа компьютеров в сети, которые угадывают числа, блок решается в среднем каждые 10 минут. Узел, решающий математическую задачу, получает право разместить следующий блок в цепочке и передать его в сеть.
А что, если два узла решают проблему одновременно и одновременно отправляют свои блоки в сеть? В этом случае оба блока передаются широковещательно, и каждый узел строится на блоке, который он получил первым. Однако система блокчейнов требует, чтобы каждый узел немедленно строил самую длинную доступную блокчейн. Таким образом, если существует неопределенность относительно последнего блока, как только будет решен следующий блок, каждый узел примет самую длинную цепочку в качестве единственной опции.
Рис.7 - Конец цепочки неоднозначности логики
Из-за низкой вероятности одновременного решения блоков, практически невозможно, чтобы несколько блоков решались одновременно многократно, создавая разные «хвосты», поэтому вся цепочка блоков быстро стабилизируется до одной единственной цепочки блоков, с которой согласен каждый узел ,
Разногласия по поводу того, какой блок представляет собой конец хвоста цепи, снова открывают возможность для мошенничества. Если транзакция находится в блоке, который принадлежит более короткому хвосту (как блок B на рис. 7), как только будет решен следующий блок, эта транзакция вместе со всеми остальными в своем блоке вернется к неподтвержденным транзакциям ,
Транзакции в системе цепочек биткойнов защищены математической гонкой: любой злоумышленник конкурирует со всей сетью.
Давайте посмотрим, как Мэри могла бы использовать эту неопределенность в конце цепочки, чтобы выполнить атаку с двойным расходом. Мэри отправляет деньги Джону, Джон отправляет продукт Мэри. Поскольку узлы всегда принимают более длинный хвост в качестве подтвержденных транзакций, если Мэри сможет сгенерировать более длинный хвост, содержащий обратную транзакцию с теми же входными ссылками, у Джона не будет ни его денег, ни его продукта.
Рис. 8 - атака Мэри с двойным расходом
Как система предотвращает мошенничество такого рода? Каждый блок содержит ссылку на предыдущий блок (см. Рис. 6). Эта ссылка является частью математической проблемы, которую необходимо решить, чтобы распространить следующий блок в сети. Таким образом, чрезвычайно сложно предварительно вычислить серию блоков из-за большого количества случайных догадок, необходимых для решения блока и размещения его в цепочке блоков. Мэри борется с остальной частью сети, чтобы решить математическую задачу, которая позволяет ей разместить следующий блок в цепочке. Даже если она решит ее раньше, чем кто-либо другой, очень маловероятно, что она сможет решить два, три или более блоков подряд, поскольку каждый раз она конкурирует со всей сетью.
Может ли Мэри использовать супер быстрый компьютер, чтобы генерировать достаточно случайных догадок, чтобы конкурировать со всей сетью в решении блоков? Да, но даже с очень, очень быстрым компьютером, из-за большого количества участников в сети, очень маловероятно, что Мэри сможет решить несколько блоков подряд в точное время, необходимое для выполнения атаки с двойным расходом.
Ей нужно было бы контролировать 50 процентов вычислительной мощности всей сети, чтобы иметь 50-процентный шанс решить блок, прежде чем это сделает какой-либо другой узел - и даже в этом случае у нее будет только 25-процентный шанс решения двух блоков. в ряд. Чем больше блоков будет решено подряд, тем ниже вероятность ее успеха. Транзакции в системе цепочек биткойнов защищены математической расой: любой злоумышленник конкурирует со всей сетью.
Поэтому транзакции становятся более безопасными со временем. Например, те, которые включены в блок, подтвержденный час назад, более безопасны, чем те, что включены в блок, подтвержденный за последние 10 минут . Поскольку блок добавляется в цепочку в среднем каждые 10 минут, транзакция, включенная в блок впервые час назад, скорее всего, была обработана и теперь необратима.
Рис. 9 - Безопасность транзакций блокчейна
Майнинг Биткойн
Чтобы отправлять биткойны, вам необходимо сослаться на входящую транзакцию на свой собственный кошелек. Это относится к каждой транзакции в сети. Итак, откуда вообще появились биткойны?
Как способ сбалансировать дефляционную природу биткойнов из-за программных ошибок и потери пароля кошелька, награда дается тем, кто решает математическую задачу каждого блока. Деятельность по запуску программного обеспечения биткойн-блокчейна для получения этих биткойн-вознаграждений называется «майнингом» - и это очень похоже на добычу золота.
Награды являются основным стимулом для частных лиц для работы узлов, обеспечивая тем самым необходимую вычислительную мощность для обработки транзакций и стабилизации сети блокчейн.
Поскольку типичному компьютеру требуется много времени для решения блока (в среднем около года), узлы объединяются в группы, которые делят количество догадок для решения следующего блока. Работа в группе ускоряет процесс угадывания правильного числа и получения вознаграждения, которое затем распределяется между членами группы. Эти группы называются майнинг пулами .
Некоторые из этих майнинговых пулов очень велики и составляют более 20 процентов общей вычислительной мощности сети. Это имеет очевидные последствия для безопасности сети, как видно из приведенного выше примера атаки с двойным расходом. Даже если один из этих пулов потенциально может получить 50 процентов вычислительной мощности сети, чем дальше по цепочке проходит блок, тем более безопасными становятся транзакции внутри него.
Тем не менее, некоторые из этих майнинговых пулов, обладающих значительной вычислительной мощностью, решили ограничить число своих участников для обеспечения общей безопасности сети.
Поскольку общая вычислительная мощность сети со временем, вероятно, будет увеличиваться из-за технологических инноваций и растущего числа узлов, система блокчейнов перекалибрует математическую сложность решения следующего блока, чтобы достичь в среднем 10 минут для всей сети. Это обеспечивает стабильность сети и общую безопасность.
Более того, каждые четыре года вознаграждение за блок сокращается вдвое, поэтому майнинг биткойнов (работа в сети) со временем становится менее интересным. Чтобы побудить узлы продолжать работать, к каждой транзакции может быть добавлено небольшое вознаграждение; эти награды собираются узлом, который успешно включает такие транзакции в блок и решает свою математическую проблему. Благодаря этому механизму транзакции, связанные с более высоким вознаграждением, обычно обрабатываются быстрее, чем транзакции, связанные с низким вознаграждением. Это означает, что при отправке транзакции вы можете решить, хотите ли вы обрабатывать ее быстрее (дороже) или дешевле (занимает больше времени). Сборы за транзакции в сети биткойнов в настоящее время очень малы по сравнению с тем, что взимают банки, и они не связаны с суммой транзакции.
Преимущества и проблемы Blockchain
Теперь, когда у вас есть общее представление о том, как работает блокчейн, давайте кратко рассмотрим, почему это так интересно.
Использование технологии блокчейн имеет замечательные преимущества:
-Вы полностью контролируете свою ценность; не существует третьей стороны, которая удерживает вашу ценность или может ограничить ваш доступ к ней.
-Стоимость выполнения транзакции стоимости из любой точки планеты очень мала. Это позволяет микроплатежей .
-Значение может быть передано за несколько минут, и транзакция может считаться безопасной через несколько часов, а не дней или недель.
-Любой в любое время может проверить каждую транзакцию, выполненную в блокчейне, что обеспечивает полную прозрачность.
-Можно использовать технологию блокчейна для создания децентрализованных приложений , которые смогут быстро и безопасно управлять информацией и передавать ценность.
Однако есть несколько проблем, которые необходимо решить:
-Транзакции могут быть отправлены и получены анонимно. Это сохраняет конфиденциальность пользователей, но также допускает незаконную деятельность в сети.
-Хотя появляется множество биржевых платформ и цифровые валюты набирают популярность, торговать биткойнами за товары и услуги по-прежнему нелегко.
-Биткойн, как и многие другие криптовалюты, очень нестабилен: на рынке не так много доступных биткойнов, и спрос быстро меняется. Цена на биткойны нестабильна и меняется в зависимости от крупных событий или анонсов в индустрии криптовалют.
В целом, технология блокчейна может революционизировать несколько отраслей - от рекламы до распределения энергии. Его главная сила заключается в его децентрализованном характере и способности устранять потребность в доверии.
Постоянно появляются новые варианты использования - например, возможность создания полностью децентрализованной платформы, которая запускает умные контракты, такие как Ethereum. Но важно помнить, что технология все еще находится в зачаточном состоянии. Каждый день разрабатываются новые инструменты для повышения безопасности блокчейна, предлагая более широкий спектр функций, инструментов и услуг.