Криптовалюта: по делу и без излишеств. Часть 1

Если вы мало знаете о криптовалюте и о криптографии в целом, то эта статья для вас. Осторожно, длинный текст.


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


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


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


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


Леджер (гроссбух) и цифровые подписи

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


Итак, знакомьтесь, первая крупица криптографии - электронная подпись. Должник должен ставить свою подпись на каждую строку со своим именем, но как сделать чтобы её было невозможно подделать, тем более когда дело ведется электронно? Криптография легко справляется с проблемой подделок: у каждого участника есть публичный ключ (public key, сокращенно pk) и личный (private key или secret key, sk). И первый, и второй ключи - просто строка из нескольких битов (чаще всего 256 битов). Заметьте, что для каждого sk существует только и только один pk, ассоциированный с ним.

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

Подписать(Сообщение, sk) = подпись.

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

Проверить(Сообщение, подпись, pk) = true / false

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


Возвратимся обратно к примеру компании знакомых в кафе: теперь Катя не сможет написать, что Маша должна ей, например 1.000 рублей, увидев подпись Маши на транзакции на 200 рублей в её пользу. Однако Катя может написать в общую тетрадь много раз, что Маша должна ей 200 рублей. Обойти эту лазейку легко: каждая транзакция будет иметь уникальный ID номер, ассоциированный с ней. Таким образом, функция Подписать будет выдавать разные подписи для каждой транзакции, даже если сообщения одинаковые.


Итак, с помощью электронных подписей мы убрали нужду верить каждому на слово, но у нашей маленькой системы есть один большой минус: что, если, например, Андрей будет должен 1.000 рублей к концу месяца и откажется появиться на сборке, чтобы оплатить долги? Здесь мы начинаем понемногу приближаться к пониманию природы Биткойну. Зачем нам нужно собираться в конце месяца, если можно сделать так, чтобы никто не смог бы тратить больше, чем он может позволить себе? Каждый из нас может вложить, например, 1.000 рублей в самом начале и если в книге будет записано, что Андрей уже задолжал 1.000 рублей, то следующая его транзакция будет недействительна, как если бы он её не подписывал. При таком раскладе, в книге для каждого участника должен вестись учет баланса. Теперь самое интересное в этой части: подумайте, при такой системе участники могут совсем не нуждаться в рублях, как валюте для обмена финансов. У каждого человека есть баланс, который может быть пополнен и израсходован. Люди теперь могут обмениваться не рублями, а долгами на бумаге. Давайте для простоты назовем это "леджер рублями" или сокращенно ЛР. Участник может, конечно, обменять настоящие рубли на ЛР: Андрей дает Маше 100 рублей, а она записывает в тетрадке со своей подписью, что должна ему 100 рублей (100 ЛР). Однако никто не гарантирует что 1 рубль = 1 ЛР - это теперь совершенно независимые единицы, также как рубль и доллар. Поэтому нам нужно осознать, что по определению ЛР - это история транзакций, как и Биткойн, как валюта - это, по сути дела, история транзакций.  Конечно, Биткойн не покупается изначально за рубли, как это обстоит с нашим ЛР и в отличие от нашей валюты, Биткойн децентрализован: для ЛР нужна тетрадка, которую кто-то будет хранить при себе, читай централизованная система.


Об этом и многом другом в следующем (надеюсь) выпуске. Впереди все самое интересное.


P.S.
Прощу прощения, что не смог написать все в одном посту. Я не писатель, поэтому у меня уходит много времени на это дело, но мы уже дошли примерно до половины разъяснения. К тому же, я не знаю актуально ли это для публики Пикабу теперь, когда волна новостей про криптовалюты давно прошла.
1
Автор поста оценил этот комментарий

https://www.youtube.com/watch?v=bBC-nXj3Ng4

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Спасибо, забыл написать, пожалуй, единственный источник информации для статьи: на часах уже четыре ночи; потому у меня нет этого дурацкого тэга "мое". Ловите от меня плюс.

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества