Можно ли просматривать чужие транзакции в биткойн-клиенте?

Это кажется действительно основным вопросом, но у меня возникли проблемы с поиском ответов на него. Насколько я понимаю, мой биткойн-клиент (Bitcoin v0.7.1-beta) в основном теоретически загрузил всю историю транзакций каждой биткойн-транзакции, которая когда-либо происходила. Я вижу свои транзакции на экране «Транзакции». Есть ли способ увидеть транзакции с кошельками, которые я не импортировал или не создал на этом клиенте? Я просто пытаюсь получить полное представление о технологии биткойнов. Причина, по которой клиент не показывает транзакции с других кошельков из-за:

  1. Удобство для пользователя - было бы слишком сложно искать по всем адресам кошельков, когда большинство людей заботятся только о своих (есть ли способ переопределить это?);
  2. Технические ограничения - нецелесообразно рассматривать каждую транзакцию в огромной базе данных, когда вы хотите перечислить или найти какую-то конкретную информацию;
  3. Ограничения дизайна. Не каждая транзакция содержит всю необходимую информацию;
  4. Забота о конфиденциальности. Из-за слишком простого просмотра чужих транзакций люди будут громче кричать о конфиденциальности;
  5. Что-то я пропустил?

Ответы (3)

Можно ли просматривать чужие транзакции

Да.

в биткойн-клиенте?

Нет.

  1. Не очень полезно искать баланс чужого адреса, за исключением, может быть, того, что они могут доказать, что у них есть определенная сумма средств.
  2. Эти поиски будут медленными, потому что они должны обрабатывать миллионы транзакций. Создание индексов, позволяющих выполнять быстрый поиск по любому биткойн-адресу, потребует значительного объема дискового пространства.
  3. Все они есть — это центральная часть протокола Биткойн. Что, если кто-то снимет все свои деньги со своего счета в рамках транзакции, о которой вы не знаете? Поэтому вы должны знать обо всех транзакциях, если только вы не хотите удивляться, когда их платеж «отскакивает».
  4. Уже существует веб-сайт под названием Bitcoin Block Explorer , который довольно четко устанавливает, что транзакции являются общедоступными. Даже если бы его не было, вы все равно могли бы создать свой собственный файл .
Что касается № 2, похоже, вы говорите о расчете баланса, но я не говорю о поиске их баланса, а просто о поиске транзакции. Например, не было бы полезно иметь возможность использовать систему как средство подтверждения квитанции третьей стороне? Судья может вынести решение по делу на основании доказательств того, что средства были переведены с одного счета на другой, ни один из которых не контролируется судьей. Что касается № 3, я имею в виду en.wikipedia.org/wiki/Bitcoin#Confirmations , в котором говорится о реализациях, в которых хранятся не все транзакции. №4 - хороший ответ.
2. На самом деле довольно легко найти транзакцию по идентификатору транзакции. Используйте вызов bitcoind rpcgetrawtransaction 3. Клиенты Electrum хранят только свои собственные транзакции и полагаются на сервер Electrum, чтобы не лгать им.

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

С тех пор, как я задал первоначальный вопрос, мне стало ясно, что между кошельком и биткойн-адресом есть разница. Меня интересовало определение того, какие транзакции произошли для конкретного адреса. Я только сейчас понял/подозреваю, что кошелек может содержать много адресов.
Да, это правильно. Новые адреса добавляются в кошелек по мере создания пользователем. Добиться анонимности проще, если для каждой входящей транзакции создается новый адрес, если анонимность является целью пользователя.

Я написал программу на Python3, которая позволяет вам искать любой адрес в биткойн-ядре, независимо от того, принадлежит ли он вашему кошельку или нет.

Вот ссылка на гитхаб:

https://github.com/ORP967/Bitcoin_Core_RPC_par_адрес

Дайте мне знать, что вы думаете, или если у вас есть какие-либо улучшения, которые вы могли бы иметь.