Понятным языком про технологию блокчейн
В ноябре 2008 года в одной криптографической рассылке от имени Сатоши Накамото была написана статья «Биткойн: одноранговая электронная система обмена». Она подробно описывала способы использования одноранговой сети для транзакций, выполняющихся в среде без взаимного доверия.
В январе 2009 года были созданы блокчейн сеть под названием Bitcoin и программа клиент. Также был добыт стартовый так называемый блок генезиса. Он включал в себя 50 биткойнов.
Первая транзакция по обмену была с программистом Хэлом Финни. Примерно подсчитано, что Накамото добыл всего около одного миллиона биткойнов.
Перед тем, как полностью исчезнуть и прекратить участие в деятельности сети и правке кода, он передал руководство проектом разработчику Гавину Андресену.
Позже тот стал ведущим специалистом в Bitcoin Foundation, анархическом сообществе, считающемся официальным лицом биткойна.
Начало и первый провал
Первая коммерческая покупка с использованием экзотической монеты как средства оплаты была проведена при доставке двух пицц. Они обошлись в 10’000 BTC. Сделка долго обсуждалась на форуме Bitcointalk.
В начале августа 2010 года была выявлена очень серьёзная брешь в защите протокола. Из-за недостаточной проверки в блок можно было записать транзакцию с неограниченным количеством биткойнов. И в середине месяца уязвимостью воспользовались. Было отправлено 184 миллиарда монет на два разных адреса.
Как известно, монет BTC не может быть более 21’000 штук. В течение нескольких часов транзакция было найдена и удалена, протокол обновили и биткойн получил свой первый хардфорком. Hard fork — жёсткое разделение в сети блокчейн, когда узлы не поддерживающие обновлённую версию протокола, не могут проверять и записывать новые блоки. Это была единственная обнаруженная и использованная дыра безопасности биткойна.
Поскольку исходный код биткойна распространяется как открытый, новинка заинтересовала различных энтузиастов и с 2011 года начали появляться другие валюты, в основном как эксперименты в песочнице для оценки своих идей.
Тогда же к биткойну пришла и популярность. О нём узнали уже не тысячи, а миллионы людей и даже решили принимать в качестве пожертвования некоторые благотворительные организации.
Концепция
Blockchain переводится как цепочка блоков. Под блоком подразумевается набор транзакций, объединённых близким промежутком времени между предыдущим блоком и до фиксации «текущего». Нет никакого ограничения на передаваемые суммы. Только лимит на размер самого блока, а значит и количества операций, записанных в нём.
То есть некоторые транзакции могут быть не сохранены, а значит не подтверждены длительное время. Это известное узкое место блокчейна. Различные валюты борются с ним по-разному. Пока найдено три приемлемых решения:
- Генерация большого количества блоков в единицу времени
- Увеличенный размер блока
- Экономия места в блоке
Прежде чем блок может быть записан, он обязательно должен быть подтверждён. Процедура подтверждения — это нахождение консенсуса участниками, когда никто никому не доверяет, но доверяют математике, хэш-функциям и протоколу обмена. В сети подключенных узлов объявляется конкурентный поиск определённого числа.
Это число может быть найдено только решением сложной математической задачи по определённому алгоритму. Тот, кто находит это число, получает награду в виде небольшого количества монет этой криптовалюты. Награда достаточно существенна, чтобы привлечь так называемых майнеров — людей, предоставляющих вычислительные мощности своего оборудования для добычи (mining) блоков разных криптовалют.
Найденный блок проверяется остальными майнерами и, получив нужное количество подтверждений, записывается в конец цепочки предыдущих блоков — блокчейн. В него записывается уникальный номер, дата и время нахождения. И транзакции из очереди.
В момент записи они объявляются легитимными, монеты переданными, контракты, написанные на специальном языке программирования, выполненными.
Принято считать, что нет доверия ни одному из участников, все узлы равноправны и сеть общедоступна и децентрализована. Можно скачать копию блокчейна с любого нода (node) и проверить любой блок, любую сохранённую операцию. Остальные хранители копий блокчейна могут быстро подтвердить достоверность любого блока по его хэшу.
Получив достаточное количество одинаковых хэшей из разных источников, можно принять блок и записанные в нём транзакции. Или вычислить и сравнить самостоятельно, никто не запрещает. Не получится только изменить ничего. Если вы опубликуете некий ранее известный блок, в котором изменён хоть бит информации, вам никто не поверит. Его хэш-сумма будет отличаться от тех, что хранят остальные участники и никто не станет его себе копировать. Это блокчейн, а не Центробанк.