Wait a moment...

【NEM技術勉強会】Greg Saiveさんからの招待状訳してみた

nem155xem (13)
2824
6
2019-07-20 08:46:07
【NEM技術勉強会】Greg Saiveさんからの招待状訳してみた

Googleの翻訳機能を使って、英語の投稿もある程度理解可能になりました。でも技術用語が多い文書の翻訳はどうしても不完全になります。そこで、NEM技術責任者のGregさんの投稿の英文翻訳に、人力だとどのくらい時間がかかるかやってみました。言語的正確さではなく、スピードと技術面の正確さを重視します。長いので適宜保存・公開しながら、やっていきますね。


コミュニティーのみなさん!

 

まず自己紹介させてください。私はGreg Saive (eVias)で、Nem財団の技術責任者をしています。NEMLogへのはじめての投稿になります。たぶん、これからたくさんの投稿をする予定の最初のひとつです。NEMLogプラットフォームは、NEM財団で現在進行中のプロジェクトについての透明性を確保するための、価値ある情報提供の場所だと思っています。ユーザーによる合意事項(Client Standards Definition)についての議論、今後採用される技術の方向性の決定、パブリックネットワークの公開、クライアントアプリ開発、その他のカタパルトの機能について、ここでシェアさせていただこうと思います。

 

寄付や投げネムを募ることを意図しているわけではなく、NEM技術に関する透明性を確保したいと考えています。NEMLogプラットフォームを、私達が運営するブログフォーラムと同じように、今回紹介するような文書を公開する場所にしたいと考えています。なぜなら、そうすることによって、NEMコミュニティーでより広く情報を共有し、透明性を高めることに繋がると信じているからです。

 

Peer-to-peerネットワークの分散化によって、プロジェクトに関する情報を皆が共有できることはとても重要でかつ挑戦的なものになります。そのために、財団はより広いNEMコミュニティーと協力して、ともにNEMの未来を形作って行きたいのです。では、始めましょう。

 

ここでは、皆さんのフィードバックを頂きたいと思っているたくさんの項目について紹介します:

 

ーカタパルトの概要

ーNIP-8: カタパルトのパブリックネットワーク公開について

ーNIP-7: QRライブラリの標準化

ーNIP-6: 決済機能付きウォレットに搭載されるべき多層アカウント構造決定について

ーNIP-2: トランザクションを記述するURI記述方法

ークライアントアプリについて

 

これらのトピックについてはこれまで、主にGithubSlackで議論されてきましたが、今後の重要な決定を伴う事項については、より高いレベルの透明性を持たせたいと思っています。以下に、これらの項目についての最近の話題と未決定事項についてご紹介します。

 

 

カタパルトの概要

 

カタパルトはNEMのJava版(NIS1のこと)の単なる書き直しではありません。より進化し、新しくなった機能によって大きく変化しました。ここにその一部を紹介します。

 

カタパルトのネットワークノードは、他の分散型台帳(ブロックチェーンのこと)とは異なる仕組みで動いています。それは、高度なスケーラブルマルチレイヤー構造によって特徴づけられます。詳細についてはこのリンク先で紹介されています。

 

カタパルトテクノロジーの注目すべき特徴は、他のカタパルトネットワークともコミュニケーションが取れるというところです。これをSecret Lock/Proofシステムと呼びます。そして、ただの複合ネットワークというだけでなく、異なるネットワーク間で相互に命令をやりとりできます。

 

このクロスチェーンスワップ技術については、リンクを参照してください。

 

カタパルトでは、NEMのトランザクションはより汎用的にプラグイン追加によって拡張されます。つまり、誰でもが新しいタイプのトランザクションを作ることが技術的に可能です。アグリゲートトランザクションはそのような新しいトランザクションタイプのひとつであり、Jaguar0625さんのツィートでも触れられています。

 

アグリゲートトランザクションでは、トランザクションを原子レベルでまとめることができます。まとめられたトランザクションはすべてがブロックチェーンに書き込まれるか、書き込まれないかのどちらかです。ソース

 

さらに、カタパルトではアカウント制限によって、自分のアカウントが対象となるトランザクションを厳密にコントロールできます。この機能はモザイク、トランザクションタイプ、アドレスごとに適用可能です。これについてもJaguar0625氏がツィッターで述べています。

 

アカウント制限は、あなたのアカウントを守ります。たとえば、自分のアカウントについてあらかじめ決められたモザイクだけを受け取り、他をすべてブロックすることができます。ソース

 

できたら、Jaguar氏によるTwitter投票「あなたはどのくらいカタパルトの新技術を知ってますか?」に参加してみてください。現在の投票は、マルチシグネチャーアカウントについてです。あなたはこれについて知ってますか?ぜひ投票してみて下さい!

 

