Школа блокчейн. Level 1. Транзакции, адреса, кошельки.
Предыдущие встречи школы блокчейн Level 1:
Мы плавно подходим к тому, как происходит эмиссия биткоина и майнинг, но сегодня мы будем разговаривать о том, как работают транзакции, что такое цифровая подпись, адрес и биткоин-кошелек.
Кратко повторим материал прошлых встреч.
Итак, блокчейн - это коллективный бухгалтер, который сообща контролирует транзакции в сети. Каждая страница книги учета называется блок, все блоки связаны между собой с помощью результата вычисления хэш-функции, которая не позволяет заменить, изменить или подделать совершенные транзакции.
Транзакции - это передача прав владения биткоином от одного человека, к другому. Для совершения транзакции, вы должны “прокричать” в сеть бухгалтеров сообщение, вроде такого:
Я, Dark.Sun, у меня есть 1 биткоин и я передаю его Иисусу, вот его адрес: 1KuWLoZuoJgz3N6sLoAwGth9XGm8YuFTGt, моя подпись: Pub, Priv.
Что такое цифровая подпись?
Когда вы заводите кошелек биткоин (устанавливаете программу), у вас на компьютере создается файл, в котором хранится две записи: ключ приватный (PRIV) и ключ публичный (PUB).
Приватный ключ генерируется абсолютно случайным образом, публичный ключ, в свою очередь, создается путем получения хэш-суммы от приватного =>
PUB = SHA256(PRIV)
Эти два ключа образно можно представить как ключ и замочную скважину. Только после того, как вы вставите приватный ключ в публичный (повторно рассчитаете хэш-сумму), и при их полном их взаимном соответствии (т.е. публичный ключ вновь получается при вычислении хэш-суммы от приватного) - биткоин определяется как ваш и становится доступным к переводу.
Адрес.
Так а что такое адрес, на который перечисляются биткоины? На основе публичного ключа вновь вычисляется хэш-сумма (т.е. второй раз от приватного):
Address = SHA256(PUB), и получается что-то вроде этого:
1KuWLoZuoJgz3N6sLoAwGth9XGm8YuFTGt.
Это - адрес, который необходимо знать для осуществления перевода другому человеку (он должен вам его предоставить). Его смысл можно представить себе как точное местонахождение биткоина в книге учета. Важно, что в книге учета ни в каком виде не записаны ваши приватные и публичные ключи, сеть не знает о них, а они есть только у вас и их нужно держать в секрете.
Передача биткоин-адреса другому человеку - абсолютно безопасна, поскольку свойства хэш-суммы таковы, что невозможно из адреса получить публичный ключ:
Pub = 261c1eb21fc4708c6acbe1cfc6d4565652e9e768b620782898936b93000a6c02
И тем более, приватный:
Priv= 04678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5f
Проверка транзакции.
Возвращаясь назад, вспомним, что мы сообщили коллективному бухгалтеру о своем желании совершить транзакцию, приложили адрес получателя и свои ключи PRIV и PUB. Что дальше?
После получения подобного сообщения, коллективный бухгалтер начинает проверку:
- А действительно-ли вы получали этот конкретный биткоин (есть ли запись получения в книге учета).
- Проверяет целостность адреса получателя (в случае опечатки, транзакция будет отменена).
- Проверяет цифровую подпись, предоставленную текущим хозяином биткоина. Только если ключ (Priv) совпадает с замком (Pub) - осуществляется запись в книгу учета.
После совершения записи одним бухгалтером, другие бухгалтеры сети осуществляют проверку совершенной транзакции и подтверждают ее, если все данные верны, или же отвергают, если что-то не так. После трех подтверждений транзакция считается необратимой.
Так а что же такое кошелек?
Это файл на компьютере, в котором хранятся все публичные и приватные ключи, принадлежащие вам, как владельцу. К ним в соответствие ставятся биткоин-адреса, на которые перечисляются биткоины, а затем, для вашего удобства, суммы биткоинов складываются, показывая общий результат. В вашем кошельке могут быть сотни, тысячи или миллионы приватных/публичных ключей, обслуживание которых берет на себя кошелек. Ваша задача - хранить пароль от него, и хранить сам кошелек в недоступном месте (например, на USB флешке).
На этом, раздел о ключах и кошельках мы завершим. Следующая встреча будет о майнинге, в ходе которого бухгалтера играют в гонки-наперегонки в поисках решения математической задачи. За этим шутливым процессом кроется важный механизм, который называется - консенсус, он обеспечивает не только рождение новых биткоинов, но и всю коллективную работу системы. До новых встреч!.
Задание:
- Найдите способ импортировать указанный приватный ключ в любой кошелек и проверить, а действительно ли на представленных ключах нет биткоинов? А вдруг они там есть? ;-)))