BEAMが実装するSecure Bulletin Board System (SBBS)とは?

Beam Japan
13 min readFeb 8, 2019

--

※こちらの日本語記事はBeam 「The Secure Bulletin Board System (SBBS) implementation in Beam」 の翻訳記事です。オリジナル(英語)はこちらからご確認ください。

Beam Japanチームは、Beamの日本語公式Twitterアカウント、Discordチャンネル、Telegramグループを開設しています。Beamに関する最新情報から、ディスカッションやカスタマーサポートなど、Beamコミュニティの皆さんが積極的に交流できる場所として運営しています。是非、ご参加ください!

❒ Twitter(日本語): https://twitter.com/beamJapan
❒ Telegram(日本語): t.me/beamjp
❒ Discord(日本語サポート): discord.gg/yxPwH4Q

BeamはMimblewimble(ミンブルウィンブル)プロトコル上に構築された、強固な情報の機密性とスケーラビリティを達成している技術です。ただし、この技術には特別な特徴があります。それは、Mimblewimbleではアドレスが存在せず、トランザクションの実行は、参加者同士がインタラクティブ(相互作用的)に行う必要があることです。

この特徴によって欠点が生じます。もし、アリスがボブに送金する場合、双方のウォレットが接続され、必要な手順を踏む必要があります。送金の度にソケット接続をする事はあまり実用的ではありません。もしボブのコンピューターがオフラインであれば、アリスが送金したくても実行できるでしょうか?

BeamのSecure Bulletin Board System (SBBS / セキュア・ブレティン・ボード・システム / 高セキュリティ掲示板システム)はこの問題を解決し、Beamのユーザーにビットコインやその他の通貨と同じユーザー体験を提供します。

SBBSによって、Beamノードにメッセージを保存・転送させることで、トランザクションの相手がオフラインの場合でも、クライアントウォレット間でメッセージを交換することを可能にします。最先端の楕円曲線暗号(Elliptic Curve Cryptography / ECC)技術を用いて、公開鍵で暗号化することによって、このシステムは暗号学的に安全性が確保されています。既に存在するBeamの公開鍵のインフラを活用し、Beamノードがメッセージをリレーしクライアントウォレットで受信できる掲示板システムを実装しました。この技術によって、暗号通貨におけるメッセージ通信が最高の暗号技術レベルと同等水準のプライバシー、セキュリティ、分散化を備えて実現され、なお且つ、単一障害点を排除します。

電子掲示板:80年代の遺物か?

電子掲示板(Computerized Bulletin Board Systems)とは、ユーザーがクライアントと接続ができるソフトウェアを実行しているサーバーです。接続後、ユーザーは公開掲示板またはプライベートなメール経由でメッセージのアップロードとダウンロードが可能となり、同時にファイルのダウンロード(通常はテキストファイル)や、もしクライアントが許可した場合にはダイレクトチャットや、テキストベースのマルチプレーヤーゲームをすることも可能でした。

参照:”Unauthorised” BBS, 1994, textfiles.com

80年代にモデムが導入された際に、BBSはインターネットにおける主要な体験でした。BBSは現代のインターネットの先駆け的存在でした。BBSはユーザーのモデムを直接的なP2P形式でサーバーへ接続することを要求しました。当時はウェブサイトのURLは存在せず、電話番号へダイアルする方式でした。ユーザーはBBS内で、ASCIIアートのロゴや、仕様書のテキストファイル等を閲覧することができました。当時のBBS文化はtextfiles.combbsdocumentary.comにてご覧いただけます。

参考:John Madil氏作のFidoNetロゴ

Fidoは世界初のBBSネットワークとなりました。FidoNet上でBBSが他のFidoノードを呼び出すことで、世界中でメッセージを交換することができます。当時は、別々のハードウェアが互いに通信する事が困難であったため、Fidoは全てのメッセージをユーザーから抽出していました。大学における同様のネットワークはBITNETでした。ノードはボランティアである「SysOps」により管理されていました。これによって、初めて、ローカルノードをダイアルするコストだけで、電子メッセージを世界中に送れるようになりました。

