Topics Крипто

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

Средний
Крипто
Биткоин
2025年7月3日

Биткоин — это децентрализованная электронная система денежных средств, которая позволяет осуществлять одноранговые платежи без участия посредника. Первоначальное программное обеспечение для биткоина было разработано Сатоши Накамото и выпущено в соответствии с лицензией MIT в 2009 году после публикации информационного документа «Биткоин: Одноранговая система электронных денежных средств.

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

New-user-5050-USDT_728x90.png

В блокчейне биткоина транзакция означает, что набор входных и выходных данных передает право собственности на биткоины между плательщиком и получателем платежа. Входные данные указывают сети, из какой монеты или монеты будет взят платёж. Эти монеты должны быть неизрасходованы, а значит они не использовались для оплаты кому-либо ещё. Тем временем,

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

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

После передачи транзакции в сеть биткоина нода букккера, обычно полный нод в P2P-сети, которая получает транзакции, проверяет её в соответствии с правилами протокола биткоина. Если транзакция действительна, бухгалтер добавляет её в пул транзакций и передает транзакцию другим пользователям сети.

Каждые 10 минут в сети биткоинов подмножество сетевых нод, называемых «майнинг-нодами», собирают все допустимые транзакции из пула транзакций и создают блоки-кандидаты. Они также создают для себя монетную транзакцию, чтобы получать награды и взимать комиссии за транзакции. Если они «выиграют гонку майнинга» и добавят блок в цепочку, все ноды проверят новый блок и добавят его в собственную копию блокчейна. Как магии, Боб сможет увидеть оплату от Алисы и 10 BTC в кошельке.

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

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

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

На следующей диаграмме показана трилемма масштабируемости блокчейна.

Ключом к концепции масштабируемости является поиск способа выполнения всех трёх требований на базовом уровне. Выбор дизайна биткоина способствует децентрализации и безопасности, при этом жертвуя масштабируемостью.

Решения для масштабирования биткоинов

Существует множество предложений по масштабируемости биткоинов, которые можно дополнительно разделить на ончейн- и офчейн-масштабирование.

Ончейн-масштабирование

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

SegWit

SegWit (предложение об улучшении биткоина номер BIP14) — это сокращение от «выделенного свидетеля», что означает разделение цифровой подписи для транзакции. Он был впервые представлен разработчиком Питером Уиллем на конференции масштабируемых биткоинов в декабре 2015 года. Цель SegWit заключалась в предотвращении непреднамеренной гибкости транзакций на биткоинах и предоставлении возможности дополнительной передачи данных, а также в обход определенных ограничений протокола.

Транзакция на биткоин состоит из трёх пунктов: 

  • ввод транзакций, то есть адрес отправителя биткоина

  • вывод транзакции, который представляет собой адрес получателя биткоина 

  • отправляемая сумма биткоина, а также цифровая подпись, которая подтверждает, что отправитель имеет право на отправку монет

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

Рассмотрим пример:

Входные данные:

Предыдущий tx: p9k5ee39a430901c91a5917b9f2dc19d6d1a0e9cea205b009ca73dd04470b9a6

Индекс: 0

scriptSig: 304502206e21798a42fae0e854281abd38bacd1aeed3ee3738d9e1446618c4571d10

90db022100e2ac980643b0b82c0e88ffdfec6b64e3e6ba35e7ba5fdd7d5d6cc8d25c6b241501

Выход:

Стоимость: 2000000000

scriptPubKey: OP_DUP OP_HASH160 201371705fa9bd789a2fcd52d2c580b65d35549d

OP_EQUALVERIFY OP_CHECKSIG

Входные данные этой транзакции импортируют 20 BTC из вывода No 0 в транзакции p9k5e... Затем вывод отправляет 20 BTC на адрес биткоина (выраженный в шестнадцатеричном 2013 году... вместо обычной базы58). Когда получатель хочет потратить эти деньги, он будет ссылаться на вывод No 0 этой транзакции в виде собственной транзакции.

Некоторые определения:

• Предыдущий tx — идентификатор предыдущей транзакции на адрес A

• Индекс — входной номер (у нас есть только один входной номер: 0)

• scriptSig — первая часть сценария проверки (содержит подпись транзакции)

