@Oleg_Yozhik
Android / Web программист

Как работает «сдача» при совершении Bitcoin транзакции?

Прошу прощения, если для кого-то этот вопрос покажется глупым, но я никак не могу до конца понять как устроены транзакции биткоин и как они сохраняются в Blockchain.

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

Один из этих адресов действительно тот, который был указан мной как "получатель" в биткоин-клиенте, при отправке денег.

Еще я заметил что общая сумма транзакции равна последнему поступлению денег в мой кошелек. Т.е. как бы отправка происходит всего куска, часть из них уходит действительно адресату, а часть переходит на мои же адреса (вроде бы). Т.е. Поступления на мой счет являются как бы "неделимыми"?

Наверно я ничего не понимаю из-за того, что не знаю что-такое Инпуты и Оутпуты и, вообще, как хранятся данные в Blockchain.

Задал вопрос на Reddit/r/Bitcoin, там мне посоветовали эту ссылку
bitcoin.stackexchange.com/questions/736/how-does-c...

Читаю, перевожу, даже распечатал. Ничего не понимаю.

По поводу разницы между аккаунтом и адресом, это понятно. Аккаунт один, адресов в нем много. К каждому адресу приватный ключ. Но кто такие "Инпуты" и "Оутпуты" и почему они существуют?

Буду крайне признателен за помощь.

UPDATE: Забыл указать, что для просмотра транзакций я использовал адрес https://blockchain.info/ru/address/, а в качестве биткоин клиента оригинальный bitcoin-qt
  • Вопрос задан
  • 12245 просмотров
Пригласить эксперта
Ответы на вопрос 3
Scratch
@Scratch
Нет такого понятия как "деньги на кошельке Y". Есть понятие "перевели сумму X на кошелек Y". Из этих переводов и складывается сумма на кошельке. И потратить вы(если ничего не путаю)можете только такими же кусками, как вам перечисляли. То есть, например, у вас 2 биткоина, которые попали к вам 4мя переводами по 0.5. Если вы хотите перевести кому-то 1.8, то говорите, что "я беру эти 4 транзакции и из них 1.8 отдаю такому то чуваку, а 0.2 оставляю себе" либо на один из существующих кошельков, либо на заново сгенеренный.
Ответ написан
Комментировать
@Valle
Кошелек - это набор сгенерированных пар приватный ключ/адрес, некоторые из которых могут иметь непотраченные выходы (типа купюры).

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

Вобщем, это нужно немного осмыслить :-)
Ответ написан
@earlfoxco
Каждая транзакция сохраняется в Blockchain в виде информации, но основная роль Blockchain это задать порядок транзакций: каждый блок это как вагон в котором лежат дровишки - каждая дровишка уникальна, пронумерована, зашифрована - эти дровишки и есть транзакции и весь вагон проштампован чтобы злоумышленики не вскрыли и не утащили ни единую дровшику, иначе будет недовес и несоответствие другим точным показателям (по миллиграммам определяется :)).

Фигуративно также существует TransactionChain - это уже другая цепочка в этой цепочке транзакции идут друг за другом, ссылаясь друг на друга с момента когда произошла эмиссия (например цепочка из 500 транзакций и так пока фрактальный резерв не закончится).

Меня интересует больше другой вопрос: насколько я понял проверкой TransactionChain занимается комп.пользователя биткоин клиента на основании данных полученных из папки блокчейн и пр. информации - также мне неизвестна иерархия хранения - подскажите - блокчейн хранится отдельно от транзакшнчейна или транзакшнчейн прямо в одном файле находится вместе с блокчейном?

Но самый основной вопрос который прямо не даёт мне спать: насколько длинной должна стать цепочка этих аутпутов / инпутов отсчитывая от genesis block чтобы засорить процессор чрезмерно сложными вычислениями? Да я понимаю что биткоин-клиент в первом запуске может несколько часов только лишь проверять цепочки TransactionChain'a на валидность (если я правильно понял по таймингу, если неправильно то поправьте - и скажите сколько реально на что в основном уходит время).

Меня интересует насколько должна быть большая цепочка TransactionChain'a для того чтобы компьютеру ушло более 1 дня на анализ происходящего (В том плане если в будущем не обрезать блокчейн ведь так и так будут копиться астрономические суммы).
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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