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

Пакетный перевод — это транзакция, формирующая выплаты сразу нескольким получателям: в сетях на модели UTXO она содержит несколько выходов внутри одной операции, а в сетях со смарт-контрактами реализуется вызовом контракта-распределителя со списком адресов.

Зачем объединять переводы

Основная причина — экономия. Комиссия зависит от размера транзакции, и добавление получателя увеличивает её незначительно по сравнению с отправкой отдельной операции на каждого, а при десятке адресатов разница достигает нескольких раз, а при сотне становится принципиальной.

Вторая причина касается учёта. Одна запись вместо десятка упрощает сверку и делает отчётность компактнее.

Схема из четырёх шагов: от хэша до сверки каждого получателя
Схема из четырёх шагов: от хэша до сверки каждого получателя

Как отследить исполнение

Что смотреть Где найти
Общий статус операции Страница транзакции по хэшу в обозревателе сети
Список получателей Раздел выходов операции или журнал событий контракта
Суммы по каждому адресу Там же, напротив соответствующего получателя
Число подтверждений Общее для всей операции, отдельных значений нет

Порядок проверки

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

Сохраните хэш и скриншот списка. Этого достаточно для подтверждения выплат перед каждым получателем по отдельности.

Что показывать получателю

Отдельного хэша для конкретного адресата не существует, и это единственное неудобство схемы, причём получателю отправляют ссылку на общую транзакцию с указанием, в какой строке его выплата. Некоторые обозреватели позволяют фильтровать список по адресу, что упрощает проверку со стороны принимающего.

Где чаще всего ошибаются

  • Опечатка в одном адресе: средства уходят постороннему и не возвращаются
  • Превышение лимита получателей в одной операции для конкретной сети
  • Отсутствие резервной копии реестра выплат до отправки
  • Попытка отменить пакет после подтверждения: операция необратима целиком

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

Формирование пакета в разных сетях

В сетях на модели UTXO пакет собирается штатными средствами кошелька: вы добавляете получателей в форму отправки, и все они попадают в выходы одной операции. Поддержка есть у большинства десктопных кошельков, хотя мобильные приложения такую возможность предлагают реже.

В сетях со смарт-контрактами задачу решает контракт-распределитель, принимающий список адресов и сумм. Готовые решения доступны для основных сетей, но перед использованием стоит проверить сам контракт в обозревателе: он получает ваши средства и распределяет их по вашему списку.

Проверка реестра до отправки

Сверьте контрольную сумму: число строк и итог по суммам должны совпадать с исходными данными, и прогоните адреса через проверку формата, которую предлагают кошельки с поддержкой пакетных выплат. При первом использовании отправьте тестовый пакет с минимальными суммами на те же адреса — это дешевле любой ошибки.

Учёт пакетных выплат

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

Рублёвую оценку берут по курсу на дату операции и применяют ко всем строкам пакета одинаково. Это удобнее раздельных переводов, где каждая операция может попасть на свою дату с собственным курсом.

Ограничения по сетям

В сетях на модели UTXO число получателей ограничено размером транзакции, и практический предел обычно измеряется сотнями, а в сетях со смарт-контрактами лимит задаётся расходом вычислительных ресурсов на операцию: слишком большой пакет не поместится в блок и будет отклонён. Уточняйте предел конкретной сети до формирования крупного реестра.

Смежные темы разобраны у нас. Вот основные. Общий раздел — транзакции и сети. Шире — статьи про криптокошельки. Оценку времени разбирает материал как оценить время финализации перевода, а объединение остатков — статья как объединить мелкие остатки в один перевод.

Вопросы и ответы

Можно ли отменить выплату одному получателю?

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

Насколько экономит пакетный перевод?

Зависит от сети и числа получателей, при этом комиссия растёт с каждым адресатом, но заметно медленнее, чем при отдельных операциях: значительная часть стоимости приходится на саму транзакцию независимо от числа выходов. На десятке получателей экономия обычно кратная.

Как получателю убедиться в поступлении?

По хэшу общей транзакции: он откроет её в обозревателе и найдёт свой адрес в списке выходов, причём дополнительно он видит поступление в истории собственного адреса, где операция отображается обычным входящим переводом с тем же хэшем.

Вердикт

Пакет отслеживается одним хэшем, и это же его ограничение: отдельного идентификатора для получателя не существует, и проверяйте реестр до отправки по числу строк и итоговой сумме — после подтверждения исправить нельзя ничего. Тестовый пакет с минимальными суммами при первом использовании окупается многократно. И помните про лимит получателей: слишком большой пакет не поместится в блок.

Операции проверяйте напрямую. Блокчейн-обозреватель Etherscan и обозреватель и монитор мемпула биткоина раскрывают список получателей и суммы по каждому адресу.

Екатерина Лебедева, автор Cryptium. Разбор транзакций, сетей и комиссий. Больше материалов — в Telegram-канале t.me/cryptiumru.