第2課

Як працює біткойн

Біткойн заснований на технології блокчейн, яка є публічно поширеною книгою, яка використовує механізм консенсусу PoW для підтримки безпеки мережі.

Народження біткойна та блокчейну пов’язано з двома давніми проблемами цифрової валюти: проблемою подвійних витрат і проблемою візантійських генералів.

Від фізичної до цифрової валюти: вирішення проблеми подвійних витрат

Порівняно з фізичною валютою в повсякденному житті, найбільша складність у розвитку електронної готівки полягає в тому, як подолати «проблему довіри». Причина, чому найдавніші мушлі та дорогоцінні метали можуть використовуватися як загальні еквіваленти, полягає в тому, що вони мають певний дефіцит, а пізніші фізичні банкноти покладаються на довіру держави для вирішення проблеми довіри.

Ці фізичні валюти мали цінність і могли миттєво завершити передачу вартості. У цифрову еру будь-який контент, по суті, є комбінацією кодів 0 і 1, а цифрові гроші можна скопіювати у дві копії та надати двом різним одержувачам одночасно, що є так званою «проблемою подвійних витрат». Інтернет сам по собі не має можливості представляти цінність, тому людям раніше доводилося використовувати централізовану систему рахунків із централізованим сервером, таким як банк, щоб використовувати кредитні картки та інші типи електронних грошей.

Система, яка не вимагає довіри: Distributed Ledger

Але чи є справді довірена третя сторона – питання. Існує ризик єдиної точки збою, як-от атаки на централізовані сервери, і навіть уряди можуть збирати «сеньйораж» шляхом надмірної емісії грошей. Рішення, запропоноване біткойном, полягає в тому, щоб відмовитися від сторонніх посередників і побудувати розподілену книгу, де кожен знаходиться в центрі книги.

Розглянемо село, де є лише один «голова», відповідальний за ведення бухгалтерської книги, і всі витрати членів села реєструються у сільського голови, який є центром системи бухгалтерських книг. Система може добре працювати, якщо сільський голова заслуговує довіри; однак, якщо керівник, який є центром системи, є злодієм, іншим може бути важко виявити його.

Розглянемо «децентралізоване» село, в якому кожен член тримає ідентичну бухгалтерську книгу. Коли учасник хоче внести зміни до книги, він або вона має повідомити про це інших учасників за допомогою «широкомовної передачі», щоб вони могли підтвердити записи та скопіювати їх до власних книг. Процес транзакції не буде завершено, доки всі учасники не підтвердять і не оновлять свої книги. По суті, так працює мережа Bitcoin.

Реалізація розподіленої книги: блоки та блокчейн

Біткойн винайшов новий тип цифрової системи для запису транзакцій активів, відому як розподілена книга. На відміну від централізованого запису, де дані зберігаються на централізованих серверах, блокчейн є децентралізованою базою даних, де кожен вузол у мережі діє як власник бази даних і супроводжувач.

Біткойн був першим широкомасштабним застосуванням блокчейну, а блокчейн є основою Біткойна.

Систему Bitcoin можна розділити на три рівні: рівень даних, рівень протоколу та рівень додатків. Почнемо з «реєстру» (рівня даних), яким володіє кожен член системи Bitcoin.

Від дерев Merkle до блокових «ланцюгів»

Блокчейн — це, по суті, розподілена книга, яка підтримується всіма вузлами в мережі, причому кожен вузол зберігає всі дані блокчейну. «Ланцюжок» блоків, який зберігається вузлом, — це впорядкований ланцюжок блоків, з’єднаних разом, а сам блок — це незмінна структура даних, яка підтримується алгоритмом Cryptographic Hash.

Хеш-функція (SHA-256 і RipeMD160) — це критично важливий криптографічний алгоритм у біткойнах, який може перетворювати вхідне значення довільної довжини на вихідне значення фіксованої довжини з функціями випадковості та відсутності колізій. І важко вгадати вхідне значення для хеш-функцію з його виводу. Невелика зміна вхідних даних може призвести до кардинально іншого виходу. Вихідні дані хеш-функції можна легко отримати з вхідних даних, але для виведення вхідних даних із вихідних даних потрібне перерахування методом грубої сили, що потребує значної кількості часу та обчислювальної потужності. Багаторазове використання хеш-функцій спрощує та визначає структуру даних Bitcoin.

