Чуть понятнее раскрою про расчет сложности и децентрализацию:
Все клиенты работают так как будто каждый из них 'главный и единственный'. Все работают именно с той базой блоков, которые успели загрузить, на основании этой базы каждый клиент вычисляет сложность, если к клиенту подключены прогарммы-майнеры, то каждый bitcoin-клиент выдает именно свою задачу, какой он ее видит. Каждые ~2000 блоков все клиенты дружно пересчитывают сложность, правым останется тот клиент, кто первым найдет блок с новой сложностью (более точно, чей блок следующим включит в цепочку следующий майнер, и т.д.. т.е. чья цепочка длиннее).
Если клиент видит что по сети к нему приехали несколько блоков с общим корнем (развлетвление), то будет принят каждым конкретным клиентом именно тот блок, чья цепочка длиннее и, естественно, параметры которого не противоречат выкладкам самого клиента, например клиент посчитал что текущая сложность 1кк, а к нему приехал блок со сложностью 500к... этот блок даже не будет рассматриваться и сразу будет отклонен. В результате должна быть только одна цепочка.