Страница 5 из 27
Транзакция CreateCoins всегда действительна по определению, если она подписана Scrooge.
Мы не будем беспокоиться о том, когда Scrooge имеет право создавать монеты или сколько их создавать, точно так же, как мы не беспокоились в GoofyCoin о том, как Гуфи выбирается как сущность, которой позволено создавать монеты.
Второй вид транзакции – это PayCoins.
Эта транзакция потребляет несколько монет, то есть уничтожает их, и тут же создает новые монеты той же стоимостью.
Новые монеты могут принадлежать разным людям (публичным ключам).
Эта транзакция должна быть подписана всеми, кто платит монетой.
Поэтому, если вы являетесь владельцем одной из монет, которая будет потребляться в этой транзакции, тогда вам необходимо создать цифровую подпись этой транзакции, чтобы сказать, что вы действительно потратили эту монету.
Правила ScroogeCoin говорят, что транзакция PayCoins действительна, если действительны четыре вещи:
Используемые монеты являются валидными, то есть они действительно были созданы в предыдущих транзакциях.
Расходуемые монеты еще не были использованы в каких-либо предыдущих транзакциях. То есть, это не двойное расходование.
Общая стоимость монет, выходящих из этой транзакции, равна суммарному значению монет, которые вошли в транзакцию. То есть, только Scrooge может создать новую монету.
Транзакция действительно подписана владельцами всех потребляемых монет.
Если все эти условия выполнены, тогда транзакция PayCoins валидна, и Scrooge ее примет.
Он впишет эту транзакцию в историю, добавив ее в цепочку блоков, после чего каждый сможет увидеть, что эта транзакция случилась.
Только в этот момент все участники смогут принять, что транзакция на самом деле была произведена.
Пока она не будет опубликована, она может быть вытеснена транзакцией двойной траты, даже если она валидна в силу первых трех условий.
Монеты в этой системе неизменяемы – они никогда не меняются, не делятся и не объединяются.
Каждая монета создана один раз, в одной транзакции, и позже потребляется в какой-либо другой транзакции.
Но мы можем получить возможность делить или объединять монеты с помощью транзакций.
Например, чтобы разделить монету, Алиса может создать новую транзакцию, которая потребляет эту одну монету, а затем создает две новые монеты той же общей стоимостью.
Эти две новые монеты присваиваются ей обратно.
Теперь мы приходим к основной проблеме ScroogeCoin.
ScroogeCoin будет работать в том смысле, что люди могут видеть, какие монеты действительны.
Это предотвращает двойное расходование, потому что каждый может посмотреть на блок и убедиться, что все транзакции действительны и каждая монета потребляется только один раз.
Но проблема Скруджа в том, что у него слишком много влияния.
Он не может создавать поддельные транзакции, потому что не может подделывать подписи других людей.
Но он может прекратить одобрять транзакции у некоторых пользователей, отказывая им в сервисе и делая их монеты бесполезными.
Если Скрудж жадный, как его тезка из мультфильма, он может отказаться публиковать транзакции, если они не передают ему какую-либо утвержденную комиссию за транзакцию.
Scrooge также может, создать столько новых монет для себя, сколько он хочет.
Или Скруджу может наскучить вся система, и он может полностью прекратить обновление цепочки блоков.
Проблема здесь в централизации.
Хотя Scrooge может и доволен этой системой, мы, как ее пользователи не можем быть довольными такой системой.
Хотя ScroogeCoin может показаться нереалистичной криптовалютой, большая часть ранних исследований криптосистем предполагали, что действительно будет какой-то центральный доверенный орган, обычно называемый банком.
В конце концов, у большинства валют реального мира есть доверенный эмитент, обычно правительственный монетный двор, который отвечает за создание валюты и определение того, какие денежные знаки действительны.
Однако, криптовалютам с центральным органом на практике не удалось реализоваться.
Этому есть много причин, но оглядываясь назад, кажется, что трудно заставить людей принять криптовалюту с централизованной властью.
Поэтому центральная техническая задача, которую нам необходимо решить, чтобы улучшить ScroogeCoin и создать работоспособную систему, это можем ли мы удалить Scrooge из системы?
То есть можем ли мы избавиться от этого централизованного органа?
Можем ли мы создать криптовалютносту, которая работает как ScroogeCoin во многих отношениях, но не имеет какой-либо центральной доверенной власти?
Для этого нам нужно выяснить, как все пользователи системы могут согласовать одну опубликованную блок-цепочку как историю всех транзакций, которые когда-то произошли.
Они должны все договориться о том, какие операции действительны, и какие транзакции действительно произошли.
Они также должны иметь возможность назначать идентификаторы децентрализованным способом.
Наконец, производство новых монет должно контролироваться децентрализованно.
Если мы сможем решить все эти проблемы, тогда мы сможем построить валюту, которая будет похожа на ScroogeCoin, но без центральной власти.
Фактически, это будет система, очень похожая на биткойн.
Как биткойн обеспечивает децентрализацию
Децентрализация – это важная концепция, которая не является уникальной для Биткойна.
Вопрос конкурирующих парадигм централизации и децентрализации возникает во множестве различных ИТ технологий.
Чтобы лучше понять, как это работает в биткойне, полезно понять центральный конфликт – противоречие между этими двумя парадигмами – в других контекстах.
Например, с одной стороны, у нас есть Интернет, децентрализованная система, которая исторически конкурировала с информационными сервисами America Online и CompuServe.
Или есть электронная почта, которая по своей сути является децентрализованной системой, основанной на открытом стандарте Simple Mail Transfer Protocol (SMTP), а с другой стороны есть закрытые системы обмена сообщениями, такие как ВКонтакте, Facebook или LinkedIn.
Наконец, есть социальные сети – централизованные системы, такие как ВКонтакте, Facebook и LinkedIn, и распространенной децентрализованной альтернативы у них нет.
Надо учитывать, что децентрализация или централизация не реализуются полностью.
Почти ни одна система не является чисто децентрализованной или чисто централизованной.
Например, электронная почта, в своей сути, представляет собой децентрализованную систему на основе стандартизованного протокола, SMTP, и любой, кто желает, может управлять собственным сервером электронной почты.
Тем не менее, развитие рынка сервисов электронной почты привело к его монополизации, и небольшое число централизованных поставщиков веб-почты стали доминирующими.
По аналогии, в то время как протокол Bitcoin является децентрализованным, такие сервисы, как обмен биткойнами, где вы можете конвертировать Биткойн в другие валюты, программное обеспечение для кошельков или программное обеспечение, которое позволяет людям управлять своими биткойнами могут быть централизованы или децентрализованы в различной степени.
Имея это в виду, давайте разделим вопрос о том, как протокол Bitcoin достигает децентрализации на пять более конкретных вопросов:
1. Кто хранит книгу транзакций?
2. Кто имеет власть утверждать действительность транзакций?
3. Кто создает новые биткойны?
4. Кто определяет, как изменяются правила системы?
5. Как биткойны получают обменную стоимость?
Первые три вопроса отражают технические подробности протокола биткойнов, и именно эти вопросы мы в первую очередь разберем.