Ви вперше почули про біткоїн, які ваші думки? Біткоїн це афера, піраміда, МММ, недовіра, шахрайство?
Уявіть, якщо взяти яблуко в руку, витягнути руку вперед та відпустити яблуко – що станеться? У вас є сумніви, недовіра з приводу подій які стануться з яблуком? Ви впевнені, що яблуко впаде на землю, бо ви маєте досвід, знання законів природи. Знання дають впевненість.
Так само і з Біткоїном. Довіра та впевненість в безпеці системи Біткоїн виникають тоді, коли знаєш як вона працює, які властивості та корисні функції має система Біткоїн.
Робота системи Біткоїн заснована криптографії. Саме шифрування дозволяє створювати унікальні біткоїн адреси та секретні ключі для управління біткоїнами на стороні користувача без підключення до мережі інтернет, що забезпечує одноособову приналежність біткоїнів користувачу. Користувач отримує пару ключів, яка зберігається тільки в нього і ніде більше, яку він контролює, розпоряджається і несе повну відповідальність за зберігання секретної інформації від своїх біткоїнів. Це як золото в вашій кишені.
Підпишіться на youtube канал Школи Біткоїн
Андреас Антонопулос відповідає на питання Як працює криптографія (шифрування) в системі Біткоїн.
Запитання Антонопулосу: “Чи могли б Ви, більш детально пояснити криптографічні рішення цифрових підписів в системі Біткоїн?”
Добре. Постараюся пояснити як найкраще.
Криптографія, використовувана в Біткоїн, і майже у всіх інших криптографічних валютах заснована на розділі математики, який називається “еліптична криптографія”, і цей розділ був вибраний для рішення даної задачі, оскільки в області арифметики еліптична крива працює майже так само, як арифметика в дійсних числах або цілих числах з одною важливою особливістю. Додавання і множення точно такі ж, як і в простій арифметиці, але тут немає віднімання і ділення, тому, якщо ви помножите два числа разом, ви можете легко отримати результат, але якщо ви спробуєте розділити його, у вас нічого не вийде, і єдиний спосіб знайти вихідні числа – перебрати всі можливі комбінації. Перебір варіантів – основа криптографії, яка працює на еліптичних кривих. Таким чином, це ефективна одностороння функція, і цей метод криптографії використовується в багатьох способах шифрування.
Тепер ви можете подумати: “Як можна створити односторонню функцію?” Думаю, що найкращий приклад, який я бачив, і ви також можете знайти це відео в YouTube – це приклад змішування фарб. Допустимо: я беру синій і жовтий кольори. Чи легко змішати ці два кольори разом? Дуже легко. Я можу змішати їх разом, і отримаю відтінок зеленого. Тепер, якщо я покажу вам цей відтінок зеленого, ви зможете точно сказати, які два відтінки синього і жовтого я використав? Не зможете. Якщо б ви пофарбували свій будинок і прийшовши в магазин сказали, щоб вам підібрали такі ж кольори якими пофарбовані стіни, то людям складно це зробити, тому що вони не знають, які фарби ви змішували, щоб отримати ваш колір.
Еліптична крива працює подібним чином. Цифрові підписи використовують деякі хитрості додавання і множення, знаючи, що ділення неможливе, щоб доказати, що людина, яка створила цифровий підпис має приватний ключ, але не розкриває його, тому ви створюєте трьохзначний підпис, який генерує число і цей номер є результатом множення і додавання випадкових чисел, а ваш приватний ключ створює новий номер, який ми можемо перевірити, порівнявши його з публічним ключем, який був створений на основі приватного ключа, але ми не зможемо дізнатися приватний ключ.
Цифровий підпис дозволяє вам доказати, що ви знаєте секретний ключ, і будь-хто, у кого є ваш публічний ключ, може перевірити підпис, пов’язаний з цим ключем, щоб знати, що підпис зроблений вашим приватним ключем, але неможливо дізнатись, який ваш приватний ключ. Таким чином, сенс цифрових підписів – це доказ підпису приватним ключем не відкриваючи його. Конкретний алгоритм, який називається ECDSA, або алгоритм цифрового підпису еліптичної кривої, детально описаний в багатьох матеріалах, ви також можете знайти його в 6 розділі книги “Освоєння Біткоїну.” Наприклад, в github, якщо ви подивитесь розділ для математики ECDSA, ви знайдете скорочений опис формули.
Для того, щоб створити цифровий підпис, потрібно створити випадковий номер, і ми використовуємо цей номер, який називається “ефемерний закритий ключ” для створення точки на еліптичній кривій шляхом множення його з точкою яка генерується. Потім ми беремо значення Х цієї точки, додаємо до нього наш відомий приватний ключ і множимо його на наш відомий приватний ключ, а потім додаємо результат до хешу повідомлення, яке створює певне значення, яке ми використовуємо як частину нашого підпису.
Якщо ви не розбираєтесь в рівняннях – нічого страшного. Важливо розуміти наступне: приватний ключ – це число, публічний ключ – це точка на еліптичній кривій, яка створюється шляхом множення приватного ключа на певну іншу точку, яка називається “точкою генератора”. І доки ви знаєте приватний ключ, ви можете створити публічний ключ. Якщо ви знаєте публічний ключ, ви не зможете отримати приватний ключ. На цьому і заснована безпека системи Біткоїн.