1. Что такое блокчейн и при чем тут каменные диски?
Блокчейн — это база данных, которая хранится не в одном месте (как банковский сервер), а у всех участников сети одновременно. Представьте, что вместо банка у вас есть тысячи копий одной и той же бухгалтерской книги, и все они обновляются синхронно.
Как это работало у древних племен?
На островах Яп люди использовали огромные каменные диски (камни Раи) как деньги. Из-за их веса (до 4 тонн!) их нельзя было носить с собой, поэтому все сделки запоминали устно.
- Если кто-то продавал камень, об этом знало всё племя.
- Обмануть одного человека можно, но всех — невозможно.
- Даже если камень разрушался, сделки с ним оставались в памяти племени.
Вывод:
Децентрализация — это когда нет главного "банка", все хранят одинаковые данные и контролируют друг друга одновременно.
2. Зачем это нужно? Проблема двойных трат
Что такое двойная трата?
Например, в западных странах владелец чековой книжки из-за долгой синхронизации мог выписать чек двум разным людям, превысив настоящее значение, в итоге один владелец чека мог обналичить его, другой — нет.
Синхронизация — это механизм, позволяющий обеспечить целостность какого-либо ресурса, и ликвидацию различий между двумя копиями. То есть, если мы берем электронную денежную систему, то мы не должны одними и теми же деньгами рассчитываться с двумя разными людьми, поскольку тогда нарушится целостность системы. Если мы отправим определенную сумму, с нашего счета автоматически произойдет списание, то есть быстрая синхронизация в системе.
Чтобы мы эту же сумму не отдали другому человеку, обманув систему и взяв деньги из воздуха, в случае с чековой книжкой синхронизация не могла быть быстрой, так как человеку нужно было дойти до банка — только тогда он мог её обналичить, и банк списал бы с его чековой книжки необходимую сумму.
Если бы яппы решили выбрать одного соплеменника и дать ему всю информацию о транзакциях, чтобы не хранить у себя в голове, то это была бы централизация данных, и тогда получился бы банк, который берет определенный процент от транзакций или плату за оказание своих услуг.
Также, если вдруг какой-либо камень затопит водой или он разрушится, то вся информация будет храниться в голове у соплеменников, и на этот камень также будут совершаться покупки и продажи, то есть транзакции, так как этот камень уже занесен в распределенную бухгалтерскую книгу, в ту самую что хранится в сознании у каждого яппа.
3. Как устроен блокчейн? Цепочка блоков
Суть блокчейна — в прозрачности всей информации путем её распределения между всеми участниками.
Как мы уже выяснили, блокчейн — это распределенная база данных. Она не подключена к общему серверу и хранит постоянно растущий список всех транзакций и записей.
Блокчейн позволяет информации существовать в одной базе, где огромное количество участников хранят идентичные данные, которые синхронизированы между собой.
Что необходимо запомнить?
Блокчейн — это цепочка блоков, где каждый новый блок содержит:
- Список транзакций (кто кому перевел деньги).
- Хеш предыдущего блока (как цифровая печать, связывающая блоки).
Что такое хеш?
Это уникальный "отпечаток" данных.
Давайте приведем более наглядный пример. Если мы возьмём красную и желтую краску, то это будет информация. Смешав их, мы получим оранжевую краску — это будет хеш, то есть имея красный и желтый, мы можем получить оранжевый, но имея лишь оранжевый цвет, мы не сможем получить красный и желтый.
Но как же блоки не теряются?
Для этого нужен хеш, например, в торренте уже давно используется хеш именно для сборки файлов по очередности.
Как это происходит?
Итак, есть основной блок, который содержит в себе хеш No1.
Следующий блок содержит в себе хеш предыдущего блока, то есть хеш No1 и свою информацию, которая шифруется в хеш No2.
Следующий блок содержит в себе хеш No2, свою информацию и шифруется в хеш No3 и так далее по нарастающей.
С помощью данного метода компьютер понимает последовательность данных, какой блок идет за каким.
Это базовая теория, которую должен приблизительно понимать каждый уважающий себя "криптан".
Почему нельзя подделать блок?
- Если изменить хотя бы одну транзакцию в прошлом блоке, поменяется его хеш.
- Все последующие блоки окажутся "битыми", и сеть отвергнет подделку.
- Чтобы понять, какой блок идет за каким, необходима криптографическая хеш-функция, которая шифрует данные.
4. Из чего состоит блок?
Состав блока биткоина:
хеш, время сделки, транзакции и nonce.
Что такое хеш и для чего он используется, мы разобрали ранее. Чтобы более детально рассказать о транзакциях в сети биткоин, важно понимать, что такое система закрытого и открытого ключа, и как она работает.
Публичные, приватные ключи и транзакции.
Для начала давайте разберём, как можно передать засекреченную информацию другому человеку, используя открытый канал связи. Для этого и используется криптография, например: есть Елена и Василий, которые хотят передать в железном ящике секретную информацию, по открытому каналу связи.
Есть Екатерина, которая получает всю почту. И она хочет получить информацию, которая находится в этом сундуке. При этом она имеет доступ к каждой посылке Васи и Лены.
Вася и Лена будут следовать по определенному протоколу.
Протокол — это последовательная цепочка действий, которую нельзя нарушать.
Елена кладет свое письмо в железный ящик и, заперев его на замок, отправляет Василию. Катя также получает этот ящик, но не может его открыть, так как ключ от замка находится только у Елены;
Василий при получении ящика берет свой замок и, заперев им ящик, отправляет обратно. Екатерина также получает этот ящик, но не может его открыть, так как ключ от замков находится у Лены и Васи;
Елене ящик приходит уже с двумя замками, своим замком и замком Васи;
Лена снимает свой замок и отправляет ящик обратно Васе.
Катя также получает этот ящик, но не может его открыть, так как ключ от замка находится только у Васи;
Василию приходит ящик только с его замком, от которого у него есть ключ;
Вася отпирает оставшийся замок своим ключом и читает сообщение.
Естественно, на данный момент все работает на более сложном уровне, но идея приватного ключа, думаю,понятна.
Если Вася или лена отдадут ключ от своего замка кому-либо, например, Екатерине, то она с легкостью может получить секретную информацию, которая находится в данном ящике.
Важно понимать, что приватный ключ нельзя терять, нельзя никому давать или показывать, так как потеряв данный ключ, вы теряете все, что есть в вашем кошельке, и восстановить доступ к вашим деньгам никто не сможет, поэтому необходимо соблюдать элементарные правила безопасности.
Публичный ключ вы можете передавать для совершения транзакций, то есть это адрес вашего кошелька.
Если рассматривать на грубом примере, то приватный ключ — это ключ от вашей квартиры, только потеряв его, вы теряете квартиру. Трагично? Ещё как!
Публичный ключ — это адрес вашего дома, квартиры и код от домофона, который могут знать все друзья. Сама же транзакция происходит следующим образом. Вы посылаете со своего кошелька определенное количество биткоинов на другой кошелек, используя публичный ключ, предоставленный вам человеком, которому вы делаете перевод. С помощью своего приватного ключа вы подписываете согласие на перевод. Так происходит перевод ваших биткоинов насчет другого человека, и появляется определенная транзакция.
Если брать упрощённо одного человека, то его транзакция состоит из input и output, то есть ввод и вывод средств. Чтобы рассчитать, сколько средств на данный момент у человека, необходимо сложить все вводы и выводы средств, с самого первого поступления биткоина на кошелек определенного человека. Когда появляется транзакция, она попадает в мемпул.