- Как блокчейн достигает консенсуса: основные методы
- Другие алгоритмы консенсуса
- Как майнинг поддерживает работу Биткойн
- Как происходит майнинг Биткоина
- Что содержит в себе блок в блокчейне
- Особенности хеш-функции
- Зачем в блокчейне используется нонс и как он работает
- Как происходит добавление нового блока в блокчейн Биткоин
- Как майнеры проверяют транзакции и получают вознаграждение
- Как работает модель UTXO в Биткоин
- Как проходит транзакция в сети Биткоин
- Как проходит транзакция в сети Биткоин: пример с Никой и Витей
- Приватные и публичные ключи в блокчейне — что это и зачем нужно
- Что представляет собой адрес в блокчейне и зачем он нужен
- Что такое сид-фраза и как она работает в блокчейне
- Золотое правило владения криптовалютой
Это третий урок в рамках моего бесплатного курса по работе с криптовалютами и токенами.
В нем мы рассмотрим рассмотрим принципы работы сети BTC, технологию доказательства работы, а также разберем технологию майнинга (добычи биткоина), как происходят транзакции в блокчейне, чтобы такое частный и публичный ключи, сид-фразы и адреса.
Как блокчейн достигает консенсуса: основные методы
Одним из ключевых компонентов любого блокчейна является консенсусный механизм — способ, которым сеть определяет, какие транзакции добавлять в следующий блок. То есть этот способ, благодаря которому все устройства сети согласовано работают друг с другом, что дает возможность поддерживать отказоустойчивость и безопасность блокчейна.
Разные блокчейны используют разные подходы к достижению консенсуса. Давайте рассмотрим основные из них.
- Proof-of-Work (PoW) — участники решают математические задачи, чтобы получить право добавить следующий блок. Этот механизм используется в сети Биткойн и является алгоритмом доказательства работы. То есть, чтобы оборудование участника (майнера) имело возможность участвовать в проверки транзакции и добавлении нового блока в блокчейн, ему необходимо решить определенную математическую задачу и таким образом, доказать проделанную работу и получить вознаграждение за это в виде монет, например, Биткоин.
- Proof-of-Stake (PoS) — вероятность создания блока зависит от количества монет, замороженных в стейкинге тем или иным участником. У кого больше количества монет — у того выше шансы на создание нового блока, и, соответственно, заработка с этого. То есть, пользователь заранее блокирует (стейкает) определенное количество криптовалюту, что доказывает тот факт, что он владеет данным количеством монет, а значит, имеет возможность участвовать в проверке блоков транзакций. Поэтому, данный вид алгоритма консенсуса решает те недостатки, которые есть у алгоритма доказательства работы, рассмотренного выше, а именно: затраты на оборудование для майнинга и электроэнергию, а также скорость обработки транзакции. На этом виде консенсуса работают такие криптовалюты, как Эфир, Солана, Кордано.
Другие алгоритмы консенсуса
- Delegated Proof-of-Stake (DPoS) — участники голосуют за наблюдателей, которые формируют и подтверждают новые блоки. Используется в сетях EOS, TRON и др.
- Byzantine Fault Tolerance (BFT) — алгоритм позволяет сохранять консенсус даже при наличии ненадежных участников в сети. Применяется в Ripple, Stellar и других блокчейнах.
- PoWeight — аналог PoS, но с особенностью зависимости от других параметров, называемых «весами».
- PoW — при инициировании пользователем транзакции «майнеры» или суперкомпьютеры решают задачу или головоломку для ее проверки.
- PoV — пользователи отправляют монеты обратно в свой кошелек, которые невозможно вернуть, получая вознаграждение в зависимости от суммы.
- PoС — при использовании данного протокола можно задействовать вычислительную мощность или пространство на жестком диске пользователя.
- PoI — пользователи, часто осуществляющие транзакции, получают вознаграждение за свою активность.
- PoA — использует как PoS, так и PoW для обеспечения своевременного получения вознаграждений.
- DAG (направленный ациклический граф) — транзакции обрабатываются асинхронно, без структуры блокчейна.
- PoS (доказательство доли) — валидаторы выбираются на основе размера их ставки в сети.
- DPoS (делегированное доказательство доли) — валидаторы избираются путем голосования в соответствии с размером ставки.
- LPoS (доказательство доли на основе ликвидности) — пользователи создают собственные валидирующие токены для усиления защиты сети.
- PoET (доказательство времени ожидания) — алгоритм, схожий с PoW, но с акцентом на энергопотреблении.
- PBFT (практический алгоритм Византийского согласия) — использует специальную последовательность для защиты от недобросовестных участников.
- DBFT (алгоритм Византийского согласия на основе делегирования) — валидаторы конкурируют в верификации блоков.
- SBFT (расширяемые векторные встраивания подписей) — один валидатор объединяет транзакции и создаёт новый блок.
Таким образом, существует несколько способов достижения согласия в блокчейне, который зависит от целей сети и ее сложности. Каждый из них имеет свои преимущества и недостатки.
Как майнинг поддерживает работу Биткойн
Майнинг — ключевой процесс в сети Биткоин, обеспечивающий ее функционирование. Давайте разберемся, что это такое и как это работает.
Майнинг — это процедура создания новых блоков и записи транзакций в реестр блокчейна. Она основана на уже рассмотренном нами консенсусном алгоритме Proof-of-Work.
Чтобы создать новый блок, майнеры решают сложные математические задачи, которые требуют больших вычислительных мощностей. Цель — найти уникальный хеш блока, удовлетворяющий текущим требованиям сети.
Как только майнер находит подходящий хеш, новый блок добавляется в цепочку, а майнер получает вознаграждение в виде биткоинов.
Таким образом, майнинг обеспечивает безопасность и стабильность сети Биткойн, предоставляя вычислительную мощность для проверки и записи транзакций в распределенный реестр. А майнеры получают криптовалюту в качестве стимула за свою работу.
Как происходит майнинг Биткоина
Давайте разберем процесс майнинга Биткоина по шагам:
- Сеть формирует хеш-значение для нового блока транзакций, который нужно создать.
- Майнеры запускают специальное ПО и начинают перебирать разные варианты, чтобы найти такой хеш блока, который удовлетворит условиям сети.
- Как только майнер находит подходящий хеш, он получает вознаграждение в виде биткоинов за проделанную работу.
- Другие майнеры и узлы проверяют корректность нового блока и подтверждают его действительность.
- Майнер, первым нашедший решение, добавляет новый подтвержденный блок к своей копии блокчейна.
Таким образом, майнинг — это соревнование в вычислительных мощностях за вознаграждение в виде биткоинов за верификацию транзакций.
Что содержит в себе блок в блокчейне
Каждый блок в блокчейне состоит из следующих элементов:
- Транзакции — блок может включать в себя одну или несколько транзакций, которые необходимо записать в реестр.
- Другие данные — помимо транзакций, блок может содержать различную информацию, например, ссылки на новостные статьи.
- Хеш — уникальный идентификатор блока, вычисленный на основе его содержимого.
- Nonce — случайное число, добавляемое при генерации хеша, чтобы затруднить подбор нужного значения.
Таким образом, блок представляет собой структурированный контейнер для хранения и передачи данных в блокчейне. Хеш и nonce придают ему необходимую криптографическую защиту.
Давайте подробнее разберем, что представляет собой хеш-функция в контексте блокчейна.
Хеш блока — это его уникальный идентификатор, получаемый с помощью хеш-функции.
Хеш-функция — это математический алгоритм, который преобразует входные данные любого размера в строку фиксированной длины. Например, 64 символа.
Особенности хеш-функции
- Одинаковые входные данные всегда дают один и тот же хеш
- Невозможно обратное преобразование — из хеша не восстановить исходные данные
- Малое изменение данных сильно меняет хеш
Таким образом, хеш-функция генерирует «отпечаток» входных данных, по которому можно идентифицировать блок в блокчейне.
Зачем в блокчейне используется нонс и как он работает
Хеш-функция обеспечивает уникальность и неизменность данных в блокчейне. Но для дополнительной защиты используется еще один механизм — нонс. Давайте разберемся, что это такое и зачем нужно.
Нонс (от англ. «number used once») — это случайное число, которое используется только один раз при генерации хеша блока.
В процессе майнинга компьютер, майнеры перебирает разные варианты нонса, пока не найдут подходящее значение, при котором хеш блока будет соответствовать требованиям сети.
Это ресурсозатратный процесс, требующий больших вычислительных мощностей. Но он гарантирует, что всегда дешевле добавить новый блок, чем изменить уже существующие.
Таким образом, механизм с нонсом укрепляет хронологичность и неизменность блокчейна Биткоин, делая отмену или подмену транзакций практически невозможной.
Как происходит добавление нового блока в блокчейн Биткоин
Давайте разберем, что происходит, когда майнер находит решение для нового блока:
- Майнер предлагает новый блок с найденным nonce тысячам других майнеров в сети.
- Они проверяют корректность решения — была ли правильно решена математическая головоломка, все ли транзакции валидны.
- Если все верно, майнеры подтверждают блок и он добавляется в блокчейн.
- Следующий блок будет содержать ссылку на этот блок, закрепляя его в цепочке.
Чем больше вычислительных мощностей у майнера, тем быстрее он может решить головоломку и предложить новый блок, получив вознаграждение.
Этот процесс конкуренции за поиск верного решения и есть консенсусный механизм proof-of-work, который работает в Биткоине.
Как майнеры проверяют транзакции и получают вознаграждение
Майнеры проверяют, что одни и те же биткоины не тратятся дважды, анализируя цепочку цифровых подписей в транзакциях. Каждый владелец передает монеты следующему, подписывая хеш предыдущей транзакции.
За верификацию транзакций и создание нового блока майнеры получают вознаграждение в виде новых биткоинов. Изначально оно составляло 50 BTC за блок, но периодически происходит «халвинг», который уменьшает эту награду в 2 раза.
Поэтому, чтобы повысить шансы на получение вознаграждения, майнеры объединяются в пулы и создают майнинг-фермы – мощные компьютерные системы для непрерывного майнинга. Таким образом, они конкурируют за право создать следующий блок в цепочке и получить криптовалюту BTC.
Как работает модель UTXO в Биткоин
Биткоин использует модель учета транзакций UTXO (Unspent Transaction Outputs). Разберем, как она функционирует.
В отличие от адресов, в UTXO базовым элементом являются непотраченные выходы транзакций, содержащие определенное количество BTC.
Баланс адреса — это сумма всех UTXO, полученных этим адресом ранее.
При транзакции на сумму меньше баланса происходит следующее:
- Отправитель посылает в сеть весь свой баланс целиком.
- Указанная сумма переводится получателю.
- Остаток возвращается отправителю на новый адрес в виде «сдачи».
Таким образом происходит разделение UTXO. Это увеличивает анонимность, так как затрудняет отслеживание происхождения средств. В целом, модель UTXO непривычна для пользователя, но кошельки автоматизируют этот процесс. Главное — сохранять сид-фразу от кошелька от посторонних и все будет ОК.
Как проходит транзакция в сети Биткоин
Давайте рассмотрим, как выглядит процесс осуществления транзакции в сети Биткоин.
- Пользователь инициирует транзакцию, указывая получателя (его публичный адрес) и сумму.
- Транзакция распространяется по сети пиринговых узлов (ноды).
- Майнеры проверяют транзакцию на валидность, путем проверки баланс отправителя и других параметров.
- Транзакция добавляется в новый блок.
- Блок добавляется в цепочку блоков (блокчейн).
- Транзакция считается подтвержденной и завершенной.
- Новые транзакции объединяются в следующий блок данных.
Таким образом, транзакция проходит проверку, включается в блокчейн и становится частью распределенного реестра. Это гарантирует ее безопасность и прозрачность.
Ниже указан скриншот из сервиса tx.town, в котором можно визуально посмотреть, как в разных блокчейнах добавляются транзакции в виде людей и создаются новые блоки в виде автобуса.
Как проходит транзакция в сети Биткоин: пример с Никой и Витей
Давайте проследим, как выглядит транзакция в Биткоин на примере перевода от Ники к Вите.
- Ника создает транзакцию на 1 BTC Вите и подписывает ее своим приватным ключом.
- Она указывает публичный адрес кошелька Вити в качестве получателя.
- Транзакция попадает в очередь неподтвержденных транзакций.
- Майнеры со всего мира конкурируют за право добавить ее в новый блок.
- Майнер формирует и подтверждает блок с транзакцией Ники.
- Блок добавляется в блокчейн, транзакция считается подтвержденной.
- Витя получает 1 BTC на свой адрес и может потратить их с помощью своего приватного ключа.
Таким образом, приватные и публичные ключи идентифицируют участников транзакции и обеспечивают безопасность.
Приватные и публичные ключи в блокчейне — что это и зачем нужно
При создании криптокошелька пользователь автоматически получает пару ключей:
- Приватный ключ — уникальная комбинация символов, которая используется для подписания транзакций. Это подтверждает, что транзакцию инициировал владелец данного ключа. Приватный ключ должен храниться в тайне.
- Публичный ключ — это адрес кошелька в блокчейне по типу номера банковской карты. Он используется для получения транзакций. Публичный ключ можно безопасно предоставлять другим пользователям.
Также, с помощью приватного ключа, через онлайн-сервисы обозреватели блокчейна, можно узнать информацию по каждой транзакции любого счета, а именно:
- куда
- когда
- сколько отправлялось средств
При этом важно понимать, что система блокчейна полностью прозрачна и каждый может посмотреть указанную выше информацию, но при этом информация об отправители и получателя анонимна, блокчейн не хранит никакой персональной информации о пользователях, поэтому выявить владельцев публичных ключей практически невозможно.
Таким образом, приватный ключ — это пароль к вашим средствам, а публичный — реквизиты для переводов. Такая система позволяет обеспечить конфиденциальность и безопасность транзакций в блокчейне. Приватный ключ нужно всегда держать в секрете и надежно хранить, чтобы только вы имели доступ к вашему кошельку с криптовалютой на нем.
Что представляет собой адрес в блокчейне и зачем он нужен
Адрес в блокчейне — это уникальный идентификатор криптокошелька или аккаунта, используемый для получения транзакций.
Адрес генерируется путем хеширования публичного ключа. То есть адрес — это хеш публичного ключа, а не сам публичный ключ.
Адрес представляет собой строку символов, например:
- 1BvBMSEYstWetqTFn5Au4m4GFg7xJaNVN2 — для Биткоина
- 0x1234…5678 — для Эфириума
Он позволяет идентифицировать получателя и гарантирует, что средства поступят именно ему. Адрес можно безопасно делиться, как номер счета или email.
В то же время приватный ключ, который дает доступ к средствам, как я уже ранее говорил, должен храниться в тайне. Потому что его компрометация грозит потерей ваших криптоактивов.
Таким образом, адрес и приватный ключ играют разные роли в блокчейне — первый для идентификации, второй для аутентификации. Их важно различать.
Что такое сид-фраза и как она работает в блокчейне
Сид-фраза (seed phrase) — это набор из 12-24 слов, который используется для генерации криптокошелька и восстановления доступа к нему.
Сид-фраза генерируется случайным образом с помощью генератора случайных чисел. Это число преобразуется в последовательность слов из специального словаря.
Затем на основе сид-фразы, с помощью хеширования, генерируется мастер-ключ, из которого выводятся приватный и публичный ключи кошелька.
Из мастер-ключа можно также вычислить практически неограниченное количество дополнительных ключей для разных целей.
Таким образом, зная только сид-фразу, можно восстановить доступ ко всем адресам и средствам в кошельке. Поэтому сид-фразу критически важно хранить в безопасном месте, скрытом от посторонних глаз.
С помощью Seed-фразы, в случае утери вашего устройства, будь-то мобильного телефона или ноутбука, вы всегда сможете восстановить доступ к вашему кошельку на новом устройстве.
Золотое правило владения криптовалютой
«Not your keys, not your crypto» — это основополагающий принцип в индустрии криптовалют. Дословный перевод: «Не твои ключи — не твоя криптовалюта».
Это означает, что только владение приватными ключами от криптоактивов дает истинную собственность на них.
Если криптовалюта хранится на бирже или в онлайн-кошельке без доступа к приватным ключам, фактически она принадлежит не пользователю, а сервису. Соответственно, есть риск ее потерять.
Поэтому, для по-настоящему безопасного хранения активов рекомендуется использовать собственный криптокошелек, где только пользователь владеет секретными ключами, по типу Траст Валлет или Метамаск, или же холодных кошелек в виде флешек. Это главное правило владения цифровыми активами.
Ссылки на источники
- “Bitcoin: A Peer-to-Peer Electronic Cash System” by Satoshi Nakamoto
- “Mastering Bitcoin: Unlocking Digital Cryptocurrencies” by Andreas M. Antonopoulos
- “Blockchain Technology Explained: The Ultimate Beginner’s Guide About Blockchain Wallet, Mining, Bitcoin, Ethereum, Litecoin, Zcash, Monero, Ripple, Dash, IOTA and Smart Contracts” by Alan T. Norman
- “The Basics of Bitcoins and Blockchains” by Antony Lewis
- “Blockchain Revolution: How the Technology Behind Bitcoin Is Changing Money, Business, and the World” by Don Tapscott and Alex Tapscott
- “How Does Bitcoin Mining Work?
- “Bitcoin and Cryptocurrency Technologies: A Comprehensive Introduction” by Arvind Narayanan
- How do Bitcoin transactions work?
- What is the Bitcoin blockchain? A guide to the technology behind BTC
- «Blockchain Basics: A Non-Technical Introduction in 25 Steps» by Daniel Drescher