IOTA ドキュメンテーション

この記事は原題『IOTA Guide』の翻訳です。
ご参考までに公開します。必要だと思われる部分には言葉や構成(テーブルや網掛け等)を補っています。私の力不足のため、えいやで翻訳されている部分もあります。最後には訳者注が入っています。2017年9月21日現在での最新情報が補われています。

投稿者:Dominik Schiener

イントロダクション

このウェブサイトはIOTAとそのエコシステムに関するドキュメンテーションの仮設住宅(注1)です。そしてIOTAを使って新しいアプリケーションを作ろうとしている開発者が、必要なすべての情報を得るための集約的情報源となっています。

IOTAとは/ディープダイブ

IOTAとは革新的で次世代のパブリック型分散台帳であり、その基幹に”Tangle”と呼ばれる新しい発明を用いています。TangleはDAG(有向非循環グラフ)をベースにした新しいデータ構造です。従ってブロック、チェーン、マイナーのいずれも存在しません。この革新的なアーキテクチャーにより、IOTAにおける物事はブロックチェーンと比較して全く異なった動きをします。IOTAの概略について、より詳しく知りたい場合は私たちのブログを参考にしてください(注2)。

IOTA Guide』より引用

(DAGとブロックチェーンの対比以外で)言及に値する主な違いは、どのようにしてIOTAがコンセンサスに至るのかや、どのようにトランザクションが生成されるのかです。先ほど言及したように、マイナーは存在しません。これが意味することはトランザクションを発行したいネットワークの参加者は、過去2つのトランザクションを承認することによりネットワークのコンセンサスに積極的に参加しなければならないということです。この過去の2つのトランザクションの有効性の証明は、承認済みトランザクションの現在の状態についてネットワーク全体がコンセンサスに達することを保証します。またその証明はIOTAでしか見られない様々な独自の機能を実現します。

IOTAには、そのアーキテクチャによって独自に実現された様々な機能があります。

  • スケーラビリティ:IOTAは高いトランザクションスループットに到達可能です。それは並列検証(注3)によるものです。IOTAの並列検証には一定間隔で承認されるトランザクションの数に制限がありません。
  • トランザクションフィー(以下、手数料)なし:IOTAには手数料がありません。
  • 非中央集権:IOTAにはマイナーが存在しません。トランザクションを発行するネットワーク参加者全員がコンセンサスに活動的に参加します。従って、IOTAは他のブロックチェーンよりも非中央集権的です。
  • 量子耐性:IOTAはCurl(注4)という名の新しい3進数のハッシュ関数を用いており、それが量子耐性となります(ヴィンテル二ッツ署名)。

これからのセクションでは、IOTAの背後にある重要な特徴や法則のいつくかについてディープダイブして(深く潜って)いきます。

トライナリー(三進数)について

このドキュメンテーションでは、 トライナリーベースの(trinary-based) というフレーズをよく目にすることになります。これはIOTAで使用されるデータ構造のリファレンスとなるものです。トライナリーベースのシード、アドレス、ハッシュなどを参照する場合には、ラテンアルファベットと9の文字だけによって構成される文字列を意味します。

// All possible tryte values
var trytesAlphabet = "9ABCDEFGHIJKLMNOPQRSTUVWXYZ"

Curlの動き方に従い、単一のハッシュは常に81-trytes(81字)で構成されています。時に90-trytes(9-trytesのチェックサムを含んでいます)になる場合もありますが。

有効なTrytes: VBVEUQY  無効なTrytes: Vaafd8432 

シードとアカウント

全ての始点はシード”種”です(シャレです)。秘密鍵やアドレスをもったアカウントを作るために、セキュアなシードを手にする必要があります。シードは81-trytes(またはそれ未満。推奨しませんが。)で、アカウントや資金にアクセスする独自の鍵になります。シードは安全に保管すべきです。

IOTAにおいては、3つのセキュリティレベルがあり、あなたはその中から選択することができます。セキュリティレベルはハッシュ化のラウンド数により決まります。それは同じシードから3つの異なるアカウントをもつことができることを意味します。

セキュリティレベル セキュリティ
81-trits(低い)
2 162-trits(普通)
3 243-trits(高い)

243-tritsセキュリティを全ての取引で使用することを推奨します。クライアントライブラリではセキュリティレベルの選択と切り替えが簡単にできるようになっています。

秘密鍵とアドレス

秘密鍵はシードキーインデックスに由来します。その秘密鍵からアドレスを生成します。キーインデックスは0から始まり、新しい秘密鍵やアドレスを生成するべく増加していきます。すべての機密保護機能がクライアント側で実装されています。これはブラウザやオフラインのコンピュータでも秘密鍵やアドレスを生成することができることを意味します。全てのライブラリはこの機能を備えています。

