Common-Input Ownership Heuristic предполагает, что несколько входов одной транзакции Bitcoin — ссылок на прежние суммы, которые тратятся, — обычно контролирует один субъект. Она помогает находить связанные адреса по поведению кошельков. Это аналитическая подсказка, а не правило Bitcoin и не доказательство собственности на деньги.
Пётр получает два платежа на разные адреса. Позже Пётр оплачивает ремонт велосипеда, и его кошелёк тратит оба поступления вместе. Кошелёк — приложение или устройство для получения и отправки биткоинов. Сторонний наблюдатель видит прежде незаметную связь: кто-то смог потратить эти средства в одной транзакции. Для обычного личного кошелька предположение об общем контроле выглядит разумным. На этом поведении и основана эвристика — практическое правило оценки. Однако Bitcoin не требует одного владельца всех входов. Даже большее число входов само по себе не определяет вероятность правильности предположения. [1] [6]
Полученные средства существуют как UTXO — неизрасходованные выходы прежних транзакций. Каждый такой выход содержит сумму и условия, при которых её можно потратить. Вход новой транзакции ссылается на конкретный такой выход. Скрипт — это короткая программа с правилами траты. Аналитик находит записанные в нём условия расходования и связывает соответствующий адрес или скрипт с остальными входами. Таковы точные границы метода. Транзакция с единственным входом не даёт новой пары для связывания. Правило также не определяет, какой новый выход является платежом, а какой change — сдачей, возвращаемой плательщику. Для этого нужна другая подсказка. Поэтому выход мастерской нельзя автоматически приписать Петру только потому, что он присутствует в его платеже. [1] [4]
Пётр и другой человек могут подготовить общую транзакцию, каждый подписав свои входы. Приватные ключи, секретные числа для создания подписей, разрешающих трату биткоинов, остаются раздельными. PSBT — описанный в BIP 174 формат передачи незавершённой транзакции и сопутствующих сведений между программами или устройствами. Координатор, собирающий данные, не обязан иметь все ключи. Сеть проверяет выполнение условий расходования, а не то, что все подписи создал один человек. Multisig относится к другому вопросу: он может требовать несколько подписей для одного входа, тогда как эта эвристика оценивает связь между несколькими входами. [2] [5] [6]
CoinJoin позволяет нескольким участникам включить свои средства в общую транзакцию. Payjoin показывает проблему непосредственно при платеже: согласно BIP 78 получатель тоже может добавить свои входы. Если бы мастерская приняла такой платёж, слепое применение эвристики могло бы объединить её средства с деньгами Петра. Сотрудничество не требует одинаковых сумм на всех выходах. Поэтому недостаточно исключить транзакции, похожие на очевидный CoinJoin, и объявить остальные платежами одного владельца. Это не значит, что каждая транзакция совместная; лишь то, что её вид не всегда исключает такую возможность. [2]
Представим адреса A, B и C. Первая транзакция вместе тратит выходы из A+B. Вторая объединяет другие выходы из B+C. Речь не о повторной трате одного UTXO. Через общую B инструмент может объединить A+B+C в группу, или cluster. Но если вторая транзакция была совместной работой разных людей, ошибка затронет и ранее приписанный адрес A. Так неверные связи распространяются между целыми группами. Поэтому небольшое число ошибочных соединений ещё не гарантирует небольшого числа неправильно приписанных адресов. [1] [3]
Биржа может в одной транзакции потратить средства, которыми управляет для многих клиентов. Эвристика тогда может верно выявить общий операционный контроль сервиса. Она не установит, каким клиентам средства принадлежат экономически. Даже название сервиса нельзя прочитать из одних входов: метке нужны дополнительные основания и соответствие рассматриваемому периоду. И наоборот, Пётр может пользоваться несколькими кошельками, никогда не объединяя их средства. Число найденных групп поэтому не равно числу людей. Контроль, собственность и личность связаны, но это разные вопросы. [1]
Аналитик хочет выяснить, верно ли связал адреса. Если единственное подтверждение — их последующее совместное расходование, он может просто повторять исходное предположение. Независимое доказательство от этого автоматически не возникает. Malte Möser и Arvind Narayanan описывают использование таких эталонных данных и их ограничения. Поэтому оценка должна раскрывать происхождение выборки, исключённые транзакции и охваченный период. Ошибочные объединения, пропущенные связи и охват оцениваются отдельно. Без калибровки на известных случаях оценку нельзя трактовать как вероятность правильного установления личности. [3]
Пётр может использовать Coin Control, ручной выбор расходуемых UTXO, чтобы ограничивать будущие связи между ранее отдельными поступлениями. Это не удаляет старые транзакции и требует понимания того, какие средства он выбирает. Payjoin тоже не устраняет всех других способов приписывания. В анализе каждая связь должна вести к транзакции, версии правила и причине включения или исключения. Эти проверочные вопросы следуют из ограничений в источниках. Найденная ошибка должна позволять заново определить, какие адреса относятся к группе; простая заметка при неизменном выводе не исправляет неверные приписывания. [2] [3]
Для полной картины прочитайте эту статью вместе с Address Clustering, CoinJoin, Payjoin, Chain Surveillance, PSBT, Coin Control. На эту статью также ссылаются Payjoin, Coin Selection, Chain Surveillance, Address Clustering.