Содержание
#1. Общие сведения
#2. Техническое описание
#3. Что внутри блока
#4. Как блоки связаны друг с другом
#5. Блок генезиса
#6. Транзакция блокчейна
#7. Контроль доступа
#8. Централизованные
#9. Децентрализованные
#10. Консорциумные
// Блокчейн
#1. Общие сведения
#2. Техническое описание
#3. Что внутри блока
#4. Как блоки связаны друг с другом
#5. Блок генезиса
#6. Транзакция блокчейна
#7. Контроль доступа
#8. Централизованные
#9. Децентрализованные
#10. Консорциумные
Блокчейн позиционируют как самый безопасный способ хранения информации, который исключает кражу важных данных, мошеннические действия, защищает имущественные права и тому подобное. В статье мы старательно развинтим новую технологию на составляющие и посмотрим, сколько в этом тезисе правды, а сколько — рекламы.
Блокчейн — это архитектура для построения баз данных, способная, помимо хранения информации, служить источником «истины». Это дает уверенность в том, что информация в системе подлинная и не может быть изменена без согласия всех заинтересованных лиц, что исключает возможность нежелательных и мошеннических действий.
В практическом применении блокчейн рассматривается как безопасный бесконечный журнал финансовых (или других) транзакций, который можно использовать для денежных операций и практически всего, что имеет формальную ценность. Безопасность технологии обусловлена тремя факторами:
В блокчейн-сети есть два типа участников:
Из блоков система формирует упорядоченную «назад» структуру. Блок в такой структуре может быть идентифицирован с использованием криптографического хеша (также известного как цифровой отпечаток) — алгоритма (секретного ключа, или хеш-ключа) для шифрования данных с помощью криптографии. Расшифровывают данные с помощью этого же ключа или другого, также сгенерированного с помощью криптографии. Таким образом, все данные могут быть связаны через структуру связанного списка.
Этот каскадный эффект гарантирует, что если сеть насчитывает много поколений, то она не может быть изменена (взломана) без изменения всех последующих блоков, поскольку для этого нужно задействовать огромные вычислительные мощности. Или, другими словами, чем длиннее цепочка блоков, тем безопаснее система.
Блок состоит из заголовка (Head), содержащего метаданные. Далее идет длинный список транзакций (Payload), который занимает большую часть всего объема блока. Так, на старте блок Биткоина мог вместить более 500 транзакций, поскольку он был объемом 80 байт (сейчас размер больше), а транзакции требовали по 250 байт.
При этом блокчейн гораздо надежнее любой бухгалтерской книги или любого банковского реестра операций, поскольку копии блокчейна, как уже отмечалось, хранятся на множестве компьютеров (серверов). Чтобы взломать такую сеть, нужно взять под контроль больше половины полных узлов системы. Например, в случае Биткоина это означает, что нужно взломать миллионы компьютеров пользователей.
Структура данных дерева Меркла позволяет проводить быструю проверку посредством построения пути дерева от нижнего уровня до корневого узла. Поскольку каждый вывод транзакции может быть проведен только один раз, пока он расходуется, его можно удалить из структуры дерева с помощью определенных алгоритмов отсечения. Таким образом, можно уменьшить использование дискового пространства без ущерба функции проверки.
Работает это так:
Как уже говорилось ранее, блокчейн сети Биткоин — это база данных, которая записывает и хранит информацию о транзакциях виртуальных монет (биткоинов). Транзакция в такой сети в упрощенном представлении имеет следующий вид:
С < address 1> отправитель < N> биткоинов на < address 2>
В компьютерном коде транзакция, записанная в блок блокчейна, несколько сложнее, поскольку протокол Биткоина оперирует такими понятиями, как Входы (Inputs или In) и Выходы (Outputs или Out).В цифровой валюте новые транзакции через Входы (один или несколько) ссылаются на Выходы (один или несколько) предыдущих транзакций и формируют Выходы (также один или несколько) для использования уже в следующих транзакциях.
Первый блок в blockchain называется блоком генезиса. В сети Биткоин такой блок был создан в 2009 году, он является общим прародителем всех блоков в данной экосистеме. Это означает, что если вы выберете любой блок и проследите цепочку назад во времени, то в конечном итоге придете к блоку генезиса. Каждая цепочка блокчейна всегда начинается по крайней мере из одного блока, и так как блок генезиса закодирован статически в клиентском программном обеспечении любого блокчейна (это его исходная точка), то он не может быть модифицирован.
Следовательно, каждый узел всегда «знает» хеш блока генезиса и его структуру, фиксированное время, когда он был создан, а также единую транзакцию в этом блоке. Таким образом, каждый узел имеет отправную точку для блокчейна — «корень» безопасности, из которого можно выстроить надежную и безопасную базу данных. Блоку генезиса сети Биткоин соответствует следующий хеш:
Или так (если использовать базовый клиент Bitcoin Core с командной строкой Windows):
Интересный факт. Блок генезиса Биткоина содержит скрытое сообщение: «Таймс 03 / Янв / 2009 Министр экономики на рубеже второго раунда в спасении банков». Это символическое сообщение, которое содержит ссылку на заголовок британской газеты The Times. Это отсылка к важности создания надежной, безопасной и независимой монетарной системы, вроде Биткоина, которая будет «гаванью» стабильности во времена финансовых кризисов. Данное сообщение было заложено в первый блок Сатоши Накамото, создателя Биткоина.
Поскольку транзакции в блокчейне — это по сути операции с криптовалютой, например биткоинами, структуру транзакции (последовательность цифровых подписей) можно визуализировать следующим образом:
Подпись участника подобна подписи на чеке, который с помощью секретного ключа подтверждает полномочия пользователя как собственника средств. Если открытый ключ можно раздавать всем, то секретный ключ следует держать при себе. Этот ключ предоставляет полный доступ к операциям по счету. Это похоже на пластиковую карточку (открытый ключ), ее можно показывать, даже дать вставить в банкомат, однако для снятия денег потребуется пин-код (секретный ключ).
Биткойн-блокчейн — общедоступная сеть. Это означает, что все участники системы равны и имеют равные права доступа к цепочке, которые позволяют читать информацию в цепочке и добавлять новые блоки. То есть все пользователи имеет полный доступ по цепочке. Такие сети создают, когда хотят добиться децентрализации и прозрачности, например, в финансовых транзакциях или сделках с недвижимостью.
Однако это не всегда уместно, поскольку в реальности мир полон данных, распространение которых нежелательно. Примером может служить информация о здоровье человека. Доступ к ней должен иметь только пациент и люди или организации, которым пациент предоставил доступ, например, родственники, отдельные врачи и больницы. В таком сценарии лишь доверенный узел может добавлять информацию в сеть и просматривать ее полностью.
В зависимости от того, кто может стать полной нодой, блокчейны делят на три разновидности: централизованные (частные), децентрализованные (публичные) и разделенные (консорциумы).
Описание. Сеть поддерживается и контролируется центральным узлом. Только он имеет право проверять транзакции и генерировать блоки. Это увеличивает скорость операций и управленческих решений, но делает систему неустойчивой: любой сбой на центральном узле обрушит всю систему.
Примеры: Hyperledger — блокчейн для закрытых корпоративных решений, Multichain — платформа для частных блокчейнов.
Особенности:
Примеры: Bitcoin, Litecoin, Ethereum.
Особенности:
Примеры: R3 CEV LLC — финансы, EWF — энергетика, B3i — страхование.
Особенности: