Проверяет понимание базовой архитектуры блокчейна, включая блоки, хеширование и децентрализацию, что важно для оценки знаний в области распределённых систем и криптографии.
Блокчейн — это технология распределённого реестра, в которой данные хранятся в виде последовательности блоков, связанных криптографическими хешами. Каждый блок содержит набор транзакций, временную метку, свой хеш и хеш предыдущего блока. Такая связь делает цепочку неизменяемой: изменение данных в одном блоке потребует пересчёта всех последующих блоков, что вычислительно невыгодно.
Представим простую цепочку из двух блоков. Блок 1 содержит транзакцию «А перевёл 10 монет Б». Его хеш вычисляется и записывается. Блок 2 содержит новую транзакцию и хеш блока 1. Если злоумышленник изменит транзакцию в блоке 1, его хеш изменится, и связь с блоком 2 станет недействительной. Чтобы подделать цепочку, нужно пересчитать все блоки и убедить большинство узлов принять новую версию.
// Упрощённая имитация блока на JavaScript
class Block {
constructor(index, data, previousHash = '') {
this.index = index;
this.timestamp = Date.now();
this.data = data;
this.previousHash = previousHash;
this.hash = this.calculateHash();
}
calculateHash() {
return require('crypto')
.createHash('sha256')
.update(this.index + this.previousHash + JSON.stringify(this.data))
.digest('hex');
}
}
const genesis = new Block(0, 'Genesis');
const second = new Block(1, 'Alice -> Bob: 10', genesis.hash);
console.log(second.hash); // уникальный хеш блокаБлокчейн используется в криптовалютах (Bitcoin, Ethereum), системах отслеживания поставок, электронных голосованиях, управлении цифровыми правами и смарт-контрактах. Основная ценность — доверие без посредников и защита от подделок.
Итог: блокчейн стоит применять там, где нужна неизменяемая история записей и отсутствие единого центра управления, например в финансах, логистике или государственных реестрах.
Уровень
Рейтинг:
4
Сложность:
5
Навыки
JavaScript
Networks
Ключевые слова
Подпишись на Node.js Developer в телеграм