Что такое change address (адрес изменения) в Биткоин? Как он работает?
Что такое change address (адрес изменения): простыми словами
Вы только что провели транзакцию с Биткойнами и обнаружили, что часть ваших монет переведена на неизвестный адрес? Не волнуйтесь. Ваш кошелек не взломан и не сломался.
Просто монеты отправляются на change адрес, которым Вы владеете, и это одна из ключевых функций конфиденциальности Биткойн.
Это случается часто. Будь то QT-кошелек, Electrum-кошелек или любой другой биткойн-кошелек.
Всякий раз, когда человек отправляет несколько монет из своего кошелька, указанное количество монет будет отправлено на биткойн-адрес получателей, а оставшаяся сумма будет возвращена на адрес BTC отправителя. Не по тому же адресу, а по адресу изменения, который связан с биткойн-кошельком.
Большинство пользователей не заметят этих изменений, пока не изучат свой адрес в проводнике блоков. Это, как правило, вводит в заблуждение новичков, потому что их баланс адресов BTC не будет точным и не будет составлять общий баланс, отображаемый их кошельком.
Это связано с тем, что общий баланс, отображаемый кошельком, представляет собой баланс всех адресов, который включает в себя как адрес получения, так и адрес изменения.
К примеру в аппаратных кошельках (Trzor / Ledger) change адреса генерируются автоматически и используются при создании транзакции.
Когда пользователь отправляет транзакцию из своего аппаратного кошелька, он автоматически выберет необходимые UTXO и отправит нужную сумму на адрес получателя. Любой оставшийся баланс будет отправлен на вновь созданный адрес для сдачи в вашем кошельке.
Так зачем отправлять Биткойны на другой адрес? Почему не на оригинальный адрес, который использовал отправитель?
Что такое адрес изменения
В Биткойнах выходные данные изменения - это не что иное, как оставшаяся сумма или дополнительное количество сатоши, которое отправитель использовал в транзакции, но которое возвращается обратно самому отправителю.
Монеты возвращаются обратно, потому что не нужно платить больше, чем указанная сумма транзакции. Адрес, на который возвращается результат изменения, называется адресом изменения. Этим измененным адресом обычно является новый биткойн-адрес, который клиент (биткойн-кошелек) генерирует для отправителя для возврата суммы разницы.
Почему вместо того, чтобы вернуть разницу, просто не заплатить точное количество Биткойнов?
Чтобы понять концепцию смены адреса или вывода изменений, давайте сначала разберемся с основами транзакций в блокчейне Биткойна.
Биткойн транзакции
По сути, каждая биткойн-транзакция состоит из трех вещей: вход, выход транзакции и используемая сумма (BTC).
Вход транзакции - это адрес, с которого отправляются Биткойны.
Выход транзакции - это адрес, на который отправляются Биткойны.
Блокчейн - это огромная запись данных, которая отслеживает все транзакции Биткойн от начала его существования и до настоящего времени. В общем, если у вас есть Биткойны, блокчейн будет ссылаться на все предыдущие транзакции, в которых участвовали ваши Биткойны, прежде, чем попасть на ваш кошелек.
Прежде чем Вы сможете отправить свой Биткойн кому-то, нужно, чтобы монеты как-то появились на вашем кошельке. Адрес, с которого монеты придут к вам, - это вход транзакции, а адрес, который получил Биткойн (ваш адрес BTC), - это выход транзакции.
Далее если Вы хотите отправить свой Биткойн другому человеку, то адрес, с которого Вы отправляете BTC, станет входом транзакции. Адрес BTC других лиц, которые получат ваш Биткойн, станет выходом транзакции.
Таким образом, в какой-то момент выходные данные могут стать входными данными в зависимости от того, расходуются они или нет.
Если выходные данные не являются частью другой транзакции (не потрачены), то именно там монеты действительно присутствуют и называются «неизрасходованный выход транзакции» (UTXO).
Теперь, когда Вы поняли, что такое входные данные, выходные данные и UTXO, давайте перейдем к актуальной теме - «Адрес изменения». Почему и как создаются выходные изменения?
Выход Биткойнов
В Биткойнах и в основном во многих других криптовалютах UTXO (выход неизрасходованных транзакций) неделим. То есть, когда выходные данные предыдущей транзакции становятся входными данными другой транзакции, ее необходимо полностью израсходовать.
Ее нельзя разделить, и это правило. Протокол Биткойн позволяет только тратить UTXO в полном объеме. Это делается в первую очередь по двум причинам: безопасность и эффективность.
Следовательно, если выходные данные больше, чем то, что пользователь желает заплатить в транзакции, создается выход изменения, и он становится новым UXTO.
Аналогичным образом, если выходные данные меньше, чем те, которые пользователь желает заплатить, клиент кошелька выбирает несколько неизрасходованных выходных данных пользователей в качестве входных данных для пополнения средств.
Каждый выход составлен из 1 или более входов, и каждый вход может состоять из 1 или более выходов. Таким образом, это приводит нас к выводу о том, что Биткойн можно отправлять с нескольких адресов и на несколько адресов за одну транзакцию.
Теперь давайте взглянем на приведенный ниже пример, чтобы лучше понять адрес изменения Биткойнов.
Пример адреса изменения Биткойнов
Рассмотрим следующий пример, в котором две стороны, Боб и Алиса, участвуют в транзакции.
У Боба есть 50 Биткойнов, которые он купил на бирже, и он получил их за один выход. Теперь по какой-то причине Боб хочет отправить Алисе 0,5 BTC. Однако у Боба только один вход 50 BTC.
Поскольку UTXO неделим, Боб не может просто отправить 0,5 BTC. Вместо этого он должен потратить весь вход транзакции.
То есть он тратит все 50 Биткойнов за одну транзакцию, создавая два новых UTXO. Один выход 0,5 BTC отправляется по адресу назначения (Алисе), а другой 49,5 BTC возвращается по адресу изменения, которым владеет Боб.
Пример нескольких входов
Вот еще один пример, где Алиса, похоже, накопила несколько неизрасходованных выходов от разных людей. Кошелек Алисы теперь содержит три неизрасходованных выхода, оцениваемых в 0,5 BTC, 0,1 BTC и 0,2 BTC.
Теперь на этот раз Алиса хочет заплатить Нанси 0,8 BTC. Однако у нее нет 0,8 BTC в одном неизрасходованном выходе. Поэтому она использует несколько выходов, чтобы сложить общую стоимость.
Понимание «изменений» в Биткойнах
Концепция изменения адреса и выхода Биткойн все еще кажется запутанной? Тогда давайте посмотрим на другой пример, который мы практикуем в нашей повседневной жизни.
Биткойн работает аналогично тому, как работает физические наличные деньги.
Допустим, у вас есть банкнота в 100 долларов. Вы пошли в кафе и выпили кофе на 25 долларов. Теперь, чтобы заплатить 25 долларов, Вы разорвете банкноту? Конечно, нет.
Вы отдадите кассиру 100 долларов, он возьмет 25 долларов за кофе и возвратит вам 75 долларов в качестве сдачи. Теперь, поскольку счета в долларах США имеют фиксированные номиналы, ваша транзакция может выглядеть примерно так:
Входы:
- 100 долларов США (Вы заплатили кассиру)
Выходы:
- 25 долларов идут в кассу
- $ 20 вернусь к вам
- $ 20 вернусь к вам
- $ 20 вернусь к вам
- $ 10 вернусь к вам
- $ 5 вернусь к вам
Произошла транзакция на сумму 100 долларов США, где 25 долларов США были выплачены другому лицу, а 75 долларов США были возвращены вам в измененном виде.
Примечание. Вы заметили, что сумма изменения недоступна в вашем кошельке, пока кассир не вернет ее вам. Точно так же, как в Биткойне, выход изменений не доступен для вас, пока транзакция не будет подтверждена.
Именно так и работает «изменение» в Биткойнах. Однако в отличие от вашей физической транзакции наличными, Биткойн транзакция включает в себя комиссию за транзакцию.
Вот еще один пример реальной транзакции, включающей комиссию за транзакцию.
Хэш транзакции:
791f5aeb156c8a0e9b235a26a4dd319e1ba3e5b7dbc513f8ec4cf206bb5716c4
В вышеуказанной транзакции произошло следующее: адрес «1GBXjHxe74s7HPR97PvdxPYdghsphcLAZG» отправил платеж в размере 0,00157800 по адресу «1GBfXw6BaHdo2nggNedFhKJGBi2Yhurmoc».
Тем не менее, общий объем затрат составил 0,03961452 BTC. После уплаты комиссии за транзакцию в размере 0,00000582 и оплаты 0,00157800 по адресу получателя была возвращена сумма изменения 0,0380307.
Теперь можно задаться вопросом, как создается адрес изменения?
Как создается адрес изменения?
В первые дни существования Биткойнов пользователей просят ввести адрес изменения вручную всякий раз, когда их транзакция включала выход изменений.
Как Вы можете догадаться, это привело к большому количеству путаницы, и пользователи потеряли Биткойны в этом процессе. Многие пользователи случайно отправили изменения по неправильному адресу, который они не контролировали.
Теперь все новейшие биткойн-кошельки позаботятся о создании и управлении адресом изменения автоматически. Перед началом транзакции ваш кошелек создает адрес и назначает его для получения результата изменения.
Все происходит автоматически в фоновом режиме кошелька. Так как смена адреса создается вашим кошельком, то ваш кошелек имеет приватный ключ этого адреса. Это позволяет вам потратить лишние монеты с адреса изменения снова. Единственное, как мы уже говорили, нужно дождаться подтверждения определенного блока (в котором была предыдущая транзакция с этими монетами).
Bitcoin core, Electrum и большинство других кошельков разработаны для того, чтобы очень хорошо справляться с этим процессом. И Вы обычно найдете адреса изменения на вкладке адреса.
Теперь следующий вопрос, который возникает у большинства из вас: почему бы не получить неизрасходованные монеты обратно на тот же адрес?
Получение изменений на тот же адрес ухудшает конфиденциальность
Вы можете отправить результаты изменений на тот же адрес. Хотя отправка на тот же адрес упрощает учет, это снижает конфиденциальность пользователей. Как мы уже говорили ранее в этой статье, изменение адресов играет ключевую роль в улучшении конфиденциальности.
По замыслу каждая биткойн-транзакция постоянно хранится в блокчейне. Эта система полностью прозрачна и доступна для просмотра любому.
Каждый может отследить или проверить любую транзакцию в любое время и легко понять, откуда и кому была отправлена сумма. Связывая личные данные, можно легко начать делать выводы о финансовой истории людей. Это напрягает большинство пользователей криптовалют.
Таким образом, чтобы сохранить анонимность и усложнить задачу отслеживания транзакций, результаты изменений обычно отправляются на вновь созданный адрес изменения.
Надеемся, это объясняет все, что связано с адресом изменения и выхода Биткойнов.
В следующий раз, если Вы отправили кому-то Биткойны и заметили, что большое количество BTC переведено на другой адрес, не беспокойтесь. Это ваши деньги, а адрес, который Вы видите в транзакции, является адресом изменения, который Вы контролируете.
Комментарии
Нельзя ли настроить кошелек таким образом, что бы все средства оставались на одном адресе ?
Друзья) change - не «адрес изменения», а адрес «сдачи» ;)