Блок Bitcoin складається з двох частин: тіла блоку та заголовка блоку. Тіло блоку містить усю інформацію про транзакції в цьому блоці, яка хешується кілька разів, щоб сформувати структуру, відому як дерево Merkle, яка складає тіло блоку. Перше повідомлення транзакції на кожному з цих блоків також відоме як транзакція coinbase і є транзакцією, яка генерує нові біткойни та винагороджує їх майнеру, тоді як усі інші транзакції є передачею між користувачами один одному.

Ці транзакції піддаються численним операціям хешування, щоб нарешті отримати значення під назвою Merkle Hash, яке є сумою всіх даних транзакції. Хеш Merkle разом із Nunce, мітками часу, хешами батьківського блоку та іншими даними складають заголовок блоку, і обчислення хеш-значення заголовка блоку може отримати хеш блоку цього блоку. Оскільки заголовок кожного блоку містить хеш-значення батьківського блоку, усі блоки з’єднані в ланцюжок. Блоки пов’язані між собою, і будь-яка зміна даних блоку призведе до зміни хешу блоку, що розірве ланцюжок.

Proof-of-Work (PoW): консенсусний механізм безпеки мережі

Після представлення «реєстру» (рівня даних), який зберігається кожним вузлом, перейдемо до рівня консенсусу біткойн, який відповідає за безпеку мережі.

Перш ніж заглиблюватися в розподілений консенсус, важливо зрозуміти проблему «візантійських генералів».

Візантійські генерали: проблема синхронізації кількох повідомлень

Проблема візантійських генералів сягає середньовіччя, коли візантійська армія покладалася на гінців для передачі інформації через величезну територію Візантії. Якби зрадник навмисно спотворив оперативну інформацію вищого начальства, це призвело б до непослідовних оперативних планів, що призвело б до «проблеми візантійських генералів».

Мережа Bitcoin складається з кількох децентралізованих вузлів, кожен з яких є незалежним, автономним і рівноправним «корпусом». Кожен вузол у мережі має власну унікальну копію даних блокчейну, і всі вони хочуть бути першими, хто пакетує транзакції та отримує винагороду в біткойнах. Отже, якому вузлу вдасться отримати права на реєстрацію та переконати всю мережу досягти консенсусу щодо зміни даних блокчейну?

Proof-of-Work (PoW): обчисліть відповідь і опублікуйте її в мережі для перевірки в реальному часі

Відповіддю біткойна є механізм консенсусу Proof-of-Work (PoW), широко відомий як «майнінг», який є цифровим обчислювальним процесом, що виконується вузлами, де перший вузол, який знайшов «відповідь», отримує права реєстру. Зокрема, вузол повинен продовжувати намагатися змінити Nunce заголовка блоку, обчислюючи хеш блоку, і, нарешті, отримати хеш блоку, де перші кілька бітів дорівнюють нулю.

На цьому етапі значення Nunce є відповіддю на запитання. Знайшовши відповідь, вузол передасть її іншим мережевим вузлам, і після перевірки відповіді інші вузли швидко візьмуть блок як новий батьківський вузол і продовжать наступний раунд майнінгових операцій.

Це створює проблему в тому, що для трансляції даних між вузлами потрібен час, і цілком можливо, що два або більше вузлів знайшли відповідь на головоломку одночасно до того, як спільнота в цілому дійшла згоди. Однак, оскільки два вузли упаковують різні транзакції coinbase, це призводить до двох різних дійсних блоків. Через різні сигнальні послідовності вузли майнера працюватимуть на обох форках. На цьому етапі мережа біткойн дотримуватиметься «правила найдовшого ланцюга», розглядаючи форк-ланцюг із найбільшою кількістю блоків як єдиний визнаний блокчейн. Ця конкуренція за розгалуження зазвичай завершується менш ніж за 6 блоків, і всі транзакції в іншому покинутому ланцюжку анулюються.

Суть Bitcoin: модель UXTO

Біткойн-вузли можуть синхронізувати оновлення розподіленої книги шляхом майнінгу та правила найдовшого ланцюга для досягнення консенсусу. Ця розподілена книга на основі консенсусу також робить можливими однорангові цифрові валюти, такі як біткойн.

