Электронная библиотека » Джулиан Хосп » » онлайн чтение - страница 3


  • Текст добавлен: 9 января 2019, 12:00


Автор книги: Джулиан Хосп


Жанр: Маркетинг; PR; реклама, Бизнес-Книги


Возрастные ограничения: +16

сообщить о неприемлемом содержимом

Текущая страница: 3 (всего у книги 11 страниц) [доступный отрывок для чтения: 3 страниц]

Шрифт:
- 100% +

Глава 3
Закрытые ключи и публичные адреса

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

Как работает децентрализованное управление счетами?

В банковской системе у вас есть номер счета для того, чтобы люди могли отправлять вам деньги. Номер вашего банковского счета уникален; такой числовой последовательности нет ни у кого больше. Иначе, если вы дали кому-то свой номер счета для перевода денег, они бы пришли кому-то другому. То же самое справедливо и в отношении электронной почты: когда вы регистрируетесь, например, в Gmail, сервис во избежание конфликта адресов проверяет, не занят ли уже такой адрес. Банк или Gmail являются централизованными службами и поэтому работают именно так. Пока они хорошо выполняют свою работу, все хорошо. Но что, если банк вдруг решит закрыть ваш счет, или Gmail больше не предоставит вам доступа к вашим письмам? Что делать, если централизованная служба злоупотребляет своей властью?

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

Что такое закрытый ключ и публичный адрес?

Поскольку в системе отсутствует централизованная база данных, то при регистрации вы просто получаете случайное число, так называемый закрытый ключ, или сид (seed), который представляет собой строку из букв, цифр или набор случайных слов. В случае Биткоина, который является самой известной криптовалютой, вы получаете случайное число из 2256 вероятностей. Такое число выглядит как единица с восьмьюдесятью нулями:



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

E9873D79C6D87DC0FB6A5778633389F4453213303DA61 F20BD67FC233AA33262

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

Здесь кроется важное отличие криптовалюты от регистрации в почте: публичный адрес выбираете не вы сами – он математически выводится из закрытого ключа. Представьте, что, когда вы входите в почту, все, что вам нужно ввести, – это пароль, а адрес электронной почты для этого конкретного пароля назначается автоматически. В Биткоине это работает с помощью эллиптической криптографии и функций SHA-256 и RIPEMD-160. Если вы хотите углубиться в эту тему, то введите в поисковике «Julian Hosp cryptography». У меня есть много видео и постов в соцсетях, где я объясняю эти тонкости.

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

Проще говоря, представьте себе, что закрытый ключ – это случайное число, а связанный с ним публичный адрес – квадрат этого числа. То есть если ваш закрытый ключ это 8, то публичный адрес будет 8 во второй степени, или 64. Большинство из нас может вычислить это на бумаге. Но давайте пойдем от обратного. Если бы я сказал вам, что мой публичный адрес это 289, какой был бы тогда мой закрытый ключ? Если у вас нет калькулятора, то единственный способ это узнать – это подбор значений: что такое квадратный корень из 289? 15? Нет, слишком мало. 20? Нет, слишком много. Где-то между. 17. Верно. Теперь представьте, что это делается с числами, которые содержат 50 или более цифр. Было бы легко возвести любое из этих чисел в квадрат, но потребовалось бы много времени, чтобы произвести обратную операцию.

Возведение в квадрат было просто упрощением, потому что в реальных криптовалютах этот процесс в миллиарды раз сложнее. Даже если бы вы объединили все компьютеры для решения этих проблем, Вселенная схлопнулась бы раньше, чем вы смогли бы найти решение. Существует такое количество вероятностей, как и атомов в известной Вселенной. И вывести из публичного адреса закрытый ключ так сложно, что статистически более вероятно, что вы сможете бегать по стенам, а все ваши атомы одновременно подвергнутся квантовому туннелированию,[9]9
  Вероятность того, что квантовая частица проникнет за барьер, который непреодолим для классической элементарной частицы. Туннельный эффект – явление исключительно квантовой природы, невозможное в классической механике и даже полностью противоречащее ей. – Примеч. ред.


