Консенсус и основы блокчейна
Лекция №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):
У самого первого блока, который был добыт в сети Биткоин в апреле 2008 года, было 10 лидирующих нулей.
Как увеличивается сложность добычи биткоина:
Это происходит из-за того, что у нас появляется все больше и больше компьютеров, которые пытаются всё это захешировать.
Эволюция биткоин-майнинга
Майнинговая мощь биткоина увеличивается не из-за того, что линейно увеличивается количество пользователей, которые майнят, но потому что оборудование становится намного лучше.
Всё началось с центральных процессоров. На процессоре можно сделать от 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
Список всех лекций курса «Блокчейн и деньги»:
- Блокчейн и деньги: что такое блокчейн и почему он может быть катализатором больших изменений в финансах?
- Деньги, леджеры и биткоин
- Криптография и основы блокчейна;
- Консенсус и основы блокчейна;
- Транзакции, UTXO, скрипты и основы блокчейна;
- Cмартконтракты и DApps, блокчейн и деньги;
- Технические испытания, блокчейн и деньги
- Государственное регулирование криптоактивов
- Виды блокчейнов
- Финансовые институты
- Экономика блокчейна
- Потенциал криптовалют
- Платежи часть 1;
- Платежи часть 2;
- Банки часть 1;
- Банки часть 2;
- Вторичные рынки и биржи;
- ICO часть 1;
- ICO часть 2 ;
- Расчетные системы;
- Торговое финансирование;
- Цифровая идентичность;
- Блокчейн и деньги: Итоги.