Для чего нужны майнинг-фермы и зачем такие вычислительные мощности. Математический расчет криптовалюты


Математический расчет: Биткоина вырастет до $50k

Используя метод статистического проектирования Монте-Карло в сочетании с так называемыми «случайным блужданием», Хоэль Лопес Барата воссоздал возможный сценарии ценового роста ведущей криптовалюты к концу 2018 года.

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

В своих расчетах Барата использовал метод Монте-Карло. Он анализировал ежедневные доходы и варианты цен, но не использовал нормальное распределение. Математик отметил, что «вероятность экстремальных событий более высокая».

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

В свои расчеты он включал поведение цены Биткоина, начиная с 2010 года. Полученные результаты колебались от $10 000 до $100 000. Но все же наиболее вероятной оказалась цена от $24k и $90k.

Применив дополнительные параметры проектирования для получения более конкретной модели, Барата получил цифры в $58 843. Затем он использовал метод оценки Kernel Destiny, который тоже показал, что цена превысит $50 000. В целом же его расчеты показали, что цена может находиться в диапазоне от $13 200 и $271 277.

Подписывайтесь на наши социальные сети:

profitgid.ru

Математические основы биткойн-блокчейна / Блог компании Bitfury Group / Хабр

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

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

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

/ Изображение Hernán Piñera CC BY

Фундаментальной частью биткойна являются криптографические алгоритмы. В частности, алгоритм ECDSA — Elliptic Curve Digital Signature Algorithm, который использует эллиптические кривые (elliptic curve) и конечные поля (finite field) для подписи данных, чтобы третья сторона могла подтвердить аутентичность подписи, исключив возможность её подделки. В ECDSA для подписи и верификации используются разные процедуры, состоящие из нескольких арифметических операций.

Эллиптические кривые

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

y² = x³ + ax + b

Для коэффициентов a = 0 и b = 7 (используемых в биткойне), график функции принимает следующий вид:

Эллиптическая кривая

Эллиптические кривые имеют несколько интересных свойств, например, невертикальная линия, пересекающая две некасательные точки на кривой, пересечет третью точку на кривой. Суммой двух точек на кривой P + Q называется точка R, которая является отражением точки -R (построенной путем продолжения прямой (P; Q) до пересечения с кривой) относительно оси X.

Сумма двух точек на кривой (источник)

Если же провести прямую через две точки, имеющие координаты вида P (a, b) и Q (a, -b), то она будет параллельна оси ординат. В этом случае не будет третьей точки пересечения. Чтобы решить эту проблему, вводится так называемая точка на бесконечности (point of infinity), обозначаемая как O. Поэтому, если пересечение отсутствует, уравнение принимает следующий вид P + Q = O.

Если мы хотим сложить точку саму с собой (удвоить её), то в этом случае просто проводится касательная к точке Q. Полученная точка пересечения отражается симметрично относительно оси X.

Удвоение точки (источник)

Эти операции позволяют провести скалярное умножение точки R = k*P, складывая точку P саму с собой k раз. Однако отметим, что для работы с большими числами используются более быстрые методы.

Эллиптическая кривая над конечным полем

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

y² = x³ + ax + b (mod p)

Например, 9 mod 7 = 2. Здесь мы имеем конечное поле от 0 до 6, и все операции по модулю 7, над каким бы числом они ни осуществлялись, дадут результат, попадающий в этот диапазон.

Все названные выше свойства (сложение, умножение, точка в бесконечности) для такой функции остаются в силе, хотя график этой кривой не будет походить на эллиптическую кривую. Эллиптическая кривая биткойна, y² = x³ + 7, определенная на конечном поле по модулю 67, выглядит следующим образом:

Эллиптическая кривая биткойна, определенная на конечном поле по модулю 67 (источник)

Это множество точек, в которых все значения х и у представляют собой целые числа между 0 и 66. Прямые линии, нарисованные на этом графике, теперь будут как бы «оборачиваться» вокруг поля, как только достигнут барьера 67, и продолжатся с другого его конца, сохраняя прежний наклон, но со сдвигом. Например, сложение точек (2, 22) и (6, 25) в этом конкретном случае выглядит так:

