Как Работает Блокчейн?

Поделиться
Copied to clipboard!
Прослушать статью
00:00 / 00:00

Основа каждого блокчейна - это алгоритм майнинга, в качестве примера рассмотрим алгоритм Биткоина. Он называется SHA-256, сокращенно от «Secure hash algorithm 256 bits» (Безопасный хэш алгоритм 256 бит). Он принимает входные данные, которые могут быть чем угодно: текстом, числами или даже компьютерным файлом любого размера. Полученный результат называется «хэш» и каждый раз он будет иметь одинаковую длину - 256 бит в машинном коде.

Один и тот же вход будет выдавать один и тот же результат каждый раз, это не случайность. Но если вы сделаете небольшое изменение на входе, выход изменится полностью.

Это также называется односторонней функцией, означающей, что если у вас есть только выходные данные, вы не сможете рассчитать, что было на входе. Вы можете только догадываться, о входных данных, и вероятность угадать:  

1 шанс на 2 ^ 256, что практически невозможно, и следовательно, безопасно.

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

У нас есть Алиса и Боб вместе с их балансом биткоинов. Допустим, Алиса должна Бобу 2 биткоина.

Чтобы Алиса отправила Бобу эти 2 биткоина, она передает сообщение с транзакцией, которую она хочет совершить, всем майнерам в сети.

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

Когда майнеры уверены, что транзакция действительна, они могут поместить ее в блок вместе с многими другими транзакциями и попытаться майнить. Это делается путем помещения блока по алгоритму SHA-256. Вывод должен начинаться с определенного количества нулей, чтобы считаться действительным. Необходимое количество нулей зависит от того, что называется «сложностью», которая изменяется в зависимости от того, сколько вычислительной мощности имеется в сети.

Для того, чтобы в начале создать выходной хэш с желаемым количеством 0, майнеры добавляют в блок то, что называется «nonce number»(Представляет собой двоичный код, который ищется майнерами в процессе PoW-майнинга.), перед тем, как запустить его через алгоритм. Поскольку небольшое изменение входных данных полностью меняет выходные данные, майнеры пробуют случайные “nonce” числа, пока не найдут нужный выходной хеш.

Как только блок добыт, майнер передает этот новый блок всем остальным майнерам. Затем они проверяют, является ли блок действительным, чтобы добавить его в свою копию цепочки блоков, и транзакция завершена. Но в блоке майнеры также должны включить выходной хеш из предыдущего блока, чтобы все блоки были связаны вместе, отсюда и название: block-CHAIN. Это важная часть, потому что cистема работает на доказательстве выполненной работы.

У каждого майнера есть своя копия блокчейна на компьютере, и каждый доверяет блокчейну с самой большой вычислительной работой, который является самым длинным( имеет самую длинную цепочку блоков). Если майнер изменяет транзакцию в предыдущем блоке, выходной хэш для этого блока будет меняться, что приводит к тому, что все хеши после него также изменяются из-за блоков, связанных с хешами. Майнеру пришлось бы переделывать всю работу, чтобы заставить кого-либо признать, что его блокчейн правильный. Поэтому, если майнер захочет схитрить, ему потребуется более 50% вычислительной мощности сети, что маловероятно. Таким образом, сетевые атаки называются 51% атаками.

Модель обеспечения работы компьютеров для производства блоков называется Proof-of-Work (PoW) (Доказательство выполненной работы). Существуют также другие модели, такие как Proof-of-Stake (PoS)(Подтверждение доли владения), которые не требуют такой большой вычислительной мощности и требуют меньше электроэнергии, предоставляя возможность масштабирования для большего количества пользователей.

Это основы того, как работает блокчейн!

Loading