Добрый день, друзья!
Появляется очень много новостей, статей и различной информации по blockchain'у и различным криптовалютам, но мы сегодня сделаем небольшую ретроспективу и посмотрим, с чего все начиналось. 😉
Это мой первый пост, так что буду благодарен за критику, рекомендации и комментарии. Подписывайтесь, чтобы не пропустить интересный материал, этим вы меня очень поддержите! Решил это сделать в поддержку данного проекта, также внести лепту в развитие всего blockchain комьюнити, найти единомышленников и структурировать информацию.
На этом завершу свое интро и перейдем к сути. Приятного прочтения!🙃
В статье Bitcoin's academic pedigree(1) описан тот фундамент, на котором основан bitcoin. Многие люди, особенно те, кто не изучает фундаментальные вещи ошибочно считают, что биткоин принес всего себя в мир, который до этого ни о чем не подозревал о таких возможностях и разразился как гром среди ясного неба. Правда состоит в том, что создатель биткоина, конечно же является человеком просвященным и осведомлен о криптографических примитивах и гений его состоит не в том, что он изобрел эти подходы, а в том, что он сумел соединить воедино эти примитивы, очень нетривиальным образом так, что система заработала сама по себе и стала самоподдерживающеюся. Это не умаляет достижения Nakamoto, а лишь указывает на то, что он стоял на плечах гигантов, когда проектировал bitcoin.
Рис. 1. Происхождение bitcoin'а в контексте академического исследования
Начало данного пути лежит в 1980-х годах. Начнем с простой части: выбор структуры данных.
Идея №1 Linked timestamping
Cтруктура данных заимствована с минимальными изменениями из серии статей Stuart'a Haber'a, Scott'a Stornetta и Dave'a Bayer'a, написанных между 1990 и 1997 годами. (2,6,7) Сам Nakamoto говорит это в white paper'е в bitcoin'a(10).
Работа Haber'a и Stornetta рассматривала проблему timestamping'а (временного штампа) документов - они стремились создать «цифровую нотариальную» услугу. Для патентов, деловых контрактов и других документов, для которых нужно установить, что документ был создан в определенный момент времени, а не позже.
В версии Haber'a и Stornetta постоянно создаются и распространяются документы. Создатель каждого документа устанавливает время создания и подписывает его с меткой времени и меткой ранее опубликованного документа. Этот предыдущий документ был подписан самим владельцем, поэтому документы образуют длинную цепочку с указателями назад во времени.
Рис.2. Структура данных регистра в linked timestamp
Внешний пользователь не может изменить сообщение с отметкой времени, так как оно подписано создателем, и создатель не может изменить сообщение, не изменяя всю цепочку сообщений, которые следует за ней.
Таким образом, если вам предоставляется один элемент в цепочке доверенным источником (например, другим пользователем или специализированной службой временной привязки), вся цепочка до этой точки заблокирована, неизменна и временно упорядочена.
Идея №2 Merkle trees
Ссылки между документами могут быть созданы с использованием хешей, а не подписи; хэши проще и быстрее вычислять. Такие ссылки называются хэш-указателями.
Вместо поточного документирования отдельных документов, которые могут быть неэффективными (если многие документы создаются примерно в одно и то же время), их можно сгруппировать в пакеты или блоки, причем документы в каждом блоке имеют по существу одну и ту же метку времени.
Также, в каждом блоке документы могут быть связаны вместе с бинарным деревом указателей хэшей, называемым деревом Merkle, а не линейной цепочкой.
Рис.3. Merkle root, опубликованный в газете
По крайней мере, две компании - Surety, начиная с середины 1990-х годов и Guardtime, начиная с 2007 года, предлагают услуги по timestamping'у. Интересным поводом для обоих этих сервисов является идея, публикования корня дерева Merkle'а в газете. На рисунке 3 показан корень Merkle, опубликованный Guardtime.
Идея №3 Proof of work
У вас есть какие-то данные, вы вычисляете от них хеш и если хеш-функция является криптографической (в том смысле, что ее нельзя предсказать, найти коллизии, кроме как перебором), тогда, вероятность того, что в двоичном виде первый символ будет равен нулю, равна 1 к 2 (т.к. есть два варианта 0 и 1). То, что 2 символа равны нулю, равна 1 к 4 и т.д. И требуется модифицировать данные так, чтобы новых хэш этих данных начинался с определенного количества нулей. Для этого может понадобиться произвести перебор объемом в 2 в степени n, чтобы получить такой хэш. Этот принцип и получил название Proof of Work, т.к. для генерации хэша специального вида нужно произвести определенную работу.
Рис.4. Типичный спам
Такой подход был придуман еще в начале 1990-х в качестве меры против спама. Для отправки e-mail нужно было произвести какую-то работу по поиску подходящего хеша, который будет зависеть от контента письма, что занимало какой-то промежуток времени. И такой подход требовал от спамеров повышенных вычислительных ресурсов, либо продолжительного времени.
В дальнейшем, борьба со спамом пошла по другому пути. ;)
Идея №4 Byzantine fault tolerance
В распределенном реестре неизбежно будут возникать fork'и, а это означает, что некоторые узлы будут думать, что блок A является последним блоком, тогда как другие узлы будут считать, что это блок B. Это может быть из-за того, что противник пытается нарушить работу реестра или просто из-за скорости сети, в результате чего блоки иногда генерируются почти одновременно разными узлами, не знакомыми с блоками друг друга.
Рис. 5. Задача византийских генералов
Ранние решения, в том числе Paxos(12), предложенное Leslie Lamport в 1989 году(8,9), рассматривают репликацию государства, когда каналы связи ненадежны и когда меньшинство узлов может проявлять определенные «реалистичные» ошибки, такие как выход в автономный режим навсегда или перезагрузка и отправка устаревших сообщений.
Идея №5 Public keys as identities
На самом деле, David Chaum также внес существенный вклад в анонимные сети, и именно в этом контексте он придумал эту идею. В своей статье 1981 года «Untraceable Electronic Mail, Return Addresses, and Digital Pseudonyms»(3) он заявляет: "Цифровой псевдоним" - это открытый ключ, используемый для проверки подписей, сделанный анонимным держателем соответствующего закрытого ключа.
Рис.6. David Chaum
Chaum еще больше развил эти идеи в статье 1985 года (4), в которой он представляет видение электронной коммерции, защищающей конфиденциальность, основанной на повсеместных псевдонимах.
Идея №6 Digital Cash
Более согласованные подходы к решению головоломок в виде наличных денег можно найти в двух эссе, которые предшествовали bitcoin'у, описывая идеи, называемые b-money(5) и bit gold(11) соответственно. Эти предложения предлагают timestamping сервисы, которые подписываются на создание (посредством доказательства работы) денег, и как только деньги создаются, они подписываются на переводы. Однако, если между серверами или узлами существует несогласие с журналом, нет четкого способа его устранения.
Рис. 6 Digital cach
Учитывая факты, которые мы сейчас разобрали, можно прийти к заключению, что bitcoin - революционный продукт, но революция состоит в том, как именно множество компонентов были собраны в единый самоподдерживающийся механизм, а не в изобретении отдельных подходов.
Satoshi Nakamoto создал восхитительный продукт, который завоевал особое внимание у миллионов людей. И давайте внесем свою лепту в этот захватывающий проект и весь мир blockchain в целом!
Если вы дочитали до этого места, я особенно Вам благодарен!😍 Это был мой первый пост и я надеюсь, он оказался полезен. Ниже Вы можете найти источники и контактную информацию для тех, кто хочет что-то обсудить или просто улучшать networking ;). Для советов\замечаний\пожеланий, прошу в комментарии. Подписывайтесь, чтобы не пропустить интересный материал и быть в курсе событий, этим вы меня очень поддержите!
Спасибо!
References
1. Откуда вышёл биткойн: статья Bitcoin's academic pedigree https://queue.acm.org/detail.cfm?id=3136559
2. Bayer, D., Haber, S., Stornetta, W. S. Improving the efficiency and reliability of digital time-stamping. Proceedings of Sequences 1991; https://link.springer.com/chapter/10.1007/978-1-4613-9323-8_24.
3. Chaum, D. 1981. Untraceable electronic mail, return addresses, and digital pseudonyms. Communications of the ACM 24(2): 84-90; https://dl.acm.org/citation.cfm?id=358563.
4. Chaum, D. 1985. Security without identification: transaction systems to make Big Brother obsolete. Communications of the ACM 28(10): 1030-1044; https://dl.acm.org/citation.cfm?id=4373.
5. Dai, W. 1998; http://www.weidai.com/bmoney.txt.
6. Haber, S., Stornetta, W. S. 1991. How to timestamp a digital document. Journal of Cryptology 3(2): 99-111; https://link.springer.com/chapter/10.1007/3-540-38424-3_32.
7. Haber, S., Stornetta, W. S. 1997. Secure names for bit-strings. In Proceedings of the 4th ACM Conference on Computer and Communications Security: 28-35; http://dl.acm.org/citation.cfm?id=266430.
8. Lamport, L. 1989. The part-time parliament. Digital Equipment Corporation; https://computerarchive.org/files/mirror/www.bitsavers.org/pdf/dec/tech_reports/SRC-RR-49.pdf.
9. Lamport, L. 2001. Paxos made simple; http://lamport.azurewebsites.net/pubs/paxos-simple.pdf.
10. Nakamoto, S. 2008. Bitcoin: a peer-to-peer electronic cash system; https://bitcoin.org/bitcoin.pdf.
11. Szabo, N. 2008. Bit gold. Unenumerated; https://unenumerated.blogspot.com/2005/12/bit-gold.html.
12. Алгоритп Paxos; https://en.wikipedia.org/wiki/Paxos_(computer_science)
Контакты:
⦁ Telegram: https://t.me/Raumo0
Круто, спасибо за исследование. было очень интересно почитать)
Спасибо, очень приятно! Подписывайтесь, будет еще материал.
ничего себе исследование! вы столько материала переработали! очень интересно, я дочитала до конца, несмотря на то что текст изобилует специфическими терминами. спасибо вам.
Спасибо, очень приятно слышать! Буду продолжать)
конечно. желаю удачи вам! ))
@raumo0, Поздравляю!
Ваш пост был упомянут в моем хит-параде в следующих категориях:
@raumo0, поздравляю! Вы добились некоторого прогресса на Голосе и были награждены следующими новыми бейджами:
Вы получили свою первую выплату
Вы можете нажать на любой бейдж, чтобы увидеть свою страницу на Доске Почета.
Чтобы увидеть больше информации о Доске Почета, нажмите здесь
Если вы больше не хотите получать уведомления, ответьте на этот комментарий словом
стоп
@raumo0, поздравляю! Вы добились некоторого прогресса на Голосе и были награждены следующими новыми бейджами:
Награда за Количество комментариев
Вы можете нажать на любой бейдж, чтобы увидеть свою страницу на Доске Почета.
Чтобы увидеть больше информации о Доске Почета, нажмите здесь
Если вы больше не хотите получать уведомления, ответьте на этот комментарий словом
стоп
Ваш пост поддержали следующие Инвесторы Сообщества "Добрый кит":
vika-teplo, process, kito-boy, alexey77, brainmechanic, privet
Поэтому я тоже проголосовал за него!
Узнать подробности о сообществе можно тут:
Разрешите представиться - Кит Добрый
Правила
Инструкция по внесению Инвестиционного взноса
Вы тоже можете стать Инвестором и поддержать проект!!!
Если Вы хотите отказаться от поддержки Доброго Кита, то ответьте на этот комментарий командой "!нехочу"
dobryj.kit теперь стал Делегатом! Ваш голос важен для всего сообщества!!!
Поддержите нас:
@raumo0, поздравляю! Вы добились некоторого прогресса на Голосе и были награждены следующими новыми бейджами:
Вы получили первый ответ
Вы можете нажать на любой бейдж, чтобы увидеть свою страницу на Доске Почета.
Чтобы увидеть больше информации о Доске Почета, нажмите здесь
Если вы больше не хотите получать уведомления, ответьте на этот комментарий словом
стоп
@raumo0, поздравляю! Вы добились некоторого прогресса на Голосе и были награждены следующими новыми бейджами:
Награда за количество голосов
Вы можете нажать на любой бейдж, чтобы увидеть свою страницу на Доске Почета.
Чтобы увидеть больше информации о Доске Почета, нажмите здесь
Если вы больше не хотите получать уведомления, ответьте на этот комментарий словом
стоп
@raumo0, поздравляю! Вы добились некоторого прогресса на Голосе и были награждены следующими новыми бейджами:
Награда за количество полученных голосов
Вы можете нажать на любой бейдж, чтобы увидеть свою страницу на Доске Почета.
Чтобы увидеть больше информации о Доске Почета, нажмите здесь
Если вы больше не хотите получать уведомления, ответьте на этот комментарий словом
стоп
@raumo0, поздравляю! Вы добились некоторого прогресса на Голосе и были награждены следующими новыми бейджами:
Награда за количество полученных голосов
Вы можете нажать на любой бейдж, чтобы увидеть свою страницу на Доске Почета.
Чтобы увидеть больше информации о Доске Почета, нажмите здесь
Если вы больше не хотите получать уведомления, ответьте на этот комментарий словом
стоп
Приветствую Вас и желаю успехов на платформе Голос!
В этой статье вы сможете найти ответы на большинство вопросов, возникающих у новичков. Также большую подборку ссылок на полезные материалы вы можете найти по этой ссылке
Оперативно получить помощь, вы можете присоединившись к нашему сообществу в Телеграм
Буду признателен, если расскажете, откуда Вы узнали о платформе Голос (ответьте цифрой):
Чтобы быстрей освоится, присоединяйтесь к мотивирующему промоушену для новичков, действующего месяц с момента регистрации!
И обязательно добавьте себе в Telegram Бота-инструктора, который позволит вам пошагово освоится на платформе Голос.
@raumo0, поздравляю! Вы добились некоторого прогресса на Голосе и были награждены следующими новыми бейджами:
Вы написали свой первый комментарий
Вы опубликовали свой первый пост
Вы впервые проголосовали
Вы получили первый голос за ваши посты
Награда за количество полученных голосов
Вы можете нажать на любой бейдж, чтобы увидеть свою страницу на Доске Почета.
Чтобы увидеть больше информации о Доске Почета, нажмите здесь
Если вы больше не хотите получать уведомления, ответьте на этот комментарий словом
стоп