Сложение точек (2, 22) и (6, 25) (источник)

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

ECDSA в биткойне

В протоколе биткойна зафиксирован набор параметров для эллиптической кривой и её конечного поля, чтобы каждый пользователь использовал строго определенный набор уравнений. Среди зафиксированных параметров выделяют уравнение кривой (equation), значение модуля поля (prime modulo), базовую точку на кривой (base point) и порядок базовой точки (order). О вычислении порядка базовой точки вы можете почитать здесь. Этот параметр подбирается специально и является очень большим простым числом.

В случае биткойна используются следующие значения:

Уравнение эллиптической кривой: y² = x³ + 7

Простой модуль: 2256— 232 — 29 — 28 — 27 — 26 — 24 — 1 = FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE FFFFFC2F

Базовая точка:

04 79BE667E F9DCBBAC 55A06295 CE870B07 029BFCDB 2DCE28D9 59F2815B 16F81798 483ADA77 26A3C465 5DA4FBFC 0E1108A8 FD17B448 A6855419 9C47D08F FB10D4B8

Жирным шрифтом выделена координата X в шестнадцатеричной записи. За ней сразу следует координата Y.

Порядок: FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE BAAEDCE6 AF48A03B BFD25E8C D0364141

Этот набор параметров для эллиптической кривой известен как secp256k1 и является частью семейства стандартов SEC (Standards for Efficient Cryptography), предлагаемых для использования в криптографии. В биткойне кривая secp256k1 используется совместно с алгоритмом цифровой подписи ECDSA (elliptic curve digital signature algorithm). В ECDSA секретный ключ — это случайное число между единицей и значением порядка. Открытый ключ формируется на основании секретного: последний умножается на значение базовой точки. Уравнение имеет следующий вид:

Открытый ключ = секретный ключ * G

Это показывает, что максимальное количество секретных ключей (следовательно, биткойн-адресов) — конечно, и равняется порядку. Однако порядок является невероятно большим числом, так что случайно или намеренно подобрать секретный ключ другого пользователя нереально.

Вычисление открытого ключа выполняется с помощью тех же операций удвоения и сложения точек. Это тривиальная задача, которую обычный персональный компьютер или смартфон решает за миллисекунды. А вот обратная задача (получение секретного ключа по публичному) — является проблемой дискретного логарифмирования, которая считается вычислительно сложной (хотя строгого доказательства этому факту нет). Лучшие известные алгоритмы ее решения, вроде ро Полларда, имеют экспоненциальную сложность. Для secp256k1, чтобы решить задачу, нужно порядка 2128 операций, что потребует времени вычисления на обычном компьютере, сопоставимого со временем существования Вселенной.

Когда пара секретный/публичный ключ получена, её можно использовать для подписи данных. Эти данные могут быть любой длины. Обычно первым шагом выполняется хеширование данных с целью получения уникального значения с числом битов, равным битности порядка кривой (256). После хеширования, алгоритм подписи данных z выглядит следующим образом. Здесь, G — базовая точка, n — порядок, а d — секретный ключ.

  • Выбирается некоторое целое k в пределах от 1 до n-1
  • Рассчитывается точка (х, у) = k * G с использованием скалярного умножения
  • Находится r = х mod n. Если r = 0, то возврат к шагу 1
  • Находится s = (z + r * d) / k mod n. Если s = 0, то возврат к шагу 1
  • Полученная пара (r, s) является нашей подписью
После получения данных и подписи к ним, третья сторона, зная публичный ключ, может их верифицировать. Шаги для проверки подписи такие (Q — открытый ключ):
  • Проверка, что и r, и s находятся в диапазоне от 1 до n-1
  • Рассчитывается w = s-1 mod n
  • Рассчитывается u = z * w mod n
  • Рассчитывается v = r * w mod n
  • Рассчитывается точка (x, y) = uG + vQ
  • Если r = x mod n, то подпись верна, иначе — недействительна
В самом деле,

uG + vQ = u + vdG = (u + vd)G = (zs-1 + rds-1)G = (z + rd) s-1G = kG

Последнее равенство использует определение s на этапе создания подписи.

