Перевод Как работают криптовалюты?

Тема в разделе "Статьи", создана пользователем TheFuzzStone, 30 янв 2020.

  1. TheFuzzStone

    Команда форума Администратор Модератор

    Регистрация:
    18 авг 2017
    Сообщения:
    259
    Симпатии:
    69
    Децентрализованный консенсус

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

    Бухгалтерская книга

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

    1.JPG

    Когда Хитрый Стив хочет отправить 500 шведских крон Честному Гарри, банк просто обновляет бухгалтерскую книгу:

    2.JPG

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

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

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

    Например, Хитрый Стив хочет купить компьютер у Честного Гарри и хочет заплатить с помощью Bitcoin. Компьютер стоит 1 BTC, а бухгалтерская книга Bitcoin выглядит вот так:

    3.JPG

    Что Хитрый Стив пытается сделать, так это отправить 1 BTC продавцу (Честному Гарри), а затем отправить копию 1 BTC на свой другой адрес - Хитрый Стив 2. Можно иметь столько адресов, сколько вам нужно - следствие отсутствия разрешения у Bitcoin.

    4.png
    Хитрый Стив посылает цифровую монету и Честному Гарри, и самому себе.

    Если бы мы не предотвратили это, бухгалтерская книга могла бы выглядеть так:

    5.JPG

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

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

    Проблема Византийских генералов

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

    Это та же проблема, что и проблема византийских генералов. Вот мое описание простого варианта:

    В Восточной Римской империи, также называемой Византийской империей, пара генералов окружают вражеский город:

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

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

    Если они попытаются действовать без большинства, они наверняка потерпят поражение, они должны координировать свои действия.

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

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

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

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

    8.png
    Это то, что видит Честный Гарри. Многоликую группу честных людей.

    9.png
    Но на самом деле они все контролируются Хитрым Стивом.

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

    Основная идея заключается в том, что если вы хотите выбрать, какая транзакция является действительной, вы должны выполнить некоторую работу. Этот процесс известен как доказательство работы (proof-of-work, сокращено до POW).
    Работа заключается в том, чтобы найти решение вычислительной задачи. Задача сама по себе не так важна и не имеет никакого значения за пределами самого майнинга. Есть несколько важных свойств, которыми она должна обладать:
    • Быть достаточно трудной
    В Bitcoin одно решение задачи ожидается каждые 10 минут. Сложность постоянно регулируется, чтобы позволить майнерам присоединяться и уходить.

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

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

    Это похоже на то, что вы с такой же вероятностью (или нет) получите Флеш Рояль на первой руке, как на 1000-й. Что бы у вас не было на других 999 руках, это не имеет значения.
    Криптографические хеш-функции являются отличным выбором, например, в Bitcoin используется SHA-256. Для получения более подробной информации о проблеме вычислений в Bitcoin я рекомендую этот пост, в котором показано, как майнить Bitcoin с помощью ручки и бумаги.

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

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

    Блокчейн

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

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

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

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

    Форки

    Но что будет, если два майнера найдут блок на одной высоте? Например, один, где Хитрый Стив посылает деньги Честному Гарри, а другой, где Хитрый Стив посылает деньги самому себе?

    12.png
    Два блока на одной высоте с разными транзакциями.

    Цепь разделится и появится форк. Каждый майнер самостоятельно выберет, на которой он продолжит работать, и в конце концов одна из них станет длиннее:
    13.png
    Здесь две цепи после форка, одна высотой в два, а другая высотой в четыре блока.

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

    В данном примере Честный Гарри должен подождать, пока не узнает, какая цепь длиннее, а затем решать дальше.

    Возвратные транзакции

    Если Хитрый Стив не может обмануть Честного Гарри, показав ему фальшивую транзакцию, он может попытаться отменить свой платеж после получения товара от Честного Гарри.
    Вот как это работает:

    1. Отправьте транзакцию Честному Гарри, которая подтверждена в блокчейне.
    2. Создать более длинную скрытую цепь, в которой Хитрый Стив хранит деньги.
    3. После получения товара Хитрый Стив публикует вторую цепь.

    Потому что люди автоматически следуют за более длинной цепочкой, это успешно возвращает транзакцию Честному Гарри, и Хитрый Стив успешно совершает мошенничество.

    14.png
    Хитрый Стив платит Честному Гарри, и они ждут, пока сделка не получит два подтверждения.

    15.png
    Довольный Честный Гарри отдает Хитрому Стиву новые красивые джинсы.

    16.png
    Хитрый Стив уходит с джинсами, тайно работая над собственной цепью.

    17.png
    После того как Хитрый Стив ушел, он публикует свою скрытую цепь с длиной в четыре блока, которая не содержит его платежа Честному Гарри. Так как новая цепь длиннее, старая цепь будет отброшена, и платеж Честному Гарри тоже исчезнет. Будет казаться, что выплаты никогда не было.
    Это другой тип двойной траты, и это первичный вектор атаки, о котором говорится в whitepaper. Это называется атакой 51%, причины которой мы скоро объясним.

    Безопасность транзакций

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

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

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

    Whitepaper Bitcoin содержит более подробную информацию и рекомендует 6 подтверждений, примерно через час можно быть уверенным, что вы не будете обмануты. Сегодня для большинства обычных платежей достаточно одного подтверждения.
    Есть исследования о том, как сделать 0-conf транзакции более безопасными. Одно из наиболее интересных предложений - 0-conf фанты, когда вы предоставляете более крупную сумму в качестве залога, и если вы пытаетесь провести двойную трату, то теряете залог.

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

    На самом деле мы можем потратить в 100 раз больше энергии на добычу и обработать то же количество транзакций, или мы можем потратить 1% энергии и обработать больше транзакций. Пропускная способность транзакций - это отдельная проблема.
    50-процентное обеспечение безопасности

    Вся система полагается на то, что большинство майнеров честны - это основная концепция безопасности, стоящая за доказательством работы (proof-of-work).

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

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

    Bitcoin Gold был успешно подвергнут атаке 51%, а на биржах были проведены двойные траты. Атакующему удалось изменить транзакции на глубину в 22 блока.

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

    Насколько безопасен Bitcoin на самом деле? Что нам нужно сделать для проведения атаки 51%?

    Вот быстрая математика на коленке, чтобы оценить стоимость атаки 51%:

    Количество S9i, чтобы охватить всю сеть: 3,148,499

    Общая стоимость майнинговой сети: $1,259,399,600

    Итак, около 650 миллионов долларов только на самые майнинговые устройства (если предположить, что вы сможете столько купить). Кроме того, для более чем миллиона майнинговых устройств нам нужны электроснабжение, охлаждение, хранение и техническое обслуживание. Мы ищем огромный склад или даже несколько. Достаточно сказать, что это очень большие инвестиции, но, возможно, и не неоправданно большие.

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

    Атака 51% может быть обнаружена, и могут быть серьезные негативные последствия:
    • Цена Bitcoin может рухнуть.
    • Биржи могут внести украденные средства в черный список.
    • Сообщество может изменить POW и сделать все майнинг устройства бесполезными.
    • Сложно держать в секрете склады, набитые майнинговым оборудованием такого масштаба, есть огромный риск быть пойманным.
    Майнеры Bitcoin вознаграждаются в виде Bitcoin, и они не могут их потратить до тех пор, пока не пройдут 100 блоков, что в общей сложности составляет 16 часов. Выполнение атаки 51%, которая обрушит цену, напрямую скажется на вознаграждении. Если сообщество решит использовать альтернативный вариант и поменять POW, то огромные начальные вложения в майнинговое оборудование могут быть потеряны.

    Эти риски должны быть взвешены с тем, какую прибыль может принести атака 51%. Может быть, биржи получится обмануты на $50 млн (примерно 5% возврат инвестиций)? Майнер, владеющий 51% мощности, заработает эти деньги примерно за две недели без риска.
    Экономические стимулы настолько сильны, что даже майнеру, владеющему 51% мощностей, возможно, разумно было бы быть честным с коммерческой точки зрения. На самом деле у Bitcoin уже были пулы с 51% без инцидентов.

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

    Экономическая инновация

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

    Как уже отмечалось ранее, текущая награда за блок Bitcoin составляет 12,5 BTC - около $50 000. Потеря всего лишь одного вознаграждения за блок - это большие потери в майнинговом бизнесе, поэтому майнеры очень заинтересованы в том, чтобы всегда работать на самой длинной цепочке.

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

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

    Обновление сети и новые криптовалюты

    Есть еще одна ситуация, когда могут возникнуть форки: когда меняются правила консенсуса. Вот несколько примеров изменения правил консенсуса:
    • Снятие лимита в 21 миллион Bitcoin.
    • Включение в черный список или кража монет с адреса.
    • Разрешение нового типа транзакции.
    • Изменение алгоритма POW.
    • Повышение 1 МБ лимита размера блока в Bitcoin.
    Некоторые криптовалюты, например, Monero и Bitcoin Cash, регулярно обновляют свои сети, где меняются правила консенсуса.
    hard-fork - это изменение, несовместимое с предыдущими версиями, и все узлы должны быть обновлены, чтобы не оказаться в старой цепочке. Например, Bitcoin Cash это hard-fork от Bitcoin.

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

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

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

    Тогда вы можете задаться вопросом, что решает, какая цепочка будет правильной? Нет ясного ответа - социальный консенсус решает, какая из цепочек называется «Оригинальной монетой», а какая - «Новой монетой».

    Альтернативные консенсус-модели

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

    Одной из проблем является то, что держатель монеты может голосовать на всех форках, в то время как proof-of-work майнер может проголосовать только на одном из форков. Это приводит к ситуации, когда каждый имеет стимул голосовать на всех форках. Атакующий может злоупотребить этим, чтобы аннулировать транзакцию, продолжая майнинг только на своем форке, который изначально находится на блок позади, чтобы обогнать основную цепь и аннулировать свою транзакцию в основной цепи. Для этого требуется лишь небольшой процент от общего количества голосов, в отличие от proof-of-work, где нужно 50%.

    Дополнительная информация

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

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

    Заключение

    Блокчейн - это бухгалтерская книга, в которой хранятся данные обо всех балансах всех участников системы. Ключевое решение этой технологии - обход проблемы двойных трат (когда одни и те же монеты используются дважды). Криптовалюты, такие как Bitcoin, используют для решения этой проблемы доказательство работы proof-of-work, что, в свою очередь, заставляет майнеров тратить электроэнергию и конкурировать за вознаграждение. Эта конкуренция между майнерами используется для решения проблемы двойных трат и для обеспечения безопасности сети и верной цепочки блоков. При этом победитель в гонке майнеров расширяет блокчейн путем создания новых транзакций.

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

    Источник: How do cryptocurrencies work?

    Перевод:
    TheFuzzStone (@TheFuzzStone)
    Редактирование:
    Agent LvM (@LvMi4)
    Коррекция:
    Kukima (@Kukima)
     
    #1 TheFuzzStone, 30 янв 2020
    Последнее редактирование модератором: 31 янв 2020
  • О нас

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