Почему при отправке на один адрес два выхода транзакции?

Несколько дней назад я сделал небольшую транзакцию:

https://www.blockchain.com/btc/tx/4c07a07dfd9d5b79d168ec6835df876c64e82350a8f9211bf586d858a5aeb9ba

Некоторая информация:

  • 1JFWE8THcAQQRYx99c43DXSGyoPL9Zs62D - мой кошелек
  • 1PCGNxgheKTaeT6xvTabcY8ZbS3gDpFtb - кошелек, который я отправил 0.22 BTC

Вопросы:

  • Кто 147krm8yWUcVq9Ta25h679TCpsEznzgvRz?
  • Почему существует более одного выхода?
28 голосов | спросил Macarse 3 AMpWed, 03 Apr 2013 03:34:15 +040034Wednesday 2013, 03:34:15

2 ответа


33

147krm8yWUcVq9Ta25h679TCpsEznzgvRz - это изменение от транзакции. Было больше одного выхода, потому что у вас не было никаких предыдущих транзакций (иногда их называли «монетами»), которые добавляли точную сумму транзакции.

Таким образом, ваш клиент выбрал несколько монет, которые добавили по крайней мере эту сумму, а затем создали новый адрес для получения оставшейся суммы. Итак, 147krm8yWUcVq9Ta25h679TCpsEznzgvRz - это вы. Вы просто не знаете этого, потому что клиент не хорошо раскрывает это. По сути, вы хотели отправить 22 цента, но в вашем кошельке были только долларовые купюры. Таким образом, 0.78 было оставшейся суммой, и клиент создал новый адрес, чтобы удерживать его, вместо повторного использования 1JFWE8THcAQQRYx99c43DXSGyoPL9Zs62D.

Похоже, что это поведение клиента Qt (тихое создание новых адресов, получающих изменение от транзакций) было создано по соображениям конфиденциальности. Я считаю, что было задумано: зачем отправлять изменения на исходный адрес, когда новый адрес может быть легко создан? Таким образом, даже не очевидно, была ли ваша транзакция оплатой 0,78 BTC с изменением 0,22 или оплатой 0,22 BTC с изменением 0,78 BTC. Но, похоже, это вызывает много путаницы для пользователей, основываясь на том, что я вижу в этом обмене стеками. На мой взгляд, было бы лучше, если бы клиент по умолчанию отправил это изменение обратно на адрес отправки. Или, если, по крайней мере, он показал, что адрес изменения и его баланс где-то.

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

ответил David Ogren 3 AMpWed, 03 Apr 2013 05:18:23 +040018Wednesday 2013, 05:18:23
2

Вся идея изменения немного трудно понять, когда дело доходит до биткойна. Имея бумажную валюту, довольно очевидно, что вам нужно перейти от 20-долларового счета, если вам нужно потратить всего 14 долларов.

Теоретически протокол Bitcoin мог быть настроен так, чтобы просто отправлять точную сумму как транзакцию, но для журнала транзакций с привязкой к цепочке я думаю, что он был настроен таким образом для аккуратной прослеживаемости. Если у вас не было правила «затраты на вход = выход - транзакция», узлам, которые проверяют все транзакции, вместо этого нужно будет рассчитать /определить остатки отдельных адресов, чтобы узнать, есть ли у них достаточно монеты для покрытия транзакции. Я предполагаю, что это будет стоить больше в плане запросов к базе данных в журнале, более сложной проверки транзакций.

ответил bassride 14 Maypm13 2013, 21:24:24

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132