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
300
TPS&51%Attack
Taiki
June 30, 2018
Tweet
Share
More Decks by Taiki
See All by Taiki
Blenderで作るCG VR
r_etx
1
79
Slush✖️Privacy
r_etx
0
110
WeArelookingForYou.pdf
r_etx
1
700
Zk-SNRAKS1~4
r_etx
0
42
hakone_hackthon
r_etx
0
79
Dynamics of Blockchain
r_etx
1
59
Lightning network
r_etx
0
100
BancorProtocol
r_etx
4
750
GHZstate
r_etx
0
49
Other Decks in Research
See All in Research
カスタマーサクセスの視点からAWS Summitの展示を考える~製品開発で活用できる勘所~
masakiokuda
2
210
Unsupervised Domain Adaptation Architecture Search with Self-Training for Land Cover Mapping
satai
3
190
snlp2025_prevent_llm_spikes
takase
0
350
最適決定木を用いた処方的価格最適化
mickey_kubo
4
1.9k
RHO-1: Not All Tokens Are What You Need
sansan_randd
1
190
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
62
30k
Learning to (Learn at Test Time): RNNs with Expressive Hidden States
kurita
1
250
大規模な2値整数計画問題に対する 効率的な重み付き局所探索法
mickey_kubo
1
380
Minimax and Bayes Optimal Best-arm Identification: Adaptive Experimental Design for Treatment Choice
masakat0
0
180
心理言語学の視点から再考する言語モデルの学習過程
chemical_tree
2
610
SNLP2025:Can Language Models Reason about Individualistic Human Values and Preferences?
yukizenimoto
0
180
SSII2025 [TS3] 医工連携における画像情報学研究
ssii
PRO
3
1.3k
Featured
See All Featured
What's in a price? How to price your products and services
michaelherold
246
12k
GitHub's CSS Performance
jonrohan
1032
460k
The Invisible Side of Design
smashingmag
301
51k
Building Better People: How to give real-time feedback that sticks.
wjessup
368
20k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
189
55k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.5k
Into the Great Unknown - MozCon
thekraken
40
2.1k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
610
Fireside Chat
paigeccino
40
3.7k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
252
21k
Large-scale JavaScript Application Architecture
addyosmani
514
110k
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]