Чому на це варто звернути увагу

звернути

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

Збільшення ефективного розміру блоку без збільшення ліміту

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

Пропозиція Вуйле дає нове уявлення про максимальний розмір блоку. Формула, що використовується для розрахунку ліміту, встановлюється дещо довільно: Розмір Блоку без Відокремлених Свідків плюс чверть від розміру Відокремлених Свідків – у сумі не повинно перевищувати 1 мегабайт. Таким чином, старим вузлам всі блоки здаватимуться менше, ніж 1 мегабайт, оскільки чверть Відділеного Свідка (якого вони не бачать) повинні будуть вписатися в той же 1 мегабайт. У той же час, нові вузли побачать блоки, що перевищують 1 мегабайт, оскільки фактичний розмір Відділеного Свідка більше, ніж зарахована чверть.

Точна кількість додаткового місця, яке дає Відділений Свідок, залежить від видів транзакцій, які включатимуться до нових блоків. Якщо більша кількість транзакцій зберігатиме більше даних у Відділеному Свідку, як, наприклад, робитимуть транзакції з мультипідписом, загальний розмір нових блоків зросте. Це додастьдо нового максимального розміру блоку приблизно 1,75 мегабайта для нормальних транзакцій, і 4 мегабайта як максимальна межа, яку неможливо буде перевищити навіть якщо (майже) усі дані будуть стиснуті у Відділений Свідок.

Прощаємось із пластичністю транзакцій

Але є ще одна, можливо, навіть більша перевага: Відокремлений Свідок може допомогти вирішити проблему пластичності транзакцій. Насправді ця проблема була початковою посилкою, у зв'язку з якою виникла сама концепція Відокремленого Свідка.

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

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

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

Розвиток скрипта, або як Біткойн може навчитися робити майже все, що завгодно

Третя перевага Відділених Свідків захопила Біткойн програмістів майже так само, як і перші два, якщо навіть не більше: версії скриптів.

Як пояснювалося у попередній статті, Відділені Свідки містять scriptSig'и, які розблокують біткойни. Але до того ж вони містять дещо ще: байти версії. У розділених Свідках байти версії передують scriptSig, позначаючи тип scriptSig. Якщо після прочитання байтів версії вузол може визначити тип, він може сказати, яким вимогам треба відповідати, щоб розблокувати біткойни в scriptSig. Якщо після прочитання байтів версії вузол не розуміє тип, він інтерпретує scriptSig як "Будь-який може витратити".

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

І що важливо: як і у випадку з самим Відділеним Свідком ці типи оновлень не порушать існуючі правила консенсусу Біткойна. Відсутня вимога поновлення кожного Біткойн вузла. Достатньо буде, щоб оновилася більшість вузлів, що зробить застосування змін набагато простіше у розгортанні.

Докази шахрайства: завершення бачення Сатоші про SPV

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

Але навіть із доказами шахрайства, SPV-вузли не зможуть запропонувати той самий рівень безпеки, як і повні вузли. Дуже важливо, що рішення доказів шахрайства вимагає, щоб SPV-вузли могли комунікувати у мережі, вільній від цензури (наприклад, цензури з боку підконтрольних державам провайдерів). Ну і, крім того, SPV-вузлам потрібен як мінімум один доступний у мережі повний вузол, який і вироблятиме докази шахрайства.

Місце для зберігання

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

У третій та останній частині серії статей про Відділений Свідок буде розглянуто, щосаме Відокремлений Свідок означає для давньої суперечки про розмір блоку. Дякуємо девелоперам Blockstream Пітеру Вуйле та Марку Фріденбаху (Mark Friedenbach) та виконавчому директоруCiphrexЕріку Ломброзо (Eric Lombrozo) за надану інформацію та додатковий зворотний зв'язок — не кажучи вже про виявлене велике терпіння.