Название | Введение в технологию Блокчейн |
---|---|
Автор произведения | Тимур Сергеевич Машнин |
Жанр | Компьютеры: прочее |
Серия | |
Издательство | Компьютеры: прочее |
Год выпуска | 2021 |
isbn |
Что это означает в контексте Биткойна?
Чтобы понять, как распределенный консенсус может работать в биткойне, помните, что биткойн – это одноранговая система.
Когда Алиса хочет заплатить Бобу, то, что она на самом деле делает, это транслирует транзакцию на все узлы Bitcoin, которые составляют одноранговую сеть.
Кстати, Алиса транслирует транзакцию на все одноранговые узлы Bitcoin, но при этом компьютер Боба может не находится в сети.
Конечно, возможно, что Боб запускает один из узлов в одноранговой сети.
Фактически, если он хочет получить уведомление о том, что эта транзакция действительно произошла и что он получил деньги, запуск узла Бобом был бы логичным.
Тем не менее, нет необходимости, чтобы Боб слушал в сети; запуск узла для Боба не требуется для получения средств.
Биткойны будут его, независимо от того, работает ли он в сети или нет.
Что именно здесь означает, что узлы достигают консенсуса в сети Bitcoin?
Учитывая, что множество пользователей транслируют эти транзакции в сеть, узлы должны согласовать учет, какие именно транзакции были транслированы, и порядок, в котором эти транзакции произошли.
Это приводит к созданию единого глобального журнала для системы.
Вспомним, что в ScroogeCoin для оптимизации мы помещаем транзакции в блоки.
Аналогичным образом, в биткойне мы принимаем консенсус на основе блокчейна.
Таким образом, все узлы в одноранговой сети содержат реестр, состоящий из последовательности блоков, каждый из которых содержит список транзакций, и таким образом они достигают консенсуса.
Кроме того, каждый узел содержит пул неутвержденных транзакций, о которых он слышал, но которые еще не включены в цепочку блоков.
Для этих транзакций консенсус еще не произошел, и поэтому по определению каждый узел может иметь немного отличающуюся версию пула неутвержденных транзакций.
На практике это происходит потому, что одноранговая сеть не идеальна, поэтому некоторые узлы, возможно, слышали о транзакции, о которой другие узлы не слышали.
Как именно узлы достигают консенсуса по блоку?
Один из способов сделать это: через равные промежутки времени, скажем каждые 10 минут, каждый узел в системе предлагает своему пулу неутвержденных транзакций быть следующим блоком.
Затем узлы выполняют некоторый консенсусный протокол, где вход каждого узла является его собственным предложенным блоком.
Теперь, некоторые узлы могут быть вредоносными и помещать недействительные транзакции в свои блоки, но мы можем предположить, что другие узлы будут корректными.
Если консенсусный протокол завершается успешно, в качестве вывода будет выбран валидный блок.
Даже если выбранный блок был предложен только одним узлом, это будет допустимый результат, если блок корректный.
Теперь,