БЛОКЧЕЙН по-русски
135 subscribers
58 photos
1 video
36 links
Сложные темы про Blockchain / MEV на простом языке.
Download Telegram
Привет, здесь не будет - рекомендации каких то монет, токенов, шиткойнов, ICO, графиков цен, сигналов. Не будет новостей на каждый шорох.
Здесь только хардкорная информация про технологии блокчейн. В идеале можно будет использовать как книгу, я еще не знаю что получится.
Вначале я напишу простые понятия, а затем сам вместе с вами продолжим разбираться.
Зачем миру блокчейн?
Контроль данных
Есть ли способ хранить информацию о чем-то, чтобы у ее владельца не было возможности ее менять в своих интересах? Какому одному посреднику можно доверять вечно?

Международные транзакции.
Банки могут эффективно перекладывать цифры с одного счета на другой только внутри одного государства.

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

Автоматизация процессов.
Государства, у которых есть реестр недвижимости. Они же проводят выборы и тратят на это очень много человеко-часов. Хотя нужно просто вести прозрачно и честно базу данных.

Получается нам нужна база данных:
1. Которая работает без участия человека.
2. Которую нельзя прийти и выключить или изменить.

#введение
🔥3
Хэш или хэш-функция – одна из основных составляющих современной криптографии.

Хэширование представляет собой преобразование любого объема информации в уникальный набор символов, который присущ только этому массиву входящей информации. Этот набор символов и будет называться хэшем.

Например если мы возьмем весь текст из первого моего поста, прогоним его через хеш-функцию (sha256) - то получим вот такой хеш: fda80cde12cdd750fc48ae138cd9a5afdea987b2357d96bb35860ced043c295f

- Отсутствие обратимости: Понять что текст был имея только хеш - невозможно.
- Случайность вывода: Хеш всегда уникален, если поменяю хоть один символ из моего текста, хеш изменится до неузнаваймости.
- Фиксированная длина вывода: Длина хеша будет всегда фиксирована, в примере выше 64 символа, если я скормлю хеш функции целую книгу, ее хеш будет все равно 64 символа.
- Детерминированность: сколько бы раз я не запускал один и тот же текст через одну и ту же функцию, результат будет таким же.

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

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

При такой цепочке понятно что должен быть какой-то первый блок, с которого все началось. В примере на картинке Block 1 имеет пустой хеш 0000. Это называется генезис-блок.

В Биткойне - возможно ради символа недовольства финансовой системой в генезис-блок Сатоши Накамото добавил заголовок статьи "The times" о неспособности Британского правительства стимулировать экономику.

#введение
👍2🤯1
Мы поняли что блокчейн это цепочка блоков.
Что внутри блока?
Рассмотрим на примере bitcoin. Остальные блокчейн сети устроены очень похоже.
- Транзакции - самая важная часть, их может быть несколько в одном блоке. В них содержится информация кто сколько кому передал криптовалюты, код смартконтрактов и в целом любые данные. Среди них самая первая coinbase транзакция - это награда майнерам. О которых позже.

Остальные параметры технические, служат для корректной работы блокчейна.
- Previous hash - это хеш предыдущего блока, чтобы избежать махинации и сохранить строгую последовательность блоков.
- Timestamp - это просто время, когда блок был записан. Задача как его вычислить для одновременно работающих компьютеров нетривиальная.
- Merkle tree - это дерево Меркла - нужно тоже для безопасности. Об этом уже в продвинутой части.
- Nonce, Bits - это параметры для майнеров.

#введение
👍31👌1
Внутри транзакции в блокчейне содержится информация о передаче активов (например, криптовалюты) или о выполнении определенных операций. Точное содержание транзакции может различаться в зависимости от конкретного блокчейна.

Кратко транзакция это:
кошелёк 1 отправил 10 BTC в кошелёк 2

Сумма доступных монет для конкретного адреса в сети неизвестна. Она вычисляется на основе истории транзакций.

На самом деле все сложнее. На картинке структура транзакции в Биткойн сети.
- Inputs - это транзакции из сети с previous output hash, которыми данный адрес может распоряжаться. Т.е. которые пришли ему.
- Outputs - это то куда он хочет отправить активы, адресов может быть несколько. Где value - это сумма монет.
- Signature script и public key script - это команды для сети, которые рассмотрим позже.

Если на какой то кошелёк пришло 5 + 3 BTC, а он хочет перевести только 6 BTC, то ему придется использовать полностью транзакции: 5 + 3 = 8 и отправить две: 6 BTC тому кому платит и 2 BTC сдачи назад себе.

#введение
🔥2👍1
В блокчейн сети нету единого центра, авторитета. Но для записи блока в блокчейн сеть должна прийти к консенсусу.

Проблема формулируется, как задача византийских генералов. Генералы посылают гонцов с данными о количестве своих войск другим генералам. Как генералы могут прийти к общему результату, если часть из них могут сознательно искажать данные? Существующие алгоритмы решения задачи показывают, что сеть может функционировать правильно, если мошенников меньше 1/3.

Ясно, что нам нужно определить большинство голосов, чтобы сказать эта транзакция/блок или цепочка являются правдивыми или нет. Но как это сделать в анонимном мире, где 1 злоумышленник может создать большое количество псевдонимов и использовать их для получения непропорционально большого влияния? Это называется атака Сивиллы.

Для предотвращения атаки Сивиллы и решения задачи византийских генералов - в блокчейн придумали алгоритмы вроде: Proof Of Work - он же майнинг, proof of stake, proof of capacity и другие.

#введение
👍3
Майнинг - это деятельность по поддержанию распределенной сети и созданию новых блоков с возможностью получить вознаграждение в форме эмитированной валюты и комиссионных сборов.

Самый известный и первый вариант поддержания сети - придумали создатели Bitcoin - это proof of work.

Все майнеры одновременно пытаются решить одну и туже задачу:
1. Проверить что блок "корректный" - эта операция мгновенная.
2. Попытаться быстрее всех подобрать правильный параметр nonce, чтобы хеш от блока удовлетворял условиям задачи.
3. Если майнер успел быстрее всех то он получает награду в виде coinbase transaction.

Пункт 2 - это proof of work - специальная сложная математическая задача, чтобы доказать что у майнера есть мощный компьютер.
Математическая задача имеет специально такую сложность, чтобы на ее решение уходило 10 минут.
Если мощностей у майнеров становиться больше, то время на ее решение уменьшается и алгоритм, каждые 2016 блоков пересматривает сложность задачи, чтобы она вновь занимала 10 минут.

#введение
👍1🤬1👌1
Новый блок майнится или генерируется за 10 минут. Однако, когда майнер создает новый блок, он начинает его передачу другим узлам (пирам) в сети по p2p протоколу. Эти узлы затем передают блоки друг другу, и таким образом, блок в течении нескольких секунд распространяется по всей планете.

Если новый блок найдут одновременно 2 независимых майнера, появится 2 версии блоков. Они распространят свою версию блоков на пол мира, куда успеют. Каждый узел будет придерживаться своей версии блокчейна. Это называется Fork. (рис 1)

Но как только любой из майнеров найдет следующий блок - все узлы возьмут самую длинную версию блокчейна. Красный блок будет забыт, его называют orphaned. (рис 2)

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

Бывают ситуации, когда ветвление случается больше чем на 1 блок. За всю историю 1 раз осиротевшая цепочка была из 4 блоков.

#введение
🔥2👍1