IOTAはヴィンテルニッツ ワンタイム署名を使用しているので、一度使用した秘密鍵(そしてアドレス)を再利用するべきでないことを覚えていてください。秘密鍵の再利用は結果的に資産を失うことに繋がりかねません(継続的な再利用から攻撃者は署名を偽造することができます)。

取引所には秘密鍵ではなくシードを保管することが推奨されます。

更なる説明や例が必要な場合は、こちらをご参照ください。

トランザクションの中身

(エンコードされた場合に)IOTAのトランザクションは2673tytesから成っています。そのtrytesをデコードした場合に、下記の値をもつトランザクションオブジェクトを得ることができまます。

オブジェクト
hash 文字列 81-trytes このトランザクション独自のハッシュです。
signatureMessageFragment 2187-trytesのシグネチャメッセージフラグメントです。インプットを送る場合に、ここに秘密鍵の署名が記録されます。署名を求められないのは、それが空の場合です(中身は全て9になります)。またトランザクション生成時に、シグネチャメッセージフラグメントの中に、messageの値を含めることができます。これについては後述します。
address 文字列 81-trytesのアドレスです。これが*アウトプット*になる場合には、受取人のアドレスとなります。これが*インプット*になる場合には、トークンを送信するために使用されるインプットのアドレスとなります。(換言すれば、アドレスは秘密鍵から生成されます。)
value 整数 トランザクションにおいて送金される金額です。
timestamp 整数 トランザクションのタイムスタンプです。IOTAにおけるタイムスタンプは任意であることを知っておくべきでしょう。
currentIndex 整数 Bundleにおけるトランザクションのインデックスです。
lastIndex 整数 Bundleにおけるトランザクションの総数です。
bundle 文字列 81-trytes Bundleのハッシュです。Bundleのトランザクションをグループ化するために使用されます。Bundleハッシュを用いれば、同一のBundleに含まれるトランザクションを特定することができます。
trunkTransaction 文字列 81-trytes このトランザクションよって一番目に承認されたトランザクションのハッシュです。
branchTransaction 文字列 81-trytes このトランザクションよって二番目に承認されたトランザクションのハッシュです。
nonce 文字列 81-trytesのハッシュです。ナンスはネットワークによってトランザクションが受け入れられる際に必要になります。ナンスはプルーフオブワーク(attachToTangle API呼び出しによるIRIにおいて、またはccurlなどのライブラリにおいて)によって生成されます。

コアクライアントは、このデータのすべてをtryteにエンコードし、2673-trytesの文字列として格納します。このデータを読むためには、データをクライアントライブラリの機能でデコード/エンコードを行う必要があります。これは生のtrytes形式のトランザクションの例です。

999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999A9RGRKVGWMWMKOLVMDFWJUHNUNYWZTJADGGPZGXNLERLXYWJE9WQHWWBMCPZMVVMJUMWWBLZLNMLDCGDJ999999999999999999999999999999999999999999999999999999YGYQIVD99999999999999999999TXEFLKNPJRBYZPORHZU9CEMFIFVVQBUSTDGSJCZMBTZCDTTJVUFPTCCVHHORPMGCURKTH9VGJIXUQJVHK999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999

そして、これは同じトランザクションオブジェクトです( `iota.utils.transactionObject()`で変換を試すことができます)。

{
    "hash":"IPQYUNLDGKCLJVEJGVVISSQYVDJJWOXCW9RZXIDFKMBXDVZDXFBZNZJKBSTIMBKAXHFTGETEIPTZGNTJK",
    "signatureMessageFragment":"999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999",
    "address":"A9RGRKVGWMWMKOLVMDFWJUHNUNYWZTJADGGPZGXNLERLXYWJE9WQHWWBMCPZMVVMJUMWWBLZLNMLDCGDJ",
    "value":0,
    "tag":"999999999999999999999999999",
    "timestamp":1482522289,
    "currentIndex":0,
    "lastIndex":0,
    "bundle":"TXEFLKNPJRBYZPORHZU9CEMFIFVVQBUSTDGSJCZMBTZCDTTJVUFPTCCVHHORPMGCURKTH9VGJIXUQJVHK",
    "trunkTransaction":"999999999999999999999999999999999999999999999999999999999999999999999999999999999",
    "branchTransaction":"999999999999999999999999999999999999999999999999999999999999999999999999999999999",
    "nonce":"999999999999999999999999999999999999999999999999999999999999999999999999999999999"
}

Bundle

