ビットコインを安全に管理するにはどうしたらいいでしょうか?

ビットコインを溜めておく財布をウォレットと言います。ウォレットは大きく分けて6つあります。(1)デスクトップ上に保管するソフトウェアウォレット、(2)Web上に保管するWebウォレット、(3)スマートフォン上で保管するスマホ・ウォレット、(3)物理的な機器で保管するハードウェアウォレット、(4)物理的な鉄やメタル・プラスチックに保管する物理ウォレット、(5)紙で印刷し保管するペーパーウォレットなどがあります。

多額保管用と少額保管用で分けるといいかもしれません。手軽に送金したり、お店で使いたいという場合は、グリーンアドレスやブレッドウォレットなどのスマホ・ウォレットが使いやすいと言われています。利便性が高いのでホットウォレットと呼ばれています。
高いセキュリティーを得るには、ハードウェアウォレットが良い保管先になります。TREZOR(トレザー)もしくはLedger Nano S(レジャーナノエス)などがあるそうです。ハードウエア・ウォレットをパソコンに差し込んで、取引をします。普段はネットと切り離されているので、コ-ルド・ウォレットと呼ばれています。
取引所ではビットコインをWeb上に保管するWebウォレットを使うことになります。取引を行うための銀行口座が必要です。

なぜビットコイン相場は値動きが大きいのでしょうか?

一時150万円/BTCに迫ったビットコイン価格ですが、7月16日16時現在は115万円前後で推移しています。ビットコインの価格変動が大きい理由には、複数の要因が考えられます。

<ビットコインの価格変動が大きい理由>

(1) ビットコインの市場規模が小さい。
市場参加者が増えて取引量が増えれば、価格変動がだんだん小さくなる可能性があります。株に較べるとビットコインの市場規模はまだ小さいので、市場参加者に機関投資家のようなプロが少ないです。プロの冷静な判断がないので、価格が変動しやすいと考えられます。
2017年12月、米大手先物取引所であるCMEに、ビットコインの商品先物が上場しました。CMEは先物取引で世界最大規模を誇っており、機関投資家などの大口資金が徐々にビットコインに流入しています。

(2) 売買手数料が安く、小規模投資が可能である
株は100万円単位の資金が必要ですが、仮想通貨は100円もしくは500円から購入できます。ビットコインは売買手数料が安く、少ない資金で売買が可能なので、市場参加者に投資経験の少ない人が多いようです。取引所の不始末によるビットコインの紛失事件などが時々起こります。人々は、こうした事件情報にも敏感に反応して、売買を行うので、価格変動が大きくなります。
日本の20〜40代の若者の人口は約4500万人です。米DataLightが取引所トラフィックデータからまとめた調査(4月29日発表)によると、610万人の利用者の9割が40代以下だそうです。つまり若者の10人に1人が仮想通貨の取引経験があることになります。ビットコインは若い人たちの最初の投資経験になりがちです。購入の目的は長期保有(70%)であり、決済手段(19%)や送金手段(13%)は一部に留まっています。

(3) 株のように価格変動幅が決められていない
行き過ぎた価格変動を防ぐため、株価は一日の変動幅が15%以内に決められています。一方ビットコインは、変動幅の制限がなく、需給に応じてどこまでも変動できます。

(4)国家がビットコインを法規制する可能性がある
ビットコインは、国家の保証がない通貨です。日本ではビットコインは電子資産として認められていますが、ロシアのようにビットコインを禁止している国もあります。ある国家がビットコインの取引を禁止すると、市場参入者が減るので、ビットコインの価格は低下します。米ドル決済を嫌って、仮想通貨決済を検討している国もあります。そういう国が増えると、ビットコインの価格は上昇します。

(5)ビットコインには中央管理者がいない
ビットコインのプログラムを修正・改善しようという場合に、意見の相違や混乱が起こる可能性があります。ビットコインの将来に対して悲観的な見方が出てくると、価格が乱高下しやすくなります。

(6)政治的な混乱時の退避先資産に利用される
ビットコインは、自国通貨の下落に対する逃避先として、買われることがあります。ギリシャがEU離脱を試み始めた(Grexit)2013年にビットコインは大きく上昇し、Brexitが決まった2016年にもビットコインは2倍に上昇しました。最近の上昇は、米中貿易摩擦の結果、人民元は対ドルで下落しており、安全資産を求める中国人投資家が資産をビットコインに変えているとの見方があります。従来は退避先資産として、金が一般的でしたが、”デジタルゴールド”として、一時的にビットコインが買われることがあります。

どのようにしてビットコインの価格は決まっているのでしょうか?

