Введение в технологию Блокчейн. Тимур Сергеевич Машнин
Чтение книги онлайн.
Читать онлайн книгу Введение в технологию Блокчейн - Тимур Сергеевич Машнин страница 24
Bitcoin транзакции
Далее мы рассмотрим механизм Биткойна более детально.
Мы рассмотрим реальные структуры данных и реальные скрипты.
Для начала вспомним, где мы остановились в прошлый раз.
Механизм консенсуса биткойнов дает нам реестр только для добавления, поэтому мы можем только записывать структуры данных, и как только данные записываются, они существуют навсегда.
И есть децентрализованный протокол для установления консенсуса относительно значений этого реестра.
И есть майнеры, которые выполняют этот протокол и которые проверяют транзакции, все вместе гарантируя, что транзакции хорошо сформированы, что нет двойных расходов, и в конечном итоге, что этот реестр и сеть могут функционировать как валюта.
И все потому, что мы предположили, что эта валюта может мотивировать этих майнеров.
Теперь, давайте в деталях рассмотрим, что представляет собой транзакция в биткойне, его центральная часть.
На данный момент мы будем использовать упрощенную модель реестра.
Вместо блоков предположим, что в реестр добавляются отдельные транзакции по одной за раз.
Как мы можем построить валюту на основе такой книги или реестра?
Первая модель, о которой вы могли бы подумать, которая на самом деле является ментальной моделью, которую многие люди используют для понимания того, как Биткойн работает, заключается в том, что у вас есть система на основе учетной записи.
Вы можете добавить некоторые транзакции, которые создают новые монеты и передают их кому-либо.
А затем позже вы можете эти монеты передавать дальше.
Транзакция будет содержать что-то вроде «мы передаем 17 монет от Алисы к Бобу», и эта транзакия будет подписана Алисой.
И эта информация о транзакции будет содержаться в книге.
В этом примере, после того как Алиса получила 25 монет в первой транзакции, затем передает 17 монет Бобу во второй транзакции, и у нее осталось еще 8 биткойнов на ее счете.
Недостатком этого способа ведения реестра является то, что любой, кто хочет определить, действительно ли транзакция валидна, должен будет отслеживать эти остатки на счетах.
В этом примере, что нужно сделать, чтобы понять, есть ли у Алисы 15 монет, которые она пытается передать Дэвиду?
Для этого вам нужно будет просмотреть всю книгу назад во времени, чтобы увидеть каждую транзакцию, относящуюся к Алисе, и вычислить ее баланс на момент, когда она пытается передать 15 монет Дэвиду.
Конечно, мы можем сделать это немного более эффективно с помощью дополнительной структуру данных, которая отслеживает баланс Алисы после каждой транзакции.
Но это потребует большого количества дополнительного обслуживания, кроме обслуживания самой книги.
Поэтому