Как устроен Blockchain

Ответ

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

Ключевые принципы:

  1. Децентрализация — данные хранятся на множестве узлов (нод).
  2. Консенсус (например, Proof of Work или Proof of Stake) — механизм согласования валидности блоков.
  3. Неизменность — после добавления блок нельзя изменить.

Пример структуры блока (упрощённо):

class Block {
  constructor(data, prevHash) {
    this.data = data;
    this.prevHash = prevHash;
    this.hash = this.calculateHash();
  }

  calculateHash() {
    return sha256(this.data + this.prevHash).toString();
  }
}

Как добавляется блок?

  1. Ноды проверяют его валидность.
  2. При достижении консенсуса блок добавляется в цепочку.

Ответ 18+ 🔞

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

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

Если ты попытаешься задним числом подделать данные в каком-то старом блоке, то у него моментально поменяется эта самая печать-хеш. И всё, пиздец гармонии! Все следующие за ним блоки начнут орать: «А хули это у тебя ссылка на предыдущий блок теперь не совпадает? Ты чё, мудак, нас всех обмануть решил?». Цепочка порвётся, и все узлы сети это сразу унюхают.

На чём вся эта махина держится, спросишь ты?

  1. Децентрализация. Это когда у тебя не один главный сервер-царь, который может взять и всем наебнуться. Нет! Информация хранится у кучи участников (нод) одновременно. Выключи одного, десять, сотню — сети похуй, остальные всё равно всё знают. Хитрые жопы, которые хотят всё контролировать, просто обоссываются от злости.
  2. Консенсус. А это уже весёлая драка за право сказать: «Всё, ребята, этот блок — правильный, добавляем!». Есть, например, Proof of Work (доказательство работой), где ноды соревнуются, кто быстрее решит ебучую сложную задачку, сжирая электричества на овердохуища. А есть Proof of Stake (доказательство долей), где твой вес в голосовании зависит от того, сколько монет ты «заморозил» в системе. Короче, правила игры, чтобы все играли честно и не рисовали блоки из воздуха.
  3. Неизменность. Это святое! Как только блок прошёл проверку и вписался в цепь — всё, браток, он высечен в цифровом граните. Переписать историю не выйдет. Можно только добавить новые данные в конец. Это как запись в дневнике чернилами, которые нельзя смыть. Охуенно же?

Вот смотри, как примерно выглядит этот самый блок в коде. Не пугайся, тут всё просто:

class Block {
  constructor(data, prevHash) {
    this.data = data; // Собственно, информация
    this.prevHash = prevHash; // Хеш предыдущего блока — наша связующая ниточка
    this.hash = this.calculateHash(); // А это мы сами себе печать ставим
  }

  calculateHash() {
    // Берём наши данные, предыдущий хеш, перемешиваем и получаем новую уникальную печать
    return sha256(this.data + this.prevHash).toString();
  }
}

А как новый блок цепляется?

  1. Ты создал блок. «Эй, народ, гляньте, что я сделал!».
  2. Все остальные ноды в сети хватают его, проверяют по полной программе: и данные, и печать, и не нарушает ли он всю цепочку. Подозрение ебать чувствуют, если что-то не так.
  3. Если по правилам консенсуса (той самой драки) большинство говорит «Да, этот блок легитимный, хуй с горы», то его добавляют в конец цепи. И теперь он — часть истории.

Вот и вся магия, если без академического занудства. Не волшебство, а просто продуманная архитектура, которая делает почти невозможным наёб. Почти.