9月末に、BitcoinネットワークでのSHA256マイニング専用に開発
された新しいASICチップ
を導入しました 。 今日は、その中に何があるかを教えます。
画像:Bitfury Groupビットコインマイニングについてのいくつかの言葉
マイニングの目的は、ブロックチェーンネットワークを保護することです。 鉱夫はハードウェアを使用して、ネットワーク内のトランザクションの整合性を保証し、
二重支出攻撃を排除する複雑なコンピューティングの問題を解決します。 並行して、マイニングは暗号通貨を生成するメカニズムとして機能し、マイナーが報酬として受け取るようになりました(現在-ブロックあたり
12.5ビットコイン )。
問題の計算タスクは、ブロック内のトランザクションに一致するハッシュの選択に関連しています。 目的の値は、前のブロックのハッシュ、乱数(ノンスと呼ばれる)、および過去10分間のトランザクションハッシュの合計に基づいて生成されます。 この場合、2つの条件を満たしている必要があります。ハッシュは宣言されたマイニングの複雑さに準拠し、先頭に厳密に定義された数のゼロビットを持っている必要があります。 複雑さを評価するために、修正されたテイラー級数の展開が使用されます。
ビットコインブロックチェーンのハッシュは、SHA256アルゴリズムを使用して計算されます。 64回の反復が含まれ、その間に、シフト操作と「モジュロ2加算」を使用して、ブロック内のトランザクションビットが「混合」されます。 SHA256関数を適用した結果は不可逆的であると見なされます。そのため、ターゲットハッシュは総当たりで検出されます。 ブロックの決定を高速化するために、ブロックチェーンネットワークの参加者が団結するマイニングおよびマイニングプールについて詳しく説明しました。
以前は、CPUとGPUがナンスとハッシュのソートに使用されていましたが、時間の経過とともに、マイニングの複雑さが増しているため(ビットコインネットワークのすべての参加者の総計算能力に応じて変化します)、特殊な
ASICが設計されました。
Bitfuryでは、このようなソリューションも開発しています。 合計で5世代のマイニングチップを作成し、9月に6番目のマイニングチップを発表しました 。SHA256ハッシュを解決するために特別に調整されたASICクラークについて話しているのです。
クラークの仕組み
Clarkeは14 nmプロセステクノロジーに従って製造され、6x6 mm
FC- LGA 35Lフォームファクターで実装されています。 2番目のケースには、ボード上の電源回路のより効率的な配線があります。 このチップは1秒あたり120ギガバイトを解決しますが、マイナーが現在必要としているものに応じてパフォーマンス
を調整
することができます-ハッシュレートを大きくするか、電力消費を抑えます。 特に、チップに電力を供給するには0.3ボルトで十分なので、55 mJ /ギガヘッシュのエネルギー効率係数を達成することができます。 クラーク構造は次のようになります。
クロックジェネレーター チップのクロックを設定します。
電圧レベル :VSS = 0、VDD = 1。
シリアルバスによって外部コントローラーに接続された
シリアル制御インターフェース 。 これは、SDATAラインで接続されたMOSIおよびMISOデータ転送コンタクト(マスターからスレーブへ、またはその逆にデータを転送するために使用)を備えた
SPIバスのように見えます。
インターフェイスはコマンドの送信を担当します。 以下にそれらの一部を示します。新しいタスクを書き込むためのタスク書き込み、バッファ切り替えを強制するためのタスクスイッチの強制、ノンス値を読み取るためのノンスの読み取りなど。すべてのコマンドには1つのテンプレートがあり、コード、長さ、データフィールド、チップステータスバイト、バッファからのデータが含まれますノンスとチェックサム。
チェックサムは、ゼロから始まるバイトの算術合計です。
たとえば、チェックサムコマンド04 03 03 8c 18 00はAEと等しくなります。ノンス制御システム。 マスクに基づいてハッシュ計算プロセスを制御します。 マスクはタスクバッファーに「横たわり」、計算の範囲を設定するために使用されます。 新しい値を検索するときに変更されないままのノンスのビットを定義します。
タスクバッファ。 ハッシュを計算するために必要です(長さは20ダブルワードです)。 合計で2つのバッファがあり、タスクをすばやく切り替えることができます。 最初のバッファがハッシュソリューションでビジーである間、2番目のバッファは次の計算のためにデータを書き込みます。
8154リングハッシュカーネル。 SHA256デュアルアルゴリズムを使用します。
ノンスバッファ。 これは、ハッシュの決定が書き込まれる12個のダブルワードリングバッファーです。
例として、ハッシュの計算中に発生するチップ内のデータを交換するプロセスを示しました(以下のスポイラーで)。
チップデータ交換(英語)//クロックジェネレーターを値0x20およびプリスケーラー= 1にプログラム(無効)送信:0803038c1800
Recv:f0b200b2
//ノンスマスクを0x00000000に設定します
送信:200300000000受信:f0230023
//タスクの切り替えを強制送信:020000
Recv:f0020002
//タスクを送信します
Wi 0 = CD3F992C 1 = 037F8197 2 = A58E091A
MS0 A = 0CAD7CD1 B = CBE38FD9 C = D14DC164 D = F90EB10B E = 819621CF F = 358D45CD G = 8C14CAE3 H = 538EF887 MS3 A = 5FF18CDD B = 8CDA24A4 C = 180266F9 D = 0CAD7CA9F6 36B = DFCD7CA19ノンス= D5D0E8B9
送信:_014fa607d67b614925737be76bce53a41ba12b3c8b659f27ef6726be6049f924522d2b3c8b659c78616c779 a13c81a609
35067953386a9d52b3d0f24a3b0a607d67bb2a8cc5326708e0ef55b267700000000 Recv:0fb200b2
//タスクを強制的に切り替える
送信:020000
Recv:0f020002
//ノンスバッファを読み取ります
送信:040000 Recv:_0f04000000000000000000000000000000000000000000000000000000000000003ffffffc7f7a42132ffffffc 1ffffffc0001ffbf8c
FIFO [0] = aaaaaaaa
FIFO [1] = aaaaaaaa
FIFO [2] = aaaaaaaa
FIFO [3] = aaaaaaaa
FIFO [4] = aaaaaaaa
FIFO [5] = aaaaaaaa
FIFO [6] = aaaaaaaa
FIFO [7] = 3ffffffc
FIFO [8] = d5d0e8b9 <-ノンス値
FIFO [9] = 2ffffffc <-タスクスイッチマーカー
FIFO [A] = 1ffffffc <-タスクスイッチマーカー
FIFO [B] = aaab5515
チップはどこで使用されますか
現在、新しいデバイスを独自のマイニングサーバーと
BlockBoxのモバイルデータセンターに
インストールしています。 カナダ、アイスランド、ジョージア、ノルウェーのビットコインファームも変更しています(
年の初めに開始されました )。
クラークチップは市販品として入手できます。 特に、大規模な組織向けに設計された
Bitfury Tardisマイナーが付属しています。 Tardisでは、5〜8枚のボードが適合し、1秒あたり最大80テラヘッシュを計算できます。 このマイナーはアップグレードできます-将来、インストールされたASIC Clarkeは新しいチップに置き換えられます。
これは、新しいチップの概念を紹介する短いビデオです。