Download as pdf or txt
Download as pdf or txt
You are on page 1of 37

1

Те ма 3 . П и т а н н я бе з п е к и
д е ц е н т р а л і з ов а н и х с и с т е м

Лекція 12
Навчальні питання:
1. Завдання про розорення гравця
2. Стани системи (ланцюг зловмисника – ланцюг чесної мережі)
 Діаграми станів
 Ймовірності станів
3. Аналітичний розрахунок ймовірності формування ланцюжка
блоків заданої довжини
 Ймовірність формування одного блоку
 Ймовірність формування ланцюжка з двох блоків
 Ймовірність формування ланцюжка з трьох блоків
 Ймовірність формування ланцюжка з N блоків
4. Функція розподілу часу формування блоку мережі Bitcoin
Й мов і р н і с т ь ус п і ш н о го п р ов ед е н н я 2

ат а к и 5 1 % ( B i t c o i n : A P e e r- t o - P e e r
E l e c t ro n i c C a s h S y s t e m . S a t o s h i N a ka m o t o )

https://bitcoin.org/uk/bitcoin-paper
3

Ро з р а ху н к и С ато ш и Н а ка мото
Розглянемо сценарій, в якому зловмисник намагається генерувати більш довгий
ланцюг блоків, ніж чесні учасники. Навіть якщо він досягне успіху, це не призведе до
того, що можна буде створювати «гроші з повітря», привласнювати собі чужі монети
або вносити інші довільні зміни. Вузли ніколи не приймуть некоректну транзакцію,
навіть якщо блок її містить. Атакуючий може лише намагатися змінити одну зі своїх
транзакцій, щоб повернути собі гроші.
Гонку між чесними учасниками і нападаючим можна уявити як біноміальне
випадкове блукання. Успішна подія, коли "чесний" ланцюг подовжується на один
блок, призводить до збільшення відриву на одиницю, збільшуючи свою перевагу на 1
, а неуспішна, коли черговий блок формує зловмисник, – до його скорочення на один
блок, зменшуючи розрив на 1. Ймовірність атакуючого наздогнати різницю в кілька
блоків така ж, як і в задачі про "розорення гравця". Уявімо, що гравець має
необмежений кредит, починає з деяким дефіцитом і у нього є нескінченно багато
спроб, щоб відігратися.
4

Ро з р а ху н к и С ато ш и Н а ка мото
Ймовірність того, що зловмисник досягне успіху, тобто ймовірність зловмисника
наздогнати чесних учасників, обчислюється таким чином:
p  ймовірність появи блоку у чесному ланцюжку

q  ймовірність того, що блок створить атакуючий

qz  ймовірність того, що атакуючий надолужить різницю в z блоках

 1 якщо, p  q 
qz   
 q p  якщо, p  q 
z

В разі p  q ймовірність зменшується експоненціально з ростом числа блоків,


на яке відстає зловмисник. Оскільки всі ставки проти нього, без вдалого ривка на
початку його шанси на успіх стають мізерно малі.
5

Ро з р а ху н к и С ато ш и Н а ка мото
Розглянемо тепер, як довго одержувачу платежу варто чекати, перш ніж він буде
повністю впевнений, що колишній власник не зможе скасувати транзакцію. Ми
припускаємо, що зловмисник-відправник дозволяє адресату деякий час вірити, що
платіж був проведений, після чого повертає гроші собі. Одержувач дізнається про це,
але шахрай сподівається, що буде вже занадто пізно.
Адресат створює нову пару ключів і повідомляє свій публічний ключ
відправнику прямо перед підписанням транзакції. Це не дозволить відправнику
заздалегідь почати працювати над ланцюжком і провести транзакцію в той момент,
коли він буде досить вдалим, щоб зробити ривок вперед. Після відправки платежу
шахрай починає потай працювати над паралельною версією ланцюжка, що містить
альтернативну транзакцію.
6

Ро з р а ху н к и С ато ш и Н а ка мото
Одержувач чекає, поки транзакція не буде додана в блок і поки той не буде
продовжений ще z блоками. Йому невідомий прогрес зловмисника, але якщо середня
швидкість генерації чесних блоків – відома величина, то число блоків нападника
q
підпорядковується розподілу Пуассона з математичним очікуванням:   z .
p
Щоб отримати ймовірність того, що атакуючий обжене чесних учасників, ми
множимо значення випадкової величини (число створених ним блоків) на ймовірність
того, що він зможе надолужити різницю, що залишилася:

 k e   q p 
z k 

если k  z 

k 0

k !  1

если k  z 

Перегрупувавши складові і позбавляючись від нескінченної низки, отримуємо:


 k e
1   q 
z
 z k 
1  p
k 0 k!
7

П р и п у щ е н н я С . Н а ка мото

