Без какого блока алгоритм будет недействительным

Обновлено: 30.06.2024

Блок-схемы используются для визуального представления алгоритмов.

Определение:

Алгоритм — это последовательность шагов, ведущая к решению задачи

Определение:

Блок-схема — это схематическое изображение, иллюстрирующее последовательность операторов, которые необходимо выполнить для достижения результата

Инструкции изображаются, используя специальные символы. Символы связываются между собой стрелками, для указания порядка выполнения.

Блок-схемы широко используются при написании программ, так как они:

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

Блоки, из которых составляются блок-схемы, представлены на Рисунке 1.

1234567890

Рассмотрим работу с блок-схемами на примере. Для этого нарисуем блок-схему программы нахождения суммы двух чисел:

Блок-схема, показанная на Рисунке 2, иллюстрирует линейную логику. Здесь нет повторений и ветвления.

1234567890

ВЕТВЛЕНИЕ

Способность сравнивать значения и исполнять, в зависимости от полученного результата, различные участки программы превращает компьютер из большого калькулятора в мощное средство решения различных практических задач. Операторы выбора применяются для:

  • Сравнения данных
  • Выбора одного из альтернативных путей решения задачи.

Например, при снятии денег с банковского счета производится сравнение снимаемой суммы с суммой на счете. Если снимаемая сумма меньше, то заказ выполняется. В противном случае происходит отказ от обслуживания.

Определение:

Ветвление — это процесс выбора из двух, или более альтернативных путей вычисления. Рассмотрим ветвление на следующих примерах:

Пример 1. Посмотрим на то, как будет выглядеть блок-схема алгоритма проверки чисел на четность:

1234567890

  • Ветвление используется в том случае, когда необходимо разделить поток вычислений на два и более альтернативных варианта. Основанием для выбора маршрута является результат проверки истинности условия ветвления.

Пример 2. Рассмотрим блок-схему алгоритма, определяющего максимальное из 3-х чисел (см. рис. 4):

1234567890

Как мы видим, ветвление производится, когда нам необходимо выбрать дальнейший маршрут в зависимости от истинности некоего условия, называемого также условием ветвления.

Основные типы блок-схем, использующих ветвление, представлены на Рисунке 5:

1234567890

На Рисунке 5(а) представлена неполная конструкция условного ветвления. Здесь, в зависимости от выбранного маршрута движения, выполняется один или несколько вычислительных шагов, или происходит дальнейшее движение без вычислений, до момента слияния маршрутов.

На Рисунке 5(b) представлен полный вариант условного ветвления. Здесь, в зависимости от выбранного маршрута движения, выполняется одна или другая последовательность вычислений, после чего маршруты вновь сливаются.

ЦИКЛЫ

Определение:

Цикл — это многократно выполняемый участок алгоритма.

Тело цикла-это последовательность выполняемых в цикле операторов.

Итерация — однократное выполнение тела цикла.

Циклы бывают двух типов:

  • С фиксированным числом итераций
  • С переменным числом итераций

Рассмотрим различия между этими двумя типами на следующих примерах:

Пример 3. Пусть есть данные о расходах за каждый месяц года. Блок-схема алгоритма подсчитывающего расходы за год будет иметь вид:

1234567890

Рисунок 6 иллюстрирует цикл с фиксированным числом итераций — число месяцев в году известно и последовательность вычислений не может быть повторена более 12 раз.

Мы читаем расходы за один месяц и добавляем их к общему результату. После этого номер месяца сравнивается с 12.

Если номер месяца равен 12, то цикл завершается, и выводятся данные о расходах за год. В противном случае цикл повторяется для следующего месяца.

Пример 4. Пусть есть информация о каждом жителе города (имя, возраст, пол и т.д.). Необходимо составить список жителей старше 50 лет. Блок-схема соответствующего алгоритма будет иметь вид:

1234567890

