Консенсус и основы блокчейна

Лекция №4 из курса MIT «Блокчейн и деньги» посвящена технологии Биткоина. В ней Гари Генслер рассказывает о том, как устроен майнинг, как подтверждаются блоки и какими бывают системы консенсуса.

Консенсус и основы блокчейна

План лекции

Вопросы лекции

  • В чем заключается «Задача византийских генералов»? Как ее решают proof-of-work и майнинг в Биткойне? И в целом технология блокчейн?
  • Какие ещё существуют протоколы консенсуса? Каковы компромиссы альтернативных алгоритмов консенсуса, proof-of-work, proof-of-stake и т.д.?
  • Как Биткоин регистрирует транзакции?

Материалы для чтения

1. ‘21st Geneva Report on the World Economy - The Impact of Blockchain Technology on Finance: Catalyst for Change’ Chapter 1 (pages 1 – 7); Casey, Crane, Gensler, Johnson, and Narula (July 2018)

2. ‘Blockchain Technology Overview’ (PDF) National Institute of Standards and Technology (January 2018) (pages 9 – 23, sections 1 & 2)

3. ‘The Byzantine Generals Problem’ Lamport, Shostak, & Pease; ACM Transactions on Programming Languages and Systems (TOPLAS), 4(3), (July 1982) (required 382-387)

4. ‘A (Short) Guide to Blockchain Consensus Protocols’ CoinDesk (March 4, 2017)

Опционально:

5. For those wishing for a technical dive into Bitcoin Scripting Language, one can review ‘Script’ by Bitcore or ‘The Best Step-by-Step Bitcoin Script Guide’ by Blockgeeks.

Обзор технологии блокчейна

Консенсус и основы блокчейна

Тот факт, что блоки в блокченйне можно только добавлять, но нельзя удалять, делает его неизменным. Иначе говоря, мы не можем поменять его содержимое.

Блокчейн создает базу данных благодаря хеш-функциям и цифровым подписям. Так же в технологию блокчейна входит консенсус.

Технологические особенности

  • Криптография и временные отметки
  • Децентрализованный протокол консенсуса, сеть, нативная валюта
  • Скрипт транзакций

Криптография — это коммуникация в присутствии врагов, а так же способ передачи информации.

Хеш-функции — это функции, выполняющие одностороннее сжатие данных.

Записи, которые невозможно удалить (Timestamped Append-only Log) — буквально, вы можете только увеличить запись и добавить в нее строки, но не можете удалять ее элементы.

Дерево Меркла (дерево хешей) — это концепция работы с данными, бинарное дерево хешей.

Консенсус и основы блокчейна

Цифровая подпись — инструмент для подтверждения подписи чего-то (например, транзакции) при помощи своего приватного ключа и проверки другим человеком вашей подписи с помощью публичного ключа. Она защищает от подделок и попыток выдачи себя за другое лицо.

Цифровые подписи бывают как с хешем (блокчейн), так и без хеша.

Цифровая подпись с хешем
Цифровая подпись с хешем

Что, по сути, делает любой блокчейн: берет транзакцию и хеширует её.

Биткоин адрес — способ, благодаря которому можно идентифицировать биткоин, захешированный публичный ключ. Биткоин-адрес определяется Публичным ключом, но не равен ему.

Консенсус и основы блокчейна

Децентрализованные сети

«Задача византийских генералов» — это общая математическая задача о том, как координировать участников группы, если часть её участников действует не в интересах всей группы. Такая же задача существует в области компьютеров: как децентрализованная сеть будет приходить к каким-либо соглашениям в отсутствие централизатора? В данном случае безопасность сети будет основываться на Протоколе Консенсуса и нативной валюте (ключевое изобретение Сатоши Накамото — объединение этих двух моментов, но многие иные моменты являются заслугами других людей).

Консенсус через Proof of Work (Доказательство работы)

Так, Адам Бэк в 1997 году предложил способ борьбы со спамом в электронной почте, а так же другими проблемами DoS-атак, на основе вычислительных мощностей и использования хеш-функций.