Безопасность ECDSA связана со сложностью задачи поиска секретного ключа, описанной выше. Помимо этого, безопасность исходной схемы зависит от «случайности» выбора k при создании подписи. Если одно и то же значение k использовать более одного раза, то из подписей можно извлечь секретный ключ, что и произошло с PlayStation 3. Поэтому современные реализации ECDSA, в том числе используемые в большинстве биткойн-кошельков, генерируют k детерминировано на основе секретного ключа и подписываемого сообщения.

P.S. Bitfury Group Russia в Vk и Fb.

habr.com

Какие математические задачи решают процессоры/видеокарты майнеров, чтобы получить биткоин?

Они решают обратную задачу хэширования. 

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

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

Алгоритм в системе биткойна задает некий хэш. Точнее - некий интервал возможных значений для хэшей. А процессоры ищут пароли, чей хэш попадет в этот интервал. Постоянсиво скорости майнинга достигается сужением интервала (усложнением задачи) при увеличении числа участников и расширением - при снижении числа майнеров (упрощением задачи).

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

Пока никто не контролирует 50% участвующих компьютеров, система остается устойчивой к взлому. Даже если 49% запишут биткойн не на тот счет, владелец нехорошего счета не сможет им воспользоваться. А настояшему владельцу хватит и признания 51% участников. И тем устойчивей система, чем больше в ней независимых участников.

Подробнее:

http://bramaby.com/ls/blog/analytics/7505.html

http://bramaby.com/ls/blog/analytics/7500.html

thequestion.ru

Что вычисляют майнинг-фермы и какую информацию обрабатывают

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

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

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

Майнинг-ферма как новое устройство в мире компьютерной техники

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

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

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

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

Напрашивается вопрос, майнить в современных реалиях или же не стоит даже пробовать? Ну что ж, данная статья не совсем об этом, и лучше вам все объяснит более узконаправленная статья. Однако стоит сказать: для того чтобы майнить, вам по сути не нужна большая ферма, по крайней мере сразу. Если вы все-таки решитесь попробовать присоединиться к этому «празднику жизни», то вполне резонно сначала будет использовать вашу игровую карту, которая у вас уже есть дабы просто узнать, что это такое. Возможно, это совсем не ваша тема. Но если понравится, тогда уж решайте, вкладывать дополнительные деньги или нет.

Узнай, как зарабатывать на криптовалютах и ICO на бесплатном онлайн мастер-классе

Подробнее

В чем заключается майнинг, и какие задачи в нем решаются?

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

И действительно, если подумать, то мощнейший в мире китайский суперкомпьютер Sunway TaihuLight имеет приблизительную вычислительную мощность 93 Петафлопс, а одна видеокарта GTX 1080Ti — 0,0106 Петафлопс. Это значит, что суперкомпьютер равен по мощности 8774 GTX 1080Ti. Согласитесь, это просто смешно. В одной московской области суммарное количество майнеров значительно превосходит эту мощность, что уж говорить о майнерах всего мира, которых сейчас просто невероятное количество. Ну, вот не может все это быть просто так. Не правда ли?

Выдвигаются самые разные предположения, мол, все это спланированная акция, и криптовалюты придуманы, чтобы завлечь людей предоставить заинтересованным лицам «бесплатный суперкомпьютер», а когда задача будет выполнена, все они резко обесценятся. Что касается самих расчетов, то здесь все ещё веселее: некоторые думают, что так обсчитывают возможный ущерб от ядерных взрывов при начале крупномасштабной войны, вторые предполагают, что таким образом разрабатываются новые виды оружия, и так далее, и тому подобное. Но если посмотреть на все это трезвым взглядом со стороны, то подобное конечно-же кажется не меньшим бредом, чем разговоры о Нибиру и рептилоидов по РЕН-ТВ.

Как мы уже писали выше, майнинг-оборудование помогает функционированию сети блокчейна криптовалюты. А именно, оно помогает решить математические задачи криптографии. Именно из-за того, что данная система строится на принципах криптографии, этот вид электронных денег и получил наименование криптовалюта. Да, да, вы совершенно правильно поняли, на самом деле эта система — близкий родственник Веб Мани, Киви, Яндекс-денег и других подобных систем. С помощью криптовалют точно так же можно проводить транзакции покупки, продажи или обмена товаров, разница заключается только в том, что данная система абсолютно децентрализована и не зависит от банковской системы той или иной страны.

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

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

