Гид по биткойну. Майнинг

Тема в разделе "Майнинг (общий раздел)", создана пользователем 2btc, 16 фев 2014.

  1. 2btc

    2btc Постоянный пользователь

    Гид по биткойну. Майнинг (январь, 2014)

    В традиционных денежных системах правительства печатают больше денег, когда им необходимо. В Биткойн-системе деньги не печатаются — они добываются. Компьютеры по всему миру «выкапывают» монетки, соревнуясь друг с другом.

    Как происходит добыча, она же майнинг?

    Люди постоянно пересылают друг другу биткойны через сеть Биткойн, но если кто-то не будет хранить записи всех транзакций, никто не сможет отследить, кто кому и сколько платил. Сеть Биткойн для этого и предназначена. Она объединяет все операции, сделанные за какой-то промежуток времени, в список, именуемый блоком. Работа майнера — принять эти транзакции и записать их в главную книгу учёта.

    Создаем хэши

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

    Главная книга учёта предполагает, что ей доверяют все пользователи сети Биткойн. Записи в ней хранятся в цифровом виде. Как мы можем быть уверены, что цепочка блоков никем не подделана? Вот здесь в дело вступают майнеры.

    Когда блок транзакций открыт, майнеры начинают его обрабатывать. Они берут информацию из блока и совершают над ним математические операции, превращая его во что-то другое. Это что-то другое гораздо короче по длине, представляет из себя последовательность букв и цифр и называется хэшем. Хэш хранится внутри блока в конце цепочки.

    У хэши интересные свойства. Насколько просто получить хэш из кучи информации, как блок биткойна, настолько же сложно узнать, что-то об исходных данных, имея на руках только хэш. Хотя получить хэш из большого количества данных очень просто, каждый хэш уникален. Если вы измените хоть один символ в блоке биткойна, хэш изменится полностью.

    Для генерации хэшей майнеры используют не просто информацию о транзакциях в блоке, им нужны дополнительные данные. Например, хэш последнего блока из цепочки блоков. Поскольку хэш каждого блока производится, используя хэш блока, стоящего перед ним, он становится цифровой версией сургучной печати. Он подтверждает, что и его, и каждый предшествующий ему блок достоверны, потому что если вы его подделали, об этом узнают все.

    Если вы попытаетесь провести фиктивную транзакцию, изменив блок, уже сохранённый в цепочке, хэш блока изменится. Если кто-то проверит аутентичность блока, пересчитав его хэш, он обнаружит, что хэш этого блока отличается от сохранённого в цепочке. Значит, весь этот блок — подделка. Поскольку хэш каждого блока нужен для производства следующего, подделка блока изменит хэш следующего и так далее, пока не изменится и не поломается вся цепочка.

    Конкуренция за монетки

    Вот так вот майнеры распечатывают блоки. Они соревнуются друг с другом, чтобы сделать это, используя специальные программы для обсчёта блоков. Каждый раз, когда кто-то создаёт хэш, он получает награду в 25 биткойнов, цепочка блоков обновляется и каждый в сети узнает об этом. Это стимулирует продолжение майнинга и позволяет проводить транзакции.

    Проблема в том, что посчитать хэш какого-то количества данных очень легко. Компьютеры отлично справляются с этим. Сеть Биткойн устроена по-другому, в ней эти вычисления более затратны. В противном случае каждый мог бы насчитывать бы сотни блоков каждую секунду, и все биткойны были бы «раскопаны» за минуты. Биткойн-код сделал вычисления более сложными, внедрив так называемую систему «доказательства выполненной работы».

    Биткойн-код не примет просто любой старый хэш. Он требует, чтобы хэш блока выглядел определённым образом — начинался с некоторого количества нулей. Нельзя предсказать, как будет выглядеть хэш, пока вы его не посчитаете, и как только вы включите новые данные, хэш станет совершенно другим. Майнеры не могут влиять на данные транзакций в блоке, но они должны изменить используемые данные, чтобы хэш поменялся. Это делается другим, случайным куском данных, называемым nonce. Он используется вместе с данными о транзакции, чтобы создать хэш. Если хэш не помещается в нужный формат, nonce меняется, и весь объем данных хэшируется заново. Нужно очень много попыток, чтобы найти nonce, который будет работать. Причём все майнеры в сети пытаются сделать это одновременно. Вот так майнеры добывают свои монетки.


    Источник
     
    BordaberryVinoly нравится это.