【2020年決定版】ストップ!セルフGOX!秘密鍵を守るためのチェックリストとツールの格付け

ブロックチェーン・暗号資産と切っても切り離せないのが、鍵の紛失、いわゆるセルフGOX (セルフゴックス)です。

ビットコインイーサリアムNEMといった暗号資産の価格が高くなればなるほど、たくさんのセルフGOXの相談を受けます。

しかし、セルフGOXはなってからでは手遅れです。

事前の準備を整えるために、簡単なチェックリストを用意しました。

ぜひチャレンジしてみてください!

秘密鍵をなくさないためのチェックリスト

全部で7問です。

満点目指して頑張ってください。(全部2択)

docs.google.com

いかがでしたか?

満点だった人は、きっとセルフGOXしないでしょう。ひとまずは安心です。

5点以下だった人は、セルフGOX する可能性がそこそこあります。

最後の質問がわからなかった人は、初心者さんかもしれませんね。セルフGOX の危険性が極めて高いです。

ちなみに、セルフGOX と詐欺は損金算入できないため、税控除にもなりません。単純な損失です。

パスワード管理ツール

次に、意外と語られることのないパスワード管理ツールについて話したいと思います。

昨今ではいろんなウェブサービスが数え切れないほど出てきているにもかかわらず、いくつかのパスワードを使いまわしているひとの話をよく聞きます。

人間は忘れる生き物ですし、ウェブサービス側がパスワードを漏洩する事件も毎年のように起きてますので、そろそろパスワード管理ツールをつかいはじめてみませんか。

じゃあ、どのツールがいいの?という話になりますので、2020年決定版を格付けしたいと思います。

Bitwarden

まずなんと言っても、Bitwarden は外せません。

オープンソースで開発されているため、ブラックボックスになっている部分はほとんどないと言っていいでしょう。

Bitwarden の内部でもデータを暗号化して保存しているため、仮に、Bitwarden 社が情報漏洩をしたとしても

そこに保存したデータを解読することは困難です。

技術者であれば、自分でBitwarden をclone して運用できるようですが、運用費用やメンテナンスを考えたら、有料版を使う方がリーズナブルです。

また、複数人でパスワードを共有するときなどにも有効なため、チームで活用している例も耳にします。

無料で利用開始できるところもポイントが高いです。

ブロックチェーン大学校校長 ジョナサン氏を始め、このツールを推奨する声は多いです。

簡単さ: ☆☆☆☆☆

自由度: ☆☆☆☆☆

値段: ☆☆☆☆☆

日本語対応: ☆☆☆☆☆

bitwarden.com

1Password

パスワード管理ツールといえば、1Password を思いつく人も多いかと思います。

世界中で1500万人以上が利用しているとのことです。

最低月2ドルの利用料金がかかるので、少しハードルが上がりますね。

以前はApple 製品しか対応していなかったと記憶していますが、現在ではLinux, Windows, アンドロイドに至るまでいろんなデバイスで利用できるみたいです。

データは暗号化して保存されているとのことですが、ソースが公開されていないため判断できないため、Bitwarden の次点にしました。

簡単さ: ☆☆☆☆☆

値段: ☆☆

日本語対応: ☆☆☆☆☆

1password.com

Lastpass

1Password との引き合いに出されるのがLastpassです。

こちらのツールもよく使われている印象です。

パスワードフォームがあると自動的にID と パスワードを入力するため、とても便利なのですが

  • フォームの数が3つ以上時の挙動が変
  • OTPなど、毎回異なる数字を入力しなければならない場合にも、初回に入力したデータを自動入力するので、一度全部消して、手動で入力しないといけない

など例外的なパターンの時に不便だったため、使うことがなくなりました。

無料で利用することができるため、試しに使ってみるのは良いと思います。

もしかしたら、日本語対応していないかもしれません。