ビットコインの取引所において需要と供給の市場原理によってビットコインの価格は決まっています。ビットコインが欲しい人が増えて、買い注文が増加すると、取引所は、その買いに見合うだけの売り注文を受けるために、ビットコインの価格を引き上げます。価格が高くなると、売りたい人が増えて、売買取引が成立するからです。


 2017年10月には1BTCが50万円前後でしたが、12月には200万円を超えています。わずか2か月間で4倍以上値上がりしました。株価は会社の業績によって変化しますが、ビットコインはただのデ-タであって、業績はありません。ビットコインの価格変動は、純粋に需給によって引き起こされます。

ビットコインの社会的デメリットはどのようなものでしょうか?

ビットコインのデメリットは、(1)価格変動が激しい、(2)支払いできる場所が少ない、(3)盗難に遭う、(4)決算処理が遅い、と言ったことが挙げられます。

価格変動に関しては、政府の規制が入るかもしれません。政府の規制が入ること自体が、価格の暴落を招くことも考えられるので、慎重な対応が必要です。急激な価格変動が抑えられれば、ビットコインで支払い可能なお店が増えると思われます。政府の取引所に対する認可を厳しくすることで、盗難は減ると思われます。ビットコインの決算処理には10分もかかるので、高速な株取引などには使えません。


他に懸念されていることは、ブロック計算に要する電気代が膨大なことです。それはデンマ-ク一国の電気代に相当します。金の発掘でも、重機代、電気代、人件費がかかります。しかし金の発掘とは異なり、ブロック自体やブロックの発掘には実質的価値はありません。物理的には非常に無駄なことが行われているように見えます。私的ブロックチェーンを増やすことで電気代を減らすことは可能です。

ビットコインの社会的メリットはあるのでしょうか?

ビットコインのメリットは、(1)直接送金が可能、(2)海外でも両替なしで使用できる、(3)自国通貨のリスク回避になる、と言ったことが挙げられます。つまり海外勤務や海外旅行をする場合にメリットがあります。自国通貨が不安定な国民が一時的に資産を防衛するのに使うことができます。海外で活動しない人には、あまりメリットが感じられないようです。


しかし重要なことは、ビットコインが実証したブロックチェーンの低価格かつ高信頼な電子システム技術が、従来のビジネスモデルを破壊し、AIやIOT技術と組み合わされて、様々な新規ビジネスを生成し、社会を一変する可能性があることです。
 

権力者がビットコインを排除する可能性はあるでしょうか?

日本ではビットコインが完全に排除される可能性は低いと思いますが、今後さらなる規制を受ける可能性は高いと思われます。理由はビットコインのデメリットが顕著になる可能性があるからです。例えば(1)ビットコインの乱高下や取引所の不正が若者に被害を与える(2)ビットコインが脱税に使われる(3)ビットコインが不法賭博に利用される、(4)日本の法定通貨を脅かす、ことが考えられるからです。

 ビットコインの購入者の多くは投資経験や仮想通貨の知識のない若者であり、価格変動の被害を受けやすいと思われます。ビットコインを安全な取引にするために、法規制をかける可能性があります。市場参加者がビットコインの法整備が進むことを歓迎すれば、ビットコインの価格は上がるかもしれません。そうでなければ暴落の危険性もあります。


ビットコインの収益は雑所得として申告することになっていますが、政府としては、ビットコインの収益に課税するのが難しいという問題があります。政府が取引所を通じて、脱税防止のため個人のビットコインの保有量を監視する可能性が考えられます。


インターネット上では、ビットコイン等の仮想通貨を使用するオンラインカジノが法の規制から逃れ、新しい娯楽として普及し始めているようです。日本人のビットカジノ利用者数は月間1万人を超えていると言われています。ビットコインが生活破綻や犯罪を引き起こす原因になるのは好ましくありません。


仮想通貨の価値が自国の通貨の価値より高くなってしまったら、日本国の金融システムが混乱し、日本円が無くなるかもしれません。これは政財界、役人の既得権益を損ないます。

仮想通貨で上げた利益は課税対象になるでしょうか?

なります。2017年4月1日に金融庁によって施行された、資金決済法改正により、仮想通貨で得た利益が課税対象となりました。ただし、所有したまま生じる価格の上昇で得られる含み益は課税の対象となりません。仮想通貨による利益が課税対象となるのは、購入時よりも時価が高い状態で、現金や他の仮想通貨に替えるか、商品を購入した場合です。なお現金に替えた場合は、時価そのものではなく購入時との差額による利益が雑所得にあたります。例えば、4BTCを200万円で購入し、0.5BTCを30万円で売却した場合、購入時の0.5BTCは25万円相当ですから、利益は5万円になります。

