Возведение в квадрат было просто упрощением, потому что в реальных криптовалютах этот процесс в миллиарды раз сложнее. Даже если бы вы объединили все компьютеры для решения этих проблем, Вселенная схлопнулась бы раньше, чем вы смогли бы найти решение. Существует такое количество вероятностей, как и атомов в известной Вселенной. И вывести из публичного адреса закрытый ключ так сложно, что статистически более вероятно, что вы сможете бегать по стенам, а все ваши атомы одновременно подвергнутся квантовому туннелированию,[9] позволяя вам пройти через стену. Вы когда-нибудь испытывали подобное или видели, как это делает кто-то другой? Вот и я тоже нет. Поэтому никто не сможет угадать ваш закрытый ключ, а у двух людей он не может быть одинаковым. Опять же, более вероятно, что вы начнете бегать по стенам, не касаясь их, чем получите случайно закрытый ключ, который кто-то использовал для хранения биткоинов. Если вы мне не верите, то попробуйте пробежаться по стене. ☺
Вы можете спросить: «Что безопаснее – хранить миллиарды долларов в сейфе, место которого известно, и чтобы вскрыть его, нужно только прорвать систему безопасности (централизованную систему: банковскую или почтовую), или иметь огромное количество полностью открытых сейфов, внутри которых могут быть миллиарды долларов, но чтобы вскрыть такой сейф, понадобится времени столько, сколько существует Вселенная?» Пока это все не так хорошо знакомо, и мысль о случайном числе, которое теоретически может быть таким же, как и у кого-то другого, не вызывает доверия, особенно когда мы слышим новости о том, что некоторые суперкомпьютеры пытаются генерировать адреса с деньгами и преуспевают в этом. Как это возможно математически? Оказывается, изначальные создатели адресов не использовали систему с надлежащим генератором случайных адресов. Вот почему особенно важно использовать только сервисы с открытым исходным кодом, которые постоянно тестируются. А если вы не делаете этого, то похожи на человека, который в качестве пароля использует 1234.
[СОВЕТ]
В главе о кошельках вы узнаете об отличных сервисах, в которых нет такой проблемы, и генерация адресов там действительно случайна.
Для тех из вас, кто хочет понять настоящий криптографический процесс, ниже приведено описание такого процесса для биткоина. Эту часть можно пропустить, если вас не интересуют математические подробности.
1. Начать со случайно выбранного закрытого ключа от 1 до 2256.
2. Использовать криптографию на эллиптической кривой, где закрытый ключ является «множителем».
3. Это ваш публичный ключ.
4. Выполнить функцию «Hash160» с помощью алгоритма хеширования SHA256, а затем функцию RIPEMD160.
5. Записать ключ в формате кодирования Base58 Check как «контрольную сумму» (аналогично, например, проверке номера кредитной карты).
6. Это ваш публичный адрес.
Например, биткоин-адрес начинается с 1 или 3 и может содержать 34 символа:
1HFSx5TPYYzQTQmBXeJNcMhUDT6FNGF11q
(Этот адрес является рандомным, поэтому НЕ посылайте туда никаких средств.)
Что означает открытый исходный код?
Открытый исходный код (open source) означает, что код программы или блокчейна является общедоступным и может быть кем-либо проверен. Это позволяет другим проверять, сообщать об улучшениях, а также предупреждать, являются ли сервисы неисправными или вредоносными. В блокчейне и криптовалютах этот аспект необходим для открытого и инклюзивного сообщества.
Зачем нам нужны закрытые ключи и публичные адреса?
Эта система на 100 % инклюзивна. Это значит, что любой, или даже кто угодно, может присоединиться к сообществу блокчейн. Ничто и никто не может вас заблокировать, так как все, что вам нужно сделать, это создать закрытый ключ и получить с его помощью публичный адрес. При взгляде на некоторые из преимуществ децентрализованной валюты становится ясно, насколько ценна эта функция, особенно если смотреть на регионы мира, где традиционные банковские системы все еще очень ограничены. Любой человек может знать ваш публичный адрес («ваш адрес электронной почты»), чтобы вы могли получать деньги, но только ваш закрытый ключ (например, пароль от почты) необходим для отправки денег, связанных с публичным адресом. По аналогии, любой может отправить вам электронное письмо, но только тот, кто знает пароль, может отправить письмо с определенной учетной записи. Да, хакеры пытаются завладеть паролем с помощью фишинговых писем, но вы поняли основную мысль.
Самый важный урок, который нужно извлечь из этой главы: