51% атака
51% атака биткойн е опит един майнър с над половината от хешрейта да пренапише скорошните трансакции. Вижте как работи и защо шансът пада с всеки блок.
От Dimitar Zurnov · Обновено на 4 ноември 2026
Адаптирано от Learn Me a Bitcoin на Greg Walker.
51% атака, известна още като атака 51%, се случва, когато един майнър или група, работещи заедно, контролира над половината от хешрейта на мрежата. Нападателят използва тази мощ, за да построи по-дълга тайна верига, и нодовете превключват към нея. Тогава нападателят може да отмени трансакциите в блоковете, които е заменил. Името идва от мнозинството, което е нужно, за да се извърши това надеждно.
Как работи атаката?
Нодовете винаги следват най-дългата верига, тоест веригата с най-много работа. Да кажем, че нападател плаща на продавач, а продавачът предава стоката. После нападателят построява по-дълга верига, в която това плащане липсва. Когато я публикува, нодовете се пренареждат към нея и плащането изчезва от валидната история.
Веригата на нападателя трябва и да похарчи същите монети някъде другаде, например на адрес, който контролира самият той. Иначе първоначалното плащане може да се включи отново в новата верига. Харчене на едни и същи монети два пъти се нарича двойно харчене и то е целта на атаката. Страницата за пренареждането на веригата обяснява превключването, което прави атаката възможна.
Защо е трудно?
Честните майнъри продължават да строят върху веригата, която следват. Нападателят трябва да добавя блокове по-бързо от тях и да започне отзад, от блока, в който започва атаката. Нападател с под половината хешрейт пак може да извади късмет. Шансовете падат бързо, когато броят на блоковете расте.
Дълбоките блокове са по-трудни за замяна от плитките. Всеки блок отгоре носи работа, която нападателят трябва да изравни. Първата пречка е хардуерът, защото мнозинство от хешрейта на мрежата струва скъпо да се купи и да се работи.
Колко вероятна е атака с по-малко от половината?
Бялата книга на биткойн, в раздел 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.
- Превърнете
bitsв целева стойност. Мантисата е0x034219, а експонентата е0x17, така че целевата стойност е0x034219, умножена по 256 на степен 20. - Разделете 2^256 на целевата стойност, за да получите очакваните хешове на блок. Това са около 3.7 × 10^23 хеша.
- Разделете на 600 секунди, средното време между блоковете. Мрежата прави около 6.2 × 10^20 хеша в секунда, което е приблизително 618 екзахеша в секунда.
За да има мнозинство в този момент, майнър трябва да има над половината от тази стойност. Следете трудността и хешрейта на нашата страница за майнинг.
Обобщение
51% атака изисква по-голямата част от майнинг мощността и план за нейното използване. Честните майнъри я правят трудна, а всеки нов блок я прави още по-трудна за нападател, който започва отзад. Правилото за най-дългата верига е това, което позволява по-дългата верига да печели, затова атаката зависи от контрола върху мнозинството от работата.
В този раздел: Блокчейн
Целият курс „Биткойн от нулата“
Нещо не изглежда наред? Кажете ни