Предыдущие встречи школы блокчейн 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 флешке).
На этом, раздел о ключах и кошельках мы завершим. Следующая встреча будет о майнинге, в ходе которого бухгалтера играют в гонки-наперегонки в поисках решения математической задачи. За этим шутливым процессом кроется важный механизм, который называется - консенсус, он обеспечивает не только рождение новых биткоинов, но и всю коллективную работу системы. До новых встреч!.
Задание:
- Найдите способ импортировать указанный приватный ключ в любой кошелек и проверить, а действительно ли на представленных ключах нет биткоинов? А вдруг они там есть? ;-)))
А у меня назрел еще один вопрос. В свете Голоса опять же... Насколько я поняла, у делегатов есть ноды публичные, а есть приватные - зачем такое различие и для чего они нужны? :)
У многих делегатов запущено две ноды, но вторая - в режиме ожидания на случай выхода из строя первой. В случае, если такое происходит, автоматически или вручную (как у делегата настроено) подключается к работе вторая.
Фишка в том, что когда сеть подрастет хотя бы до размеров Стима, синхронизация блокчейнов после сбоя может занимать длительное время, несколько часов. Чтобы за это время не пропускать блоки, вторая нода, которая находится в режиме ожидания, берет подпись блоков на себя.
Главная проблема пропуска блоков - это возрастание времени транзакции вдвое. Т.е. когда до делегата доходит очередь, а его нет на месте, блок передается на подпись другому, но время.. потеряно)
Также, вторая нода запускается в режиме SEED (при желании). Т.е. это те места, в которым могут подключаться другие клиенты и ноды. Не все ноды связаны между собой, но все они связаны через SEEDы, как через некие узлы.
Спасибо за ответ! ОЧень доступно.
Но про SEED ноды я бы послушала поподробнее.. Может, это вписывается в тему след. урока про майнинг? :)
Пообщаемся, расскажу ;-)
Спасибо за информацию , изложенную таким легким для восприятия слогом.
^_^
Address = SHA256(PUB) - Вообще-то это не так. Формула немного сложнее: https://steemit.com/blockchain/@dervish/postroenie-bitkoin-adresa-po-izvestnomu-publichnomu-klyuchu
Да, это так. Но подача материала построена для новичков, не думаю, что такие навороты кому-то нужны, кроме технических специалистов. Тонкости мешают понять суть, но правку в текст внес) Спасибо за уточнение)
Подключайтесь к созданию и доработке материалов, это важно для сообщества ;-)
https://telegram.me/dacom_dark_sun
Отличный стиль изложения, без лишних наворотов!
Оно и отлично! Значит на верном пути ;-)
спасибо за такое доступное изложение.
убрал несколько пробелов в знаниях
Приятно ^_^