当方の決済システムの最初の起案の時は、ブロックチェーンの様々な開発環境の出始めだったので、ビットコインのソースコードを最小限改変して作成する検討をしました
ブロックチェーンのその後の世代では、決済システムがより簡易に作れるようになり、別紙「ブロックチェーンで作る決済システム」の方でご参照いただけます
ここでは、当初検討時に、ビットコインのどの機能をオフしたり、ブロックチェーンの外にデータを待つ必要があったかを備忘録として残します
ビットコインの特徴の一端がうかがわれるかもしれません
Contents(目次)
1.機能を停止ないし限定するところ
2.使い方の変更、運用の工夫をする必要があるところ
3.外部に作る、外部管理せざるを得ないところ

1.機能を停止ないし限定するところ
機能を停止ないしは限定 1
前提として、実際のビットコインというオープンなネットワークに相乗りすることはできません
あくまでも、そのソースコードから、まずプライベートなネットワークを別に作る、その時のソースの改変について検討します
ブロックチェーンのソースコードを最小限改変して、別紙「ブロックチェーンで作る決済システム」で掲げる機能、すなわち
- 債務証書の発行
- 債務証書の流通
- クリアリング(名寄せ、合算)
- セトルメント(相殺決済)、決済尻の算出
これらを行うため、ビットコインが持っている機能を停止、限定するところ、インターフェースを追加したり、外部のデータベースに紐づけて持たなければならないデータを記していきます
1.機能を停止ないしは限定するところ
- Proof-of-Work
- ビットコインでは、一定数のトランザクションが溜まると、まとめて書庫にしまうような処理をします。システムに参加している人は誰でもこの処理を行えますが、クイズのようなこと、ハッシュ計算を競うことになっていて、一番早く解いた人の処理を承認し、唯一の記録とします
- この仕組みはそのまま使用しますが、プライベートなネットワーク、閉域網でセキュリティの監視が容易な環境では、解がすぐ出るように、「difficulty」を下げます
機能を停止ないしは限定 2
1.機能を停止ないしは限定するところ(続き)
- Network
- Bitcoinのネットワーク上の「nodes」(Bitcoinのシステムがインストールされているデータベースのイメージ)は、誰でも幾つでも立ち上げて参加できる仕組みです。異なる主体が多数参加することにより、過半を同時に乗っ取って書き換えるのは困難になり、セキュリティを高める効果があります
- この「nodes」すべてが同じ情報を持ち、トランザクションが起きるとその取引をbroadcastして(取引は公開されます)、ハッシュ計算の速さを競う、こうした特徴はそのまま残せます
- しかし、ネットワークへの「nodes」としての参加は管理し、許可制とします。nodesの立ち上げ、nodesの物理的な場所もこのグループ内で共有し管理します
- The 51% attackの対策
- Bitcoinのネットワーク構成では、公開されたオープンなインターネット上にあっても、非常に多くのnodesが立ち上げられて、それ自体で、51%の乗っ取りがほぼ不可能と言えます。一方、当方のシステムの検討では、システムは仮想閉域網として、nodes(サーバー)の立ち上げは参加者で投資計画を書いて、許可制とすることで、不特定多数のサーバーを立てる必要はないと想定しています
- Incentives
- 前述の通り、Bitocoinでは、一定数のトランザクションが溜まると、Proof of Workと名付けられたハッシュ計算を競うことになっていて、一番早く解いた人(node)の処理を承認し、唯一の記録とします。その際に、そのノードにご褒美として、コインが与えられます。このご褒美がインセンティブとなり、Bitcoinに自前の予算でnodes(サーバー)を立ち上げて参加したい、運営を続けたい、という仕組みになっています
- システムから自動的にコインが与えられますが、比喩的に、あたかも一番早く解いた人が金を掘り当てたように、「採掘」とか、「マイニング mining」ともいわれます
- Bitocoin本体では、この仕組みが唯一の成長通貨を生む仕組みで、トランザクションが多くProof of Workの回数が増えれば、それに連れてご褒美も多く「鋳造」(minting)され、流通するコイン残高が増えていくという、金融論で言うマネタリズム的な仕組みになっています
- 一方、当方の決済システムでは、Bitcoinのトランザクションをコインとして使うのではなく、債務証書として使うので、Proof of Workにおけるご褒美は不要です。このfeeをゼロにしてもよいです
機能を停止ないしは限定 3
1.機能を停止ないしは限定するところ(続き)
- Inflation Rate
- Bitcoinでは、年間35%のインフレ率で始まり、マイニングに成功したnodesに前述のincentiveを支払う形で通貨残高が累積して増加しますが、次第に二次曲線的にインフレ率が下がっていく設計になっています。当方の決済システムでは、このインフレ率は不要、ゼロとします
- Escrow & multi-signature transactions
- Bitcoinでは、財の引き渡しと支払いを同時に成り立たせるエスクロー機能が検討されました。第三者の署名も求めることから、multi-signature transactionsとも言われます。
- まず、Satoshi Nakamotoの最初の論文に、エスクロー機能の可能性が示されました。“routine escrow mechanisms could easily be implemented to protect buyers. ”
- その後、ビットコインコアとも呼ばれる、Bitcoinの開発者たちとSatoshi Nakamotoの通信記録によれば、2010年夏から秋にかけて、機能設計が議論され、Satoshi Nakamotoが仕組みの提案をしています。次のURLはその議論の最後のほうの記録です https://bitcointalk.org/index.php?topic=750.0
- Bitcoinでは結局、エスクローはそのソースコードに組み込まれず、取引所システムや信託サービスのひとつの機能として、業者によって作られることはありますが、その後の世代、例えば、Ethereumでは、スマートコントラクトという機能をもち、これによりエスクローをチェーンに組み込むことができます。次を参照、https://ethereum.org/developers/docs/smart-contracts/
- スマートコントラクトはプログラミング言語を持ち、色々機能を作れるほか、この機能とインターフェースをとって、ウォレット(電子財布)などを各業者が固有のサービスとして構築しますので、特色は分れますし、固有の知財となっていることもあるでしょう。既存のシステムについては各社を検索、ご参照ください
- 当方の決済システムでは、債務証書対債務証書の相殺を(同時に)成り立たせるアルゴリズムを実装します。一方、決済尻を出してそれで処理は終了なので、財と支払いとのエスクローは持たず、付加的な機能や外部に任せることとなります