また、データは暗号化して保存されているとのことですが、ソースが公開されていないため判断できないのは1Password と同様です。

簡単さ: ☆☆☆☆☆

値段: ☆☆☆☆

日本語対応: ☆

自由度: ☆

www.lastpass.com

おまけ: Keepass + git-crypt (上級者向け)

正直言って、Bitwarden 使っておけば間違い無いんです。

しかし、念のためBitwarden の代替案のオープンソースのパスワード管理ツールも提案させてください。

それが、Keepass です。

Keepass だけでは複数のデバイスでパスワードの共有をすることができないため、git-crypt という暗号化 + git の技術を使うことで、複数端末でのデータ同期を実現しています。

git の知識が必要のため、エンジニア向けの内容になってます。

簡単さ: ☆

値段: ☆☆☆☆

日本語対応: ☆☆☆☆☆

keepass.info

E2E 暗号化チャットアプリ

「秘密情報を自分(スマホ)から自分(PC)に送りたい」時って、まれに発生しませんか?

Lineや メッセンジャーなどで、自分だけのグループをつくり、そこにメッセージを送ることで、送ること自体はできるのですが

Line 社やFecebook 社に情報が筒抜けになってしまっています。

そんな時に役に立つのがE2E(End to End) 暗号化チャットアプリです。

「E2E 暗号化」とは、「デバイス(End)とデバイス(End)の間の通信を全て暗号化」しているという意味で、平たくいうと「むちゃくちゃ機密」ということです。

Signal

米国NSAの世界的監視網Prismを内部告発したエドワードスノーデン の愛用するチャットSignal です。

ja.wikipedia.org

スノーデンが利用していることが一番のマーケティングであると個人的に感じているほどに、セキュリティの高いチャットです。

(スノーデンは映画化もされていて、むちゃくちゃ面白いです)

オープンソースで開発されていることからも、バックドアがないことが推察されます。

www.signal.org github.com

Keybase

セキュリティ技術の高さゆえ、Zoom 社に買収されたKeybase の提供するチャットアプリ Keybase

最近、自分宛の暗号化メッセージ送信機能が実装されたので、急遽ランクインしました。

アプリ全体のソースコードは公開されていないものの、肝になる技術部分に関してはオープンソースでの開発ですので、評価できます。

keybase.io

手軽に gitignore をいい感じにする。

twitter でgitignore についてちょっと話題に上がってたので、自分のgitignore の管理方法についてドヤしたい。

正直、.gitignore を書くはが面倒なのはすごくわかる。 とはいえ、.gitignore を書かなくて .DS_Store とか あげるのもだるい。

そこで紹介したいのは、gitignore.io を利用した .gitignore のテンプレート生成 コマンドを使う方法です。

前提として、curl コマンドを使うので、事前にインストールしておいてください。

作り方

git のサブコマンドとして git ignore を使える様にします。

以下のコマンドをターミナルから実行します。

// サブコマンドを作る
% echo 'curl -L -s https://www.gitignore.io/api/$@' | tee /usr/local/bin/git-ignore

// 実行権限追加
% chmod +x /usr/local/bin/git-ignore

これで git ignore サブコマンドが使える様になったはずです。

使い方: mac のgitignore を作る

たとえば、mac についての gitignore を作りたい時は、次の様に実行します。

% git ignore macos

# Created by https://www.toptal.com/developers/gitignore/api/macos
# Edit at https://www.toptal.com/developers/gitignore?templates=macos

### macOS ###
# General
.DS_Store
.AppleDouble
.LSOverride

# Icon must end with two \r
Icon

# Thumbnails
._*

# Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent

# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk

# End of https://www.toptal.com/developers/gitignore/api/macos

こういう風に、mac で頻出するであろうファイルについてのgitignore が生成されるので、.gitignore にリダイレクトすればよかろう。

% git ignore macos >> .gitignore

使い方: 複数のgitignore を同時に作る。

