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
アンティーク「マイニング」 - 秒速 148 EHash で走るビットコイン -
Search
AntiqueR
October 18, 2020
Programming
0
44
アンティーク「マイニング」 - 秒速 148 EHash で走るビットコイン -
KIT Developers Meetup #5 オンラインLT会で発表した資料です。
AntiqueR
October 18, 2020
Tweet
Share
Other Decks in Programming
See All in Programming
360° Signals in Angular: Signal Forms with SignalStore & Resources @ngLondon 01/2026
manfredsteyer
PRO
0
140
組織で育むオブザーバビリティ
ryota_hnk
0
180
izumin5210のプロポーザルのネタ探し #tskaigi_msup
izumin5210
1
140
AgentCoreとHuman in the Loop
har1101
5
250
AI時代の認知負荷との向き合い方
optfit
0
170
OCaml 5でモダンな並列プログラミングを Enjoyしよう!
haochenx
0
150
Lambda のコードストレージ容量に気をつけましょう
tattwan718
0
150
カスタマーサクセス業務を変革したヘルススコアの実現と学び
_hummer0724
0
740
AWS re:Invent 2025参加 直前 Seattle-Tacoma Airport(SEA)におけるハードウェア紛失インシデントLT
tetutetu214
2
120
Package Management Learnings from Homebrew
mikemcquaid
0
230
Data-Centric Kaggle
isax1015
2
780
AIフル活用時代だからこそ学んでおきたい働き方の心得
shinoyu
0
140
Featured
See All Featured
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
WENDY [Excerpt]
tessaabrams
9
36k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
230
エンジニアに許された特別な時間の終わり
watany
106
230k
Mind Mapping
helmedeiros
PRO
0
90
Building an army of robots
kneath
306
46k
jQuery: Nuts, Bolts and Bling
dougneiner
65
8.4k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
359
30k
Embracing the Ebb and Flow
colly
88
5k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
110
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
34k
Transcript
アンティーク「マイニング」 - 毎秒 148 Ehash で走るビットコイン -
毎秒 148 Ehash 1垓4800京 ハッシュ / 毎秒
About Me AntiqueR / アンティーカー - C# 好き。 - 最近は
.NET Core でコンソールアプリ。 - MVVM 好き。 - 付喪堂骨董店が好き。 - ブロックチェーン好き。 - 儲かってません。 Twitter : GitHub : AntiquePendant AntiquePendulum
ブロックチェーン
Blockchain ブロックチェーン is ハッシュ値の連続体 出典: Block Chain — Bitcoin :
https://developer.bitcoin.org/devguide/block_chain.html
Blockchain ブロックチェーン is ハッシュ値の連続体 出典: Block Chain — Bitcoin :
https://developer.bitcoin.org/devguide/block_chain.html 前のブロック ハッシュ 前のブロック ハッシュ 前のブロック ハッシュ
Blockchain 前ブロックハッシュ タイムスタンプ Difficulty Nonce トランザクション : 0xFFFF.... : 2020/10/17
: 3 : 2083236893 : Alice から Bob に10コイン { Byte[] } シリアライズ E38193e381aee38199e381b0e381a7e4b880e795aae5 8fafe6849be38184e381aee381afe382a6e382a3e382ba
Blockchain 前ブロックハッシュ タイムスタンプ Difficulty Nonce トランザクション : 0xFFFF.... : 2020/10/17
: 3 : 2083236893 : Alice から Bob に10コイン { Byte[] } シリアライズ E38193e381aee38199e381b0e381a7e4b880e795aae5 8fafe6849be38184e381aee381afe382a6e382a3e382ba SHA256 ダブルハッシュ 32 バイトの値になる。 これがいわゆるブロックID
マイニング
ハッシュ値の「ビーチフラッグス」
Mining マイニング = 誰よりも早く目的のハッシュを計算する。
Mining 上位 n ビットが0のハッシュ n の値は Difficulty によって決定される 条件
Mining なんでそんな面倒なことするの?
Mining 不正を防止するため
Mining 計算が一番かかったチェーン = 正当なチェーン
Mining 世界とのビーチフラッグスに 勝たないといけない。 不正をするためには =世界の51%以上の 計算能力 を保持しないといけない
Mining 不正をしたい!
Mining あらすじ 超天才美少女のアリスは 10 Bitcoin を支払って AntiqueR から 絵画 を買いました。
10 Bitcoin の価値はなさそうなので不正して取り返すことにしました。 絵画
Mining 今のブロックチェーンの状態 Block 1 Block 2 Block 3 Block 4
AからBに 10Bitcoin XからYに 3Bitcoin CからZに 1satoshi アリスから僕に 10Bitcoin 累積 DIfficulty
Mining 不正をすると… Block 1 Block 2 Block 3 Block 4
AからBに 10Bitcoin XからYに 3Bitcoin CからZに 1satoshi Block 3 Block 4 Block 5 支払った過去 をなくす
Mining でも・・・ Block 1 個のブロックに 148E Hash/s の 計算パワーがつぎ込まれている。
Mining でも・・・ Block それを世界より速く? 148E Hash/s なのに?
Mining アリス「無理ゲー!」 少なくとも 74 EHash/s の計算能力を手にしなければいけない。
Mining めでたしめでたし 逆に言えば、採掘者が少ない仮想通貨は 51% 攻撃の被害を受ける可能性が高いということです。
実践 .NET Core 開発環境くらい皆さんありますよね?
Mining それではマイニングやってみよう。 本来は電子署名などが入りますが省いてます。
Blockchain もしハッシュ値が条件をクリアできなかったら?
Mining Nonce++;
Blockchain Nonce の値を変動させることでデータを変化させる。 つまり Hash 値が変わる!
Mining
Mining 上位 18ビットが0のハッシュ 条件 ちょっとかかります。 終わったら Programs.cs の_bits の値を増やして遊んでみて下さい。
Mining while (!token.IsCancellationRequested) { block.Nonce = nonce++; block.Timestamp = DateTime.UtcNow;
var hash = block.ComputeId(); Console.Write("+"); if (!HashCheck(hash, target)) continue; block.Id = new HexString(hash); return true; } Nonce を増加 => ハッシュ化 => 条件と比較 を繰り返す。 Miner.cs
まとめ 35枚 / 20min で走る僕
summary 話したこと - ブロックチェーンとは - ハッシュの連続体 - マイニングとは - ハッシュ値のビーチフラッグス
- Nonce を変化させてダブルハッシュ - なぜ「51%攻撃」なのか - 世界の半分を手に入れろ。
アンティーク「マイニング」 - 毎秒 148 Ehash で走るビットコイン - Twitter : GitHub
: AntiquePendant AntiquePendulum