Към съдържанието
ДаретеEN

Блокчейн

51% атака

51% атака биткойн е опит един майнър с над половината от хешрейта да пренапише скорошните трансакции. Вижте как работи и защо шансът пада с всеки блок.

От Dimitar Zurnov · Обновено на 4 ноември 2026
Адаптирано от Learn Me a Bitcoin на Greg Walker.

51% атака, известна още като атака 51%, се случва, когато един майнър или група, работещи заедно, контролира над половината от хешрейта на мрежата. Нападателят използва тази мощ, за да построи по-дълга тайна верига, и нодовете превключват към нея. Тогава нападателят може да отмени трансакциите в блоковете, които е заменил. Името идва от мнозинството, което е нужно, за да се извърши това надеждно.

Как работи атаката?

Нодовете винаги следват най-дългата верига, тоест веригата с най-много работа. Да кажем, че нападател плаща на продавач, а продавачът предава стоката. После нападателят построява по-дълга верига, в която това плащане липсва. Когато я публикува, нодовете се пренареждат към нея и плащането изчезва от валидната история.

Веригата на нападателя трябва и да похарчи същите монети някъде другаде, например на адрес, който контролира самият той. Иначе първоначалното плащане може да се включи отново в новата верига. Харчене на едни и същи монети два пъти се нарича двойно харчене и то е целта на атаката. Страницата за пренареждането на веригата обяснява превключването, което прави атаката възможна.

Нападателят тайно строи четири нови блока, докато честната мрежа добавя три. По-дългата верига печели, затова честните блокове остаряват. общ Честната мрежа: 3 блока H1 H2 H3 Нападателят: 4 блока A1 A2 A3 A4 По-дългата верига печели
С мнозинство веригата на нападателя рано или късно печели. Без мнозинство състезанието е неравно.

Защо е трудно?

Честните майнъри продължават да строят върху веригата, която следват. Нападателят трябва да добавя блокове по-бързо от тях и да започне отзад, от блока, в който започва атаката. Нападател с под половината хешрейт пак може да извади късмет. Шансовете падат бързо, когато броят на блоковете расте.

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

Колко вероятна е атака с по-малко от половината?

Бялата книга на биткойн, в раздел 11, дава формула за шанса нападател да настигне, когато е назад с няколко блока. Тук q е делът на нападателя от хешрейта, а z е с колко блока назад започва той.

import math

def attacker_success(q, z):
    p = 1 - q
    lam = z * (q / p)  # expected attacker blocks while honest miners add z blocks
    prob = 1.0
    for k in range(z + 1):
        poisson = math.exp(-lam) * lam ** k / math.factorial(k)
        prob -= poisson * (1 - (q / p) ** (z - k))
    return prob

print(round(attacker_success(0.4, 5), 4))  # 0.5506

За да замени горните X блока, нападателят трябва да завърши с верига, която е с един блок по-дълга от честната. Значи X блока означават z = X + 1. Таблицата следва това правило.

Дял на нападателя от хешрейта Шанс да замени 1 блок Шанс да замени 3 блока Шанс да замени 6 блока Шанс да замени 10 блока
10% 5.1% 0.35% 0.0065% 0.00003%
20% 20.4% 5.3% 0.74% 0.056%
30% 44.6% 23.9% 9.9% 3.1%
40% 73.6% 60.3% 46.2% 33.2%
50% или повече 100% 100% 100% 100%

Две неща личат. Шансът пада бързо с дълбочината. Нападател с 10% има 5.1% шанс да замени горния блок, но под 0.01% да замени шест. Майнър с половината хешрейт печели с пълна сигурност в този модел, което обяснява защо контролът на мнозинството е толкова важен.

Има ли някой, който я е извършил?

Не и срещу биткойн, доколкото показва публичният запис. Някои пулове са се доближавали до мнозинство. През 2014 г. пулът GHash.io се е доближил до 50% от хешрейта на мрежата, но атака не е последвала. Мнозинството прави атаката възможна, но не я прави вероятна. Голям майнър обикновено печели от наградите за блокове и таксите повече, отколкото би спечелил от пренаписването на едно плащане. Атаката би навредила и на стойността на монетите, които майнърът изкопава.

Как се оценява хешрейтът?

Целевата стойност показва колко работа прави мрежата средно на блок. Ето методът за блок 840,000, където полето bits е 0x17034219.

  1. Превърнете bits в целева стойност. Мантисата е 0x034219, а експонентата е 0x17, така че целевата стойност е 0x034219, умножена по 256 на степен 20.
  2. Разделете 2^256 на целевата стойност, за да получите очакваните хешове на блок. Това са около 3.7 × 10^23 хеша.
  3. Разделете на 600 секунди, средното време между блоковете. Мрежата прави около 6.2 × 10^20 хеша в секунда, което е приблизително 618 екзахеша в секунда.

За да има мнозинство в този момент, майнър трябва да има над половината от тази стойност. Следете трудността и хешрейта на нашата страница за майнинг.

Обобщение

51% атака изисква по-голямата част от майнинг мощността и план за нейното използване. Честните майнъри я правят трудна, а всеки нов блок я прави още по-трудна за нападател, който започва отзад. Правилото за най-дългата верига е това, което позволява по-дългата верига да печели, затова атаката зависи от контрола върху мнозинството от работата.

В този раздел: Блокчейн

Целият курс „Биткойн от нулата“

Нещо не изглежда наред? Кажете ни