Рисунок 7 иллюстрирует цикл с переменным числом итераций — нам заранее неизвестно число жителей города старше 50 лет. Этот цикл выполняется до тех пор, пока есть еще неучтенные люди. Цикл представляется в виде следующей элементарной блок-схемы:

1234567890

  • В цикле с фиксированным числом итераций количество итераций известно заранее. Вычисления, производящиеся внутри цикла, не оказывают никакого влияния на число итераций.
  • Цикл с переменным числом итераций выполняется до тех пор, пока не будет выполнено некоторое условие. Количество итераций в таком цикле может варьироваться.
  • Циклы обычно выполняются до тех пор, пока какое-либо условие не примет значение true или false.

РАЗДЕЛЕНИЕ БЛОК-СХЕМ НА ЧАСТИ

При работе с блок-схемами мы часто сталкиваемся со следующими проблемами:

  • Блок-схема может не поместиться на одной странице.
  • Может оказаться сложным связать все элементы блок-схемы друг с другом непосредственно.

Для решения этих проблем блок-схемы обычно разбивают на отдельные части, для состыковки которых используются элементы- соединители.

Соединительный элемент имеет свой собственный, уникальный номер и состоит из двух частей. Эти части изображаются в местах разрыва соединительных линий. Для определения принадлежности частей соединительному элементу, номер элемента записывается на каждой из частей.

Например, разбив на 2 части блок-схему, изображенную на Рисунке 2 мы получим:

1234567890

  • Соединители вставляются в местах разрыва блок-схемы. Расположение каждого объединения указывается с помощью уникального номера.
  • В блок-схеме может быть только одна вершина Начало и только одна вершина Конец.
  • Используйте машинно-независимые элементы.
  • Не обязательно представлять в блок-схеме каждый шаг программы. Можно ограничиться наиболее важными блоками.
  • Желательно использовать наглядные названия переменных и блоков.
  • Помните, программа должна быть написана так, чтобы любой другой программист смог бы легко понять ее.

МЕТОД ПРОГОНКИ

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

краткое введение в технологию блокчейн

Понимание 3 основных технологий, лежащих в основе Биткойна

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

Если вы не можете объяснить что-то просто и доходчиво, значит вы сами недостаточно хорошо это понимаете — Альберт Эйнштейн

Эйнштейн объясняет технологию блокчейн, 1422 год до нашей эры.

Эйнштейн объясняет технологию блокчейн, 1422 год до нашей эры.

1. Что такое, собственно, блокчейн

Вкратце, блокчейн — это всего лишь способ структурирования данных. Вот и всё. Это реестр — файл, который хранит учётные записи.

Этот файл можно сравнить с книгой, которая никогда не заканчивается.

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

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

Возможности применения блокчейна

Возможности применения блокчейна

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

Транзакция происходит только после её включения в блок и добавления в цепочку. Следовательно, когда блок добавляется в цепочку, состояние блочной цепи обновляется. В итоге, биткойны перемещаются.

Это означает, что, если я хочу проверить, провёл ли кто-либо транзакцию в мой адрес или нет, я должен иметь возможность проверить состояние блокчейна. Чтобы это сделать, этот реестр должен быть общедоступным. Здесь вступают в игру одноранговые (peer-to-peer) сети.

2. Понимание роли одноранговых сетей

Чтобы применить блокчейн в качестве реестра для хранения данных о транзакциях, у нас должна быть возможность проверить блокчейн, чтобы убедиться действительно ли кто-то выполнил транзакцию на наш адрес или кошелек.

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

  • Всегда можно проверить состояние блокчейна самостоятельно с помощью блокчейн обозревателя;
  • Не нужно полагаться на какую-либо одну сторону, чтобы узнать истинное состояние блокчейна;
  • Не требуется полагаться на один сервер, чтобы удостовериться в безопасности данных блокчейна;
  • Для взлома блокчейна злоумышленнику придётся взломать тысячи компьютеров одновременно вместо одного сервера;
  • Можно быть уверенным, что данные блокчейна никогда не будут удалены, потому что их придётся удалить со всех узлов.

