:RU: Как транзакция попадает в блокчейн Cardano

Перевод статьи How a transaction gets into Cardano's blockchain | Cardanians

Когда Алиса посылает 1000 монет ADA Бобу, она использует свой кошелек. Боб получит монеты через несколько секунд. В этой статье мы пройдем через весь процесс и объясним, что происходит за сценой в этом сценарии.

o.9c3cba172958e23bc43dc40482723c53

Монеты ADA принадлежат их владельцам

Сеть Cardano способна разделить право собственности на монеты ADA и процесс передачи права собственности с точки зрения безопасности. Необходимо обеспечить, чтобы только пользователи могли манипулировать своими монетами, и никто другой, включая сеть. Что представляет собой сеть Cardano? Cardano - это одноранговая (P2P) сеть (client-client network). Это означает, что она состоит из множества независимых клиентов. Нет ничего похожего на сервер или центр. Каждая транзакция транслируется в сеть и распространяется клиентами. Клиенты операторов пула несут ответственность за вставку транзакций в новый блок. Список названий пулов, которые получат право производить блоки, заранее не известен. Сеть распространяет транзакции на все пулы. Пул, который становится лидером слота, может вставить все полученные транзакции в новый блок. Новый блок затем транслируется в сеть таким же образом, как транслируются транзакции.

Каждый желающий может установить клиент и участвовать в передаче транзакций. Каждый может создать пул Cardano. Многие субъекты имеют дело с транзакциями, и присоединившись к этой группе, этот процесс будет протекать легко. Должен существовать механизм, который не позволяет субъектам вносить какие-либо изменения в транзакции. Никто, включая операторов пулов, не в состоянии сделать это. Причина в том, что пользователи защищают свое владение монетами с помощью криптографии. Только владелец закрытого ключа может создать и подписать транзакцию по соответствующему адресу. Когда транзакция уже создана, никто не может изменить ее, так как невозможно подписать ее без обладания закрытым ключом. Закрытый ключ не компрометируется, когда он используется для подписания транзакции. Один и тот же закрытый ключ можно использовать несколько раз подряд для того, чтобы потратить монеты с этого адреса.

Когда Алиса посылает монеты ADA Бобу, она подписывает сделку. Вы можете представить себе транзакцию как сообщение, в котором говорится, что 1000 монет ADA должны быть помещены в адрес Боба. Сообщение должно быть подписано закрытым ключом. Это доказательство того, что Алиса, как владелец публичного адреса, желает отправить свои монеты. Существует связь между закрытым ключом и публичным адресом. Открытый ключ генерируется на основе закрытого ключа. Затем публичный адрес создается на основе открытого ключа.

Обратите внимание, что транзакция не будет считаться действительной без цифровой подписи. Если бы кто-то другой попытался создать транзакцию, которая будет тратить монеты с адреса Алисы, то транзакция не была бы действительной без цифровой подписи. Давайте предположим, что Алиса хорошо защитила свои личные ключи, так как она использует аппаратный кошелек. Таким образом, никто другой не может предоставить действительную подпись. Транзакция не будет засчитана как действительная всеми клиентами в сети. Пул, который является лидером слота, проверяет все цифровые подписи всех транзакций, которые должны быть вставлены в новый блок. Недействительные транзакции отбрасываются и не попадают в новый блок. Даже если пул вставил бы недействительную транзакцию в блок, то другие клиенты и пулы не вставили бы этот блок в свои версии блокчейна. Весь блок будет отброшен сетью.

Пулы могут обрабатывать транзакции, но они не могут их изменять. Обработка транзакций - это децентрализованный процесс, который может выполнять только предопределенные действия. Действия определяются в исходном коде клиентов Cardano (полных нод). Несмотря на то, что каждый может изменять поведение клиента, изменить транзакции невозможно. Речь идет не об исходном коде, а о криптографии. При создании нового блока пулы не только проверяют транзакции, но и проверяют другие вещи. Например, пулы проверяют, что Алиса имеет достаточный баланс на своем счете и может потратить 1000 монет ADA. Также необходимо убедиться, что Алиса не пыталась потратить одни и те же монеты дважды в двух транзакциях. Это также необходимо для того, чтобы количество монет в циркулирующем запасе неожиданно не изменилось.

Монеты ADA находятся в леджере (регистре), и сеть Cardano защищает их с помощью децентрализованной обработки транзакций. Держатели ADA совместно используют одни и те же монеты и могут передавать их при подписании сделки. Сеть всегда участвует в процессе передачи права собственности на монеты новым владельцам. Необходимо понимать, что блокчейн - это в основном совокупность транзакций. Все блоки от начала до конца могут содержать транзакции. Каждый добавленный блок изменяет текущее состояние блокчейна. Владение токенами напрямую связано с владением соответствующими закрытыми ключами. Однако, чтобы потратить токены, должна быть задействована сеть для того, чтобы изменить запись в блокчейне с помощью транзакций.

Что происходит, когда меняется право собственности на монеты?