Традиційні електронні валюти використовують централізовану систему облікових записів, де облікові записи створюються для кожного користувача на центральному сервері, а дані про баланс зберігаються для всіх облікових записів. Після кожної транзакції баланс рахунку збільшується або зменшується в хронологічному порядку. Біткойн, з іншого боку, використовує модель UXTO, яка представляє результат невитрачених транзакцій.

Асиметрична криптографія використовується для захисту біткойн-транзакцій. Кожен користувач Bitcoin повинен мати пару відкритих і закритих ключів, схожих на обліковий запис і пароль. Користувач повинен підписати дані транзакції за допомогою закритого ключа та опублікувати дані транзакції, підпис і відкритий ключ разом. Однак у кожній транзакції користувач не перераховує баланс рахунку безпосередньо, а використовує «невитрачену суму» кількох попередніх транзакцій, тобто UTXO.

У системі біткойн немає поняття рахунку чи балансу рахунку, лише UTXO усіх транзакцій в історичному записі. Біткойн-гаманці можуть сканувати дані всіх попередніх транзакцій і обчислювати загальний UTXO певної адреси (тобто відкритого ключа), щоб визначити баланс рахунку. Крім того, коли ініціюється транзакція, біткойн-гаманці можуть автоматично зіставляти UTXO з правильним балансом для завершення переказу.

Основні моменти

  • Біткойн заснований на блоковій технології. Блокчейн — це децентралізована база даних, яка використовується для створення розподіленої книги, тому стороння довіра не потрібна, і кожен вузол у мережі діє як супроводжувач даних.
  • Біткойн використовує алгоритм SHA256 для створення хешів і зберігання даних у заголовках і тілах блоків. Він стає структурою, що складається з окремих блоків, з’єднаних разом, і оскільки дані не змінюються, вони надзвичайно безпечні.
  • Механізм консенсусу біткойна — Proof-of-Work (PoW), який є механізмом, який дозволяє вузлам витрачати арифметичну потужність на вирішення головоломки, а потім синхронізувати транзакцію з іншими вузлами за винагороду за блок.
免責聲明
* 投資有風險,入市須謹慎。本課程不作為投資理財建議。
* 本課程由入駐Gate Learn的作者創作,觀點僅代表作者本人,絕不代表Gate Learn讚同其觀點或證實其描述。
目錄
第2課

Як працює біткойн

Біткойн заснований на технології блокчейн, яка є публічно поширеною книгою, яка використовує механізм консенсусу PoW для підтримки безпеки мережі.

Народження біткойна та блокчейну пов’язано з двома давніми проблемами цифрової валюти: проблемою подвійних витрат і проблемою візантійських генералів.

Від фізичної до цифрової валюти: вирішення проблеми подвійних витрат

Порівняно з фізичною валютою в повсякденному житті, найбільша складність у розвитку електронної готівки полягає в тому, як подолати «проблему довіри». Причина, чому найдавніші мушлі та дорогоцінні метали можуть використовуватися як загальні еквіваленти, полягає в тому, що вони мають певний дефіцит, а пізніші фізичні банкноти покладаються на довіру держави для вирішення проблеми довіри.

Ці фізичні валюти мали цінність і могли миттєво завершити передачу вартості. У цифрову еру будь-який контент, по суті, є комбінацією кодів 0 і 1, а цифрові гроші можна скопіювати у дві копії та надати двом різним одержувачам одночасно, що є так званою «проблемою подвійних витрат». Інтернет сам по собі не має можливості представляти цінність, тому людям раніше доводилося використовувати централізовану систему рахунків із централізованим сервером, таким як банк, щоб використовувати кредитні картки та інші типи електронних грошей.

Система, яка не вимагає довіри: Distributed Ledger

Але чи є справді довірена третя сторона – питання. Існує ризик єдиної точки збою, як-от атаки на централізовані сервери, і навіть уряди можуть збирати «сеньйораж» шляхом надмірної емісії грошей. Рішення, запропоноване біткойном, полягає в тому, щоб відмовитися від сторонніх посередників і побудувати розподілену книгу, де кожен знаходиться в центрі книги.

Розглянемо село, де є лише один «голова», відповідальний за ведення бухгалтерської книги, і всі витрати членів села реєструються у сільського голови, який є центром системи бухгалтерських книг. Система може добре працювати, якщо сільський голова заслуговує довіри; однак, якщо керівник, який є центром системи, є злодієм, іншим може бути важко виявити його.