Это всё очень важно, но одно это ещё не означает, что безопасность блокчейна поддерживается на достаточном уровне для его реального применения по хранению ценностей или проведению транзакций с ними.

Например, как мы можем знать, что данные (транзакции) в блокчейне верны? Как можно знать, что в блоках отсутствуют недействительные транзакции? И если имеются разные версии блокчейна, как узнать, которая их них представляет истинное состояние блокчена?

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

3. Понимание механизма достижения консенсуса

Пиринговый механизм уже применялся в 1999 году музыкальным онлайн-сервисом Napster.

Блокчейн также существовал ещё до Биткойна.

Гениальность предложения Сатоши Накамото, таинственного анонимного основателя Биткойна, заключается в идее объединения первых двух компонентов с механизм достижения консенсуса на основе криптографии. Именно в механизмах достижения консенсуса и сосредоточена настоящая магия: она позволяет узлам одноранговой сети работать вместе без необходимости в знании друг о друге или доверии к друг другу.

Теперь, если вы ещё не совсем поняли идею, механизм достижения консенсуса — это просто набор правил, которые согласовываются узлами сети посредством программного обеспечения сети. Эти правила обеспечивают, чтобы узлы сети работали должным образом и оставались синхронными.

Протокол алгоритма достижения консенсуса устанавливает следующие правила:

  • как блоки должны добавляться в цепочку блоков,
  • когда блоки считаются действительными, и
  • как разрешаются конфликты при определении истинности.

Добавление блоков в цепочку блоков

Различные блокчейны по-разному добавляют блоки к цепочкам блоков. Наиболее известным механизмом достижения консенсуса является Доказательство Работы (Proof of Work, PoW)

Первое правило Доказательства Работы заключается в том, что один блок должен добавляться к блокчейну в среднем каждые десять минут.

Установка для биткойн-майнинга

Майнинг-ферма. Для того, чтобы получить достаточно вычислительной мощности, должно работать много графических процессоров

Продолжается дискуссия относительно того, какой механизм достижения консенсуса лучше. Всё-таки, несмотря на то, как создаётся блок, другие узлы в сети всё же должны иметь возможность решать является ли блок действительным или нет.

Действительность блоков

Узлы добавят в цепочку вновь добытый блок только в том случае, если он будет соответствовать правилам, установленным механизмом достижения консенсуса. Программное обеспечение, на котором работают узлы, проверяет действителен блок или нет. Недействительный блок будет отклонён.

Другими словами, программное обеспечение узлов проверяет все транзакции в блоке на предмет есть ли у отправителей достаточное количество биткойнов для совершения транзакций. Для этого они проверяют состояние сети.

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

Как разрешаются конфликты при определении истинности

Может случиться так, что случайно, два майнера одновременно добавят в цепочку действительные блоки. Представьте, что часть узлов приняла один действительный блок, а другая часть приняла другой блок. Первая группа включила блок с моей транзакцией в адрес Алисы, а другая включила блок с моей транзакцией в адрес Боба. Теперь у нас вдруг возникает два разных состояния блокчейна в одно и то же время!

Как правило, все консенсусные протоколы решают эту проблему простым правилом: выигрывает самая длинная цепочка.

Визуализация ветвления блокчейна

Визуализация ветвления блокчейна (нормальное случайное ветвление).

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

Откуда мы знаем, что именно так всё и произойдёт?

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

Визуализация редко случающегося расширенного ветвления блокчейна

Визуализация редко случающегося расширенного ветвления блокчейна. В ответвлении почти никогда не бывает больше 5 блоков.

Заключение

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

В следующей статье я подробнее расскажу о роли современной криптографии в блокчейне и механизме достижения консенсуса.

Понимание трех основных технологий, лежащих в основе Bitcoin.


Поэтому в этой статье мы рассмотрим три основных компонента технологии blockchain: собственно блокчейн, одноранговые (пиринговые) сети и механизм консенсуса. Bitcoin не сможет существовать, если какой-либо из этих компонентов отсутствует. Начнем с блокчейна.