Концепция Proof of Work была предложена за 11 лет до изобретения биткоина. Вопрос был в том, как эффективно использовать технологию хеширования в цепочке данных.

На графике функция SHA256 используется для хеширования шапки блока. Она хеширует: предыдущий хеш блока, хеш транзакции, временную отметку и одноразовое число Nonce. По сути, Сатоши Накамото использовал наработки Адама Бека для электронной почты.

Консенсус и основы блокчейна

Консенсус в блокчейне — это та цепочка, на которой майнеры больше всего наращивают информацию, самая длинная цепочка. Самая долгая ответвленная цепочка длилась всего 2-3 блока.

Что было бы, если бы Китай попробовал бы ответвиться или отсоединиться?

вопрос студентки

Давайте представим, что Китай — это фиолетовые блоки:

Консенсус и основы блокчейна

Предполагается, что в таком случае произойдет какая-то внешняя коммуникация — ТВ или просто межличностное общение. В таком случае китайские майнеры в какой-то момент поймут, что они не находятся в основной цепочке биткоинов, в которой находится основное число майнеров, и перестанут тратить электроэнергию на майнинг в таких условиях. Потому что они понимают, что в таком случае все их затраты окажутся ничего не стоящими.

Однако все же есть малая вероятность, что в итоге мы получим 2 блокчейна: китайский и общемировой. Так как, например, если бы сложилась ситуация, что фиолетовые блоки продолжали бы формироваться в течение тысяч и тысяч блоков, и был бы социальный консенсус, который держал бы при жизни обе цепи, то у нас сформировалось бы уже 2 валюты, как это произошло с биткоином и биткоин-кэшем (Bitcoin Cash BCH).

Получают ли майнеры биткоин в устаревших блоках?

вопрос студента

В фиолетовых блоках будет коинбейс-транзакция, которая вознаграждает майнеров. Но эта транзакция по итогу ничего не будет стоить, потому что не находится на основной цепочке блоков и ее нельзя будет использовать позже.

Так же в коде биткоина есть такая строчка: «вознаграждение майнеров нельзя потратить в течение 100 блоков после их получения» для большей безопасности.

Майнинг биткоинов

Фактор сложности майнинга

Proof of Work в случае с биткоином имеет фактор сложности, который определяется лидирующими нулями в его хеше. Сатоши Накамото предложил производить новый блок каждые 10 минут: для этого нужно определить, сколько лидирующих нулей вообще будет присутствовать. Эта сложность саморегулируется раз в 2 недели. Текущий уровень сложности (на момент выхода лекции) таков, что необходимо 18 лидирующих нулей в хеш-функции.

Последний блок, выписанный Генслером перед лекцией (№541974):

Block 541974 (9/18/18)- 18 leading zeros 0000000000000000001104a863046dfbad1a2941128815669623ff93c2a3945f

У самого первого блока, который был добыт в сети Биткоин в апреле 2008 года, было 10 лидирующих нулей.

Genesis Block (1/3/09) – 10 leading zeros, though only required 8 000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f

Как увеличивается сложность добычи биткоина:

Консенсус и основы блокчейна

Это происходит из-за того, что у нас появляется все больше и больше компьютеров, которые пытаются всё это захешировать.

Эволюция биткоин-майнинга

Майнинговая мощь биткоина увеличивается не из-за того, что линейно увеличивается количество пользователей, которые майнят, но потому что оборудование становится намного лучше.

Всё началось с центральных процессоров. На процессоре можно сделать от 2 до 20 млн хешей в секунду, если процессор правильно настроен. Однако уже в 2010 году было вычислено, что есть кое-что быстрее процессоров — графический процессор, видеокарта. Связывая между собой большое количество видеокарт можно было добиться мощности от 20 до 300 млн хешей в секунду.

