Как устроен blockchain. Лекция 4
TRANSCRIPT
План
Повторение
Что такое blockchain
Merkle tree
Что входит в блок
Время добавление транзакции в блок
Blockchain – это открытый журнал транзакций Bitcoin, упорядоченное и содержащее временные метки
хранилище. Система использует его для защиты от атак double spending и модификации прошлых
транзакций.
Каждый блок содержит
Метку времени
Хэш предыдушего блока
Как минимум одну транзакцию
Merkle Root
Хэш блока
Сложность
Nonce
Lock time
locktime показывает самое раннее время, когда транзакция может быть добавлена в blockchain.
Locktime Применяется в случае, когда необходимо создать транзакцию, которая будет валидна в будущем, но может быть изменена.
Если в этом будет необходимость, те outputs, которые входили в locktime транзакцию, будут потрачены в non-locktime транзакции, делая ее невалидной.
Т.к. ожидаемое время блока может отличаться от реального, средства, которые используются в locktime транзакции, должны быть использованы ранее указанного срока (до 2х часов).
Изменение сложности
Новые блоки добавляются, только если их nonce имеет формат, удовлетворяющий сложности, ожидаемой системой. Каждые 2016 блоков происходит сравнение времени, которое потребовалось для генерации 2016 блоков. Идеальное время - 1,209,600 секунд.
Если блоки были сгенерированы быстрее, сложность увеличивается пропорционально (до 300%).
Если медленее – сложность уменьшается (до 75%).
Изменение правил. Два случая
1. Блок, построенный по новым правилам принимается обновившимися участниками, но отвергается необновившимися.
2. Блок, не построенный по новым правилам отвергается обновившимися участниками, но принимается необновившимися.