Topics Криптовалюта

Блокчейн Bitcoin: продуктивність і масштабованість

Середній
Криптовалюта
Біткоїн
3 de jul de 2025

Bitcoin — це децентралізована система електронних грошових коштів, яка робить можливим одноранговий платіж без проходження через посередника. Оригінальне програмне забезпечення Bitcoin було розроблено Satoshi Nakamoto та випущено за ліцензією MIT у 2009 році, після публікації Bitcoin, Bitcoin: Електронна система грошових переказів однорангових.

Bitcoin — це перше успішне впровадження розподіленої криптовалюти. Через шістнадцять років після народження Bitcoin у обігу перебуває близько 20 мільйонів Bitcoin, і зараз він досяг ринкового ліміту на суму понад $2 трильйони.

New-user-5050-USDT_728x90.png

У блокчейні Bitcoin трансакція означає, що збір вхідних і вихідних даних передає право власності на біткоїни між платником і одержувачем платежу. Вхідні дані вказують мережі, з якої монети або монети буде здійснено платіж. Ці монети, що вносяться, не повинні бути витрачені, а це означає, що вони не були використані для оплати інших осіб. Тим часом,

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

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

Після трансляції трансляції трансакції в мережу Bitcoin, вузол книжкового трейдера, зазвичай повний вузол у P2P-мережі, яка отримує трансакції, перевіряє її відповідно до правил протоколу Bitcoin. Якщо трансакція дійсна, книжковий трейдер додає її до пулу трансакцій і передає трансакцію колегам мережі.

У мережі Bitcoin кожні 10 хвилин підгрупа нодів мережі, які називаються «мінінг-нодами» або майнерами, збирає всі дійсні трансакції з пулу трансакцій і створює блоки кандидатів. Вони також створюють для себе транзакцію з використанням монети, щоб отримувати винагороди та стягувати комісії за транзакції. У випадку, якщо вони «перемагають майнінг» і додають блок до мережі, усі ноди перевірять новий блок і додадуть його до власної копії блокчейну. Чарівно, що Боб зможе побачити платіж Аліси та 10 BTC у своєму гаманці.

Однією з основних проблем мережі Bitcoin або загалом у блокчейні на основі підтвердження роботи (PoW) є масштабованість. За дизайном кожна транзакція повинна бути перевірена всіма нодами. Створення нового блоку займає в середньому 10 хвилин, а розмір блоку обмежений до 1 МБ. Розмір блоку та обмеження частоти додатково обмежують пропускну здатність мережі. У результаті блок Bitcoin може вмістити в середньому 2700 транзакцій. Завдяки сучасним платіжним системам VISA може обробляти в середньому близько 2000 транзакцій за секунду (TPS), а добова пікова ставка становить приблизно 4000 TPS. Станом на 2025 рік Paypal може здійснювати в середньому близько 193 TPS або майже 17 мільйонів транзакцій на день.

Очевидно, що досягнення подібної до Visa потужності в мережі Bitcoin неможливе. Більш висока продуктивність і краща масштабованість вимагають збільшення ліміту обробки транзакцій мережі та проведення вдосконалень програмного забезпечення для мережі Bitcoin.

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

Наступна схема — ілюстрація трилеми масштабованості блокчейну.

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

Рішення для масштабування Bitcoin

Є багато пропозицій щодо масштабованості Bitcoin, які можна додатково розділити на ончейн і офчейн-масштабування.

Масштабування в ончейні

ончейн-рішення, які іноді називають рішеннями рівня 1, вирішують проблеми масштабованості та продуктивності в базовому рівні блокчейну мережі Bitcoin. З точки зору затримки в мережі, ончейн-масштабування дає можливість обробляти більше транзакцій у блокчейні. Прикладами є SegWit, який вміщує більшу кількість транзакцій у блок розміром 1 МБ, і Bitcoin Cash (BCH, символ ≈), який просто збільшує розмір блоку.

SegWit

SegWit (заявка на покращення Bitcoin номер BIP14) коротка для «сегрегованого свідка», що означає відокремлення цифрового підпису для транзакції. Він вперше був представлений Розробником Пітером Віллом на конференції з масштабування Bitcoin у грудні 2015 року. Мета SegWit полягала в запобіганні ненавмисних порушень транзакцій Bitcoin, забезпеченні необов’язкової передачі даних, а також обходженні певних обмежень протоколу.

Транзакція Bitcoin складається з трьох пунктів: 

  • вхідні дані трансакції, тобто адреса відправника Bitcoin;

  • результат транзакції, тобто адреса отримання Bitcoin; 

  • сума Bitcoin, що надсилається, разом із цифровим підписом, який підтверджує, що відправник має право надсилати монети

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