1. Понимание собственно блокчейна

Попросту говоря, блокчейн — это всего лишь способ структурирования данных. Вот и всё! Это регистр: файл, который отслеживает записи бухгалтерского учета.

Этот файл сравним с книгой, которая никогда не заканчивается.

На каждой странице книги записана информация и номер страницы внизу. По номеру страницы вы сразу же знаете, где эта страница находится в книге. Очевидно, что страница 49 располагается между страницами 48 и 50.

Как и страницы книги, блоки блокчейна заполняются информацией. Хотя блоки не имеют точных номеров, они имеют метку времени, которая выполняет ту же самую функцию. Новый блок всегда добавляется после блока с самой последней меткой времени. Таким образом формируется цепочка.

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


В блокчейне Биткоина блоки содержат информацию о транзакциях. В каждом блоке указано, кто и кому передает сколько-то биткоинов.

Транзакция происходит только после ее включения в блок и добавления блока в цепочку. Следовательно, когда блок добавляется в цепочку, состояние блокчейна обновляется. В конце концов, биткоины перемещены.

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

2. Понимание роли одноранговых сетей

Чтобы использовать блокчейн в качестве бухгалтерской книги для записи транзакций, необходимо иметь возможность проверить блокчейн на предмет, совершена ли транзакция на ваш адрес или кошелек.

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

  • Всегда можно проверить состояние блокчейна, используя программу-проводник (blockchain explorer).
  • Не надо полагаться только на одну сторону, чтобы знать истинное состояние блокчейна.
  • Не надо полагаться на безопасность одного сервера, чтобы знать, что блокчейн защищен.
  • Злоумышленнику придется одновременно взломать тысячи компьютеров, а не один сервер.
  • Всегда есть уверенность, что блокчейн никогда не исчезнет, потому что для этого его надо будет уничтожить всем узлам.


Это все очень важно, но вышеизложенное не означает, что блокчейн теперь вдруг оказывается достаточно надежным, чтобы использоваться для хранения транзакций.

Например, как узнать, что все транзакции в блокчейне верны? Как узнать, что в блоках нет недействительных транзакций? И если есть разные версии blockchain, откуда мы узнаем, которые из них являются истинными?

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

3. Понимание механизма консенсуса

Механизм одноранговой сети использовал еще в 1999 году Napster (файлообменная пиринговая сеть).

Гениальный Сатоши Накамото, загадочный и анонимный основатель Биткоина, объединил блокчейн с консенсусным механизмом, основанным на криптографии. Консенсусный механизм — это то место, где происходит настоящая магия: он позволяет узлам в одноранговой сети работать вместе, не зная и не доверяя друг другу.

Теперь, если вы не совсем это поняли, механизм консенсуса — это просто набор правил, который согласовывается узлами в сети, запуская программное обеспечение сети. Эти правила обеспечивают, чтобы сеть работала по назначению и оставалась синхронизированной.

Консенсусный протокол устанавливает правила:

  • Каким образом блоки должны быть добавлены в блокчейн,
  • когда блоки считаются действительными, и
  • как разрешаются конфликты.

Добавление блоков в блокчейн

Различные блокчейны добавляют блоки в свои цепи по-разному. Наиболее известным механизмом консенсуса является Доказательство выполненной работы (PoW) Биткоина.

Первое правило PoW состоит в том, что один блок должен быть добавлен в блокчейн, в среднем, каждые десять минут.

Впоследствии все остальные майнеры начинают добывать следующий блок.

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

Проверка блоков

Когда майнер решает головоломку и формирует новый блок, все узлы в сети проверят, действителен ли блок, и добавят его в свою копию блокчейна. Сначала узлам необходимо достичь консенсуса относительно действительности. Только тогда сеть синхронизируется и состояние обновлений блокчейна.

Узлы будут добавлять новый созданный блок в цепочку, только если он будет следовать правилам, изложенным в протоколе консенсусного механизма. Программное обеспечение протокола проверяет, действителен ли блок или нет. Недействительный блок будет просто отклонен.