IOTAはUTXOライクなスキームを採用しています。これはトークンを送金するためにインプット(アドレス)を持っていることを意味します。アドレスは秘密鍵から生成されます。アドレスはtrytesでエンコードされたシードに由来するものです。IOTAにおける送金は、アウトプットとインプットから構成されるBundleです。Bundleはアトミックトランザクションです。つまり、Bundleはそれに含まれる全てのトランザクションがIOTAネットワークによって受け取られるか、あるいは全てのトランザクションが棄却される仕組みになっています。通常の送金において、Bundleは4つのトランザクションから構成されます。

インデックス 役割
0 アウトプット。受取人のトランザクション >0(ユーザーによって定義されます)
1 まずBundleにインプットアドレスの全額をエントリーします。このBundleエントリーは1番めの署名を含んでいます。(例えば、Aliceの署名を2つに分けたうちの前半です。) <0(インプットの支払い)
2 Aliceの署名を2つに分けたうちの後半です。
3 アウトプット。もし残高がある場合(Aliceが全額を支払っていない場合)、残高はお釣りのアドレスに送金されます。 >0(インプットとアウトプットの差)

Bundle独自の特徴はトランザクションはBundleハッシュを介して特定されます。 trunkTransaction を介してではありません。これはテールトランザクション(インデックス0)が trunkTransaction 、つまりindex1のトランザクションハッシュを参照し、インデックス1はインデックス2を参照し(同時に承認し)、以下同様になっていくことを意味します。trunkTransactionをトラバース(横切って行く)することで、テールトランザクションからBundle全体のトランザクションを取得することが可能になります。

ひとつのトランザクションが明確に複数のインプットとアウトプットを含むことができるのです。

トランザクションの生成

先ほど述べたように、IOTAにはマイナーが存在しません。従って、トランザクションを生成するプロセスは、他のブロックチェーンとは異なります。IOTAにおけるプロセスは下記のようになっています。

  1. 署名:秘密鍵でトランザクションインプットに署名します。これはオフラインでも可能です。
  2. チップ選択:MCMCがランダムに2つのチップを選択するために使用されています。チップというのはあなたのトランザクション(branchTransactionやtrunkTransaction)に参照されるものです。
  3. プルーフオブワーク:ネットワークにトランザクションが受け入れられるためには、プルーフオブワークをする必要があります。ハッシュキャッシュに似ており、Bitcoin(スパムやシビル攻撃対策)とは違います。IOTAのプルーフオブワークは現代のPCで数分かかります。

これが完了した後、branchTransaction、trunkTransaction、そしてトランザクションナンスオブジェクトはアップデートされるべきです。これはトランザクションをネットワークにブロードキャストし、その後に他の誰かによってそのトランザクションが承認されるのを待つことを意味します。

コーディネーター

