Внутренняя структура данных Git представляет собой дерево объектов данных, в котором каждый объект указывает только на своего предшественника. Каждый блок данных хэшируется. Изменение (битовая ошибка или атака) промежуточного блока будет замечено, когда сохраненный хеш и фактический хеш отклонятся.
Чем эта концепция отличается от цепочки блоков?
Git не указан в качестве примера цепочек блоков, но, по крайней мере, в сводках оба описания структуры данных выглядят одинаково: блок данных, обратная связь в одном направлении, хэши, ...).
Так в чем же разница, что Git не называется цепочкой блоков?
git
hash
blockchain
Paebbels
источник
источник
Ответы:
git
не является примером технологии блокчейна по нескольким причинам (это было первое, что пришло в голову):В реализации блокчейна каждый блок проверяется независимо несколько раз, прежде чем он добавляется в блокчейн. Это действительно одна из самых важных вещей в технологии блокчейна, и это то, что обеспечивает ее «неосторожность». С другой стороны, многие
git
проекты не требуют независимой проверки, и, когда они это делают, им требуется только один человек, чтобы подписать изменение, прежде чем оно будет передано в хранилище. Следовательно, имея не более одной точки валидации, которой вы должны доверять,git
нарушается один из основных принципов технологии блокчейна.git
Репозиторий не обязательно дублируется на многих серверах. Вы можете работать изgit
репозитория локально, и если ваш локальный диск будет поврежден, вы потеряете все. Технология Blockchain предполагает воспроизведение главной книги на разных серверах.Вы можете переписать
git
историю.git push <remote> <branch> --force
, Где<branch>
устанавливается в предыдущее состояние , чем при<remote>
бы переписать историю. В блокчейнах книга является неизменной историей.источник
push --force
одной ветки вы теряете ссылки на коммиты, которые очищаются сборщиком мусора. Это отличается от форка, который не переписывает историю, а скорее альтернативный путь развития.Причина, по которой Git и блокчейны выглядят одинаково, заключается в том, что они оба используют деревья Merkle в качестве своей базовой структуры данных. Дерево Merkle - это дерево, где каждый узел помечен криптографическим хеш-значением их содержимого, которое включает в себя метки его дочерних элементов.
Направленный ациклический граф Git - это именно то, дерево меркла, где каждый узел (тег, коммит, дерево или объект блоба) помечен хешем его содержимого и меткой его «потомка». Обратите внимание, что для коммитов термин «дочерний» немного конфликтует с пониманием Git родителей: коммиты родителей являются потомками коммитов, вам просто нужно смотреть на график как на дерево, которое продолжает расти, перекорневая его.
Блокчейны очень похожи на это, поскольку они также продолжают расти таким образом, и они также используют его свойство дерева меркла для обеспечения целостности данных. Но обычно блокчейны понимаются как нечто большее, чем просто деревья меркла, где они отделяются от «тупого трекера контента» Git . Например, блокчейны обычно также подразумевают наличие высоко децентрализованной системы на уровне блоков (не все блоки должны находиться в одном и том же месте).
Понимание блокчейнов довольно сложно (лично я все еще далек от понимания всего, что с этим связано), но я считаю, что понимание внутренних элементов Git - это хороший способ понять деревья меркле, которые определенно помогают понять фундаментальную часть о блокчейнах.
источник
Кибер Валюты, такие как Биткойн, используют распределенную консенсусную криптографическую цепочку блоков (дерево Меркле). Обычное использование сократило это до «блокчейн»
В то время как git использует цепочку блоков (дерево меркле), ему не хватает криптографических компонентов распределенного консенсуса, которые подразумевает общее использование термина «BlockChain».
источник
Blockchain
это не просто цепочка каких-либо блоков.Blockchain
это когда есть способ определения главной цепи, когда две или более переадресованы , и когда для этого определения не требуется центральный орган.источник
В отличие от криптовалютных блокчейнов ; У git нет p2p-механизма безнадежного консенсуса.
источник
Цели различны для блокчейна и git, хотя в качестве структуры данных используются деревья Merkle.
blockchain
Обычно управляется одноранговой сетью, придерживающейся протокола межузловой связи и проверяющего новые блоки. После записи данные в любом данном блоке не могут быть изменены задним числом без изменения всех последующих блоков, что требует консенсуса большинства сетей.По данным биткойн-бумаги:
Хотя
Git
это распределенная система контроля версий для отслеживания изменений в исходном коде во время разработки программного обеспечения. Она предназначена для координации работы между программистами, но ее можно использовать для отслеживания изменений в любом наборе файлов. Его цели включают скорость, целостность данных и поддержку распределенных, нелинейных рабочих процессов.По словам Линуса Торвальдса:
источник
Как тык сказал :
Git и Blockchains выглядят одинаково, потому что они оба используют Merkle Trees для хранения упорядоченных транзакций с метками времени. Дерево меркла - это древовидная структура данных, где каждый узел помечен криптографическим значением хеш-функции их содержимого, которое включает в себя метки его дочерних элементов.
Первым отличием является функция Hash : Blockchain имеет очень дорогую хэш-функцию, так что каждый блок должен быть добыт, тогда как «блок» Git может быть создан с помощью простого сообщения фиксации.
Цель Биткойна - добавить доверие к порядку транзакций. Основное внимание уделяется самой длинной цепочке, поскольку она является наиболее дорогой для вычисления и, таким образом, скорее всего, будет правдой.
Биткойн выполняет это, требуя, чтобы хеш соответствовал определенным параметрам (начинается с определенного числа 0), увеличивая значение («nonce») в сообщении, пока не будет найден удовлетворительный хеш. Это требует усилий, чтобы найти, но только 1 расчет для проверки одноразового номера; и если множественные одноразовые числа дают удовлетворительный хэш, тогда один будет ниже и будет принят за истину. Другие схемы аутентификации делают хэш надежным за счет централизации выдачи хэша органу власти, возможно, проголосованному сетевым соглашением или каким-либо другим способом.
Данные блокчейна ограничены транзакциями, которые должны соответствовать проверке. Транзакция должна быть действительной, чтобы быть включенной в следующий блок. Биткойн-транзакция соответствует чему-то важному в реальном мире, что оправдывает использование дорогостоящего блока для записи этого перевода, например обмен денежной стоимости. На самом деле нас не волнует последняя книга, это метафора чего-то в реальном мире.
Напротив, блоки Git являются произвольными, поскольку коммит может содержать любое количество данных. Ценность заключается в изменениях данных, организованных в дерево git, потому что мы заботимся о конечном продукте, это подтверждается существованием репозитория git.
Цель Git - позволить дешевым «бухгалтерским книгам» отслеживать несколько вариантов продукта. «Леджер» в Git - это то, что нас волнует, это наш конечный продукт; данные транзакций просто записывают, как был построен продукт. Мы хотим сделать несколько версий конечных продуктов очень дешевыми, достаточно затрат, чтобы создатель записал, как они создали этот продукт. Никаких явных проверок данных не производится, вы поддерживаете конечный продукт, если он выглядит хорошо, и это существование делает полезным иметь цепочку создания этого продукта. Если конечный продукт плохой или порядок фиксации недействителен, этот «регистр» удаляется во время сборки мусора.
Второе отличие состоит в том, что транзакции Blockchain должны исходить из предыдущего действительного источника. В Git нам не важно, какие данные вы используете для расширения дерева. В Blockchain транзакции должны исходить из предыдущего действительного источника. В этом смысле Git отслеживает расширение нашей среды, тогда как Blockchain отслеживает обмен ценностями в закрытой среде.
источник