FidoNetはファンにより運営され、その後、データの圧縮が効率化されました。送信速度も向上し、一時は4万5千以上ものシステムが繋がり、世界中に数百万人以上のユーザーが利用していました。圧縮された公開メッセージの量は、1日で8MBにも及びました。

BBSは90年代前半にピークを迎え、その後、ISPダイヤルアップの登場とモザイクのようなユーザーフレンドリーなウェブブラウザーが取って代わりました。低速のインターネットでは限定的であった一般用途向けのTCP/IPのようなプロトコルを高速インターネットが実現しました。ダイアルアップはISPへ単独接続することを必要とし、ISPがハイパーテキストによるワールドワイドウェブ(World Wide Web)の世界へのゲートウェイになりました。リンクが埋め込まれたテキストによってウェブブラウザーが他のテキスト情報にアクセスできるようになりました。

BBSにログインすると、ユーザーにノードから伝達されたメッセージとファイルのリストが表示されます。これらのメッセージはメールと同じようなものですが、いずれかの掲示板に紐付けされており、一般に公開されます。これらの公開メッセージはソーシャルメディアのTwitter等と同じで、公開メッセージはスレッドやトピックによりフィルターする事ができました(FidoではこれをEchoesと呼びました)。しかし、それは瞬時とは言い難く、地球を回って別のノードにメッセージを伝達するのに数日かかる事もありました。

Beamの高セキュリティなBBS(Secure-BBS/SBBS)

こちらのGithubのリポジトリーにもある通り、BBSのアーキテクチャーはBeamのノードとウォレットで複製できます。ウォレットはモデム付きのコンピューターターミナルで、BeamのフルノードはBBSのノードに相当します。両者の間でメッセージがリレーされます。BBSでは個人に対して宛てたメッセージは公開されませんでした。Beamの高セキュリティBBS(SBBS)では、これらのメッセージは送信前に、楕円曲線暗号の公開鍵により暗号化されます。公開可能なメッセージは暗号化されず、特定のチャンネルに送信されます。

ユーザーはユーザー間で安全に、非同期的にコミュニケーションを行うことが可能となります。相手がオフラインであっても、送信者のメッセージはノードで待機され、同期する際に受信されます。

フルノードは保管・転送ネットワークを構築し、メッセージを受け取ると、データベースに保管し、分散型ハッシュテーブルと共にリレーします。クライアント (ウォレット) はノードが新しいメッセージを受け取った場合に通知が受け取れるように設定します。またクライアントは古いメッセージを受け取らないように、情報を受け取るチャンネルを選択し、呼び出し時にタイムスタンプを付加します。ウォレットにメッセージが届いた場合には、宛先のウォレットのみでメッセージの復号が可能となります。

この公開鍵のインフラは既に構築されています。暗号化においてはlinsecp256k1を採用しています。このライブラリは既にビットコイン及びその他の暗号通貨で実績があります。受信者の公開鍵はその人が持つBeamのアドレスです。あとは、電子BBSをベースにメッセージプロトコルを作るだけです。

AliceとBobの同期

  1. AliceとBobはキーペアを選択または生成します。公開鍵(pK)と秘密鍵(sK)が生成されます。
  2. 両者はチャンネルを選択するか、BBSサーバー (ノード) に適したチャンネルを確認します。
  3. 両者はそのチャンネルに接続します。

Aliceがメッセージを送信

  1. Aliceは受信者Bobを選択し、彼の公開鍵(B-pK)を使います。
  2. Aliceはメッセージを作り、返答用に彼女の公開鍵(A-pK)を含めます。
  3. AliceはBobの公開鍵(B-pK)でメッセージを暗号化します。
  4. AliceはBBSサーバー(ノード)にメッセージを送信します。