Естественно, что блок будет являеться действительным, если действительными будут все транзакции, содержащиеся в нем. Например, в протоколе Биткоина говорится, что никто не может отправлять биткоины, которые он не получил первоначально от кого-то другого или в качестве вознаграждения за майнинг блока.

Другими словами, программное обеспечение узлов проверяет все транзакции в новом блоке, имеются ли у отправителей достаточное количество биткоинов для совершения своих транзакций. Для этого узлы проверяют состояние сети Биткоина.

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

Как разрешаются конфликты

Может случиться так, что два майнера одновременно добавляют действительные блоки в блокчейн. Представьте, что часть узлов приняла один действительный блок, а другая часть приняла другой действительный блок. Первая группа включала блок с моей транзакцией Алисе, а другая включала мою транзакцию Бобу. Теперь у нас внезапно возникли два разных состояния блокчейна в одно и то же время!

Как правило, все консенсусные протоколы решают эту проблему с помощью простого правила: выигрывают самые длинные цепочки.


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

Почему мы знаем, что это всегда произойдет?

Потому что майнеры — это экономические субъекты, которые действуют в личных интересах. Майнер не заинтересован в добыче на разветвленной цепи, зная, что она отомрет. Все транзакции (истинные транзакции) в разветвленной цепи никогда не происходили в основной цепочке, а это означает, что майнеры, которые добывали блоки на разветвленной цепи, не были вознаграждены за свою работу. Издержки майнинга блоков, которые не будут включены в основную цепочку, просто слишком высоки. И майнерам невыгодно продолжать майнинг на альтернативной ветке.

В редких случаях может произойти, что разветвленная цепь обладает значительным количеством ресурсов для добычи. В этом случае может потребоваться некоторое время, прежде чем станет ясно, какая из ответвленных цепей является основной цепью. Житейская мудрость подсказывает, что разумно ждать 6 новых блоков, чтобы действительно подтвердить транзакцию.


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

Вывод

Вышеприведенное следует рассматривать как очень краткое введение в работу распределенных регистров (distributed ledgers).

Вместе с тем, возможно, настало время согласиться, что этот термин превратился во всеобъемлющую концепцию, указывающую на синтез технологий, которые делают распределенные регистры возможными.

В моей следующей статье я углублюсь в роль, которую играет современная криптография в блокчейне и механизме консенсуса.

Начинающие, а иногда и опытные майнеры зачастую не понимают, что такое удача в майнинге. В этой статье попробую расставить все точки над “ё”.

Большой процент майнеров как начинающих, так и уже опытных не понимают, что такое удача в майнинге. В этот раз я попытаюсь простыми словами вам рассказать о таком важном аспекте при майнинге криптовалюты.


Что такое майнинг?

реклама

На самом деле все куда проще. Если говорить простыми словами, то майнинг – это процесс создания криптовалюты с помощью специального алгоритма. На ПК генерируются уникальные наборы данных (блоки), подтверждающие достоверность платежных транзакций. Эти блоки состоят из хеша заголовков предыдущих блоков, хеша транзакций и случайных чисел. Блокчейн – это цепь. В ней содержатся все транзакции. За нахождение блока начисляется награда.

Одним из важнейших параметров любой крипты считается время блока. Это такие временные рамки нахождения новых блоков. Так, например, блок Биткоин находится, в среднем, за 10 минут, а у Эфириума – 13,2 секунды. То есть, в сети Биткоина раз в 10 минут создается новый блок, у Эфириума – 13,2 секунды. Однако не все так просто: это не означает, что каждые 10 минут вы стабильно находите по 1 блоку Биткоина или каждые 13,2 секунды - блок Эфириума. Этот процесс может занять и минуту, и час. Это лишь среднее значение. Оборудование всех майнеров решает одну и ту же задачку. Всеми видеокартами мира каждые 13,2 секунды или же каждые 10 минут получается одна и та же задача.

реклама