• Стоимость — количество биткоинов для отправки в единицах сатоши (один биткоин = 100 миллионов сатоши) (20 биткоинов в примере выше)

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

Чтобы убедиться, что сумма предыдущей транзакции может быть потрачена, необходимо объединить scriptSig новой транзакции с scriptPubKey предыдущей транзакции, чтобы убедиться, что результат является достоверным. scriptPubKey просто проверяет равенство открытого ключа и действительность подписи (OP_CHECKSIG).

В транзакции биткоина txid (шорт для ID транзакции или хеша транзакции) представляет собой хеш sha256d всех полей данных транзакции. Значение txid зависит от scriptSig. Во время транзакции в узле майнинга нода может мутировать scriptSig, чтобы подпись оставалась действительной, и транзакция будет иметь тот же эффект, но txid изменится. Например, можно добавить операцию OP_NOP (что ничего не делает). Или же можно добавить две операции: OP_DUP и OP_DROP (первая — это дублирование подписи на стеке, а вторая — удаление). Подпись по-прежнему действительна, но txid меняется.

Ещё один пример: Если значение подписи равно «3», мы можем изменить его на «03» или «3+7-7». Математически это по-прежнему стоимость транзакции с действительной подписью, но результаты хеширования отличаются, поскольку хеширование зависит от того, как вы записываете стоимость, а не от самой стоимости.

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

Изменение txid может вызвать проблемы, если вы тратите или принимаете неподтвержденные средства. Как SegWit решает эту проблему:

С помощью SegWit вся податливая информация отделяется от транзакции в отдельные «данные свидетелей». При расчёте txid она не будет включать эту податливую информацию. В этом случае идентификатор не сможет измениться, поскольку проблемы будут устранены. 

Приведём пример результатов транзакций на SegWit:

Индекс 0

Подробнее

Выход

Адрес

35SegWitPieWKVHieXd97mnurNi8o6CM73

Стоимость

1,00200000 BTC

PkScript

OP_HASH160

2928f43af18d2d60e8a843540d8086b305341339

OP_EQUAL

SigScript

0014a4b4ca48de0b3fffc15404a1acdc8dbaae226955

Свидетель

30450221008604ef8f6d8afa892dee0f31259b6ce02dd70c545cfcfed8148179971876c54a022076d771d6e91bed212783c9b06e0de600fab2d518fad6f15a2b191d7fbd262a3e01

039d25ab79f41f75ceaf882411fd41fa670a4c672c23ffaf0e361a969cde0692e8

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

Вот несколько преимуществ SegWit:

Производительность нод — размер транзакции уменьшается, поэтому сеть биткоина менее перегружена, поскольку ноды могут быстрее проверять блоки (или транзакции).

Гибкость транзакции — как уже упоминалось выше, в SegWit подпись перемещается из данных транзакции в блок данных свидетеля. Этот txid неизменяем и защищает данные транзакций от взлома.

Линейное масштабирование операций хеширования подписи — сокращение размера транзакции добавляет больше данных о транзакции для определённой транзакции в рамках пакета. SegWit отделяет подписи транзакций от данных транзакций, поэтому каждый байт транзакции должен быть хеширован не более двух раз.

Повышенная безопасность транзакций с несколькими подписями — SegWit предоставляет два разных скрипта: один — открытый ключ, а другой — перевод платежей в хеш сценария. Объединяя эти скрипты, SegWit повышает безопасность, позволяя совершать транзакции с несколькими подписями (мультисигами).

SegWit, построенный поверх второго уровня, идеально подходит для разработки биткоинов протоколов второго уровня, таких как сеть Lightning. Кроме того, активация SegWit ускоряет работу по разработке других функций, таких как MAST (которая позволяет использовать более сложные смарт-контракты на биткоин), подписи Schnorr (которые позволяют увеличить пропускную способность транзакции) и TumbleBit (анонимная сеть верхнего уровня).

Защищает сеть Lightning — каналы микроплатежей сети Lightning используют транзакции с двойной подписью для блокировки первоначальных депозитов. Чтобы начать платёж в сети Lightning, средства от обеих сторон отправляются на один адрес с двойной подписью. Во избежание мошенничества транзакция должна быть подписана дважды, прежде чем любые средства будут фактически отправлены на адрес с двойной подписью. Обе стороны должны быть синхронизированы для получения результатов транзакций из основного блокчейна. Этот обязательный ID транзакции является неизменным.

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

