暗号通貨モネロ(XMR)について⑤くりぷと知っ得情報2月18日号

クリプトスタディ(クリスタ)の水野です。
シリーズでプライバシー重視の分散型暗号通貨、「モネロ(XMR)」について書いています。

🔶モネロ(XMR)の概要と誕生の歴史
くりぷと知っ得情報1月21日号🔶モネロ(XMR)の創業メンバーと現在の中心メンバー(匿名多数)
くりぷと知っ得情報1月28日号🔶モネロ(XMR)の「テールエミッション」とは?
くりぷと知っ得情報2月4日号🔶モネロ(XMR)のマイニングにASICは要らない?
くりぷと知っ得情報2月11日号

 

前号では、暗号通貨の台帳記録にマイニングを採用する代表格、ビットコイン(BTC)とカスパ(KAS)、そして、モネロ(XMR)について、同じマイニングでも、設計思想が違いでハッシュアルゴリズムまでも違うことに触れました。
今回は、その続きです。

SHA-256型のビットコイン(BTC)

SHA-256は、ビットコイン(BTC)が採用しているハッシュアルゴリズム(ハッシュ関数)です。
正式名称は

Secure Hash Algorithm 256-bit

になります。

SHA-256

SHA-256は、

どんなデータでも256ビット(64文字)の「固定長」(可変しないデータ形式)の“識別コード”に変える計算ルール

で、設定されています。
 

また難しい💦💦

解説していきます。

 

まず、この“識別コード”は、人間の"指紋"のようなもので、

人間の指紋が、「一人一人違う」、

「少し傷つくと変わる」、

「本人確認に使える」

のと同じように、

ハッシュ値も

🔹「データごとに違う」

🔹「1文字変えると全く別の結果になる」

🔹「改ざんチェックに使える」

という点で、”指紋”のようなものと言えます。

💡ここで、解説

先述の通り、
SHA-256の場合、

「出力は必ず256ビット」、文字数で言うと、「16進数で表す64文字」

と書きました。

🔶16進数は、「0〜9」と「a〜f」の16種類。

🔶16進数の1文字は4ビットで、256ビット÷4=64文字。

になります。

💡256個の小箱を4個ずつまとめると、64セット(文字)

(参考)
ビットと、進数、文字数の関係を整理しておきますね。

ビット数

進数

説明

1ビット

2

0、1の2通り(コンピュータはこの「0と1」だけで動いています)1ビットは、0か1のどちらかを入れられる小さな箱1つ分

2ビット

4

00、01、10、11の4通り(箱2つ分)

3ビット

8

000、001、010、011、100、101、110、111の8通り(箱3つ分)

4ビット

16

0000、0001、0010、0011、0100、0101、0110、0111、1000、1001、1010、1011、1100、1101、1110、1111の16通り(箱4つ分)

16進数1桁は、ちょうど4ビット分ぴったり

というわけです。

ちょっと、話がそれましたが、
ビットコイン(BTC)のマイニングは、このSHA-256というハッシュ計算を何兆回も繰り返す競争をして、

正しいハッシュ値を最初に見つけた人が報酬を得る仕組み(PoW)

になっています。
SHA-256は計算構造が明確で、
🔶専用回路を作りやすい
🔶超高速化しやすい
🔶電力効率も最適化可能
などの点から、ASIC(エーシック)と相性が良く、ビットコイン(BTC)はASIC中心の巨大マイニング産業へ進化しています。
 

kHeavyHash型のカスパ(KAS)

カスパ(KAS)のハッシュアルゴリズム(ハッシュ関数)は、kHeavyHashです。

典型的な線形チェーンで約10分ごとにブロック生成されるビットコイン(BTC)に比べ、BlockDAG構造(並列ブロック)で約1秒ごとにブロック生成されるカスパ(KAS)は、2021年頭初は「GPU」(ジーピーユー:Graphics Processing Unit)は、が主体で、個人や小規模マイナーでも一定成果を出しやすく、参加しやすいPoW(Proof of Work:マイニング)としてスタートしています。

[playlist type="video" ids="7020"]

しかし、2023年以降 、Antminer(アントマイナー)KS5/KS7といったASIC(エーシック)が登場し、効率と規模を伸ばす動きになり、現在は高ハッシュレート化により、ASICが優勢となりGPUでの採算は厳しく、規模強化が進む“新興PoW市場”としての段階に入っています。