Припущення С. Накамото № 1 – гонку між чесними учасниками і нападаючим


можна уявити як біноміальне випадкове блукання.

Припущення С. Накамото № 2 – ймовірність перемоги зловмисника еквівалентна


задачі про «розорення гравця».

Припущення С. Накамото № 3 – зловмисник має можливість (бажання)


нескінченно довго проводити атаку на мережу, формуючи альтернативний ланцюжок.

Припущення С. Накамото № 4 – ймовірності формування блоку чесною


мережею або зловмисником вважаються константами, що не змінюються у часі.

Припущення С. Накамото № 5 – одержувач створює новий гаманець (пару


ключів) безпосередньо перед підписанням транзакції.
8
Й мов і р н і с т ь ус п і ш н о го п р ов ед е н н я
ат а к и 5 1 % ( С . Н а ка мото )

 e
1   q 
z k 
 z k 
1  p
k 0 k!

Ме тод Мо н т е - Ка рл о

Методи Монте-Карло – група чисельних методів розв'язання


математичних задач за допомогою моделювання випадкових величин і
статистичної оцінки їх характеристик
9

В и п а д ков е бл у ка н н я

Граф допустимих траєкторій дискретного руху частинки

Нехай X1, X 2 , – незалежні однаково розподілені випадкові величини. Випадковим блуканням


називається послідовність сум S0  0, Sn  X1   X n , n  . Випадкова величина X n називається n -м кроком
випадкового блукання. Випадкові блукання мають марківську властивість: для будь-якого n0  випадкова
 
S n0  n  Sдопустимих
послідовність Граф n0 , n  має такий же розподіл, як
траєкторій Sn , n 0 , і неруху
дискретного залежить від випадкового вектора
частинки
S , S ,
0 1 
, S n0 .
10
Ро з п од і л й м ов і р н о с т і з н а ход ж е н н я ч а с т и н к и в
залежності від часу при p=0,3, а q=0,7

t0 t1 t2 t3 t4 t5
x5 0,16807
x4 0,2401 0
x3 0,343 0 0,36015
x2 0,49 0 0,4116 0
x1 0,7 0 0,441 0 0,3087
x0 1 0 0,42 0 0,2646 0
x1 0,3 0 0,189 0 0,1323
x2 0,09 0 0,0756 0
x3 0,027 0 0,02835
x4 0,0081 0
x5 0,00243
11

В и п а д ков е бл у ка н н я

Різниця в блоках (кількість блоків сформованих зловмисником мінус


кількість блоків сформованих чесною мережею) за перші 530 спроб.
Наведено 100 незалежних випробувань з q=0,5 p=0,5.
12

З а вд а н н я п р о р о з о р е н н я г р а в ц я
Вона моделює гравця, який входить в казино, щоб зіграти в просту азартну гру.
Гравець ( A ) і казино (гравець B ) мають відповідно a і b монет і при кожній партії
деякої гри один з них виграє у іншого 1 монету. Імовірність виграшу гравця A для
кожної партії дорівнює p , для гравця B ймовірність виграшу дорівнює q  1  p .
Питання: чому дорівнюють ймовірності pa і pb того, що гравець A виграє (відповідно
виграє гравець B ) гру (тобто гравець A виграє всі гроші B раніше, ніж B виграє їх
у A ).

Інтерпретуючи завдання про розорення гравця під гонку двох процесів і


вважаючи виграшом зловмисника подію, коли різниця між кількістю блоків,
сформованих зловмисником і чесної мережею буде більше або дорівнюватиме нулю
(при урахуванні N  1 сформованого блоку чесною мережею), отримуємо деякі
траєкторії стану гри.
13

В и п а д ков е бл у ка н н я

Різниця в блоках (кількість блоків сформованих зловмисником мінус


кількість блоків сформованих чесною мережею) за перші 50 спроб
14

В и п а д ков е бл у ка н н я

Різниця в блоках (кількість блоків сформованих зловмисником мінус


кількість блоків сформованих чесною мережею) за перші 530 спроб
15
Діаграми станів системи
( л а н ц ю г з л ов м и с н и к а – л а н ц ю г ч е с н о ї м е р е ж і )
Сформована кількість блоків
№ (модель розорення гравця)
спроби
Зловмисник Чесна мережа
стан 1 стан 2 стан 1 стан 2
1 1 0 0 1
16
Діаграми станів системи
( л а н ц ю г з л ов м и с н и к а – л а н ц ю г ч е с н о ї м е р е ж і )
Сформована кількість блоків
№ (модель розорення гравця)
спроби
Зловмисник Чесна мережа
1 1 0 0 1
2 2 1 1 0 0 1 1 2
17
Діаграми станів системи
( л а н ц ю г з л ов м и с н и к а – л а н ц ю г ч е с н о ї м е р е ж і )
Сформована кількість блоків
№ (модель розорення гравця)
спроби
Зловмисник Чесна мережа
1 1 0 0 1
2 2 1 1 0 0 1 1 2
3 3 2 + + 1 0 0 1 – – 2 3
4 43 + 2110 01 – 2334
+ + – –
18
Діаграми станів системи
( л а н ц ю г з л ов м и с н и к а – л а н ц ю г ч е с н о ї м е р е ж і )
Сформована кількість блоків
№ (модель розорення гравця))
спроби
Зловмисник Чесна мережа
4 1 0 3 4
5 2 1 1 0 3 4 4 5
6 3 2 2 1 2 1 1 0 3 4 4 5 4 5 5 6
7 + 32 322 132 2121 10 – 45 4556455 6566 7
19

