"Temporary Softfork зі зниженими даними" BIP пропонує тимчасове відключення різних функцій Bitcoin на основі консенсусу. Я досліджував блокчейн, щоб кількісно оцінити потенційний вплив, виявивши історичні транзакції, які порушують кожне з цих правил. 🧵↓
Правило #1: "Нові вихідні скрипти PubKeys, що перевищують 34 байти, є недійсними, якщо тільки перший код операції не OP_RETURN, і в цьому випадку допустимо до 83 байтів." Це впливає на всі виходи P2PK і P2MS, а також на невелику кількість нестандартних СПК.
Правило #2: "OP_PUSHDATA* з корисним навантаженням більше 256 байт є недійсними, за винятком push-запису redeemScript у скриптових сигах BIP16." Я припускаю, що це стосується лише *виконаних* пушів даних, тому я виключив пуші в конвертах з написом taproot, яких дуже багато.
Правило #3: "Використання невизначених версій свідка (або Tapleaf) (тобто не Witness v0/BIP 141 або Taproot/BIP 341) є недійсним." Існує трохи більше 54 тисяч транзакцій з невизначеними виходами номера версії (в основному з використанням фальшивих виходів для обходу ліміту op_return).
Так чи інакше, BIP 141 і 341 визначають конкретну тривалість програми для свідків: - v0, довжина 20 (P2WPKH) - v0, довжина 32 (P2WSH) - v1, довжина 32 (P2TR) як написано, RDTS начебто забороняє всі інші довжини програм, включаючи якорі P2A (v1, length 2).
Правило #4: "Стоси свідків з додатком Taproot є недійсними." Наразі до 11 транзакцій додано додаток до витрат на taproot, переважно для jpeg.
mononaut
mononaut11 трав. 2025 р.
a second jpeg has hit the annex
Правило #5: "Контрольні блоки Taproot більше 257 байт (дерево Меркла зі 128 листками скрипту) є недійсними." Є ~32 тис., очевидно, що тапкорінь витрачає на вбудовування даних при глибині контрольного блоку 100+ (лабітбус і подібні). Але також жменька «законних» витрачає на меншу глибину.
Правило #6: "Тапскрипти, що включають OP_SUCCESS* коди операцій будь-де (навіть невиконані), є недійсними." Є дві історичні витрати Taproot, включаючи OP_SUCCESS коди операцій: блискавична транзакція Бурака та ця безглузда демонстрація OP_CAT
Правило #7: "Тапскрипти, що виконують інструкцію OP_IF або OP_NOTIF (незалежно від результату), є недійсними." Це має на меті відключити «конверт із написом», який наразі використовували понад 104 мільйони транзакцій.
Однак RDTS виходить за рамки відключення напису на конверті, забороняючи OP_IF і OP_NOTIF повністю. Близько 70 транзакцій без напису використовували OP_IF у скриптах taproot. Багато з них є експериментами в стилі bitvm, але є також приклади більш простого фінансового використання.
Наприклад, є кілька витрат, які використовують цей шаблон скрипта "розкладаючий мультипідпис", які використовують кілька OP_IFs
Найбільше занепокоєння викликає те, що є кілька витрат з гаманця з використанням цього шаблону скрипта HTLC за точкою bip341 NUMS (відключення шляху ключа) Скрипт використовує OP_IF для вибору між гілкою, що вимагає двох підписів і хеш-преобразу, або одним підписом після відносного тайм-ауту
Прихильники RDTS відкинули занепокоєння щодо конфіскації, пов'язані з OP_IF та великими контрольними блоками в Taproot, стверджуючи, що користувачі завжди можуть витрачати гроші через keypath. Однак близько 560 тисяч транзакцій витратили виходи Taproot, де ключовий шлях був доказово вимкнений.
122,49K