Что такое блокчейн?
Блокчейн – это особый вид базы данных, в которую данные можно только вносить, а не удалять или изменять. Транзакции внутри так называемых блоков (состоящих из информации о транзакциях и других метаданных) периодически добавляются в блокчейн. Такая структура называется цепочкой, потому что метаданные каждого блока включают в себя часть информации из предыдущего и связывают блоки между собой. В частности, туда входит хеш предыдущего блока, который работает как уникальный цифровой отпечаток. Вероятность того, что два фрагмента данных дадут вам одинаковый результат хеш-функции, невероятно мала. То есть, если кто-то попытается изменить старый блок, его хеш также изменится, а значит, и хеш следующего блока тоже будет другим, и так далее. Следовательно, понять, был ли изменен блок, очень просто, ведь изменены будут и все следующие за ним блоки.
Хеш каждого блока используется в следующем блоке. Это формирует так называемую цепочку из блоков или блокчейн.
Важно отметить необходимость полной загрузки блокчейна на накопитель участника. Помните, мы говорили о том, что любой желающий может осуществлять валидацию (проверку) транзакций и подписей с помощью криптографии с открытым ключом? Когда нода получает блок, она выполняет ряд проверок; если что-то является недопустимым, блок отклоняется.
Когда нода получает валидный блок, она копирует его и распространяет этот блок на другие ноды. Они, в свою очередь, делают то же самое, пока блок не распространится по всей сети. Такой же процесс выполняется и для неподтвержденных транзакций, то есть тех, которые были объявлены, но еще не добавились в блокчейн.
Как блоки добавляются в блокчейн?
Поскольку система держится на взаимосвязанных между собой блоках, целостность всей блокчейн-сети подрывается в случае записи хотя бы одной ложной информации. В то же время в такой распределенной системе отсутствует администратор или руководитель, который бы поддерживал работу системного регистра или главной бухгалтерской книги системы. В связи с этим возникает вопрос: что выступает в качестве гаранта честной работы всех участники сети?
Сатоши предложил систему Proof of Work (Доказательство выполнения работы), которая дала возможность любому пользователю выдвигать блок на добавление в блокчейн. Чтобы выдвинуть блок, пользователи должны предоставить вычислительные мощности для решения задач, установленных протоколом.
Proof of Work – это проверенная схема достижения консенсуса среди пользователей, но далеко не единственная. Альтернативы, такие как Proof of Stake, продолжают тестироваться, однако они пока не достигли уровня реализации в их истинной форме (несмотря на то, что гибридные механизмы консенсуса существуют уже довольно долго).
Как работает майнинг криптовалюты?
Выше изображен процесс под названием майнинг. Если майнер найдет решение задачи, построенный им блок расширит цепочку. В результате он получит вознаграждение в родной валюте блокчейна.Задачи, которые майнеры должны решать, требуют постоянного хеширования данных для получения числа ниже определенного значения. Хеширование с помощью односторонней функции означает, что, имея выходные данные, угадать входные данные практически невозможно. И наоборот: при наличии входных данных проверить выходные данные уже очень легко. Таким образом, любой пользователь может проверить, что майнер создал «правильный» блок и отклонить невалидные блоки. В последнем случае майнер не получит вознаграждения и впустую потратит свои ресурсы.В результате вырисовывается такая концепция игры, при которой попытка обмана обходится очень дорого, а честность поощряется. Ни у одного злоумышленника не хватит ресурсов, чтобы бесконечно атаковать сильную сеть. Таким образом, пользователи с ресурсами могут получать доход путем честного участия в процессе.
Могут ли криптовалюты масштабироваться?
Вероятно, вы скажете, что распределенные сети не очень продуктивны. К сожалению, криптовалюты могут быть безопасными и устойчивыми к цензуре лишь в том случае, если все ноды регулярно синхронизируют копию блокчейн-сети. И чем ниже требования к синхронной активности участников, тем проще процесс присоединения новых участников.
Таким образом, блокчейн, ориентированный на добавление маленьких блоков каждые десять минут, предпочтительнее, чем тот, который добавляет один огромный блок каждые пять минут. Вариант с большим блоком предполагает ноды с наличием высокопроизводительных компьютеров, чтобы поддерживать регулярную синхронизацию и подталкивать маломощные устройства к отключению. Подобный подход в итоге приводит к большей централизации, поскольку конкуренция в сети становится всё меньше.
Но с маленькими блоками мы не можем достичь большого количества транзакций в секунду (TPS). Кроме того, в загруженные периоды добавление блоков в блокчейн займет больше времени. Это неудобно, если вы хотите произвести быструю оплату, но ради децентрализации приходится идти на компромиссы.
Мы называем эту проблему дилеммой масштабируемости. Хорошо масштабируемая система может легко адаптироваться к повышенной нагрузке. Блокчейны же масштабируются плохо. Как мы уже объясняли, увеличение пропускной способности за счет блоков большего размера подрывает всю цель распределенной сети.
Чтобы увеличить TPS без ущерба децентрализации, применяется подход офчейн-масштабирования. Он включает широкий спектр решений (централизованных и децентрализованных), которые позволяют совершать транзакции без регистрации в блокчейне.
Кто принимает решения по программному обеспечению криптовалюты?
Криптовалютные сети работают в формате добровольного согласия (opt-in). Никто не заставит вас запускать программное обеспечение против вашей воли. Хороший протокол отличается полностью открытымисходным кодом, который пользователи могут проверить и убедиться в честности и безопасности системы.
Как правило, криптовалюты позволяют любому желающему принять участие в их разработке. Новые функции или изменения в коде проверяются сообществом разработчиков до согласования и дальнейшей публикации. Оттуда пользователи могут сами просмотреть код и решить, запускать его или нет.
Некоторые обновления будут иметь обратную совместимость, что даст возможность обновленным нодам взаимодействовать со старыми. В случае с обновлениями без обратной совместимости старые ноды будут отключены от сети, если не обновятся. Чтобы узнать больше, ознакомьтесь с информацией о