Розгляньмо приклад:

Вхід:

Попередній tx: p9k5ee39a430901c91a5917b9f2dc19d6d1a0e9cea205b009ca73dd04470b9a6

Індекс: 0

scriptSig: 304502206e21798a42fae0e854281abd38bacd1aeed3ee3738d9e1446618c4571d10

90db022100e2ac980643b0b82c0e88ffdfec6b64e3e6ba35e7ba5fdd7d5d6cc8d25c6b241501

Вихід:

Вартість: 2000000000

scriptPubKey: OP_DUP OP_HASH160 201371705fa9bd789a2fcd52d2c580b65d35549d

OP_EQUALVERIFY OP_CHECKSIG

У цій транзакції вхідний параметр імпортує 20 BTC з виходу No0 у трансакцію p9k5e... Потім вихідний параметр відправляє 20 BTC на адресу Bitcoin (виражений тут у шістнадцятому 2013 році... замість звичайної бази58). Коли отримувач хоче витратити ці гроші, він повинен вказати результат No0 цієї трансакції у вході власної трансакції.

Деякі визначення:

• Попередній tx — ідентифікатор попередньої транзакції за адресою A

• Індекс — вхідний номер (у нас є лише один вхідний номер: 0)

• scriptSig — перша частина сценарію перевірки (містить підпис трансакції)

• Вартість — кількість біткоїнів, які потрібно надіслати одиницями сатоші (один біткоїн = 100 мільйонів сатоші) (20 біткоїнів у прикладі вище)

• scriptPubKey — друга частина сценарію перевірки, яка також містить адресу одержувача B.

Щоб перевірити, чи можна витратити суму попередньої транзакції, потрібно поєднати scriptSig нової транзакції з scriptPubKey попередньої транзакції, щоб переконатися, що результат правильний і дійсний; scriptPubKey просто перевіряє рівність відкритого ключа та дійсність підпису (OP_CHECKSIG).

У транзакції Bitcoin txid (скорочено для ID транзакції або хеш транзакції) — це ша256d усіх полів даних транзакції. Значення txid залежить від scriptSig. Під час майнінг-ноди нода може мутувати scriptSig, щоб підпис залишався дійсним, а транзакція матиме такий самий ефект, але txid зміниться. Наприклад, можна додати операцію OP_NOP (що нічого не робить). Або для деякої вишуканості можна додати дві операції: OP_DUP і OP_DROP (перший дублює підпис на стопці, а другий видаляє його знову). Підпис все ще дійсний, але txid змінюється.

Інший приклад: Якщо значення підпису — «3», ми можемо змінити його на «03» або «3+7-7». Математично це все ще значення трансакції з дійсним підписом, але є різні хеш-результати, оскільки хешинг залежить від того, як ви пишете значення, а не від самого значення.

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

Зміна txid може спричинити проблеми, якщо ви витрачаєте або приймаєте непідтверджені кошти. Як SegWit вирішує цю проблему:

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

Ось приклад результатів транзакції SegWit:

Індекс 0

Деталі

Результат

Адреса

35SegWitPieWKVHieXd97mnurNi8o6CM73

Вартість

1.00200000 BTC

PkScript

OP_HASH160

2928f43af18d2d60e8a843540d8086b305341339

OP_EQUAL

SigScript

0014a4b4ca48de0b3fffc15404a1acdc8dbaae226955

Свідок

30450221008604ef8f6d8afa892dee0f31259b6ce02dd70c545cfcfed8148179971876c54a022076d771d6e91bed212783c9b06e0de600fab2d518fad6f15a2b191d7fbd262a3e01

039d25ab79f41f75ceaf882411fd41fa670a4c672c23ffaf0e361a969cde0692e8

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

Ось деякі з переваг SegWit:

Ефективність нодів — розмір трансакцій зменшується, щоб мережа Bitcoin була менш перевантажена, оскільки ноди можуть швидше перевіряти блоки (або трансакції).

Непридатність транзакцій — як обговорювалося вище, з SegWit підпис переходить з даних транзакції до блока даних свідка. txid є незмінним і захищає дані транзакцій від злому.

Лінійне масштабування операцій хешування підписів — зменшення розміру трансакції додає більше даних про трансакцію для певної трансакції як частину пакету. SegWit відокремлює підписи трансакцій від даних трансакцій, щоб кожен байт трансакції потрібно було хешувати не більше двох разів.

Підвищена безпека для трансакцій з кількома підписами — SegWit пропонує два різні сценарії: один на відкритий ключ, а інший направляє платежі на хеш сценарію. Поєднуючи ці сценарії, SegWit підвищує безпеку, увімкнувши трансакцію з кількома підписами (multisig).

