Что за фигня?// О блокчейне..

Nov 12, 2018 13:38

Децентрализована, безопасна, быстра

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





Что такое биткоин? Детальное объяснение

Сэры @Shellbern, @Py6eHoBu4, @Oleg27, а так же 100 человек их плюсанувших в этом посте изъявили желание понять, что же такое биткоин, зачем нужны видеокарты, и почему людям он так нравится. Что ж, внимайте с: Огромная стена текста ждёт вас, надеюсь это знание поможет вам чуть лучше понять современный IT-мир. Советую читать в несколько заходов.

--

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

В 2009 году сэр Satoshi Nakamoto решил подарить человечеству прозрачность и честность информации. До сих пор не известно, один это человек или группа людей, однако мысль, которая родилась в его голове, на данный момент является, без преувеличения, одним из величайших изобретений человечества в 21 веке. И дело тут не в биткоине, а в идее, которая по настоящему реализуется только через 50-100 и изменит человечество (ну или просто несколько стран) в лучшую сторону. Он сделал это анонимно, просто запустил, показал как работает, объяснил кое-кому на пальчиках и свалил в закат. Дальше пошло поехало, людям понравилось, и они стали распространять идею, например как сейчас это делаю я.

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

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

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

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

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

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

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

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

Например, через блокчейн можно решать вопросы собственности в квартирах. Грубо говоря, если в цепочке записана информация о том, что вы владеете 1/3 квартиры, то никакая сила уже не в состоянии у вас эту долю забрать, пока вы сами не передадите другому участнику сети. И никаких судов, юристов, бюрократии. В случае чего просто своим ключом демонстрируешь всем, что ты действительно владелец этой информации, и всё. А другим ключом можно эту часть передать. Революционная штука. Привязать к паспорту и вообще все легко делается - оплата в магазинах, покупка бензина, кредитная история, история посещений, владение собственностью, контракты в бизнесе. Одна общая система для всего. Без обмана. Если шифровать данные немного по другому, то другим людям ваша информация видна не будет, но по требованию правоохранительных органов вы просто своим ключом расшифровываете свою информацию и доказываете, что были в другом месте.

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

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

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

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

Как я уже говорил, блоки в биткоине содержат транзакции, а транзакции содержат информацию о переводах монеток в сети BTC. Примерно раз в 10 минут генерируется новый блок. Бывает и за 0 секунд удаётся кому-то сгенерить, бывает и за 3-4 часа никто не может его создать. Об этом ниже.

Что бы избежать инфляции, сэр Накамото постановил(и все участники сети между собой согласились), что создание блока требует решения определенной математической задачи. Взгляните вот на этого красавчика, на строчку Hash. Красиво? Красиво. Это и есть математическая задача на данный момент - сгенерировать красивый хеш, у которого вначале будет сколько-то там нулей(чем дальше тем больше нулей, вот например первый блок, тут нулей поменьше).

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

Если повезло и вы сгенерировали красивый хеш раньше всех, то собираете все доступные вам транзакции в блок и он рассылается остальным. Эти транзакции считаются выполненными. Вам начисляют награду(на данный момент это 12.5BTC, сейчас около 40000$), все остальные говорят "красаучик чо, возьми с полки 12.5BTC", и блокчейн биткоина двигается вперед на 1 блок. Пока я писал этот текст сгенерили 10 блоков, т.е. людям уже раздали около $400 000. Однако биткоин капитализируется быстрее, и за это время в его стоимость всякие смертные уже вложили, например, $600 000. Этим обусловливается рост курса.

Если вы создаёте транзакцию в РФ, а следующий блок создали и запаковали где-то в Штатах, то есть вероятность, что сервер, которому повезло найти хеш, ещё не увидел вашей транзакции. Так бывает, минуты 2-3 нужно что бы транзакция распространилась по сети и все участники о ней узнали(и проверили её). В таком случае блок выпущен, но вашей транзакции в нём нет и вы ждёте следующего блока. Деньги с вашего адреса списаны не будут до тех пор, пока не появится блок с этой транзакцией. Т.е. все участники сети ё эту транзакцию, и только тогда перевод монеток будет официально подтвержден. И никакой банк при всём желании не сможет скомуниздить ваши кровные. Потому что решает большинство, и большинство видит что у вас действительно есть эта денежка. А хэш они ложили на то, что банку пришла бумажка "сверху" заморозить ваши счета. Деньги принадлежат адресу, и точка. Ключ от адреса есть только у вас. Значит ваши деньги ;)