最後に重要な事をひとつ。わたしたちは日本のQiitaGithubからたくさんの貢献をもらっています。この場を借りて日本のコミュニティーに感謝したいと思います。

 

これらの技術についてのより詳しい情報は、NEM Developer Centerに掲載されています。

 

 

NIP-8: カタパルトパブリックネットワークに搭載される機能

 

Githubで最新のカタパルト(エレファント)がリリースされ、パブリックリリースまであと少しです。

 

現在、NEMのパブリックリリースに向けて、様々なカタパルトの技術仕様について活発な議論がなされています。 最近はとくに、決定に慎重さが求められる事項が増えてきています。例えば、アップグレード後のシナリオやブロックチェーンデータの移行などです。

 

移行ワーキンググループは、カタパルトのパブリックリリースに向けて、様々な課題を処理しています。例えば、カタパルトに搭載されるソースコードに関するトピックには:

 

- プロトコールソースコード: catapult-server

- RESTゲートウェイソースコード: catapult-rest

- 連結ツール系ソースコード: catbuffer

 

などがあり、これらのソースコードについては間もなくピアレビューが始まるはずです。これを機会に是非Slackでのピアレビューに参加してみてください!

 

これらのプロトコールやパッケージソースコードの評価に加えて、 移行プロセスにはアップグレードシナリオやデータ移行について決定しなければならない事項があります。

 

パブリックブロックチェーンの移行について、あなたの意見が必要ですーGithubのディスカッションに参加してください!

 

 

NIP-7: QRコードライブラリの標準化

 

QRコードライブラリは1年以上も前にスタートしたプロジェクトです。今年に入ってから、わたしたちはNEM財団のチームとともに、この課題についての取組みを再開し、現在Githubに公開されているαテストバージョンで多くの進歩を実現しました。

 

https://github.com/nemfoundation/nem2-qr-library

 

今の所、このパッケージはアグリゲートトランザクションの仕様をQRコードに取り込む事ができないため、まだ開発中とされている状態です。QRコードは - 現在の最新仕様である (40)においても - せいぜい 1200 文字しか使うことができません。アグリゲートトランザクションを記述するにはあまりにも少なすぎるのです。現在の仕様では、送付トランザクションだけでも最低142文字使ってしまいます。

 

QRコード以外のものも検討に挙がっていますが、今の所解決には至っていません。われわれは現在もQRを置き換えることのできる仕様を探しており、他のエンコードアルゴリズムについても代替案を求めています。下記にいくつかの代替コードを挙げますが、やはりQRコードが最適化や可用性の点で優れています:

 

- https://en.wikipedia.org/wiki/Data_Matrix

- https://en.wikipedia.org/wiki/MaxiCode

- iQR Code: https://qrcode.meetheed.com/question40.php

- https://github.com/jabcode/jabcode

 

これらの代替コードは、アグリゲートトランザクション用の候補に挙がっているものです。

 

これ以外にも良い代替案があれば、ぜひともお知らせください!

 

 

NIP-6: 決済用ウォレットのための多層アカウント構造仕様

 

この件に関しては、特にコミュニティーのフィードバックが欲しいと思っています。このNIP-6 は、カタパルトへの移行をよりスムーズにするために、数ヶ月前に策定されました。また、これに関してウォレットのベータ版ソースコードをNEM財団のGithubにアップしました。: https://github.com/nemfoundation/nem2-hd-wallets

 

コード開発者とコア開発者との公開議論の場 では、KMAC メッセージ認証コード を、現在使われているSHA-3ベースの HMAC の代わりに使うことを議論しています。 KMAC は HMACよりも優れた暗号鍵導出アルゴリズムです。また、KMACはカタパルトで使われているKeccakSHA3暗号鍵と 最も高いご互換性 を持つと考えられる方式です。

 

もうひとつの重要な議論は、親子鍵を固定キー生成に限定するというものです。これによって、鍵の生成量は半分になりますが、生成されるキーはビットコインの BIP32規格にかなったものになります。これに関しての重要な問題は、現在検証に使われ充分にテストされているED25510楕円非固定暗号鍵については、まったくリソースが存在しないことです。そこで、われわれは公共親鍵公共子鍵のペアが生成ができないED25519楕円暗号鍵を使うために、固定キー生成のみを許可する決定をしました。これはED25519楕円関数を使う限り、自由な生成方法ができないという性質に伴うものです。このあたり専門的すぎてさっぱりわかりません。

 

また、カタパルトで使用されないbase58形式はサポートされません。

 

 

NIP-2: トランザクションのURI記述法

 