Размер блока

Ещё одно предложение по улучшению ончейн-масштабируемость биткоина предполагает увеличение размера блока. Идея проста: увеличение размера блока с сегодняшнего 1 Мб до, например, 8 Мб увеличит пропускную способность транзакции в восемь раз. Например, блоки Bitcoin Cash (BCH) изначально составляли 8MB, а в настоящее время блок BCH установлен на уровне 32 МБ. Такой вертикальный подход к масштабированию добавляет больше транзакций в один блок. Однако увеличение размера блока означает, что блокчейн может быть во много раз больше, и для обработки больших блоков требуется более высокая вычислительная мощность. В то же время это в некоторой степени снизит безопасность сети из-за снижения эффективной честной хеш-силы. 

Это также может привести к сценарию, в котором сеть сосредоточена в нескольких богатых руках и, таким образом, может в конечном итоге поставить под угрозу децентрализацию и безопасность, основные принципы блокчейна. С точки зрения безопасности, принято считать, что блокчейн более безопасен, если в обработке транзакций участвует больше сетевых нод. Благодаря более широкому распределению альткоиновых сетей на любом блокчейне будет работать меньше нод. 

Это может сделать блокчейн менее безопасным, поскольку меньшая сеть альткоинов может быть более уязвимой для сетевых атак. Например, предположим, что в более крупной сети насчитывается около 10 000 нод. Для запуска атаки на сеть потребуется не менее 5001 узла (51%). Если мы разделим 10 000 нод на 50 небольших сетей, каждая сеть состоит из 200 нод, поэтому для ликвидации любой небольшой сети требуется всего 101 нод, что называется проблемой атаки на 1%. 

Ещё одна проблема заключается в кроссчейн-интеграции: хотя существуют некоторые решения для кросс-блокчейн-интеграции, общая сложность интеграции небольших сетей и альткоинов резко увеличится. SegWit2x, предлагаемый компромисс в дискуссиях о размере блока в 2017 году, показал, что SegWit активируется в качестве первого шага, после чего размер блока будет увеличен до 2 Мб. Однако это предложение не было принято большинством нод в сети биткоинов.

Оффчейн-решения

Как и в случае с ончейн-решениями, сообщество биткоинов также активно ищет оффчейн-решения, которые иногда называют решениями второго уровня. При масштабировании вне сети решение заключается в создании дополнительного уровня поверх блокчейна биткоина, который может обрабатывать любые транзакции с двумя участниками. Затем эти транзакции можно группировать и отправлять как одну транзакцию в блокчейне. Одно из этих оффчейн-решений называется Сеть освещения.

Сеть освещения

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

Lightning — это децентрализованная сеть, которая использует функции смарт-контрактов в блокчейне для мгновенных платежей в сети участников.

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

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

Давайте посмотрим, как работает сеть Lightning.

Пример. Изначально Алиса проводит транзакцию по обязательству A1, а Борис — транзакцию по обязательству B1. Ключ отзыва для A1, K A1, принадлежит только Алисе, а ключ отзыва для B1, K B1 — только Борису.

Предположим, что каждый из Алисы и Бориса имеет 10 BTC на аккаунте. Алиса хочет отправить 2 BTC Борису.

Алиса и Борис вносят равные суммы денег (в этом случае 10 BTC), и каждый из них ставит на них замок. Это действие по внесению равных сумм в общий блокчейн записывается в блокчейне в форме «платёжного канала», который затем открывается между двумя участниками.

Алиса создаёт новую транзакцию B2, которая распределяет 8 BTC для Алисы и 12 BTC для Бориса.

Алиса подписывает B2 и отправляет его Борису.

Борис получает B2, подписывает и хранит его.

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

Борис подписывает A2 и отправляет его Алисе.

Алиса получает A2, подписывает и хранит его.

Алиса предоставляет Ka1, что делает A1 недействительным. Затем она может удалить A1.

Борис предоставляет B1, что делает B1 недействительным. Затем он может удалить B1.

