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