Давайте начнем с, казалось бы, не связанного примера. Представьте себе, что Алиса хочет пообщаться с Бобом через сетевой коммуникатор. Они могут использовать коммуникатор P2P, чтобы сообщения передавались непосредственно от Алисы к Бобу и наоборот. Между ними нет посредника. Алиса пишет текст, и текст появляется в окне коммуникатора Боба. Они также могут использовать коммуникатор клиент-сервер. В этом случае Алиса отправит сообщение Бобу, но сообщение будет отправлено сначала на сервер. Сервер доставит сообщение Бобу. Результат будет тот же, Боб получит текст. Разница заключается только в посреднике. Сервер может перехватывать сообщения и злоупотреблять ими. Например, администратор сервера мог прочитать все сообщения и найти какой-то секрет, который Алиса хотела раскрыть только Бобу. Уж точно не администратору.

А теперь, что вы думаете? Является ли блокчейн транзакция типом скорее одноранговой (P2P) или клиент-серверной коммуникации?

Мы уже говорили, что Cardano - это одноранговая P2P сеть. Вы, наверное, знаете, что сервер - это централизованная единица, и что-то подобное не должно существовать в мире публичного децентрализованного блокчейн проекта. Давайте копнем глубже, прежде чем ответить на этот вопрос. Когда Алиса посылает монеты Бобу, то монеты не доставляются непосредственно на компьютер Боба. Это не то же самое, что текстовое сообщение. Транзакция Cardano не отправляется Бобу, но транслируется на всю сеть. Компьютер Боба может быть выключен или Боб может спать. Тем не менее, он станет новым владельцем монет. Дело в том, что именно сеть будет обрабатывать транзакцию и изменять запись в регистре. Когда транзакция Алисы добавляется в новый блок, это в основном означает, что 1000 монет ADA вынимаются из адреса Алисы и добавляются к адресу Боба. Это просто предложение в тот момент, когда пул создает новый блок и вставляет в него транзакцию Алисы. Как только блок транслируется в сеть и принимается другими клиентами, право собственности на монеты необратимо меняется.

Когда Боб хочет проверить, отправила ли Алиса ему 1000 токенов ADA, как она обещала, у него есть несколько возможностей, как это сделать. Боб может воспользоваться кошельком Daedalus. Это кошелек с полной нодой, и он необходим для загрузки новых добавленных блоков. Боб включает компьютер и запускает кошелек. Как только новые добавленные блоки будут загружены, Боб увидит, что баланс изменился, и он сможет увидеть транзакцию Алисы. Кроме того, Боб может использовать кошелек Yoroi. Это легкий кошелек, который подключается к серверу Эмурго и предоставляет информацию о балансе Боба. Боб видит тот же результат. Монеты находятся по адресу Боба, так что только Боб может подписать новую транзакцию и потратить монеты. Каждая полная нода в сети имеет одну и ту же запись и знает, что 1000 монет находятся по адресу, которым владеет Боб. Сеть не знает, что адрес принадлежит Бобу. Блокчейн Cardano работает только с адресами и не работает с личностями.

Давайте теперь попробуем ответить на этот вопрос. Алиса транслировала транзакцию на всю сеть. Не на конкретный сервер. Случайно выбранный пул взял транзакцию и добавил ее в новый блок. Таким образом, это не тип связи клиент сервер. Это должно быть одноранговое общение, верно? Да. Типичным атрибутом P2P-сетей является то, что они совместно используют распределенные ресурсы. Каждая нода поддерживает свою собственную версию блокчейна.

Cardano использует POS сетевой консенсус, который заботится о синхронизации времени и случайном выборе лидеров слотов. Благодаря сетевому консенсусу новый блок добавляется регулярно примерно каждые 20 секунд случайным образом выбранным пулом. Таким образом, подписанные транзакции транслируются и регулярно обрабатываются децентрализованной сетью.

Вывод

Когда у вас есть монеты ADA, никто не может их у вас отнять. Cardano - это P2P сеть, поэтому она поддерживается многими независимыми субъектами. Существует децентрализованный процесс, который не может быть изменен по воле одного или нескольких субъектов. Это сила блокчейн сети. Вы можете владеть монетами ADA, и никто не сможет внешне изменить правила сетевого консенсуса Cardano. Только пользователи монет ADA смогут сделать это с помощью голосования. Только владельцы ADA имеют право инициировать изменение правил и, вероятно, сделают это таким образом, чтобы не подвергать свои активы опасности. Cardano - это мультитокеновый регистр, поэтому в нем можно хранить не только токены ADA, но и другие активы. Cardano - это очень безопасный регистр, поскольку для него характерен высокий уровень децентрализации.

// От переводчика: для получения дополнительных переведенных на русский язык статей о Cardano посетите русскоязычный раздел на форуме Cardano. Видеоролики о Cardano на русском можно найти на YouTube канале нашего замечательного амбасадора Тимура Сахабутдинова. Хотите поговорить или задать вопрос о Cardano по-русски? Приглашаем вас в наше уютное сообщество в Telegram . Оставайтесь на связи, все только начинается!