Оригінальна технологія Bitcoin завжди стикалася з конфліктами між її здатністю до масового прийняття та функціональністю, якою вона повинна володіти. Чи означає масштабування та обсяг транзакцій більш складні команди транзакцій та більший обсяг транзакцій? Чи це означає, що всі функції повинні бути реалізовані в одній системі Bitcoin? У перші дні, коли розвиток технології екосистеми Bitcoin був неповним, ці питання здавалися властивими самому Bitcoin. Однак, з розвитком технологій, багато з цих питань стали яснішими.
У цій статті перераховані деякі пов'язані питання, а також процеси, через які вони виникли та були вирішені. Через цю статтю можна побачити зв'язок між цими питаннями та технологією, а також зміни в основному ланцюжку Bitcoin та пов'язаних «тестових ланцюжках». Технологія Bitcoin була постійно досліджена різними проектами та командами (включаючи Ethereum, яке є дослідженням недоліків Bitcoin). Проте зміни в основній мережі Bitcoin були не дуже очевидними до приходу технологій, таких як Taproot, які підштовхнули розвиток протоколів, таких як Ordinals, що спричинило новий ривок у розвитку.
З більш широкої перспективи, розглядаючи ці розвитки та технології, які вони виробили, ми можемо побачити їх зв'язки та зробити припущення про більше напрямків для розвитку та загальної архітектури.
Мова програмування Bitcoin - це мова сценаріїв на основі стеку, що використовує зворотну польську нотацію, відсутня в ній петлі та умовні оператори управління (пізніші розширення, такі як Taproot & Taproot Script, покращили цю можливість). Тому часто кажуть, що мова сценаріїв Bitcoin не є повністю тьюрінговою, обмежуючи її можливості.
Через ці обмеження хакери не можуть використовувати цю мову сценаріїв для написання нескінченних петель (що призвело б до паралізу мережі) або коду, який міг би призвести до атак типу DOS, тим самим захищаючи мережу Bitcoin від атак типу DOS. Розробники Bitcoin також вважають, що основний блокчейн не повинен мати повноти Тьюрінга для уникнення певних атак і перенасиченості мережі.
Однак ці обмеження означають, що мережа Біткойн не може виконувати інші складні програми або здійснювати деякі "корисні" функції. Пізніші блокчейн-системи, розроблені для вирішення конкретних проблем та задоволення потреб користувачів, змінили цей аспект. Наприклад, мова, що використовується в Ethereum, є повністю тьюрінг-повною.
Загальні типи інструкцій сценарію Bitcoin включають:
Ключові слова:
Константи. наприклад, OP_0, OP_FALSE
Керування потоком. наприклад, OP_IF, OP_NOTIF, OP_ELSE, і т. д.
Операції стеку. наприклад, OP_TOALTSTACK (посуває вхід в допоміжний стек, видаляючи його з основного стеку), тощо.
Операції рядків. наприклад, OP_CAT (конкатенує два рядки, вимкнено), OP_SIZE (додає довжину рядка верхнього елементу стеку до стеку без видалення елемента)
Побітова логіка. наприклад, OP_AND, OP_OR, OP_XOR
Арифметична логіка. наприклад, OP_1ADD (додає 1 до вводу), OP_1SUB (віднімає 1 від вводу)
Криптографія. наприклад, OP_SHA1 (хешує вхідний текст за допомогою алгоритму SHA-1), OP_CHECKSIG
Псевдо ключові слова
Зарезервовані ключові слова
Звичайні типи скриптів Bitcoin:
Стандартна транзакція, що сплачується на адресу Bitcoin (оплата за публічний ключ-хеш)
Стандартна транзакція видачі біткойнів (передача на публічний ключ)
Доведена непотратність / обрізні виводи
Вихід Anyone-Can-Spend
Транзакція головоломка
П'ять стандартних типів транзакційних сценаріїв включають: платежі до хеш-коду відкритого ключа (P2PKH), платежі до відкритого ключа, багатопідписні (обмежені до максимум 15 ключів), платежі до хеш-коду сценарію (P2SH) та виводи даних (OP_RETURN).
Для отримання докладної інформації щодо скриптів Bitcoin ви можете відвідати:Біткойн Вікі - Сценарій.
Історично Біткойн пройшов кілька скорочень у підтримуваних інструкціях. У наступній діаграмі червоні частини - це інструкції, які були видалені.
(2)
(3) Арифметичні операції
Чому зменшувати інструкції? Безпека — лише один аспект, який слід враховувати. Якщо ми розглянемо зменшення інструкцій через призму шарування дизайну, ми зможемо зрозуміти його раціональність, дозволяючи базовому протоколу бути більш фундаментальним і стабільним. Можливо, Сатоші Накамото був свідомим цієї проблеми з самого початку, тому він активно зменшував інструкції. Звичайне мислення полягає в тому, щоб побудувати невелику систему, яка безпосередньо задовольняє потреби користувачів з повними командами та функціями системи, а не великий протокол, який вимагає співпраці.
Це також призводить до факту: лише Bitcoin підходить як мережа першого рівня. Я проаналізував це явище в статті «Високі ціни на Bitcoin можуть сприяти виникненню нового альтернативного ланцюжка», розглядаючи як економічні, так і технічні перспективи, так і можливість виникнення альтернативного ланцюжка Bitcoin. Однак з фундаментальних характеристик Bitcoin та перспективи шарування дизайну, майже лише Bitcoin може служити як інфраструктура мережі першого рівня; навіть якщо є альтернативні ланцюжки, вони були б продуктом 1,5 рівня. На рівні першого рівня справжній товар - це лише Bitcoin, і в кращому випадку інші ланцюжки можуть служити альтернативними товарами меншої якості.
У історії розвитку Біткойну, крім питання зменшення інструкцій, існує ще один аспект - дискусія про розмір блоку, яка часто призводить до важких розділень Біткойну.
Коли був створений BTC, не було обмеження на розмір блоку, щоб дозволити обробку певної кількості транзакцій протягом того ж самого часу. Однак, коли початкові ціни на BTC були дуже низькими, вартість зловісних транзакцій також була дуже низькою. Для вирішення цієї проблеми Сатоші Накамото очолив м'яке розділення 12 вересня 2010 року, вводячи обмеження, що блоки не можуть перевищувати 1 МБ. Сатоші зауважив, що це обмеження є тимчасовим, і що в майбутньому обмеження блоку може бути збільшено контрольним та поступовим способом, щоб задовольнити потреби розширення.
З популярністю Bitcoin проблема заторів мережевих транзакцій та збільшення часу підтвердження стає все серйознішою. У 2015 році Ґевін Андресен та Майк Хірн оголосили, що вони будуть реалізовувати пропозицію BIP-101 у новій версії BitcoinXT з надією збільшити ліміт розміру блоку до 8 МБ. Однак ядерні розробники, такі як Грег Макселл, Люк Джуніор та Пітер Вуїлле, були проти цього, стверджуючи, що це підвищить бар'єр для запуску повного вузла та може мати неконтрольовані наслідки. Ця дискусія врешті-решт розширилася як за обсягом, так і за участю.
З вищевказаного вмісту ми бачимо, що Сатоші Накамото також висловив думку, що «обмеження розміру блоку є тимчасовим обмеженням, яке може бути збільшено контрольованим та поступовим способом у майбутньому, щоб задовольнити потреби в розширенні». Але коли форк підтримає більші блоки, і чи може відокремлення окремого ланцюжка для підтримки великих блоків вирішити проблему? Поміж триваючими суперечностями виникло безліч випадків. Наприклад, розмір блоку BCH становить 8 МБ, пізніше збільшений до 32 МБ. BSV має розмір блоку 128 МБ. Окрім BCH (а пізніше BSV), у цей період також було багато інших форків BTC; за даними BitMEXResearch, принаймні 50 нових форків монет з'явилися в рік після форка BCH.
Пізніше буде показано, що на основній мережі Bitcoin, Segwit та Taproot також збільшили обсяг блоку з 1 МБ до 4 МБ до певної міри.
Форки Bitcoin - це форма розвідки, спрямована на задоволення широкого спектру потреб через зміни всередині себе, включаючи потреби користувачів, рударів, інвесторів, розробників та інших.
Після того, як Сатоші Накамото пішов, його наступник Ґавін Андресен взяв на себе лідерство у створенні Bitcoin Core та Bitcoin Foundation. Протягом цього періоду дослідження масштабованості BTC, зокрема у сфері емісії активів, продовжувалися.
(1) Кольорові монети (染色币)
Йоні Ассіа, генеральний директор eToro, вперше запропонував концепцію розфарбованих монет в статті, опублікованій 27 березня 2012 року. Ця ідея продовжувала розвиватися, почала набирати форму і звертати на себе увагу на форумах, таких як Bitcointalk. У кінці кінців, Мені Розенфельд опублікував докладну білу книгу про розфарбовані монети 4 грудня 2012 року.
Ідея зафарбованих монет полягає в тому, щоб представляти більший спектр активів та цінностей шляхом додавання спеціальних позначок (тобто забарвлення) до конкретних частин біткоїна. При впровадженні зафарбовані монети з'явилися в декількох сутностях, що загалом поділяються на дві категорії:
1) На основі OP_RETURN: Як запропонував Флавіан Шарлон у 2013 році, використовуючи відкриті активи, які використовують OP_RETURN (введений у Bitcoin v0.9.0 для зберігання невеликої кількості даних у Bitcoin, спочатку обмежений 40 байтами, пізніше збільшений до 80 байтів). Опкод зберігається в скрипті, а “розфарбовування” та транзакції завершуються зовнішнім читанням (ця модель схожа на порядкові числа, які ґрунтуються на зовнішньому індексі для визначення законності активів).
2) На основі OP_RETURN: Типовим прикладом є протокол EPOBC, запропонований компанією ChromaWay в 2014 році, де додаткова інформація про активи EPOBC зберігається в полі nSequence транзакцій Bitcoin, а категорія та легальність кожного активу EPOBC повинні бути відстежені до початкової транзакції, щоб визначити.
(2) MasterCoin (OMNI)
Джеяр Віллетт випустив концепцію MasterCoin 6 січня 2012 року, назвавши її "другим біткойн-білим папером", та офіційно запустив проект через ICO в липні 2013 року, врешті-решт збираючи 5120 BTC (на той момент на вартість $500,000). Відмінність між MasterCoin та Colored Coins полягає в тому, що вона встановила повний рівень вузла, який зберігає базу даних моделі стану, скануючи біткойн-блоки, які розташовані в вузлах поза ланцюжком блоку. Цей дизайн надає більш складні функціональні можливості, ніж у Colored Coins, такі як створення нових активів, децентралізовані обміни та автоматизовані механізми зворотного зв'язку щодо цін. У 2014 році компанія Tether також запустила стабільну монету, відому як Tether USD (OMNI) на біткоїні через протокол Mastercoin.
(3) CounterParty
Counterparty був офіційно запущений в 2014 році. Як і Colored Coins, Counterparty також використовує OP_RETURN для зберігання даних в мережі BTC. Однак, на відміну від кольорових монет, активи в Counterparty не існують у вигляді UTXO, а замість цього інформація завантажується через OP_RETURN для позначення передачі активів. Коли власник активу підписує транзакцію, що містить спеціальні дані, використовуючи адресу утримання, актив переходить. За допомогою цього методу Counterparty може реалізувати емісію активів, торгівлю та платформу, сумісну з умовними контрактами Ethereum.
Додатково, деякі думки також розглядають Ethereum, Ripple та BitShares як частину ширшого “Біткойн 2.0”.
Недоліки (або обмеження) Біткойну виявляються переважно в декількох аспектах (недоліки, згадані в цій статті, базуються на узагальненні в білій книзі Ethereum і не обов'язково є справжніми недоліками).
У поточних проектах блокчейну існують головним чином два типи методів ведення записів: модель обліку/балансу та модель UTXO. Біткойн використовує модель UTXO, тоді як Ethereum, EOS та інші використовують модель обліку/балансу.
У гаманці Bitcoin ми зазвичай можемо побачити баланс рахунку; однак у вихідному дизайні системи Bitcoin Сатоші Накамото не було поняття "балансу". "Баланс Bitcoin" є похідним від додатків гаманця Bitcoin. UTXO (невитрачені вихідні транзакції) представляє невитрачені вихідні транзакції, і це є основним концепцією у створенні та верифікації транзакцій Bitcoin. Транзакції формують ланцюжкову структуру, де всі законні транзакції Bitcoin можуть бути відстежені до виходів з однієї або декількох попередніх транзакцій. Ці ланцюжки починаються з винагород за майнінг та закінчуються поточними невитраченими вихідними транзакціями.
Отже, в реальному світі немає біткойнів, лише UTXO. Угоди з біткойном складаються з входів та виходів угоди; кожна угода витрачає вхід, щоб створити вихід, який потім стає «невитраченим вихідним виведенням угоди», або UTXO.
Впровадження смарт-контрактів створює значні виклики з моделлю UTXO. Гевін Вуд, автор Жовтого Паперу Ethereum, має глибоке розуміння UTXO. Найбільш значущою новою функцією Ethereum є смарт-контракти. Через смарт-контракти Гевіну Вуду складно впровадити смарт-контракти з повністю реалізованою машиною Тьюрінга, що базуються на UTXO. Модель облікових записів, яка має властивості об’єктно-орієнтованої, реєструє кожну транзакцію на відповідному обліковому запису (nonce++). Для спрощення управління обліковими записами вводиться глобальний стан, де кожна транзакція змінює цей глобальний стан, аналогічно тому, як кожна невелика зміна впливає на реальний світ. Таким чином, Ethereum та подальші публічні блокчейни, як правило, базуються на різних типах облікових систем.
Ще одним серйозним недоліком UTXO є його неспроможність забезпечити докладний контроль над обмеженнями на виведення коштів, про що йдеться у білій книзі Ethereum.
Хоча мова сценаріїв Bitcoin може підтримувати різноманітні обчислення, вона не може підтримувати всі обчислення. Основною відсутністю є те, що мова сценаріїв Bitcoin не має операторів циклу та умовного керування. Отже, мова сценаріїв Bitcoin не є повністю тьюрінг-повною, обмежуючи її можливості. Однак ці обмеження перешкоджають хакерам використовувати цю мову сценаріїв для створення нескінчених циклів (що може паралізувати мережу) або зловмисного коду, який може призвести до DOS-атак, тим самим захищаючи мережу Bitcoin від DOS-атак. Розробники Bitcoin також вважають, що основний блокчейн не повинен бути повністю тьюрінг-повним, щоб уникнути атак та мережевої конгестії. Однак причина, чому неповністю тьюрінг-повна мова є безпечнішою, недостатня, і така мова може виконувати лише обмежені функції.
Централізація видобутку - це проблема, де алгоритм видобутку біткоїну фактично дозволяє гірникам вносити незначні зміни до заголовка блоку мільйони разів, поки змінена версія хешу вузла не буде менше цільового значення. Цей алгоритм видобутку вразливий до двох форм централізаційних атак. По-перше, екосистема видобутку контролюється ASIC (спеціалізовані інтегральні схеми) та комп'ютерними мікросхемами, розробленими спеціально для видобутку біткоїну, які тисячі разів ефективніше в цьому завданні. Це означає, що видобуток біткоїну вже не є високо децентралізованим та рівноправним, але потребує значних капіталовкладень для ефективної участі. По-друге, більшість гірників біткоїну вже не завершують локальну перевірку блоку; замість цього вони покладаються на централізовані пули видобутку для надання заголовків блоків. Ця проблема є значущою: наразі топ-три пули видобутку опосередковано контролюють близько 50% потужності обробки в мережі біткоїну.
Масштабованість є важливою проблемою для Біткойну. Використовуючи Біткойн, дані збільшуються приблизно на 1 МБ на годину. Якщо мережа Біткойн обробляла б 2000 транзакцій на секунду, як Visa, вона збільшувалася б на 1 МБ кожні три секунди (1 ГБ на годину, 8 ТБ на рік). Низька кількість транзакцій також викликала суперечки в спільноті Біткойн, оскільки більші ланцюжки блоків можуть покращити продуктивність, але за ризиком централізації.
З точки зору життєвого циклу продукту, деякі невеликі недоліки Bitcoin можуть бути вдосконалені всередині його власної системи, обмежені поточною системою. Однак ці проблеми можуть бути вирішені без врахування обмежень старої системи, якщо вони будуть вирішені в новій системі. Якщо розробляється нова система блокчейну, то ці невеликі функціональні поліпшення також повинні бути розроблені та оновлені.
Шаровий дизайн
Шаровий дизайн - це методологія та підхід, який використовується людьми для роботи з складними системами шляхом поділу системи на кілька ієрархічних структур і визначення відносин та функцій між цими шарами для досягнення модульності, підтримуваності та масштабованості системи, тим самим покращуючи ефективність та надійність дизайну системи.
Для широкої та всебічної системи протоколів використання шарів має очевидні переваги. Цей підхід упрощує розуміння людям
, реалізувати та вдосконалювати модулі. Наприклад, у комп'ютерних мережах модель ISO/OSI - це семишаровий дизайн, але на практиці деякі шари можуть бути об'єднані, наприклад, чотирьохшаровий протокол TCP/IP. Специфічні переваги прошаркового протоколу включають незалежність та гнучкість кожного шару, структурну подільність, легкість впровадження та обслуговування, а також сприяння стандартизаційним зусиллям.
З погляду шарових протоколів позиція Біткойну як основного шару означає, що його характеристики, такі як UTXO, відсутність тюрингової повноти, довгі часи блоків, невелика ємність блоків та зникнення його засновника, не є недоліками, а скоріше рисами, якими повинен бути базовий мережевий шар.
Примітка: Автор надає більш детальні пояснення щодо шарування протоколів у "Огляді Bitcoin Layer 2 (Layer 2) Основна система базових знань V1.5."
У попередньому розділі ми дослідили основні конфлікти оригінальної технології Bitcoin та деякі дослідницькі випадки, багато з яких призвели до важких відгалужень або створення зовсім нових гетерогенних ланцюгів. Однак всередині власного блокчейну Bitcoin ці дослідження також принесли багато результатів, в основному у формі розширення блоку та підвищення можливостей. Це в основному проявляється в таких аспектах:
2.1. OP_RETURN
Розробники Біткойн завжди намагалися розширити можливості Біткойну, що виявляється у декількох способах:
(1) Використання OP_RETURN
OP_RETURN - це опкод сценарію, який використовується для завершення сценарію та повернення верхнього значення стеку. Цей опкод схожий на функцію return у мовах програмування. Протягом історії Bitcoin функціональність опкоду OP_RETURN була змінена кілька разів і зараз переважно використовується як метод зберігання даних у журналі. Функціональність опкоду OP_RETURN зазнала значних змін у минулому і зараз є важливим механізмом для зберігання довільних даних на ланцюгу.
Спочатку OP_RETURN використовувався для передчасного завершення виконання сценарію, при цьому результат виконання був представлений як елемент верхнього стеку. Цей опкод спочатку мав вразливість, яка легко використовувалася, але Сатоші Накамото швидко виправив її.
Подальші зміни у функціональності OP_RETURN
При оновленні до Bitcoin Core v 0.9.0 скрипти "OP_RETURN output" були зроблені стандартним типом виведення, що дозволяє користувачам додавати дані до "невитрачених виведень транзакцій." Обсяг даних, доступний у таких скриптах, спочатку обмежувався 40 байтами, потім збільшився до 80 байтів.
Зберігання даних на блокчейні:
Зміна OP_RETURN на завжди повертати false мала цікаві результати. Оскільки жодні інші опкоди або дані не оцінюються після OP_RETURN, користувачі мережі почали використовувати цей опкод для зберігання даних у довільних форматах.
Під час ери Bitcoin Cash (BCH), з 1 серпня 2017 року по 15 листопада 2018 року, довжина даних, які можна було додати до виходів OP_RETURN, була розширена до 220 байтів, що дозволило розміщувати більш значущі дані для стимулювання інноваційних застосувань на блокчейні, таких як публікація контенту в соціальних мережах блокчейну.
На BSV обмеження у 220 байтів все ще зберігалося на короткий період часу. Пізніше, у січні 2019 року, через те, що опкод OP_RETURN завершує скрипт таким чином, що вузли не перевіряють будь-які наступні опкоди, вузли також не перевіряли, чи скрипт був у межах максимального розміру скрипту у 520 байтів. В результаті оператори вузлів мережі вирішили збільшити максимальний обсяг транзакцій до 100 КБ, що дозволило розробникам більшу свободу для інновацій застосувань, дозволяючи новим застосуванням розміщувати більші та складніші дані в біткойн-ланцюг. Тоді був приклад застосування, коли хтось помістив цілу веб-сторінку в ланцюг BSV.
Хоча OP_RETURN має деякі функціональні розширення, його загальні можливості все ще обмежені. Це призвело до технології Відокремленого Свідка.
(2) SegWit (Відокремлений Свідок)
Розділений свідок, або SegWit, був запропонований Пітером Вулле (розробником біткойн ядра та співзасновником Blockstream) у грудні 2015 року, а пізніше став Bitcoin BIP 141. SegWit незначно модифікує структуру даних транзакцій у блоках біткойну, щоб вирішити наступні питання:
1) Проблема змінюваності транзакцій.
2) У доказах SPV передача підписів транзакцій стає необов'язковою, зменшуючи обсяг даних доказів Меркла.
3) Посередньо збільшуючи місткість блоку.
Перші два елементи в основному підвищують безпеку та продуктивність, найбільший вплив на нові технології має третій елемент, який опосередковано збільшив місткість блоку (див. концепцію ваги блоку нижче), закладаючи фундамент для підвищення можливостей біткоїна та призводячи до подальших вдосконалень в Taproot (друга версія відокремленого свідка).
Незважаючи на те, що реалізація збільшила потужність блоку, SegWit все ще підлягає обмеженням розміру блоку. Ліміт розміру блоку Bitcoin становить 1 М байт, і оскільки дані свідків не включаються в цей ліміт, все ще існує обмеження на загальний розмір блоку, щоб запобігти зловживанню даними свідків. Було введено нове поняття, що називається Вагою блоку:
Вага блоку = Базовий розмір * 3 + Загальний розмір
Розмір бази - це розмір блоку без даних свідків
Загальний розмір - це загальний розмір блоку, серіалізований згідно з BIP 144, включаючи як базові дані, так і дані свідка.
SegWit обмежує вагу блоку <= 4 M.
SegWit також технічно дозволяє розширення Bitcoin для використання мережі Lightning, яка тут не деталізується.
(3) Taproot (Segregated Witness V2)
Якщо ви безпосередньо використовуєте слово Taproot, багато людей можуть подумати, що це нова концепція, але якщо ви розумієте, що це друга версія відділеної свідомості, багато хто зрозуміє зв'язок. Taproot пов'язаний з BIP 340, 341 і 342, під назвою: BIP 340 (Підписи Schnorr для secp256k1), BIP 341 (Taproot: правила витрати версії SegWit 1)
BIP 342 (Підтвердження сценаріїв Taproot).
У листопаді 2021 року Taproot був офіційно активований як м'який вилучення. Це оновлення поєднує BIP 340, BIP 341 та BIP 342. Серед них BIP 340 вводить підписи Schnorr, які одночасно можуть підтверджувати кілька транзакцій, замінюючи алгоритм еліптичних кривих цифрового підпису (ECDSA), знову розширюючи мережеві можливості та прискорюючи обробку партійних транзакцій, надаючи можливості для розгортання складних смарт-контрактів; BIP 341 реалізує Merklized Abstract Syntax Trees (MAST), щоб оптимізувати зберігання даних про транзакції в блокчейні; BIP 342 (Tapscript) використовує мову кодування скриптів Bitcoin для підвищення можливостей нативних скриптів Bitcoin.
Розширення простору, спричинене Segwit та Taproot, призвело до створення підписів Schnorr, дерев MAST та скриптів Taproot, місією яких є розширення функціональності основного мережі Bitcoin.
З розділу 2.1 ми спостерігали за постійним дослідженням Bitcoin у масштабуванні та підвищенні продуктивності, що завершилося розробкою технології Taproot, разом із кількома ключовими технологіями, такими як Schnorr, MAST та Taproot Scripts, які дійсно розширили можливості Bitcoin.
(1) Підписи Шнорра
Еволюція Taproot, розширюючи можливості, вимагала конкретних вимог до алгоритму підпису, що призвело до введення підписів Schnorr на заміну алгоритму цифрового підпису з еліптичної кривої (ECDSA). Підписи Schnorr - це цифрова схема підпису, яка може ефективно та безпечно підписувати транзакції та повідомлення. Вперше вони були описані Клаусом Шнорром у статті 1991 року. Schnorr славиться своєю простотою, доведеною безпекою та лінійністю.
Переваги підписів Schnorr:
1) Підписи Шнорра пропонують кілька переваг, включаючи ефективність та покращену конфіденційність, зберігаючи всі функціональність та припущення безпеки ECDSA. Вони дозволяють менші розміри підписів, швидші часи перевірки та покращену стійкість до певних типів атак.
2) Значною перевагою підписів Schnorr є агрегація ключів, яка агрегує кілька підписів в один, який є дійсним для суми їх ключів. Іншими словами, Schnorr дозволяє кільком співпрацюючим сторонам генерувати один підпис, який є дійсним для загальної суми їхніх публічних ключів. Агрегація підписів дозволяє комбінувати підписи кількох підписантів в один загальний підпис.
Агрегація ключів може зменшити комісію за транзакції та покращити базову масштабованість, оскільки електронні підписи з мультисігнальних налаштувань займають той самий простір у блоку, що й ті з транзакцій однієї сторони. Ця функція Schnorr може бути використана для зменшення розміру платежів мультисігу та інших транзакцій, пов'язаних з мультисігом, таких як транзакції каналів мережі Lightning.
3) Ще однією важливою рисою підписів Шнорра є їх немальованість.
4) Schnorr також пропонує численні переваги у сфері конфіденційності. Він робить мультипідписні схеми невідрізними від традиційних одноключових для зовнішніх спостерігачів, ускладнюючи відрізнення мультипідписного витратування від витратування з однією підписом на ланцюжку. Крім того, у встановленнях n-of-m мультипідписів, Schnorr ускладнює зовнішнім спостерігачам визначення того, які учасники підписали у транзакції, а які - ні.
Підписи Schnorr реалізовані в BIP-340 як частина оновлення м'якого виходу Taproot і були активовані 14 листопада 2021 року на висоті блоку 709,632. Schnorr робить цифрові підписи BTC швидшими, безпечнішими та легшими у керуванні. Зокрема, підписи Schnorr є сумісними з криптографічними алгоритмами BTC, що дозволяє їх внести через оновлення м'якого виходу.
(2) Дерева абстрактного синтаксичного дерева MAST
Є деяка неоднозначність в скороченні MAST на китайську та англійську мови. Офіційно, BIP (BIP 114) та деякі статті використовують скорочення MAST для: Merklized Abstract Syntax Tree. Інші джерела перекладають Merklized Alternative Script Trees (MAST) на китайську як Дерева заміни скриптів Merklized (MAST). У книзі «Володіння біткоїном» та статті використовується це скорочення:https://cointelegraph.com/learn/a-beginners-guide-to-the-Bitcoin-taproot-upgrade.
Дерева абстрактного синтаксису Меркліза та Дерева альтернативних скриптів Меркліза (MAST), схоже, виконують одну й ту саму функцію. З точки зору перекладу, я особисто вважаю, що найкраще підтримувати використання, яке є в офіційному протоколі Bitcoin BIP.
Концепція за MAST виникає з двох ідей: Абстрактних Синтаксичних Дерев та Дерев Меркла.
Абстрактні синтаксичні дерева (AST) належать до сфери принципів компіляторів та формальної лінгвістики в інформатиці. Абстрактне синтаксичне дерево є проміжним представленням під час процесу компіляції, використовується для представлення семантичної структури вихідного коду. Воно перетворює вихідний код в деревоподібну структуру, де кожен вузол представляє семантичну одиницю, а ребра представляють відносини між ними. Абстрактні синтаксичні дерева відіграють важливу роль на етапах лексичного та синтаксичного аналізу компілятора, допомагаючи зрозуміти значення вихідного коду та виконувати подальші процеси оптимізації та генерації цільового коду. Проще кажучи, абстрактне синтаксичне дерево (AST) - це метод опису програми шляхом поділу її на незалежні блоки, що робить програму легшою для аналізу та оптимізації. Для створення AST всі рівняння та їх передумови повинні бути з'єднані стрілками, поки всі передумови не будуть ідентифіковані. Нижче наведено AST скрипта.
З іншого боку, дерево Меркля може бути використане для перевірки того, чи належить елемент до множини, не потребуючи знати всю множину. Наприклад, спрощені платіжні верифікаційні гаманці Bitcoin (гаманці SPV) використовують дерева Меркля для перевірки, чи існує транзакція в блоку, що зберігає пропускну здатність, не завантажуючи повний блок.
Щоб згенерувати дерево Меркла, кожен елемент хешується окремо для створення унікального ідентифікатора; Потім ці ідентифікатори об'єднуються в пари та знову хешуються, щоб створити ідентифікатор для цієї пари; цей процес повторюється до тих пір, поки не залишиться тільки один ідентифікатор, відомий як «корінь Меркла», який є стислим ідентифікатором, що представляє весь набір.
Під час перевірки того, належить елемент до множини, власник множини може надати вам всі ідентифікатори з цього елемента до кореня Меркла. Це доводить, що елемент дійсно є частиною множини.
Коротко кажучи, технологія за AST дозволяє розділити програму на кілька невеликих блоків, тоді як дерево Меркля дозволяє нам перевірити, що ці блоки дійсно є частинами цілої програми, не розкриваючи всю програму. Це базовий принцип MAST, який дозволяє витратникам замінювати не використовувані умови в одній транзакції за допомогою доказу Меркля, з перевагами зменшення розміру транзакції, підвищення конфіденційності та підтримки більших контрактів.
Існує багато прикладів дерев MAST онлайн, і ті, хто знайомі з розробкою програм, можуть чітко зрозуміти логіку, пов'язану з процесом MAST.
З появою абстрактних синтаксичних дерев MAST стає необхідним розширення можливостей синтаксису Bitcoin, що призводить до створення сценаріїв Taproot.
(3) Сценарії Taproot
Представлений у рамках протоколу BIP 342, Taprootscript - це оновлена версія оригінального скрипта Bitcoin, який суттєво є колекцією операційних кодів з командами, які підтримують впровадження інших BIP. Taprootscript також усуває обмеження розміру скрипта на 10 000 байтів, надаючи кращі умови для створення смарт-контрактів у мережі Bitcoin. Це оновлення також заклавло основу для подальшого розвитку Ординалів, які використовують скрипти витрат шляху скрипта Taproot для додавання додаткових даних. Додаткові відомості можна знайти на офіційному веб-сайті:
https://github.com/bitcoin/bips/blob/master/bip-0342.mediawiki
Можливості TaprootScript ще не були повністю використані, і у майбутньому більше розвитку продемонструє їх потенціал, особливо у зв'язку з першим рівнем мережі Біткойн з технологіями другого рівня, де Taproot, MAST та TaprootScripts ймовірно будуть використовуватися більш широко.
З фундаментальними інструментами, такими як Segwit, Taproot, Schnorr, MAST та Taproot Scripts в екосистемі Біткойн, почали з'являтися нові застосунки. Спочатку ці застосунки були легкими та простими.
(1) Протоколи порядкових чисел, написи та BRC 20
Створення протоколу Ordinals сильно пов'язане з концепцією сатоші. Протокол вводить поняття ординалів та написів. Ординали - це система нумерації, яка присвоює унікальний номер кожному сатоші в мережі Біткоїн згідно з порядком їх видобутку. У протоколі ідентифікатор ординалу залишається незмінним незалежно від того, як сатоші передаються між різними гаманцями. Повні вузли Біткоїн, що працюють на відкритому програмному забезпеченні Rodarmor, ORD, можуть відстежувати ці пронумеровані сатоші, надаючи точний механізм для відстеження кожного сатоші та незалежної перевірки їх.
Гравіювання передбачає витравлювання інформації на сатоші. Використовуючи SegWit та Taproot, протокол Ordinals дозволяє витравлювати файли розміром менше 4 МБ на кожному сатоші в блоку Bitcoin - це гравіювання, яке може містити різні типи інформації, такі як текст, зображення або відео.
У простих термінах схема порядкових номерів надає кожному сатоші унікальний, відстежуваний ідентифікатор, який надає йому неперепливні характеристики. Написи дозволяють додавати недільні дані до цих порядкових чисел, схожі на створення мистецтва на чистому полотні. У поєднанні вони дозволяють Bitcoin розміщувати новий стандарт для NFT. В основному, Порядкові є схожими на протокол NFT, але на відміну від ETH або інших публічних блокчейнів, де метадані NFT зазвичай зберігаються на IPFS або централізованих серверах, Порядкові вбудовують метадані в свідчення даних транзакції, ніби "вигравірували" на певному сатоші.
BRC-20: Інспірований протоколом Ordinals, користувач Twitter @domodata 8 березня 2023 року створив експериментальний стандарт взаємозамінних токенів BRC-20 на Bitcoin. Присвоюючи різні «атрибути» кожному сатоші, протокол Ordinals створює мережеві NFT BTC, тоді як BRC-20 робить це, надаючи єдиний «формат» і «атрибути» для взаємозамінних токенів (FT) на основі BTC. BRC-20 використовує протокол Ordinals для запису тексту JSON у напис BTC для розгортання контрактів токенів, карбування та передачі токенів. Ключові аспекти розгортання включають назву токена, загальну пропозицію та максимальну кількість карбування за один випадок. Для транзакцій, пов'язаних з переказами або купівлею/продажем, додатковий NFT відстежує офчейн-баланси. Механізм карбування «першим прийшов – першим обслужений» забезпечує справедливу емісію та можливості участі. Однак відносно нерозвинена інфраструктура екосистеми BTC і її крута крива навчання в поєднанні з низькою ліквідністю дозволяють токенам BRC-20, таким як орді, сатосам і щури, легко зростати, створюючи міф про створення багатства.
(2) Інші протоколи - Atomicals, ARC 20
Розвиток протоколу Atomicals був досить драматичним. Його засновник Артур спочатку хотів розробити проєкт DID на основі щойно випущеного протоколу Ordinals, але усвідомив, що у протоколу Ordinals є багато обмежень, які були невигідні для підтримки деяких функцій, які він хотів реалізувати. Внаслідок цього 29 травня 2023 року Артур опублікував у Twitter свою концепцію протоколу Atomicals, який був запущений 17 вересня 2023 року після місяців розробки. В подальшому протокол Atomicals породив концепції, такі як Dmint, Bitwork, ARC-20 та RNS, з майбутніми планами впровадження AVM та рішень по розщепленню. Як і в разі Ordinals та BRC-20, розгортання змінних токенів на Atomicals призводить до створення ARC-20. Читачі, які цікавляться ARC-20, можуть дізнатися більше тут: ARC-20 Токени.
(3) Інші протоколи - Rune
Під час розвитку екосистеми Кейсі Родармор, творець Ординалів, вказав, що токени BRC-20 мають «нещасливу наслідок розповсюдження UTXO» та запропонував Руни як альтернативний рішення на основі UTXO. Існуючі протоколи загалом страждають від складних реалізацій, поганих користувацьких вражень, сміттєвих невикористаних вихідних транзакцій (UTXO) та операцій, які вимагають власних токенів.
Передача рун використовує OP_RETURN, і перший вихід даних у повідомленні протоколу декодується у послідовність цілих чисел, які інтерпретуються як серія кортежів (ID, OUTPUT, AMOUNT). Якщо декодоване число цілих чисел не є кратним трьом, повідомлення протоколу недійсне. ID вказує на ідентифікатор токена, який має бути переданий, OUTPUT - це індекс виходу, призначений (тобто якому виходу він призначений), а AMOUNT - це виділена кількість. Після обробки всіх виділень кортежів будь-які нерозподілені токени Runes призначаються першому не-OP_RETURN виходу, а решта можуть бути записані токени Runes в OP_RETURN виході, що містить повідомлення протоколу.
Емісія рун заснована на UTXO-відстеженні однорідних токенів. Якщо повідомлення протоколу містить друге надсилання даних, воно являє собою транзакцію видачі. Другий запис даних розшифровується на два цілих числа, СИМВОЛ і ДЕСЯТКОВЕ ЧИСЛО. Якщо залишаються додаткові цілі числа, повідомлення протоколу є недійсним. SYMBOL — це базовий 26-символьний символ, що читається, подібний до тих, що використовуються в іменах Ordinals, з єдиними допустимими символами від A до Z. ДЕСЯТКОВІ ДЕСЯТКОВІ ЗНАКИ вказують на десяткові знаки, які слід використовувати при видачі рун. Якщо СИМВОЛ ще не присвоєно, токену рун присвоюється значення ідентифікатора (починаючи з 1). Якщо SYMBOL вже присвоєно або він є одним із BITCOIN, BTC або XBT, нові руни не створюються. Це особливість протоколу Runes — він не пов'язує записи балансу з адресами гаманців, а зберігає їх у самому UTXO. Нові токени рун починаються з транзакції випуску, вказуючи пропозицію, символ і десяткові знаки, і ця пропозиція розподіляється між конкретними UTXO. UTXO можуть містити будь-яку кількість токенів рун, незалежно від їх розміру, і використовуються лише для відстеження балансів. Потім функція перенесення використовує цей UTXO, розбиваючи його на кілька нових UTXO довільного розміру, що містять різну кількість рун, надсилаючи записи іншим. У порівнянні з BRC-20, Runes спрощує рівень консенсусу, стаючи простішим, не покладаючись на офчейн-дані та не маючи нативних токенів, що робить його дуже придатним для нативної моделі Bitcoin UTXO.
(4) Інші протоколи - BTC Stamps, SRC 20, SRC 721
Систему Bitcoin Stamps запустив Майк Ін Спейс у березні 2023 року, спочатку як проект концепції на Counterparty, другому рівні Bitcoin, що існує з 2014 року. Завдяки оновленням у його базових протоколах, Stamps повністю перейшов на Bitcoin, ставши відомим як SRC-20 минулого літа. Спочатку Майк уявляв Stamps як метод видачі постійних Bitcoin NFT. Однак протокол з того часу розширився, щоб реплікувати BRC-20, тип обмінного токена, який процвітав на Bitcoin завдяки манії написання, спровокованій запуском Ordinals Кейсі Родамором в січні 2023 року.
Основною відмінністю між Stamps та Ordinals є їх архітектура. Stamps зберігає свої метадані в мультипідписних невитрачених вихідних транзакціях (UTXO), тоді як Ordinals зберігає свої метадані в частині "свідок" транзакцій Bitcoin. Ця архітектурна відмінність підкреслює компроміси, зроблені розробниками. Наприклад, метод UTXO Stamps робить їх непроникними, тому здається постійними, хоча їх виробнича вартість вища, ніж у випадку Ordinals. Натомість використання Ordinals свідкових даних в кінцевому підсумку робить їх проникними, і їх виробнича вартість нижча, ніж у випадку Stamps.
Таким чином, хоча Ординати можуть запропонувати найкраще співвідношення міцності й вартості для сьогоднішніх криптовалютних NFT (які також можна отримати на Ethereum, але за вищою вартістю будівництва), здається, що наразі Stamps надає найкращу гарантію безпосередньої стійкості.
Після появи BTC Stamps були розроблені SRC 20 та SRC 721, що працюють подібно до BRC-20. BRC-20 побудований на протоколі Ordinals, тоді як SRC-20 побудований на BTC STAMPS. Зацікавлені читачі можуть докладніше ознайомитися з документацією SRC 20 та SRC 721 тут:
Протокол SRC 20
SRC 721 Протокол
На цьому завершується знайомство зі значними новими технологіями в мережі Layer 1 Bitcoin. Для подальшого масштабування та вдосконалення фокус зміститься на інфраструктуру верхнього рівня Bitcoin, таку як Bitcoin Layer 2 або рішення, що використовують Lightning Network. Щоб дізнатися більше на цю тему, читачам пропонується прочитати «Вичерпний посібник з інфраструктури Bitcoin рівня 2, версія 1.5» і «З точки зору державних машин: спостереження за архітектурою та будівельним шляхом майбутніх додатків Web3.0» або інші статті, пов'язані з будівництвом або архітектурним дизайном Bitcoin Layer 2.
На підставі вмісту розділу 2 ми спостерігаємо, що технологічна еволюція в екосистемі Біткойну заложила фундамент для більш широких застосувань. Однак, оскільки розвиток - це процес, і деякі пов'язані технології ще не є зрілими, існує значна різниця між поточними популярними застосуваннями та майбутніми загальними використаннями.
З попередніх розділів ми бачимо, що суть технологічного розвитку Біткойна полягає в розширенні потужності блоку та можливостей.
Розширення блоку:Розділений свідок (SegWit) успішно розширив місткість блоку, хоча існують різні пропозиції щодо обрізання даних свідка, такі події малоймовірні, особливо після того, як дані свідків набули більшого значення.
Розширення можливостей:Технології, такі як Taproot, Schnorr, MAST та Taproot Scripts, покращили можливості Bitcoin. Особливо, поєднання MAST та Taproot Scripts розширює можливості нативної мови сценаріїв Bitcoin, дозволяючи обробку більш складних сценаріїв. Однак розширення цих можливостей також збільшує складність розробки та розуміння Bitcoin, оскільки розробка сценаріїв не ведеться на мові високого рівня. Крім того, розширення цих можливостей відстає від розуміння користувачів та темпу навчання щодо розширення ємності блоку.
Простота використання розширення блоків у порівнянні зі складністю розширення можливостей пояснює, чому користувачі спочатку зберігають NFT з маленькими зображеннями в основній мережі Bitcoin, що призвело до появи таких програм, як BRC 20. Більшість додатків, які в даний час знаходяться в основній мережі Bitcoin, вивчають використання розширення після блоку. Невелика частина додатків починає досліджувати розширення можливостей, таких як зв'язок між першим і другим рівнями в BEVM, який помітно використовує вищезгадані базові елементи. Комбінація підписів Шнорр, контрактів MAST і мережі легких вузлів Bitcoin (BTC L2) є показовим прикладом того, як навчитися з'єднувати перший і другий рівні. У майбутньому очікуються більш масштабні випадки розширення сил і засобів.
Де повинні знаходитися межі розширення можливостей? Ми можемо судити з погляду шарового дизайну. Якщо ці можливості в основному призначені як зв'язки між першим і другим шаром Біткойна, то вони не повинні ставати надто складними. Однак, підштовхувані людською творчістю та сильним привабливістю емісії та управління активами, деякі команди або особи будуть досліджувати більше сценаріїв для розширення можливостей.
Найбільш прямою причиною виникнення технології блокчейн є цифрова валюта, тому випуск та управління активами є прямими потребами в межах домену Біткойн або блокчейну. Від дослідження кольорових монет до застосунків, таких як BRC 20 та ARC 20, а також ICO та IDO на Ethereum, це всі дослідження випуску активів. Застосунки, такі як Uniswap, кредитування та AMM, стосуються управління активами. Ці типи застосунків виросли на мережах, таких як Ethereum, і з розвитком технології екосистеми Біткойн ці застосунки управління активами ймовірно перейдуть до екосистеми Біткойн, зокрема до другого рівня Біткойн.
Тільки після задоволення потреб випуску та управління активами з'являться можливості та час для розробки масштабних додатків для ери Web3.0 (також відомої як епоха цінностей). Системна архітектура для майбутніх великомасштабних додатків Web3.0 обговорюється в статті «З точки зору державних машин, що переглядають другий рівень біткойна, спостереження за майбутньою архітектурою та шляхом побудови додатків Web3.0».
Шлях до будівництва - це процес постійного задоволення потреб, який можна розділити на короткостроковий, середньостроковий та довгостроковий етапи. Короткостроковий етап передбачає нові застосування технологій на головній мережі Bitcoin та прості етапи побудови другорядної конструкції на основі блокчейну для задоволення основних розширень функціональності для різних фінансових застосувань. Середньостроковий етап включає більш складні етапи побудови другорядної конструкції на основі блокчейну та другорядної конструкції розподіленої системи, які відповідають різним фінансовим та довірчим застосуванням. Довгостроковий етап передбачає повне будівництво великомасштабного екосистеми Bitcoin, що дійсно будує еру Web3.0.
Оригінальна технологія Bitcoin завжди стикалася з конфліктами між її здатністю до масового прийняття та функціональністю, якою вона повинна володіти. Чи означає масштабування та обсяг транзакцій більш складні команди транзакцій та більший обсяг транзакцій? Чи це означає, що всі функції повинні бути реалізовані в одній системі Bitcoin? У перші дні, коли розвиток технології екосистеми Bitcoin був неповним, ці питання здавалися властивими самому Bitcoin. Однак, з розвитком технологій, багато з цих питань стали яснішими.
У цій статті перераховані деякі пов'язані питання, а також процеси, через які вони виникли та були вирішені. Через цю статтю можна побачити зв'язок між цими питаннями та технологією, а також зміни в основному ланцюжку Bitcoin та пов'язаних «тестових ланцюжках». Технологія Bitcoin була постійно досліджена різними проектами та командами (включаючи Ethereum, яке є дослідженням недоліків Bitcoin). Проте зміни в основній мережі Bitcoin були не дуже очевидними до приходу технологій, таких як Taproot, які підштовхнули розвиток протоколів, таких як Ordinals, що спричинило новий ривок у розвитку.
З більш широкої перспективи, розглядаючи ці розвитки та технології, які вони виробили, ми можемо побачити їх зв'язки та зробити припущення про більше напрямків для розвитку та загальної архітектури.
Мова програмування Bitcoin - це мова сценаріїв на основі стеку, що використовує зворотну польську нотацію, відсутня в ній петлі та умовні оператори управління (пізніші розширення, такі як Taproot & Taproot Script, покращили цю можливість). Тому часто кажуть, що мова сценаріїв Bitcoin не є повністю тьюрінговою, обмежуючи її можливості.
Через ці обмеження хакери не можуть використовувати цю мову сценаріїв для написання нескінченних петель (що призвело б до паралізу мережі) або коду, який міг би призвести до атак типу DOS, тим самим захищаючи мережу Bitcoin від атак типу DOS. Розробники Bitcoin також вважають, що основний блокчейн не повинен мати повноти Тьюрінга для уникнення певних атак і перенасиченості мережі.
Однак ці обмеження означають, що мережа Біткойн не може виконувати інші складні програми або здійснювати деякі "корисні" функції. Пізніші блокчейн-системи, розроблені для вирішення конкретних проблем та задоволення потреб користувачів, змінили цей аспект. Наприклад, мова, що використовується в Ethereum, є повністю тьюрінг-повною.
Загальні типи інструкцій сценарію Bitcoin включають:
Ключові слова:
Константи. наприклад, OP_0, OP_FALSE
Керування потоком. наприклад, OP_IF, OP_NOTIF, OP_ELSE, і т. д.
Операції стеку. наприклад, OP_TOALTSTACK (посуває вхід в допоміжний стек, видаляючи його з основного стеку), тощо.
Операції рядків. наприклад, OP_CAT (конкатенує два рядки, вимкнено), OP_SIZE (додає довжину рядка верхнього елементу стеку до стеку без видалення елемента)
Побітова логіка. наприклад, OP_AND, OP_OR, OP_XOR
Арифметична логіка. наприклад, OP_1ADD (додає 1 до вводу), OP_1SUB (віднімає 1 від вводу)
Криптографія. наприклад, OP_SHA1 (хешує вхідний текст за допомогою алгоритму SHA-1), OP_CHECKSIG
Псевдо ключові слова
Зарезервовані ключові слова
Звичайні типи скриптів Bitcoin:
Стандартна транзакція, що сплачується на адресу Bitcoin (оплата за публічний ключ-хеш)
Стандартна транзакція видачі біткойнів (передача на публічний ключ)
Доведена непотратність / обрізні виводи
Вихід Anyone-Can-Spend
Транзакція головоломка
П'ять стандартних типів транзакційних сценаріїв включають: платежі до хеш-коду відкритого ключа (P2PKH), платежі до відкритого ключа, багатопідписні (обмежені до максимум 15 ключів), платежі до хеш-коду сценарію (P2SH) та виводи даних (OP_RETURN).
Для отримання докладної інформації щодо скриптів Bitcoin ви можете відвідати:Біткойн Вікі - Сценарій.
Історично Біткойн пройшов кілька скорочень у підтримуваних інструкціях. У наступній діаграмі червоні частини - це інструкції, які були видалені.
(2)
(3) Арифметичні операції
Чому зменшувати інструкції? Безпека — лише один аспект, який слід враховувати. Якщо ми розглянемо зменшення інструкцій через призму шарування дизайну, ми зможемо зрозуміти його раціональність, дозволяючи базовому протоколу бути більш фундаментальним і стабільним. Можливо, Сатоші Накамото був свідомим цієї проблеми з самого початку, тому він активно зменшував інструкції. Звичайне мислення полягає в тому, щоб побудувати невелику систему, яка безпосередньо задовольняє потреби користувачів з повними командами та функціями системи, а не великий протокол, який вимагає співпраці.
Це також призводить до факту: лише Bitcoin підходить як мережа першого рівня. Я проаналізував це явище в статті «Високі ціни на Bitcoin можуть сприяти виникненню нового альтернативного ланцюжка», розглядаючи як економічні, так і технічні перспективи, так і можливість виникнення альтернативного ланцюжка Bitcoin. Однак з фундаментальних характеристик Bitcoin та перспективи шарування дизайну, майже лише Bitcoin може служити як інфраструктура мережі першого рівня; навіть якщо є альтернативні ланцюжки, вони були б продуктом 1,5 рівня. На рівні першого рівня справжній товар - це лише Bitcoin, і в кращому випадку інші ланцюжки можуть служити альтернативними товарами меншої якості.
У історії розвитку Біткойну, крім питання зменшення інструкцій, існує ще один аспект - дискусія про розмір блоку, яка часто призводить до важких розділень Біткойну.
Коли був створений BTC, не було обмеження на розмір блоку, щоб дозволити обробку певної кількості транзакцій протягом того ж самого часу. Однак, коли початкові ціни на BTC були дуже низькими, вартість зловісних транзакцій також була дуже низькою. Для вирішення цієї проблеми Сатоші Накамото очолив м'яке розділення 12 вересня 2010 року, вводячи обмеження, що блоки не можуть перевищувати 1 МБ. Сатоші зауважив, що це обмеження є тимчасовим, і що в майбутньому обмеження блоку може бути збільшено контрольним та поступовим способом, щоб задовольнити потреби розширення.
З популярністю Bitcoin проблема заторів мережевих транзакцій та збільшення часу підтвердження стає все серйознішою. У 2015 році Ґевін Андресен та Майк Хірн оголосили, що вони будуть реалізовувати пропозицію BIP-101 у новій версії BitcoinXT з надією збільшити ліміт розміру блоку до 8 МБ. Однак ядерні розробники, такі як Грег Макселл, Люк Джуніор та Пітер Вуїлле, були проти цього, стверджуючи, що це підвищить бар'єр для запуску повного вузла та може мати неконтрольовані наслідки. Ця дискусія врешті-решт розширилася як за обсягом, так і за участю.
З вищевказаного вмісту ми бачимо, що Сатоші Накамото також висловив думку, що «обмеження розміру блоку є тимчасовим обмеженням, яке може бути збільшено контрольованим та поступовим способом у майбутньому, щоб задовольнити потреби в розширенні». Але коли форк підтримає більші блоки, і чи може відокремлення окремого ланцюжка для підтримки великих блоків вирішити проблему? Поміж триваючими суперечностями виникло безліч випадків. Наприклад, розмір блоку BCH становить 8 МБ, пізніше збільшений до 32 МБ. BSV має розмір блоку 128 МБ. Окрім BCH (а пізніше BSV), у цей період також було багато інших форків BTC; за даними BitMEXResearch, принаймні 50 нових форків монет з'явилися в рік після форка BCH.
Пізніше буде показано, що на основній мережі Bitcoin, Segwit та Taproot також збільшили обсяг блоку з 1 МБ до 4 МБ до певної міри.
Форки Bitcoin - це форма розвідки, спрямована на задоволення широкого спектру потреб через зміни всередині себе, включаючи потреби користувачів, рударів, інвесторів, розробників та інших.
Після того, як Сатоші Накамото пішов, його наступник Ґавін Андресен взяв на себе лідерство у створенні Bitcoin Core та Bitcoin Foundation. Протягом цього періоду дослідження масштабованості BTC, зокрема у сфері емісії активів, продовжувалися.
(1) Кольорові монети (染色币)
Йоні Ассіа, генеральний директор eToro, вперше запропонував концепцію розфарбованих монет в статті, опублікованій 27 березня 2012 року. Ця ідея продовжувала розвиватися, почала набирати форму і звертати на себе увагу на форумах, таких як Bitcointalk. У кінці кінців, Мені Розенфельд опублікував докладну білу книгу про розфарбовані монети 4 грудня 2012 року.
Ідея зафарбованих монет полягає в тому, щоб представляти більший спектр активів та цінностей шляхом додавання спеціальних позначок (тобто забарвлення) до конкретних частин біткоїна. При впровадженні зафарбовані монети з'явилися в декількох сутностях, що загалом поділяються на дві категорії:
1) На основі OP_RETURN: Як запропонував Флавіан Шарлон у 2013 році, використовуючи відкриті активи, які використовують OP_RETURN (введений у Bitcoin v0.9.0 для зберігання невеликої кількості даних у Bitcoin, спочатку обмежений 40 байтами, пізніше збільшений до 80 байтів). Опкод зберігається в скрипті, а “розфарбовування” та транзакції завершуються зовнішнім читанням (ця модель схожа на порядкові числа, які ґрунтуються на зовнішньому індексі для визначення законності активів).
2) На основі OP_RETURN: Типовим прикладом є протокол EPOBC, запропонований компанією ChromaWay в 2014 році, де додаткова інформація про активи EPOBC зберігається в полі nSequence транзакцій Bitcoin, а категорія та легальність кожного активу EPOBC повинні бути відстежені до початкової транзакції, щоб визначити.
(2) MasterCoin (OMNI)
Джеяр Віллетт випустив концепцію MasterCoin 6 січня 2012 року, назвавши її "другим біткойн-білим папером", та офіційно запустив проект через ICO в липні 2013 року, врешті-решт збираючи 5120 BTC (на той момент на вартість $500,000). Відмінність між MasterCoin та Colored Coins полягає в тому, що вона встановила повний рівень вузла, який зберігає базу даних моделі стану, скануючи біткойн-блоки, які розташовані в вузлах поза ланцюжком блоку. Цей дизайн надає більш складні функціональні можливості, ніж у Colored Coins, такі як створення нових активів, децентралізовані обміни та автоматизовані механізми зворотного зв'язку щодо цін. У 2014 році компанія Tether також запустила стабільну монету, відому як Tether USD (OMNI) на біткоїні через протокол Mastercoin.
(3) CounterParty
Counterparty був офіційно запущений в 2014 році. Як і Colored Coins, Counterparty також використовує OP_RETURN для зберігання даних в мережі BTC. Однак, на відміну від кольорових монет, активи в Counterparty не існують у вигляді UTXO, а замість цього інформація завантажується через OP_RETURN для позначення передачі активів. Коли власник активу підписує транзакцію, що містить спеціальні дані, використовуючи адресу утримання, актив переходить. За допомогою цього методу Counterparty може реалізувати емісію активів, торгівлю та платформу, сумісну з умовними контрактами Ethereum.
Додатково, деякі думки також розглядають Ethereum, Ripple та BitShares як частину ширшого “Біткойн 2.0”.
Недоліки (або обмеження) Біткойну виявляються переважно в декількох аспектах (недоліки, згадані в цій статті, базуються на узагальненні в білій книзі Ethereum і не обов'язково є справжніми недоліками).
У поточних проектах блокчейну існують головним чином два типи методів ведення записів: модель обліку/балансу та модель UTXO. Біткойн використовує модель UTXO, тоді як Ethereum, EOS та інші використовують модель обліку/балансу.
У гаманці Bitcoin ми зазвичай можемо побачити баланс рахунку; однак у вихідному дизайні системи Bitcoin Сатоші Накамото не було поняття "балансу". "Баланс Bitcoin" є похідним від додатків гаманця Bitcoin. UTXO (невитрачені вихідні транзакції) представляє невитрачені вихідні транзакції, і це є основним концепцією у створенні та верифікації транзакцій Bitcoin. Транзакції формують ланцюжкову структуру, де всі законні транзакції Bitcoin можуть бути відстежені до виходів з однієї або декількох попередніх транзакцій. Ці ланцюжки починаються з винагород за майнінг та закінчуються поточними невитраченими вихідними транзакціями.
Отже, в реальному світі немає біткойнів, лише UTXO. Угоди з біткойном складаються з входів та виходів угоди; кожна угода витрачає вхід, щоб створити вихід, який потім стає «невитраченим вихідним виведенням угоди», або UTXO.
Впровадження смарт-контрактів створює значні виклики з моделлю UTXO. Гевін Вуд, автор Жовтого Паперу Ethereum, має глибоке розуміння UTXO. Найбільш значущою новою функцією Ethereum є смарт-контракти. Через смарт-контракти Гевіну Вуду складно впровадити смарт-контракти з повністю реалізованою машиною Тьюрінга, що базуються на UTXO. Модель облікових записів, яка має властивості об’єктно-орієнтованої, реєструє кожну транзакцію на відповідному обліковому запису (nonce++). Для спрощення управління обліковими записами вводиться глобальний стан, де кожна транзакція змінює цей глобальний стан, аналогічно тому, як кожна невелика зміна впливає на реальний світ. Таким чином, Ethereum та подальші публічні блокчейни, як правило, базуються на різних типах облікових систем.
Ще одним серйозним недоліком UTXO є його неспроможність забезпечити докладний контроль над обмеженнями на виведення коштів, про що йдеться у білій книзі Ethereum.
Хоча мова сценаріїв Bitcoin може підтримувати різноманітні обчислення, вона не може підтримувати всі обчислення. Основною відсутністю є те, що мова сценаріїв Bitcoin не має операторів циклу та умовного керування. Отже, мова сценаріїв Bitcoin не є повністю тьюрінг-повною, обмежуючи її можливості. Однак ці обмеження перешкоджають хакерам використовувати цю мову сценаріїв для створення нескінчених циклів (що може паралізувати мережу) або зловмисного коду, який може призвести до DOS-атак, тим самим захищаючи мережу Bitcoin від DOS-атак. Розробники Bitcoin також вважають, що основний блокчейн не повинен бути повністю тьюрінг-повним, щоб уникнути атак та мережевої конгестії. Однак причина, чому неповністю тьюрінг-повна мова є безпечнішою, недостатня, і така мова може виконувати лише обмежені функції.
Централізація видобутку - це проблема, де алгоритм видобутку біткоїну фактично дозволяє гірникам вносити незначні зміни до заголовка блоку мільйони разів, поки змінена версія хешу вузла не буде менше цільового значення. Цей алгоритм видобутку вразливий до двох форм централізаційних атак. По-перше, екосистема видобутку контролюється ASIC (спеціалізовані інтегральні схеми) та комп'ютерними мікросхемами, розробленими спеціально для видобутку біткоїну, які тисячі разів ефективніше в цьому завданні. Це означає, що видобуток біткоїну вже не є високо децентралізованим та рівноправним, але потребує значних капіталовкладень для ефективної участі. По-друге, більшість гірників біткоїну вже не завершують локальну перевірку блоку; замість цього вони покладаються на централізовані пули видобутку для надання заголовків блоків. Ця проблема є значущою: наразі топ-три пули видобутку опосередковано контролюють близько 50% потужності обробки в мережі біткоїну.
Масштабованість є важливою проблемою для Біткойну. Використовуючи Біткойн, дані збільшуються приблизно на 1 МБ на годину. Якщо мережа Біткойн обробляла б 2000 транзакцій на секунду, як Visa, вона збільшувалася б на 1 МБ кожні три секунди (1 ГБ на годину, 8 ТБ на рік). Низька кількість транзакцій також викликала суперечки в спільноті Біткойн, оскільки більші ланцюжки блоків можуть покращити продуктивність, але за ризиком централізації.
З точки зору життєвого циклу продукту, деякі невеликі недоліки Bitcoin можуть бути вдосконалені всередині його власної системи, обмежені поточною системою. Однак ці проблеми можуть бути вирішені без врахування обмежень старої системи, якщо вони будуть вирішені в новій системі. Якщо розробляється нова система блокчейну, то ці невеликі функціональні поліпшення також повинні бути розроблені та оновлені.
Шаровий дизайн
Шаровий дизайн - це методологія та підхід, який використовується людьми для роботи з складними системами шляхом поділу системи на кілька ієрархічних структур і визначення відносин та функцій між цими шарами для досягнення модульності, підтримуваності та масштабованості системи, тим самим покращуючи ефективність та надійність дизайну системи.
Для широкої та всебічної системи протоколів використання шарів має очевидні переваги. Цей підхід упрощує розуміння людям
, реалізувати та вдосконалювати модулі. Наприклад, у комп'ютерних мережах модель ISO/OSI - це семишаровий дизайн, але на практиці деякі шари можуть бути об'єднані, наприклад, чотирьохшаровий протокол TCP/IP. Специфічні переваги прошаркового протоколу включають незалежність та гнучкість кожного шару, структурну подільність, легкість впровадження та обслуговування, а також сприяння стандартизаційним зусиллям.
З погляду шарових протоколів позиція Біткойну як основного шару означає, що його характеристики, такі як UTXO, відсутність тюрингової повноти, довгі часи блоків, невелика ємність блоків та зникнення його засновника, не є недоліками, а скоріше рисами, якими повинен бути базовий мережевий шар.
Примітка: Автор надає більш детальні пояснення щодо шарування протоколів у "Огляді Bitcoin Layer 2 (Layer 2) Основна система базових знань V1.5."
У попередньому розділі ми дослідили основні конфлікти оригінальної технології Bitcoin та деякі дослідницькі випадки, багато з яких призвели до важких відгалужень або створення зовсім нових гетерогенних ланцюгів. Однак всередині власного блокчейну Bitcoin ці дослідження також принесли багато результатів, в основному у формі розширення блоку та підвищення можливостей. Це в основному проявляється в таких аспектах:
2.1. OP_RETURN
Розробники Біткойн завжди намагалися розширити можливості Біткойну, що виявляється у декількох способах:
(1) Використання OP_RETURN
OP_RETURN - це опкод сценарію, який використовується для завершення сценарію та повернення верхнього значення стеку. Цей опкод схожий на функцію return у мовах програмування. Протягом історії Bitcoin функціональність опкоду OP_RETURN була змінена кілька разів і зараз переважно використовується як метод зберігання даних у журналі. Функціональність опкоду OP_RETURN зазнала значних змін у минулому і зараз є важливим механізмом для зберігання довільних даних на ланцюгу.
Спочатку OP_RETURN використовувався для передчасного завершення виконання сценарію, при цьому результат виконання був представлений як елемент верхнього стеку. Цей опкод спочатку мав вразливість, яка легко використовувалася, але Сатоші Накамото швидко виправив її.
Подальші зміни у функціональності OP_RETURN
При оновленні до Bitcoin Core v 0.9.0 скрипти "OP_RETURN output" були зроблені стандартним типом виведення, що дозволяє користувачам додавати дані до "невитрачених виведень транзакцій." Обсяг даних, доступний у таких скриптах, спочатку обмежувався 40 байтами, потім збільшився до 80 байтів.
Зберігання даних на блокчейні:
Зміна OP_RETURN на завжди повертати false мала цікаві результати. Оскільки жодні інші опкоди або дані не оцінюються після OP_RETURN, користувачі мережі почали використовувати цей опкод для зберігання даних у довільних форматах.
Під час ери Bitcoin Cash (BCH), з 1 серпня 2017 року по 15 листопада 2018 року, довжина даних, які можна було додати до виходів OP_RETURN, була розширена до 220 байтів, що дозволило розміщувати більш значущі дані для стимулювання інноваційних застосувань на блокчейні, таких як публікація контенту в соціальних мережах блокчейну.
На BSV обмеження у 220 байтів все ще зберігалося на короткий період часу. Пізніше, у січні 2019 року, через те, що опкод OP_RETURN завершує скрипт таким чином, що вузли не перевіряють будь-які наступні опкоди, вузли також не перевіряли, чи скрипт був у межах максимального розміру скрипту у 520 байтів. В результаті оператори вузлів мережі вирішили збільшити максимальний обсяг транзакцій до 100 КБ, що дозволило розробникам більшу свободу для інновацій застосувань, дозволяючи новим застосуванням розміщувати більші та складніші дані в біткойн-ланцюг. Тоді був приклад застосування, коли хтось помістив цілу веб-сторінку в ланцюг BSV.
Хоча OP_RETURN має деякі функціональні розширення, його загальні можливості все ще обмежені. Це призвело до технології Відокремленого Свідка.
(2) SegWit (Відокремлений Свідок)
Розділений свідок, або SegWit, був запропонований Пітером Вулле (розробником біткойн ядра та співзасновником Blockstream) у грудні 2015 року, а пізніше став Bitcoin BIP 141. SegWit незначно модифікує структуру даних транзакцій у блоках біткойну, щоб вирішити наступні питання:
1) Проблема змінюваності транзакцій.
2) У доказах SPV передача підписів транзакцій стає необов'язковою, зменшуючи обсяг даних доказів Меркла.
3) Посередньо збільшуючи місткість блоку.
Перші два елементи в основному підвищують безпеку та продуктивність, найбільший вплив на нові технології має третій елемент, який опосередковано збільшив місткість блоку (див. концепцію ваги блоку нижче), закладаючи фундамент для підвищення можливостей біткоїна та призводячи до подальших вдосконалень в Taproot (друга версія відокремленого свідка).
Незважаючи на те, що реалізація збільшила потужність блоку, SegWit все ще підлягає обмеженням розміру блоку. Ліміт розміру блоку Bitcoin становить 1 М байт, і оскільки дані свідків не включаються в цей ліміт, все ще існує обмеження на загальний розмір блоку, щоб запобігти зловживанню даними свідків. Було введено нове поняття, що називається Вагою блоку:
Вага блоку = Базовий розмір * 3 + Загальний розмір
Розмір бази - це розмір блоку без даних свідків
Загальний розмір - це загальний розмір блоку, серіалізований згідно з BIP 144, включаючи як базові дані, так і дані свідка.
SegWit обмежує вагу блоку <= 4 M.
SegWit також технічно дозволяє розширення Bitcoin для використання мережі Lightning, яка тут не деталізується.
(3) Taproot (Segregated Witness V2)
Якщо ви безпосередньо використовуєте слово Taproot, багато людей можуть подумати, що це нова концепція, але якщо ви розумієте, що це друга версія відділеної свідомості, багато хто зрозуміє зв'язок. Taproot пов'язаний з BIP 340, 341 і 342, під назвою: BIP 340 (Підписи Schnorr для secp256k1), BIP 341 (Taproot: правила витрати версії SegWit 1)
BIP 342 (Підтвердження сценаріїв Taproot).
У листопаді 2021 року Taproot був офіційно активований як м'який вилучення. Це оновлення поєднує BIP 340, BIP 341 та BIP 342. Серед них BIP 340 вводить підписи Schnorr, які одночасно можуть підтверджувати кілька транзакцій, замінюючи алгоритм еліптичних кривих цифрового підпису (ECDSA), знову розширюючи мережеві можливості та прискорюючи обробку партійних транзакцій, надаючи можливості для розгортання складних смарт-контрактів; BIP 341 реалізує Merklized Abstract Syntax Trees (MAST), щоб оптимізувати зберігання даних про транзакції в блокчейні; BIP 342 (Tapscript) використовує мову кодування скриптів Bitcoin для підвищення можливостей нативних скриптів Bitcoin.
Розширення простору, спричинене Segwit та Taproot, призвело до створення підписів Schnorr, дерев MAST та скриптів Taproot, місією яких є розширення функціональності основного мережі Bitcoin.
З розділу 2.1 ми спостерігали за постійним дослідженням Bitcoin у масштабуванні та підвищенні продуктивності, що завершилося розробкою технології Taproot, разом із кількома ключовими технологіями, такими як Schnorr, MAST та Taproot Scripts, які дійсно розширили можливості Bitcoin.
(1) Підписи Шнорра
Еволюція Taproot, розширюючи можливості, вимагала конкретних вимог до алгоритму підпису, що призвело до введення підписів Schnorr на заміну алгоритму цифрового підпису з еліптичної кривої (ECDSA). Підписи Schnorr - це цифрова схема підпису, яка може ефективно та безпечно підписувати транзакції та повідомлення. Вперше вони були описані Клаусом Шнорром у статті 1991 року. Schnorr славиться своєю простотою, доведеною безпекою та лінійністю.
Переваги підписів Schnorr:
1) Підписи Шнорра пропонують кілька переваг, включаючи ефективність та покращену конфіденційність, зберігаючи всі функціональність та припущення безпеки ECDSA. Вони дозволяють менші розміри підписів, швидші часи перевірки та покращену стійкість до певних типів атак.
2) Значною перевагою підписів Schnorr є агрегація ключів, яка агрегує кілька підписів в один, який є дійсним для суми їх ключів. Іншими словами, Schnorr дозволяє кільком співпрацюючим сторонам генерувати один підпис, який є дійсним для загальної суми їхніх публічних ключів. Агрегація підписів дозволяє комбінувати підписи кількох підписантів в один загальний підпис.
Агрегація ключів може зменшити комісію за транзакції та покращити базову масштабованість, оскільки електронні підписи з мультисігнальних налаштувань займають той самий простір у блоку, що й ті з транзакцій однієї сторони. Ця функція Schnorr може бути використана для зменшення розміру платежів мультисігу та інших транзакцій, пов'язаних з мультисігом, таких як транзакції каналів мережі Lightning.
3) Ще однією важливою рисою підписів Шнорра є їх немальованість.
4) Schnorr також пропонує численні переваги у сфері конфіденційності. Він робить мультипідписні схеми невідрізними від традиційних одноключових для зовнішніх спостерігачів, ускладнюючи відрізнення мультипідписного витратування від витратування з однією підписом на ланцюжку. Крім того, у встановленнях n-of-m мультипідписів, Schnorr ускладнює зовнішнім спостерігачам визначення того, які учасники підписали у транзакції, а які - ні.
Підписи Schnorr реалізовані в BIP-340 як частина оновлення м'якого виходу Taproot і були активовані 14 листопада 2021 року на висоті блоку 709,632. Schnorr робить цифрові підписи BTC швидшими, безпечнішими та легшими у керуванні. Зокрема, підписи Schnorr є сумісними з криптографічними алгоритмами BTC, що дозволяє їх внести через оновлення м'якого виходу.
(2) Дерева абстрактного синтаксичного дерева MAST
Є деяка неоднозначність в скороченні MAST на китайську та англійську мови. Офіційно, BIP (BIP 114) та деякі статті використовують скорочення MAST для: Merklized Abstract Syntax Tree. Інші джерела перекладають Merklized Alternative Script Trees (MAST) на китайську як Дерева заміни скриптів Merklized (MAST). У книзі «Володіння біткоїном» та статті використовується це скорочення:https://cointelegraph.com/learn/a-beginners-guide-to-the-Bitcoin-taproot-upgrade.
Дерева абстрактного синтаксису Меркліза та Дерева альтернативних скриптів Меркліза (MAST), схоже, виконують одну й ту саму функцію. З точки зору перекладу, я особисто вважаю, що найкраще підтримувати використання, яке є в офіційному протоколі Bitcoin BIP.
Концепція за MAST виникає з двох ідей: Абстрактних Синтаксичних Дерев та Дерев Меркла.
Абстрактні синтаксичні дерева (AST) належать до сфери принципів компіляторів та формальної лінгвістики в інформатиці. Абстрактне синтаксичне дерево є проміжним представленням під час процесу компіляції, використовується для представлення семантичної структури вихідного коду. Воно перетворює вихідний код в деревоподібну структуру, де кожен вузол представляє семантичну одиницю, а ребра представляють відносини між ними. Абстрактні синтаксичні дерева відіграють важливу роль на етапах лексичного та синтаксичного аналізу компілятора, допомагаючи зрозуміти значення вихідного коду та виконувати подальші процеси оптимізації та генерації цільового коду. Проще кажучи, абстрактне синтаксичне дерево (AST) - це метод опису програми шляхом поділу її на незалежні блоки, що робить програму легшою для аналізу та оптимізації. Для створення AST всі рівняння та їх передумови повинні бути з'єднані стрілками, поки всі передумови не будуть ідентифіковані. Нижче наведено AST скрипта.
З іншого боку, дерево Меркля може бути використане для перевірки того, чи належить елемент до множини, не потребуючи знати всю множину. Наприклад, спрощені платіжні верифікаційні гаманці Bitcoin (гаманці SPV) використовують дерева Меркля для перевірки, чи існує транзакція в блоку, що зберігає пропускну здатність, не завантажуючи повний блок.
Щоб згенерувати дерево Меркла, кожен елемент хешується окремо для створення унікального ідентифікатора; Потім ці ідентифікатори об'єднуються в пари та знову хешуються, щоб створити ідентифікатор для цієї пари; цей процес повторюється до тих пір, поки не залишиться тільки один ідентифікатор, відомий як «корінь Меркла», який є стислим ідентифікатором, що представляє весь набір.
Під час перевірки того, належить елемент до множини, власник множини може надати вам всі ідентифікатори з цього елемента до кореня Меркла. Це доводить, що елемент дійсно є частиною множини.
Коротко кажучи, технологія за AST дозволяє розділити програму на кілька невеликих блоків, тоді як дерево Меркля дозволяє нам перевірити, що ці блоки дійсно є частинами цілої програми, не розкриваючи всю програму. Це базовий принцип MAST, який дозволяє витратникам замінювати не використовувані умови в одній транзакції за допомогою доказу Меркля, з перевагами зменшення розміру транзакції, підвищення конфіденційності та підтримки більших контрактів.
Існує багато прикладів дерев MAST онлайн, і ті, хто знайомі з розробкою програм, можуть чітко зрозуміти логіку, пов'язану з процесом MAST.
З появою абстрактних синтаксичних дерев MAST стає необхідним розширення можливостей синтаксису Bitcoin, що призводить до створення сценаріїв Taproot.
(3) Сценарії Taproot
Представлений у рамках протоколу BIP 342, Taprootscript - це оновлена версія оригінального скрипта Bitcoin, який суттєво є колекцією операційних кодів з командами, які підтримують впровадження інших BIP. Taprootscript також усуває обмеження розміру скрипта на 10 000 байтів, надаючи кращі умови для створення смарт-контрактів у мережі Bitcoin. Це оновлення також заклавло основу для подальшого розвитку Ординалів, які використовують скрипти витрат шляху скрипта Taproot для додавання додаткових даних. Додаткові відомості можна знайти на офіційному веб-сайті:
https://github.com/bitcoin/bips/blob/master/bip-0342.mediawiki
Можливості TaprootScript ще не були повністю використані, і у майбутньому більше розвитку продемонструє їх потенціал, особливо у зв'язку з першим рівнем мережі Біткойн з технологіями другого рівня, де Taproot, MAST та TaprootScripts ймовірно будуть використовуватися більш широко.
З фундаментальними інструментами, такими як Segwit, Taproot, Schnorr, MAST та Taproot Scripts в екосистемі Біткойн, почали з'являтися нові застосунки. Спочатку ці застосунки були легкими та простими.
(1) Протоколи порядкових чисел, написи та BRC 20
Створення протоколу Ordinals сильно пов'язане з концепцією сатоші. Протокол вводить поняття ординалів та написів. Ординали - це система нумерації, яка присвоює унікальний номер кожному сатоші в мережі Біткоїн згідно з порядком їх видобутку. У протоколі ідентифікатор ординалу залишається незмінним незалежно від того, як сатоші передаються між різними гаманцями. Повні вузли Біткоїн, що працюють на відкритому програмному забезпеченні Rodarmor, ORD, можуть відстежувати ці пронумеровані сатоші, надаючи точний механізм для відстеження кожного сатоші та незалежної перевірки їх.
Гравіювання передбачає витравлювання інформації на сатоші. Використовуючи SegWit та Taproot, протокол Ordinals дозволяє витравлювати файли розміром менше 4 МБ на кожному сатоші в блоку Bitcoin - це гравіювання, яке може містити різні типи інформації, такі як текст, зображення або відео.
У простих термінах схема порядкових номерів надає кожному сатоші унікальний, відстежуваний ідентифікатор, який надає йому неперепливні характеристики. Написи дозволяють додавати недільні дані до цих порядкових чисел, схожі на створення мистецтва на чистому полотні. У поєднанні вони дозволяють Bitcoin розміщувати новий стандарт для NFT. В основному, Порядкові є схожими на протокол NFT, але на відміну від ETH або інших публічних блокчейнів, де метадані NFT зазвичай зберігаються на IPFS або централізованих серверах, Порядкові вбудовують метадані в свідчення даних транзакції, ніби "вигравірували" на певному сатоші.
BRC-20: Інспірований протоколом Ordinals, користувач Twitter @domodata 8 березня 2023 року створив експериментальний стандарт взаємозамінних токенів BRC-20 на Bitcoin. Присвоюючи різні «атрибути» кожному сатоші, протокол Ordinals створює мережеві NFT BTC, тоді як BRC-20 робить це, надаючи єдиний «формат» і «атрибути» для взаємозамінних токенів (FT) на основі BTC. BRC-20 використовує протокол Ordinals для запису тексту JSON у напис BTC для розгортання контрактів токенів, карбування та передачі токенів. Ключові аспекти розгортання включають назву токена, загальну пропозицію та максимальну кількість карбування за один випадок. Для транзакцій, пов'язаних з переказами або купівлею/продажем, додатковий NFT відстежує офчейн-баланси. Механізм карбування «першим прийшов – першим обслужений» забезпечує справедливу емісію та можливості участі. Однак відносно нерозвинена інфраструктура екосистеми BTC і її крута крива навчання в поєднанні з низькою ліквідністю дозволяють токенам BRC-20, таким як орді, сатосам і щури, легко зростати, створюючи міф про створення багатства.
(2) Інші протоколи - Atomicals, ARC 20
Розвиток протоколу Atomicals був досить драматичним. Його засновник Артур спочатку хотів розробити проєкт DID на основі щойно випущеного протоколу Ordinals, але усвідомив, що у протоколу Ordinals є багато обмежень, які були невигідні для підтримки деяких функцій, які він хотів реалізувати. Внаслідок цього 29 травня 2023 року Артур опублікував у Twitter свою концепцію протоколу Atomicals, який був запущений 17 вересня 2023 року після місяців розробки. В подальшому протокол Atomicals породив концепції, такі як Dmint, Bitwork, ARC-20 та RNS, з майбутніми планами впровадження AVM та рішень по розщепленню. Як і в разі Ordinals та BRC-20, розгортання змінних токенів на Atomicals призводить до створення ARC-20. Читачі, які цікавляться ARC-20, можуть дізнатися більше тут: ARC-20 Токени.
(3) Інші протоколи - Rune
Під час розвитку екосистеми Кейсі Родармор, творець Ординалів, вказав, що токени BRC-20 мають «нещасливу наслідок розповсюдження UTXO» та запропонував Руни як альтернативний рішення на основі UTXO. Існуючі протоколи загалом страждають від складних реалізацій, поганих користувацьких вражень, сміттєвих невикористаних вихідних транзакцій (UTXO) та операцій, які вимагають власних токенів.
Передача рун використовує OP_RETURN, і перший вихід даних у повідомленні протоколу декодується у послідовність цілих чисел, які інтерпретуються як серія кортежів (ID, OUTPUT, AMOUNT). Якщо декодоване число цілих чисел не є кратним трьом, повідомлення протоколу недійсне. ID вказує на ідентифікатор токена, який має бути переданий, OUTPUT - це індекс виходу, призначений (тобто якому виходу він призначений), а AMOUNT - це виділена кількість. Після обробки всіх виділень кортежів будь-які нерозподілені токени Runes призначаються першому не-OP_RETURN виходу, а решта можуть бути записані токени Runes в OP_RETURN виході, що містить повідомлення протоколу.
Емісія рун заснована на UTXO-відстеженні однорідних токенів. Якщо повідомлення протоколу містить друге надсилання даних, воно являє собою транзакцію видачі. Другий запис даних розшифровується на два цілих числа, СИМВОЛ і ДЕСЯТКОВЕ ЧИСЛО. Якщо залишаються додаткові цілі числа, повідомлення протоколу є недійсним. SYMBOL — це базовий 26-символьний символ, що читається, подібний до тих, що використовуються в іменах Ordinals, з єдиними допустимими символами від A до Z. ДЕСЯТКОВІ ДЕСЯТКОВІ ЗНАКИ вказують на десяткові знаки, які слід використовувати при видачі рун. Якщо СИМВОЛ ще не присвоєно, токену рун присвоюється значення ідентифікатора (починаючи з 1). Якщо SYMBOL вже присвоєно або він є одним із BITCOIN, BTC або XBT, нові руни не створюються. Це особливість протоколу Runes — він не пов'язує записи балансу з адресами гаманців, а зберігає їх у самому UTXO. Нові токени рун починаються з транзакції випуску, вказуючи пропозицію, символ і десяткові знаки, і ця пропозиція розподіляється між конкретними UTXO. UTXO можуть містити будь-яку кількість токенів рун, незалежно від їх розміру, і використовуються лише для відстеження балансів. Потім функція перенесення використовує цей UTXO, розбиваючи його на кілька нових UTXO довільного розміру, що містять різну кількість рун, надсилаючи записи іншим. У порівнянні з BRC-20, Runes спрощує рівень консенсусу, стаючи простішим, не покладаючись на офчейн-дані та не маючи нативних токенів, що робить його дуже придатним для нативної моделі Bitcoin UTXO.
(4) Інші протоколи - BTC Stamps, SRC 20, SRC 721
Систему Bitcoin Stamps запустив Майк Ін Спейс у березні 2023 року, спочатку як проект концепції на Counterparty, другому рівні Bitcoin, що існує з 2014 року. Завдяки оновленням у його базових протоколах, Stamps повністю перейшов на Bitcoin, ставши відомим як SRC-20 минулого літа. Спочатку Майк уявляв Stamps як метод видачі постійних Bitcoin NFT. Однак протокол з того часу розширився, щоб реплікувати BRC-20, тип обмінного токена, який процвітав на Bitcoin завдяки манії написання, спровокованій запуском Ordinals Кейсі Родамором в січні 2023 року.
Основною відмінністю між Stamps та Ordinals є їх архітектура. Stamps зберігає свої метадані в мультипідписних невитрачених вихідних транзакціях (UTXO), тоді як Ordinals зберігає свої метадані в частині "свідок" транзакцій Bitcoin. Ця архітектурна відмінність підкреслює компроміси, зроблені розробниками. Наприклад, метод UTXO Stamps робить їх непроникними, тому здається постійними, хоча їх виробнича вартість вища, ніж у випадку Ordinals. Натомість використання Ordinals свідкових даних в кінцевому підсумку робить їх проникними, і їх виробнича вартість нижча, ніж у випадку Stamps.
Таким чином, хоча Ординати можуть запропонувати найкраще співвідношення міцності й вартості для сьогоднішніх криптовалютних NFT (які також можна отримати на Ethereum, але за вищою вартістю будівництва), здається, що наразі Stamps надає найкращу гарантію безпосередньої стійкості.
Після появи BTC Stamps були розроблені SRC 20 та SRC 721, що працюють подібно до BRC-20. BRC-20 побудований на протоколі Ordinals, тоді як SRC-20 побудований на BTC STAMPS. Зацікавлені читачі можуть докладніше ознайомитися з документацією SRC 20 та SRC 721 тут:
Протокол SRC 20
SRC 721 Протокол
На цьому завершується знайомство зі значними новими технологіями в мережі Layer 1 Bitcoin. Для подальшого масштабування та вдосконалення фокус зміститься на інфраструктуру верхнього рівня Bitcoin, таку як Bitcoin Layer 2 або рішення, що використовують Lightning Network. Щоб дізнатися більше на цю тему, читачам пропонується прочитати «Вичерпний посібник з інфраструктури Bitcoin рівня 2, версія 1.5» і «З точки зору державних машин: спостереження за архітектурою та будівельним шляхом майбутніх додатків Web3.0» або інші статті, пов'язані з будівництвом або архітектурним дизайном Bitcoin Layer 2.
На підставі вмісту розділу 2 ми спостерігаємо, що технологічна еволюція в екосистемі Біткойну заложила фундамент для більш широких застосувань. Однак, оскільки розвиток - це процес, і деякі пов'язані технології ще не є зрілими, існує значна різниця між поточними популярними застосуваннями та майбутніми загальними використаннями.
З попередніх розділів ми бачимо, що суть технологічного розвитку Біткойна полягає в розширенні потужності блоку та можливостей.
Розширення блоку:Розділений свідок (SegWit) успішно розширив місткість блоку, хоча існують різні пропозиції щодо обрізання даних свідка, такі події малоймовірні, особливо після того, як дані свідків набули більшого значення.
Розширення можливостей:Технології, такі як Taproot, Schnorr, MAST та Taproot Scripts, покращили можливості Bitcoin. Особливо, поєднання MAST та Taproot Scripts розширює можливості нативної мови сценаріїв Bitcoin, дозволяючи обробку більш складних сценаріїв. Однак розширення цих можливостей також збільшує складність розробки та розуміння Bitcoin, оскільки розробка сценаріїв не ведеться на мові високого рівня. Крім того, розширення цих можливостей відстає від розуміння користувачів та темпу навчання щодо розширення ємності блоку.
Простота використання розширення блоків у порівнянні зі складністю розширення можливостей пояснює, чому користувачі спочатку зберігають NFT з маленькими зображеннями в основній мережі Bitcoin, що призвело до появи таких програм, як BRC 20. Більшість додатків, які в даний час знаходяться в основній мережі Bitcoin, вивчають використання розширення після блоку. Невелика частина додатків починає досліджувати розширення можливостей, таких як зв'язок між першим і другим рівнями в BEVM, який помітно використовує вищезгадані базові елементи. Комбінація підписів Шнорр, контрактів MAST і мережі легких вузлів Bitcoin (BTC L2) є показовим прикладом того, як навчитися з'єднувати перший і другий рівні. У майбутньому очікуються більш масштабні випадки розширення сил і засобів.
Де повинні знаходитися межі розширення можливостей? Ми можемо судити з погляду шарового дизайну. Якщо ці можливості в основному призначені як зв'язки між першим і другим шаром Біткойна, то вони не повинні ставати надто складними. Однак, підштовхувані людською творчістю та сильним привабливістю емісії та управління активами, деякі команди або особи будуть досліджувати більше сценаріїв для розширення можливостей.
Найбільш прямою причиною виникнення технології блокчейн є цифрова валюта, тому випуск та управління активами є прямими потребами в межах домену Біткойн або блокчейну. Від дослідження кольорових монет до застосунків, таких як BRC 20 та ARC 20, а також ICO та IDO на Ethereum, це всі дослідження випуску активів. Застосунки, такі як Uniswap, кредитування та AMM, стосуються управління активами. Ці типи застосунків виросли на мережах, таких як Ethereum, і з розвитком технології екосистеми Біткойн ці застосунки управління активами ймовірно перейдуть до екосистеми Біткойн, зокрема до другого рівня Біткойн.
Тільки після задоволення потреб випуску та управління активами з'являться можливості та час для розробки масштабних додатків для ери Web3.0 (також відомої як епоха цінностей). Системна архітектура для майбутніх великомасштабних додатків Web3.0 обговорюється в статті «З точки зору державних машин, що переглядають другий рівень біткойна, спостереження за майбутньою архітектурою та шляхом побудови додатків Web3.0».
Шлях до будівництва - це процес постійного задоволення потреб, який можна розділити на короткостроковий, середньостроковий та довгостроковий етапи. Короткостроковий етап передбачає нові застосування технологій на головній мережі Bitcoin та прості етапи побудови другорядної конструкції на основі блокчейну для задоволення основних розширень функціональності для різних фінансових застосувань. Середньостроковий етап включає більш складні етапи побудови другорядної конструкції на основі блокчейну та другорядної конструкції розподіленої системи, які відповідають різним фінансовим та довірчим застосуванням. Довгостроковий етап передбачає повне будівництво великомасштабного екосистеми Bitcoin, що дійсно будує еру Web3.0.