Створена на вершині рівня 1 — SegWit чудово підходить для розробки Bitcoin протоколів рівня 2, як-от мережа Lightning Network. Крім того, активація SegWit збільшує роботу з розвитку інших функцій, як-от MAST (що забезпечує складніші смарт-контракти Bitcoin), підписи Schnorr (що дають змогу збільшити пропускну здатність транзакцій) і TumbleBit (анонімна топ-мережа).

Захищає мережу Lightning Network — мікроплатіжні канали мережі Lightning покладаються на транзакції з подвійним підписом для блокування початкових депозитів. Щоб почати оплату через мережу Lightning, кошти обох сторін надсилаються на одну адресу з подвійним підписом. Щоб уникнути шахрайства, транзакцію слід двічі підписати, перш ніж кошти будуть фактично надіслані на адресу, що подвійна підписалась. Для отримання результатів транзакцій з основного блокчейну обидві сторони повинні синхронізуватися. Цей обов’язковий ідентифікатор трансакції є незмінним.

Теоретично SegWit може подвоїти пропускну здатність Bitcoin або TPS). Однак, хоча підвищення пропускної здатності мережі Bitcoin є критично важливим, навіть теоретичне подвоєння все ще залишається занадто низьким для основного використання Bitcoin як платіжної системи.

Розмір блоку

Ще одна пропозиція щодо покращення масштабованості ончейнів Bitcoin передбачає збільшення розміру блоку. Ідея надзвичайно проста: збільшення розміру блоку з сьогоднішнього 1 МБ до, наприклад, 8 МБ збільшить пропускну здатність у вісім разів. Наприклад, спочатку кількість блоків Bitcoin Cash (BCH) становила 8MB, і наразі блок BCH встановлено на рівні 32 МБ. Такий вертикальний підхід до масштабування додає ще багато трансакцій у межах одного блоку. Однак збільшення розміру блоку означає, що блокчейн може бути в багато разів більшим, і це вимагає кращої обчислювальної здатності для обробки великих блоків. У той же час це дещо знижує безпеку мережі через зниження ефективної чесної хеш-сили. 

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

Це може зробити блокчейн менш безпечним, оскільки менша мережа альткоїнів може бути більш вразливою до мережевих атак. Наприклад, скажімо, у нашій великій мережі є близько 10 000 нодів. Для запуску атаки в мережі потрібно принаймні 5001 нода (51 %). Якщо ми розділяємо 10 000 нодів на 50 менших чейк, кожен ланцюжок складається з 200 нодів, тому для усунення будь-якого меншого чейну потрібно лише 101 нода, тобто те, що ми називаємо проблемою атаки 1%. 

Іншою проблемою є кросчейн-інтеграція: хоча є деякі рішення для управління кросблокчейн-інтеграцією, загальна складність інтеграції менших мереж та алткоїнів значно зростає. SegWit2x, запропонований компроміс щодо дебатів за розміром блоку ще в 2017 році, припустив, що SegWit буде активовано як перший крок, і після цього розмір блоку буде збільшено до 2 МБ. Однак ця пропозиція не була прийнята більшістю нодів у мережі Bitcoin.

офчейн-рішення

Подібно до обґрунтування ончейн-рішення, спільнота Bitcoin також активно шукає позачейнові рішення, які іноді називають рішення рівня 2. У режимі офчейн-масштабування рішення полягає в тому, щоб створити додатковий рівень на додаток до блокчейну Bitcoin, який може обробляти всі види транзакцій з двома учасниками. Після цього ці транзакції можна пакетувати та надсилати як одну транзакцію в блокчейні. Одним із цих офчейн-рішень є мережа освітлення.

Мережа освітлення

У січні 2016 року в інформаційному буклеті під назвою The Bitcoin Lightning Network: Масштабовані нечейн-опціони були подані Джозефом Пуном і Таддеусом Сух’я. У ньому були описані контури мережі Lightning.

Lightning — це децентралізована мережа, яка використовує функції смарт-контрактів у блокчейні для миттєвої оплати в мережі учасників.

Рішення для здійснення платежів рівня 2 від Lightning Network збільшує блокчейни та дає змогу безнадійно здійснювати миттєві платежі, утримуючи більшість транзакцій поза чейном. Він створює мережу так званих платіжних каналів, у якій дві сторони здійснюють транзакцію та сплачують одна одну. Процес виконується миттєво, і трансакцію не потрібно підтверджувати, передавати та зберігати в кожному вузлі мережі Bitcoin, оскільки вона доступна лише між двома учасниками.

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

Розгляньмо, як працює мережа Lightning.

