Вопрос проверяет понимание ключевых отличий блокчейна от простой криптографии с открытым ключом, а именно децентрализованного консенсуса и неизменяемого реестра.
Пара публичный/приватный ключ — это основа асимметричного шифрования и цифровых подписей. Она позволяет доказать владение ключом и подписать сообщение, но не решает проблему двойного расходования (double-spending) и не устанавливает единый порядок транзакций без доверенного посредника. Блокчейн добавляет к этому децентрализованный консенсус и неизменяемый реестр.
import hashlib
class Block:
def __init__(self, data, previous_hash):
self.data = data
self.previous_hash = previous_hash
self.hash = self.calculate_hash()
def calculate_hash(self):
return hashlib.sha256((str(self.data) + self.previous_hash).encode()).hexdigest()
# Создание цепочки
block1 = Block("Транзакция 1", "0")
block2 = Block("Транзакция 2", block1.hash)
print(block2.previous_hash) # Хеш первого блокаВ этом примере каждый блок хранит хеш предыдущего, что делает цепочку устойчивой к изменениям. Если изменить block1, его хеш изменится, и block2 станет невалидным.
Блокчейн применяется там, где нужен децентрализованный, прозрачный и защищенный от подделки реестр: криптовалюты, системы голосования, управление цепочками поставок. Простая пара ключей подходит для аутентификации и шифрования, но не решает проблему доверия в распределенной среде.