Взгляд венчурного инвестора на Блокчейн | 04: Как устроен Блокчейн
Блокчейн – технология, лежащая в основе криптоактивов, таких как биткоин, эфир и других. Главная инновация Блокчейна – это возможность вести общедоступный онлайн-реестр транзакций без каких-либо посредников. Это позволяет построить новую мировую финансовую систему без банков. Кроме того, можно будет под корень изменить и ряд других отраслей.
Для того, чтобы суметь выбрать «the next big thing» в мире крипто-экономики, нужно понимать, как устроена сама технология, иначе легко пасть жертвой жуликов. В этом посте я на пальцах расскажу о том, как устроена технология Блокчейн, следующий пост будет про майнинг. Эта часть блога технически непростая, но я убежден, что понимание технологии на таком уровне необходимо для успешного инвестирования в долгосрочной перспективе.
Напомню, какими свойствами должен обладать Блокчейн:
Прозрачность: должен быть открыт и прозрачен для всех
Неизменность: никто не может изменить то, что уже записано в Блокчейне
First-in-first-out: сообщения, полученные сетью, сохраняются по принципу «раньше получено – раньше записано». Таким образом устраняется проблема дупликации сообщений (Double spending)
Как выглядит блок
Блокчейн (block-chain), как следует из названия – это цепочка блоков. Блок – это буквально большой текстовый файл с определенной структурой. Эта структура включает следующие обязательные поля:
Номер блока: просто последовательный номер в цепочке. Например, последний номер блока в сети Bitcoin на момент написания этого поста – 708160.
Дата включения блока: точное время включения блока в цепочку.
Ссылка на предыдущий блок: показан хэш предыдущего блока – длинное число вида 0x3bb…7ec.
Вспомогательная информация: системная информация, зависит от конкретного Блокчейна. Например, это может быть сложность сети, размер блока в байтах, число транзакций в блоке и т.д.
Nonce: это число от 0 до примерно 4 миллиардов (0..232-1), оно нужно для майнинга, мы вернемся к этому числу позже.
- Контент: содержимое самого блока – это может быть что угодно, например, фраза «Боб любит Алису» либо ссылка на картинку из Интернета. Это полностью зависит от конкретного Блокчейна и от ваших целей. Например, в блокчейне Биткоина записываются транзакции передачи биткоинов между участниками сети.
- Хэш блока: это хэш, взятый от всего содержимого нашего блока – текстового файла от начала и до этого момента, длинное число вида 0x8b2…e8b.
Как блоки соединяются в цепочку
Давайте на время забудем о транзакциях, и пусть в блоке будет только одно текстовое сообщение. Допустим, вы хотите послать в сеть фразу «Боб любит Алису» и оставить ее навсегда в Блокчейне в назидание потомкам. Вы рассылаете всем участникам сети просьбу: «Пожалуйста, добавьте новый блок с фразой «Боб любит Алису».
Каждый в отдельности участник сети формирует из вашего сообщения блок, добавляя туда порядковый номер (теперь уже №708161), ссылку на хэш блока №708160 и так далее. После этого каждый участник сети пробует решить сложную криптографическую задачу, привязанную конкретно к вашему блоку. Я объясню, что это за задача такая, в посте про майнинг, пока же просто поверьте мне на слово. Задача сама по себе имеет вероятностный характер, но чем больше сил он тратит на ее решение, тем больше шанс, что именно он ее решит.
Если участнику повезло, то он как можно скорее рассылает всем другим участникам сети ваш блок с доказательством того, что он решил задачу. Все остальные участники сети проверяют, что решение верное, что ваш блок технически правильно составлен и что цепочка Блокчейна верно сконструирована (не была подменена, изменена и т.п.). Если все верно – участники сети признают за ним первенство и добавят блок в цепочку.
Результат – фраза «Боб любит Алису» добавлена в Блокчейн, а победивший участник получил от сети вознаграждение за успешно решенную задачу. Вознаграждение выплачивается в виде заново созданных монет (например, Биткоинов), а также за счет транзакционной оплаты, которую можете предложить вы (Tx fee).
Это будет выглядеть так:
Я использую цепочку сверху и прикрепляю справа новый блок
Процесс решения такой криптографической задачи называется Майнингом. Сложность этой задачи варьируется автоматически в зависимости от того, как быстро майнерам удалось решить такую задачу в прошлом блоке. Например, в блокчейне Биткоина сложность выставляется так, чтобы на решение одной задачи у майнеров уходило в среднем 10 минут. А в блокчейне Эфира так, чтобы решение одной задачи занимало в среднем 15 секунд.
Кстати, вы можете проверить, насколько точно выполняется это правило: если на момент написания поста в сети было 708 160 блоков и на формирование каждого из них должно было уходить в среднем 10 минут, то сколько лет Блокчейну? Должно быть около 13 лет. Также можно посмотреть на график со средним временем майнинга блоков за всю историю блокчейна Биткоина.
ПОка что все про устройство блоков. В следующем посте расскажу, как работает майнинг и что за зверь криптозадача.