「半導体・チップ」カテゴリーアーカイブ

半導体


半導体とは?

半導体(はんどうたい)は、電気を「通しやすくもあり、通しにくくもある」という特別な性質を持つ材料です。電気を通す「金属」と、電気を通さない「絶縁体(ぜつえんたい)」の2つの特性を持つ物質。この性質により、金属のように電気を流しやすくもでき、絶縁体のように電気を流れにくくもできます。半導体の特性は、温度や不純物の添加によって調整できるため、コンピューターやスマートフォン、テレビといった日常の電子機器に欠かせない存在です。このため、半導体は電子機器の心臓部とも言われ、私たちの生活に深く関わっています。

半導体の特徴:電気伝導性の調整

半導体のすごいところは、温度や光(ひかり)によって電気の通りやすさが変わることです。例えば、半導体の温度が上がると、電気が流れやすくなり、温度が低くなると流れにくくなります。光が当たると電気が流れやすくなることもあり、光センサーなどの電子部品に使われることもあります。

また、半導体に「ドーピング」という技術を使うことで、電気の流れをもっと細かく調整できるようになります。ドーピングとは、半導体に少しだけ別の材料(ざいりょう)を加えて、電気を通しやすくしたり通しにくくしたりする技術です。

  • 電子:電気を運ぶ小さな粒子(粒)のこと。ドーピングで電子の数を増やすと、電気が流れやすくなります。
  • ホール:電子が足りない場所で、電気を運ぶのに役立ちます。ドーピングでホールを増やすこともでき、これによって電気の流れをコントロールできるようになります。

P型半導体とN型半導体

ドーピングの方法によって、半導体には「P型」と「N型」という2種類ができます。

  • P型半導体:ホールが多く、電子が少ない半導体です。電気を流すときにホールが動きます。
  • N型半導体:電子が多く、ホールが少ない半導体です。電気を流すときに電子が動きます。

PN接合

このP型半導体とN型半導体をくっつけたものを「PN接合」といいます。PN接合には次のような特徴があり、この特徴がいろいろな電子部品の基本になります。

  1. 一方向にだけ電気を流す:PN接合は、電気を一方向にだけ流す性質があります。例えば、P型からN型に向かっては電気が流れますが、逆にN型からP型には流れません。この性質を利用した部品を「ダイオード」といいます。ダイオードは、電気の流れを整えたり、逆流を防いだりするのに使われます。
  2. 電流の増幅(ぞうふく)ができる:PN接合をさらに工夫して、P型とN型を交互に組み合わせると「トランジスタ」という部品ができます。トランジスタは、弱い信号を強くする働きがあり、ラジオやコンピューターなどの電子機器の中でとても重要な役割を果たします。

半導体の重要性

半導体は、電気の流れをコントロールできるため、コンピューターのような複雑な機械を動かすことができます。PN接合の仕組みやトランジスタの技術を使って、私たちが普段使っているスマートフォンやゲーム機、家電(かでん)など、生活の中のたくさんの電子機器が便利に動いているのです。

要するに、半導体は「電気を流したり止めたり」することができる特別な材料で、私たちの生活を支える重要な技術なのです!

RISC Zeroとは?

RISC Zeroは、
zk-STARKs(Zero-Knowledge Scalable Transparent Argument of Knowledge)とRISC-Vマイクロアーキテクチャに基づいたゼロ知識の検証可能な汎用コンピューティングプラットフォームです。

ゼロ知識証明とは、ある当事者・証明したい人(Prover・以下:プロバー)が確かめたい人(Verifier・以下:ベリファイア)に、詳細を一切明かすことなく、何かが真実であることを納得させる手法です。RISC Zeroの場合、プロバーは特定のコードを正しく実行したことをベリファイアに示すことができますが、その際、コードの出力だけをベリファイアに公開し、入力や実行中の状態は一切明かしません
ゼロ知識性があるため、個人情報などのプロバーの特定情報が漏れることはない。

このコードは、zkVMと呼ばれる特別な仮想マシン上で実行されます。
RISC Zero zkVMは小さなRISC-Vコンピュータをエミュレートしており、RISC-V向けのコンパイラツールチェーンが存在する限り、任意のプログラミング言語で書かれたコードを実行できます。現在、Rust、C、およびC++のSDKサポートが存在します。

処理の概要
証明対象となるコードは、実装された言語からメソッドにコンパイルされます。メソッドは、メソッドのコードを実行する特別なエントリーポイントを持つRISC-V ELFファイルとして表現されます。また、メソッドごとにそのイメージID(ELFファイルの特殊な暗号ハッシュ)が計算され、検証に必要となります。
Executable and Linkable Format (ELF) は実行ファイルおよびオブジェクトファイルのためのファイルフォーマットである。コンテナフォーマットの一種。

次に、ホストプログラムが実行され、zkVM内でメソッドを証明します。zkVM内で動作する論理的なRISC-Vマシンをゲストと呼び、zkVMを実行するプロバーホストと呼びます。メソッドの実行中、ゲストホストは通信できますが、ホストはゲストの実行を変更することはできません。そうすると、生成される証明が無効になります。実行中に、ゲストコードは計算の公式な出力を表すジャーナルと呼ばれる特別な追記専用ログに書き込むことができます。

メソッドが正しく終了すると、正しい実行の証明としてレシートが生成されます。このレシートは、実行中に書き込まれたジャーナルと、シールと呼ばれる不透明な暗号データの2つの部分で構成されます。

ベリファイアは、このレシートを検証し、ログを調べることができます。ジャーナルシール改ざんされていた場合、レシートは検証に失敗します。また、ジャーナルの出力が正しい実行のものでない限り、有効なレシートを生成することは暗号的に不可能です。要するに、レシートは正しい実行のゼロ知識証明として機能します。

プロトコルがゼロ知識であるため、ベリファイアは、ジャーナルに書き込まれたデータやコードの正しい実行から推測されること以外には、ホストとゲストの間でやり取りされる詳細な実行やデータについて何も推測することができません。