かならずよんで ね!

ブロックチェーン

Blockchain


池田光穂

ブロックチェーンとは「公開された台帳で取引などの 記録を行なう仕組みである」(野口悠紀雄 2017:40)。サトシ・ナカモトのビットコイン論文によると「信用・信頼に依存しない」情報の伝達手段が、ブロックチェーンである

「ブロックチェーン(英語: Blockchain)とは、分散型台帳技術、または、分散型ネットワークである。ブロックチェインとも。ビットコインの中核技術(ナカモト・サトシ= Satoshi Nakamotoが 開発)を原型とするデータベースである。ブロックと呼ばれる順序付けられたレコードの連続的に増加するリストを持つ。各ブロックには、タイムスタンプと前 のブロックへのリンクが含まれている。理論上、一度記録すると、ブロック内のデータを遡及的に変更することはできない。ブロックチェーンデータベースは、 Peer to Peerネットワークと分散型タイムスタンプサーバーの使用により、自律的に管理される」- Wiki,ブロックチェーン。

すなわち、野口によるとブロックチェーンの特徴は次 の4つであ る:「(1)記録が公開されること、(2)分散的な仕組みで運用さ

れ、管理者が存在しないこと、(3)そのため、運用 コストが低く、システムがダウンしな いこと、(4)事業主体である組織を信頼する必要がないこと」(野口 2017:40)。だが、野口のこのような凡庸な説明では、ブロックチェーンの革新的なところがみえにくい。ナカモト・サトシ(Satoshi NAKAMOTO)以前には、正確なコミュニケーション(情報伝達手 段)には、ノイズのない(あるいは少ない)伝達こそがコミュニケーションの質(=正確さや忠実さ=つまりフィデリティが含まれる)を保証するというテーゼ があったからだ。その意味で、信頼は、リスクを評価する認識能力だと、 言われてきたからである。

ドン・タプスコットら(2016)に言わせれば、そ れは「信頼のプロトコル」ということになる。——逆説的だがナカモトは ビットコイン論文の基幹であるブロックチェーンは「信頼に依存しない電子取引」によるという。

ブロックチェーンが「信頼のプロトコル」であること は、スマートコントラクトプルーフ・オブ・ワーク(Smart contract and Proof of Work, PoW)を理解すれば、わかるようになる。

スマートコントラクト(Smart contract) とは、契約(コントラクト)の実行を人間を介さずにおこなうことだ。言い換えると決められたルールで自動的におこなえる〈ドライな契約〉である。金融取引 はドライな契約であるが、それ以外の実物(財)——たとえば研究者にとっての学術論文や先取性のあるデータなどが考えられる——の拡張は、スマートプロパ ティと言われる。

スマートコントラクトを可能にするためには、それら の機械間が(具体的には端末を操作する個人と個人の相対のピア・ツー・ピア[peer to peer, P2P])確実に情報のやり取りをして不当な第三者に介入されないことが重要である。それがプルーフ・オブ・ワーク(Proof of Work, PoW)つまり「きちんと仕事をした証明」が必要なのである。P2Pのあいだで、どうすれば確実な契約関係(PoW)が構築できるの か?

それを可能にするのがハッシュ関数である。ハッシュ 関数はデータの「集まり」を数字に変換する関数であり、もとのデータをこの関数に通すとハッシュという数字の並びが出力される。一度出力されたハッシュ は、逆向きにアルゴリズム計算で見いだすことができない(この例によく使われるのが大きな数の素因数分解)。ハッシュを含めて逆に計算することが困難な関 数を一方向関数という。

ブロックには一定時間内の全部の取引が前のブロック の記録としてあり、ナンス(Nonce)という条件づけられた数字(最 初から一定個数のゼロが並ぶ)が記載される。P2Pのコンピュータのみがナンスを計 算することができるが、このナンスはアルゴリズム計算ではみつけられない。P2Pの片方のコンピュータは数字をひとつづつあてはめていき正しいナンスを見 つける(=マイニング)。正しいナンスを見つけたコンピュータはP2Pのもう一方の相手に発見したと連絡する。受けたP2Pは簡単な計算で確認できる。見 つけた側はタイムスタンプをつけて、P2Pの相手に返事を送る。最初に見つけた相手への報酬へビットコインを得る。このようなやり取りはすべてリアルタイ ムに「公開」される。この取引が終わらないうちに別の取引がおこなわれると、ブロックチェーンの枝分かれ (=フォーク)が生じるが、短い方の枝は取引が無効になり、報酬(=ビットコイン)が得られない。P2Pの取引を第三者がなりすまして改竄しようとして も、ブロックから計算されるハッシュは元のものと異なり、ナンスも計算しなおさねばならない。不正をおこすには計算に膨大なコストがかかる。そのため、正 当な手段でマイニングしたほうが効率がはるかによい。相手を信頼をする必要がなくても、合理的な取引がおこなわれる。つまり、プルーフ・オブ・ワーク (Proof of Work, PoW)つまり「きちんと仕事をした証明」が、このシステムでは可能になる。

+

+

+

+


●派生的な課題として、これは「学会や専門家を必要としない、学術的真理の担保」という課題を実現することができる理論(ないしはその基礎)への道を拓く

