Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
TPS&51%Attack
Search
Taiki
June 30, 2018
Research
0
290
TPS&51%Attack
Taiki
June 30, 2018
Tweet
Share
More Decks by Taiki
See All by Taiki
Blenderで作るCG VR
r_etx
1
77
Slush✖️Privacy
r_etx
0
110
WeArelookingForYou.pdf
r_etx
1
700
Zk-SNRAKS1~4
r_etx
0
41
hakone_hackthon
r_etx
0
77
Dynamics of Blockchain
r_etx
1
58
Lightning network
r_etx
0
100
BancorProtocol
r_etx
4
750
GHZstate
r_etx
0
48
Other Decks in Research
See All in Research
診断前の病歴テキストを対象としたLLMによるエンティティリンキング精度検証
hagino3000
1
110
問いを起点に、社会と共鳴する知を育む場へ
matsumoto_r
PRO
0
440
AI エージェントを活用した研究再現性の自動定量評価 / scisci2025
upura
1
130
なめらかなシステムと運用維持の終わらぬ未来 / dicomo2025_coherently_fittable_system
monochromegane
0
850
NLP2025参加報告会 LT資料
hargon24
1
330
数理最適化と機械学習の融合
mickey_kubo
15
8.9k
電通総研の生成AI・エージェントの取り組みエンジニアリング業務向けAI活用事例紹介
isidaitc
1
700
Delta Airlines® Customer Care in the U.S.: How to Reach Them Now
bookingcomcustomersupportusa
PRO
0
100
Sosiaalisen median katsaus 03/2025 + tekoäly
hponka
0
1.3k
SSII2025 [SS2] 横浜DeNAベイスターズの躍進を支えたAIプロダクト
ssii
PRO
7
3.7k
2025年度 生成AIの使い方/接し方
hkefka385
1
720
Streamlit 総合解説 ~ PythonistaのためのWebアプリ開発 ~
mickey_kubo
1
1.1k
Featured
See All Featured
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
130
19k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
357
30k
Typedesign – Prime Four
hannesfritz
42
2.7k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
181
54k
The Art of Programming - Codeland 2020
erikaheidi
54
13k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.8k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
Done Done
chrislema
184
16k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
2.9k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
Adopting Sorbet at Scale
ufuk
77
9.5k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Transcript
ABOUT TPS & 51% ATTACK CRYPGEEK 30/6/2018 Blockchainษڧձ #10 @r_etx
Proof of WorkͷΈͰɺTPSΛ͍࣋ͬͨ͋͛ͨ
TPSͱɺ
transaction per secͷུͰɺҰඵؒ͋ͨΓʹ͚͞Δ transactionͷྔΛද͢ɻ TPS͕খ͍͞ͱtransaction͕٧·ͬͯঝೝʹ͕͔͔࣌ؒΔɻ VISA 2000TPS( daily peak rate
of 4000 TPS) Pay Pal 115TPS so let’s take 4000 TPS as starting goal!!
transaction per secͷུͰɺҰඵؒ͋ͨΓʹ͚͞Δ transactionͷྔΛද͢ɻ TPS͕খ͍͞ͱtransaction͕٧·ͬͯঝೝʹ͕͔͔࣌ؒΔɻ VISA 2000TPS( daily peak rate
of 4000 TPS) Pay Pal 115TPS BTC 7TPS
transaction per secͷུͰɺҰඵؒ͋ͨΓʹ͚͞Δ transactionͷྔΛද͢ɻ TPS͕খ͍͞ͱtransaction͕٧·ͬͯঝೝʹ͕͔͔࣌ؒΔɻ more over Online game 100000TPS
transaction per secͷུͰɺҰඵؒ͋ͨΓʹ͚͞Δ transactionͷྔΛද͢ɻ TPS͕খ͍͞ͱtransaction͕٧·ͬͯঝೝʹ͕͔͔࣌ؒΔɻ Ωπ͍͡ΌΜ!
Proof of WorkͷΈͰɺTPSΛ͍࣋ͬͨ͋͛ͨ
TPSͷఆࣜԽ TPS(λ, b) = β(λ, b) ⋅ b ⋅ K
K ; 1KB͋ͨΓͷτϥϯβΫΫγϣϯ β ;ϒϩοΫ͕ϝΠϯνΣʔϯʹՃ͞ΕΔׂ߹ b ; ϒϩοΫͷ࠷େऩ༰αΠζ(KB)
TPS(λ, b) = β(λ, b) ⋅ b ⋅ K ҰඵؒͰ͑ΔKB
1/KB ͋ͨΓͷTx K ; 1KB͋ͨΓͷτϥϯβΫΫγϣϯ β ;ϒϩοΫ͕ϝΠϯνΣʔϯʹՃ͞ΕΔׂ߹ b ; ϒϩοΫͷ࠷େऩ༰αΠζ(KB) TPSͷఆࣜԽ
TPS(λ, b) = β(λ, b) ⋅ b ⋅ K ҰඵؒͰ͑ΔKB
1/KB ͋ͨΓͷTx TPSͷఆࣜԽ β ɺɹ ͷؔɻ ͱɹ ͷҧ͍? β λ λ
ωοτϫʔΫͰ৽͍͠Block͕ੜ͞ΕΔ·Ͱ ฏۉ10(=600[s])ʹͳΔΑ͏ʹઃఆ͞Ε͍ͯΔɻ λ ; Block Treeʹblock͕Ճ͞ΕΔׂ߹ ϒϩοΫ͕ٿ্Ͱڞ༗͞ΕΔͷʹ͔͔Δ࣌ؒΑΓ ৽͍͠Block͕ੜ͞ΕΔ·Ͱͷ͔͔Δ ฏۉͷ͕࣌ؒ͘ͳΔΑ͏ʹઃఆ͞Ε͍ͯΔɻ BitcoinͰɺ
λ = 1 600
ωοτϫʔΫͰ৽͍͠Block͕ੜ͞ΕΔ·Ͱ ฏۉ10(=600[s])ʹͳΔΑ͏ʹઃఆ͞Ε͍ͯΔɻ λ = 1 600 β ;ϒϩοΫ͕ϝΠϯνΣʔϯʹՃ͞ΕΔׂ߹ (Networkʹ͓͚ΔԆForkΛߟྀ͍ͯ͠Δ) λ
; Block Treeʹblock͕Ճ͞ΕΔׂ߹
ωοτϫʔΫͰ৽͍͠Block͕ੜ͞ΕΔ·Ͱ ฏۉ10(=600[s])ʹͳΔΑ͏ʹઃఆ͞Ε͍ͯΔɻ λ ; Block Treeʹblock͕Ճ͞ΕΔׂ߹ BitcoinͰɺ λ = 1
600 β ;ϒϩοΫ͕ϝΠϯνΣʔϯʹՃ͞ΕΔׂ߹ (NetworkͰͷԆؚΜͰ͍Δ) β(λ, b)
0OFNPSF
Topology of network
Topology of network ࠓճߟ͑ͳ͍ɻ
TPSͷఆࣜԽ TPS(λ, b) = β(λ, b) ⋅ b ⋅ K
TPSΛ૿͔ͨͬͨ͠Βɺࡾͭͷํ๏͕͋Δ ҰඵؒͰ͑ΔKB 1/KB ͋ͨΓͷTx K ; 1KB͋ͨΓͷτϥϯβΫΫγϣϯΛ૿͢ β ;ϒϩοΫ͕ϝΠϯνΣʔϯʹՃ͞ΕΔׂ߹Λ૿͢ b ; ϒϩοΫͷ࠷େऩ༰αΠζ(KB)Λ૿͢
Txͷ༰ྔΛখ͘͢͞Δɻ SegwitͳͲ K ; 1KB͋ͨΓͷτϥϯβΫΫγϣϯΛ૿͢ β ;ϒϩοΫ͕ϝΠϯνΣʔϯʹՃ͞ΕΔׂ߹Λ૿͢ b ; ϒϩοΫͷ࠷େऩ༰αΠζ(KB)Λ૿͢
Big Block Bitcoin CashͳͲͰ࠾༻ K ; 1KB͋ͨΓͷτϥϯβΫΫγϣϯΛ૿͢ β ;ϒϩοΫ͕ϝΠϯνΣʔϯʹՃ͞ΕΔׂ߹Λ૿͢ b
; ϒϩοΫͷ࠷େऩ༰αΠζ(KB)Λ૿͢
10ؒʹҰͰͳ͘ɺ ͬͱ͍࣌ؒʹBlock͕ੜ͞ΕΔΑ͏ʹ͢Δ K ; 1KB͋ͨΓͷτϥϯβΫΫγϣϯΛ૿͢ β ;ϒϩοΫ͕ϝΠϯνΣʔϯʹՃ͞ΕΔׂ߹Λ૿͢ b ; ϒϩοΫͷ࠷େऩ༰αΠζ(KB)Λ૿͢
K ; 1KB͋ͨΓͷτϥϯβΫΫγϣϯΛ૿͢ β ;ϒϩοΫ͕ϝΠϯνΣʔϯʹՃ͞ΕΔׂ߹Λ૿͢ b ; ϒϩοΫͷ࠷େऩ༰αΠζ(KB)Λ૿͢ 5ISPVHIQVU 514
#MPDLTJ[F C #MPDLSBUF Е 'PSLJO #MPDL5SFF 4FDVSJUZ ЌЕ
K ; 1KB͋ͨΓͷτϥϯβΫΫγϣϯΛ૿͢ β ;ϒϩοΫ͕ϝΠϯνΣʔϯʹՃ͞ΕΔׂ߹Λ૿͢ b ; ϒϩοΫͷ࠷େऩ༰αΠζ(KB)Λ૿͢ ͲͪΒͷ߹ɺϑΥʔΫ͕ى͖͘͢ͳΓ ҆શੑ͕Լ͢Δɻ(51%
Atttackʹऑ͘ͳΔ)
51% Attack
Security Attacker͕ɺHonest nodeͷ computational power ͷ q ͷׂ߹ʹ૬͢Δcomputational power Λ͍࣋ͬͯΔͱ͢Δɻ
λh β(λh , b) > qλh AttackerͷBlock Creation rate honest nodeͷmain chain creation rate Ͱ͋Ε҆શɻ
Larger Blocks Blockͷେ͖͕͞૿͑Δͱɺάϥϑʹࣔ͢Α͏ʹɺ Ԇ͕࣌ؒ૿Ճ͢ΔɻͦͷͨΊɺ৽͍͠Bock͕ੜ͞Εͨnode ͔ΒΕͨnodeͷup date͕͘ͳΔɻ β(λh , b) >
qλh Easy to attack β become smaller
Acceleration Block Creation Blockͷੜ͕༰қʹͳΓɺ৽͘͠ݟ͔ͭͬͨBlock͕ ൖͯ͘͠ΔΑΓલʹɺઌʹࣗͷnodeͰBlock͕ੜ͞ΕΔ Honest nodeඇޮʹɺAttackerޮతʹϚΠχϯάͰ͖Δ β(λh , b)
> qλh Easy to attack qλh become bigger
Using a GHOST GHOSTΛ༻͍Δ͜ͱʹΑͬͯɺForkͷͨ͠ ແବʹͳΒͣSecurityʹߟྀ͞ΕΔɻ β(λh , b) > qλh
λh > qλh
Using a GHOST β(λh , b) > qλh λh >
qλh 1 > q GHOSTΛ༻͍Δ͜ͱʹΑͬͯɺForkͷͨ͠ ແବʹͳΒͣSecurityʹߟྀ͞ΕΔɻHonest node ͱಉ͡ computational power ͕ͳ͍ͱ߈ܸ͕ޭ͠ͳ͍!!
Using a GHOST β(λh , b) > qλh λh >
qλh 1 > q Block creation rateΛ͋͛ΒΕΔɻ Block sizeΛ͋͛ΒΕΔɻ
͓·͚
BobɺAlice͔Β͓ՖΛങͬͯࢧ͓ͬͨۚΛୣ͍͍ͨɻ ͋Δ࣌ࠁtʹൃߦͨ͠txʹରͯ͠ɺTඵਐΜͩ࣌ࠁt+Tʹɺͦͷtxؚ͕·ΕΔ ϒϩοΫ͔Β͞Βʹ3ݸͷϒϩοΫ͕ঝೝ͞ΕͨͷΛ֬ೝ͠ɺAliceɺBobʹ ͓ՖΛൃૹͨ͠ɻ ͜ͷঢ়گͰɺAlice͕Bob͔Βٗʹ߹͏֬ΛٻΊΑɻ ͨͩ͠ɺBobminerͰcomputational powerΛ 100͍࣋ͬͯΔɻ ͦΕҎ֎ͷਖ਼ͳminer͕͍࣋ͬͯΔ Computational
power ͕ 300Ͱ͋Δͱ͢Δɻ
લఏʀ"UUBDLFS"MJDF͕ՖΛૹΔ·ͰӅΕͯ#MPDLΛੜ͢Δɻ BUUBDLFSͷDPNQVUBUJPOBMQPXFSɺIPOFTUOPEFͷ )POFTUOPEFɺ"MJDF͕ՖΛૹΔ·Ͱʹ#MPDLੜͨ͠ɻ ͜ͷͱ͖ɺ"UUBDLFSOPEFͰɺ"MJDF͕ՖΛૹΔ·ͰʹLCMPDLੜ͢Δ֬ɺ QPJTTPOͰܭࢉͰ͖ͯɺ P(k) = λke−λ k! ͜͜Ͱɺ"UUBDLFSͰͷ#MPDLੜͷׂ߹ͷฏۉɹɹɺ
λ λ = 3 × 1 3 = 1
Lͷ߹ɺӅΕͯੜ͍ͯͨ͠#MPDL͕NBJODIBJOͱͯ͠࠾༻͞ΕΔɻ ҰํɺӅΕͯੜ͍ͯͨ͠DIBJO͕Lͷ࣌ɺ͞Βʹ#MPDLੜ͕ඞཁɻ ͕ͨͬͯ͠ɺ߈ܸ͕ޭ͢Δ֬ɺ P = ∞ ∑ k=0 λke−λ k!
× ( 1 3 ) 3−k JGL JGL 1 = 0.19597 Ͱޭ͢Δɻ ݁ߏͰ͔͍ "UUBDLFSɺ͜ͷ߈ܸͰಘΒΕΔϝϦοτͱ௨ৗͷOPEFͱͯ͠ NJOJOHใुͷϝϦοτΛൺֱͯ͠߹ཧతͳஅΛ͢Δɻ
BobɺAlice͔Β͓ՖΛങͬͯࢧ͓ͬͨۚΛୣ͍͍ͨɻ ͋Δ࣌ࠁtʹൃߦͨ͠txʹରͯ͠ɺTඵਐΜͩ࣌ࠁt+Tʹɺͦͷtxؚ͕·ΕΔ ϒϩοΫ͔Β͞Βʹ3ݸͷϒϩοΫ͕ঝೝ͞ΕͨͷΛ֬ೝ͠ɺAliceɺBobʹ ͓ՖΛൃૹͨ͠ɻ ͜ͷঢ়گͰɺAlice͕Bob͔Βٗʹ߹͏֬ΛٻΊΑɻ ͨͩ͠ɺBobminerͰcomputational powerΛ 100͍࣋ͬͯΔɻ ͦΕҎ֎ͷਖ਼ͳminer͕͍࣋ͬͯΔ Computational
power ͕ 300Ͱ͋Δͱ͢Δɻ
https://eprint.iacr.org/2013/881.pdf Reference https://bitcoin.org/bitcoin.pdf [1] [2]