Протокол биткойна — это набор правил , которые управляют функционированием биткойна . Его ключевые компоненты и принципы: одноранговая децентрализованная сеть без центрального надзора; технология блокчейна , публичный реестр , который регистрирует все транзакции биткойна; майнинг и доказательство работы , процесс создания новых биткойнов и проверки транзакций; и криптографическая безопасность.
Пользователи транслируют криптографически подписанные сообщения в сеть с помощью программного обеспечения криптовалютного кошелька биткойнов . Эти сообщения представляют собой предлагаемые транзакции, изменения, которые необходимо внести в реестр. Каждый узел имеет копию всей истории транзакций реестра. Если транзакция нарушает правила протокола биткойнов, она игнорируется, поскольку транзакции происходят только тогда, когда вся сеть достигает консенсуса о том, что они должны иметь место. Этот «полный сетевой консенсус» достигается, когда каждый узел в сети проверяет результаты операции доказательства работы, называемой майнингом . Майнинг упаковывает группы транзакций в блоки и создает хэш-код , который следует правилам протокола биткойнов. Создание этого хеша требует дорогостоящей энергии , но сетевой узел может проверить действительность хеша, используя очень мало энергии. Если майнер предлагает блок в сеть, и его хэш действителен, блок и его изменения в реестре добавляются в блокчейн, и сеть переходит к еще необработанным транзакциям. В случае возникновения спора самая длинная цепочка считается правильной. Новый блок создается в среднем каждые 10 минут.
Изменения в протоколе биткойна требуют консенсуса среди участников сети. Протокол биткойна вдохновил на создание множества других цифровых валют и технологий на основе блокчейна, что делает его основополагающей технологией в области криптовалют .
Технология блокчейн — это децентрализованный и безопасный цифровой реестр, который записывает транзакции в сети компьютеров. Он обеспечивает прозрачность, неизменность и устойчивость к несанкционированному доступу, что затрудняет манипуляцию данными. Блокчейн — это базовая технология для криптовалют, таких как биткойн, и имеет приложения за пределами финансов, такие как управление цепочками поставок и смарт-контракты. [1]
Сеть требует минимальной структуры для обмена транзакциями. Достаточно специальной децентрализованной сети добровольцев. Сообщения транслируются по принципу наилучших усилий , и узлы могут покидать и снова присоединяться к сети по своему желанию. После повторного подключения узел загружает и проверяет новые блоки с других узлов, чтобы завершить свою локальную копию блокчейна. [2] [3]
Биткоин использует систему доказательства работы или доказательство или транзакцию для формирования распределенного сервера временных меток в качестве одноранговой сети . [3] Эту работу часто называют майнингом биткоинов . Во время майнинга практически вся вычислительная мощность сети биткоинов используется для решения криптографических задач, что является доказательством работы. Их цель — гарантировать, что генерация действительных блоков требует определенных усилий, чтобы последующая модификация блокчейна, например, в сценарии атаки 51%, могла быть практически исключена. Из-за этой сложности майнеры формируют «майнинговые пулы », чтобы получать выплаты, несмотря на эти высокие требования к мощности, дорогостоящее развертывание оборудования и контроль оборудования. В результате запрета Китая на майнинг биткоинов в 2021 году Соединенные Штаты в настоящее время занимают наибольшую долю пулов для майнинга биткоинов. [4] [5]
Требование доказательства работы для принятия нового блока в блокчейн было ключевым нововведением Сатоши Накамото . Процесс майнинга включает в себя идентификацию блока, который при хэшировании дважды с помощью SHA-256 дает число, меньшее заданной цели сложности. В то время как средняя требуемая работа увеличивается обратно пропорционально цели сложности, хэш всегда можно проверить, выполнив один раунд двойного SHA-256.
Для сети биткойн-меток времени действительное доказательство работы находится путем увеличения одноразового числа до тех пор, пока не будет найдено значение, которое дает хэшу блока необходимое количество начальных нулевых битов. После того, как хэширование дало действительный результат, блок нельзя изменить без повторного выполнения работы. Поскольку более поздние блоки присоединяются к нему, работа по изменению блока будет включать повторное выполнение работы для каждого последующего блока. Если есть отклонение в консенсусе, то может произойти форк блокчейна .
Большинство консенсуса в биткойне представлено самой длинной цепочкой, для создания которой потребовалось наибольшее количество усилий. Если большая часть вычислительной мощности контролируется честными узлами, честная цепочка будет расти быстрее всего и опережать любые конкурирующие цепи. Чтобы изменить прошлый блок, злоумышленнику придется переделать доказательство работы этого блока и всех блоков после него, а затем превзойти работу честных узлов. Вероятность того, что более медленный злоумышленник догонит его, уменьшается экспоненциально по мере добавления последующих блоков. [3]
Чтобы компенсировать увеличение скорости оборудования и меняющийся интерес к запуску узлов с течением времени, сложность поиска допустимого хеша корректируется примерно каждые две недели. Если блоки генерируются слишком быстро, сложность увеличивается и требуется больше хешей для создания блока и генерации новых биткойнов. [3]
Майнинг биткоинов — это конкурентное начинание. « Гонка вооружений » наблюдалась в различных технологиях хеширования, которые использовались для майнинга биткоинов: базовые центральные процессоры (ЦП), высокопроизводительные графические процессоры (ГП), программируемые пользователем вентильные матрицы (ПЛИС) и специализированные интегральные схемы (ASIC) — все они использовались, и каждая из них снижала прибыльность менее специализированной технологии. Специализированные биткоины ASIC теперь являются основным методом майнинга биткоинов и превзошли скорость графических процессоров в 300 раз. Сложность процесса майнинга периодически корректируется в зависимости от мощности майнинга, активной в сети. Поскольку майнить биткоины стало сложнее, компании-производители компьютерного оборудования увидели рост продаж высокопроизводительных продуктов ASIC. [8]
Вычислительная мощность часто объединяется вместе или « объединяется в пул », чтобы уменьшить дисперсию доходов майнеров. Отдельные майнинговые установки часто вынуждены ждать в течение длительного времени, чтобы подтвердить блок транзакций и получить оплату. В пуле все участвующие майнеры получают оплату каждый раз, когда участвующий сервер решает блок. Эта оплата зависит от объема работы, которую отдельный майнер внес, чтобы помочь найти этот блок, и от платежной системы, используемой пулом. [9]
По соглашению, первая транзакция в блоке — это особая транзакция, которая производит новые биткойны, принадлежащие создателю блока. Это стимул для узлов поддерживать сеть. [2] Это дает возможность выводить новые биткойны в обращение. Награда за майнинг уменьшается вдвое каждые 210 000 блоков. Она началась с 50 биткойнов, упала до 25 в конце 2012 года и до 6,25 биткойнов в 2020 году. Последнее сокращение вдвое, которое произошло 20 апреля 2024 года в 12:09 по всемирному координированному времени (с номером блока 840 000), уменьшило вознаграждение за блок до 3,125 биткойнов. [14] [15] Ожидается, что следующее сокращение вдвое произойдет в 2028 году, когда вознаграждение за блок упадет до 1,625 биткойнов. [16] [17] Этот процесс сокращения вдвое запрограммирован на продолжение максимум 64 раз, прежде чем создание новых монет прекратится. [18]
Каждый майнер может выбирать, какие транзакции включать в блок или исключать из него. [19] Большее количество транзакций в блоке не равнозначно большей вычислительной мощности, необходимой для решения этого блока. [19]
Как отмечено в whitepaper Накамото, можно проверять платежи биткойнов без запуска полного сетевого узла (упрощенная проверка платежей, SPV). Пользователю нужна только копия заголовков блоков самой длинной цепочки, которые доступны путем запроса сетевых узлов, пока не станет очевидно, что получена самая длинная цепочка; затем получите ветвь дерева Меркла, связывающую транзакцию с ее блоком. Связывание транзакции с местом в цепочке показывает, что сетевой узел принял ее, а блоки, добавленные после нее, дополнительно устанавливают подтверждение. [2]
Были рассмотрены различные потенциальные атаки на сеть биткойнов и ее использование в качестве платежной системы, реальные или теоретические. Протокол биткойнов включает несколько функций, которые защищают его от некоторых из этих атак, таких как несанкционированные траты, двойные траты, подделка биткойнов и вмешательство в блокчейн. Другие атаки, такие как кража закрытых ключей, требуют должной осторожности со стороны пользователей. [20] [21]
Несанкционированные траты смягчаются реализацией биткойна с криптографией с открытым и закрытым ключом. Например, когда Алиса отправляет биткойн Бобу, Боб становится новым владельцем биткойна. Ева, наблюдая за транзакцией, может захотеть потратить биткойн, который только что получил Боб, но она не может подписать транзакцию, не зная закрытого ключа Боба. [21]
Конкретная проблема, которую должна решать система интернет-платежей, — это двойные траты , когда пользователь платит одну и ту же монету двум или более разным получателям. Примером такой проблемы может быть ситуация, когда Ева отправляет биткойн Алисе, а затем отправляет тот же биткойн Бобу. Сеть биткойнов защищает от двойных трат, записывая все переводы биткойнов в реестр (блокчейн), который виден всем пользователям, и гарантируя, что все переведенные биткойны не были ранее потрачены. [21] : 4
Если Ева предлагает заплатить Алисе биткойн в обмен на товары и подписывает соответствующую транзакцию, все еще возможно, что она также создает другую транзакцию в то же время, отправляя тот же биткойн Бобу. По правилам сеть принимает только одну из транзакций. Это называется атакой гонки , поскольку между получателями происходит гонка за то, чтобы первым принять транзакцию. Алиса может снизить риск атаки гонки, оговорив, что она не доставит товар, пока платеж Евы Алисе не появится в блокчейне. [22]
Вариант атаки расы (который был назван атакой Финни по имени Хэла Финни) требует участия майнера. Вместо того, чтобы отправлять оба платежных запроса (чтобы заплатить Бобу и Алисе одними и теми же монетами) в сеть, Ева отправляет в сеть только платежный запрос Алисы, в то время как сообщник пытается добыть блок, который включает платеж Бобу вместо Алисы. Существует положительная вероятность того, что мошенник-майнер добьется успеха раньше сети, и в этом случае платеж Алисе будет отклонен. Как и в случае с простой атакой расы, Алиса может снизить риск атаки Финни, дождавшись включения платежа в блокчейн. [23]
Каждый блок, который добавляется в блокчейн, начиная с блока, содержащего данную транзакцию, называется подтверждением этой транзакции. В идеале торговцы и сервисы, которые получают платеж в биткойнах, должны ждать, пока по сети будет распространено хотя бы несколько подтверждений, прежде чем предполагать, что платеж был выполнен. Чем больше подтверждений ждет торговец, тем сложнее злоумышленнику успешно отменить транзакцию — если только злоумышленник не контролирует более половины общей мощности сети, в этом случае это называется атакой 51% или атакой большинства. [24] Хотя это сложнее для злоумышленников меньшего размера, могут быть финансовые стимулы, которые делают атаки по изменению истории прибыльными. [25]
Проблема масштабируемости Bitcoin связана с ограниченной способностью сети Bitcoin обрабатывать большие объемы данных транзакций на своей платформе за короткий промежуток времени. [26] Она связана с тем фактом, что записи (известные как блоки ) в блокчейне Bitcoin ограничены по размеру и частоте. [27]
Блоки биткойна содержат транзакции в сети биткойна. [28] : гл. 2 Мощность обработки транзакций в сети биткойна ограничена средним временем создания блока в 10 минут и первоначальным ограничением размера блока в 1 мегабайт. Они совместно ограничивают пропускную способность сети . Максимальная мощность обработки транзакций, оцененная с использованием среднего или медианного размера транзакции, составляет от 3,3 до 7 транзакций в секунду. [27] Существуют различные предложенные и активированные решения для решения этой проблемы.Деанонимизация — это стратегия в интеллектуальном анализе данных, в которой анонимные данные перекрестно ссылаются на другие источники данных для повторной идентификации анонимного источника данных. Наряду с анализом графа транзакций, который может выявить связи между адресами биткойнов (псевдонимами), [20] [29] существует возможная атака [30] , которая связывает псевдоним пользователя с его IP-адресом . Если одноранговый узел использует Tor , атака включает метод отделения однорангового узла от сети Tor, заставляя его использовать свой настоящий IP-адрес для любых дальнейших транзакций. Стоимость атаки на полную сеть биткойнов оценивалась менее чем в 1500 евро в месяц по состоянию на 2014 год. [30]
Максимальная пропускная способность — это максимальная скорость, с которой блокчейн может подтверждать транзакции. Сегодня максимальная пропускная способность биткойна составляет 3,3–7 транзакций/сек [1]. Это число ограничено максимальным размером блока и временем между блоками.
{{cite book}}
: CS1 maint: отсутствует местоположение издателя ( ссылка )