「純粋なP2P電子マネーによって、金融機関を 通さない甲乙間の直接的オンライン取引が可能になる。電子署名は問題の一部を解決するが、依然信用できる第三者機関による二重使用予防が求めらため、その 恩恵は失われる。当システムはP2P電子マネーにおける二重使用問題の解決を提案する。このネットワークは取引に、ハッシュベースの継続的なプルーフ・オ ブ・ワークチェーンにハッシュ値として更新日時を記録し、プルーフ・オブ・ワークをやり直さない限り変更できない履歴を作成する。最長である一連のチェー ンは、取引履歴を証明するだけでなく、それがCPUパワーの最大のプールから発せられたことを証明する。大多数のCPUパワーがネットワークを攻撃してい ないノード(ネットワーク接続ポイント)によってコントロールされている限り最長のチェーンが作成され、攻撃者を凌ぐ。ネットワーク自体は最小限の構成で よい。メッセージは最善努力原則で送信され、ノードは自由にネットワークから離脱、再接続することができ、離脱していた間のイベントの証明として最長のプ ルーフ・オブ・ワークチェーンを受信する」ナカモト・サトシ(Satoshi Nakamoto, 2010)。

知の理論」 あるいは「知識の理論」(Theory of Knowledge) とは、国際バカロレアの学士入学(ディプロマ; baccalaureate とはフランス語で学士号の意味)プログラムにおける必修科目のことであり、それ以外の認証システムにおける大学では、通常「認識論」や「認識論入門」に相 当す るものである——正式な日本語訳は「知の理論」。知とはプラトンによる「知的」伝統を汲み「正当化された真なる信念」のことである(→『知の理論(TOK)』)。

+

●ブロックチェーンと信頼性について