Разные алгоритмы майнинга являются разными уравнениями. Допустим, первый алгоритм M+N=R, второй M*N=R. Каждым блокам дается постоянное значение M, а ответ – число R с 2 нулями в конце. В случайном порядке перебирается число N, пока не найдется ответ. Сетью подбирается такое число нолей, чтобы блок находился в среднем за то самое значение (10 минут Биткоин или 13,2 секунд Эфириум).

Приведу простой пример.

Допустим, есть сеть крипты G. Вы там один занимаетесь майнингом. Время блока – 5 минут. Сетью дается задача, в конце ответа которой (R) два ноля.

Ваш знакомый также пришел для майнинга этой валюты. По логике блоки должны находиться в 2 раза быстрее - за 2,5 минут. На практике все по-другому: время блока – это один из важнейших параметров, поэтому сеть усложняет задачу, ответ (R) в которой имеет уже 3 ноля.

реклама

Вычисление примера идет путем подбора чисел. Специальных методик, патчей и т.д, с помощью которых примеры решаются быстрее, нет. Есть лишь разница в скорости подстановки этих чисел. Все дело в мощности карты: чем мощнее, тем быстрее.

Затем приходят еще друзья. Сеть опять же усложняет задачку так, чтобы время появления блока было все те же 5 минут

Если количество майнеров уменьшается, то сеть опять реагирует на это, но теперь уже упрощает задачку так, чтобы блок создавался раз в 5 минут.

Удача в майнинге.

Итак, что же из себя представляет эта удача?

реклама


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


Поиск решений блоков точно такой же. Допустим, вы обладаете одной видеокартой, а у знакомого их десять. Это равносильно тому, что у вашего знакомого десять кубиков, а в ваших руках только один.

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

  • Объединяться с знакомым в пул и найти блок, затем честно поделив награду: вам достанется 10 долларов, ему 100 долларов.
  • Попробовать искать блок самостоятельно. При условии, что вы нашли этот самый блок, вам достанется вся награда – 110 долларов.

Выбрав второй вариант, в идеальных условиях вам нужно в 11 раз больше времени, чем в пуле с знакомым, но у нас не идеальные условия.

В вашем распоряжении, к примеру, оборудование на 100 МХ/с, а у знакомого – 600 МХ/с. Разумно было бы предположить, что знакомый вас обыграет. Причем это будет выглядеть так: на 1 вашу победу приходится 6 его побед. Это в идеальных условиях.

Однако в реальной жизни работает та же логика, что и в ситуации с кубиками: может повезти, а может и нет.

Главное знать, что везти вам будет максимум день-два. Затем вычислительные мощности вашего знакомого возьмут верх. В среднем, соотношение ваших побед к победам вашего знакомого будет равно 1/6.

Удача в майнинг-пуле.

Это такое значение в %, указывающее значение удачи в момент поиска пулом блока. В идеале пулом всякий раз находился бы блок при значении в 100 процентов. Если пул испытывает везение, то блок будет найден до отметки 100%, если же нет – то может быть 100 процентов и больше.


Приведу пример.

Давайте посмотрим все это на примере нескольких валют: Aeternity, Эфириум, Эфириум Классик.



Как мы видим, значение удачи всегда почти равно 100%. Здесь главное терпение. Сперва значение удачи могло равняться 10 процентам или 500 процентам, но она все время приближается к значению в 100 процентов. Поэтому не нужно постоянно метаться с одного пула к другому.

Удача в соло-майнинге


Возможно ли падение удачи?

Рост удачи в майнинге продолжается до того момента, пока не найдется решение блока, затем она сбросится до нуля. Бывает и такое, что значение удачи падает, например, с 95 до 85 процентов. Такое возможно, когда падает или поднимается сложность сети. Но это не означает, что вам резко повезет.

Подпишитесь на наш канал в Яндекс.Дзен или telegram-канал @overclockers_news - это удобные способы следить за новыми материалами на сайте. С картинками, расширенными описаниями и без рекламы.

Читайте также: