髙妻智一LISKのデジタル署名、アドレス生成などの技術情報まとめツイートシェアはてブLINEPocketLISKの技術情報LISKはbitFlyerが取り扱っているので投資に関することは情報が多いのですが、技術的情報が少なかったので個人的に調べたことをまとめておきます。デジタル署名アルゴリズムLISKのデジタル署名にはエドワーズ曲線デジタル署名アルゴリズムというものが使われています。詳細は下記のQiita記事がわかりやすいかと思うので参照してください。https://qiita.com/angel_p_57/items/a1dc4e9c0b18a23c5242LISKではエドワーズ曲線デジタル署名アルゴリズムを実装したed25529が使われています。ちなみにBitcoinとEthereumで使用しているデジタル署名はsecp256k1というものになります。秘密鍵と公開鍵のキーペア生成にもed25529は使われています。BIP39のシード値をsha256でハッシュ化し、その結果をed25519に渡して秘密鍵と公開鍵が生成されます。残高はUTXOではなくEthereumと同じようにアカウントベースで管理されている。種類とフォーマットLISKのアドレス下記のような形式の1つしかりません。BitcoinやBitcoinCashみたいにたくさんないのでシンプルです。bitcoincash:qqs35fza7k0pdls5th0gn6g5ct5sgvrp6qz2etn50eしかし、アドレスサイズが他の仮想通貨よりも小さくなっているので、アドレスの衝突が起こる可能性が高くなるセキュリティリスクを負っています。対策方法は後述します。LISKのアドレスが短い理由を議論しているredditの記事https://www.reddit.com/r/Lisk/comments/7nn7y4/reason_for_lisks_short_address/アドレスが短いことによるセキュリティリスクをまとめた記事https://research.kudelskisecurity.com/2018/01/16/blockchains-how-to-steal-millions-in-264-operations/アドレス衝突の対策アドレスの衝突リスクを考慮して、LISKは自分のアドレスと公開鍵を紐づけることを推奨しています。そのため、自分に送金トランザクションを発行して、公開鍵とアドレスを紐づける。手数料は通常の送金と同じで0.1LSKかかる。受け取りしかしていないアカウントはアドレスと公開鍵が紐付いていない。上の記事でも議論されていますが、LISKの開発者はアドレスを短くすることで読みやすく、書き起こしがしやすくするために短くしていると投稿しています。そもそもこのようなリスクが有るのであればアドレスを短くする必要がないといった反論もありますね。トランザクションを発行して、公開鍵をネットワークにブロードキャストしないとセキュリティが担保できないのはユーザフレンドリーであるとは言えない気もします。ブロックとトランザクションブロック生成コンセンサスアルゴリズムはDPoSで101人のデリゲータによって承認され、10秒に1回ブロックが生成される。101人のデリゲータに承認されるとそのブロックのトランザクションはconfirmedとなる。トランザクショントランザクションへの署名はed25519を使う。2018年6月時点で送金手数料は0.1LSKで固定されていますが、今後変更されるとのこと。LISKは送金時に2段階認証の仕組みをアドレスごとに追加することができる。この機能を使うには5LSK払う必要があり、追加すると、12単語のパスフレーズをかけれることができる。0~7まで8種類あり、5,6,7は今後なくなるので非推奨となっている。0のトランザクションを使うだけでいい。スマートコントラクトJavascriptで実装できる。今はまだ何もできなさそう。最後に最後にブロックチェーンエンジニアって何?どうやったらなれるの?という人向けに書いた下の記事も読んでみてください。スマホゲームを作る子会社に所属し、サーバーサイドのエンジニアを担当。2年目の終わりから新規子会社の立ち上げに参加し、サーバーサイドのエンジニアリーダーとしてサービースのリリースから運用までを担当。Incにブロックチェーンエンジニアとして入社。コメントをキャンセルメールアドレスが公開されることはありません。*サイトこれからのエンジニアの転職方法についてGolangで並列処理をまとめるsync.waitGroupとerrorgroup.Groupの使い方RECOMMENDこちらの記事も人気です。