# Глоссарий

## А

### Адрес учетной записи

* Адрес учетной записи в сети Aptos, см. [Учетные записи (аккаунты)](https://cr-nepos.gitbook.io/aptos-ru/osnovy/uchyotnye-zapisi-akkaunty) в разделе Основы

### Аккумулированный хэш корневого реестра (Accumulator Root Hash)

* **Аккумулированный хэш корневого реестра** - это хэш корневого реестра Меркла ([Merkle accumulator](https://eprint.iacr.org/2009/625.pdf)).

### Аккумулятор Меркла (Merkle Accumulator)

* [Merkle Accumulator](https://www.usenix.org/legacy/event/sec09/tech/full_papers/crosby.pdf) - это дерево Меркла *только для добавления данных*, которое Aptos Blockchain использует для хранения реестра.
* Аккумуляторы Меркла могут предоставить доказательства того, что транзакция была включена в цепочку («доказательство включения»).
* В литературе их также называют «деревьями истории» (["history trees"](http://people.cs.vt.edu/danfeng/courses/cs6204/sp10-papers/crosby.pdf)).

### AptosBFT <a href="#aptosbft" id="aptosbft"></a>

* AptosBFT - это алгоритм консенсуса BFT-протокола в сети Aptos.
* AptosBFT основан на HotStuff.

### Aptos Blockchain <a href="#aptos-blockchain" id="aptos-blockchain"></a>

* **Aptos Blockchain** - это реестр неизменяемых транзакций, согласованных валидаторами в сети Aptos (сеть валидаторов).

### Aptos-core <a href="#aptos-core" id="aptos-core"></a>

Aptos-core - это технология с открытым исходным кодом, на которой работает Aptos Payment Network. Aptos-core содержит программное обеспечение для:

* самого Aptos Blockchain, который генерирует и хранит неизменяемый реестр подтвержденных транзакций
* процесса валидации, который реализует алгоритм консенсуса для проверки транзакций и добавления их в неизменяемый реестр Aptos Blockchain

### Aptos Framework <a href="#aptos-framework" id="aptos-framework"></a>

Aptos Framework определяет общедоступный API для обновлений блокчейна и структуру ончейн-данных. Он определяет бизнес-логику и контроль доступа для трех ключевых столпов функциональности Aptos: платежи, казначейство и ончейн-управление. Он реализован в виде набора модулей, написанных на языке программирования Move, хранящихся ончейн в виде байт-кода Move.

### Aptos нода <a href="#aptos-node" id="aptos-node"></a>

Aptos нода (узел) - это равноправный объект сети Aptos, который отслеживает состояние Aptos Blockchain. Существует два типа нод в сети Aptos: [валидирующие](#validator) и полные ноды).

### Aptos протокол <a href="#aptos-protocol" id="aptos-protocol"></a>

* **Aptos протокол** - это спецификация того, как транзакции отправляются, упорядочиваются, выполняются и записываются внутри сети Aptos.

### AptosAccount[​](https://aptos.dev/reference/glossary#aptosaccount) <a href="#aptosaccount" id="aptosaccount"></a>

* **`AptosAccount`** - это ресурс Move, который содержит все административные данные, связанные с учетной записью, такие как порядковый номер, баланс и ключ аутентификации.&#x20;
* **`AptosAccount`** - это единственный ресурс, который гарантированно содержится в каждой учетной записи.

### AptosAccount модуль <a href="#aptosaccount-module" id="aptosaccount-module"></a>

* **AptosAccount модуль** - это модуль Move, который содержит код для управления административными данными, хранящимися в конкретном ресурсе `AptosAccount.T` .
* Код для проверки или увеличения порядковых номеров, снятия или внесения валюты и извлечения газовых депозитов включен в модуль AptosAccount.

### Aptos девнет <a href="#aptos-devnet" id="aptos-devnet"></a>

* См. [девнет](#devnet-devnet)

## Б

### Байткод Move (Move Bytecode) <a href="#move-bytecode" id="move-bytecode"></a>

* Программы Move компилируются в байткод Move.
* Байткод Move используется для выражения скриптов транзакций и модулей Move.

## B

### Валидатор (Validator)[​](https://aptos.dev/reference/glossary#validator) <a href="#validator" id="validator"></a>

* *Альтернативное наименование*: Валидаторы.
* **Валидатор** - это элемент экосистемы Aptos, который выполняет проверку в Aptos Blockchain. Он получает запросы от клиентов и запускает процессы согласования, исполнения и хранения.
* Валидатор хранит историю всех транзакций в блокчейне.
* Внутри валидатор должен сохранять текущее состояние, выполнять транзакции и вычислять следующее состояние.

### Версия (Version) <a href="#version" id="version"></a>

* **Версия** также называется «уровнем» в литературе по блокчейну.
* Aptos Blockchain не имеет явного понятия блока - он использует блоки только для группирования и выполнения транзакций.
* Транзакция на уровне 0 - это первая транзакция (транзакция генезиса), а транзакция на уровне 100 - это 101-я транзакция в хранилище транзакций.

### Bизантийский валидатор <a href="#byzantine-validator" id="byzantine-validator"></a>

* **Валидатор**, который не следует спецификации консенсус-протокола и хочет поставить под угрозу корректное выполнение протокола.
* BFT-алгоритмы традиционно поддерживают до одной трети голосов, принадлежащих византийским валидаторам в рамках алгоритма.

### Византийская отказоустойчивость (Byzantine Fault Tolerance (BFT) <a href="#byzantine-fault-tolerance-bft" id="byzantine-fault-tolerance-bft"></a>

* **Византийская отказоустойчивость Byzantine Fault Tolerance** (BFT) - это способность распределенной системы предоставлять гарантии безопасности и жизнеспособности при наличии ошибочных или [«византийских» валидаторов](#byzantine-validator) ниже определенного порога.
* &#x20;Aptos Blockchain использует AptosBFT - протокол консенсуса, основанный на [HotStuff](#hotstuff).
* Алгоритмы BFT обычно работают с рядом объектов, в совокупности владеющих N голосами (которые в применении системы сети Aptos называются "валидаторами").
* N выбирается для того, чтобы противостоять некоторому числу валидаторов, имеющих f голосов, которые могут быть злонамеренными.
* В данной конфигурации N обычно устанавливается равным 3f+1. Валидаторам, набравшим до f голосов, система разрешает быть ошибочными — оффлайн, злонамеренными, медленными и т. д. Пока [честные валидаторы](#chestnyi-validator) владеют 2f+1 голосами, они смогут прийти к консенсусу по согласованным решениям.
* Это означает, что протоколы консенсуса BFT могут функционировать корректно, даже если до одной трети голосов принадлежит валидаторам, которые являются скомпрометированными или не работают.

### Виртуальная машина Move (Move Virtual Machine (MVM))

* **Виртуальная машина Move** выполняет скрипты транзакций, написанные в [байт-коде Move](#move-bytecode), для получения результата исполнения. Этот результат используется для обновления **состояния** блокчейна.
* Виртуальная машина является частью [валидатора](#validator).

## Г

### Газ (Gas)[​](https://aptos.dev/reference/glossary/#gas) <a href="#gas" id="gas"></a>

* **Газ** - это способ оплаты вычислений и хранения в сети блокчейн. Все транзакции в сети Aptos стоят определенное количество газа.
* Газ, необходимый для транзакции, зависит от размера транзакции, вычислительных затрат на выполнение транзакции и объема дополнительного глобального состояния, созданного транзакцией (например, если создаются новые учетные записи).
* Целью газа является регулирование спроса на ограниченные вычислительные ресурсы и ресурсы хранения валидаторов, в том числе предотвращение атак типа «отказ в обслуживании» (DoS).&#x20;

## Д

### Девнет (Devnet)

* **Девнет** - это общедоступный экземпляр сети Aptos, работающий с использованием набора валидирующих тестовых нод.&#x20;
* Девнет - это демонстрация сети Aptos, служащая для экспериментов с новыми идеями.
* Девнет имитирует цифровую платежную систему, а монеты в девнете *не имеют реальной стоимости.*

### Дерево Меркла (Merkle Tree)

* **Дерево Меркла -** это тип аутентифицированной структуры данных, который позволяет эффективно проверять целостность и обновления данных.
* Сеть Aptos рассматривает всю цепочку блоков как единую структуру данных, которая записывает историю транзакций и состояний с течением времени.
* Дерево Меркла упрощает работу приложений, обращающихся к блокчейну. Это позволяет приложениям:
  * читать любые данные в любой момент времени.
  * проверять целостность данных с помощью единой платформы.

### Доказательство (Proof)

* **Доказательство** — это способ проверить точность данных в блокчейне.
* Каждая операция в Aptos Blockchain может быть криптографически проверена на предмет того, что она действительно верна и что данные не были пропущены.
* Например, если пользователь запрашивает информацию в рамках конкретной выполненной транзакции, ему будет предоставлено криптографическое доказательство того, что возвращаемые ему данные верны.

## Е

### Ed25519[​](https://aptos.dev/reference/glossary/#ed25519) <a href="#ed25519" id="ed25519"></a>

* **Ed25519** - это наша поддерживающая схема цифровой подписи.
* В частности, сеть Aptos использует схему PureEdDSA по кривой Ed25519, как определено в RFC 8032.

## И

### Истечение срока действия (Expiration Time)

Транзакция перестает быть действительной по **истечении срока ее действия**. Если предположить, что:

* Time\_C - текущее время, согласованное между валидаторами (Time\_C - это не местное время клиента);
* Time\_E - время истечения срока действия транзакции T\_N;
* Time\_C > Time\_E и транзакция T\_N не была включена в блокчейн,

есть гарантия, что T\_N никогда не будет включена в блокчейн.

## К

### Консенсус

* **Консенсус** является компонентом валидатора.
* Компонент консенсуса отвечает за координацию и согласование между всеми валидаторами блока выполняемых транзакций, их порядка и результатов выполнения.
* Aptos Blockchain формируется из этих согласованных транзакций и соответствующих результатов их выполнения.

### Консенсус-протокол

* Консенсус-протокол выполняется совместно n валидаторами для одобрения или отклонения транзакции, согласования порядка транзакций и результатов выполнения.
* См. [BFT  ](#byzantine-fault-tolerance-bft)

### Корневой хэш состояния (State Root Hash) <a href="#state-root-hash" id="state-root-hash"></a>

* **Корневой хэш состояния** - это [хеш Меркла](https://en.wikipedia.org/wiki/Merkle_tree) для всех ключей, который оценивает состояниеAptos Blockchain в данной версии.

### Корректно сформированная транзакция (Well-Formed Transaction)

Транзакция в сети Aptos считается **корректно сформированной**, если для нее выполняется каждое из следующих условий:

* Транзакция имеет действительную подпись.
* Учетная запись существует по адресу отправителя.
* Он включает открытый ключ, и хэш открытого ключа соответствует ключу аутентификации учетной записи отправителя.
* Порядковый номер транзакции совпадает с порядковым номером учетной записи отправителя.
* Баланс учетной записи отправителя превышает [максимальное количество газа](#maksimalnoe-kolichestvo-gaza-maximum-gas-amount).
* Срок действия транзакции не истек.

### Кран (Faucet)

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

## Л

### Лидер (Leader)

* **Лидер** - это валидатор, который предлагает блок транзакций для протокола консенсуса.
* В протоколах на основе лидеров, ноды должны договориться о лидере для достижения прогресса.
* Лидеры выбираются функцией, которая в качестве входных данных принимает номер текущего раунда [round number](https://fb.quip.com/LkbMAEBIVNbh#ffYACAO6CzD).

## М

### Максимальное количество газа (Maximum Gas Amount)

* Максимальное количество газа транзакции - это это максимальное количество газа, которое отправитель готов заплатить за транзакцию.
* Плата за газ равна цене газа, умноженной на количество единиц газа, необходимых для обработки этой транзакции. Если результат меньше максимального количества газа, транзакция успешно выполнена.
* Если во время выполнения транзакции заканчивается газ или у учетной записи заканчивается баланс, с отправителя будет взиматься плата за использованный газ, а транзакция не будет выполнена.

### Мемпул (Mempool)

* **Мемпул** является одним из компонентов валидатора. Он содержит в памяти буфер транзакций, которые были отправлены, но еще не согласованы и не выполнены. Мемпул получает транзакции из [JSON-RPC Service](https://aptos.dev/reference/glossary/#json-rpc-service).
* В мемпул валидатора транзакции добавляются из сервиса JSON-RPC Service текущих нод и из мемпула других нод Aptos.
* Если текущий валидатор является лидером, его компонент консенсуса извлекает транзакции из своего мемпула и предлагает порядок транзакций, формирующих блок. Затем кворум валидаторов голосует за предложение.

### Модуль Move (Move Module)

* **Модуль Move** определяет правила обновления глобального состояния Aptos Blockchain.
* В протоколе Aptos модуль Move представляет собой **смарт-контракт**.
* Каждая отправленная пользователем транзакция включает скрипт транзакции. Скрипт транзакции вызывает процедуры одного или нескольких модулей Move для обновления глобального состояния блокчейна в соответствии с правилами.

### Move <a href="#move" id="move"></a>

* **Move -** это новый язык программирования, реализующий все транзакции в Aptos Blockchain.
* Он имеет два разных вида кода - [скрипты транзакций](#transaction-script) и [модуль Move](#modul-move-move-module).

## Н

### Нода (Node)[​](https://aptos.dev/reference/glossary#node) <a href="#node" id="node"></a>

* **Нода** - это равноправный объект сети Aptos, который отслеживает состояние Aptos Blockchain.
* Aptos нода состоит из логических компонентов. [Мемпул](#mempul-mempool), [консенсус](#mempul-mempool) и [виртуальная машина](#virtualnaya-mashina-move-move-virtual-machine-mvm) являются примерами компонентов ноды.

### Номер раунда (Round Number) <a href="#round-number" id="round-number"></a>

* **Номер раунда** -  это общий счетчик, используемый для выбора лидеров в эпоху протокола консенсуса.

## О

### Отправитель (Sender) <a href="#sender" id="sender"></a>

* *Альтернативное наименование:* Адрес отправителя (Sender address).
* **Отправитель -** это адрес учетной записи инициатора транзакции. Транзакция должна быть подписана отправителем.

## П

### Порядковый номер (Sequence Number)  <a href="#sequence-number" id="sequence-number"></a>

* **Порядковый номер** учетной записи показывает количество транзакций, которые были отправлены и зафиксированы в цепи с этой учетной записи. Он увеличивается каждый раз, когда транзакция, отправленная с этой учетной записи, выполняется или прерывается, и сохраняется в блокчейне.
* Транзакция выполняется только в том случае, если она соответствует текущему порядковому номеру учетной записи отправителя. Это помогает упорядочить несколько транзакций от одного и того же отправителя и предотвращает повторные атаки.
* Если текущий порядковый номер учетной записи A равен X, то транзакция T учетной записи A будет выполнена только в том случае, если порядковый номер T равен X.
* Эти транзакции будут храниться в мемпуле до тех пор, пока они не станут следующим порядковым номером для этой учетной записи (или пока не истечет срок их действия).
* Когда транзакция будет выполнена, порядковый номер учетной записи станет X+1. Учетная запись имеет строго возрастающий порядковый номер.

## Р

### Раунд (Round) <a href="#round" id="round"></a>

* **Раунд** состоит из достижения консенсуса по блоку транзакций и результатам их выполнения.

### Ресурсы Move (Move Resources)

* **Ресурсы Move** содержат данные, к которым можно получить доступ в соответствии с **процедурами**, объявленными в **модуле** Move.
* Ресурсы Move никогда не могут быть скопированы, повторно использованы или потеряны. Это защищает программистов Move от случайной или намеренной потери ресурса.

### REST Сервис (REST Service) <a href="#rest-service" id="rest-service"></a>

* Компонент REST сервис — это внешний интерфейс Aptos ноды. Любой входящий запрос клиента, например отправленные транзакции или запросы, должен сначала пройти через REST сервис. Клиенту необходимо пройти через компонент REST сервиса, чтобы получить доступ к хранилищу или любому другому компоненту в системе. Это фильтрует запросы и защищает систему.
* Всякий раз, когда клиент отправляет новую транзакцию, REST сервис передает ее в [мемпул](#mempul-mempool).

## С

### Скрипт транзакции (Transaction Script) <a href="#transaction-script" id="transaction-script"></a>

* Каждая транзакция, отправленная пользователем, включает в себя **скрипт транзакции**.
* Он представляет собой операцию, которую клиент отправляет валидатору.
* Операция может быть запросом на перевод монет от пользователя А к пользователю Б или может включать взаимодействие с опубликованными [модулями Move](#modul-move-move-module)/смарт-контрактами.&#x20;
* Скрипт транзакции - это произвольно выбранная программа, которая взаимодействует с ресурсами, опубликованными в глобальном хранилище Aptos Blockchain, посредством вызова процедур модуля. Он кодирует логику транзакции.
* Один скрипт транзакции может отправлять средства нескольким получателям и вызывать процедуры из нескольких разных модулей.
* Скрипт транзакции **не хранится** в глобальном состоянии и не может быть вызван другими скриптами транзакций. Это программа для однократного использования.

### Смарт-контракт (Smart Contract) <a href="#smart-contract" id="smart-contract"></a>

* См. [Модуль Move](#modul-move-move-module)

### Событие (Event)

* **Событие** - это ориентированное на пользователя представление последствий выполнения транзакции.&#x20;
* Транзакция может быть сконструирована так, чтобы выдавать любое количество событий в виде списка. Например, перевод `Coin<TestCoin>` создает событие `WithdrawEvent` для учетной записи отправителя и `DepositEvent` для учетной записи получателя.
* В протоколе Aptos события служат доказательством того, что успешное выполнение транзакции привело к определенному эффекту. `DepositEvent` (в приведенном выше примере) позволяет получателю подтвердить, что платеж был получен на его счет.
* События сохраняются в блокчейне и используются для ответов на запросы клиентов.

### Сообщество разработчиков ПО с открытым исходным кодом (Open-Source Community)

* **Сообщество разработчиков ПО с открытым исходным кодом** - это термин, используемый для группы разработчиков, которые работают над программным обеспечением с открытым исходным кодом. Если вы читаете этот глоссарий, значит, вы являетесь частью сообщества разработчиков проекта Aptos.

### Состояние (State) <a href="#state" id="state"></a>

* Состояние в протоколе Aptos - это зафиксированное мгновенное состояние распределенной базы данных.
* Транзакция изменяет базу данных и создает новое актуализированное состояние.

## Т

### Транзакция (Transaction[​](https://aptos.dev/reference/glossary#transaction)) <a href="#transaction" id="transaction"></a>

* Необработанная **транзакция** содержит следующие поля::
  * [Отправитель (адрес учетной записи)](#sender)
  * [Скрипт транзакции](#transaction-script)
  * [Цена газа](#cena-gaza-gas-price)
  * [Максимальное количество газа](#maksimalnoe-kolichestvo-gaza-maximum-gas-amount)
  * [Порядковый номер](#sequence-number)
  * [Истечение срока действия](#istechenie-sroka-deistviya-expiration-time)
* Подписанная транзакция - это необработанная транзакция с цифровой подписью.
* Выполненная транзакция изменяет состояние Aptos Blockchain.

## У

### Учетная запись (Account)

* Учетная запись в Aptos Blockchain представляет собой контейнер, содержащий произвольное количество [модулей Move](#modul-move-move-module) и [ресурсов Move](#resursy-move-move-resources). По сути, это означает, что состояние каждой учетной записи состоит как из кода, так и из данных.
* Учетная запись идентифицируется по [адресу учетной записи](#adres-uchetnoi-zapisi).

## Ц

### Цена газа (Gas Price)

* Каждая транзакция определяет цену газа, которую отправитель готов заплатить. Цена на газ указывается в валюте/единицах газа.
* Цена газа, необходимая для транзакции, зависит от текущего спроса на использование сети.
* Стоимость газа фиксируется на определенный момент времени. Стоимость газа выражена в единицах газа.

## Ч

### Честный валидатор

* Валидатор, который добросовестно выполняет протокол консенсуса и не является византийским.

## HotStuff[​](https://aptos.dev/reference/glossary/#hotstuff) <a href="#hotstuff" id="hotstuff"></a>

* **HotStuff** - это недавнее предложение протокола консенсуса [BFT](#byzantine-fault-tolerance-bft).
* AptosBFT, алгоритм консенсуса сети Aptos, основан на HotStuff.
* Это упрощает рассуждения о безопасности и устраняет некоторые ограничения производительности предыдущих протоколов консенсуса.
