Перейти к содержимому
buybitcoinsmart

Глоссарий / Справочник разработчика

Заметка PP

Что такое заметка PP?
Заметка PP (PP memo) представляла собой поле произвольного текста в UTF-8, которое BIP70 позволял продавцу, плательщику или серверу, подтверждающему получение, прикреплять к платежу, чтобы его мог прочитать человек.

Определено в BIP-70.

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

Как это работает

Статус: историческое. Заметка выступала полем 5 сообщения PaymentDetails, полем 4 сообщения Payment и полем 2 сообщения PaymentACK, и все они исчезли из Bitcoin Core, когда поддержку BIP70 убрали в версии 0.20.0 3 июня 2020 года.

У каждой из трех был свой автор и свой читатель.

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

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

Третью продавец вписывал в подтверждение получения, обычно это была благодарность или оценка срока доставки. Ее тоже ничто не подписывало.

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

Где это встречается

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

Платежные ссылки BIP21 несут параметр message с процентным кодированием, который кошелек показывает и затем забывает. Lightning идет дальше: счет BOLT11 помещает описание в поле d, а поскольку поле с тегом вмещает не более 1023 групп по пять бит, примерно 639 байт, все более длинное должно быть заменено своим хешем в 256 бит в поле h. Биржи предлагают в формах вывода поле примечания, содержимое которого никогда не покидает их собственную базу данных.

Единственная заметка, которая действительно попадает в блокчейн, представляет собой выход OP_RETURN. Политика ретрансляции Bitcoin Core допускала полезную нагрузку в 40 байт, когда этот тип выхода стал стандартным в версии 0.9.0, и 80 байт начиная с версии 0.11.0. За эти байты вы платите комиссию, и они навсегда остаются публичными, поэтому использование такого выхода в качестве приватной заметки является ошибкой, которую никто не совершает дважды.

Все остальное хранится у вас локально. Заметка, набранная в вашем собственном кошельке, находится в файле кошелька, а не в сид-фразе, поэтому восстановление на новом устройстве вернет биткоины и ни одного слова, которое вы о них написали. Перед переездом сделайте экспорт.

Заметка PP vs метка

Заметка описывает платеж; метка называет сторону или адрес. Заметки BIP70 писались для одной транзакции и показывались один раз, в момент оплаты. Метка BIP21 указывает, кому платят, а метка кошелька представляет собой приватную пометку для учета, которую вы прикрепляете к адресу или транзакции и храните на своей машине. Ни одну из трех не подписывает тот, чьи слова можно проверить, и ни одна из них не видна сети.

Не путать с

Часто задаваемые вопросы

Можно ли прикрепить сообщение к транзакции биткоина?

Только через выход OP_RETURN, за который нужно заплатить комиссию и который остается публичным навсегда. Заметки в платежной ссылке, в счете Lightning или в вашем кошельке хранятся вне сети (off-chain), поэтому получатель увидит их, только если программное обеспечение, которое используете вы оба, передаст их дальше.

Стоит ли доверять заметке, показанной на экране подтверждения платежа?

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

Читайте далее

Связанные термины

Еще в разделе «Справочник разработчика»

Читать эту страницу на английском