Чем больше блоков создаётся, тем меньше награда. Раньше было 50BTC, каждые 210 000 блоков награда уменьшается вдвое. Если вы сгенерили хеш и запаковали блок, вы соответственно получите награду на свой адрес в виде особой транзакции + некий процент со всех транзакций, которые были вами запакованы. Типа комиссии, вроде как мотивация генерить блоки дальше.

Кажется всё. Выпейте чаю, пожмакайте котика. Спасибо, что прочитали. Я знаю, было сложно. Но вы молодец, что осилили это :) Хорошего вам вечера.

___

Из комментов

AESukhanov

Спасибо автору @Roan, очень интересно. Можно пару тройку вопросов?

1. непонятно ничего про «сеть». Ты порой пишешь - сеть отвергнет транзакцию. Сеть что-то не примет и все обязательно будет честно. А за счёт чего? Я так понимаю Сеть - не искусственный интеллект? Тогда как это работает.

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

3. что значит должно быть одобрено большинством? Какое большинство? От какого числа? Кто входит в число людей, кто составляет большинство - это совет джедаев биткоина?)))

4. откуда возникает ценность? Если кто-то майнит биткоины, то есть старается вывести хэш, по по-хорошему он ничего не создаёт. Услуги не оказываются, золото не добывается, волосы не стригутся, корова не доится… и т.д. нет ценности, но при этом ему дают 12.5 биткоинов что составляет Н долларов. Вопрос с точки зрения классической экономики - где приращение? За что мы платим ему?

5. если биткоины даются только тому кто выявил норм хэш, то что остальные майнеры лапу сосут? Это значит, что неудачный инвестор может купить 200 видюх и за 20 лет ничего не выиграть? Или в рассуждении ошибка?

6. почему нельзя было создать систему, в которой блоки в блокчейне создаются автоматически - без участия майнеров. Соответственно через каждый Н минут появляется новый блок и никто не это не влияет. А эмиссию биткоинов обусловить какими-то фактами (время, количество транзакций и их объем и пр.). в общем непонятно зачем вообще нужны майнеры…

Roan

Добрый вечер!

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

2. Это обязанность всех участников, да. Ты уведомляешь нескольких, что делаешь транзакцию, он уведомляет всех кого может. Все, кто получили твой запрос(и если они его принимают), потом закинут его в блок, а блок получат уже 100% все участники. Когда твоя транзакция обработается до финальной стадии, о ней уже узнает весь мир. Если ты попытаешься сделать обманную транзакцию, мир просто о ней не узнает, т.е. она будет отвергнута и не другим участникам сети не будет показана.

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

4. Вопрос в доверии пользователей. Пока я готов покупать BTC по 2k$, он будет продаваться по 2k$. Криптовалюта не подкреплена никакими централизованными обещаниями или услугами, она подкреплена общим доверием всех пользователей. Всех, кто готов покупать чашку чая за 0.00001BTC, и всех кто готов продать чашку чая за 0.00001BTC.

5. Да, в целом суждение правильное, но есть такая штука как пул. Пул(с англ. бассейн) это на простом языке, место где собираются все майнеры, и майнят совместно. 3 майнера, 10 майнеров, 40000 майнеров. А потом между собой делят награду. Так получается эффективнее.

6. Как только найду создателя, обязательно спрошу у него, что за фигня

отсюда  https://pikabu.ru/story/chto_takoe_bitkoin_detalnoe_obyasnenie_5137984

блокчейн, биткоин, Сатоши Накамото, цифровой мир, технологии

Previous post Next post
Up