Розглянемо «децентралізоване» село, в якому кожен член тримає ідентичну бухгалтерську книгу. Коли учасник хоче внести зміни до книги, він або вона має повідомити про це інших учасників за допомогою «широкомовної передачі», щоб вони могли підтвердити записи та скопіювати їх до власних книг. Процес транзакції не буде завершено, доки всі учасники не підтвердять і не оновлять свої книги. По суті, так працює мережа Bitcoin.

Реалізація розподіленої книги: блоки та блокчейн

Біткойн винайшов новий тип цифрової системи для запису транзакцій активів, відому як розподілена книга. На відміну від централізованого запису, де дані зберігаються на централізованих серверах, блокчейн є децентралізованою базою даних, де кожен вузол у мережі діє як власник бази даних і супроводжувач.

Біткойн був першим широкомасштабним застосуванням блокчейну, а блокчейн є основою Біткойна.

Систему Bitcoin можна розділити на три рівні: рівень даних, рівень протоколу та рівень додатків. Почнемо з «реєстру» (рівня даних), яким володіє кожен член системи Bitcoin.

Від дерев Merkle до блокових «ланцюгів»

Блокчейн — це, по суті, розподілена книга, яка підтримується всіма вузлами в мережі, причому кожен вузол зберігає всі дані блокчейну. «Ланцюжок» блоків, який зберігається вузлом, — це впорядкований ланцюжок блоків, з’єднаних разом, а сам блок — це незмінна структура даних, яка підтримується алгоритмом Cryptographic Hash.

Хеш-функція (SHA-256 і RipeMD160) — це критично важливий криптографічний алгоритм у біткойнах, який може перетворювати вхідне значення довільної довжини на вихідне значення фіксованої довжини з функціями випадковості та відсутності колізій. І важко вгадати вхідне значення для хеш-функцію з його виводу. Невелика зміна вхідних даних може призвести до кардинально іншого виходу. Вихідні дані хеш-функції можна легко отримати з вхідних даних, але для виведення вхідних даних із вихідних даних потрібне перерахування методом грубої сили, що потребує значної кількості часу та обчислювальної потужності. Багаторазове використання хеш-функцій спрощує та визначає структуру даних Bitcoin.

Блок Bitcoin складається з двох частин: тіла блоку та заголовка блоку. Тіло блоку містить усю інформацію про транзакції в цьому блоці, яка хешується кілька разів, щоб сформувати структуру, відому як дерево Merkle, яка складає тіло блоку. Перше повідомлення транзакції на кожному з цих блоків також відоме як транзакція coinbase і є транзакцією, яка генерує нові біткойни та винагороджує їх майнеру, тоді як усі інші транзакції є передачею між користувачами один одному.

Ці транзакції піддаються численним операціям хешування, щоб нарешті отримати значення під назвою Merkle Hash, яке є сумою всіх даних транзакції. Хеш Merkle разом із Nunce, мітками часу, хешами батьківського блоку та іншими даними складають заголовок блоку, і обчислення хеш-значення заголовка блоку може отримати хеш блоку цього блоку. Оскільки заголовок кожного блоку містить хеш-значення батьківського блоку, усі блоки з’єднані в ланцюжок. Блоки пов’язані між собою, і будь-яка зміна даних блоку призведе до зміни хешу блоку, що розірве ланцюжок.

Proof-of-Work (PoW): консенсусний механізм безпеки мережі

Після представлення «реєстру» (рівня даних), який зберігається кожним вузлом, перейдемо до рівня консенсусу біткойн, який відповідає за безпеку мережі.

Перш ніж заглиблюватися в розподілений консенсус, важливо зрозуміти проблему «візантійських генералів».

Візантійські генерали: проблема синхронізації кількох повідомлень

Проблема візантійських генералів сягає середньовіччя, коли візантійська армія покладалася на гінців для передачі інформації через величезну територію Візантії. Якби зрадник навмисно спотворив оперативну інформацію вищого начальства, це призвело б до непослідовних оперативних планів, що призвело б до «проблеми візантійських генералів».

Мережа Bitcoin складається з кількох децентралізованих вузлів, кожен з яких є незалежним, автономним і рівноправним «корпусом». Кожен вузол у мережі має власну унікальну копію даних блокчейну, і всі вони хочуть бути першими, хто пакетує транзакції та отримує винагороду в біткойнах. Отже, якому вузлу вдасться отримати права на реєстрацію та переконати всю мережу досягти консенсусу щодо зміни даних блокчейну?