Й мов і р н о с т і с т а н і в
Розглянемо ймовірності настання якої-небудь події. Для визначеності покладемо
ймовірність формування блока зловмисником за кожну спробу q  0,3 (вірогідність не
сформувати блок буде (1  q)  0,7 ). Необхідна кількість підтверджень N  1 .
Ймовірності здобути перемогу зловмисником необхідно не більше ніж за N  nmax  2
спроби. Проаналізуємо ймовірності різних результатів:
1) перша спроба
 P1  q  0,3 (фактична перемога зловмисника на першій спробі);
 P1  1  q  0,7 (формування блоку чесною мережею);
2) друга спроба (враховуємо, що з ймовірністю 0,3 виграв зловмисник на першій
спробі)
 P2  P1  q  0,7  0,3  0,21 (перемога зловмисника – йому вдалося на другій
спробі наздогнати чесну мережу);
 P2  P1  (1  q)  0,7  0,7  0,49 (другий блок також сформувала чесна мережа).
Таким чином в моделі розорення гравця зловмисникові вдасться перемогти за дві
спроби з ймовірністю PA  P1  P2  0,3  0,21  0,51.

PA  P1  P2  P3  0,3  0,21  0,147  0,657 .


20

Й мов і р н о с т і ф о рм у в а н н я бл о ку

Функція ймовірності формування блоку при кожному випробуванні


21

Й мов і р н о с т і ф о рм у в а н н я бл о ку

Функція розподілу ймовірності формування блоку при кожному випробуванні


22
Й мов і р н і с т ь ф о рм у в а н н я л а н ц юж ка
з N бл о к і в

Функція ймовірності формування ланцюжка з N блоків при q  0, 2


23
Й мов і р н і с т ь ф о рм у в а н н я л а н ц юж ка
з N бл о к і в

Функція розподілу ймовірності формування N блоків при q  0, 2


24
А н а л і т и ч н и й р о з р а ху н о к й м ов і р н о с т і
ф о р м у в а н н я л а н ц юж к а бл о к і в з а д а н о ї д овж и н и
Ймовірність p1 того, що подія A відбудеться при першому випробуванні, буде
p1  P( A)  p .
Ймовірність p2 того, що подія не відбудеться при першому випробуванні, а станеться
при другому, буде
p2  P( Ата A)  1  p   p .
Ймовірність p3 того, що подія A не відбудеться ні при першому, ні при другому
випробуванні, а станеться при третьому, визначається як
p3  P( А та А та A)  1  p   1  p   p  1  p   p
2

і так далі. Тобто, в загальному випадку ймовірність події A при t -му випробуванні
буде визначатися виразом:
pt  1  p   p .
t 1
(5.1)
Вираз (5.1) відповідає функції ймовірності формування блоку в t -му
випробуванні за умови, що всі попередні спроби були невдалими.
Таким чином, ймовірність настання події A при проведенні випробувань (тобто
1,2,3, ,t ), позначимо цю ймовірність як PA , буде відповідати функції розподілу
ймовірності формування блоку і визначатися як:
t t
PA   pi   1  p   p
i 1
(5.2)
i 1 i 1
А в граничному випадку при проведенні всіх випробувань:
 
p
   
i 1
p  1  p  p  1
1  1  p 
i
i 1 i 1
25
А н а л і т и ч н и й р о з р а ху н о к й м ов і р н о с т і
ф о р м у в а н н я л а н ц юж к а бл о к і в з а д а н о ї д овж и н и

Функція ймовірності формування блоку при t -му випробуванні


26
А н а л і т и ч н и й р о з р а ху н о к й м ов і р н о с т і
ф о р м у в а н н я л а н ц юж к а бл о к і в з а д а н о ї д овж и н и

Функція розподілу ймовірності формування блоку