この NIP は、トランザクションがサインされてブロックチェーンに書き込まれるのに必要なURI (URLとURN)の仕様を策定するものです。この課題は、クライアントアプリケーションがカタパルト技術と互換性を持つために重要な意味を持ち、今年に入ってから継続的に議論されてきました。 現在は、NEM財団のGithubにベータバージョンがアップされています:

 

https://github.com/nemfoundation/nem2-uri-scheme

 

URI記述法は、アプリケーションとNEMウォレット間の情報交換を可能にします。デスクトップウォレットともモバイルウォレットとも互換性があり、アプリケーションからトランザクションリクエストを発行してサインを待ちます。

 

このプロトコールは、Firefoxのセキュリティー仕様によりweb+ コードを先頭に持ちます。トランザクションURI の例を示します:

 

web+nem://transaction?data=<data>&generationHash=<generationHash>&endpoint=<endpoint>&webhook=<webhook>

 

この仕様により、ウェブアプリケーション開発者は、ユーザーが彼らのプラットフォームに参加するのに必要なURIを生成することができます。トランザクションデータは、トランザクション形式化された16進数でもDTO形式でも良いです。このパッケージは現在 nem2-qr-library に組み込まれており、モバイル端末から利用できるようになっています。

 

 

クライアントアプリの現状

 

いくつかのクライアントアプリとの連携に関して、わたしたちが持つ公開Githubへの協力に期待しています。現在活発に活動しているプロジェクトの例としては:

 

 

もちろん、財団は孤立して活動しているわけではなく、カタパルトに向けたクライアントアプリケーションやソフトウェア開発キット(SDK)開発者と協力し相互にレビューを行っています。ぜひ Github を訪れて、カタパルトのソースコードやスニペット開発に触れてみてください!

 

カタパルト関連プロジェクト開発にご協力をお願いします!

 

結語

 

われわれは、現在今年Q4に予定されているカタパルトパブリックリリースに向けての アップグレード 段階に入っています。そのために、すべてのNEMコミュニティーからの数多くの 議論とフィードバック が求められています。ぜひとも、 Slackでの会話に参加してご意見を伺わせてください。

 

この記事がお役に立つことと、みなさんの変わりないサポートを期待しています。

 

Gregory Saive

Head Developer, NEM.io Foundation(NEM財団開発責任者)

Mail: greg@nem.foundation | Telegram: https://t.me/evias

 


全体でかかった時間は3時間。NEM Technical Reference翻訳の1項目分くらいになりました。今後も、自分のためになると思った文書については翻訳していこうと思いますが、直接SlackやGithubに参加して勉強していかないと厳しい面もありそうです。

 

目指せ北海道

Comment
目指せ北海道
目指せ北海道
2019-07-21 06:00:56ID:134240

>>やそ::さん
ArduinoみたいなIoT端末なら、Bluetoothとか使ってもっと多くの情報を送り出せるから、そっちにいくのかなと思います。あるいは、送付と受け取りのペアくらいなら、QRでも入りそうな気がするし、ほとんどのユースケースがそんな感じなら問題ないのかもとか。

やそ
やそ
2019-07-20 21:01:38ID:134158

QRコードの意味はこれ読んでようやくわかりました!
QRに載せられないって話面白そうですね!

ありがとうございました!

目指せ北海道
目指せ北海道
2019-07-20 14:12:50ID:134112

>>トレスト::さん>>ぺぺ::さん
NEM Technical Reference読んでなかったらもっと時間かかったでしょうね。それにしてもNEMが新しい技術を取り入れるスピードは普通じゃないです。Libraが真似するわけだ。

ぺぺ
ぺぺ
2019-07-20 14:01:46ID:134109

勉強になります。と言うか自分ももっと勉強しないとと改めて思わされます。

トレスト
トレスト
2019-07-20 09:44:15ID:134059

>>目指せ北海道::さん
マイペースで!

目指せ北海道
目指せ北海道
2019-07-20 09:33:34ID:134056

だいたい1時間おきに休憩いれいきます。この調子だと丸一日かかりそう。

この記事を書いた人
趣味はバイクでツーリングしながら、ブログを書いたり、動画配信したりすること。 ラズパイをバイクに積載して、ボタン一つでYoutubeライブ配信できるシステムを作りました。それを発展させて、XEMの価格を常時監視、取引するボットも作って活用してます。子供の頃から技術書を読むのが好きなので、NEMの技術文書を訳したりもしています。 本業は再生医療研究者です。歯の神経の中にいる「歯髄(しずい)細胞」を活用して新しい医療を開拓するために、しずい細胞プロジェクトを推進中。細胞の流通(トレーサビリティー)管理にNEMを使おうと思ってmijin v.2を導入したんですが、コロナで実用化が全然進みません。管理システムの名称は「ShizuiNet」。