Как работает «сдача» при совершении Bitcoin транзакции?
Нет такого понятия как "деньги на кошельке Y". Есть понятие "перевели сумму X на кошелек Y". Из этих переводов и складывается сумма на кошельке. И потратить вы(если ничего не путаю)можете только такими же кусками, как вам перечисляли. То есть, например, у вас 2 биткоина, которые попали к вам 4мя переводами по 0.5. Если вы хотите перевести кому-то 1.8, то говорите, что "я беру эти 4 транзакции и из них 1.8 отдаю такому то чуваку, а 0.2 оставляю себе" либо на один из существующих кошельков, либо на заново сгенеренный.
Кошелек - это набор сгенерированных пар приватный ключ/адрес, некоторые из которых могут иметь непотраченные выходы (типа купюры).
Биткоин-транзакции имеют входы и выходы, выходы можно потратить, создав биткоин-транзакцию, где эти выходы станут входами, а выходы - адрес получателя и (опционально) адрес, куда пойдет разница между суммой входов и значением, который получит этот получатель. 
Вобщем, это нужно немного осмыслить :-)