ケビン・ワーバック『ブロックチェーンの技術と革 新』(1章および2章)ニュートンプレス、原著2018., 邦訳は2021年(Werbach_Blockchain_trust_2018.pdf


中心テーゼ:
サトシ・ナカモトのビットコイン論文によると「信用に依存しない」情報の正確な伝達手段が、ブロックチェーンである
43
1.「信頼」を再考する
信頼に依存しない方法
サトシ・ナカモトのビットコイン論文(日本語)Bitcoin: A Peer-to-Peer Electronic Cash System(英語)
"Abstract. A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without going through a financial institution. Digital signatures provide part of the solution, but the main benefits are lost if a trusted third party is still required to prevent double-spending. We propose a solution to the double-spending problem using a peer-to-peer network. The network timestamps transactions by hashing them into an ongoing chain of hash-based proof-of-work, forming a record that cannot be changed without redoing the proof-of-work. The longest chain not only serves as proof of the sequence of events witnessed, but proof that it came from the largest pool of CPU power. As long as a majority of CPU power is controlled by nodes that are not cooperating to attack the network, they'll generate the longest chain and outpace attackers. The network itself requires minimal structure. Messages are broadcast on a best effort basis, and nodes can leave and rejoin the network at will, accepting the longest proof-of-work chain as proof of what happened while they were gone."
+++
「純粋なピア・ツー・ピア(P2P)版の電子マネーは、金融機関を介さずに、オンラインでの支払いをある当事者から別の当事者に直接送ることを可能にす る。デジタル署名はその解決策の一部を提供するが、二重支出を防ぐために信頼できる第三者が必要である場合、主な利点は失われてしまう。私たちは、ピア・ツー・ピア・ネットワークを用いた二重支出問題の解決策を提案する。ネッ トワークは、ハッシュベースのプルーフ・オブ・ワークの継続的なチェーンにトランザクションをハッシュ化することでタイムスタンプを付与し、プルーフ・オブ・ワークをやり直さない限り変更できない記録を形成する。最長の チェーンは、目撃された一連の出来事を証明するだけでなく、それが最大のCPUパワーのプールから来たものであることを証明する。そのため、ネットワークへの攻撃に協力していないノードがCPUパワーの大半を支配している限り、最長の チェーンを生成し、攻撃者を凌駕することができる。また、ネットワーク自体の構造も最小限に抑えられる。メッセージはベストエフォートベースでブロードキャストされ、ノードは自由にネットワークを離 れたり戻ったりすることができ、最長のプルーフ・オブ・ワークチェーンを自分がいない間に起こったことの証明として受け入れることができる

ドン・タプスコットら(2016)に言わせれば、そ れは「信頼のプロトコル」ということになる。——逆説的だがナカモトは「信頼に依存しない電子取引」という。ワーバックはナカモトのこの部分は間違ってい るという。なぜか?
44
信頼の危機
・分散型台帳は、信頼の機械である(エ コノミスト)
45

・ロバート・パットナム『孤独なボーリ ング』
・フランシス・フクヤマ「信頼なくば立たず」
・社会的信頼の崩壊→お金しか信用しない世界の登場
46

・信頼感の変遷
・だが社会は信頼によって成り立っている。(ルーマンもそういう——だが、逆説的にナカモトのほうが正しくないか?)
・信頼の定義によるのではないか?
47

・信頼は社会関係資本(ソーシャル・ キャピタル)として機能(「信頼=ソーシャルキャピタル」説)
・ロナルド・コース
・ビジネスの世界では、雇用者は誰も社員を信頼していない——厳しいキャピタリズムの原理ではないのか?
48

・レイ・デリンジャー「信頼は猥褻物も同様」——私(池田)もそう思う。では、なぜか、それを理路整然 と説明できないと、単なる批判理論に終わる。
49
信頼の定義
・強い信頼、弱い信頼論
・信頼の定義=リスクを評価する認知能力、すげー
・ナイジェリアの王様からの送金情報は、だれも信頼しないが、それはリスクが天文学的に大きいということを認知しているということか?韓国の両班(やんば ん)ならどうか?
50


51

・信頼の感情的な側面=直感的要素
52

・メルヴィル「詐欺師」
53

・アーネット・ベイヤーの信頼定義:他 者から気にかけてもらうこと。
54


55

・結局「信頼とは自信にみちたヴァルネラヴィリティ」だという。ま、妥当なところか?
56
信頼アーキテクチャ:P2P,リヴァイア サン、仲介

黒い部分(●、■)が信頼のコア
57


58


59


60
トラストレスという信頼

61

62


63

サイバーパンク(信頼・倫理)
64


65
2. サトシの解決策
信頼されすぎて失敗できない

66


67


68


69


70


71


72


73


74
はじまりはビットコインだった

75


76


77


78


79
ナカモト・コンセンサス

80


81

・シビル攻撃
82


83


84


85


86
暗号通貨の重要性

87


88


89


90


91


サトシの論文(出典:https://coincheck.blog/292

純粋なP2P電子マネーによって、金融機関を 通さない甲乙間の直接的オンライン取引が可能になる。電子署名は問題の一部を解決するが、依然信用できる第三者機関による二重使用予防が求めらため、その 恩恵は失われる。当システムはP2P電子マネーにおける二重使用問題の解決を提案する。このネットワークは取引に、ハッシュベースの継続的なプルーフ・オ ブ・ワークチェーンにハッシュ値として更新日時を記録し、プルーフ・オブ・ワークをやり直さない限り変更できない履歴を作成する。最長である一連のチェー ンは、取引履歴を証明するだけでなく、それがCPUパワーの最大のプールから発せられたことを証明する。大多数のCPUパワーがネットワークを攻撃してい ないノード(ネットワーク接続ポイント)によってコントロールされている限り最長のチェーンが作成され、攻撃者を凌ぐ。ネットワーク自体は最小限の構成で よい。メッセージは最善努力原則で送信され、ノードは自由にネットワークから離脱、再接続することができ、離脱していた間のイベントの証明として最長のプ ルーフ・オブ・ワークチェーンを受信する。

1. イントロダクション

インターネットでの商取引は、ほぼ例外なく、電子取引を処理する信用できる第三者機関としての金融機関に頼っているのが現状である。大多数の取引において はこのシステムで十分であるものの、信頼に基づくモデルであるがゆえの弱点は残っている。金融機関は争議の仲裁を避けて通ることができないため、完全に非 可逆的な取引を扱うことができない。仲裁コストが取引のコストを引き上げることで、取引規模は限定され、小額取引の可能性が失われる。また、非可逆的サー ビスに対する非可逆的支払いを提供することができないことによる損失はより広範にわたる。可逆的取引を扱うためには信用が問われる。商業主は顧客に対し用 心深くあらねばならず、顧客から多くの情報を求める。一定の割合の詐欺は避けられないものとして受け入れられている。対個人におけるこれらの損失や支払い の不確さは有形通貨を使うことで避けられるが、第三者機関を通さずに通信チャンネル経由で支払いを可能にするメカニズムは存在していない。必要なのは、信 用ではなく暗号化された証明に基づく電子取引システムであり、これにより希望する二者が信用できる第三者機関を介さずに直接取引できるようになる。コン ピュータ的に事実上非可逆的な取引は売り手を詐欺から守り、容易に実施できる習慣的なエスクロー(第三者預託)メカニズムにより買い手も守られる。この論 文では、時系列取引のコンピュータ的証明を作成するP2P分散型タイムスタンプ・サーバーを用いた、二重支払い問題の解決策を提案する。本システムは、良 心的なノードが集合的に、攻撃者グループのノードを上回るCPUパワーをコントロールしている限り安全である

2. 取引

一つの電子コインは、連続するデジタル署名のチェーンと定義される。電子コインの各所有者は、直前の取引のハッシュと次の所有者のパブリック・キー(公開 鍵)をデジタル署名でコインの最後に加えることにより、電子コインを次の所有者に転送する。受取人は一連の署名を検証することで、過去の所有権を検証でき る。

無論、問題は受取人には過去の所有者がコインを二重使用していないことを検証できないことにある。一般的な解決法は信用のおける中央機関もしくは造幣局を 間に入れ、全取引を監視させることである。取引の度にコインは造幣局に戻され、新しいコインが発行され、造幣局から新しく発行されたこのコインのみが二重 使用されていないものとして信用される。この解決法の問題は、全取引が造幣局を通じて行われるため、銀行と同様に造幣局を運営している企業に、金融システ ム全ての運命が左右されることである。必要なのは、コインの受取人に今までの所有者らが二重署名していないことを知らせる方法である。この目的において は、最初の取引だけが論点であるので、後の二重支払いの試みについては関係のないものとする。取引がなかったことを明確にするには全取引を監視する必要が ある。造幣局モデルでは造幣局が全取引を監視し取引の順番を決定していた。これを第三者機関なしに行うには、取引が公開され、参加者たちが受け取った順番 の唯一の取引履歴に合意することのできるシステムが必要となる。受取人は取引毎に、取引が行われた時点で大多数のノードがそのコインが初めて使用されたこ とに賛同したという証明を必要とする



3. タイムスタンプ・サーバー

提案する解決法は、まずタイムスタンプ・サーバーから始まる。タイムスタンプ・サーバーは、タイムスタンプされる複数アイテムを含むデータブロックをハッ シュとして処理し、そのハッシュを新聞やUsenetポスト[2-5]のように広範囲に公開する。タイムスタンプにより、そのデータがタイムスタンプされ た時点でハッシュとなるために存在していたことが証明される。各タイムスタンプはそのハッシュの中に直前のタイムスタンプを含んでいくことでチェーンを形 成し、タイムスタンプが増えるたびに以前のタイムスタンプを強化していく。

4. プルーフ・オブ・ワーク

P2Pベースで分散型サーバーを実行するには、新聞やUsenetポストというよりはアダム・バックのハッシュキャッシュ[6]に似た、プルーフ・オブ・ ワークシステムを使用する必要がある。プルーフ・オブ・ワークには、例えばSHA-256のような、ハッシュ化された時に0ビットの番号で始まるハッシュ 値のスキャンが含まれる。通常作業に要求されるのは、必要な0ビットの番号の指数関数であり、これはハッシュ一つを実行することで検証される。我々のタイ ムスタンプネットワークでは、ハッシュ化の際に要求される0ビットを与える値が見つかるまでの間、データブロックにワンタイムパスワードを足すことでプ ルーフ・オブ・ワークを実現している。一度プルーフ・オブ・ワークを満たすべくCPUパワーが費やされると、この作業をやり直さない限りそのデータブロッ クを変更することはできない。その後のデータブロックもチェーン化されて後に連なるため、該当ブロックを書き換えようとするならば、それ以降の全てのブ ロックを書き換えなくてはならない。
このプルーフ・オブ・ワークはまた、多数決で意思決定をする際の代表をどうするかという問題を解決する。もし1IPアドレスにつき一票としたならば、多く のIPアドレスを取得できる者は誰でもシステムを乗っ取ることができてしまう。プルーフ・オブ・ワークは原則的に1CPUにつき一票である。多数決の意思 決定は、最も多くのプルーフ・オブ・ワークの労力が費やされたことを示す最も長いチェーンによって表される。CPUパワーの過半数が良心的なノードによっ てコントロールされるとき、その良心的なチェーンは他のどのチェーンよりも早く成長する。過去のデータブロックを書き換えるためには、攻撃者はそのブロッ クのプルーフ・オブ・ワークだけでなくその後に続くプルーフ・オブ・ワークを書き換え、さらに良心的なチェーンに追いつき、追い越さなければならない。低 速の攻撃者が良心的チェーンに追いつく可能性は、後続のブロックが追加されるごとに指数関数的に減少していくことをのちに説明する。加速するハードウェア スピードと長期的に変動する利益レートに対応するために、プルーフ・オブ・ワーク算出の難易度は、一時間ごとのブロック数を一定の平均値に保つことを目指 す平均移動によって決定される。ブロック算出のスピードが速ければ速いほど難易度が増す



5. ネットワーク

ネットワーク実行の手順は以下の通りである

新しい取引は全ノードに送信される。
各ノードが新しい取引をブロックに取り入れる。
各ノードがそのブロックへのプルーフ・オブ・ワークを算出する。
プルーフ・オブ・ワークを見つけ次第、各ノードはそれを全ノードに告知する。
ノードは、ブロックに含まれる全ての取引が有効であり、以前に使われていない場合のみ、それを承認する。
ノードは、承認されたブロックのハッシュを直前のハッシュとして用いて、チェーンの次のブロックの作成を開始することで、ブロック承認を表明する。

ノードは常に最長のチェーンを正しいものと判断し、それをさらに延長しようとする。もし二つのノードが同時に異なる二パターンのブロックを次のブロックと して告知した場合、ノードによって受信の順番が入れ替わる可能性がある。その場合、ノードは最初に受信した方のブロックを処理するが、もう一つのブロック も保存しそちらのチェーンが長くなった場合に備えておく。次のプルーフ・オブ・ワークが発見され、どちらかのチェーンが伸びたとき、そちらが正しいチェー ンと認識され、もう一つのチェーンに取り組んでいたノードはより長いチェーンに切り替える。
新しい取引の告知は必ずしも全ノードに届かなくともよい。告知が多数のノードに受信されている限り、やがてブロックに組み込まれる。ブロック告知もまた メッセージの欠落に耐えうる。ノードがブロックを受信しなかった場合、次のブロックを受信するときにそれを要求し、一つ受信していなかったことを認識す る。

6. インセンティブ

慣例により、ブロック内の最初の取引は新しいコインを始める特別な取引とされ、そのコインはブロック作成者のものとなる。これはノードにネットワークを支 持するインセンティブとなると同時に、コインを発行する中央機関不在の中、最初にコインを配布する方法としても機能する。新しいコインを一定量安定して追 加していくことは、金鉱労働者が働いて採金し、金の流通量を増やすことと似ている。我々の場合は、働いてるのはCPU時間と電力である。インセンティブ は、取引手数料によっても得ることができる。もしある取引でアウトプットされた価値がインプットされた価値よりも少ない場合、その差は取引手数料としてそ の取引を含むブロックのインセンティブに加算される。ひとたびコインの流通量が既定の数値に達するとインセンティブを取引手数料として使うことが可能にな り、またコインは既定以上流通されないのでインフレからは完全に解放される。インセンティブはノードが良心的であり続ける動機となりうるだろう。もし欲深 い攻撃者が良心的なノードの合計を上回るCPUパワーを作り出すことができたとして、攻撃者はそのパワーを使って、他の良心的なノードから自分の支払った 金額を盗んで取り戻すか、新しいコインを作り出すかの選択を迫られることになり、おのずと自分の資産価値とそれを支えるシステムを損なうよりも、ルールに 従って行動し、他の全ノードを合わせたよりも多くの新しいコインを作りだすほうが、自分の利益になると考えるだろう。

7. ディスク・スペースをリクレイムする

コインの最新の取引が十分な数のブロックに書き込まれると、それ以前の取引記録はディスク・スペースを節約するために破棄することができる。ブロックの ハッシュを壊さずにこの作業を行うために、取引はそのブロックのハッシュにルートしか含まないマークル・ツリー(Merkle Tree[7][2][5])を用いてハッシュ化される。古いブロックは、ツリーのブランチを取り除くことで軽くすることができる。インテリア・ハッシュ を保存する必要はない。

マークル・ツリーを用いてハッシュ化された取引ブロックからTx0-2を取り除いた後引なしのブロック・ヘッダーは約80 bytesである。仮に十分ごとに一つのブロックが作成されると仮定すると、80 bytes × 6 ×24 ×365 = 4.2 MB/年 となる。2008年の時点で平均的なパソコンは2 GBのRAMで売られており、ムーアの法則によると1.2 GB/年のペースで増大すると予測されるので、ブロック・ヘッダーをメモリに保存しておく必要があってもスペースの問題はないはずである。



8. 簡易版支払い検証

完全なネットワークノードを実行していなくとも、支払いを検証することは可能である。ユーザーは、ネットワークノードにクエリーを行って得られる最長の チェーンが含む各ブロックのブロック・ヘッダーのコピーを保存しておくだけで、そのブロックにタイムスタンプされている取引をブロックにリンクしている マークル・ブランチを得ることができるからだ。ユーザー自身が自らその取引をチェックすることはできないが、そのマークル・ブランチをチェーンにリンクす ることで、ネットワークがその取引を承認済みということが確認でき、またその後にブロックが加えられていったことでさらなる確証が得られる

このように、良心的なノードがネットワークをコントロールする限り検証は信頼のおけるものとなるが、ネットワークが攻撃者に乗っ取られた場合には脆弱にな る。ネットワークは自身で取引を検証できる一方で、各ノードが行う簡易版は、攻撃者がネットワークを乗っ取り続ける限り攻撃者の偽造した取引にだまされて しまう。一つの対処法は、ネットワークが不正なブロックを感知したときに発するアラートを受信する設定にしておき、受信した場合はユーザーのソフトウェア によりブロック全体とアラートされた取引をダウンロードし、不一致を確認することである。頻繁に支払いを受け取るビジネスに関しては、より独立した安全性 とスピードの速い検証のために、独自のノードを運営するほうが良いだろう


9. 価値の結合や分割

一つ一つのコインを個別に扱うことも可能な一方で、取引に使われる金額を1セントずつ個別に取引することは非常に不便だ。価値の分割や結合を可能にするた めに、取引には複数のインプットとアウトプットが含まれる。通常、インプットはより価値の大きい前の取引からの一つのインプットか小額のものをいくつか合 わせた複数のインプットで、アウトプットは多くても二つ、次の支払いに向かうものが一つと、おつりがあればそれを支払い元に戻すものが一つである。
注目すべきは、一つの取引が複数の取引に依存し、それらの取引もまた多数の取引に依存しているファンアウトはここでは問題でないことである。取引履歴から ある取引の完全に独立したコピーを抽出する必要性はあり得ないからである。

10. プライバシー

従来の銀行モデルは、情報へのアクセスを関連団体と信頼のおける第三者 機関に限定することで一定レベルのプライバシーを実現している。全取引を公開する必要性はこの可能性を除外するが、情報のフローを他の箇所で分断すること でプライバシーを保つことができる。パブリック・キーを匿名にするのである。誰かが他者にどれだけのコインを送っているかは公開されるが、その取引情報は 誰にもリンクされていない。これは個別の取引の時間やサイズ、「テープ」は公開されても取引の当事者は明らかにされない証券取引で公表されるのと同等の情 報レベルである


追加のファイアウォールとして、同一の所有者にリンクされることを防止するために、取引は一回ごとに新しいペアのキーを用いる必要がある。複数インプット の場合はそれらのインプットが同じ所有者に所有されていることがどうしても露見するので、多少のリンクを避けることはできない。リスクは、もしキーの所有 者が明らかになった場合、そのリンクにより同じ所有者が関わった他の取引も露見する可能性があることである。

11. 計算

攻撃者が正当なチェーンよりも速いスピードで偽のチェーンを作成しようとするシナリオを考えてみる。仮にそれに成功したとしても、コインを無から創り出し たり攻撃者自身が所有したことのないコインを盗んだりというようにシステムを自由に操れるようになるわけではない。ノードは無効な取引を用いた支払いも無 効な取引を含んだブロックも拒絶するからである。攻撃者にできるのは自身の取引記録を書き換えることで、最近支払った金額を取り返そうとすることだけであ る。良心的なチェーンと攻撃者のチェーンの競争は二項酔歩(二項ランダムウォーク)と特徴づけられる。成功のイベントは良心的なチェーンが一ブロック延長 してリードが一つ増えること、失敗のイベントは攻撃者のチェーンが一ブロック延長して差が一つ縮められることである。攻撃者が与えられた遅れを取り戻す確 率はギャンブラー破産の問題と似ている。無限の資金を持つギャンブラーが赤字からスタートして損益分岐点を目指して無数の賭けを行うと仮定する。彼が損益 分岐点に到達する確率、もしくは攻撃者が良心的なチェーンに追いつく確率は以下のように計算することができる。
P = 良心的なノードが次のブロックを見つける確率
q = 攻撃者が次のブロックを見つける確率
qz= 攻撃者がzブロックの遅れから追いつく確率

p>q というわれわれの仮定を前提とすると、追いつかなくてはならないブロックの数が増えるにしたがい確率は指数関数的に下がっていく。この分の悪い確率のもと では、初期の段階でよほどの幸運に恵まれて突進しない限り、彼が追いつく確率は、さらに遅れをとっていく中でまずあり得ないほど小さくなっていく。次に、 新しい取引の受け手が、送り手がもう取引内容を変更できないと確信できるまでにどれだけの時間、待つ必要があるかを考える。送り手が攻撃者で、受け手に支 払いを済ませたとしばらくの間信じ込ませたのちに自分に払い戻そうとしていると仮定する。その場合受け手はアラートを受信するが、送り手(攻撃者)はその 時点ですでに手遅れとなっていることを望むものとする。受け手はパブリック・キーを作成し、電子署名する直前にそれを送り手に送る。これにより、送り手が 前もって偽のチェーンを用意しておきパブリック・キーが送られてきた瞬間に偽の取引を行うことを防止できる。取引が送信されるやいなや、不正な送り手(攻 撃者)は密かにもう一つのバージョンの取引を含んだパラレル・チェーンの作成に取りかかる。受け手は自分の取引がブロックに加えられ、z 個のブロックがその後にリンクされるまで待つ。受け手には攻撃者の正確な進捗は分からないが、正当なブロックが平均的な時間で作成されたと仮定すると、攻 撃者の進捗は以下のポアソン分布の期待値で求められる。
f:id:bitcoin_picks:20140915155426p:plain
攻撃者がこの時点で追いつくことのできる確率を求めるには、彼の行うことのできた仕事量あたりのポアソン分布密度を、その時点での追いつくことができた確 率で掛ける。

いくつか実行してみると、zが増えるにしたがって確率が指数関数的に下がっていくことが分かる。
q=0.1
z=0 P=1.0000000
z=1 P=0.2045873
z=2 P=0.0509779
z=3 P=0.0131722
z=4 P=0.0034552
z=5 P=0.0009137
z=6 P=0.0002428
z=7 P=0.0000647
z=8 P=0.0000173
z=9 P=0.0000046
z=10 P=0.0000012
q=0.3
z=0 P=1.0000000
z=5 P=0.1773523
z=10 P=0.0416605
z=15 P=0.0101008
z=20 P=0.0024804
z=25 P=0.0006132
z=30 P=0.0001522
z=35 P=0.0000379
z=40 P=0.0000095
z=45 P=0.0000024
z=50 P=0.0000006
Pが0.1%以下の時について値を求めると…
P < 0.001
q=0.10 z=5
q=0.15 z=8
q=0.20 z=11
q=0.25 z=15
q=0.30 z=24
q=0.35 z=41
q=0.40 z=89
q=0.45 z=340

12. 結論

本論文では、信用に依存しない電子取引のシステムを提案した。電子署 名で作られるコインという従来通りのフレームワークは所有権を強くコントロールを実現できるが、二重支払い防止対策なしには不完全である。その解決策とし て、良心的なノードがCPUパワーの過半数をコントロールする限り、プルーフ・オ ブ・ワークを使って記録された公開型の取引履歴を攻撃者が変えようとすることが、コンピュータ的に加速度的に実質上実行不可能になっていくP2Pネット ワークを提案したネットワークは非構造の単純性により堅固になって いる。各ノードは同時に動作するが協調性は低い。メッセージは最善努 力原則で送信すればよく、また特定の場所に転送されるわけではないのでノードが特定される必要性はない。ノードは自由にネットワークに接 続、離脱でき、離脱していた間のプルーフ・オブ・ワーク・チェーンをその間の取引の証明として承認する。ノードはCPUパワーを用いて受信したチェーンへ の承認・拒絶を表明し、受信したチェーンが有効であると受け入れた場合にはそれに含まれるブロックを延長することで承認を表明し、無効なブロックであれば それらの処理を拒否することで拒絶を表明する。必要なルールやインセンティブはこの合意メカニズムに従って実行できる

https://coincheck.blog/292

Proof of work (PoW) is a form of cryptographic proof in which one party (the prover) proves to others (the verifiers) that a certain amount of a specific computational effort has been expended.[1] Verifiers can subsequently confirm this expenditure with minimal effort on their part. The concept was invented by Moni Naor and Cynthia Dwork in 1993 as a way to deter denial-of-service attacks and other service abuses such as spam on a network by requiring some work from a service requester, usually meaning processing time by a computer. The term "proof of work" was first coined and formalized in a 1999 paper by Markus Jakobsson and Ari Juels.[2][3]

Proof of work was later popularized by Bitcoin as a foundation for consensus in a permissionless decentralized network, in which miners compete to append blocks and mine new currency, each miner experiencing a success probability proportional to the computational effort expended. PoW and PoS (proof of stake) remain the two best known Sybil deterrence mechanisms. In the context of cryptocurrencies they are the most common mechanisms.[4]

A key feature of proof-of-work schemes is their asymmetry: the work – the computation – must be moderately hard (yet feasible) on the prover or requester side but easy to check for the verifier or service provider. This idea is also known as a CPU cost function, client puzzle, computational puzzle, or CPU pricing function. Another common feature is built-in incentive-structures that reward allocating computational capacity to the network with value in the form of cryptocurrency.[5][6]

The purpose of proof-of-work algorithms is not proving that certain work was carried out or that a computational puzzle was "solved", but deterring manipulation of data by establishing large energy and hardware-control requirements to be able to do so.[5] Proof-of-work systems have been criticized by environmentalists for their energy consumption.[7]
Proof of work (PoW) は、暗号証明の一種で、ある当事者(Prover)が他の当事者(Verifiers)に対して、ある特定の計算量が費やされたことを証明するものである[1] 。その後、Verifiersは最小限の労力でこの支出を確認できる。この概念は、1993年にMoni NaorとCynthia Dworkによって考案された。サービス要求者に何らかの作業(通常はコンピュータによる処理時間)を要求することによって、ネットワーク上のサービス拒 否攻撃やスパムなどのサービス不正を抑止する方法である。プルーフ・オブ・ワーク」という言葉は、1999年にMarkus JakobssonとAri Juelsが発表した論文で初めて使われ、形式化されました[2][3]。

ビットコインでは、マイナーが競ってブロックの追加や新しい通貨の採掘を行い、各マイナーは費やした計算量に比例した成功確率を経験する。PoWとPoS (proof of stake)は、シビルの抑止力として最もよく知られている2つのメカニズムである。暗号通貨の文脈では、これらが最も一般的なメカニズムである[4]。

プルーフ・オブ・ワーク方式の主な特徴は、その非対称性にある。すなわち、作業(計算)は、証明者や要求者側では適度に難しく(しかし実現可能)、検証者やサービス提供者にとっては確認しやすいものでなければならない。この考え方は、CPUコスト関数、クライアントパズル、計算パズル、CPU価格関数などとも呼ばれる。また、計算能力をネットワークに割り当てることで、暗号通貨という価値で報いるインセンティブ構造が組み込まれていることも共通の特徴である[5][6]。

プルーフ・オブ・ワーク・アルゴリズムの目的は、ある作業が行われたことや計算パズルが「解けた」ことを証明することではなく、それができるようにするための大きなエネルギーとハードウェア制御の要件を確立することによってデータの操作を抑止することにある[5]。プルーフ・オブ・ワーク・システムは、エネルギー消費について環境主義者から批判されている[7]。
One popular system, used in Hashcash, uses partial hash inversions to prove that computation was done, as a goodwill token to send an e-mail. For instance, the following header represents about 252 hash computations to send a message to calvin@comics.net on January 19, 2038:

X-Hashcash: 1:52:380119:calvin@comics.net:::9B760005E92F0DAE
It is verified with a single computation by checking that the SHA-1 hash of the stamp (omit the header name X-Hashcash: including the colon and any amount of whitespace following it up to the digit '1') begins with 52 binary zeros, that is 13 hexadecimal zeros:[1]

0000000000000756af69e2ffbdb930261873cd71
Whether PoW systems can actually solve a particular denial-of-service issue such as the spam problem is subject to debate;[8][9] the system must make sending spam emails obtrusively unproductive for the spammer, but should also not prevent legitimate users from sending their messages. In other words, a genuine user should not encounter any difficulties when sending an email, but an email spammer would have to expend a considerable amount of computing power to send out many emails at once. Proof-of-work systems are being used by other, more complex cryptographic systems such as bitcoin, which uses a system similar to Hashcash.[8]
Hashcashで使われている人気のあるシステムの1つは、電子メー ルを送るための親善の証として、計算が行われたことを証明するために部分的なハッシュの逆変換を使う。例えば、次のヘッダーは、2038年1月19日に calvin@comics.net にメッセージを送るために約252回のハッシュ計算を行ったことを表している:

X-Hashcash: 1:52:380119:calvin@comics.net:::9B760005E92F0DAE
これは、スタンプのSHA-1ハッシュ(コロンとそれに続く数字「1」までの空白を含むヘッダー名X-Hashcash:を省略)が52個の2進数ゼロで始まること、つまり13個の16進数ゼロであることを確認することで1回の計算で検証できる[1]。

0000000000000756af69e2ffbdb930261873cd71
PoWシステムが、スパム問題のような特定のサービス拒否問題を実際に解決できるかどうかは議論の余地がある[8][9]。システムは、スパムメールの送 信がスパム送信者にとって明らかに非生産的でなければならないが、正当なユーザーのメッセージ送信を妨げないことも必要である。言い換えれば、本物のユー ザーは電子メールを送信する際に何の困難も感じないはずだが、電子メールスパマーは一度に多くの電子メールを送信するためにかなりの量の計算能力を消費し なければならないだろう。プルーフ・オブ・ワーク・システムは、ハッシュキャッシュに似たシステムを使用するビットコインなど、より複雑な他の暗号システ ムでも使用されている[8]。
Variants
There are two classes of proof-of-work protocols.

Challenge–response protocols assume a direct interactive link between the requester (client) and the provider (server). The provider chooses a challenge, say an item in a set with a property, the requester finds the relevant response in the set, which is sent back and checked by the provider. As the challenge is chosen on the spot by the provider, its difficulty can be adapted to its current load. The work on the requester side may be bounded if the challenge-response protocol has a known solution (chosen by the provider), or is known to exist within a bounded search space.

Solution–verification protocols do not assume such a link: as a result, the problem must be self-imposed before a solution is sought by the requester, and the provider must check both the problem choice and the found solution. Most such schemes are unbounded probabilistic iterative procedures such as Hashcash.

Known-solution protocols tend to have slightly lower variance than unbounded probabilistic protocols because the variance of a rectangular distribution is lower than the variance of a Poisson distribution (with the same mean).[further explanation needed] A generic technique for reducing variance is to use multiple independent sub-challenges, as the average of multiple samples will have a lower variance.

There are also fixed-cost functions such as the time-lock puzzle.

Moreover, the underlying functions used by these schemes may be:

CPU-bound where the computation runs at the speed of the processor, which greatly varies in time, as well as from high-end server to low-end portable devices.[10]
Memory-bound[11][12][13][14] where the computation speed is bound by main memory accesses (either latency or bandwidth), the performance of which is expected to be less sensitive to hardware evolution.
Network-bound[15] if the client must perform few computations, but must collect some tokens from remote servers before querying the final service provider. In this sense, the work is not actually performed by the requester, but it incurs delays anyway because of the latency to get the required tokens.
Finally, some PoW systems offer shortcut computations that allow participants who know a secret, typically a private key, to generate cheap PoWs. The rationale is that mailing-list holders may generate stamps for every recipient without incurring a high cost. Whether such a feature is desirable depends on the usage scenario.
バリエーション
プルーフ・オブ・ワーク・プロトコルには、2つのクラスがある。

チャレンジ・レスポンス型プロトコルは、要求者(クライアント)と提供者(サーバー)の間に直接的な対話的リンクを想定しています。プロバイダはチャレン ジ、例えばある特性を持つ集合の中の項目を選び、要求者は集合の中から関連する応答を見つけ、それを返送してプロバイダがチェックします。課題はプロバイ ダーがその場で選択するため、その難易度は現在の負荷に合わせることができる。チャレンジ・レスポンス・プロトコルに既知の解(プロバイダが選択)がある か、あるいは有界の探索空間内に存在することが知られている場合、要求者側の作業は制限されることがある。

解決策の検証プロトコルは、そのようなリンクを想定していません。その結果、要求者が解決策を求める前に、問題を自ら課す必要があり、提供者は問題の選択 と見つかった解決策の両方をチェックしなければなりません。このような方式の多くは、Hashcashのような無拘束確率的反復手続きである。

矩形分布の分散はポアソン分布(平均は同じ)の分散よりも低いため、既知解プロトコルは非拘束確率論的プロトコルよりも分散がわずかに低い傾向があります [further explanation needed] 分散を減らすための一般的手法は、複数のサンプルの平均がより低い分散になるように、独立したサブチャレンジを複数使うことである。

また、タイムロックパズルのような固定費関数もある。

さらに、これらの方式で使用される基礎的な関数は、以下のようなものがある:

CPU-bound:計算がプロセッサの速度で実行され、ハイエンドサーバからローエンドの携帯機器まで、時間的に大きく変化する[10] 。
メモリバウンド[11][12][13][14]:計算速度がメインメモリへのアクセス(レイテンシまたは帯域幅)によって制限され、その性能はハードウェアの進化の影響を受けにくいと予想される。
ネットワークバウンド型[15]は、クライアントが実行する計算量は少ないが、最終的なサービスプロバイダーに問い合わせる前に、リモートサーバーからい くつかのトークンを収集する必要がある場合である。この意味で、要求は実際には実行されないが、必要なトークンを取得するための待ち時間が発生するため、 遅延が発生する。
最後に、いくつかのPoWシステムでは、秘密(通常は秘密鍵)を知っている参加者が安価なPoWを生成できるように、ショートカット計算を提供していま す。その根拠は、メーリングリストの所有者が、高いコストをかけずにすべての受信者のために切手を生成することができるというものである。このような機能 が望ましいかどうかは、使用シナリオに依存する。
https://en.wikipedia.org/wiki/Proof_of_work


+++

Links

リンク

文献

その他の情報

Maya_Abeja

Copyleft, CC, Mitzub'ixi Quq Chi'j, 1997-2099

池田蛙  授業蛙 電脳蛙 医人蛙 子供蛙