雑所得が20万円を超えると確定申告の対象になります。雑所得には、①他の所得と損益通算できない、②損失をくりこせない、③累進課税が適用される、といったデメリットがあります。正当な理由なく確定申告書を提出しなかった場合、無申告加算税として確定した税金の5〜20%の追徴税金のほか、期限からの経過期間に応じた延滞税が追徴課税されてしまいます。

ビットコインは通貨として認められているのでしょうか?

日本において、ビットコインは、外貨と同様に強制通用力がないため、民法402条に規定される通貨には該当しません。つまりお店で買った品物の代金をビットコインで支払うことはできません。またビットコインは、金融商品取引法上の有価証券にも該当しません。しかしマウントゴックス事件を受け、2016年5月の法改正により、ビットコインは電子マネーと同様、資金決済法の対象となりました。


2017年4月1日に金融庁によって施行された、資金決済に関する法律(資金決済法)2条5項では、ビットコイン(仮想通貨)とは、現金と同様に、『不特定多数の相手に対し、流通手段、支払い手段として使用可能』で、『電子的に価値を移転できる』ものと定義されています。つまりビットコインは電子的な通貨として認められています。そこには「本邦通貨及び外国通貨並びに通貨建資産を除く」との但し書きがあります。つまりSuicaなどの電子マネーは通貨建資産なので、ビットコインとは異なります。


法改正により、登録を受けた仮想通貨交換業者以外が仮想通貨交換業を行うことは禁止されました。その結果、海外のビットコイン事業者が、国内登録なく日本国内の者にビットコイン取引を勧誘することは禁止されています。


一般的に通貨が満たすべき条件は3つあります。それは(1)価値の尺度になる(2)価値の保存が可能である(3)決済(交換)の手段になる、ということです。問題は(3)です。資金決済法では、合意があれば仮想通貨が支払い手段として使用可能であることが認められています。つまり金融庁はビットコインをデジタル通貨として信頼できると判断したことになります。

法定通貨は、金本位制が廃止になった現在、政府や銀行などの発行元(中央管理者)への信頼によって価値が認められています。ビットコインは、ブロックチェーンという堅固で透明な電子システムへの信頼によって、価値が保証されています。2018年11月現在BTCの時価総額は13兆円を超えています。ビットコインは銀行や大企業と同程度の資産価値になっています。

ビットコインが中央管理者の権力なしに信頼を生成することに技術的に成功したことは画期的なことです。度々起こる不祥事は取引所の不十分なセキュリティ対策に起因するものです。この10年間ビットコインのシステムは、一度も止まることなく、稼働し続けてきました。

そもそもビットコインには価値があるのでしょうか?

ビットコインはデジタルゴ-ルドと呼ばれることがあります。しかしビットコイン自体はデ-タで、実用的な価値はありません。ブロックの生成計算自体にも価値はありません。ビットコインの価値はどこから出てくるのかが気になりますよね。一言でいえば、ビットコインの価値は、国に仮想通貨として認められており、取引所で法定通貨と時価で交換できることにあります。ビットコインには発行上限があるのでインフレによる価値の減少が起きない利点はあります。


 ブロックの採掘費用には、計算機代、電気代、冷却装置代、人件費、建物土地代などが含まれています。発掘費用は法定通貨によって賄われます。従って報奨金として新規発行されるビットコインの法定通貨との交換価値は発掘費用によって決まります。発掘費用と得られたビットコインの量がビットコインの原価を決めます。しかしビットコインの交換価値は市場で決まります。

ブロックチェ-ンにはどんなインパクトがあるのでしょうか?

ブロックチェーンのインパクトは、ブロックチェーンが低価格かつ高信頼な電子システム技術であることにより、従来のビジネスモデルが壊れること、様々な応用により新しいサ-ビスが生じて、社会を一変する可能性があることです。

(1) ゼロダウンタイム
ブロックチェ-ンは停止しないので、システムダウン対策費がかかりません。参加している数千台のコンピューター全てが停止しない限り、1台でも支払い要求が届けば処理されるからです。従来の金融システムでは、メインコンピュ-タがダウンしても処理が進むように、高価なバックアップシステムやダブルシステムを組む費用が発生していました。

(2)ブロックチェ-ン処理
ブロックチェ-ン処理では、ブロック内の支払処理が確定しない間に次のブロックが作られるため、一取引当たりの処理の費用が極めて小さい特徴があります。従来の金融システムでは、メインコンピュ-タで大量の処理を順番に行うので処理費用がかかります。

(3)ハッシュによる高セキュリティ
ブロックチェ-ンは、データを改ざんできないので、セキュリティ費用が掛からないです。インタ-ネット上に全てをさらけ出しても安全です。従来の金融システムでは、データが改ざんされないように、ソフトとハ-ドを堅固に守る費用が発生していました。