maclinuxvim に関してのgitignore を同時に作りたい時、ありませんか? そういう時は、コンマ区切りで指定することで、同時にgitignore を作ることができます。

% git ignore macos,linux,vim
(アウトプットは各自確認してみてください)

注意点

このコマンドは、gitignore.io http://gitignore.ioapi に完全に依存しています。

OSS で開発されていますので、アクセスログなどを取得するのを気にする方は、自前でビルドして使うこともできます。 https://github.com/toptal/gitignore.io

参照

docs.gitignore.io

ユダヤ人の教え

人格について

  • 自分のことだけ考えている人間は、自分である資格すらない。
  • 幼い子供は厳しくしつけるべきだが、子供が怯えるようなことがあってはならない。
  • 豊かな人とは自分の持っているもので、満足できる人のことである。
  • 人を賞賛できる人こそ、本当に誉れ高き人である。
  • 嫉妬は1000の目を持っている。しかし、何一つ正しく見えていない。
  • 神の前で泣き、人の前で笑え。
  • 自分の肩書きを人に教えようとする人間は、すでに自分の人格を傷つけている
  • 何も打つ手がないときにも、ひとつだけ必ず打つ手がある。それは、勇気を持つことである
  • 失敗を恐れる方が、失敗を犯すよりも悪い
  • 自分より賢い者に負ける方が、自分より愚かな者に勝つよりも得だ
  • 最も大切な事は、学習ではなく、実行である
  • 相手の立場に立たないで、人を判断するな
  • もしあなたの周囲に傑出した人がいないなら、あなたがならなければならない
  • 不幸を悲しむのは、不幸が起こってからでも遅くはない
  • 子供は、両親が家で話すことを街でしゃべる。
  • 人生では、時には愚か者を演じなければならない時がある。
  • 自分の力ではどうにもならないことは、心配するな。
  • 貧乏人と病人の忠告にはいつも真意がある
  • みずからを高きにおく者は、神によりて低きに堕とされ、みずからを低きにおく者は、神によりて高きに上げられる。
  • 美徳と証するものは、他人の嫉妬を刺激するものだが、 控えめであることだけは例外だ。

お金について

  • 金をなくしても、何も失わない。誇りをなくせば、多くを失う。 勇気をなくせば、すべてを失う。
  • 金は道具である、道具に支配される者などいない。 だから、道具はできるだけ多く持っている方がいい
  • 金は、本質以外のモノなら何でも買える
  • 金のために結婚する者には不良の子が育つ

勉学について

  • 一日勉強しなければ、それを取り戻すのに二日かかる。
  • 耳と耳の間に、最大の資産がある。
  • 本のない家は,魂を欠いた体のようなものだ
  • もし、本と服を汚したら、まず本から拭きなさい
  • もし生活が貧しくて物を売らなければならないとしたら、まず金、宝石、家、土地を売りなさい 最後まで売ってはいけないのは本である
  • 旅の途中で故郷の町の人々が知らないような本に出会ったら、必ずその本を買い求め、故郷に持ち帰りなさい
  • 知識は水に似ている。高いところから低いところへ流れる
  • 人が生きている限り、奪うことが出来ないものがある。それは知識である
  • 恥ずかしがる人は、よい生徒にはなれない。人はどん欲に学ばなければならない
  • 学んだことを復習するのは、覚えるためではない。何回も復習するうちに、新しい発見があるからだ
  • 出逢った人すべてから、何かを学べる人が最も賢い
  • 自分より賢い人がいるときは沈黙
  • 人の話の腰を折らない
  • 答えるときにあわてない
  • 常に的を射た質問をし、筋道だった答えをする
  • 自分が知らないときはそれを認める
  • 真実を認める
  • 偉人を過大に評価してはならない。同じように、小人を過小に評価してはならない
  • 私たちは権威ある先人たちの教えから多くのことを学ぶべきだが、といって背に大量の本を積んだロバになってはならない
  • 真に貧しい者としてとどまっているのは、知性のない者だけ
  • 知者が間違うときは、恐ろしいほど根本的に間違う
  • 善と悪を区別できるだけでは、まだ賢者とは言えない。二つの悪の中から小さい方の悪を選ぶことができる者が賢者である
  • ヤギには前から近づかない。馬には後から近づかない。愚か者にはどの角度からも近づかない事だ。
  • どんな質問でも、必ずしも答える価値があるとは限らない