Позднее, в 2013, появились Специализированные интегрированные схемы (ASICs) — аппараты, заточенные на то, чтобы совершать множество хешей и больше ничего. В 2019 самый дорогой ASIC стоил 3-4 тысячи долларов за штуку и мог выдавать 16 террахешей в секунду. На современных майнинговых производствах стоят тысячи ASIC-ов.

Консенсус и основы блокчейна

Вся экономика майнинга разворачивается вокруг нескольких майнинговых пулов. Стандартная комиссия у майнинговых операторов составляет 1–3%: за это оператор майнингового пула предоставляет своим клиентам-майнерам ряд различных услуг.

Нативные валюты

Нативные валюты помогают запустить процесс системы вознаграждения блокчейна. Валюта используется для вознаграждения, а так же для перевода денег. Валюты встроены в большинство блокчейнов, но не во все (т.н. «денежно-кредитная политика» ограничивает количество монет).

Биткоин

Он создается в coinbase-транзакции в каждом блоке. Изначально добыча блока вознаграждалась 50 биткоинами за блок. На момент выхода лекции вознаграждение равнялось 12.5 биткоинам за блок.

Эфир (Ethereum)

На момент выхода лекции майнился в количестве 3 ETH за блок. Транзакции оплачиваются, как правило, в GAS — единица измерения в Эфире (как Сатоши в биткоине).

Сеть

Полная нода (Full Nodes) — сетевой узел, или же компьютер, который хранит в себе весь блокчейн (всю историю) и может подтверждать транзакции.

Урезанная нода (Pruning Nodes) — «обрезает» старые транзакции, которые уже были валидированы.

Облегченная нода (Lightweight Nodes) — нода, которая есть у каждого владельца биткоин-кошелька. Сохраняет в себе лишь фрагменты блоков вместо хранения полного блокчейна. Потребляет намного меньше памяти, но зависит от Полной ноды, так как сама не может проводить верификацию.

Майнеры (Miners) – выполняют проверку работоспособности и создают новые блоки. Большинство из них не владеют Полной нодой.

Кошельки (Wallets) – хранят, видят, отправляют и получают транзакции и генерируют пары ключей.

Мемпул (Mempool) — пул неподтвержденных (но валидированных) транзакций.

Альтернативные протоколы консенсуса

Обычно рандомизируют или делегируют выборку нод для проверки следующего блока (используют различные математические уравнения). В некоторых формах консенсуса может быть двойная проверка.

Виды систем консенсусов:

Proof of Stake — основывается на том, сколько нативных валют вы вложили в систему.

Proof of Activity — гибрид PoW и PoS.

Proof of Burn — нужно сжигать свои монеты.

Proof of Capacity (Storage or Space) — нужно предоставить хранилище для информации.

Так же может быть многоуровневая система. Но пока что большинство блокчейнов используют PoW.

Вопросы к следующей лекции

1. Как Биткоин регистрирует транзакции? Что такое выходные данные неизрасходованной транзакции (UTXO)? Что такое скриптовый код, встроенный в каждую транзакцию Биткойна, и насколько это гибкий язык программирования?
2. Поскольку многие конструктивные особенности – криптография с открытым ключом, хэш-функции, журналы с отметками времени append only, цифровые наличные и PoW — появились до Биткоина, в чем же заключалось новшество Сантоши Накамото?
3. Кто такой Сатоши Накамото? (Шутка)

Литература

— ‘Bitcoin’s Academic Pedigree’ Narayanan and Clark

— ‘Making Sense of Cryptoeconomics’ CoinDesk

Заключение

Спасибо за внимание! Этот конспект — часть цикла из более чем 20 лекций, информация в которых будет постепенно наслаивается, что в результате поможет сформировать понимание относительно темы Биткойна в контексте финансов. Очевидно, что на этапе погружения, возникает ряд вопросов и будет здорово, если вы присоединитесь к нашей группе, где всегда можно коллективно обсудить детали https://t. me/blockchain24money

Список всех лекций курса «Блокчейн и деньги»:

44
Начать дискуссию