Proof-of-Work (PoW): обчисліть відповідь і опублікуйте її в мережі для перевірки в реальному часі

Відповіддю біткойна є механізм консенсусу Proof-of-Work (PoW), широко відомий як «майнінг», який є цифровим обчислювальним процесом, що виконується вузлами, де перший вузол, який знайшов «відповідь», отримує права реєстру. Зокрема, вузол повинен продовжувати намагатися змінити Nunce заголовка блоку, обчислюючи хеш блоку, і, нарешті, отримати хеш блоку, де перші кілька бітів дорівнюють нулю.

На цьому етапі значення Nunce є відповіддю на запитання. Знайшовши відповідь, вузол передасть її іншим мережевим вузлам, і після перевірки відповіді інші вузли швидко візьмуть блок як новий батьківський вузол і продовжать наступний раунд майнінгових операцій.

Це створює проблему в тому, що для трансляції даних між вузлами потрібен час, і цілком можливо, що два або більше вузлів знайшли відповідь на головоломку одночасно до того, як спільнота в цілому дійшла згоди. Однак, оскільки два вузли упаковують різні транзакції coinbase, це призводить до двох різних дійсних блоків. Через різні сигнальні послідовності вузли майнера працюватимуть на обох форках. На цьому етапі мережа біткойн дотримуватиметься «правила найдовшого ланцюга», розглядаючи форк-ланцюг із найбільшою кількістю блоків як єдиний визнаний блокчейн. Ця конкуренція за розгалуження зазвичай завершується менш ніж за 6 блоків, і всі транзакції в іншому покинутому ланцюжку анулюються.

Суть Bitcoin: модель UXTO

Біткойн-вузли можуть синхронізувати оновлення розподіленої книги шляхом майнінгу та правила найдовшого ланцюга для досягнення консенсусу. Ця розподілена книга на основі консенсусу також робить можливими однорангові цифрові валюти, такі як біткойн.

Традиційні електронні валюти використовують централізовану систему облікових записів, де облікові записи створюються для кожного користувача на центральному сервері, а дані про баланс зберігаються для всіх облікових записів. Після кожної транзакції баланс рахунку збільшується або зменшується в хронологічному порядку. Біткойн, з іншого боку, використовує модель UXTO, яка представляє результат невитрачених транзакцій.

Асиметрична криптографія використовується для захисту біткойн-транзакцій. Кожен користувач Bitcoin повинен мати пару відкритих і закритих ключів, схожих на обліковий запис і пароль. Користувач повинен підписати дані транзакції за допомогою закритого ключа та опублікувати дані транзакції, підпис і відкритий ключ разом. Однак у кожній транзакції користувач не перераховує баланс рахунку безпосередньо, а використовує «невитрачену суму» кількох попередніх транзакцій, тобто UTXO.

У системі біткойн немає поняття рахунку чи балансу рахунку, лише UTXO усіх транзакцій в історичному записі. Біткойн-гаманці можуть сканувати дані всіх попередніх транзакцій і обчислювати загальний UTXO певної адреси (тобто відкритого ключа), щоб визначити баланс рахунку. Крім того, коли ініціюється транзакція, біткойн-гаманці можуть автоматично зіставляти UTXO з правильним балансом для завершення переказу.

Основні моменти

  • Біткойн заснований на блоковій технології. Блокчейн — це децентралізована база даних, яка використовується для створення розподіленої книги, тому стороння довіра не потрібна, і кожен вузол у мережі діє як супроводжувач даних.
  • Біткойн використовує алгоритм SHA256 для створення хешів і зберігання даних у заголовках і тілах блоків. Він стає структурою, що складається з окремих блоків, з’єднаних разом, і оскільки дані не змінюються, вони надзвичайно безпечні.
  • Механізм консенсусу біткойна — Proof-of-Work (PoW), який є механізмом, який дозволяє вузлам витрачати арифметичну потужність на вирішення головоломки, а потім синхронізувати транзакцію з іншими вузлами за винагороду за блок.
免責聲明
* 投資有風險,入市須謹慎。本課程不作為投資理財建議。
* 本課程由入駐Gate Learn的作者創作,觀點僅代表作者本人,絕不代表Gate Learn讚同其觀點或證實其描述。