[Закрыть]
позволяя вам пройти через стену. Вы когда-нибудь испытывали подобное или видели, как это делает кто-то другой? Вот и я тоже нет. Поэтому никто не сможет угадать ваш закрытый ключ, а у двух людей он не может быть одинаковым. Опять же, более вероятно, что вы начнете бегать по стенам, не касаясь их, чем получите случайно закрытый ключ, который кто-то использовал для хранения биткоинов. Если вы мне не верите, то попробуйте пробежаться по стене. ☺



Вы можете спросить: «Что безопаснее – хранить миллиарды долларов в сейфе, место которого известно, и чтобы вскрыть его, нужно только прорвать систему безопасности (централизованную систему: банковскую или почтовую), или иметь огромное количество полностью открытых сейфов, внутри которых могут быть миллиарды долларов, но чтобы вскрыть такой сейф, понадобится времени столько, сколько существует Вселенная?» Пока это все не так хорошо знакомо, и мысль о случайном числе, которое теоретически может быть таким же, как и у кого-то другого, не вызывает доверия, особенно когда мы слышим новости о том, что некоторые суперкомпьютеры пытаются генерировать адреса с деньгами и преуспевают в этом. Как это возможно математически? Оказывается, изначальные создатели адресов не использовали систему с надлежащим генератором случайных адресов. Вот почему особенно важно использовать только сервисы с открытым исходным кодом, которые постоянно тестируются. А если вы не делаете этого, то похожи на человека, который в качестве пароля использует 1234.

[СОВЕТ]

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

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

Осторожно, режим ботана включен!

1. Начать со случайно выбранного закрытого ключа от 1 до 2256.

2. Использовать криптографию на эллиптической кривой, где закрытый ключ является «множителем».

3. Это ваш публичный ключ.

4. Выполнить функцию «Hash160» с помощью алгоритма хеширования SHA256, а затем функцию RIPEMD160.

5. Записать ключ в формате кодирования Base58 Check как «контрольную сумму» (аналогично, например, проверке номера кредитной карты).

6. Это ваш публичный адрес.

Режим ботана выключен:-)

Например, биткоин-адрес начинается с 1 или 3 и может содержать 34 символа:

1HFSx5TPYYzQTQmBXeJNcMhUDT6FNGF11q

(Этот адрес является рандомным, поэтому НЕ посылайте туда никаких средств.)

Что означает открытый исходный код?

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

Зачем нам нужны закрытые ключи и публичные адреса?

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

Самый важный урок, который нужно извлечь из этой главы:

НИКОГДА, от слова совсем, НИКОГДА, НИКОГДА, НИКОГДА не давайте никому ваш закрытый ключ. Человек, имеющий доступ к вашему закрытому ключу, имеет доступ к монетам, которые отправляются на его адрес.

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

Итак, что будет после того, как у каждого участника будет одна или несколько учетных записей для отправки и получения денег в этой системе? Следующее, что нужно решить (лично для меня это было настоящим открытием!) – это сколько денег фактически будет находиться в любой заданной учетной записи. Это вопрос, с которого мы начали эту главу: как вы можете избежать двойной траты, если центральная сторона не следит за учетными записями? Именно здесь вступает в игру процесс под названием «майнинг».

Глава 4
Майнинг

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

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

Майнинг – это процесс создания консенсуса.

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

Кто такие пользователи, ноды и майнеры?

Пользователи (также называются «легкие ноды», light-nodes): большинство людей в децентрализованной сети являются пользователями. Они производят и получают платежи и выплачивают майнерам небольшую плату (эта плата также может быть нулевой) для проверки действительности их транзакций.

Полные ноды: ноды (узлы) пересылают информацию, которую они получают, и обеспечивают всех участников одинаковой информацией. Таким образом сеть остается децентрализованной.

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

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

Что такое консенсус?

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

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

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

Что такое алгоритм консенсуса?