Майнинг-вычисления распределяются между всеми участниками, которые закрывают блоки транзакций. Но если бы все записывали одинаковые блоки, то рано или поздно в системе наступил бы хаос. Поэтому каждому блоку приписывается свой уникальный, так называемый «красивый» хеш, который и должен отыскать майнер. Это одновременно и служит доказательством работы, и обеспечивает надежность проведенных сделок. Поскольку за каждый блок майнер получает вознаграждение, с каждым закрытым блоком растёт и сложность вычислений в системе. Это сделано для того, чтобы с течением времени эмиссия валюты не росла в геометрической прогрессии и сохранялась стабильность. Также сложность системы растет в случае увеличения количества участников, а награда делится между ними в соответствии с вложенными вычислительными мощностями.

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

На чем зарабатывают майнеры?

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

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

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

Но мы знаем, что большинству из вас интересны именно конкретные цифры заработка майнеров криптовалюты. Здесь очень важную роль играет сложность добычи и курс валюты относительно доллара США. Когда сложность оптимальна, а курс постоянно растет, то заработок среднестатистического домашнего «фермера» может составлять 20–30 долларов в день. Когда курс падает, а сложность возрастает, то и заработок может падать до 3–4 долларов в день и даже ниже. Большинство майнеров очень сильно зависит от времени окупаемости оборудования, так как покупают сразу много карт и вынуждены обновлять их время от времени.

Майнинг Биткоина

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

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

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

Рассказывать, что именно вычисляют при майнинге Биткоина, мы не будем, так как в приведённых примерах, по большему счету, описывалась именно его модель. Стоит только отметить, что алгоритм шифрования Биткоина называется SHA-256 и применяется в большом количестве криптовалют, построенных по его прообразу. Написан этот алгоритм был агентством национальной безопасности США задолго до появления самого Биткоина и использовался как механизм шифрования веб-сайтов по протоколу безопасности SSI.

Майнинг Эфириума

Второй по популярности после Биткоина является криптовалюта Эфириум. Это довольно молодой проект, и на свет он появился совсем недавно — в 2015 году. Именно резкое подорожание этой монеты в начале 2017 года с восьми долларов до двухсот и является причиной массовой пропажи видеокарт с полок магазинов. Поскольку криптовалюта молодая, она очень хорошо добывалась на видеокартах, но сейчас, когда все набросились на ее майнинг, сложность сети очень сильно возросла.

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

Математические задачи, которые решаются при майнинге Эфириума, очень похожи на задачи, решаемые в Биткоин. Это все такие же открытия новых блоков блокчейна для подтверждения транзакций. Главным же отличием систем является то, что в Эфириуме используется новый алгоритм DaggerHashimoto. Работа алгоритма выглядит как хеширование метаданных последнего блока системы, для которого используется специальный код под названием Nonce. Нонс представляет собой обычное двоичное число, которое задает уникальное значение хеша. Подбор «красивого» хеша теперь возможен лишь методичным перебором всех возможных вариантов. Такой вариант хеширования очень сильно усложняет шифрование и требует наличия большого количества памяти. В связи с этим внедрение в майнинг Эфира ASIC-систем очень сильно усложняется, что несомненно положительно скажется на децентрализованной криптовалюте.