ネットワークの成長と攻撃からの防御を実現させるため、IOTAは現在コーディネーターに頼っています。コーディネーターはトランザクションが有効であるかを検査し、その後ネットワーク全体によって有効化されます。コーディネーターはIOTA財団によって運用されており、マルチシグネチャを採用しています。コーディネーターが悪事を働くことはできません。なぜならネットワーク全体によってチェックされ、有効化されているからです。コーディネーターはネットワークに対して夏までのオプションであることに注意してください。一旦ネットワークが十分に成長したら、コーディネーターは完全に消去されます。(注5

コアとライブラリの概略

タイプ 名前 言語 レポジトリ ドキュメンテーション
コア IRI Java https://github.com/iotaledger/iri https://iota.readme.io/
ライブラリ iota.lib.js Javascript https://github.com/iotaledger/iota.lib.js https://github.com/iotaledger/iota.lib.js
ライブラリ iota.lib.py Python https://github.com/iotaledger/iota.lib.py もうすぐ
ライブラリ iota.lib.java Java https://github.com/iotaledger/iota.lib.java https://iotaledger.github.io/iota.lib.java/javadoc/
ライブラリ iota.lib.csharp C# https://github.com/iotaledger/iota.lib.csharp もうすぐ
ライブラリ iota.lib.go Go https://github.com/iotaledger/iota.lib.go もうすぐ

 

私たちは、すべての取引所にJavaコアをJavascriptライブラリと一緒に利用することをお勧めします。それがノードやブラウザで使用する場合に最も成熟したライブラリです。コアもライブラリもセキュリテイ対策が既に施されました。

IRIとは

IOTAのリファレンス実装(IRI)はJavaで書かれており、現在利用できる唯一のコアクライアントです。これはネットワークにフルノードとして参加するために必要なすべてのコア機能を実装しています。IRIはAPI(一定の制限付き)を公開しています。APIによって必要なすべての機能にアクセスしてネットワークの概要を得ることができ、IRIを利用して取引を行います。

IRIによって公開されたAPIは制限されており(有効なAPI呼び出しについての詳細はこちらをご覧ください:https://iota.readme.io/)、この理由はセキュリティによるものが大きいのですが、必要なすべてのキー署名と処理をローカルで実行してリモートノードに接続することができるようになっています。従って、IOTAをフル活用するには、提供されているライブラリも使う必要があります。

Github上のIRIの公式レポジトリはこちらです:https://github.com/iotaledger/iri

テスト目的でしたら、 testnet を利用することをお勧めします:
https://github.com/iotaledger/iri/tree/testnetリンク切れ(9月26日追記)

IRIのインストール

IRIをインストールするためのインストラクションはこちらです:https://iota.readme.io/docs/install-iri。すぐに新しいリリースを有効化するための手順を追加する予定です。IRIは次のようにしてインストールできます:

git clone https://github.com/iotaledger/iri
cd iri
mvn clean compile && mvn package

すると target フォルダが得られます。そのなかにはjarファイルが格納されています。開発者向けのバージョンを実行したい場合は、

git clone https://github.com/iotaledger/iri -b dev

を実行してください。

IRIを走らせる

IRIを走らせるためには、まずネイバー(隣人)を探しましょう。執筆時点でIRIはピア探索メカニズムを採用していないので、ピア間で手動でテザリングをしてください。IOTAのコアメンバーに接触することをお勧めします。あなたをサポートします。ネイバーとの通信には TCP を使用することを推奨しますが、UDPも利用可能です。

ネイバーを見つけたら、IRIをスタートできます。ポテンシャルスタートアップフラグをすべて回収するには、Readmeを参照してください。

IRIテストネット

IRIの開発とインテグレーションを加速するために、トークンを失うことを心配することなく特定の機能をテストできる特別なテストネットをセットアップしました。テストネットワークに参加するためには、IOTA Slackの #testnet チャンネルに参加してくだい。IRIインスタンスを立ち上げるには –testnet フラグを立てる必要があります。

コーポレート・パートナーの場合には、私達がサポート可能なプライベート型のテストネットの用意があります。詳細な情報については、コアチームのメンバーにコンタクトをとってください。

Javascript ライブラリ

Javascriptライブラリは、最も確立され使用されているものです。それはIOTAをフル活用するのに必要な機能を全て備えています。ラッパーAPI、暗号関連の機能、その他のコアAPIも含んでいます。Javascriptライブラリは、ブラウザで使用することも、コード内で直接使用することも簡単です。また、bowerやnpmを介してローカルに使用することもできます。

npm install iota.lib.js

bower install iota.lib.js

詳細なドキュメンテーションはこちらでご覧ください:https://github.com/iotaledger/iota.lib.js

ライブラリについての例を知りたい場合は、こちらを参照してくだい:https://learn.iota.org/

取引所のガイドライン

これからご紹介するのは、IOTAのインテグレーションを加速する取引を支援することを目的としたリソース集です。このリソース集は、参考になるガイドライン、インテグレーションに対する共通の課題、特定のフレームワークのサンプルコードの詰め合わせです。執筆時点で、IOTA財団は”Hub IXI”に取り組んでいます。それは取引、ウォレット、フォーセットなどの入力管理に関連する複雑さを処理します。

IRIのセットアップ

IRIをセットアップする場合に、私たちは取引所に異なる集団と最低でも3つのIRIノードをセットアップするように推奨します。
そうすれば、 getBalances  getInclusionStates などの重要なAPI呼び出しを行う場合にも十分な定足数のノードをネイバーとすることができます。他のAPI呼び出しでは、ひとつのノードを設定するだけで十分です。

オフライン環境でマルチシグネチャアドレスを生成する場合には、Javascriptライブラリを使用してください。必要なものはシードだけです。他のあらゆるものはそのライブラリでセキュアに実行されます。オフライン環境でトランザクションに署名をした後、必要なチップ選択やプルーフオブワークを実行して、署名されたtrytesをオンラインに持っていくことができます。

アドレスの生成

アドレスを生成する場合に、3つのセキュリティレベルがあり、あなたはその中から選択することができます。

セキュリティレベル セキュリティ
81-trits(低い)
2 162-trits(普通)
3 243-trits(高い)

私たちは取引所に全てのアドレスにおいてレベル3のセキュリティ(243-trit)を使用することを推奨します。このアドレスはホットウォレット、コールドウォレット、マルチシグネチャのために生成されたり、ユーザーデポジット用に生成されたりするものです。

それに加えて、バックエンド(残高の内部シャッフル)や、フロントエンド(ユーザーデポジット)で使用されるアドレスに関して、常にアドレスチェックサムを生成し、使用するように取引所に勧告します。有益な機能である addChecksu  isValidChecksum を確認してください。

セキュアなマルチシグネチャアドレス(ホットウォレットでもコールドウォレットでも)を生成する

もしIOTAにおいてマルチシグネチャがどのように機能するのかを知りたい場合は、ここを参照してください注6)。コールドストレージのセットアップにはマルチシグネチャをJavascriptライブラリを使用して設定することをお勧めします。IOTAの美しさは、署名や、アドレス生成といった機密情報までを含むすべての暗号機能を、コアクライアントをインストールすることなく利用できることです。これはセキュアなオフライン環境(言い換えれば、インターネットに接続していないラップトップ)でマルチシグネチャアドレスをセキュアに生成できることを意味します。セキュアに保存する必要があるものは、シードです。秘密鍵はシードに由来し、秘密鍵はトランザクションの署名に使用されます。

オフラインまたはオンラインのマルチサインアドレスを生成する場合に気をつけるべきことは、正しい順序でキーダイジェストを共有した上で、マルチシグネチャを生成することです。生成されたマルチシグネチャアドレスが正しいことを確認できるように、検証機能が実装されています。キーダイジェストの共有はセキュアです(秘密鍵はキーダイジェストに由来しません)。

心に留めていただきたいのは、キーインデックス管理を適切に行うことが最も重要であることです。IOTAはワンタイム署名を採用しているので、キーの再利用をするべきではありません。従って、どのキーインデックスがシングルまたはマルチシグネチャアドレスに使用されたのか、または使用されていないのかをしっかりと確認する必要があります。

デポジットの受け入れ

ユーザーのデポジットに関するアドレス生成については、IRIセットアップで説明しました。デポジットが成功した後はあなたのホットまたはコールドウォレットにトークンを送り、その後ウォレットの方で新しいアドレスを生成してください。これは新しいデポジットに備えるためです。更なるセキュリティ対策のために、タグフィールドを使用してユーザーとそのデポジットを特定することができます。タグフィールドは、固有の27-tryteの値をとることができます。

概して言えば、取引所にはシードからアドレスのプールを生成しておくことを推奨します。

ユーザーがデポジットアドレスへのトランザクションを生成した場合には、トランザクションが正式に承認されるまで待つ必要があります。デポジットが承認されたかどうかを確認する方法は二つあります。:

getBalancesを介して
おそらく預金が成功したかどうかを知る最も簡単な方法は、getBalances API呼び出しによってアドレスの残高がどうなっているかを確認する方法です。これの前提条件は、個々のユーザーごとに一意のデポジットアドレスがあることです。デポジットアドレスをインプットとしてgetBalancesを継続的に呼び出すことで、アドレスに承認された残高があるかどうかを判断することができます。

findTransactionsを介して
デポジットアドレスでfindTransactionsを継続的に呼び出してください。トランザクションが存在した場合には、(utils.transactionObjectを介して)そのトランザクションと同じBundleハッシュを持つすべてのトランザクションを取得し、正しいテールトランザクションを取得し、そしてそのトランザクションにおいてgetInclusionStateを呼び出します。

心に留めていてほしい重要事項

  • !重要! アドレスの再利用はやめてください。
  • キーインデックスの管理は非常に重要です。
  • ダイジェストの共有は可能ですが、秘密鍵の共有は厳禁です。
  • inclusionStatesを検索する場合は、bundleのテールを使用してください。
  • アドレスにはレベル3のセキュリティ(243-trit)だけを使用してください。

訳者注

注1)つまりこのサイトは仮のドキュメントであって、一時的なものであるということです。
注2)この記事については既に翻訳済みです。下記をご覧ください。
IOTA入門(プレゼン資料付き) 注3)原語「parallelized validation」
注4)2017年9月初旬、Nalura氏ら外部研究者チームによりCurl関数の脆弱性が指摘されました。これに対しIOTAチームは実際上のリスクはなく、8月には既に代替となるKerl関数を導入済みだと返答しました。この返答はCurl disclosure, beyond the headlineに掲載されています。この記事についても既に翻訳済みです。下記をご覧ください。
Curlの脆弱性の公表について 注5)夏までのコーディネーターの消去は撤回されています。
注6)Dominikのマルチシグネチャスキームを利用して、Bitfinexがマルチシグネチャウォレット”smidgen”をリリースしています。オリジナルはこちらです。この記事についても翻訳済みです。下記をご覧ください。
Smidgen-IOTAマルチシグネチャウォレット-の実装方法

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です