Глоссарий / Приватность и безопасность
Контроль монет
- Что такое контроль монет?
- Контроль монет (coin control) представляет собой функцию кошелька, которая позволяет вам точно указать, какие именно из имеющихся у вас монет будут израсходованы в транзакции, вместо того чтобы кошелек выбирал их за вас.
Баланс представляет собой не одно число, а набор отдельных фрагментов, каждый из которых остался от более раннего платежа в ваш кошелек, и каждое расходование поглощает фрагменты целиком. Добавление еще одного фрагмента в транзакцию стоит примерно 68 виртуальных байт комиссии и сообщает любому, кто читает цепочку, что оба фрагмента принадлежат одному владельцу. Контроль монет (coin control) позволяет вернуть это решение себе.
Как это работает
Любой кошелек уже выбирает монеты за вас. Когда вы вводите сумму и нажимаете кнопку отправки, алгоритм ищет среди ваших неизрасходованных выходов комбинацию, которая покрывает ее. Bitcoin Core использует решатель branch and bound Мерча начиная с версии 0.17.0 в 2018 году, который подбирает набор входов, достаточно близко совпадающий с целевой суммой, чтобы вообще обойтись без выхода со сдачей. Он оптимизирует комиссии и ничего не знает о том, какие монеты вы предпочли бы не трогать.
Включение контроля монет заменяет эту догадку списком. В Bitcoin Core вы отмечаете "Enable coin control features" в настройках, и на экране отправки появляется выбор входов; в графическом кошельке эта функция есть начиная с версии 0.9.0 в 2014 году. Sparrow, Electrum, Wasabi и BlueWallet все показывают то же самое на вкладке UTXO, где у каждой монеты видны ее сумма, число подтверждений и любая метка, которую вы ей дали.
С этим поставляются три средства управления. Вы можете выбирать входы вручную, так что транзакция израсходует только отмеченные вами монеты. Вы можете заморозить монету, и тогда автоматический выбор навсегда перестанет ее видеть. И вы можете помечать монеты по мере их поступления, а именно этот шаг люди пропускают и потом жалеют, потому что непомеченный выход шестимесячной давности является просто числом без связанной с ним истории.
Выбор входов определяет и сдачу. Потратьте монету в 250 000 сатоши, чтобы заплатить 200 000, и вы создадите новую монету стоимостью в остаток за вычетом комиссий, которая унаследует историю всего, что вы только что потратили.
Почему это важно при покупке биткоина
Вывод с криптобиржи записывает вашу личность рядом с адресом в чьей-то базе данных о соблюдении требований. Каждая крупная площадка на этом сайте сначала проверяет личность, поэтому монеты, попадающие в ваш кошелек, поступают уже помеченными как ваши в глазах любого, кто применяет аналитику. Контроль монет позволяет не дать этой метке распространиться. Если позже вы приобретете биткоин где-то еще, в одноранговой сделке или в качестве оплаты за работу, то отделение этих монет от транзакций с выводами с биржи означает разницу между двумя отдельными историями и одной.
Вторая причина связана со стоимостью приобретения. Усреднение стоимости (DCA) порождает много мелких монет: River не берет комиссию за регулярные покупки, а привычка еженедельного вывода оставляет вам 52 отдельных выхода в год, каждый из которых куплен по разной цене. Налоговые правила в большинстве стран позволяют вам указать, какие именно единицы вы реализовали, и контроль монет вместе с датированной меткой на каждой входящей монете делает такое указание доказуемым, а не теоретическим. Продать монету за 2000 $ вместо монеты за 200 $ означает реальную разницу в налоговом счете.
Третья причина в том, что это защищает то, что вы раскрываете контрагенту. Человек, которому вы платите, видит все использованные вами входы, а значит и общую стоимость монет, из которых вы потратили. Оплата счета на 40 $ из сберегательного выхода на 2 BTC сообщает получателю, сколько вы держите. Оплата из небольшой отдельной монеты не сообщает ему ничего.
Выбор входов для платежа на 200 000 сатоши
Предположим, в вашем кошельке три монеты: 40 000 сатоши с покупки через Swan, 250 000 сатоши, выведенные с Kraken, и 5 000 000 сатоши долгосрочных сбережений с аппаратного кошелька, который вы настроили несколько лет назад. Вы должны кому-то 200 000 сатоши, а мемпул спокоен при 8 sat/vB.
Если не вмешиваться, кошелек может выбрать монеты в 40 000 и в 250 000 вместе, потому что такая комбинация минимизирует потери. В результате получится 2 входа и 2 выхода, около 209 виртуальных байт, комиссия примерно в 1672 сатоши и постоянное публичное заявление о том, что монета со Swan и монета с Kraken принадлежат одному человеку.
С контролем монет вы отмечаете только монету в 250 000 сатоши. Это 1 вход и 2 выхода, около 141 виртуального байта, комиссия примерно в 1128 сатоши и сдача в 48 872 сатоши. Вы заплатили на 544 сатоши меньше и раскрыли один источник вместо двух. Сберегательная монета на 5 000 000 сатоши остается замороженной и невидимой для алгоритма, как и должно быть.
Контроль монет vs консолидация UTXO
Контроль монет является рулем, а консолидация является одним конкретным направлением. Консолидация означает намеренное расходование множества монет в одну, чтобы сократить будущие комиссии, и это объединение, которое вы выбрали сами. Контроль монет представляет собой общую возможность выбирать, и большую часть времени вы используете ее для обратного, сохраняя раздельно монеты, которые алгоритм объединил бы.
Контроль монет vs CoinJoin
Контроль монет представляет собой учетную дисциплину, и он не стоит ничего, кроме внимания. Он не дает создавать новые связи, но не может стереть связь, которая уже существует в цепочке. CoinJoin представляет собой активную, скоординированную транзакцию с незнакомыми людьми, которая добавляет неоднозначность монетам, чья история уже публична. Эти два подхода дополняют друг друга, и контроль монет важнее в первую очередь, потому что небрежный выбор входов сводит на нет CoinJoin за одно расходование.