[АКАДЕМИЯ]: Биткойн и технология криптовалюты. Конспект 3 недели
Приветствую!
Я продолжаю изучать курс «Биткойн и технология криптовалют», представляю вашему вниманию конспект 3 недели.
Прошлые выпуски
[АКАДЕМИЯ]: Биткойн и технология криптовалюты. Конспект 1 недели
[АКАДЕМИЯ]: Биткойн и технология криптовалюты. Конспект 2 недели
В этом выпуске мы поговорим о механике биткойна: транзакциях, блоках и сети биткойн.
Конспект 3 недели – механика биткойн
Транзакция – процесс передачи биткойнов от одного владельца к другому. Давайте рассмотрим на примере
Каждая транзакция имеет ID. Так в транзакции 1 Катя получает 25 монет от майнинга. Также каждая транзакция имеет маркер «вход» по которому можно отследить движение монеты.
1 транзакция в блоке - Катя получает 25 монет от майнинга.
2 транзакция - Катя отправляет 17 монет Сергею, 8 монет казалось бы Катя отправляет снова себе, но нет - просто Вы всегда должны израсходовать полностью предыдущую транзакцию. Нельзя просто отделить и отправить 17 монет из 25. По сути идет перенаправление предыдущей транзакции и 17 монет уходит на один адрес, а 8 монет на другой адрес Кати, этот адрес называется «адресом для сдачи». 2 транзакция подписывается Катей (чтобы засвидетельствовать что она согласна отправить 17 монет Сергею).
Аналогично проходит транзакция 3.
Чтобы удостоверится что 4 транзакция валидная, мы проверяем по «входам» (ссылки на транзакций) чтобы посмотреть может ли Катя отправить 6 монет Давиду. Смотрим вход 2[1] – тоесть транзакция 2 - у Кати оставалось 8 монет значит она может осуществить данную транзакцию.
Надо понимать, что Ваша транзакции складываются из историй предыдущих транзакций, поэтому возможно любое количество входов и выходов.
Так в транзакции (пример 1) – 1 вход и 2 выхода на 2 адреса.
А в транзакции (пример 2) – 3 входа от предыдущих транзакций собираются в 1 выход.
А вот так транзакция выглядит на самом деле:
Зачем объединяют транзакции в блоки?
Во первых майнерам нужно добывать блок транзакций, а не отдельную транзакцию -- это создает с одной стороны больше объём работы, с другой стороны меньше нагрузка на систему, это также уменьшает цепочку хеша, так как он один для блока, а не для каждой транзакции и соответственно экономится место занимаемое блокчейном на диске. Это также намного упрощает проверку транзакций на валидность перед угрозой «двойной траты».
Как выглядит структура данных блокчейна?
Это сочетание двух разных хэш-структур данных. Наверху у нас есть хеш-цепочка блоков. Каждая цепочка имеет заголовок, хеш-указатель на данные транзакций, а также хеш-указатель на предыдущий блок. В свою очередь хеш-указатель транзакций ведет к дереву всех транзакций, которые включены в каждый блок. Такая структура данных позволяет легко и быстро найти записи в блокчейне о любой транзакции.
Биткойн Peer-to-Peer сеть
Лимиты биткойна
В биткойне установленные следующие фундаментальные лимиты:
- Десять минут среднее время между созданием блока
- 1Мб размер блока (планируется хардфорк до 2Мб)
- 20 тыс. операций подписей в одном блоке
- 100 миллион сатоши в 1 биткойне
- 21 миллион биткойнов будет создано всего
- 50, 25, 12.5 BTC награда за блок – сплит на 2 каждые 4 года
Эти лимиты всегда вызывали бурные дискуссии в сообществе биткойн, например, взять то же размер блока, если биткойн хочет быть платежной системой номер 1 он сейчас сильно уступает по скорости обработки транзакций.
Расчет
1 миллион байт/ блок (10 мин)
>250 байт/транзакция
Получается примерно 7 транзакций/сек.
В то время как виза делает 2000-10 000 транзакций/сек.
Что для меня было интересным на этой неделе?
Мне понравился разбор транзакций биткойна, интересно, что транзакция может имеет любое количество «входов» и «выходов», в зависимости от историй транзакций этих биткойнов. Так же важным моментом являются лимиты изначально заложены в биткойн, которые несут положительные и отрицательные моменты, так проблему с транзакциями пока решили внедрением сегвита и будущим увеличением размера до 2 Мб.
До встречи в следующем выпуске!
Конспект написан в рамках проекта «АКАДЕМИЯ» от @ontofractal.