Neutrinoで働くブロックチェーンエンジニアのブログ

渋谷の専門特化コワークNeutrinoに入居してブロックチェーン領域のエンジニアとして働いています。(Neutrino運営企業とは直接関係ありません)

ethers.jsでENSの機能を使って名前解決をする

ENS 前回のethers.jsでBIP39のニーモニックフレーズとBIP44準拠のHDWalletを使うに続き、今回はENS(Ethereum Name Service)の機能を使ってみます。 バージョン node.js v10.16.3 npm 6.10.3 ethers.js 4.0.45 ethers.jsとは(再掲) 公式のFeaturesには以下…

ethers.jsでBIP39のニーモニックフレーズとBIP44準拠のHDWalletを使う

ethers.jsが最近人気とのことで使ってみます。ethers.jsはweb3.jsに近しい、node.jsでethereumを用いることができるライブラリです。みた感じ、web3.jsにはbip39のニーモニックフレーズ(文字列から秘密鍵を作成する機能)が見当たりませんでしたが、ethers.…

送金量を秘匿するConfidential Transactionsについての簡単な説明

liquid(elements)やMoneroにおいてはConfidential Transactions(コンフィデンシャルトランザクション)と呼ばれる技術が使われています。(MoneroはRing Confidential Transactionsと呼ばれる応用手法にしています) Confidential Transactionsはblockstream…

2019年に登壇・発表した資料まとめ

2019年に発表した資料を振り返ります。登壇は4つあり、登壇以外でも発表できたものが2つありました。 ブログ更新が時々途絶えていたのですが、資料作成で忙しくリアルで発表していた分です。 埋もれると勿体無いのでまとめて掲載いたします笑 2/27 「セキュ…

solidity-coverageとTruffleを用いてSolidityのテストカバレッジを出力する

Solidityを書く時、テストカバレッジを出すツールにsolidity-coverageがあります。solidity-coverage自体は以前からあるツールですが、最新の書き方は少し変わっているので使い方を書いておきます。 バージョン solidity-coverage : 0.7.0-beta.3 テストカバ…

【書評】マスタリングイーサリアム(Mastering Ethereum)は、Ethereumで何ができるかが分かる良書

マスタリングイーサリアム SECURITIZEに買収が発表されたブロックチェーン・コンサルティング会社のBUIDLのVPであり、監訳者である宇野さんより、マスタリングイーサリアムをご恵贈いただきました。 頂いたので、僭越ながら書評を書かせていただこうと思いま…

ERC1820 Pseudo-introspection Registry Contractについて

EthereumのERC1820 Pseudo-introspection Registry Contract(擬似説明を行うレジストリコントラクト)について説明します。 このEIPはERC | Ethereum Improvement Proposals においてファイナライズされた提案であり、ERCとして正式登録されています。 ERC1…

Devcon5で見た面白いプロジェクト

devcon5 エントランス 10月8日〜11日まで大阪で行われたEthereum Devconに参加してきました。面白いプロジェクトをいくつも見つけたのでざっと紹介していきます。 verX verx.ch Ethereumのsolidityコントラクトの形式検証用ツールです。solidityのテストツー…

HAKODATE Developer Conference 2019に登壇します

函館で行われるDeveloper Conferenceに登壇します。開発者向けに行われる函館市のイベントで、先端の技術について知る機会にするイベントです。ブロックチェーンをテーマに話をという事で枠を頂戴しました。 devcon.hakoika.jp 主催の方からお話を伺い、函館…

ganache2.0のコントラクト管理機能を試す

GanacheはGUIでローカルにEthereumのブロックチェーンネットワークを生成できるツールです。 実行方法はとても簡単で、公式サイトからダウンロードして、クリックで起動するだけです。 ganache起動画面 Ganache2系が正式リリースされたのは2019年3月で結構前…

文章力の訓練用に読んでよかった本

今回はブロックチェーンとは少し離れた投稿になります。チーム開発をする中では、コーディング同様に文章を書く機会がかなり多くあります。僕はITコンサル(兼エンジニア)からキャリアを始めました。システムは実装する仕様を明確にする必要がありますが、…

講談社サイエンティフィク様から「Solidityプログラミング ブロックチェーン・スマートコントラクト開発入門 」が発売されます

「Solidity Programming Essentials」という書籍を翻訳し、「Solidityプログラミング ブロックチェーン・スマートコントラクト開発入門 」というタイトルで、講談社サイエンティフィク様から9月7日に発売されます。私が監修し、松本さんと小池さんというエン…

Solidityの構造を可視化してくれるツールPiet

Solidityで書かれたスマートコントラクトを可視化してくれるツールが出てきました。 Pietというツールでとても使いやすく、役立ちそうだったので紹介します。 公式の紹介はこちらです。 blog.slock.it Pietの使い方 MCHのHeroトークンコントラクトを可視化し…

経理業務用にERC20トークンのICOや取引をノード無しでBigQueryで集計する

こんにちは。ERC20のICOや取引をまとめて簡単に集計する方法を話します。 実は、こちらの集計方法でとても困っていると、ある会社から私個人宛に相談を受けて、抽出手法をアドバイスさせていただいたのですが、デモまでしたらこれなら簡単に取れる!とのこと…

ブロックチェーンデータの分析について