Майнинг других криптовалют

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

  1. Ripple. Основана в 2013 году. Валюта, предназначенная для банков, чтобы быстрее и лучше совершать транзакции.
  2. Monero. Основана в 2014 году. Основной задачей данной валюты является обеспечение анонимных денежных переводов.
  3. Litecoin. Основана в 2011 году. Один из главных конкурентов Биткоин, но с преимуществом в более быстрых транзакциях.
  4. EthereumClassic. Дата основания — 2015 год. Представляет собой форк Эфириума. Сейчас стоит дешевле основной версии.
  5. Dash. Используется с 2014 года. Предлагает высокую анонимность транзакций. При использовании Dash конечного потребителя практически невозможно отследить.
  6. ByteCoin. 2012 год. Основная задача — защитить деньги пользователя. Для этого система использует самые совершенные криптографические алгоритмы.
  7. VertCoin. 2014 год. Криптовалюта призвана полностью обезопасить себя от ASIC-майнеров, тем самым сохранив высочайшую степень децентрализации.
  8. Dashcoin. Дата основания — 2014 год. Представляет собой анонимную криптовалюту нового поколения.
  9. NEM. Основана в 2015 году. Новая криптосистема, которая предлагает цифровую нотариальную подпись. Кроме того, обладает высочайшей скоростью проведения транзакций и обеспечивает надежное хранение средств.
  10. Decred. 2015 год. Представляет из себя гибрид систем POW и POS. Благодаря этому соблюдает тонкий баланс между майнерами и держателями монет.

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

Единственным принципиальным различием между монетами можно считать применение систем POW (доказательство работой) и POS (доказательство владением). Некоторые из представленных криптовалют требуют вычислений по системе POW, то есть доказательства роботы, это и есть классический майнинг. А некоторые, такие как NEM, построены на системе POS — доказательстве владением. В таком случае для майнинга вам хватит и обычного компьютера, но потребуется для начала купить некоторую сумму монет. В любом случае для заработка на криптовалютах лучше выбирать ту из них, которая демонстрирует медленный, но стабильный рост.

cryptomagic.ru

Математика Биткойна: Практика -

math-behind-bitcoin-630x376В предыдущей статье мы рассмотрели теоретические основы эллиптической криптографии и поняли, как она работает в принципе. Теперь осталось только применить эти знания на практике: давайте разберемся, как это используется в биткойн-протоколе.

Секретные ключи и открытые ключи

Итак, мы теперь понимаем, как работает дискретная математика эллиптических кривых, и знаем, что в Биткойне используется вариант эллиптической криптографии secp256k1. Teперь можем разобраться с тем, откуда вообще берутся секретные и открытые ключи и как они вообще связаны друг с другом и с биткойн-адресами. Если коротко, в ECDSA секретный ключ — это просто случайное число между 1 и значением порядка. Открытый же ключ получается из секретного при помощи операции скалярного умножения базовой точки на значение секретного ключа. В виде уравнения:

Открытый ключ = секретный ключ * базовая точка

Это показывает, что максимально возможное количество секретных ключей (и, следовательно, биткойн-адресов) — конечно, и равно порядку. Так стало быть, на всех их может не хватить?! Не совсем так: вспомним, что порядок — это действительно большое число — оно невообразимо больше, чем общее число элементарных частиц во всей Вселенной.

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

Напомним, мы работаем с дискретной математикой эллиптических кривых, где сложение точек p + q, чтобы найти их сумму r определяется покомпонентно следующим образом:

c = (qy — py) / (qx — px)rx = c2 — px — qxry = c (px — rx) — py

A операция «удвоения» точки р выглядит следующим образом:

c = (3px2 + a) / 2pyrx = c2 — 2pxry = c (px — rx) — py

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

Реальный пример из «игрушечной» криптографии

40733-01-1000Итак, для удобства создадим себе собственную мини-биткойн-криптографию, например, такую:

Уравнение кривой: y2 = x3 + 7Модуль: 67Базовая точка: (2, 22)Порядок: 79

Чтобы показать, что мы не лыком шиты, выберем себе «абсолютно случайный» секретный ключ (из 79 возможных). Ну, пусть это будет 2.

Давайте найдем к нему публичный ключ. Так как мы выбрали простейший «секретный» ключ со значением = 2, нам для этого потребуется лишь одна операция удвоения базовой точки. Очень удобно. Расчет выглядит следующим образом:

c = (3 * 22 + 0) / (2 * 22) mod 67c = (3 * 4) / (44) mod 67c = 12 / 44 mod 67

Здесь мы должны провести небольшой трюк, который ранее не объяснялся. Как нам выполнить операцию деления в контексте конечного поля, где результат должен быть целочисленным? Для этого мы должны умножить 12 на величину, обратную к 44. Находить обратную величину в контексте конечных полей не так просто (если хотите изучить этот вопрос подробнее, смотрите здесь), поэтому пока что вам придется поверить мне на слово, что:

