Транзакция имеет адрес в биткойне. Транзакция сообщает о переносе этого адреса (частично или целиком) на другой адрес. Поскольку источником правды является блокчейн, как майнер узнает, что адрес в биткойне имеет указанное количество данных? И как майнер проверяет это эффективно?
Я читал о деревьях Меркеля. Насколько я понимаю, они помогают определить, присутствует ли транзакция в определенном порядке в блоке. Но цепочка блоков будет иметь много блоков. Итак, как майнеры делают это эффективно?
Не будет ли проще создать хеш-карту из биткойн-адреса в сумму?
Нет таких вещей, как «внутриадреса» или «от адресов», и это не имеет ничего общего с деревьями меркла или даже с блоками.
Биткойн работает с транзакциями, создающими выходы, и другими транзакциями, расходующими средства из предыдущих выходов транзакций. Каждый выход имеет связанное значение. Когда вы тратите биткойны, вы тратите деньги из предыдущих транзакций. Ваша транзакция будет включать ссылку на вывод, который она тратит: txid и индекс вывода. Поскольку все транзакции (кроме транзакций coinbase — транзакции генерации монет, а не компании) тратятся на вывод предыдущей транзакции, все транзакции связаны друг с другом. Вы можете пройти назад по этой цепочке транзакций, чтобы проверить правильность значений всех транзакций.
Поэтому, когда узел получает вашу транзакцию, он ищет выходы, из которых тратится ваша транзакция, и убеждается, что никакая другая транзакция уже не потратила эти выходы. Затем он суммирует значения расходуемых выходов и убеждается, что эта сумма больше или равна сумме значений создаваемых выходов.
Ашиш Неги
and makes sure that no other transaction has spent those outputs already.
:?Ашиш Неги
Эндрю Чоу
Эндрю Чоу
Ашиш Неги
Питер Уилле