(4)非中央管理性
ブロックチェ-ンは、国が破綻しても、破綻しません。国家が破綻すると、法定通貨は価値を失いますが、ビットコインは価値を失いません。ビットコインは誰でも買えます。キプロスで金融危機があったときビットコインが買われました。

(5)分散台帳システム
安価なシステム構築が可能なので、従来かかっていた管理費などのコストを削減することができます。ビットコインは、送金の手数料が殆どかかりません。

リップル(Ripple)とは何でしょうか?

リップルとは、米国のRipple社.によって開発された送金・決済システムであり、そこで使われる仮想通貨の名称でもあります。リップルの通貨単位はXRPであり、時価総額は1兆4000億円で、ビットコイン、イーサリアムに次いで第3位となっています。リップル社がリップルネットワークの開発およびXRPの発行を行っており、2018年4月時点、世界各国で100以上の金融機関や政府機関と提携しています。


今日、世界中で155兆ドルが国際間送金されています。各国の通貨を一旦XRPに換金して送金することでスムーズに国際送金が実現できます。リップルは国際送金において、通貨の仲立ちをするので、ブリッジ通貨と呼ばれています。銀行が1~3日、4,000円かかる送金処理をリップルは3秒、10円で行います。ビットコインより手数料がかからない特徴があります。リップルはGMOコインが販売を行っています。

リップルはビットコインと同様に分散型台帳技術を利用しますが、二重支払いの検知をプルーフ・オブ・ワーク・システムではなく、独自に開発されたコンセンサス・システムによって行います。これによりビットコインの致命的な弱点であるスケーラビリティや消費電力といった問題を克服したと述べています。ビットコインでは平均10分かかっていた決済をリップルでは数秒で行うことができます。リップルの発行上限は1000億枚です。リップルはビットコインの暴落とともに値を下げています。

スケーラビリティ問題とは何ですか?

スケーラビリティ問題とは、ビットコインを送金や決済手段として活用するユーザが増加し、取引データが増加したことで、ネットワークに混雑が生じ、送金の遅延や送金手数料の高騰が発生する問題のことです。ビットコインは約10分間に1MB分の取引しか承認することができません。それ以上の取引が発生してしまうと、スケーラビリティ問題が発生します。

それに対してはSegwit(セグウィット)やサイドチェーンやライトニングネットワークなどの対応策が提案されました。Segwit案を主張した「ビットコインコア派」と、ブロックサイズの拡大案を主張した「ビックブロック派」が対立し、2017年8月1日に、Segwitを実装した現在のビットコインと、ブロックサイズを拡張したビットコインキャッシュに分裂しました。その他にもビットコインゴールド(2017年10月24日)、ビットコインダイヤモンド(2017年11月25日)、スーパービットコイン (2017年12月12日)、ビットコインウラニウム(2017年12月31日)、ビットコインプライベート (2018年3月1日)などが分裂して誕生しています。分裂したビットコインの中には詐欺であることが分かったものもあります。

POW (proof-of-work)とは何でしょうか?

ブロックチェーンの特徴の一つは、分散型POWという合意形成アルゴリズムが採用されていることです。POWとは、サービスの利用者に一部の処理作業を要求することで、サービスの不正利用を抑止する経済的手段のことです。分散したコンピュ-タの台帳にブロックを追加するには、全員からブロック追加の合意を得なければなりません。ブロックチェ-ンでは、継続するブロック数が一番多いブロック系列が自動的に選ばれるというアルゴリズム(ル-ル)によって、コストをかけずにブロックが追加されます。ブロック追加のための管理者を置く必要がないので、分散システムが保たれます。銀行などの中央管理者が担っていた取引データの検証・承認作業を、ブロックチェーンでは、不特定多数のマイナ-が行う仕組みになっています。適正なブロックを他のマイナ-に先駆けて追加するには高速で膨大な計算が必要です。


ブロックは10分以内に1個の速さで追加できるように作成難易度が自動的に調整されます。市場においてビットコインの法定通貨との交換価値が上がれば、報酬が増えるので、マイナ-は増えます。マイナ-が増えると、アルゴリズムは、ブロック作成の難易度をあげて、採掘費用を上げ、マイナ-の参入を抑制します。
ビットコインの総発行量は2100万BTCと決まっているため、いつかはマイニングの報酬はなくなり、その後の報酬は取引の手数料だけになります。取引手数料が高くなると、ビットコインの乱高下が収まるかもしれません。果たして手数料だけでブロックチェ-ンシステムが保たれるかが気になります。

ブロックにはどのようなことが書かれているのでしょうか?