44-1 = 32

Далее все довольно просто:

c = 12 * 32 mod 67c = 384 mod 67c = 49

rx = (492 — 2 * 2) mod 67rx = (2401 — 4) mod 67rx = 2397 mod 67rx = 52

ry = (49 * (2 — 52) — 22) mod 67ry = (49 * (-50) — 22) mod 67ry = (-2450 — 22) mod 67ry = -2472 mod 67ry = 7

Итак, мы определили, что для секретного ключа 2 публичным ключом будет точка (52, 7). Ну, наконец-то! Столько вычислений, и все ради такого-то простого «открытия».

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

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

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

Подписываем данные секретным ключом

notary_pic_1Теперь, когда у нас есть своя собственная пара секретный/публичный ключ (пусть и в игрушечном микро-пространстве эллиптической криптографии), давайте уже наконец подписывать какие-нибудь данные!

Эти данные могут быть любой длины. Обычно первым шагом является хэширование данных, чтобы получить уникальное число, содержащее такое же количество битов (256), как и порядок кривой. Здесь, для простоты, мы пропустим шаг хеширования и сделаем вид, что нам нужно просто подписать набор данных z. Обозначим через G базовую точку, через n — порядок, а d — закрытый ключ. Алгоритм создания подписи выглядит следующим образом:

  1. Выберите некоторое целое k в пределах от 1 до n-1.
  2. Рассчитайте точку (х, у) = k * G, используя скалярное умножение.
  3. Найти r = х mod n. Если r = 0, вернитесь к шагу 1.
  4. Найти s = (z + r * D) / k mod n. Если S = 0, вернитесь к шагу 1.
  5. Пара (r, s) является нашей подписью

Напомним, в шаге 4, если придется прибегнуть к делению (что в реальной жизни почти всегда происходит), числитель следует умножить на обратную знаменателю величину. А на начальном шаге 1 важно, чтобы k не повторялось в разных подписях, и чтобы его не могла угадать третья сторона. То есть k должен быть либо случайным либо созданным детерминированным процессом, который хранится в тайне от третьих лиц. В противном случае можно было бы вычислить секретный ключ, начиная с шага 4, так как s, z, r, k и n всем известны.

Давайте выберем в качестве наших данных число 17 и подпишем его нашим супер-секретным ключом 2. Итак:

z = 17 (данные)n = 79 (порядок)G = (2, 22) (базовая точка)d = 2 (секретный ключ)

1. Выберем случайное число:

k = rand(1, n — 1)k = rand(1, 79 — 1)k = 3 (что, это действительно случайное число!? Ну ладно, ладно, скажем что это тоже «игрушечный» рэндом!)

2. Рассчитаем точку.

Это делается таким же образом, как ранее при вычислении публичного ключа — для краткости опустим подробную арифметику сложения и удвоения.

(x, y) = 3G(x, y) = G + 2G(x, y) = (2, 22) + (52, 7)(x, y) = (62, 63)x = 62y = 63

3. Находим r :

r = x mod nr = 62 mod 79r = 62

4. Находим s :

s = (z + r * d) / k mod ns = (17 + 62 * 2) / 3 mod 79s = (17 + 124) / 3 mod 79s = 141 / 3 mod 79s = 47 mod 79s = 47

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

5. Получили подпись:

Нашей подписью является пара (r, s) = (62, 47).

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

Проверка подписи публичным ключом

micro-sigНу хорошо, подпись-то мы получили, что теперь?

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

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

  1. Убедитесь, что r и s находятся в диапазоне от 1 до n-1.
  2. Рассчитайте w = s-1 mod n
  3. Рассчитайте u = z * w mod n
  4. Рассчитайте v = r * w mod n
  5. Рассчитайте точку (x, y) = uG + vQ
  6. Убедитесь, что r = x mod n. Если это не так, то подпись недействительна.

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

z = 17 (данные)(r, s) = (62, 47) (подпись)n = 79 (порядок)G = (2, 22) (базовая точка)Q = (52, 7) (публичный ключ)