Таким образом, платёжный канал создает комбинацию пула денег для обеих сторон, а затем передает обещание владения объединенными деньгами согласованным образом. Когда Алиса или Борис захотят закрыть канал, они могут это сделать. «Закрытие канала» означает, что обе стороны берут собственные деньги. Это открытие блока происходит на блокчейне, и запись о том, кто владеет суммой из блока, записывается навсегда.

Сеть Lighting использует хешированный контракт TimeLock (HTLC), класс платежей, который использует хешлок и таймлок, чтобы получатель платежа либо подтвердил получение платежа до крайнего срока, создав криптографическое подтверждение платежа, либо лишился возможности получить платёж, вернув его плательщику. Он позволяет отправлять транзакции между сторонами, у которых нет прямого канала, направляя их через несколько переходов (дополнительные каналы), чтобы любой, кто подключен к сети Lightning, был частью единой глобальной финансовой системы.

Рассмотрим пример:

Алиса хочет отправить платеж Тиму, но у нее нет платёжного канала с Тимом. У Алисы есть платёжный канал с Бобом, у которого есть платёжный канал с Тимом. Вопрос в следующем: Как Алиса может заплатить Тиму?

Для этого Тим должен создать криптографическую секретную строку (ключ), а затем хешировать её с помощью хеш-функции (например, SHA-256) и отправить Элис. Тим также делится хешем с Борисом. Чтобы упростить эту письменную иллюстрацию, мы представим ценность как V.

HTLC

Хеш (V) — это блокировка, а ключ — это код разблокировки HTLC.

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

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

Тим раскрывает ключ Борису в течение двух дней, и он получает оплату от Бориса.

Борис раскрывает ключ Алисе в течение трёх дней, и Алиса платит ему.

После того как все сотрудничают, все эти транзакции происходят в сети Lightning. Все получают оплату механическим способом, поскольку сеть Lightning почти атомная по своей природе и двунаправленная, а это означает, что каждый получает оплату или никто не получает оплату.

В сети Lighting Network при трансляции платежной транзакции сначала проверяются все отдельные транзакции, и они должны совпадать с историей транзакций, чтобы избежать трансляции ложных или неправильных транзакций. Кроме того, на мошеннические транзакции налагаются штрафы: если сеть Lighting обнаружит злоумышленника в системе, он будет немедленно зачислен в штраф. Таким образом, вся сеть обеспечивает надёжность и последовательность, при этом не допуская плохого поведения.

По сравнению с ончейн-транзакциями, использование сети Lightning имеет несколько преимуществ:

Быстрые и мгновенные транзакции: Время расчёта для транзакций в сети Lightning составляет менее одной минуты и может составлять миллисекунды.

Микроплатежи: Сеть Lightning позволяет совершать крупные микротранзакции.

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

Конфиденциальность: Нет записей блокчейна. Детали отдельных платёжных транзакций в сети Lightning напрямую и публично не записываются в блокчейн. Платежи могут быть направлены через множество последовательных каналов, поскольку каждый оператор узла сможет видеть платежи по своим каналам. Однако они не смогут увидеть источник или место назначения этих средств, если они не находятся рядом.

Меньше перегрузок в сети

Очень низкие комиссии за транзакции: Комиссии за транзакции, выплачиваемые посредническим узлам в сети Lighting Network, часто незначительны, как правило, в миллизатоши.

Ограничения

Сеть Lightning состоит из двусторонних платёжных каналов между двумя узлами, которые вместе создают смарт-контракты. Если в любой момент какая-либо из сторон упадёт с канала, канал закроется и будет расчётлен на блокчейне.

В связи с характером механизма споров в сети Lightning необходимо, чтобы каждый участник всегда следил за своим каналом и отслеживал состояние автономного реестра, передаваемого в сеть. Для решения этой проблемы была разработана концепция «смотровой башни».

Skinny_Banner-1600x400.webp

Заключение

Блокчейн биткоина по-прежнему является революционной децентрализованной платёжной системой, но его неотъемлемая конструкция отдает приоритет безопасности и децентрализации, а не масштабируемости, что приводит к ограниченной пропускной способности по сравнению с традиционными платёжными сетями. Такие инновации, как SegWit и Lightning Network, представляют собой важные достижения, которые повышают эффективность биткоина за счёт увеличения пропускной способности транзакций и обеспечения мгновенных внесетевых платежей. 

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

#LearnWithBybit