Основы блокчейна
Введение
Блокчейн-технология это революционный способ хранить и отслеживать данные, оставляя их доступными всем. Она укладывает данные в один публичный список всех прошлых транзакций: смотреть его может кто угодно, а править не может никто. Этот общий список транзакций называют реестром блокчейна.
Разобрав слои блокчейна, вы поймёте структуру, которую показывает инструмент под названием обозреватель блоков: список блоков, транзакции внутри этих блоков и детали каждой отдельной транзакции. Посмотреть на это вживую можно в Etherscan, популярном обозревателе блоков для Ethereum.
Устройство блокчейна
Слово «блокчейн» бывает существительным (блокчейн Bitcoin) и определением (блокчейн-технология). В любом случае блокчейн это вся структура, на которой построены криптовалюты.
Если приближать снаружи внутрь, в блокчейне три уровня структуры:
- Весь
блокчейнсостоит из блоков, связанных друг с другом по порядку Блокисостоят из групп собранных вместе транзакцийТранзакцииэто переводы ценности или команды программам междуадресамив сети
Три уровня вместе создают криптографический реестр: неизменяемую историю всех транзакций сети.
Проверка знаний 1
Что такое блокчейн?
-
[ ] Собранные группы транзакций, которые зовут блоками
-
[ ] Общая запись, которую все видят, но никто не правит
-
[ ] Блоки, связанные друг с другом по порядку
-
[ ] Всё перечисленное
Разбираем реестр
В обычных денежных системах мы доверяем считать, у кого сколько денег, третьим сторонам вроде банков. Но чтобы стать по-настоящему Bankless, нужна система, где реестр не приходится доверять одной организации.
Реестр это список ВСЕХ транзакций, когда-либо сделанных в блокчейне, и в публичных блокчейнах его видит каждый. Отдельные группы транзакций из реестра образуют блоки, а блоки вместе образуют блокчейн.
Когда в реестр добавляют новые транзакции, балансы на каждом адресе обновляются, а прошлые транзакции изменить нельзя. Это как если бы любой человек мог в любой момент посмотреть всю историю операций по чужому банковскому счёту.
Транзакции в реестре
Посмотрим на примеры транзакций:
- Алиса отправляет 5 ETH Бобу
- Боб отправляет 2 ETH Чарли
Каждая транзакция показывает изменение количества криптовалюты у адреса, поэтому итог всех транзакций И ЕСТЬ то количество, которое есть у каждого адреса.
⇒ Алиса потеряла 5 ETH
⇒ Боб получил 3 ETH всего (получил 5, отправил 2)
⇒ Чарли получил 2 ETH
Проверка знаний 2
Что верно для реестров публичных блокчейнов?
-
[ ] Все транзакции публичны, а прошлые нельзя изменить
-
[ ] Реестр показывает, сколько криптовалюты сейчас на адресе
-
[ ] Реестр растёт по мере добавления новых транзакций
-
[ ] Всё перечисленное
Децентрализация
Транзакции в реестре блокчейна не только неизменяемы, они ещё и разложены копиями по большой сети компьютеров. Чтобы ни один участник не мог поменять данные, копии реестра хранятся на множестве компьютеров сети, их называют узлы.
Общие данные и делают реестр блокчейна децентрализованным. Никакая власть или организация им не управляет. Блокчейны вроде Ethereum ещё и публичные, потому что реестр может посмотреть кто угодно.
Для этого урока достаточно запомнить: данные реестра общие для множества компьютеров, на которых работает сеть Ethereum.
Проверка знаний 3
Что делает блокчейн децентрализованным?
-
[ ] Писать в блокчейн может только одна организация
-
[ ] Он отвечает требованиям децентрализации от государства
-
[ ] Реестр лежит на многих компьютерах и никем не управляется
-
[ ] Реестр хранится на одном защищённом сервере
Анатомия блока
Важная особенность блокчейнов в том, что данные прошлых транзакций нельзя изменить после попадания в блок. У каждого блока есть уникальный хеш блока, как отпечаток пальца, и он связывает блоки друг за другом. Изменить прошлые транзакции, не изменив этот отпечаток и отпечаток КАЖДОГО следующего блока, не выйдет: каждый отпечаток зависит от предыдущего.
Значит, блок это просто группа транзакций плюс уникальный отпечаток (его хеш блока), посчитанный из содержимого блока. Блоки сцеплены, потому что каждый ссылается на уникальный отпечаток предыдущего и образует единый блокчейн.
Проверка знаний 4
Зачем нужен хеш блока?
-
[ ] Чтобы зашифровать данные блока и скрыть их
-
[ ] Чтобы связать блоки и защитить прошлые данные от правок
-
[ ] Чтобы транзакции уходили на правильный адрес
-
[ ] Чтобы блокчейн оставался децентрализованным
Внутри блока
Напомним: данные блока это просто собранные вместе транзакции. Заглянув внутрь одного блока, мы увидим список транзакций и немного данных о том, кто создал блок.
Обе транзакции из примера выше могут попасть в один блок, а могут разойтись по нескольким блокам со временем. Но в каком бы блоке они ни оказались, в общий реестр блокчейна они попадут в любом случае.
- Алиса отправляет 5 ETH Бобу
- Боб отправляет 2 ETH Чарли
Помните, что каждый блок обязан ссылаться на хеш блока предыдущего, чтобы блокчейн оставался связанным.
Проверка знаний 5
Какая информация лежит в блоке?
-
[ ] Вся информация из предыдущих блоков
-
[ ] Что угодно нужное блокчейну, размер блока не ограничен
-
[ ] Данные транзакций и ссылка на предыдущий блок
-
[ ] Все транзакции за фиксированный промежуток времени
Отдельные транзакции
Данные любого блокчейна это просто список транзакций, записей о переводах валюты между пользователями. Чтобы транзакция была действительной, отправитель подписывает её своей цифровой подписью.
Именно это вы делаете, подтверждая транзакцию в кошельке: ставите цифровую подпись и разрешаете операцию. Считайте это цифровым аналогом подписи на чеке, квитанции или платеже картой.
Транзакции бывают простыми, например отправка криптоактивов, и посложнее, например обмен активов или размещение особого кода, который срабатывает по вызову. Такой код называют смарт-контракты.
Наконец, у каждой транзакции есть уникальный цифровой идентификатор, хеш транзакции, которого нет ни у одной другой. По нему легко сослаться на конкретную транзакцию потом, и он гарантирует, что её детали уже не изменятся.
Проверка знаний 6
Данные блокчейна это список транзакций, собранных в блоки. Пример такой транзакции:
-
[ ] Отправка или получение криптоактивов
-
[ ] Изменение размера блока
-
[ ] Правка прошлых данных блокчейна
-
[ ] Всё перечисленное
Адреса пользователей
Адрес это публичный идентификатор, который в блокчейне может посмотреть кто угодно. Как на адрес почты, деньги на него отправит любой, но распорядиться ими сможет только тот, у кого есть приватный ключ.
В сети Ethereum адрес всегда начинается с _0x__________ и состоит из 42 цифр и букв, полученных из публичного ключа этого адреса.
Открыв отдельную транзакцию в обозревателе блоков, мы видим адреса From: и To:. Это не говорит, какие люди управляют этими адресами, но позволяет любому проследить движение криптовалюты по реестру блокчейна.
Проверка знаний 7
Что верно про адреса в блокчейне?
-
[ ] Это публичные идентификаторы участников блокчейна
-
[ ] В сети Ethereum они всегда начинаются с 0x
-
[ ] Деньгами на адресе распоряжается владелец приватного ключа
-
[ ] Всё перечисленное