1. Убедимся, что что r и s находятся в диапазоне от 1 до n-1.

r: 1 <= 62 < 79s: 1 <= 47 < 79

Да, верно.

2. Рассчитаем w :

w = s-1 mod nw = 47-1 mod 79w = 37

3. Рассчитаем u :

u = zw mod nu = 17 * 37 mod 79u = 629 mod 79u = 76

4. Рассчитаем v :

v = rw mod nv = 62 * 37 mod 79v = 2294 mod 79v = 3

5. Рассчитаем точку (х, у):

(x, y) = uG + vQ

Это самая веселая часть. Давайте разберем операции удвоения и сложения в uG и vQ отдельно.

uG = 76GuG = 2(38G)uG = 2( 2(19G) )uG = 2( 2(G + 18G) )uG = 2( 2(G + 2(9G) ) )uG = 2( 2(G + 2(G + 8G) ) )uG = 2( 2(G + 2(G + 2(4G) ) ) )uG = 2( 2(G + 2(G + 2( 2(2G) ) ) ) )

Зацените: с помощью ловкой группировки, мы сводим 75 последовательных операций сложения к всего-то шести операциям удвоения и двум — сложения. И это еще мы работаем на «игрушечных» примерах — представьте себе число операций в «настоящей» криптографии. Или лучше даже не представляйте — не исключено, что просто свихнетесь.

Продолжаем наше захватывающее представление:

uG = 2( 2(G + 2(G + 2( 2( 2(2, 22) ) ) ) ) )uG = 2( 2(G + 2(G + 2( 2(52, 7) ) ) ) )uG = 2( 2(G + 2(G + 2(25, 17)  ) ) )uG = 2( 2(G + 2( (2, 22) + (21, 42) ) ) )uG = 2( 2(G + 2(13, 44) ) )uG = 2( 2( (2, 22) + (66, 26) ) )uG = 2( 2(38, 26) )uG = 2(27, 40)uG = (62, 4)

И теперь, все то же для vQ:

vQ = 3QvQ = Q + 2QvQ = Q + 2(52, 7)vQ = (52, 7) + (25, 17)vQ = (11, 20)

Посчитав, складываем их вместе:

(x, y) = uG + vQ(x, y) = (62, 4) + (11, 20)(x, y) = (62, 63)

Уфф, кажется закончили. Надеюсь, нигде не ошиблись. Сразу видно, что больше всего работы именно на шаге 5. Осталась уже просто ерунда.

6. Наконец, убедимся, что r = x mod n

r = x mod n62 = 62 mod 7962 = 62

Ура, наша подпись действительна!

Заключение

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

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

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

Как минимум, теперь можно понять, почему так часто повторяется, что права собственности на биткойны «гарантированы математикой».

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

Источник: Coindesk

Aвтор: Eric Rykwalder

Поделиться ссылкой:

Related

bitnovosti.com

Что есть биткоин с точки зрения математики

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

Одним из ключевых понятий криптовалюты биткоин является ключ ECDSA, аббревиатура от Алгоритма Цифровой Подписи с Эллиптическими Кривыми. С его помощью возможно «подписать» данные таким образом, что третьи лица могут легко проверить подлинность подписи, но подделать ее невозможно. Оставить подпись сможет только сам ее автор. В биткоинах «данные», которые подписываются — это ни что иное, как транзакция, которая и передает право собственности на биткойны от одного пользователя другому. Для проверки подписи в алгоритме существуют две процедуры, состоящие из нескольких арифметических операций.

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

Эллиптическая кривая, с точки зрения математики, представляет собой уравнение y² = x³ + ах + b

Для а = 0 и b = 7 (а это именно та версия, которую использует Биткойн), эта кривая выглядит так:

elliptic-curves

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

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

Для сложения точек, P + Q = R, мы проводим через точки P и Q прямую, которая, по свойствам эллиптических кривых, пересекает кривую в некоторой третьей точке R‘. Затем мы находим точку на кривой, симметричную точке R‘ относительно оси X. Именно эта точка R и будет считаться суммой P и Q. Это легче всего понять это, глядя на следующую схему:

