Блокчейн
Blockchain (с англ. Blockchain) — выстроенная по определённым правилам непрерывная и последовательная цепочка блоков. В каждом из них содержится информация. Блокчейн является частным случаем распределённого реестра, где данные сгруппированы и организованы в блоки, а блоки соединены и защищены криптографическими методами. Именно поэтому он может существовать без центральной власти или управляющего сервера.
Термин «блокчейн» появился и получил широкое использование благодаря сети Bitcoin, но можно проследить ряд других областей и открытий, чтобы увидеть предысторию его возникновения: теории информации, сетей, игр, распределённые базы данных, интернет и его развитие как таковое.
В сущности, блокчейн — это постоянно растущий массив записей. В него можно только добавлять данные — нельзя удалять или изменять информацию, сохранённую в предыдущих блоках.
Архитектура блокчейна
Архитектура блокчейна — это специфика строения конкретного блокчейна, которая может быть разной. Если провести параллель с обычной цепочкой, то ключевыми факторами будут материал изготовления, размер звеньев, способ сцепки — всё это может быть разным и определит характеристики и области применения данного блокчейна.
В архитектуре блокчейна можно выделить ключевые характеристики: алгоритм консенсуса, размер блока, пропускную способность сети и экономические стимулы участников для поддержания работоспособности сети.
Блок
Блок — специальная структура — звено цепи, в которой может быть записано всё что угодно, и обычно это история транзакций (операций между участниками сети).
Цепочка блоков делает блокчейн уникальным и отличным от любого другого типа хранения и передачи информации. Копии всей цепи блоков или её части одновременно хранятся на множестве компьютеров и синхронизируются согласно формальным правилам каждого конкретного блокчейна. По определённым алгоритмам, которые заложены в архитектуру конкретного блокчейна, каждый блок «цепляется» к предыдущему. Каждый последующий блок связан с предыдущим хэш-функцией блока, что делает невозможным добавление или изменение данных в старых блоках.
Блок в DecimalChain
В сети Decimal блок содержит в себе транзакции пользователей и эмиссии DEL, подписи валидаторов, комиссии, хэш текущего и предыдущего блока и прочую служебную информацию. В блокчейне Decimal блоки генерируются примерно каждые 5,5-6 секунд. Блок содержит от 0 до 10 000 транзакций весом примерно 180 байтов каждая. Вознаграждение за блок происходит согласно модели эмиссии: на старте это 50 DEL за блок, далее происходит увеличение каждые 432 000 блоков (~30 календарных дней).
Консенсус
Консенсус — способ прийти к согласию. В криптовалютах — достижение согласия всех независимых узлов сети.
Алгоритм консенсуса — набор принципов, то есть определённых математических правил и функций, которые позволяют достигнуть соглашения между всеми участниками и обеспечить работоспособность сети. В настоящий момент есть несколько различных методов достижения консенсуса.
Самыми распространенными алгоритмами консенсуса являются PoW (Proof of Work — «доказательство работы»), PoS (Proof of Stake — «доказательство доли») и их различные гибриды и вариации.
DecimalChain использует алгоритм консенсуса Delegated-Proof-of-Stake (делегированное доказательство доли).
Где хранится блокчейн?
Физически блокчейн хранится у множества независимых и не знающих друг друга людей (узлов сети), которые хранят на собственном сервере полную копию данного блокчейна и постоянно синхронизируют текущее состояние цепи друг с другом.
В большинстве структур, например, таких как банки, данные хранятся на одном или нескольких серверах. В блокчейнах вся информация распределена между всеми участниками сети децентрализованно (публичный блокчейн) или централизованно (приватный блокчейн).
В первом случае вся информация о всех транзакциях хранится в открытом доступе — любой желающий может стать участником сети. В приватном блокчейне только часть информации остаётся открытой для общего доступа, и стать участником сети можно либо при соблюдении ряда условий, либо невозможно в принципе.
В обоих случаях каждый узел хранит постоянно обновляемую идентичную информацию о всей цепочке, начиная с первого блока (генезис блока).
Какие проблемы решает блокчейн
Надёжное хранение информации
Проблема.
В архитектуре «клиент-сервер» узлы не равноправны. Серверы хранят информацию и контролируют доступ к ней, а клиенты отправляют запросы серверам и получают её. Чтобы вывести из строя всю систему, достаточно совершить атаку на сервер.
Решение.
Блокчейн является одноранговой сетью, где данные хранятся не в одном месте, а распределены между всеми участниками. Чтобы взломать такую систему, понадобится вывести из строя минимум половину всех узлов, что практически невозможно.
Быстрый обмен информацией
Проблема.
Передача информации в сети — это длинная цепочка действий, и, чтобы сообщение дошло до получателя, оно должно пройти через множество промежуточных серверов, которые могут быть перегружены или просто отключены. Из-за этого обмен информацией может занимать много времени.
Решение.
В блокчейне данные передаются напрямую. Одноранговая архитектура позволяет быстро обмениваться информацией вне зависимости от местонахождения пользователей. Блокчейн всегда доступен, не имеет ограниченных часов работы и не уходит в офлайн по расписанию.
Отсутствие посредника
Проблема.
Когда серверы передают информацию, они ещё и проверяют её правильность. Наличие посредника часто бывает необходимо, но всегда увеличивает расходы на совершение сделки.
Решение.
Благодаря алгоритму консенсуса можно обойтись без посредника. Так как данные распределены между всеми участниками, любой из них может проверить и подтвердить новую транзакцию. Этих пользователей называют майнерами. Конкуренция между ними высока, что позволяет удерживать комиссии на низком уровне.
Высокий уровень доверия в сети
Проблема.
Когда в сделке нет посредников, любой участник может обмануть другого. Поэтому в любых одноранговых сетях возникает недоверие между участниками.
Решение.
В блокчейне проблема решается с помощью алгоритмов, по которым создаются блоки. Сеть не допускает изменений, с которыми не согласны большинство пользователей. Таким образом, злоумышленники не могут менять или удалять информацию.
Публичная история изменений
Проблема.
Информация может меняться с течением времени, но, когда это происходит часто и быстро, перезаписывать данные становится сложно. Кроме того, часто сама история изменений тоже принципиально важна, чтобы с этой информацией было просто и безопасно работать.
Решение.
Любое изменение информации в блокчейне представляет собой транзакцию. Транзакции записываются в блоки, а блоки соединяются в цепочку, которую невозможно изменить из-за связи с хешами. Таким образом, каждый участник сети имеет доступ ко всей истории транзакций, вплоть до первой. В любой момент можно проверить, была ли та или иная транзакция между двумя участниками.
Вывод
Каждый блокчейн — это распределённый реестр, но не каждый распределённый реестр — это блокчейн. Он подразумевает децентрализацию и достижение согласия между узлами. Кроме того, в блокчейне данные организованы в блоки и разрешено только добавлять новые данные. Распределённые реестры в целом и блокчейн в частности представляют собой концептуальный прорыв в управлении данными, которые уже нашли применение в каждой отрасли экономики.