しばらくこちらを更新できていなかったのですが、catabiraのMeduimでブログを更新していました。 どちらもNFTマーケットの分析になります。 medium.com medium.com 分析のデータソースについて これらの分析ですが、USD建ての時価以外は、全てブロックチェー…

いまさらビザンチン将軍問題

いまさらながらビザンチン将軍問題を整理し、proof-of-workとどのように絡んでいるかを書いてみました。派生系の問題なども色々ありますが、起源となった問題をまとめています。 ビザンチン将軍問題とは Lamportの解法 - Oral Messageアルゴリズム 前提条件 …

Constantinopleハードフォーク前後のEthereumデータを色々可視化してみる

EthereumのハードフォークであるConstantinopleがブロックナンバー7280000、日本時間の3月1日に行われました。ハードフォーク前後によって変わった事をデータから見てみる趣旨の記事です。 利用ツールは以下です。 Tableau Desktop 2018.3 Google BigQuery C…

Dappsの運用方法を考える - Cosmos-SDKを試す

Dappsの運用方法を考える Cosmos-SDKとは スマートコントラクトについて Cosmos-SDKチュートリアルアプリの実装概要 app(baseapp) Keeper Msg Handler Querier codec Cosmos-SDKチュートリアルアプリの実行 testchainのセットアップ jackとaliceの初期アカウ…

2018年の振り返り。ブロックチェーンに丸の内で関わった前半と渋谷のベンチャー界隈を渡り歩いて感じた今と未来の視点の違い

ここ最近はコードを書いている時間がかなり長かったのですが、学んだ事をまとめるために昨年を少し振り返ってみました。 ほとんど技術的な内容はない雑記です苦笑 なぜ同じ組織でも人によって重要と思う領域は大きく違うのか エスタブリッシュな世界もテクノ…

NEMのモザイクぜんぶ抜く

「池の水ぜんぶ抜く」的な企画です。 NEMの内部データベースはH2dbというRDBでできていて、MySQLやOracleと同じようなRDB(リレーショナルデータベース)で格納されています。NEMはJavaで書かれていて、データベースもRDBなので、コードや内部データベースを…

EthereumのStateについて - Yellow Paper4章より

EthereumのStateについて、EthereumのYellow Paperとgo-ethereumのコードを参照しつつ書いた記事になります。 Ethereumはトランザクションによって更新される状態(state)を保持するマシン stateとはethereum世界における状態のこと world state acccount s…

Ethereumにおけるparityクライアントのstate保存オプションを検証する

RustベースのEthereumクライアントでparityが提供されています。 色々と便利な機能があり、stateを保存するオプション仕様を検証してみます。 stateとは stateを捨てるpruning 全てのブロックのstateを保持するpruning=archiveモード state保持期間を指定で…

「通報」というブロックチェーンのユースケース

ブロックチェーンのユースケース、特に不特定多数が参加するパブリックチェーンでのユースケースとして、「通報」という切り口はあるのではないかと最近思ったのでまとめです。 ブロックチェーンというのは大雑把に言ってしまえば、皆でデータを共有する仕組…

EthereumのRLPエンコーディングについて-Yellow Paper AppendixBより

EthereumのYellowPaperを元に、Ethereum独自のRLPエンコーディングについて実験してみました。 RLPエンコーディングとは 5つのエンコードパターン バイト配列の場合 バイト配列でない場合 実験に用いたコード バイト配列をRLPエンコーディングする場合 1. バ…

最近の活動(2018年9月〜)

お世話になっております。立て込んでいてなかなか更新できなかったのですがブログ以外ではそこそこ活動していました。 お茶をにごすという訳ではないですが、最近の活動というタイトルでブログを更新してみます。 「ブロックチェーンサービスのセキュリティ…

ホットウォレットとコールドウォレットは見分けられるか

知人からホットウォレットとコールドウォレットを見分ける方法がないかと聞かれました。 正直なところ、完璧に見分ける術は思い当たらないのですが、あたりをつけてみる方法を考えてみます。 話題になったきっかけ - Zaif取引所のホットウォレットからコール…

Ethereumトークン標準「ERC1400 Security Token Standard」の提案

セキュリティトークンが盛り上がっていますが、今月「ERC-1400: Security Token Standard」としての提案がEthereum Improvement Proposal上で行われました。なお、この提案はFinalizeされていないため、ERCではなくEIP1400になります。 また、EIP1400は議論…

Ethereumのトランザクション(Message Call)について-Yellow Paper8章より

前回に続いて相変わらずEthereumのYellowPaperを読んで得た仕様をまとめます。 読んでいるYellowPaperのバージョンは「BYZANTIUM VERSION e94ebda - 2018-06-05」です。 今回は「8. Message Call」についてです。特に指定がない場合は、8章からの引用と考え…

EthereumのGasについて-Yellow Paper5章より

Ethereum Ethereum界隈はPlasma、Sharding、PoSと騒がしいですが、このタイミングで逆行してYellow Paperを精読しています笑 White Paperが概念とするなら、Yellow Paperは実装の仕様書に当たります。Ethereumでは相当細かく定義されており、詳細仕様書に近…

株式会社catabiraを共同創業しました

近況報告ばかりですが、catabiraという会社を8月から共同創業しました。 名前は「鎖かたびら」からとってきており、ブロックチェーンに特化した事業をやる予定です。「Security & Analytics Platform for Blockchain Businesses」を掲げてプロダクトを開発し…