Баланс — это сумма, вычисленная кошельком
Представьте, что вы получили три платежа: 20 000, 30 000 и 50 000 сатоши. Сеть не хранит строку «баланс 100 000». Существуют три отдельных непотраченных выхода, а кошелёк определяет, какие из них способен потратить с помощью своих ключей. Их сумму он показывает как понятный пользователю баланс.
UTXO происходит из конкретной транзакции, имеет точную стоимость и условие блокировки. Когда более поздняя действительная транзакция использует его как вход, он становится потраченным и больше не может использоваться. Вместо него возникают новые выходы. Полные узлы поддерживают актуальный набор непотраченных выходов, чтобы эффективно обнаруживать двойную трату.
Выход нельзя оторвать только наполовину
Если у вас есть UTXO на 50 000 сатоши, а заплатить нужно 18 000, транзакция полностью расходует исходный выход. Она может создать 18 000 сатоши для получателя, например 31 500 сатоши сдачи обратно вашему кошельку, а 500 сатоши оставить как комиссию.
В обозревателе адрес сдачи может выглядеть вторым получателем, хотя он принадлежит отправителю. Обычно кошелёк создаёт его автоматически. Если сдачу пропустить, вся разница между входами и остальными выходами может стать комиссией майнеру. Поэтому без достаточных знаний опасно самостоятельно создавать сырые транзакции.
- выбранные UTXO расходуются полностью
- платёж и сдача становятся новыми отдельными выходами
- комиссия не является отдельным выходом; это разница между суммой входов и выходов
Выбор монет влияет на стоимость и приватность
Кошелёк должен решить, какие UTXO использовать. Большее число входов обычно означает более крупную транзакцию и, следовательно, более высокую общую комиссию при той же ставке. Когда место в блоках дорого, тратить множество очень мелких выходов может быть невыгодно: их входы занимают больше данных, чем оправдывает их стоимость.
Объединение нескольких UTXO в одной транзакции также публично предполагает, что ими мог управлять один плательщик. Это не математическое доказательство личности, но часто используемая аналитическая эвристика. Хороший кошелёк поэтому уравновешивает текущую комиссию, приватность, размер сдачи и будущую пригодность выходов.
Модель UTXO позволяет независимо проверять состояние
Получив транзакцию, узел для каждого входа находит указанный UTXO, проверяет условие траты и убеждается, что сумма выходов не превышает разрешённую входами стоимость. После принятия блока он удаляет потраченные элементы из своего набора UTXO и добавляет новые доступные для траты выходы.
Узел не обязан доверять балансу, сообщённому чужим кошельком. Он выводит состояние из собственной проверенной истории. Цена этой модели — менее интуитивный интерфейс и необходимость разумно управлять выходами. Кошелёк скрывает детали, но при высоких комиссиях или важной приватности они снова становятся существенными.