Шрифт:
Интервал:
Закладка:
Блокчейн – это мета-технология, потому что она влияет на другие технологии и, в свою очередь, состоит из нескольких технологий. Это как объединение компьютеров и сетей, которые построены на основе интернета. Изучая архитектурные слои блокчейна, вы обнаруживаете, что он состоит из нескольких частей: базы данных, программного приложения, нескольких компьютеров, подключенных друг к другу, клиентов, имеющих доступ к нему, программной среды, на которой он основан, инструментов для контроля над ним и других частей (которые будут рассмотрены в главе 6).
Блокчейн – это не просто новая технология. Это технология, которая бросает вызов другим существующим программным технологиям, поскольку она может заменить или дополнить существующую практику. По сути, это технология, которая изменяет другую технологию.
В прошлый раз мы были свидетелями такой каталитической технологии в период появления всемирной паутины. Сеть также изменила способ создания программных приложений, она принесла с собой новые программные технологии, которые бросали вызов и заменяли предыдущие. В 1993 году HTML, язык разметки, изменил публикацию. В 1995 году Java, язык программирования Web, изменил программирование. Несколькими годами ранее TCP/IP, компьютерный сетевой протокол, начал менять сетевое взаимодействие, делая его полностью совместимым во всем мире.
С точки зрения разработки программного обеспечения, одним из самых больших изменений в парадигме, на которые претендует блокчейн, является брошенный им вызов функции и монополии традиционной базы данных в том виде, как мы ее знаем в настоящее время. Поэтому нам нужно понять, как блокчейн заставляет нас глубоко переосмысливать существующие конструкции базы данных.
Блокчейн изменяет способ написания приложений через новую форму языков сценариев, которые могут программировать бизнес-логику как «умные» контракты, которые применяются на блокчейне.
Программное обеспечение, теория игр и криптография
Другой способ попытаться понять блокчейн состоит в том, чтобы рассматривать его как триаду, объединяющую известные нам области: 1) теорию игр, 2) науку криптографию и 3) разработку программного обеспечения. Отдельно эти сферы существовали в течение длительного времени, но впервые они пересеклись вместе и гармонично преобразились в рамках технологии блокчейна.
Теория игр – это «изучение математических моделей конфликта и сотрудничества между разумными мыслящими людьми, принимающими решения». И это связано с блокчейном, потому что блокчейн биткоина, первоначально придуманный Сатоши
Накамото, должен был решить известную головоломку теории игр – «задачу византийских генералов»[3].
Решение этой задачи заключается в том, чтобы гарантировать победу за счет смягчения последствий любых попыток небольшого числа нечестных генералов солгать о координации своих сил в атаке.
Это достигается путем процесса проверки работы, которая была осуществлена при обработке отправленных сообщений, и ограничения времени для необходимого просмотра сообщений, обеспечивающего их достоверность. Учитывать «отказоустойчивость византийской схемы» важно, поскольку она начинается с предположения, что вы не можете доверять кому-либо, и тем не менее система обеспечивает уверенность в том, что транзакция прошла и безопасно достигла контрагента, не пострадав от потенциальных атак, – это основано на доверии к сети.
Этот новый метод достижения безопасности в завершении транзакции имеет фундаментальные последствия, поскольку он ставит под вопрос существование и роль нынешних доверенных посредников, которые традиционно занимаются проверками транзакций. Это заставляет нас задуматься над экзистенциальным вопросом: зачем нам центральная власть для обеспечения центрального доверия, если мы сможем достичь такой же достоверности, когда транзакция перемещается от одного партнера к другому через сеть, в которую «встроено» доверие?
Криптографическая наука используется во многих местах для обеспечения безопасности блокчейна, и она опирается на три базовых концепта: хэширование, ключи и цифровые подписи. «Хэш» – это уникальный «отпечаток пальца», который помогает без необходимости фактического просмотра проверить, что определенная часть информации не была изменена. Ключи используются по крайней мере в комбинации двух сфер: публичной и частной. Для аналогии представьте дверь, которая нуждается в двух ключах, чтобы ее открыть. В этом случае открывающий ключ используется отправителем для шифрования информации, которая может быть расшифрована только владельцем закрывающего ключа. Вы никогда не раскрываете свой личный ключ. Цифровая подпись – это математическое вычисление, которое используется для подтверждения подлинности (цифрового) сообщения или документа.
Криптография основана на государственной/частной гегемонии, которая представляет собой инь-ян блокчейна: публичная видимость, но частная инспекция. Это немного похоже на ваш домашний адрес: вы можете публиковать его, но это не дает никакой информации о том, как выглядит ваш дом внутри. Вам понадобится ваш личный ключ, чтобы войти в ваш частный дом, а поскольку вы задекларировали определенный адрес в качестве своего, никто не сможет присвоить его себе.
Хотя концепции криптографии существуют уже давно, инженеры-программисты наслаждаются сочетанием ее с инновациями теории игр, чтобы создать общие конструкции блокчейна, где кажущаяся неопределенность компенсируется подавляющей математической достоверностью.
База данных vs. Реестра
У нас есть транзакции, которые могут быть проверены без участия третьей стороны. Теперь вы думаете: а как насчет баз данных? Мы всегда считали, что базы данных являются надежными хранилищами активов.
В случае блокчейна реестр – это неопровержимая запись, которая содержит подтверждение транзакций блокчейном.
Давайте рассмотрим это на примере ситуации: база данных против блокчейна (реестра).
Когда вы открываете банковский счет, в действительности вы отказываетесь от своих прав в этом «аккаунте». На самом деле банк дает вам иллюзию доступа и видимости активности в нем. Каждый раз, когда вы хотите переместить деньги, заплатить кому-то или внести деньги, банк дает вам явный доступ, потому что вы оказали им неявное доверие, допустив к своим делам. Но этот «доступ» также является еще одной иллюзией. В действительности это доступ к записи в базе данных, которая говорит, что у вас есть такая-то сумма денег. Опять же они обманули вас, дав вам иллюзию, что вы «владеете» этими деньгами. Но банк обладает высшим авторитетом, потому что у него есть база данных, которая указывает на эту запись, которая говорит, что у вас есть деньги, а вы лишь предполагаете, что они у вас есть.