Чтобы избежать всего этого хаоса, легальные криптовалюты разработали механизмы консенсуса, которые регулируют проблемы в децентрализованной системе:

1. Противоречивая информация – один майнер говорит одно, а второй – другое.

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

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

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

1. Доказательство значимости (Proof of Importance).

2. Доказательство доли владения (Proof of Stake).

3. Доказательство выполнения работы (Proof of Work).

1. ДОКАЗАТЕЛЬСТВО ЗНАЧИМОСТИ

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

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

2. ДОКАЗАТЕЛЬСТВО ДОЛИ ВЛАДЕНИЯ

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

• Механизм понимания вашего права формирования блока в системе предельно прост: сумма денег, которую вы ставите (доказательство ваших денег, заблокированных в специальном контракте на определенный период времени), делится на общую сумму, установленную сообществом. Таким образом, существует вероятность того, что, хотя у кого-то может быть много денег, у них все еще может не быть права голоса, потому что они тратят деньги на регулярной основе и не ставят их в качестве доказательства своей собственности. Математика понятна и проста. Если вы, например, владеете 1000 монет, а в общей сложности есть 100 000 монет, то у вас есть 1 % голосов, и, как ожидается, вы получите 1 % голосов и 1 % вознаграждений.

• Так как вознаграждения в системе транзакций находятся в общем доступе, то тот, кто владеет бо́льшим количеством денег, получит больший процент вознаграждений. Таким образом, вы можете рассчитать точную прибыль от своих денег на ежегодной основе, что может быть интересной инвестиционной возможностью. Например, вы знаете, что блокчейн может вознаградить вас 5 % от вашего фиксированного капитала в год. Вы владеете тысячей монет и ежегодно получаете 50 монет за участие в алгоритме консенсуса. В зависимости от стоимости монет, вознаграждение может быть большим.

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

Конечно, есть и недостатки. Кроме богатых, становящихся еще богаче, – существует риск атаки фор-ка. Мы обсудим это чуть позже, но сейчас я кратко это опишу: в случае алгоритма «Доказательство доли владения», если в блокчейне появляется форк (разветвление), то вы автоматически управляете монетами на обеих новых ветвях. Вы только удвоили свои монеты, на которых вы можете продолжать формировать блоки. Разработчики все еще ищут варианты решения этой проблемы. Это отличается от алгоритма «Доказательство выполнения работ», так как здесь вы должны принять решение о том, в какую цепочку вы вкладываете свою работу.

3. ДОКАЗАТЕЛЬСТВО ВЫПОЛНЕНИЯ РАБОТЫ

Последний, третий алгоритм консенсуса – наиболее часто и давно используемый. Большинство крупных криптовалют используют его, потому что в последние годы он был широко протестирован и наиболее устойчив к вышеупомянутым атакам форков. Вместо того чтобы доказывать значимость или долю владения, вам нужно доказать, что вы проделали работу. Тот, кто первым выполнит эту работу, первым выбирает статус транзакции, а также получает награду за майнинг. Эта награда состоит из всех транзакционных сборов за добычу блока и, в зависимости от криптовалюты, из дополнительного стимула. Например, награда в системе Биткоин составляет 12,5 биткоина за блок. Давайте углубимся в эту концепцию, потому что она также объясняет много других важных идей одновременно. Мы могли бы сделать это на любом другом примере, но Биткоин – старейший и наиболее проверенный блокчейн, поэтому имеет смысл исследовать «Мать Всех Криптовалют».

Внимание! Это не конец книги.

Если начало книги вам понравилось, то полную версию можно приобрести у нашего партнёра - распространителя легального контента. Поддержите автора!

Страницы книги >> Предыдущая | 1 2 3
  • 0 Оценок: 0

Правообладателям!

Данное произведение размещено по согласованию с ООО "ЛитРес" (20% исходного текста). Если размещение книги нарушает чьи-либо права, то сообщите об этом.

Читателям!

Оплатили, но не знаете что делать дальше?


Популярные книги за неделю


Рекомендации