図2にビットコインのブロックの内容例を示します。block_hashはこのブロックの64桁のハッシュ値です。trueなのでメインチェーンです。ブロックのバージョンは1です。prev_blockは前のブロックのハッシュ値です。merkle_rootはマークル・ルートのハッシュ値です。これは、次々と2つの取引情報のハッシュ値を連結させた数値のハッシュ値を計算して、最終的に得られた値です。Timestampはブロックが生成された日時(UTC)です。Bits=486604799はマイニングの難易度を表しています。Nonce=2,083,236,893はナンス値で20億もの値になっています。これくらい計算しないと適合するブロックは見つからないということです。Txnumはトランザクションの個数です。total_feesは手数料の合計(satoshi単位)です。1サトシは百万分の1BTCです。tx_hashesは、ブロックに含まれるトランザクションIDの配列です。2019年7月17日現在、1BTCは118万円で取引されています。

図2 ビットコインのブロックの内容例

図3にビットコインのトランザクションの内容例を示します。tx_hashはトランザクションのハッシュ値です。block_height=370470はこのトランザクションを含むブロックの高さを表します。含まれていない場合は、-1となります。Confirmed=325は確認された回数、fees=20000は手数料(satoshi単位)を表します。Size=257はサイズが257bytes、received_dateは受取日時(UTC)を表しています。Version=0はトランザクションのバージョン、lock_time=0ロックタイムです。
Inputsには入力情報であるTxinの配列が書かれています。prev_hashはこのTxinを出力した前のトランザクションの64桁のハッシュ値です。prev_index=1は前のトランザクションにおけるTxoutのインデックスです。Value=350,080,000 Satoshiのビットコインの数量を他のアカウントに入力したことを示しています。1Satoshi==0.00000001BTCなので、3.5008BTCの取引になります。Scriptは署名スクリプト(16進数表記128桁)、 Addressはビットコインアドレス(16進数表記64桁)です。Sequence=4294967295はシーケンス番号です。
Outputsには出力情報であるTxoutの配列が書かれています。第一の取引には、Value=60,000satoshi=0.00060BTCのビットコインの数量を取り出したことを示しています。取り出したスクリプトとビットコインアドレスが書かれています。第二の取引には、Value=350.000,000satoshi=3.50BTCのビットコインの数量を取り出したことを示しています。同様に取り出したスクリプトとビットコインアドレスが書かれています。手数料0.0002BTCと合わせて、3.5008BTCの取引になります。

図3 ビットコインのトランザクションの内容例

デジタル署名とはどのようなものでしょうか?

デジタル署名とは、送信されてきたデータが間違いなく本人のものであるのかを証明するための電子認証技術です。ビットコインでは、送金者が秘密鍵の持ち主であり、取引が偽造・改ざんされていないことを、RSA暗号を用いたデジタル署名で証明します。図1にRSA暗号を用いたデジタル署名の仕組みを示します。

デジタル署名では送信者が公開鍵と秘密鍵を生成します。送信者は、あらかじめ受信者に公開鍵を送付し、受信者は公開鍵を入手します。送信者が受信者に送付する文書データを作成し、文書データのハッシュ値を算出します。そのハッシュ値を、秘密鍵を用いて暗号化します。データと暗号化したハッシュ値を署名として送信します。

受信者は、暗号化されたハッシュ値を、送信者から入手した公開鍵を用いて復号します。受信者は、受信データを、送信者と同じハッシュ関数を使用して、ハッシュ値を算出します。復号されたハッシュ値と、算出されたハッシュ値を比較して一致すれば、正しい文書データだと判断できます。同時に暗号化されたハッシュ値が復号できたことより、送信者の本人確認ができます。

ハッシュ値とは何でしょうか?

ハッシュ値は文書情報を32桁あるいは64桁の16進数で表したものです。16進数では、0,1,2、・・・8,9,a,b,c,c,e,fの16個の数字を使います。2^4=16より、4bitで1桁の16進数を表します。これまでにある文章や数値からハッシュ値を生成するアルゴリズムが開発されてきました。図1にハッシュ値を生成するアルゴリズムとその概要を示します。128bitのMD5なら32桁の16進数を出力します。