point-addition

Это все хорошо, но как бы нам сложить точку саму с собой? Для этого, определяется операция удвоения точки, P + P = R. При удвоении, мы проводим прямую, касательную к данной эллиптической кривой в точке P, которая, согласно свойствам кривой, должна пересекать ее еще в одной точке R‘. Точка R, симметричная R‘относительно оси X, и будет считаться точкой удвоения P. На графике это выглядит следующим образом:

point-doubling

Эти две операции можно использовать, чтобы определить операцию скалярного умножения, R = a P, определяемую как добавление точки Р самой к себе a раз. Например:

R = 7PR = P + (P + (P + (P + (P + (P + P)))))

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

R = 7PR = P + 6PR = P + 2 (3P)R = P + 2 (Р + 2P)

Здесь операция 7P была разбита на два этапа удвоения точек и два сложения точек — в итоге, вместо 7 операций нужно произвести всего четыре.

Собственно, теперь вы знаете об эллиптических кривых все, что о них стоит знать.

Конечные поля

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

Самый простой способ проиллюстрировать это — расчет операции «остаток от целочисленного деления», или оператор модуло (MOD). Например, 9/7 дает 1 с остатком 2:

9 MOD 7 = 2

Здесь мы имеем конечное поле от 0 до 6, и все операции по модулю 7, над каким бы числом они не осуществлялись, дадут результат попадающий в этот диапазон.

Скрещиваем кривые с полями

ECDSA использует не просто эллиптические кривые, а эллиптические кривые в контексте конечного поля, что значительно меняет их ​​внешний вид. Причем меняет его так, что теперь эти самые кривые даже родная мама не узнает. Допустим, та же самая красивая эллиптическая кривая Биткойна, y² = x³ + 7, которая изображена выше, но только определенная на конечном поле по модулю 67, выглядит как такая вот странная крякозябра:

putting-it-together

Однако, заметим в ее оправдание, что хотя она и стала неузнаваемой для непосвященных, лежащие в основе этой «кривой» уравнения или ее особые свойства ничуть не изменились. Просто теперь это множество точек, в которых все х и у значения представляют собой целые между 0 и 66 Отметим также, что «кривая» по-прежнему сохраняет свою горизонтальную симметрию.

Правда, процесс операций над точками: сложения и удвоения — сейчас будет немного отличаться визуально. «Прямые линии», нарисованные на этом графике, теперь будут оборачиваться «вокруг поля», как только они достигнут магического барьера 67, как в древней аркадной игре «Asteroids», и продолжаться с другого его конца, сохраняя прежний наклон, но со сдвигом. Поэтому, сложение точек (2, 22) и (6, 25) в данном дискретном варианте выглядит следующим образом:

putting-together-2

«Оборачивающаяся прямая», проходящая через эти две точки, в итоге уперлась в третью точку (47, 39), а симметричная ей «относительно оси X» будет (47, 28). Вот эта-то точка и станет результатом нашей операции.

Применим свою математическую мудрость к криптографии

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

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

Для всех этих параметров, Биткойн использует очень-очень большие (ну просто офигенно невообразимо огромные) числа. Это важно. На самом деле, все практические применения ECDSA используют огромные числа. Ведь безопасность этого алгоритма опирается на то, что эти значения слишком большие чтобы подобрать что-то простым перебором или «брутфорсом».

В случае Биткойна, эти значения таковы (запись чисел дана не в десятичном, а в более компактном шестнадцатеричном виде, привычном программистам):

Уравнение эллиптической кривой: y² = x³ + 7

Простой модуль = 2256 — 232 — 29 — 28 — 27 — 26 — 24 — 1 = FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE FFFFFC2F

Базовая точка = 04 79BE667E F9DCBBAC 55A06295 CE870B07 029BFCDB 2DCE28D9 59F2815B 16F81798 483ADA77 26A3C465 5DA4FBFC 0E1108A8 FD17B448 A6855419 9C47D08F FB10D4B8

Порядок = FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE BAAEDCE6 AF48A03B BFD25E8C D0364141

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

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

cryptorussia.ru


Смотрите также