現在は、ASIC優勢のマイニングで規模拡大=カスパ(KAS)

RandomX(ランダムエックス)のモネロ(XMR)

いきなり聞きなれない言葉が出てきました💦💦

決して、スーパー戦隊のことではありません(笑)

RandomX(ランダムエックス)は、「誰でも参加しやすい公平な採掘環境」を作るために設計された、モネロ(XMR)のマイニングに使われる「ハッシュアルゴリズム」です。
PoW(Proof of Work:マイニング)を採用していますが、

最大の特徴は

CPUで有利になるよう設計されている

ことです。

RandomXの特徴

RandomX(ランダムエックス)が、一般的なパソコンのCPU(シーピーユー)向けに最適化されている点について、まとめていきましょう。

処理をたくさん使う設計とCPUとの相性

コンピュータでデータの演算や、コンピュータ内の装置の制御などを行うCPU(シーピーユー)が得意なことは、
🔹複雑な計算
🔹条件分岐
「条件が合致した場合(真)はAの処理、条件が合致しない場合(偽)はBの処理」のように、処理を分岐させる
🔹ランダムな処理
🔹大きなメモリ操作
などです。
RandomX(ランダムエックス)のマイニングは、こういった計算を意図的に多く使うように、作られていて、
 

モネロ(XMR)のRandomX(ランダムエックス)は、

CPU(シーピーユー)との相性がとてもいい仕様

です。
 

メモリ(RAM)を大量に使う

RandomX(ランダムエックス)のマイニングに関しては、必要メモリとして、約2GB(ギガバイト)前後が必要です。
これは、ハッシュ計算を行うための“データセット(巨大な計算用テーブル)”をRAM上に展開するのに約2GB使うという意味です。
つまり、同時に多く動かすほど大量のメモリが必要になり、CPU+大容量RAM(※)環境が有利になる設計になっています。
逆に、計算そのものよりも“メモリを大量に使う設計”にすることで、CPUが有利になる仕組みです。

(※)大容量RAM(一般に32GB以上)とは、4K動画編集、3D制作、高度なAI処理、ゲーム実況など、負荷の高い作業に対して快適な動作を実現するものですが、わかりやすく言うと、パソコンが一時的にデータを置いておく「作業机」が広いイメージです。机が広いほど、多くの資料を同時に広げられ、処理がスムーズに進みます。

一方、ビットコイン(BTC)のSHA-256のASICの場合、単純な計算をただ繰り返すので、メモリ依存性がほぼなく、必要メモリは、数MB(メガバイト)(※)というごく少量ですみます。

(※)MB(メガバイト)とGB(ギガバイト)はデータの大きさの単位です。1GB = 1000MBで、GBのほうがMBよりもずっと大きい容量を表します。

ASICの「計算力勝負」よりも、「メモリ勝負」のRandomX

毎回変わる計算内容

RandomX(ランダムエックス)の場合、「仮想的な小さなプログラム」をランダムに生成して実行します。
これは、モネロ(XMR)のマイニングは、RandomX専用の、一時的に作られるプログラム(例えば、足し算、掛け算、条件分岐、メモリ読み書きなど)を都度実行するという意味です。
つまり、固定作業ではなく計算内容が変化します。
例えていうなら、
🔶ASICの場合、工場で、最強の専用機械を使ってただひたすら「ネジを締めることを極めた」仕事。
🔶RandomX(ランダムエックス)のCPUの場合、「今日はネジ」、「明日は溶接」、明後日は「溶接」といった、専門機械より「万能職人」が強いイメージです。

「万能職人」のRandomX

RandomXのCPUメインの設計目的

ここまで書いてきましたように、RandomX(ランダムエックス)の設計目的は、
🔶巨大マイニング企業による独占を防ぐ
ASIC中心の巨大マイニング産業にならないようにする
🔶一般ユーザーでも参加できるようにする
🔶分散性を守る
多くの人がマイニングに参加できるような設計にすることで、一部の大企業に集中しにい形になり、分散性が守られる
という、設計目的です。
 

おわりに

今回は、モネロ(XMR)と、ビットコイン(BTC)、カスパ(KAS)と、それぞれのハッシュ値のアルゴリズム(手順、計算方法)が違い、その目的を比較してみました。
個人でもマイニングに参入しやすいモネロ(XMR)。

今回はここまでです。

お読みいただいて、ありがとうございました。