Название | Введение в технологию Блокчейн |
---|---|
Автор произведения | Тимур Сергеевич Машнин |
Жанр | Компьютеры: прочее |
Серия | |
Издательство | Компьютеры: прочее |
Год выпуска | 2021 |
isbn |
GoofyCoin не решает проблему двойного расходования, и поэтому она не защищена.
GoofyCoin – это простая криптовалюта, и ее механизм передачи монет на самом деле очень похож на биткойн, но поскольку она небезопасна, она не может использоваться как реальная криптовалюта.
Чтобы решить проблему с двойным расходованием, мы разработаем еще одну криптовалюту, которую мы назовем ScroogeCoin.
ScroogeCoin построена на основе GoofyCoin, но она немного сложнее с точки зрения структуры данных.
Первая ключевая идея заключается в том, что первоначальный объект Scrooge публикует бухгалтерскую книгу, в которую можно только добавлять записи, и которая содержит историю всех транзакций, которые произошли.
Свойство только добавления записей обеспечивает то, что любые данные, записанные в эту книгу, останутся навсегда.
Если книга действительно обладает свойством только добавления записей, мы можем использовать ее для защиты от двойного расходования, требуя, чтобы все транзакции были записаны в книге, прежде чем они будут приняты.
Таким образом, транзакции будут общедоступны для просмотра, если монеты были ранее отправлены другому владельцу.
Чтобы реализовать эту функцию только добавления, Scrooge может построить цепочку блоков, структуру данных, которую мы уже видели, и которую он будет подписывать цифровой подписью.
Это серия блоков данных, каждый с одной транзакцией, на практике, в качестве оптимизации, помещается несколько транзакций в один и тот же блок, как у биткойна.
Каждый блок содержит идентификатор транзакции, содержимое транзакции и хэш указатель на предыдущий блок.
Scrooge в цифровой форме подписывает также и последний хэш-указатель, который связывает все данные в единую структуру и публикует подпись вместе с цепочкой блоков.
В ScroogeCoin транзакция учитывается только в том случае, если она находится в цепочке блоков, подписанной Scrooge.
Любой может убедиться, что транзакция была одобрена Scrooge, проверив подпись Scrooge для блока, который появляется в цепочке.
Скрудж гарантирует, что он не одобрит транзакцию, которая пытается дважды потратить уже потраченную монету.
Зачем нам нужна цепочка блоков с хэш указателями в дополнение к тому, что Scrooge подписывает каждый блок?
Это обеспечивает свойство только добавления.
Если Scrooge попытается добавить или удалить транзакцию в истории, или изменить существующую транзакцию, это затронет все следующие блоки из-за хэш указателей.
Так как кто-то может отследить последний хэш-указатель, опубликованный Scrooge, это изменение будет очевидно и его легко обнаружить.
В системе, где бы Scrooge подписывал блоки по отдельности, вам бы нужно было отслеживать каждую подпись Scrooge, когда-либо выпущенную.
Цепочка блоков делает это очень легко, создавая единую историю транзакций, подписанную Скруджем.
В ScroogeCoin существует два вида транзакций.