Где хранятся данные блокчейн транзакций
Перейти к содержимому

Где хранятся данные блокчейн транзакций

  • автор:

Как работает блокчейн

Как работает блокчейн Фото 1

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

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

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

Как работает блокчейн?

В основе технологии лежат 2 ключевые особенности:

  1. Существующие в цепочке записи не могут быть изменены. В обычной базе данных практически любое поле при необходимости подлежит изменению, как, например, меняется имя владельца собственности в реестре.
  2. Данные хранятся и обрабатываются децентрализовано. Если в банке существует условный сервер с БД, куда группа сотрудников заносит информацию о клиентах, блокчейн не только не имеет центрального сервера, но и единого «управляющего» – лица или компании, которая бы вносила изменения.

Непосредственно работа блокчейна организована следующим образом:

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

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

Как защищаются данные?

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

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

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

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

Рассмотрим пару примеров:

  • В доме одного из майнеров отключается интернет, соответственно, копия блокчейна на его компьютере мгновенно теряет актуальность, так как за период его отсутствия в сети в цепочке могут появиться тысячи новых транзакций и сотни блоков. При этом при возвращении в онлайн система автоматически сравнит актуальность копии, хранящейся на данном компьютере, и скопирует актуальную версию базы данных, чтобы он мог продолжать участвовать в майнинге. За счет того, что в сеть входят тысячи отдельных компьютеров, отключение отдельной машины и даже десятка и сотни майнеров не будет иметь никаких последствий для работы всей системы. Собственно, благодаря такому подходу, блокчейн, использующийся для работы биткоина, не переставал функционировать с самого момента запуска.
  • Хакер взламывает копию блокчейна на своем ПК и изменяет сумму, поступающую на его кошелек, увеличивая ее в несколько раз. При подключении к сети эти данные будут проверены и сравнены с несколькими другими копиями. Чтобы они были признаны верными, аналогичная сумма должна быть указана в большей части всех копий блокчейна, хранящихся в сети. Соответственно, изменения всего в одной из них будут расцениваться как повреждение копии, ошибка, и будут автоматически устранены; сумма на счет злоумышленника перечислена не будет.

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

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

Часть 1. Где хранить данные децентрализованным приложениям на блокчейне?

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

А что же это такое блокчейн?

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

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

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

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

Подобная проблема выяснения истины в условиях, когда твои собеседники могут бессовестно врать, была названа Лесли Лампортом «Проблемой византийских генералов», а решена двумя годами ранее в 1980 году им же совместно с другими авторами. Было показано, что при n шпионах, которые могут врать и искажать информацию, консенсус между участниками может быть достигнут при общем количестве участников 3n+1. А если гарантировать, что шпионы не могут искажать переданную через них сообщения, то достаточно и 2n+1. В блокчейне за счет электронной подписи зловредные узлы не могут искажать информацию, поэтому если в блокчейне менее половины зловредных узлов, то сеть устойчива.

Устойчивость сети к зловредным узлам называется устойчивостью к византийской проблеме (Byzantine Fault Tolerance, BFT). BFT очень важна для публичных сетевых систем, в которые могут свободно добавляться произвольные узлы. Именно такими системами является большинство проектов на блокчейне.

Применение блокчейна не ограничивается созданием криптовалют. Внутрь блока можно записывать что угодно. В биткоине туда записывается список новых транзакций, и применяется это для обмена криптовалютой между её владельцами. В NameCoin в блоках хранятся произвольные пары ключ-значение, что можно применить для создания децентрализованных DNS. В других реализациях блокчейна используются ещё какие-нибудь фишки. А вот Ethereum пошел значительно дальше. Он позволяет хранить в блокчейне не только транзакции, но и полноценные Тьюринг-полные программы, называемые смарт-контрактами, которые позволяют очень тонко настроить блокчейн на прикладную задачу. Например, NameCoin реализуется на Ethereum 5 строками кода.

Ethereum задумывался как универсальная платформа для создания децентрализованных проектов на основе блокчейна. Зачем реализовывать весь блокчейн заново, разворачивать собственную инфраструктуру, если можно парой-тройкой смарт контрактов реализовать то, что тебе нужно, на Ethereum, как, например, аналог NameCoin? Поэтому последнее время Ethereum переживает бурный рост. С марта 2017 ETH (криптовалюта Ethereum) всего за два месяца выросла в цене в 5 раз, и рост продолжается. На Ethereum работают уже сотни приложений, например, социальная сеть AKASHA, биржа фрилансеров Ethlance, игра в слова, да много их!

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

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

Неизменяемость. Неизменяемость — это, конечно, хорошо. Именно неизменяемость даёт блокчейну публичность и BFT. Однако есть и обратная сторона медали. Все данные, которые приложения пишут в блокчейн, остаются там навсегда. Поиграли в слова — блокчейн это запомнил. Разместили информацию в социальной сети — она навсегда сохранена в блокчейне, даже если вы потом удалили свой профиль. Взрывной рост числа приложений на блокчейне приводит к сильному раздуванию цепи блоков в размере. Уже сейчас размер полного блокчейна Ethereum перевалил за 130Гб, хотя он работает меньше 2 лет. У биткоина меньше при его солидном возрасте более 7 лет.

