Предоставлено Дэниелом Таном, Источник: MetaTrust Labs
2023-11-21 На широко обсуждаемой торговой платформе Atomicals Market произошел инцидент с покупкой 0 юаней, из-за чего Atomicals Protocol и его торговая платформа Atomicals Market недавно попали в шторм. Ряд вопросов о токене ARC-20 вызвал широкое обсуждение и сомнения.
Атомный протокол и атомарный рынок
Atomicals Market — это торговая площадка ARC-20, которая использует протокол Atomicals для транзакций ARC-20 (Atomicals Market и Atomicals Protocls — это не одна и та же компания)
21-го числа Atomicals Market сообщила, что обнаружила уязвимость PBST в своем торговом процессе, основанном на протоколе Atomicals, в результате чего пользователи понесли убытки при торговле токеном atom.

В то же время Atomicals Protocol опроверг замечания Atomicals Market в сообщении от 24-го числа, указав, что причиной проблемы стала халатность Atomicals Market, использующая SIGHASH_NONE для подписания транзакций, подвергая риску своих пользователей. Atomicals Protocol заявила и предупредила, что Atomicals Market не должен использовать SIGHASH_NONE для подписания (стоит отметить, что SatsX, который также является торговой платформой Atomicals, похоже, не находится в аналогичной ситуации)

После анализа было установлено, что основной причиной покупки 0 юаней было то, что Atomicals Market неправильно использовал SIGHASH_NONE в PSBT (TX:1623bf2997cde779dd9e0e2c54b5f7f196f36826dcb689e41acd7fff27ec5c93)

Прежде чем мы пойдем дальше, важно знать несколько вещей, потому что BTC не использует модель учетных записей, как Ethereum.
Выход неизрасходованных транзакций биткоина (UTXO) представляет собой определенную часть владения биткойнами. В отличие от традиционных систем, которые используют счета и балансы, Биткойн работает через эти отдельные разделы Биткойна. Каждый UTXO определяется определенным значением, которое представляет различные части биткоина, передаваемые в транзакции.

В ходе транзакции UTXO потребляется и больше не существует. В результате эта операция создает один или несколько новых UTXO. Набор этих UTXO, известный как наборы UTXO, поддерживается и обновляется всеми узлами сети. Это происходит всякий раз, когда новый блок обрабатывает транзакции, которые генерируют и удаляют UTXO. Наборы UTXO играют ключевую роль, позволяя узлам независимо подтверждать легитимность транзакций и биткойнов, которые они намерены потратить.
Частично подписанные биткойн-транзакции (PSBT) — это протокол в экосистеме биткоина, который направлен на повышение удобства передачи неподписанных транзакций, позволяя нескольким участникам подписывать одну транзакцию одновременно.
PSBT (частично подписанная биткойн-транзакция) предлагает полезность в различных сценариях. Рассмотрите возможность создания транзакции CoinJoin с участием трех человек. Во время этого процесса каждый из трех участников отправляет сообщение центральному координатору. Сообщение содержит подробную информацию о UTXO (неизрасходованном выходе транзакции), который они хотят включить в CoinJoin. Кроме того, каждый участник указывает адрес, на который должна быть возвращена его доля биткоина после завершения транзакции CoinJoin.

Atomicals Protocol упоминает, что на безопасном этапе обмена PBST продавец подписывает 2-й вход, содержащий ARC20 Atomical, и 2-й выход, содержащий сумму платежа.
Продавцам необходимо использовать SIGHASH_SINGLE | ПОСЛЕ ТОГО, КАК ANYCANPAY БУДЕТ ПОДПИСАН, ПОКУПАТЕЛИ МОГУТ ДОБАВИТЬ СВОИ ВХОДНЫЕ ДАННЫЕ, ЧТОБЫ ПОЛУЧИТЬ СРЕДСТВА, И ДОБАВИТЬ АДРЕС ПОЛУЧАТЕЛЯ, КОТОРЫЙ ОНИ ПОЛУЧАТ ДЛЯ ПОКУПКИ ТОКЕНОВ ARC20.

Затем, вместо использования SIGHASH_SINGLE в свопе, Atomicals Market использует SIGHASH_NONE.
МЫ МОЖЕМ ВЗГЛЯНУТЬ НА РАЗЛИЧИЯ МЕЖДУ NONE И SINGLE:

Поскольку Atomicals Market использует NONE, подписывается только один вход, а это означает, что проверяется только количество проданных токенов. Если выходные данные не подписаны, это означает, что полученные токены не проверены. В результате злоумышленники могут покупать токены пользователей, не оплачивая их.

33 000 $ATOM
Atomicals Market обещает компенсировать пользователям их потери.

Команда проекта должна провести глубокое изучение протоколов, на которые опирается, а продукт должен быть адекватно протестирован и проверен, обращая внимание как на сами протоколы, так и на рекомендации органов безопасности.