仕事について

  • 人は仕事がないと政治に関わり始める
  • 一文もとらずに治療する医者は、一文の値打ちもない医者

商売について

  • 商人は出来る限り口を閉じていよ。人々に賢いと思われるよりも、愚かだと思われるべきだ
  • 1つの庭を手入れするほうが、多くの庭を持ってほったらかしにするよりはよい。1つの庭を持つ人は鳥を食べることができるが、多くの庭を持つ人は鳥に食べられてしまう
  • 商人は安く買えるあらゆる商品を仕入れ、できるだけ早く小さなマージンで売れ
  • あなたの手にあり、他人が欲している商品を安く売るのは、ビジネスではない。あなたの手になく、しかも他人が欲していないものを売るのがビジネスだ
  • まずしなければならないことから手を付け、後回しにできるものは最後にする
  • 医者に尋ねるより病人に尋ねよ
  • 貧乏人と病人の忠告にはいつも真意がある
  • 小さな穴は、大きな船を沈めてしまう。

  • 汝の友人の一部は汝を非難し、他は称讃す。汝を非難する人々に近づき、称讃する人々より遠ざかれ。
  • すべての人に対して一様に親切な者は、たいていはまた、すべての人に対して一様に不親切である
  • 利害関係ができたときにはじめて、友人かどうかが分かる

  • 自分が相手と同じ立場に立ったことがないのなら、その相手を批判する資格はあなたにはない。

  • 罠を仕掛ける者は、罠に落ちるであろう。

  • 捕まえた鳥を逃がしても、また捕まえられるかもしれない。だが、一度発した言葉を取り返すことはできない。

  • 神は超えられない試練を人には与えない。

  • 病んでいる人が病んでいる人のために祈るときは、祈りの力は倍になる

ユダヤの教え・格言

【django,vuejs】スーパーノード報酬の仕組み応用した、小規模な報酬システムを作る

はじめに

https://www.masternodebank.com/ という、仮想通貨をレンディングして共同でPoSのノードを立てて報酬をもらうサービスを提供しています。
売買予定のないXEM, 他社にレンディングしているけど全然貸し付けてもらえないXEMなどありましたら、最大年利2% でお預かり致します (露骨な宣伝)。

また、このサイトのロゴのコンペを絶賛開催中です。(2017年12月25日迄)
優勝賞金 1500xem の他に、参加賞 10xem もありますので、奮ってご応募頂ければと思います。

prtimes.jp

作るもの

今回は、NEM のノード報酬である スーパーノード報酬の仕組みを応用して、小規模な報酬システム( マイクロ報酬 )を作ります。
対象は NEM を利用したWEBサービス(アプリ含む) です。 

作るもの: PicoReward

使い方

1. メッセージ送信

宛先アドレス: ncns5e-oyh2vx-7dnzyf-kcwaq4-dpoxvv-t3r26h-kjnw
メッセージ: enroll ドメイン