Конечно, в некоторые реализации Ethereum включают технологию State Tree Pruning, которая позволяет хранить только последнее состояние блокчейна, с ограниченной историей примерно на сутки, что на текущий момент позволяет сократить хранимую информацию в 20 раз. Например, go-ethereum full node требует для хранения блокчейна 130 Гб, а Parity с поддержкой данной технологии — всего 6 Гб. Однако, учитывая, что рост числа приложений только начинается, а каждому узлу Ethereum приходится хранить все данные всех приложений, это выглядит хоть и необходимой, но всего лишь отсрочкой проблемы. С ростом размера блокчейна он перестанет помещаться на массово выпускаемые жесткие диски, его обслуживание станет по карману лишь большим организациям, что ведет к опасной централизации — сосредоточению контроля над более чем 50% сети у одной организации. Это может нарушить BFT.

Медленность транзакций. За свою устройчивость блокчейны расплачиваются скоростью транзакций. У биткоина 7 транзакций в секунду, у Ethereum — 15. И это на всю сеть, потому что каждый узел полностью реплицирует другие узлы. Добавление нового узла повышает устойчивость системы, но никоим образом не увеличивает скорость её работы или максимальный объём хранения данных. То есть, изменение данных (а каждое изменение данных в блокчейне — это транзакция) является бутылочным горлышком. Популярные приложения сразу же натолкнутся на это ограничение.

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

Таким образом, при разработке приложений на блокчейнах, например, для Ethereum, проблема хранения данных стоит очень остро. Сейчас нет удовлетворительных способов её решения.

Но ведь существующие приложения, например, AKASHA как-то выкручиваются… В следующей части мы рассмотрим существующие подходы к решению этой проблемы.

  • blockchain
  • cryptocurrency
  • ethereum
  • bitcoin
  • smart contracts
  • decentralized systems
  • decentralization
  • data storage
  • базы данных
  • nosql

Технология блокчейн: что надо знать в 11 карточках

Фото: Pexels

Технология блокчейн появилась несколько лет назад и сразу же открыла новые перспективы для обмена данными. Как она работает и есть ли у нее будущее?

Что такое блокчейн простыми словами

Блокчейн — это распределенная база данных, которая содержит информацию обо всех транзакциях, проведенных участниками системы. Информация хранится в виде цепочки блоков. В каждом из них записано определенное число транзакций. Что такое распределенная база данных? Слово «распределенная» означает: нет никакой централизованной организации, которая бы проверяла этот процесс.

Об эксперте: Артем Генкин, доктор экономических наук, профессор, один из ключевых спикеров онлайн-встреч с авторами онлайн-университета Skillbox и издательской группы «Альпина» –– «Новый мир, новый человек».

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

Фото: Jonathan Alcorn / Bloomberg

Фото: Jonathan Alcorn / Bloomberg

История понятия «блокчейн»

Понятие «блокчейн» не имеет национального происхождения, у него сетевое «гражданство». История термина началась в 2008 году, когда аноним или группа лиц, скрывшихся под псевдонимом Сатоши Накамото, опубликовали статью, ставшую манифестом этой инновационной технологии. В статье описывались ее сущностные характеристики и возможности создания децентрализованной системы денежных расчетов. За последние годы было много версий того, кто мог быть автором этого манифеста. Убедительны некоторые доказательства в пользу его русскоязычного происхождения. Первый блок был сгенерирован в 2009 году, а на сегодня только криптоинструментов на базе разных модификаций блокчейна в мире циркулирует свыше 2 тыс. видов.

Фото: dmitrydao / Unsplash

Фото: dmitrydao / Unsplash

Как блокчейн связан с понятием биткоин?

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

Сферы применения блокчейна: криптовалюта

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

Фото: Максим Григорьев / ТАСС

Фото: Максим Григорьев / ТАСС

Сферы применения блокчейна: банковское дело

Блокчейн позволяет сделать все процессы в банковской индустрии безопаснее, надежнее и прозрачнее. Денежные переводы, расчеты при сделках с ценными бумагами, аккредитивы, KYC-комплаенс, рутинная работа бэк-офисов банков — все эти операции теперь проходят с внедрением этой технологии. Блокчейн может сократить затраты банков до 50%. Об этом заявляли еще в 2017 г. аналитики Morgan Stanley. По их мнению, блокчейн мог бы оптимизировать инфраструктуру, радикально сократить затраты и обеспечить необходимое повышение RoE (доходности собственного капитала) банков. Многим банкам, несмотря на присущую им консервативность, опасно было бы недооценивать потенциал этой технологии. Повсеместное ее внедрение может привести к ликвидации некоторых участников мировой финансовой системы.

Сферы применения блокчейна: кибербезопасность

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

Фото: Hadrian / Shutterstock

Фото: Hadrian / Shutterstock

Сферы применения блокчейна: удостоверения личности

