ユニバーサルなトランザクション署名:Ethereumのレイヤー2 Dappをシームレスにスケーリング🔐
本記事は、Universal Transaction Signing: Seamless Layer 2 Dapp Scaling for Ethereum 🔐(👽 Dilanka | Loom Network)の翻訳です。万一誤訳などありましたらPrivate Note機能でお知らせ下さい。
要約すると:Loom PlasmaChainは、ネイティブのEthereum Walletによって署名されたトランザクションを検証して受け入れる機能を備えており、レイヤー2のDPPスケーリングに最もシームレスなユーザーエクスペリエンスを提供する。 なぜこのユニークな機能がPlasmaChainでのみ可能なのか、そしてなぜ開発者とユーザーの両者にとって有益なのかご興味があれば、読み進めてほしい。😉
2019年3月31日、 — PlasmaChainのバリデーターが最初の分散型ハードフォークに賛成票を投じた。
このハードフォークは、EthereumユーザーがPlasmaChainのdappをEthereumのdappと同じくらいシームレスに使うことを可能にする機能セットを追加した。2.ユーザーは単純にMetaMaskアカウントや他のEthereumのネイティブウォレットを使えるようになり — さらにレイヤー1とレイヤー2を合わせてつかえるようになった。
もしあなたが初心者ならば、自分にこう問うかもしれない…
PlasmaChainとは何か?🤔
PlasmaChainとは、複数のサイトチェーンをEthereumメインネットへと橋渡しするレイヤー2のハブである。これによりさらに高速で安価なトランザクション、および迅速な承認時間が要求されるdappsのUXを大きく改善することが可能となる。
そしてこれは些細で不確実な推測でもない — 2018年末より実際に動き続けているのだ。
PlasmaChainのコンセンサスには、Delegated Proof of Stake (DPoS)が使用されている — つまり妥当なレベルの分散性を維持しつつも高速な承認時間が必要となる、ユーザーに接触するコンポーネントを持ったdappsにとっては、PlasmaChainは理想的なものであるということだ。
さらにトークンはレイヤー1から移転可能だ — このことによりPlasmaChainはEthereumのパーフェクトな補完物となる。
加えて…
DappsはEthereum上で独自トークンを発行することができる — そしてユーザーが触れるより複雑なコンポーネントを、レイヤー2へともたらすのだ。
しかしブロックチェーンでの主要なコンポーネントとはこういうものだ — 自らのアイデンティティを証明するために、全てのトランザクションに署名しなくてはならない。
そしてあるブロックチェーンを使うために全ユーザーは別個のアカウントが必要であるとしたら、レイヤー2の有用性は制限されてしまう。
少し背景を説明したが、あなたが疑問に思っているかもしれないので…
トランザクションの署名はどういう仕組み? 🤔
ウラジミルがドナルドに$100を送りたいという場面を想像してみよう。
ウラジミルはドナルドへ$100を送るようブロックチェーンに伝え、それと同時に同額が彼のウォレットから引かれる。
ブロックチェーンはウラジミルの指示を簡単に読み取ることができるが — しかしウラジミルであると主張する者が実際に彼であり、彼になりすましたとんでもない悪者ではないということを検証しなくてはならない。
そのためウラジミルは自身の秘密鍵(これはウラジミルだけが知っているパスワードによって保護されている)を使って、その指示をエンコーディングする — こうしてウラジミルにより考えられたその指示を、誰もが暗号学的に検証することが可能となるのだ。
ブロックチェーンがこれらの指示を自動的に(そして暗号学的に)検証した後、$100がウラジミルから差し引かれドナルドに入金される。
̶そ̶の̶後̶ド̶ナ̶ル̶ド̶は̶ペ̶ー̶パ̶ー̶カ̶ン̶パ̶ニ̶ー̶を̶立̶ち̶上̶げ̶、̶さ̶ら̶に̶
そういうことだ 😉
恐らくお気づきの通り— 現代のweb上のセキュリティのほとんどは、公開鍵暗号¹によって保護されている— そしてブロックチェーン上のトランザクション署名は、いくつかの重要な違いはあるが、かなり似たやり方で機能している。
説明させてほしい…
PlasmaChainはいかにして「多言語」化したのか、そしてこれがなぜ重要なのか
そして異なるブロックチェーンがトランザクションに署名するやり方についての技術的差異は、かなり多様である。
例えば…
EthereumとBitcoinは、後方互換性に適したsecp256k1 ²の楕円曲線を使用している。
一方で…
TendermintとPlasmaChainはEd25519 ³を使用している。これは検証実行時に10倍高速となるものだ。
フォークしたチェーンはフォーク元チェーンと同じソースを技術的に持ちながら(Ethereum ClassicがEthereumから、またBitcoin CashがBitcoinからフォークしているように)、それらは非互換であり続ける。なぜならそうでなければ、悪者が両チェーンへと同一トランザクションを送信し、資金を盗むことを許してしまう可能性があるからだ。
ふう。
おめでとう — 全てのレイヤー1チェーンの署名方法とトランザクション検証方法が異なっている技術的(そしてセキュリティ的)理由について、今あなたは適切に理解している。
要するに…
一度開発者がコードを書けば、複数ブロックチェーンからユーザーアクセスが可能になることが我々の目標であるのなら — ユニバーサルなトランザクション署名が必要となる。
我々のやり方をお見せしよう…
3ステップのユニバーサルなトランザクション署名:
- はじめに — PlasmaChainは「多言語」にアップグレードされた — つまり: 今ではメッセージがどのように署名されているかを検出し、適切な楕円曲線(及び我々のアルゴリズム)を使用して正しいアイデンティティを得ることが可能であるということだ。加えて、バリデーターはさらに追加のレイヤー1をトラストするために投票を行うことができる。
- 次に — PlasmaChainは、同一ユーザーが所有する複数ウォレットアドレスの分散レジストリを含んでいる。そのためレイヤー1のウォレットを用いてユーザーが自身のアイデンティティを証明することが可能であれば、これはレイヤー2においても十分な証明となるのだ。
- 最後に— PlasmaChain及びloom-js ⁴ は特別な互換機能を持っており、開発者はdappのコードを1行も変えることなく、ユニバーサルなトランザクション署名が可能となる。
全て複雑に思えるかもしれないが、簡単に言えば:
上の要素全てを組み合わせると— PlasmaChainにより、ユーザーはいかなる追加ステップも必要とせずに、我々が接続しているレイヤー1と互換性のある既存のウォレットであればどんなものでも使用することが可能となる。
さらにこれが全てではない。
それらのユーザーはウォレットを離れたり変換したりすることなく、もしくは新しくソフトウェアをダウンロードすることなく、ガス無しのdappsとのやりとりや、さらにレイヤー2でのスピード(すなわち超絶早い)を伴った通信を行えるようになるのだ。
そして用が終わったら、都合に応じて単にレイヤー1へと引き出せば良い。
特にすごい部分は?
- PlasmaChain上での検証は分散型である ✓
- あなたの鍵を保管する中央集権的サービスはどこにもない ✓
- 追加のトークンやプラグインのインストールはない ✓
- エンドユーザーに余計なものは何も要求されない ✓
PlasmaChain上にあるUTS(ユニバーサルなトランザクション署名)が可能なdappを見てみよう。あなたはすぐにUSTをスタートすることができる。
覚えておこう: MetaMaskやその他モバイルウォレットといった、既存のEthereumウォレットの使用が可能だ 😉
我々がCosmosやEOSとTronとの統合をすると、これと同じ機能が拡がっていく — そのためこれらチェーンのユーザーは、そのネイティブウォレットも同じく使用することが可能となるのだ。
あなたに質問があ…
あなたは開発者?— 今すぐ始める方法はこちら 🏁
あなたが開発者であるなら、始めるのに最も簡単な方法はweb3を使うことだ。
あなたが既存のPlasmaChain開発者であるなら — Loom Providerの1行を変更するだけで良い。
すなわち…
単にこれを変更しよう:
このようにしよう:
デフォルトでは — signerはいかなるethers-js サイナーも受け入れる。
MetaMask向けのやり方はこうだ:
Loom Networkは、イーサリアムのハイスケーラブルなDPoSサイドチェーン構築のためのプラットフォームで、大規模ゲームやソーシャルアプリにフォーカスしています。さらなる情報は こちらから.
LOOMトークンをステークして、PlasmaChainのセキュリティ維持に参加しませんか? やり方はこちら
そしてもしこの記事をお楽しみいただけ、最新情報の受け取りをご希望であれば、私たちのプライベートメーリングリストへの登録や、Telegram、Twitter、GithubやQiitaのフォローをお願いします!