Содержание Транзакция Типы транзакций в сети Decimal Комиссии за транзакции в блокчейне Decimal Комиссия за транзакции Мошеннические транзакции Транзакция Транзакция — запрос на запись в блокчейне и логически завершённая операция обмена данными, которая либо подтверждается и вносится в блок, либо отменяется. Транзакции в DecimalChain обрабатываются специализированными участниками сети — валидаторами — за вознаграждение в виде новых монет DEL. Каждая операция в сети Decimal начинается с формирования специального сообщения по установленной форме, после чего его отправляют мастерноде, где запрос проверят на честность. Далее честная транзакция получает статус неподтверждённой. Все проверенные, но не подтверждённые валидаторами транзакции находятся в ожидании обработки. Место, где хранятся неподтверждённые транзакции, называют мемпулом (с англ. memory pool). Валидатор берёт транзакции из мемпула, собирает их в блок и предлагает остальным валидаторам согласовать получившийся блок. Если блок согласован, все транзакции, которые вошли в него, получают статус подтверждённых и навсегда становятся частью блокчейна Decimal. Для простого пользователя DecimalChain весь путь транзакции скрыт за простой и понятной формой, в которой нужно лишь указать адрес получателя и сумму DEL. Через шесть секунд транзакция будет подтверждена. Типы транзакций в сети Decimal В Decimal реализованы следующие типы транзакций: Send (отправка монет); Buy (покупка монеты); Sell (продажа монеты); Sell All (полная продажа монет); Multisend (отправка нескольким адресатам); Delegate (делегирование монеты валидатору); Unbond (отзыв монеты у валидатора); RedeemCheck (погашение чека); CreateMultisig (создание адреса с мультиподписью); SignTransaction (уникальный идентификатор мультисиг-транзакции); CreateCoin (создание монеты); DeclareCandidate (создание кандидата в валидаторы); EditCandidate (редактирование данных кандидата в валидаторы); SetOnline (активация валидатора); SetOffline (деактивация валидатора). Комиссии за транзакции в блокчейне Decimal Размер комиссии за транзакцию состоит из суммы фиксированной ставки за тип транзакции и стоимости единицы за объём транзакции в байтах. Фиксированная ставка: 1 юнит = 0,001 DEL ● send (отправить) — 10 юнитов — 0.01 DEL ● multisend (мультиотправка) — 10+(n-1)x5 юнитов (n — количество получателей) — 15 юнитов (два получателя) ● sell (продать) — 100 юнитов — 0,1 DEL ● sell (продать) — 100 юнитов — 0,1 DEL ● buy (купить) — 100 юнитов — 0,1 DEL ● declare candidacy (декларирование кандидата) — 10 000 юнитов — 10 DEL ● edit candidate (редактирование кандидата) — 10 000 юнитов — 10 DEL ● delegate (делегирование) — 200 юнитов — 0,2 DEL ● unbond (отвязка) — 200 юнитов — 0,2 DEL ● set online (активирование) — 100 юнитов - 0,1 DEL ● set offline (деактивирование) — 100 юнитов — 0,1 DEL ● create multisig (создание мультисига) — 100 юнитов — 0,1 DEL ● create multisig transaction (создание предложения) — 100 юнитов — 0,1 DEL ● sign transaction (подписание предложения) — 100 юнитов — 0,1 DEL ● redeem check (погасить чек) — 30 юнитов — 0,03 DEL ● три буквы — 1 000 000 DEL ● четыре буквы — 100 000 DEL ● пять букв — 10 000 DEL ● шесть букв — 1 000 DEL ● семь - десять букв — 100 DEL Стоимость одного байта итогового объёма транзакции — два юнита (0,002 DEL). По сути, транзакция — это просто информационное сообщение. В нём указано следующее: что, сколько, кому и от кого отправляется, а также служебные данные. Комиссия за транзакции Исходя из опыта тестирования при разработке Decimal, мы располагаем следующими ориентировочными данными по стоимости каждой транзакции: ● send (отправить) ~ 0.41 DEL ● multisend (мультиотправка) ~ 0,479 DEL (два получателя) ● sell (продать) ~ 0.484 DEL ● sell (продать) ~ 0.444 DEL ● buy (купить) ~ 0.54 DEL 21 ● declare candidacy (декларирование кандидата) ~ 10.674 DEL ● edit candidate (редактирование кандидата) ~ 10.494 DEL ● delegate (делегирование) ~ 0,564 DEL ● unbond (отвязка) ~ 0,604 DEL ● set online (активирование) ~ 0.396 DEL ● set offline (деактивирование) ~ 0.394 DEL ● create multisig (создание мультисига) ~ 0.494 DEL ● create multisig transaction (создание предложения) ~ 0.542 DEL ● sign transaction (подписание предложения) ~ 0.544 DEL ● redeem check (погашение чека) ~ 0.03 DEL Мошеннические транзакции Основная проблема блокчейна — двойная трата (с англ. double spend). В цифровом пространстве всегда есть возможность потратить одни и те же деньги два раза, отправив две транзакции одновременно. Обработка транзакции занимает время, поэтому можно, имея на счёте 100 DEL, отправить их и Маше, и Ивану. Пока транзакции не обработаны, два разных валидатора, не зная о второй транзакции, могут попытаться обработать их обе, каждый свою. Проблема усугубляется тем, что теоретически валидаторы могут быть заинтересованы в подтверждении транзакций, чтобы получить комиссию за обе, а может быть и так, что валидаторы связаны с мошенником-отправителем. Подписывая один блок на одной высоте два раза, но с разными данными, валидаторы могут добавить в сеть опасный конфликт. Это ведёт к разветвлению цепочки блоков (форку), поэтому за подобное поведение в DecimalChain на валидаторов накладывается штраф в 5% от всего стейка, а все делегаторы оштрафованного валидатора получают принудительный отзыв стейков за минусом 5% штрафа.