Приклад. Спочатку Аліса здійснює транзакцію з зобов’язанням A1, а Боб здійснює транзакцію з зобов’язанням B1. Ключ відкликання для A1, K A1, належить лише Алісі, а ключ відкликання для B1, K B1 належить лише Бобу.

Припустімо, Аліса та Боб кожен мають по 10 BTC на своєму акаунті. Аліса хоче надіслати Бобу 2 BTC.

Аліса та Боб вносять однакову кількість грошей (у цьому випадку — 10 BTC), і кожен робить це блокування. Ця дія щодо внесення рівних сум грошей у звичайному полі записується в блокчейні у формі «каналу оплати», який після цього відкритий між двома учасниками.

Аліса створює нову транзакцію B2, яка розподіляє 8 BTC Алісі та 12 BTC Бобові.

Аліса підписує B2 і надсилає його Бобу.

Боб отримує B2, підписує його та зберігає його.

Боб створює нову транзакцію A2, яка розподіляє 8 BTC Алісі та 12 BTC Бобові.

Боб підписує A2 і надсилає його Алісі.

Аліса отримує A2, підписує її та зберігає її.

Аліса надає Ka1, визнаючи A1 недійсним. Після цього вона може видалити A1.

Боб надає K B1, визнаючи B1 недійсним. Потім він може видалити B1.

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

Мережа освітлення використовує хешований контракт TimeLock (HTLC) — клас платежів, який використовує хешлок і часових рамок, щоб вимагати, щоб отримувач платежу підтвердив, що він отримав платіж, до кінцевого терміну, створивши криптографічне підтвердження платежу або втративши можливість отримати платіж, повернувши його платнику. Це дає змогу надсилати транзакції між сторонами, які не мають прямого каналу, спрямовуючи їх через кілька хапів (додаткові канали), щоб кожен, хто під’єднаний до мережі Lightning Network, був частиною єдиної взаємопов’язаної глобальної фінансової системи.

Розгляньмо приклад:

Аліса хоче надіслати платіж Тімові, але вона не має платіжного каналу з Тімом. Аліса має платіжний канал із Бобом, який має платіжний канал із Тімом. Питання таке: Як Аліса може заплатити Тіму?

Для цього Тім повинен створити рядок криптографічних таємниць (key), а потім хешувати його за допомогою хеш-функції (наприклад, SHA-256) і надіслати її Алісі. Тім також ділиться цим хешом із Бобом. Щоб спростити цю письмову ілюстрацію, ми представляємо вартість у форматі V.

HTLC

Хеш (V) — це замок, а ключ — це код розблокування HTLC.

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

І Боб робить те ж саме, створюючи HTLC, яка заплатить Тімові, якщо Тім може виробляти V протягом двох днів. Однак Тім дійсно знає, що В. Оскільки Тім може отримати бажану суму від Боба за допомогою свого ключа, Тім може розглянути можливість виконання платежу з Аліси. Тепер у нього немає проблем з обміном V з Бобом, щоб він також міг отримати свої кошти.

Тім розкриває ключ Бобу протягом двох днів, і Тім отримує оплату від Боба.

Боб розкриває ключ Алісі протягом трьох днів, і Боб отримує оплату від Аліси.

Після співпраці всі ці транзакції здійснюються в мережі Lightning Network. Усі отримують оплату механічним чином, оскільки мережа Lightning Network майже за своєю природою та двонаправлена, тобто кожен отримує оплату або нікому не отримує оплату.

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

Є кілька переваг використання мережі Lightning Network порівняно з ончейн-транзакціями:

Швидкі та миттєві транзакції. Час розрахунку для транзакцій у мережі Lightning Network становить менше однієї хвилини та може відбуватися через мілісекунди.

Мікроплатежі. Мережа Lightning Network дає змогу здійснювати мікротранзакції у великих кількостях.

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

Конфіденційність. Немає записів блокчейну. Інформація про окремі платіжні транзакції в мережі Lightning Network безпосередньо й публічно не зафіксована в блокчейні. Платежі можуть спрямовуватися через багато послідовних каналів, оскільки кожен оператор нода зможе бачити платежі через свої канали. Однак вони не зможуть побачити джерело або місце призначення цих коштів, якщо вони несуміжні.

Менше перевантажень ончейном

Надзвичайно низька комісія за трансакції: Комісія за транзакції, сплачена проміжним нодам у Мережі освітлення, часто невелика, зазвичай у мілізатоші.

Обмеження

Мережа Lightning складається з двонаправлених каналів оплати між двома нодами, які в поєднанні створюють смарт-контракти. Якщо будь-яка зі сторін впала з каналу, канал закривається та розраховуються в блокчейні.

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

Skinny_Banner-1600x400.webp

Висновок

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

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

#LearnWithBybit