27
Й м ов і р н і с т ь ф о р м у в а н н я л а н ц юж к а
з д в ох бл о к і в
Вираз (5.1) визначає ймовірність кожної події. Ймовірність того, що через дві
спроби будуть сформовані два блоки ( p122 ):
p122  p11  p12  p 2 ,
де p11 – ймовірність сформувати перший блок в першій спробі,
p12 – ймовірність сформувати другий блок з першої спроби.
Таку ймовірність можна розрахувати для будь-якої кількості спроб і в загальному
випадку ймовірність того, що два блоки будуть сформовані рівно за t спроб буде
визначатися як:
pt12   t  1  p 2  1  p  .
t 2
(5.3)

Ймовірність настання події A (в даному випадку – формування двох блоків) при


проведенні t випробувань буде визначатися аналогічно виразу (5.2):
t t
p   1  p   p 2  1  p 
1 2 12 i 2
P A i
i 2 i 2
28
Й м ов і р н і с т ь ф о р м у в а н н я л а н ц юж к а
з д в ох бл о к і в

Функція ймовірності формування двох блоків


29
Й м ов і р н і с т ь ф о р м у в а н н я л а н ц юж к а
з д в ох бл о к і в

Функція розподілу ймовірності формування двох блоків


30
Й м ов і р н і с т ь ф о р м у в а н н я л а н ц юж к а
з т р ь ох бл о к і в
Ймовірність сформувати три блоки рівно за t спроб:
 t  2    t  1  p3  1  p t 3
pt13    (5.4)
2

Ймовірність настання події A (формування трьох блоків) при проведенні t


випробувань буде визначатися:
t
PA   pi  
t
 i  2    i  1  p3  1  p i3 .
13 13
  (5.5)
i 3 i 3 2

Функція ймовірності формування трьох блоків Функція розподілу ймовірності формування


трьох блоків
31
Й м ов і р н і с т ь ф о р м у в а н н я л а н ц юж к а
з N бл о к і в
Узагальнюючи вирази (5.1), (5.3) і (5.4) можна отримати формулу для розрахунку
ймовірності формування N блоків рівно за 𝑡 спроб ( pt1 N )
 t  ( N  1)    t  ( N  2)     t  2    t  1  p N  1  p t  N ,
pt1 N   
1  2  3   ( N  1)
або, після перетворення, отримуємо більш компактний вираз:
N 1

t  i 
 p N  1  p 
tN
pt1 N  i 1
. (5.6)
( N  1)!
За фактом, вираз (5.6) є від’ємним біноміальним розподілом. Тобто вираз (5.6)
можна записати як від’ємний біноміальний розподіл:
 t 1  N
 
tN
pt1 N     p  1  p .
 t  N 

Ймовірність настання події A (формування N блоків) при проведенні t


випробувань буде визначатися
t  t 1
  N i N 
t
PA   pi   
1 N 1 N
  p  1  p   (5.7)
i 1 i 1  t  N  
32
Й м ов і р н і с т ь ф о р м у в а н н я л а н ц юж к а
з N бл о к і в

Функція ймовірності формування ланцюжка з N блоків при ймовірності p  0,2


33
Й м ов і р н і с т ь ф о р м у в а н н я л а н ц юж к а
з N бл о к і в

Функція розподілу ймовірності формування N блоків при ймовірності p  0,2


34
Ч а с ф о р м у в а н н я п е р ш и х 3 0 бл о к і в
мережі Bitcoin
Номер Час формування Номер Час формування Номер Час формування
блоку (секунди) блоку (секунди) блоку (секунди)
1 463160 11 408 21 558
2 79 12 528 22 914
3 429 13 132 23 144
4 815 14 569 24 666
5 440 15 87157 25 369
6 361 16 12 26 1804
7 580 17 1033 27 123
8 374 18 543 28 30884
9 536 19 640 29 46
10 673 20 1021 30 619
35
Н о р м ов а н и й р о з п од і л ч а с у ф о р м у в а н н я бл о к і в
мережи Bitcoin

Точки – данні з блокчейн реєстру Bitcoin, суцільна лінія – апроксимація.


Апроксимація функції ймовірності розрахована за негативним біноміальним
розподілом наступного виду:
1  p   p ,
t 1
(5.8)
де p  0,0172 можливо інтерпретувати як ймовірність сформувати блок;
t – номер інтервалу дискретизації, тобто значення в 10 разів менше за реальний
час.
36

С е р е д н і й ч а с п о ш и р е н н я бл о к у у м е р е ж і B i t c o i n

Скріншот взято з BitNodes: BLOCKS PROPAGATION


https://bitnodes.earn.com/dashboard/?days=730#blocks-propagation станом на 17.11.2021)
37
Н о р м ов а н и й р о з п од і л ч а с у ф о р м у в а н н я бл о к і в
мережи Bitcoin (за 2018-2019 рока)

You might also like