- чик -
А теперь я хочу, чтобы отправить 0,022 BTCS, поэтому он будет принимать эти 4 предыдущую транзакцию, чтобы достичь 0,022 Я хочу отправить, но в общей сложности 4 сделок 0,02269937. Теперь вы берете эту сумму (0.02269937), вы substrat 0,022 Я хочу послать плюс 0,0005 для сборов и изменение 0,00019937, который возвращается в свой кошелек, по тому же адресу или другом по кошельку я использую. Tadaaa?
Ты понял! объяснил Ну.
Bitcoin фактически не хранить любые "монеты" в любом месте. Blockchain, что каждый полный узел имеет копию имеет список всех подтвержденной сделки, которая когда-либо произошло. Каждая операция представляет собой ссылку на один или более "выходы" от предыдущих операций, которые используются в качестве "входные" и одно или несколько значений, которые назначаются на адреса, как новый "выходы", Там нет никакого способа, чтобы указать часть предыдущего выпуска. Сделка просто ссылается на предыдущий вывод, и любой / все работает правильный протокол распознает эту ссылку как быть признаком того, что вся продукция является "потраченный",
Протокол проверки, чтобы убедиться, что общее количество входов больше или равно выходов (так что вы не можете отправить больше, чем у вас есть). Если общее количество выходов меньше общего числа входов, что разница в том, что шахтеры взять в качестве платы, когда транзакция добавляется к блоку. Так что, если вы не хотите, чтобы все, что дополнительное значение, все принимаются шахтера как платы, то вам нужно отправить некоторые из его обратно к себе в качестве нового выхода (либо по новому адресу или существующего).
Используя новый адрес для изменения каждый раз увеличивает как анонимность и безопасность немного.
Улучшенная безопасность:Там в настоящее время нет известных способов, чтобы определить чей-то секретный ключ, если вы знаете свой открытый ключ, но нет никакой гарантии, что слабость не будет обнаружена в алгоритме ECDSA в каком-то момент в будущем. Когда ты
получить биткойны, вы не получаете их в открытый ключ, вы получите их в хэш хэш открытого ключа. Открытый ключ первого хэшируются с SHA-256, и этот результат хешируется с RIPEMD-160, чтобы создать адрес Bitcoin. Поскольку в настоящее время нет известных способов "задний ход" либо из этих хэшей, нет никакого способа определить, что открытый ключ от адреса Bitcoin. Это означает, что серьезные недостатки должны быть обнаружены почти одновременно в ECDSA, SHA-256, и RIPEMD-160 для кого-то, чтобы быть в состоянии определить закрытый ключ из адреса Bitcoin, который публично используется на выходе операции и постоянно хранится в blockchain.
Когда вы посылаете биткойны, ваш кошелек должен предоставить подписи для каждого из предыдущих выходов, на которые ссылаются в качестве входных данных. Эта подпись предназначена, чтобы доказать, что вы знаете, закрытый ключ, связанный с адресом, что предыдущий выход был установлен в, и что вы для этого имеют право повторно назначить это значение в какой-то другой адрес. Если бы это было все, что было предусмотрено, то никто не может проверить подпись, так как они не знают, открытый ключ. Поэтому в рамках требований сценария подписи в протоколе Bitcoin, наряду с подписью ваш кошелек также включает в себя открытый ключ, связанный с каждым адресом, который входы связаны. Это означает, что первый раз, когда вы отправляете биткойны, которые были получены по адресу, этот адрес становится немного менее безопасным. Поскольку открытый ключ затем постоянно хранится в общественном blockchain, любые другие операции, которые принимаются по этому адресу больше не защищен хэш SHA-256 и RIPEMD-160. Это только требует слабости быть обнаружено в ECDSA украсть ваш биткойно. Если каждый выход всегда идет на адрес, который никогда не был использован предыдущий, то вы никогда не будете иметь биткойны на адрес, который не защищен от SHA-256 и RIPEMD-160. Именно поэтому рекомендуется использовать новый адрес для каждого выхода вы получаете (независимо от того, является ли это "изменение" или иным образом).
Улучшенная анонимность:Допустим, Альфред посылает мне 10 биткойнов, и Боб посылает мне 20. Если я использовал новый адрес для каждой из этих операций, то Альфред знает, что, по крайней мере, 10 BTC (так как он послал их), и Боб знает, что я, по крайней мере, 20 (отправка он послал их), но ни Альфред, ни Боб может сказать, что у меня 30 BTC, независимо от того, насколько сильно они смотрят на blockchain.
Теперь давайте говорить, что я собираюсь отправить 13 биткойнов кому-то.
Если мой бумажник создает транзакцию, которая проводит эти 30 BTC и отправляет 17 BTC в "изменение" вернуться к одной из двух существующих адресов, то в зависимости от того, какой адрес кошелек использует, либо Alfred или Боб может сказать, что у меня теперь есть 17 BTC, и они могут сказать, что адрес, который я только что отправил 13 BTC в.
Если мой бумажник создает транзакцию, которая проводит эти 30 BTC и отправляет 17 BTC в "изменение" на совершенно новый адрес, то нельзя сказать, если у меня есть 13 BTC отправлено как изменение, или 17 BTC отправлено как изменение, или вообще никаких изменений, так как вся сумма была использована для отправки BTC к двум другим людям.