Такие ID представляют собой перевод персональных данных о человеке на блокчейн, создание его цифрового профиля. Есть большой перечень госуслуг, доступ к которым может быть осуществлен посредством блокчейна, и есть статистика передовых блокчейн-стран (Эстония, некоторые эмираты ОАЭ). Использование блокчейна и блокчейн-ID активным гражданином может стать обычным паттерном поведения уже при жизни современного поколения. И в России, и на Западе государства в последние десятилетия активно ищут пути оптимизации своей административной деятельности. Хорошим решением для этого было бы перевести в блокчейн все рутинные и архаичные процессы. Проблематику прайваси и защиты информационной безопасности при этом никто с повестки дня не снимал — напротив, в эру блокчейна она станет приоритетом.

Как работают платежные средства на блокчейне?

Можно выделить как минимум два типа платежных средств. Прежде всего, это традиционные негосударственные криптовалюты, такие как эфир и биткоин, которые имеют многомиллиардную (если измерять ее в «традиционных» фиатных долларах США) капитализацию. Второй тип — криптовалюты центральных банков — это зачастую попытки фиатных государственных эмитентов влить «новое вино в старые меха»: представить новую форму зарабатывания сеньоража, т. е. эмиссию госвалюты, как нечто сверхмодное и прогрессивное. Только единицы проектов по выпуску КВЦБ на сегодня предусматривают подлинно децентрализованный характер их эмиссии.

Фото: Minerva Studio / Shutterstock

Фото: Minerva Studio / Shutterstock

Критика блокчейна: минусы технологии

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

Прогнозы по рынку: будущее технологии в России и за рубежом

Крупнейшие игроки рынка еще в 2015-17 годах организовались в консорциумы. Ими уже реализованы сотни экспериментов и тестов с блокчейнами различного типа. Обладание этой технологией остается пропуском в элитарный клуб, ее диффузия в «массы» бизнесменов и потребителей будет не одномоментной. Хайп (и расцвет множества мошеннических проектов с применением криптоактивов), который мы наблюдали в 2017-2018 годах, вряд ли повторится, но успешных внедрений блокчейна в различные сегменты коммерческого и госсектора будет все больше. Конвергенция ICO / STO с традиционными IPO приведет к трансформации и частичному снятию лишних барьеров на фондовом рынке. Поляризация отношения различных юрисдикций к технологии и феномен blockchain-friendly states — а значит, и регуляторный арбитраж — продлятся еще несколько лет, сменившись глобальным осознанием преимуществ этой технологии и ее зрячим принятием законодателями.

Чек-лист: что еще надо знать и погуглить по теме

  • Кто такой Виталий Бутерин.
  • В чем разница между секьюрити и ютилити токенами.
  • Что такое стейблкоины.
  • Что такое IСO и в чем его отличие от IPO и от STO.
  • Что такое майнинг и кто такой майнер.
  • Что такое SEC, и почему она предъявляла требования к Павлу Дурову.
  • Что такое смарт-контракты.
  • Что такое «Задача о византийских генералах».

Блокчейн как структура данных

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

Технологию блокчейна можно объяснить по-разному. До недавнего времени блокчейн рассматривался преимущественно с точки зрения криптовалют. Биткойн – первая ассоциация с блокчейном, возникающая у многих из нас. Но хранение криптовалютных транзакций – лишь один из многих вариантов использования блокчейна. В этой статье мы отступим от такой точки зрения и рассмотрим блокчейн в более общем контексте computer science.

Блокчейн – это структура данных

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

Массив

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

Одномерный массив с шестью элементами

Связные списки

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

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

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

Связный список с тремя узлами

Блокчейн

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

Ключевое отличие между блокчейном и связным списком заключается в том, что каждая ссылка в блокчейне криптографически защищена. Возможно, вы слышали применительно к блокчейну термин «append only» — «только для добавления». Он означает, что вносить новые данные в блокчейн можно, лишь достраивая цепочку спереди. Валидность защищенных связей постоянно проверяется. Если бы можно было вставить в середину блокчейна вредоносный блок, например, между блоками 1 и 3 на схеме ниже, то можно было бы поставить ссылку на предшествующий ему блок 1, но не на следующий за ним блок 3.

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

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

Притом, что удалить или изменить данные в блокчейне невозможно, легко добавить данные в новый блок, прикрепляемый к цепочке. Например, к криптовалютному блокчейну можно добавить новую транзакцию. Транзакцию легко проверить, поскольку все предыдущие транзакции, записанные в сети, неизменяемы. Когда с адреса Y требуется потратить сумму X, на балансе этого адреса должна быть сумма не менее X.

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

Заключение

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

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

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

Таким образом, содержащиеся в блокчейне данные всегда можно спокойно проанализировать и чувствовать себя увереннее, занимаясь раскрытием лжи. Если обычный компьютер можно сравнить с вычислительной грифельной доской, то блокчейн – с вычислительным янтарем — @NickSzabo4

  • блокчейн
  • структуры данных
  • защита данных
  • программирование
  • исследование
  • Блог компании Издательский дом «Питер»
  • Децентрализованные сети
  • Информационная безопасность
  • Программирование
  • Хранение данных

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *