Криптографии нечего сказать об этом, и две транзакции, которые представляют собой попытку двойной траты, действительны с криптографической точки зрения.
Но именно консенсус определяет, какая из них окажется в долгосрочной консенсусной цепочке.
И, наконец, вы никогда на 100 процентов не можете быть уверены, что транзакция, в которой вы заинтересованы, находится в консенсусной ветке.
Но экспоненциальная вероятностная гарантия этого довольно хорошая.
После шести транзакций практически нет шансов, что вы ошибетесь.
Стимулы и доказательства работы
Теперь у нас есть базовое представление консенсусного алгоритма Биткойна и представление, почему мы считаем, что это безопасно.
Но вспомним, что децентрализация Боткойна – это с одной стороны технический механизм, а с другой стороны умная стимуляция.
До сих пор мы в основном рассматривали технический механизм.
Теперь давайте поговорим о стимулах, которые применяются в Биткойне.
Также вспомним, что мы сделали предположение, что мы можем выбрать случайный узел и, возможно, более проблематично, что, по крайней мере, в 50 процентов случаев, при этом мы выберем честный узел.
Это предположение о честности особенно проблематично, если есть финансовые стимулы того, чтобы участники хотели подорвать процесс, и в этом случае мы не можем с точностью предположить, что узел будет честным.
Тогда возникает вопрос: можем ли мы дать узлам стимул вести себя честно?
Рассмотрим снова попытку двойной траты после одного подтверждения.
Можем ли мы каким-то образом наказывать узел, который создал блок с транзакцией с двумя тратами?
Ответ – не совсем.
Как я говорил ранее, трудно понять, что является морально легитимной сделкой.
Но даже если бы мы это сделали, все равно трудно наказывать узлы, так как у них нет идентификаторов.
Поэтому вместо этого давайте подойдем с другой стороны и спросим, можем ли мы вознаградить каждый из узлов, которые создали блоки, которые в конечном итоге оказались в долгосрочной консенсусной цепочке?
И, опять же, поскольку эти узлы не раскрывают свою реальную идентичность, мы не можем отправить им наличные на их домашние адреса.
Только если бы существовала какая-то цифровая валюта, которую мы могли бы использовать для их стимулирования, возможно, децентрализованная.
Вероятно, вы уже видите, к чему я иду.
Другими словами, мы собираемся использовать биткойны, чтобы стимулировать узлы, которые создали эти блоки.
Давайте на мгновение остановимся.
Все, что мы описали до сих пор, является абстрактным алгоритмом для достижения распределенного консенсуса и не является специфичным для приложения.
Теперь мы уйдем из этой модели, и мы будем использовать тот факт, что приложение, которое мы строим с помощью этого распределенного процесса консенсуса, фактически является валютой.
В частности, мы собираемся стимулировать узлы вести себя честно, платя им в единицах этой валюты.
Как это делается?
В Биткойне есть два отдельных механизма стимулирования.
Первое стимулирование – это награда за блок.
Согласно правилам биткойна, узел, который создает блок, включает специальную транзакцию в этот блок.
Эта транзакция представляет собой транзакцию создания монет, аналогичную CreateCoins в Scroogecoin, и узел также может выбрать адрес получателя этой транзакции.
Конечно, этот узел, как правило, выбирает адрес, принадлежащий самому себе.
Вы можете думать об этом как о плате узлу в обмен на услугу создания блока в консенсусной цепочке.
На сегодняшний момент значение вознаграждения блока фиксировано на уровне 12.5 биткойнов.