[Децентрализованные сети, Информационная безопасность, Программирование, Хранение данных] Блокчейн как структура данных (перевод)
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Привет, Хабр!
Сегодня мы хотели бы обозначить новую тему для обсуждения, кратко рассмотрев блокчейн с точки зрения computer science — как одну из структур данных. В последнее время блокчейн все активнее применяется за пределами криптовалютного сегмента, и эта тенденция, безусловно, заслуживает внимания. Давайте об этом поговорим!
Технологию блокчейна можно объяснить по-разному. До недавнего времени блокчейн рассматривался преимущественно с точки зрения криптовалют. Биткойн – первая ассоциация с блокчейном, возникающая у многих из нас. Но хранение криптовалютных транзакций – лишь один из многих вариантов использования блокчейна. В этой статье мы отступим от такой точки зрения и рассмотрим блокчейн в более общем контексте computer science.
Блокчейн – это структура данных
Структура данных – это способ хранения и организации данных, а также управления ими. Структура данных позволяет обращаться к этим данным, добавлять их, изменять и искать данные, содержащиеся в этой структуре. В числе наиболее распространенных и базовых структур данных – массивы и связные списки.
Массив
Массив включает некоторое количество перечислимых элементов. Это могут быть числа, буквы, слова или даже целые файлы. Благодаря индексам, можно обращаться к каждому отдельному элементу в массиве. Таким образом, если вы хотите изменить запись в массиве и знаете, где она находится, то можете мгновенно к ней обратиться.
Одномерный массив с шестью элементами
Связные списки
Узлы – это элементы с данными, входящие в связный список. В узле находится как минимум один объект данных и указатель на следующий элемент. Функция указателя – сообщить компьютеру, где находится следующий элемент данного списка.
Если вы просмотрите первый элемент данных в списке и захотите обратиться ко второму, то посмотрите на указатель, который направит вас к следующему узлу. Добавить данные в связный список проще, чем в массив, так как его нужно расширить на один узел, а при добавлении данных в массив количество элементов в этом массиве увеличится. Но при работе со связными списками у вас нет мгновенного доступа к данным.
Если вы ищете в связном списке конкретный элемент данных, то сначала просматриваете первый узел в этом списке, его голову. Если это не тот элемент, который вы искали, то вы проходите по указателю, который приводит вас к следующему узлу. Если и в этом узле нет тех данных, которые вы ищете, то вы продолжаете проходить по ссылкам от узла к узлу, пока не найдете нужные данные.
Связный список с тремя узлами
Блокчейн
В контексте структур данных блокчейн наиболее напоминает связный список. Также в блокчейне данные разделяются по контейнерам, именуемым блоками. Блоки вполне аналогичны узлам связного списка. В каждом блоке содержится ссылка, представляющая собой хэш предыдущего блока. Она служит связкой с предыдущим блоком и помогает поддерживать порядок в цепочке блоков.
Ключевое отличие между блокчейном и связным списком заключается в том, что каждая ссылка в блокчейне криптографически защищена. Возможно, вы слышали применительно к блокчейну термин «append only» — «только для добавления». Он означает, что вносить новые данные в блокчейн можно, лишь достраивая цепочку спереди. Валидность защищенных связей постоянно проверяется. Если бы можно было вставить в середину блокчейна вредоносный блок, например, между блоками 1 и 3 на схеме ниже, то можно было бы поставить ссылку на предшествующий ему блок 1, но не на следующий за ним блок 3.
Каждый новый блок надстраивается над уже имеющимся, и такая процедура обычно именуется подтверждением. Чем старше блок, тем больше подтверждений у него будет. Каждое подтверждение осложняет подделку данных в блоке. На следующей схеме у блока 2 одно подтверждение. Чтобы подделать данные в блоке 2, вам придется воссоздать один валидный блок, в котором будет новая валидная ссылка. После каждого следующего подтверждения придется воссоздавать еще один блок. Таким образом, чем старше блок, тем выше уверенность, что никаких изменений в этот блок внесено не будет.
Ссылки между блоками зависят не только от порядка блоков, но и от того, какие данные содержатся в каждом блоке. Невозможно добавить или удалить данные из блока в блокчейне. Именно на этом свойстве базируется уверенность, что с данными, помещенными в блокчейн, ничего не случится. Естественно, в структуре данных блокчейна любая подделка очевидна. Любое изменение, вносимое в данные, ломает ссылки на все последующие блоки.
Притом, что удалить или изменить данные в блокчейне невозможно, легко добавить данные в новый блок, прикрепляемый к цепочке. Например, к криптовалютному блокчейну можно добавить новую транзакцию. Транзакцию легко проверить, поскольку все предыдущие транзакции, записанные в сети, неизменяемы. Когда с адреса Y требуется потратить сумму X, на балансе этого адреса должна быть сумма не менее X.
Криптовалюты – лишь частный вариант применения технологии блокчейна. Блокчейн стремительно становится все более жизнеспособной возможностью для управления цепочками поставок, транспортным парком и для других целей.
Заключение
Блокчейн – это метод хранения данных, применимый в computer science. Элементы блокчейна – его блоки – криптографически связаны друг с другом. Невозможно изменить данные после того, как они были записаны в блок. В этом и заключается ценность блокчейна. Это неизменяемый реестр, в котором можно безопасно хранить данные, работая в недоверенной среде.
Эту статью хотелось бы завершить твитом, содержащим квинтэссенцию свойств технологии блокчейна и иллюстрирующим его место среди других структур данных.
Блокчейн не гарантирует истину, а предохраняет как истину, так и ложь от внесения изменений.
Таким образом, содержащиеся в блокчейне данные всегда можно спокойно проанализировать и чувствовать себя увереннее, занимаясь раскрытием лжи. Если обычный компьютер можно сравнить с вычислительной грифельной доской, то блокчейн – с вычислительным янтарем — @NickSzabo4
===========
Источник:
habr.com
===========
===========
Автор оригинала: Horizen Academy
===========Похожие новости:
- [Email-маркетинг, Информационная безопасность] Радости обладания коротким емейл-адресом (перевод)
- [Информационная безопасность, Тестирование IT-систем] Как плохо настроенная БД позволила захватить целое облако с 25 тысячами хостов
- [JavaScript, Дизайн, Конференции, Программирование] 25 и 26 сентября — открытые дни на Frontend Live
- [Информационная безопасность, Законодательство в IT, Лайфхаки для гиков] Как снизить вероятность кражи персональных данных
- [Звук, Научно-популярное, Системное программирование] Звук. От механических колебаний до ALSA SoC Layer
- [Программирование, Scala] Scala мертва?
- [Julia, Высокая производительность, Исследования и прогнозы в IT, Программирование, Промышленное программирование] Julia готова для прода (перевод)
- [Информационная безопасность] Чем нас «радовали» злоумышленники последние полгода
- [IT-инфраструктура, Microsoft SQL Server, Системное администрирование, Хранение данных] Дорожная карта миграции почты IBM Notes/Domino в Exchange и Office 365
- [C++, Компьютерное железо, Разработка под Windows, Системное программирование] О работе ПК ч.3: От включения до полной загрузки Windows 10
Теги для поиска: #_detsentralizovannye_seti (Децентрализованные сети), #_informatsionnaja_bezopasnost (Информационная безопасность), #_programmirovanie (Программирование), #_hranenie_dannyh (Хранение данных), #_blokchejn (блокчейн), #_struktury_dannyh (структуры данных), #_zaschita_dannyh (защита данных), #_programmirovanie (программирование), #_issledovanie (исследование), [url=https://torrents-local.xyz/search.php?nm=%23_blog_kompanii_izdatelskij_dom_«piter»&to=0&allw=0&o=1&s=0&f%5B%5D=820&f%5B%5D=959&f%5B%5D=958&f%5B%5D=872&f%5B%5D=967&f%5B%5D=954&f%5B%5D=885&f%5B%5D=882&f%5B%5D=863&f%5B%5D=881&f%5B%5D=860&f%5B%5D=884&f%5B%5D=865&f%5B%5D=873&f%5B%5D=861&f%5B%5D=864&f%5B%5D=883&f%5B%5D=957&f%5B%5D=859&f%5B%5D=966&f%5B%5D=956&f%5B%5D=955]#_blog_kompanii_izdatelskij_dom_«piter» (
Блог компании Издательский дом «Питер»
)[/url], #_detsentralizovannye_seti (
Децентрализованные сети
), #_informatsionnaja_bezopasnost (
Информационная безопасность
), #_programmirovanie (
Программирование
), #_hranenie_dannyh (
Хранение данных
)
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 12:21
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Привет, Хабр! Сегодня мы хотели бы обозначить новую тему для обсуждения, кратко рассмотрев блокчейн с точки зрения computer science — как одну из структур данных. В последнее время блокчейн все активнее применяется за пределами криптовалютного сегмента, и эта тенденция, безусловно, заслуживает внимания. Давайте об этом поговорим! Технологию блокчейна можно объяснить по-разному. До недавнего времени блокчейн рассматривался преимущественно с точки зрения криптовалют. Биткойн – первая ассоциация с блокчейном, возникающая у многих из нас. Но хранение криптовалютных транзакций – лишь один из многих вариантов использования блокчейна. В этой статье мы отступим от такой точки зрения и рассмотрим блокчейн в более общем контексте computer science. Блокчейн – это структура данных Структура данных – это способ хранения и организации данных, а также управления ими. Структура данных позволяет обращаться к этим данным, добавлять их, изменять и искать данные, содержащиеся в этой структуре. В числе наиболее распространенных и базовых структур данных – массивы и связные списки. Массив Массив включает некоторое количество перечислимых элементов. Это могут быть числа, буквы, слова или даже целые файлы. Благодаря индексам, можно обращаться к каждому отдельному элементу в массиве. Таким образом, если вы хотите изменить запись в массиве и знаете, где она находится, то можете мгновенно к ней обратиться. Одномерный массив с шестью элементами Связные списки Узлы – это элементы с данными, входящие в связный список. В узле находится как минимум один объект данных и указатель на следующий элемент. Функция указателя – сообщить компьютеру, где находится следующий элемент данного списка. Если вы просмотрите первый элемент данных в списке и захотите обратиться ко второму, то посмотрите на указатель, который направит вас к следующему узлу. Добавить данные в связный список проще, чем в массив, так как его нужно расширить на один узел, а при добавлении данных в массив количество элементов в этом массиве увеличится. Но при работе со связными списками у вас нет мгновенного доступа к данным. Если вы ищете в связном списке конкретный элемент данных, то сначала просматриваете первый узел в этом списке, его голову. Если это не тот элемент, который вы искали, то вы проходите по указателю, который приводит вас к следующему узлу. Если и в этом узле нет тех данных, которые вы ищете, то вы продолжаете проходить по ссылкам от узла к узлу, пока не найдете нужные данные. Связный список с тремя узлами Блокчейн В контексте структур данных блокчейн наиболее напоминает связный список. Также в блокчейне данные разделяются по контейнерам, именуемым блоками. Блоки вполне аналогичны узлам связного списка. В каждом блоке содержится ссылка, представляющая собой хэш предыдущего блока. Она служит связкой с предыдущим блоком и помогает поддерживать порядок в цепочке блоков. Ключевое отличие между блокчейном и связным списком заключается в том, что каждая ссылка в блокчейне криптографически защищена. Возможно, вы слышали применительно к блокчейну термин «append only» — «только для добавления». Он означает, что вносить новые данные в блокчейн можно, лишь достраивая цепочку спереди. Валидность защищенных связей постоянно проверяется. Если бы можно было вставить в середину блокчейна вредоносный блок, например, между блоками 1 и 3 на схеме ниже, то можно было бы поставить ссылку на предшествующий ему блок 1, но не на следующий за ним блок 3. Каждый новый блок надстраивается над уже имеющимся, и такая процедура обычно именуется подтверждением. Чем старше блок, тем больше подтверждений у него будет. Каждое подтверждение осложняет подделку данных в блоке. На следующей схеме у блока 2 одно подтверждение. Чтобы подделать данные в блоке 2, вам придется воссоздать один валидный блок, в котором будет новая валидная ссылка. После каждого следующего подтверждения придется воссоздавать еще один блок. Таким образом, чем старше блок, тем выше уверенность, что никаких изменений в этот блок внесено не будет. Ссылки между блоками зависят не только от порядка блоков, но и от того, какие данные содержатся в каждом блоке. Невозможно добавить или удалить данные из блока в блокчейне. Именно на этом свойстве базируется уверенность, что с данными, помещенными в блокчейн, ничего не случится. Естественно, в структуре данных блокчейна любая подделка очевидна. Любое изменение, вносимое в данные, ломает ссылки на все последующие блоки. Притом, что удалить или изменить данные в блокчейне невозможно, легко добавить данные в новый блок, прикрепляемый к цепочке. Например, к криптовалютному блокчейну можно добавить новую транзакцию. Транзакцию легко проверить, поскольку все предыдущие транзакции, записанные в сети, неизменяемы. Когда с адреса Y требуется потратить сумму X, на балансе этого адреса должна быть сумма не менее X. Криптовалюты – лишь частный вариант применения технологии блокчейна. Блокчейн стремительно становится все более жизнеспособной возможностью для управления цепочками поставок, транспортным парком и для других целей. Заключение Блокчейн – это метод хранения данных, применимый в computer science. Элементы блокчейна – его блоки – криптографически связаны друг с другом. Невозможно изменить данные после того, как они были записаны в блок. В этом и заключается ценность блокчейна. Это неизменяемый реестр, в котором можно безопасно хранить данные, работая в недоверенной среде. Эту статью хотелось бы завершить твитом, содержащим квинтэссенцию свойств технологии блокчейна и иллюстрирующим его место среди других структур данных. Блокчейн не гарантирует истину, а предохраняет как истину, так и ложь от внесения изменений.
Таким образом, содержащиеся в блокчейне данные всегда можно спокойно проанализировать и чувствовать себя увереннее, занимаясь раскрытием лжи. Если обычный компьютер можно сравнить с вычислительной грифельной доской, то блокчейн – с вычислительным янтарем — @NickSzabo4 =========== Источник: habr.com =========== =========== Автор оригинала: Horizen Academy ===========Похожие новости:
Блог компании Издательский дом «Питер» )[/url], #_detsentralizovannye_seti ( Децентрализованные сети ), #_informatsionnaja_bezopasnost ( Информационная безопасность ), #_programmirovanie ( Программирование ), #_hranenie_dannyh ( Хранение данных ) |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 12:21
Часовой пояс: UTC + 5