Введение в технологию Блокчейн. Тимур Сергеевич Машнин
Чтение книги онлайн.

Читать онлайн книгу Введение в технологию Блокчейн - Тимур Сергеевич Машнин страница 44

СКАЧАТЬ на слайд.

      Здесь мы должны сначала сгенерировать точку (0, S) по оси Y, а затем нарисовать линию со случайным наклоном через эту точку.

      Затем мы создаем точки на этой линии, сколько захотим.

      Получается, что это разделение секрета S на N – количество созданных нами точек и K = 2.

      Почему это работает?

      Во-первых, если мы получим две из созданных точек, мы можем провести через них линию и посмотреть, где она пересечет ось Y.

      Это даст нам секрет S.

      С другой стороны, если у нас есть только одна точка, она ничего не говорит о секрете S, потому что наклон линии случайный.

      Каждая линия в этой точке равно вероятна, и все они пересекают ось Y в разных точках.

      Есть только одна тонкость.

      Мы берем большое простое число P.

      Так, чтобы секрет S был между 0 и P-1, включительно.

      Далее мы генерируем случайное значение R, также между 0 и P-1, и создаваемые нами точки

      x = 1, y = (S + R) mod P – остаток от деления

      x = 2, y = (S + 2R) mod P

      x = 3, y = (S + 3R) mod P

      и так далее.

      Секрет соответствует точке x = 0, y = (S + 0 * R) mod P, которая равна x = 0, y = S.

      Таким образом, это способ сделать деление секрета с K = 2 и любым значением N.

      Если N = 4, вы можете разделить свой приватный ключ на 4 части и поместить их на 4 разных устройства, чтобы, если кто-то украдет какое-либо из этих устройств, они ничего не узнают о вашем ключе.

      С другой стороны, даже если два из этих устройств будут уничтожены, вы сможете восстановить ключ, используя два других устройства.

      Как и было обещано, мы увеличили доступность и безопасность.

      Но мы можем сделать лучше: мы можем делать деление секрета с любыми N и K, если K не больше N.

      Чтобы посмотреть, как это сделать, вернемся к фигуре.

      Причина, по которой мы использовали линию вместо некоторой другой кривой, состоит в том, что линия является многочленом степени 1.

      Это означает, что для восстановления линии нам нужно не менее двух точек.

      Если бы мы хотели сделать K = 3, мы бы использовали параболу, которая представляет собой квадратичный многочлен или многочлен степени 2.

      Для построения квадратичной функции необходимы три точки.

      Мы можем использовать приведенную таблицу, чтобы понять, что происходит.

      Существует формула, называемая интерполяцией Лагранжа, которая позволяет восстановить многочлен степени K-1 из любых K точек на его кривой.

      Поэтому, в результате всего этого у нас есть способ хранить любой секрет в виде N частей, чтобы мы были в безопасности, даже если злоумышленник узнает K-1 частей из них.

      И в то же время мы можем спокойно утерять N-K частей.

      Между прочим, ничего из этого не является специфическим для Биткойна.

      Вы можете тайно делить свои пароли прямо сейчас и раздавать части своим друзьям или размещать их на разных устройствах.

      Но СКАЧАТЬ