セキュリティを高めるためにハッシュ値を生成するアルゴリズムは、年々大きなハッシュ値を扱えるようになっています。SHA-256は256bitの値を生成します。256bitは64桁の16進数に対応します。文書情報は情報の大きさに依らず64桁の数値で表されます。つまり「a」一文字でも、SHA256では、
5AAE1052988B48F4B98898F37F0BD0E47C82AEA33873A3F1DAF32CC5A5790D22
の64桁の数値で表されます。「b」一文字の場合は、
DDB26399963B9A74D781DE39F42CCBB292C922944F590D21F1106A45CC89E382
となり、aとは全く異なるハッシュ値に変換されます。
A4で5ペ-ジの30,418 バイトのワード文書をSHA256で変換するとハッシュ値は
1FA7C665D0DB39083ED8401AD18446FC3E17C2CCA8C835E7C96E37EF2A916871
となりました。「。」を削除するとサイズは8bit増えて、30,426 バイトになり、3EAF2047CA26C79B47AC45B3CFE16A9DDEAE9ACF3928E373E83E74356098342E
と全く異なったハッシュ値になります。このように文書情報の一部が変更されると、ハッシュ値は全く異なる値になりました。従って文書のハッシュ値を記録しておくことで、文書の改ざんをチェックできます。ハッシュ値は2^256種類の有限の値なので、稀に異なる文書が同じハッシュ値になる可能がありますが、その可能性は極めて小さいと考えられています。