Bobがメッセージを受信

  1. BobはBBSサーバー(ノード)からメッセージを受信します。
  2. Bobはメッセージチャンネルの為にタイムスタンプを更新します。
  3. Bobはそのメッセージチャンネルで用意した鍵でメッセージを復号します。
  4. Bobが復号に成功した場合、ウォレットに通知します。
Beam SBBSの技術的アーキテクチャー

結論

「プライバシーは、この電子化時代のオープンな社会において必要な権利です。プライバシーとは隠蔽することではありません。」「プライバシーは人々が世界に対して開示したい情報を選択するための力です。」「私たちはプライバシーを欲するが故、取引に関わる当事者が、その取引に直接的に必要な情報だけを得るようにしなければいけません。」

これらはサイファーパンクマニフェストからの引用です。1993年3月にEric Hughes氏が投稿しました。彼らはプライバシーが標準仕様になっていて、個人がアイデンティティを開示したいと希望する時のみ開示することができるシステムを開発するために戦いました。これを実現するためには、プライバシーのある電子取引システムが必要でした。最初に成功した、単一障害点の無いシステムがビットコインでした。BeamはMimblewimbleを実装する事により、コンフィデンシャル・トランザクションとCoinJoinによって、よりプライバシーが高く、拡張可能なシステムを開発しました。

Beamは今後ノードをさらに解放し、プライベートなコミュニケーションチャンネルや、分散型のメッセージリレープロトコルなどを可能にします。それらによって、価値とコミュニケーションを同時に高セキュリティなチャンネルで送信する事が出来るようになります。これを実現することで、ユーザー間の取引が簡単になるだけではなく、資金を送信する前に受信者のアドレスを確認し、送金の確実性を向上させます。また、支払要求や、公式な通知なども可能になります。

更に、公開鍵暗号によって、送信者の信頼性はデジタル署名によって確認することが可能です。公開鍵は個人的に交換する事ができ、コミュニケーションチャンネルの信頼性が増します。

暗号通貨のネットワークが成熟するにつれて、ネットワーク上のコミュニケーションも同時に成熟する必要があります。テレグラム、スラック、ディスコードといったブラックボックス化され、自治権のないサードパーティアプリが信頼できるでしょうか。どの会社や、政府、軍隊も公開鍵暗号技術や、楕円曲線暗号技術に比べると、これらのアプリ上の情報の機密性を信用していません。

Beamは特にユーザー体験を重視しています。そのため、SBBSを開発し、Mimblewimbleの持つ複雑な仕組みをエンドユーザーが体感することなく、ユーザー体験をより良い物にしています。暗号通貨を一般に普及させるためには、分散性とパーミッションレス性、高度なプライバシーを確保し、良いユーザー体験を提供する必要があると考えています。

Beamはこれらの特徴とさらなる優位性を提供します。今後、他の暗号通貨も追随する事を願います。

参考

  1. Poelstra, A. (2016). Mimblewimble. Retrieved from https://download.wpsoftware.net/bitcoin/wizardry/mimblewimble.pdf

開発者コミュニティへの参加: Gitter

最新情報: https://t.me/BeamNews

Telegram(英語): t.me/BeamPrivacy

Telegram(日本語): t.me/beamjp

Twitter(英語): https://twitter.com/beamprivacy

Twitter(日本語): https://twitter.com/beamJapan

Discord(英語): discord.gg/BHZvAhg

Discord(日本語): discord.gg/yxPwH4Q

Reddit: reddit.com/r/beamprivacy/

Bitcointalk: https://bitcointalk.org/index.php?topic=5052151

フォーラム: https://forum.beam.mw/

ニュースレター: https://beamprivacy.substack.com/

ニュースレター: https://beamprivacy.substack.com/

--

--

Beam Japan

Beam (@beamprivacy) 日本語公式ブログ。$BEAM は#MimbleWimble プロトコルを実装した新しい暗号通貨です。2019年1月3日にメインネットローンチ。暗号通貨ユーザーに、高レベルのプライバシーと監査ソリューションを提供。日本語ツイッター(@beamJapan)を是非フォローしてください!