で送信します(実例

2.サービス管理者であることの表示

対象ドメインの/meta.json に ドメインと送信アドレスを記載して送信者が管理しているサービスであることを明記します。

{ 
    "meta": 
        {
            "domain": "www.masternodebank.com",
            "twitter": "@masternodebank"
        },
    "currency":
        { 
            "nem": "NCVKXMEI4UAN3UYXU5EBYKAXR3TB2T3JALMUNH6T"
        }
}

実例

3. サービスの監視と報酬付与

定期的にチェックが行われ、チェックにパスすると報酬がもらえます。

ちなみに、現状1までしかできてません。
2018年1月から稼働予定ですが、サービスをご登録頂ければ幸いです。

なぜ作るのか

このツールを作るモチベーションはこんな感じです。

  • NEMを使ったツール・アプリ・店舗がまだまだ少なく、トランザクション数も微々たるものなので活性化させたい
  • 作った人に一時的に報酬が入ることがあるが、継続するためのプラスのインセンティブが少ない
  • 一定の品質以下(セキュリティ対策されてないとか、レスポンスが激重とか)のものを無くしたい
  • 沢山の人に寄付するのは面倒なため、寄付を受ける人が偏ってしまいがち

スーパーノード報酬の仕組み

そもそもスーパーノード報酬とは何なのか、説明したほうが良いかもしれません。
スーパーノード報酬とは、安定して提供しているNEMのノードに対して、NEM 財団のプールからノードに対して支払われる報酬です。
ハーベスティングとは別に、多くても1日1回支払われます。

スーパーノード報酬は次のようなフローで構成されています。

  1. NEMノードを立てる
  2. NEM のメッセージを利用してスーパーノード報酬の申請をする
  3. スーパーノードとしての1日4回のテストに合格する
    • テスト内容は 残高, ブロック長, 応答速度, ネットワーク帯域,パッケージのバージョン
    • テストに1度でも失敗すると翌日の報酬は無し。
  4. 翌日にノード報酬が財源から送信される
    • 報酬総額は1日あたり全体で 140,000xem .
    • テストに合格したスーパーノードに平等にに支払われる.
  5. 3 から繰り返し
  6. もしSNを辞める時は, NEM のメッセージを利用して辞める旨を申請をする
  7. あるいは, 定期的にスーパーノードの棚卸しが行われる。

平たくいうと、ちゃんとサーバ管理やってたら、報酬あげるよ、ということですね。
こうしたスーパーノード報酬はノード運営者が適正なスペックのサーバで遅延のないネットワークを維持するための動機付けになっています。

マイクロ報酬の仕組み

マイクロ報酬のフローを考えてみます。

  1. サービスを作る
  2. NEM のメッセージを利用して,マイクロ報酬の申請をする.
  3. マイクロ報酬としてのテストに合格する.
    • 所有者と報酬先が一致しているか
    • 応答速度
    • セキュリティ対策
    • パッケージのバージョン
  4. 翌日にノード報酬が財源から送信される
  5. から繰り返し
  6. もしマイクロ報酬を辞める時は, NEM のメッセージを利用して辞める旨を申請をする
  7. あるいは, 定期的にスーパーノードの棚卸しが行われる。

作ってみて

  • 送金部分は秘密鍵を触るので、サーバ有りきで構築するほうがシンプル。
  • python の nem パッケージがない(古い)ので、作り直さねばならない。
  • ドメインの状態が変わるようなサービスなのでステートをもってくれたら、個別のDBを用意しなくて良い。
  • websocket を使って即時に登録確認したかったが、5分に一度の定期処理で済ませています。
  • js 力がたりなかった。
  • ソースコード公開はしばしお待ち下さい。。。

mkdir・cd とまじめに向き合う

まとめ

  1. 深い階層にディレクトリを作成する alias mkdir="mkdir -p"
  2. 複数ディレクトリを1行で作成する: mkdir {a,b,c}
  3. 特定のパーミッションでディレクトリを作成する: mkdir -m 700 ~/.ssh
  4. さっき作ったディレクトリに移動する: cd !$
  5. さっきいたディレクトリに移動する: cd -

番外編

ひとつ前のコマンドを実行する: !?(いわゆる、特攻の拓コマンド)

【仮想通貨まとめ】NEM

仮想通貨 NEM の情報まとめです。随時更新していきます。