・ハッシュ値を簡単に得る方法
7-Zip(https://sevenzip.osdn.jp/)は高圧縮率の無料のファイルアーカイバ(圧縮・展開/圧縮・解凍ソフト)です。ZIP形式には、ファイルを1つにまとめて圧縮するだけでなく、パスワードを付けて内容を保護する暗号化機能も用意されています。7-Zipをインストールすると、エクスプローラの右クリックメニューに新しく[CRC、SHA]という項目が追加されます。ハッシュ値を計算したいファイルを選んで右クリックし、ポップアップメニューからハッシュアルゴリズムを選択すると、そのファイルのハッシュ値が計算され、表示されます。7-Zipは1MBの軽いソフトです。

ブロックチェ-ンはどのようなものなのでしょうか?

ブロックチェ-ンとは、ビットコインなどに用いられる取引情報などが記録されたブロックと呼ばれるファイルを1次元的につなげた台帳のことです。ブロックチェ-ンシステムとは、ブロックを増やしながら、複数のコンピューターでひとつの台帳を共有管理するシステムです。ブロックを追加する主体をマイナ-と言います。マイナ-が適正なブロックを追加すると報酬としてビットコインが支払われます。

ブロックにはハッシュ値があり、ハッシュ値がある条件を満たすときに、ブロックを追加できます。具体的には、N番目のブロックのハッシュ値は、ひとつ前のブロックのハッシュ値と取引時間とN番目のブロック内の情報のハッシュ値とナンス値を連結した数値のハッシュ値になります。但し、ナンス値は、ブロックのハッシュ値がある数値より小さくなる設定条件を満たすように決定されます。マイナ-は高性能のコンピューターを用いて、他のマイナ-より早く適合するブロックを発見・追加することで、報酬を得ます。

最初のブロックがネットワ-クに放たれたのは2009年1月3日です。現在のブロックは585,650個目が作成されています。ブロックは10分以内に1個の速さで追加できるように難易度を自動的に設定しています。現在は平均8分に1個の割合で生成されています。

BTCの発行上限は2100万枚に決められています。4年に一度のペースでブロックの報酬が1/2になります。これは短い期間の発行枚数急増によるインフレにより、ビットコインの価値が急落してしまう事態を避けるために考えられたものです。初期の発行枚数は50BTC(1回)でしたが、開発から10年が経った現在では、2回の半減を経て発行枚数が12.5BTCになっています。現在の120万円/BTCでは、1ブロック1500万円の報酬が得られます。

RSA暗号とはどんな暗号でしょうか?(2)

p、qが小さい素数の場合に、公開鍵と秘密鍵を求めてみましょう。

(2)N=33(p=3、q=11)の場合
 N=p×q=3×11と因数分解できる場合を考えます。(p-1) (q-1)=2×10=20です。N=33を法とする場合、剰余値には0~32までの33個の数しか現れません。表2にべき乗の法を33とした値を示します。2と10の最小公倍数(LCM)は10ですから、
・  n・LCM+1=11、21、31、41、51、61、・・・(n=1.2.3.・・・)
となります。21=3×7、51=3×17、91=7×13、111=3×37ですが、鍵の候補は、20以下の自然数なので、
・ (公開鍵、秘密鍵)=(3、7)、(3、17)、(7、13)
となります。公開鍵と秘密鍵を入れ替えても構いません。例えば、平文値が17の場合、公開鍵3を用いて17を法33の下で3乗して暗号値29を得ます。復号時には、秘密鍵7を用いて、29を法33の下で7乗すると元の値17に戻ります。3乗して7乗するので、平文値mが21乗され、元の値mに戻ります。

表2 べき乗の法を33とした値

(3)N=35(p=5、q=7)の場合
N=p×q=5×7と因数分解できる場合を考えます。(p-1) (q-1)=4×6=24です。N=35を法とする場合、剰余値には0~34までの35個の数しか現れません。表3にべき乗の法を35とした値を示します。4と6の最小公倍数(LCM)は12ですから、表3の暗号値は周期12で変化していることが分かります。
・  n・LCM+1=13、25、37、49、61、73、85、97・・・(n=1.2.3.・・・)
となります。鍵の候補は、24未満の自然数なので
・ (公開鍵、秘密鍵)=(5、5)、(7、7)、(5、17)(11、11)(7、19)
となります。公開鍵と秘密鍵を入れ替えても構いません。

表3 べき乗の法を35とした値

(4)N=85 (p=5、q=17)の場合
N=p×q=5×17と因数分解できる場合を考えます。(p-1) (q-1)=4×16=64です。N=85を法とする場合、剰余値には0~84までの85個の数しか現れません。表4にべき乗の法を85とした値を示します。4と16の最小公倍数(LCM)は16ですから、表4の暗号値は周期16で変化していることが分かります。
・  n・LCM+1=17、33、49、65、81、97、113、129・・・

となります。鍵の候補は、64未満の自然数なので
・ (公開鍵、秘密鍵)=(3、11)、(7、7)、(5、13)、(3、43)、(5、29)、(7、23)、(3,59)
となります。公開鍵と秘密鍵を入れ替えても構いません。実際の暗号にはもっと大きな数が用いられます。

表4 べき乗の法を85とした値

(5)N=20190707(p=4567、q=4421)の場合
2019年の七夕の日にちなみ20190707という比較的大きい数字を考えましょう。
・ N=20190707=4567×4421
と素因数分解できます。つまりN=20190707、p=4567、q=4421です。
・ (p-1)(q-1)=4566×4420=20181720

  (=2 * 2 * 2 * 3 * 5 * 13 * 17 * 761)
を法(mod)とする剰余計算を行います。剰余計算とは、法で割った余りを与える計算です。
法(p-1)(q-1)と互いに素な自然数C(公開鍵)に対して、
・ C×D≡1 mod (p-1)(q-1) かつ 0≦D≦(p-1)(q-1)
を満たす数D(秘密鍵)が存在します。例えばC=707(=101×7)に対して、
・ 707×D≡1 mod 20181720 かつ 0≦D≦20181720
なる自然数Dは997525043です。なぜなら
・ 707×997525043=705250205401
・ 20181720×34945=705250205400
より
・ 707×997525043=20181720×34945+1
が成り立っているからです。受信者は、(N、C)=(20190707、707)を公開し、D=997525043は秘密鍵として非公開にします。送信者は、送りたいメッセ-ジを数字m(0≦m≦N)に変換し、公開鍵Cを用いて
・ K=m^C mod N
なる暗号文Kを送信します。暗号文Kは公開鍵から復号することはできません。受信者は、秘密鍵Dを用いて暗号文Kを復号し
・ m=K^D mod N
元のメッセ-ジmを得ることができます。代入すると
・ (m^C mod N)^D mod N=m^CD mod N=m ・・・(3)
となります。最後の等式(3)は、次に示すオイラ-の定理より、
・ CD≡1 mod (p-1)(q-1) かつ 0≦D≦(p-1)(q-1)
を満たす秘密鍵Dであれば、成り立ちます。Nを因数分解し、pとqを得られれば、(p-1)(q-1)を法として、公開鍵Cに対する秘密鍵Dを求めることができます。

(6)オイラ-の定理とは
オイラ-の定理とは、正整数m、Nに対して、m、Nが互いに素であるとき、
・ m^φ(N)≡1 mod N ・・・(4)
が成り立つというものです。ここでオイラー関数φ(N) は「Nより小さい正の整数のうち、Nと互いに素な数の個数」を表す関数です。素数Pの場合φ(P)=P-1となります。
・ φ(N)=φ(pq)=(p-1)(q-1)
となります。(2)式をv乗して、両辺にmをかけると
・ m^(φ(N)v+1)≡m mod N ・・・(5)
(3)と(5)を比較すると
・ CD=φ(N)v+1
を満たす整数Dとvが存在しれば、復号できることが分かります。一次不定方程式の整数解の定理により、Cとφ(N)が互いに素であれば、整数Dとvが存在します。もしDが負なら、
・ C(D+kφ(N))-φ(N)(v+kC)=1
と変形し、十分大きい数kを用いて、Dを正数D+kφ(N)に置き換えることができます。

RSA暗号とはどんな暗号でしょうか?

近年、ビットコインなどの暗号通貨が登場してきました。こうしたものはRSA暗号や楕円曲線暗号などの暗号技術に支えらえています。RSA暗号とは、ロナルド・リベスト、アディ・シャミア、レオナルド・エーデルマンの3人の暗号研究者が1978年に発明した公開鍵暗号の一つです。これは桁数が大きい合成数Nをp×qと素因数分解するのが困難であることを利用した暗号です。p、qが小さい素数の場合に、公開鍵と秘密鍵を求めてみましょう。

・暗号とは
 メッセ-ジは文章で書かれていますが、文字と空白を数字に対応させることで、メッセ-ジ(平文)を一つの大きな自然数mに対応づけることができます。公開鍵暗号とは、第三者が読めないように、公開鍵を用いて数mを別の数値Mに変換して送信する技術です。受信者は、秘密鍵を用いて暗号文Mを元の平文値mに復号します。公開鍵暗号では、公開鍵から秘密鍵を推定できないように工夫されています。

・剰余とは
暗号化には平文mより大きな数を法とする剰余計算を用います。剰余計算とは、ある数(法)で割った余り(modulo)を与える計算です。例えば法13における50の剰余は、50を13で割った余り11となります。これを
・ 50 mod13=(3×13+11)mod13=11
と表記します。剰余計算により、暗号文Mが法より大きくなるのを防ぎます。
剰余計算には
・ A×B mod C=(A mod C)×(A mod C)mod C
といった性質があります。例えば、A=50、B=41、C=13の場合
・   41 mod 13=(3×13+2)mod13=2
ですから、
・ 50×41 mod13=(50 mod13)×(41 mod13)=11×2 mod13=(13+9) mod13=9
となります。こうした規則を用いると、計算量を減らすことができます。

・オイラ-数φ(N)とは
Nより小さい正の整数のうち、Nと互いに素な自然数の個数をオイラ-数φ(N)と言います。N=10の場合、10より小さく、10と互いに素な数は、{1、3、5、7}の4つなので、φ(10)=4となります。素数pの場合、pより小さく、pと互いに素な数は{1、3、5、・・・p-1}のp-1個なので、φ(p)=p-1となります。pと異なる素数qを用いて、N=pqと素因数分解できる場合は、{1、3、5、・・・p-1}×{1、3、5、・・・q-1}によって生ずる(p-1) (q-1)個の数はいずれもNと互いに素であるので、φ(N)=(p-1) (q-1)となります。
正整数m、Nに対して、m、Nが互いに素であるとき、
・ m^φ(N)≡1 mod N ・・・(1)
が成り立ちます。これをオイラ-の定理といいます。ここでm^3=m・m・mの意味です。N=pqの時は、Nに素な数mに対して
・   m^(p-1) (q-1)≡1 mod pq ・・・(2)
が成り立ちます。法pqの下では、平文mの指数を増やしていくと、(p-1) (q-1)乗で元に戻る周期的な性質があることを示しています。RSA暗号はこの性質を用いて、作られています。

(1)N=21(p=3、q=7)の場合
 N=p×q=3×7と因数分解できる場合を考えます。(p-1) (q-1)=2×6=12です。Nを法とする場合、剰余値には0~20までの21個の数しか現れません。表1にべき乗の21を法とした値を示します。

表1  べき乗の21を法とした値

これは左端のある数m(1≦m≦20)に対して、1乗、2乗、3乗、・・・26乗した値に対して法21をとった結果を表にしたものです。法21の下では、7乗、13乗、19乗、25乗すると、1~20の値が元の値に戻ることが分かります。この表から、指数が6増加すると周期的に同じ値を繰り返すことが分かります。つまり(2)式
・ m^6 mod21≡1
が成り立っていることを示しています。周期6は、(p-1)と (q-1)の最小公倍数(LCM)になっています。平文値mがべき乗で同じ値になるのは、指数がn・LCM+1乗(n=1,2,3,,,)になるときです。つまり、7、13、19、25、31、37、・・・乗の場合です。25は5×5と表せるので、公開鍵を5、秘密鍵を5にすればよいことが分かります。つまり平文値mを公開鍵で5乗して暗号化し、秘密鍵で5乗すれば復号できます。秘密鍵d=5は、(2)式
・ 5×d mod 6 ≡ 1
を満たしています。なぜなら、
・ 25 mod 6 =(6×4+1) mod 6 ≡1
だからです。表1で、例えば平文値が4の場合、4を5乗すると、暗号値は16になります。さらに5乗すると暗号値16は元の平文値4に復号されます。mがどんな値であっても
・ (m^5)^5 mod 21=m^25 mod 21≡(m^6)^4・m mod 21≡m
が成り立つので、mは25乗すると元に戻ります。