Во-первых, узлы не имеют жёстко доверенных узлов. Есть семена DNS, которые могут быть использованы, когда новый узел самонастройки и нужен способ, чтобы найти запущенные узлы для подключения.
Каждый блок состоит из
заголовок и список сделок. Операции хэшируются вместе в Merkle Дереве и корень этого дерева включаются в заголовке таким образом, что ни одна из операций не может быть изменен без изменения хэша в заголовке. Заголовок также включает в себя хэш предыдущего заголовка, доказывая, что он пришел после предыдущего блока, а также обеспечение того, чтобы предыдущий блок не может быть изменен без изменения текущего заголовка.
Нонса поле позволено быть хоть что-то, при условии, что это приводит к действительному хэш. Это означает, что каждый Проходчик итерацию через все 2
32 возможные для одноразового блока кандидата они работают в надежде, что один из них работает. Если никто не работает, они просят новый кандидат, что означает изменение метки времени или Меркл корневого хэша. Изменение корень Меркла означает, что по крайней мере одна сделки необходимо изменить (или новую транзакция может быть добавлена). Транзакции генерации разрешено содержать произвольные данные, давая узлам способность генерировать новые деревья по мере необходимости.
Заголовка затем подается в хэш = SHA256 (SHA256 (заголовка)). SHA256, как ожидается, по существу, случайное распределение, что означает, что выход похож на получение случайного числа. Сеть отслеживает целевое значение, и принимает только блоки, которые меньше, чем цель. Там нет никакого способа, чтобы создать заголовок блока заранее, что будет иметь хэш, который находится ниже целевого значения, поэтому шахтеры должны проверить каждый из них в надежде на удачу. Текущая цель дает каждому хэш о 1 в 15 квадриллиона шанс быть ниже цели, поэтому шахтеры проверки (в совокупности) около 25 триллионов хешей в секунду.
Когда новый блок найден, каждая сделка проверяется, чтобы убедиться, что он хорошо сформирован и действует, и что каждый искупил выход действителен и ранее не проводилось. Дерево Merkle создается и проверяется, чтобы убедиться, что он соответствует корневой хэш в заголовке. Метка времени проверяется, чтобы убедиться, что он находится в пределах допустимого диапазона, трудность проверяется, чтобы убедиться, что он согласен с сетью, и хэш заголовка проверяется, чтобы убедиться, что она находится ниже заданного значения. Если все проверки истинны, и предыдущий блок хэш в заголовке относится к блоку, который был ранее высокий блок, цепь удлиняется.
При выполнении начальной загрузки, некоторые проверки сокращены или пропущены на старых блоках, но 2500 самые последние блоки всегда получают полную проверку.