Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
Привет, Хаброжители! Хотите разобраться в технологии Биткоин на глубоком концептуальном уровне?
«Грокаем технологию Биткоин» на наглядных схемах и ярких примерах учит мыслить по-новому. Вы узнаете, как на самом деле происходит майнинг, возникают биткоины, как войти в сеть Биткоин и как функционирует цифровой кошелек.
Основы технологии Биткоин; хеш-функции и цифровые подписи; криптография и алгоритмы шифрования; анатомия транзакций; верификация и пропускная способность; хард- и софт-форки
От вас не требуется продвинутых навыков программирования, но базовое представление об основах — базах данных, компьютерных сетях, веб-серверах и (о ужас!) математики — не будет лишним.
В электронной таблице жетонов на булочки уже не будет личных имен — мы заменим их хешами открытых ключей. Это полезно с точки зрения конфиденциальности. Никто не сможет легко понять, кто кому платит, и другим будет труднее извлекать информацию из электронной таблицы и видеть, сколько жетонов потратил кто-то из ваших коллег. Лиза тоже считает это полезным, потому что ей не придется вести таблицу имен и открытых ключей.
При переходе на использование хешей открытых ключей в электронной таблице сотрудники компании больше не будут указывать свои имена в письмах Лизе. Вместо имен они будут использовать строки шестнадцатеричного кода, представляющие хеши открытых ключей. Но это означает, что возрастает риск допустить опечатку. Если вы допустите опечатку, ваши жетоны могут сгореть!
Кто-то из сотрудников изобрел адреса жетонов (адреса Биткоин), защищающие от потери денег из-за ошибок при вводе (рис. 3.1). Адреса жетонов используются пользователями для переводов друг другу, почти как адреса электронной почты, но они отсутствуют в электронной таблице.
У вас и многих ваших коллег есть медицинская страховка от страховой компании Acme Insurances. Компания Acme убедила Джона передать им копию электронной таблицы. Сотрудники Acme заметили, что могут скорректировать страховую премию или привычки работников потреблять булочки (рис. 3.2) в случае возможного страхового спора.
Другой неприятный факт, связанный с электронной таблицей, заключается в том, что любой сотрудник сможет легко увидеть баланс других сотрудников, а также узнать их привычки в потреблении булочек.
Сотрудники попросили Лизу найти решение этих проблем, иначе они перестанут использовать электронную таблицу.
Рис. 3.2. Acme Insurances следит за привычкой Хлои есть много булочек
Лиза постоянно обновляет таблицу имен и открытых ключей с тех пор, как сотрудники начали использовать цифровые подписи. Ей надоело это делать, поэтому она выступила с идеей, которая пойдет на пользу и ей, и всем остальным: заменить все имена в электронной таблице соответствующими открытыми ключами (рис. 3.3).
Рис. 3.3. Замена имен открытыми ключами. Теперь разобраться в записях в электронной таблице намного сложнее, что хорошо скажется на конфиденциальности
Теперь трудно понять, сколько булочек съела Хлоя, не зная ее открытого ключа. Если сотрудники Acme Insurances получат копию этой новой электронной таблицы, они не смогут определить, кто является отправителями и получателями. Они будут видеть только открытые ключи отправителя и получателя каждого платежа.
Теперь Лиза может удалить свою громоздкую таблицу с именами и открытыми ключами. Но после этого пользователи больше не должны использовать имена при совершении платежей. Вместо этого они должны будут использовать открытый ключ отправителя и открытый ключ получателя (рис. 3.4).
Письмо Лизе содержит несколько важных элементов:
Сообщение, включающее:
Подпись, созданную закрытым ключом отправителя.
Главное отличие в том, что теперь платежи выполняются с использованием псевдонимов: имена заменили соответствующие открытые ключи. В остальном платеж выглядит так же, как и раньше.
Предположим, на работу в компанию пришла новая сотрудница. Ее зовут Фаиза. Компания хочет послать ей 100 CT в качестве приветственного подарка. Как это сделать?
Для этого, во-первых, необходим открытый ключ получателя — Фаизы. Фаиза раньше не пользовалась системой жетонов, поэтому ей нужно создать пару ключей и передать открытый ключ отправителю — компании, — как показано на рис. 3.5.
Фаиза создает закрытый и открытый ключи, следуя процедуре, что была описана в главе 2 в разделе «Улучшение безопасности жетонов на булочки», но пока не передает свой открытый ключ Лизе. Теперь, когда у Лизы нет таблицы имен и открытых ключей, нет смысла передавать ей открытый ключ. Ей это не нужно. Вместо этого Фаиза передает открытый ключ компании, которая хочет перевести ей жетоны на булочки.
Компания создает сообщение, в котором просит Лизу перевести 100 CT с 037e944a...36de9496 на 029a726c...ad8f436d. Затем подписывает сообщение цифровой подписью и отправляет его Лизе. Лиза использует
чтобы убедиться, что сообщение подписано закрытым ключом отправителя, идентифицируемого открытым ключом. Она также проверяет баланс отправителя в электронной таблице. Делается это точно так же, как и во времена, когда в электронной таблице хранились имена, — она отыскивает записи, соответствующие открытому ключу отправителя, и вычисляет баланс.
Лиза прежде не видела открытый ключ получателя, но ей все равно. Ей важно лишь, чтобы отправитель имел деньги и сообщение было правильно подписано. Она переведет на баланс получателя сумму, указанную в сообщении.
Фаиза видит новую запись со своим открытым ключом в столбце «Кому», и это греет ей душу. Теперь она может тратить свои жетоны, как ей заблагорассудится. Фаизе не понадобилось беспокоить Лизу, посылая свой открытый ключ, и отвлекать ее от работы.
Итак, подведем итоги получившегося:
Эти изменения улучшили конфиденциальность и упростили работу Лизы. В конце этой главы мы подробно обсудим, как еще больше улучшить конфиденциальность.
В этом примере, получив письмо, Лиза почти наверняка будет знать, кто отправитель (в данном случае компания), посмотрев на поле «От» электронного письма. Но пока будем считать, что Лиза никому не раскрывает и никак не использует эту личную информацию. В этом примере мы используем электронную почту вместо одноранговой сети Биткоин. Сеть Биткоин, которая подробно обсуждается в главе 8, не использует личную информацию.
Подумайте, что теперь в Acme Insuranceans смогут узнать из электронной таблицы. Какую информацию они могут получить, если выяснят имя отправителя или получателя одного платежа? Они смогут идентифицировать все платежи, которые сделал человек.
» Более подробно с книгой можно ознакомиться на сайте издательства
» Оглавление
» Отрывок
Для Хаброжителей скидка 25% по купону — Биткоин
«Грокаем технологию Биткоин» на наглядных схемах и ярких примерах учит мыслить по-новому. Вы узнаете, как на самом деле происходит майнинг, возникают биткоины, как войти в сеть Биткоин и как функционирует цифровой кошелек.
Основы технологии Биткоин; хеш-функции и цифровые подписи; криптография и алгоритмы шифрования; анатомия транзакций; верификация и пропускная способность; хард- и софт-форки
От вас не требуется продвинутых навыков программирования, но базовое представление об основах — базах данных, компьютерных сетях, веб-серверах и (о ужас!) математики — не будет лишним.
Отрывок. Адреса
В электронной таблице жетонов на булочки уже не будет личных имен — мы заменим их хешами открытых ключей. Это полезно с точки зрения конфиденциальности. Никто не сможет легко понять, кто кому платит, и другим будет труднее извлекать информацию из электронной таблицы и видеть, сколько жетонов потратил кто-то из ваших коллег. Лиза тоже считает это полезным, потому что ей не придется вести таблицу имен и открытых ключей.
При переходе на использование хешей открытых ключей в электронной таблице сотрудники компании больше не будут указывать свои имена в письмах Лизе. Вместо имен они будут использовать строки шестнадцатеричного кода, представляющие хеши открытых ключей. Но это означает, что возрастает риск допустить опечатку. Если вы допустите опечатку, ваши жетоны могут сгореть!
Кто-то из сотрудников изобрел адреса жетонов (адреса Биткоин), защищающие от потери денег из-за ошибок при вводе (рис. 3.1). Адреса жетонов используются пользователями для переводов друг другу, почти как адреса электронной почты, но они отсутствуют в электронной таблице.
Раскрыты привычки потребления булочек
У вас и многих ваших коллег есть медицинская страховка от страховой компании Acme Insurances. Компания Acme убедила Джона передать им копию электронной таблицы. Сотрудники Acme заметили, что могут скорректировать страховую премию или привычки работников потреблять булочки (рис. 3.2) в случае возможного страхового спора.
Другой неприятный факт, связанный с электронной таблицей, заключается в том, что любой сотрудник сможет легко увидеть баланс других сотрудников, а также узнать их привычки в потреблении булочек.
Сотрудники попросили Лизу найти решение этих проблем, иначе они перестанут использовать электронную таблицу.
ACME INSURANCES
Эта очень неэтичная страховая компания предпринимает серьезные попытки шпионить за вашими привычками, чтобы «скорректировать» страховую премию.
Рис. 3.2. Acme Insurances следит за привычкой Хлои есть много булочек
Замена имен открытыми ключами
Лиза постоянно обновляет таблицу имен и открытых ключей с тех пор, как сотрудники начали использовать цифровые подписи. Ей надоело это делать, поэтому она выступила с идеей, которая пойдет на пользу и ей, и всем остальным: заменить все имена в электронной таблице соответствующими открытыми ключами (рис. 3.3).
Рис. 3.3. Замена имен открытыми ключами. Теперь разобраться в записях в электронной таблице намного сложнее, что хорошо скажется на конфиденциальности
Теперь трудно понять, сколько булочек съела Хлоя, не зная ее открытого ключа. Если сотрудники Acme Insurances получат копию этой новой электронной таблицы, они не смогут определить, кто является отправителями и получателями. Они будут видеть только открытые ключи отправителя и получателя каждого платежа.
Теперь Лиза может удалить свою громоздкую таблицу с именами и открытыми ключами. Но после этого пользователи больше не должны использовать имена при совершении платежей. Вместо этого они должны будут использовать открытый ключ отправителя и открытый ключ получателя (рис. 3.4).
Письмо Лизе содержит несколько важных элементов:
Сообщение, включающее:
- сумму;
- открытый ключ отправителя;
- открытый ключ получателя.
Подпись, созданную закрытым ключом отправителя.
Главное отличие в том, что теперь платежи выполняются с использованием псевдонимов: имена заменили соответствующие открытые ключи. В остальном платеж выглядит так же, как и раньше.
Новая процедура проведения платежа
Предположим, на работу в компанию пришла новая сотрудница. Ее зовут Фаиза. Компания хочет послать ей 100 CT в качестве приветственного подарка. Как это сделать?
Для этого, во-первых, необходим открытый ключ получателя — Фаизы. Фаиза раньше не пользовалась системой жетонов, поэтому ей нужно создать пару ключей и передать открытый ключ отправителю — компании, — как показано на рис. 3.5.
Фаиза создает закрытый и открытый ключи, следуя процедуре, что была описана в главе 2 в разделе «Улучшение безопасности жетонов на булочки», но пока не передает свой открытый ключ Лизе. Теперь, когда у Лизы нет таблицы имен и открытых ключей, нет смысла передавать ей открытый ключ. Ей это не нужно. Вместо этого Фаиза передает открытый ключ компании, которая хочет перевести ей жетоны на булочки.
Компания создает сообщение, в котором просит Лизу перевести 100 CT с 037e944a...36de9496 на 029a726c...ad8f436d. Затем подписывает сообщение цифровой подписью и отправляет его Лизе. Лиза использует
- сообщение,
- открытый ключ отправителя
- и подпись,
чтобы убедиться, что сообщение подписано закрытым ключом отправителя, идентифицируемого открытым ключом. Она также проверяет баланс отправителя в электронной таблице. Делается это точно так же, как и во времена, когда в электронной таблице хранились имена, — она отыскивает записи, соответствующие открытому ключу отправителя, и вычисляет баланс.
ЛИЗА В БИТКОИН Лиза решает те же задачи в отношении жетонов, что и майнер в Биткоин в отношении платежей в биткоинах.
Лиза прежде не видела открытый ключ получателя, но ей все равно. Ей важно лишь, чтобы отправитель имел деньги и сообщение было правильно подписано. Она переведет на баланс получателя сумму, указанную в сообщении.
Фаиза видит новую запись со своим открытым ключом в столбце «Кому», и это греет ей душу. Теперь она может тратить свои жетоны, как ей заблагорассудится. Фаизе не понадобилось беспокоить Лизу, посылая свой открытый ключ, и отвлекать ее от работы.
Итак, подведем итоги получившегося:
- имена в электронной таблице заменили открытые ключи;
- Лиза избавилась от таблицы с именами и открытыми ключами;
- платежи производятся с использованием открытых ключей отправителя и получателя вместо имен.
Эти изменения улучшили конфиденциальность и упростили работу Лизы. В конце этой главы мы подробно обсудим, как еще больше улучшить конфиденциальность.
В этом примере, получив письмо, Лиза почти наверняка будет знать, кто отправитель (в данном случае компания), посмотрев на поле «От» электронного письма. Но пока будем считать, что Лиза никому не раскрывает и никак не использует эту личную информацию. В этом примере мы используем электронную почту вместо одноранговой сети Биткоин. Сеть Биткоин, которая подробно обсуждается в главе 8, не использует личную информацию.
Подумайте, что теперь в Acme Insuranceans смогут узнать из электронной таблицы. Какую информацию они могут получить, если выяснят имя отправителя или получателя одного платежа? Они смогут идентифицировать все платежи, которые сделал человек.
» Более подробно с книгой можно ознакомиться на сайте издательства
» Оглавление
» Отрывок
Для Хаброжителей скидка 25% по купону — Биткоин