Как блок может считаться подтвержденным в биткойнах?

Я немного запутался с механизмом подтверждения в консенсусе PoW биткойнов.
Согласно биткойн-вики:

После того, как транзакция транслируется в сеть Биткойн, она может быть включена в блок, который публикуется в сети. Когда это происходит, говорят, что транзакция была добыта на глубине 1 блока. С каждым последующим найденным блоком количество блоков в глубину увеличивается на один. Чтобы обезопасить себя от двойных расходов, транзакция не должна считаться подтвержденной до тех пор, пока она не достигнет определенного количества блоков в глубину.

Допустим, у A есть 1 биткойн, и A отправил 1 биткойн B как транзакцию T1, а также отправил 1 биткойн C как транзакцию T2. Возможно, что эти 2 транзакции записываются в 2 разные ветки.

В этом сценарии, если майнер M1 продолжает добычу на основе ветки с T1, а M2 продолжает майнинг на основе ветки с T2, в итоге последующий блок для этих 2 ветвей будет больше 6, и в большинстве приложений эти 2 транзакции будут считаться законными. Я думаю, что может быть другая проверка, чтобы блок считался подтвержденным.

Мой вопрос: что делает транзакцию подтвержденной? Заранее спасибо.

Ответы (1)

Допустим, у A есть 1 биткойн, и A отправил 1 биткойн B как транзакцию T1, а также отправил 1 биткойн C как транзакцию T2. Возможно, что эти 2 транзакции записываются в 2 разные ветки.

Да. Это возможно.

Но до сих пор нет двойной траты, потому что только 1 ветка будет принята в будущем.

Предположим, что майнеров больше. Если майнеры 3, 4, 5 и 6 начинают майнить на второй ветке, она растет быстрее. Через 2 часа в ветке 1 будет 1200 блоков, а в ветке 2 может быть 1209 блоков. Цепочка/ветвь с наибольшим количеством блоков является релевантной цепочкой. Таким образом, майнер 1 даже не хочет больше майнить на своей ветке, потому что он знает, что другие будут игнорировать эти блоки 1201, 1202, 1203. Таким образом, майнер 1 также переключается на ветку 2, потому что в противном случае он только тратит электроэнергию впустую.

Спасибо за Ваш ответ. Вот мое понимание: если я кошелек, я буду рассматривать только самую длинную цепочку как действительную цепочку, поэтому только одна цепочка может считаться действительной цепочкой, и почти невозможно иметь 2 цепочки одинаковой длины. Это верно?
@Frankie, самая длинная цепочка (с наибольшим количеством доказательств работы) является действительной цепочкой, любая другая будет забыта сетью. Протокол разработан таким образом, что майнеры заинтересованы в том, чтобы майнить все в одной цепочке; любое расхождение может иметь высокие альтернативные издержки для майнеров. Не исключено наличие двух конкурирующих цепочек, но обычно проигравшая цепочка не выживает более пары блоков. Вы можете найти «сиротские блоки», чтобы узнать больше.