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

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

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

いまさらながらビザンチン将軍問題を整理し、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」を掲げてプロダクトを開発し…

「ブロックチェーンサービスのセキュリティを考える」と題して発表してきました

8月17日、ブロックチェーンサービスのセキュリティを考える、と題して発表してきました。 企画時は、Neutrinoのコミュニティマネージャーとは30人くらい来たら良いねと話していましたが、ふたを開けると最大時で120人ほどの申し込みがあり、急遽枠を増やして…

クリプトアナーキスト宣言を今読む

Bitcoinはサイファーパンクの活動の歴史と深い関係があります。 サイファーパンク (cypherpunk)とは、社会や政治を変化させる手段として強力な暗号技術の広範囲な利用を推進する活動家である。 サイファーパンク - wikipediaより サイファーパンクの思想を理…

DEXを動かす〜Etherdeltaのコントラクトを実行する〜

前回、Etherdelta(DEX)のコントラクトをropstenネットワークにデプロイを試しました。 今回はデプロイ済のコントラクトのメソッドを呼び出して動かしてみます。 www.blockchainengineer.tokyo この記事では、 macOS High Sierra 10.13.4 node.js:v9.4.0 web3…

Ethereum上のKYCツール「uPort」を使って分散型ログイン機能を実装する

Blockchain EXE様とConsenSys様が共催のuPortを使うハッカソンにでるという事で、EthereumのKYCツールであるuPortを利用してみます。 uPortの仕組みはこちらのブログが詳しいです。 zoom-blc.com ざっくりいうと、ETHアドレスに名前や電話番号などの付帯情報…

「徹底理解ブロックチェーン ゼロから着実にわかる次世代技術の原則」をご恵贈いただきました

株式会社インプレス様より、「徹底理解 ブロックチェーン ゼロから着実にわかる次世代技術の原則」(原題:「Blockchain Basics: Anon-Technical Introduction in 25 Steps」著:Daniel Drescher)をご恵贈いただきました。 原著は「Banking」や「Storage & …

ブロックチェーンサービスのセキュリティ基準CryptoCurrency Security Standardについて

暗号通貨サービスのセキュリティ検討に利用できる基準 CryptoCurrency Security Standard(CCSS)という暗号通貨セキュリティ基準があります。 こちらはCryptoCurrency Certification Consortium(C4)という非営利団体が提案した基準で、暗号通貨取引所やWallet…

Litecoinのノード環境構築をDockerで行う

Litecoinのノード環境構築を構築します。 LitecoinはBitcoinと比べるとトランザクション量がそれほど多くなく、かつプロトコルがBitcoinとほぼ同じなので、Bitcoin系のテストをするのに手軽にやりやすいと思います。 環境 macOS High Sierra 10.13.4 Docker …

DEXを動かす〜Etherdeltaのコントラクトをropstenネットワークにデプロイする〜

ERC20のトークンを交換できるDEXであるEtherdeltaについて、ropstenネットワークにデプロイして遊んでみます。 他のチェーンを触ることが多く、Ethereumからしばらく離れてしまっていたので手触り感を掴んでおく趣旨です。 この記事では、macOS High Sierra …

6月1日よりフリーランスになりました

6月1日よりフリーランスになりました。ブログでもご挨拶をさせていただきたく。 これまで何をしてきたか 僕自身を少し自己紹介させてもらうと、アプリサイドでエンジニアを5年くらいやった後、機械学習などに寄り道していたところ、2017年5月頃からブロック…

ERC20トークンの取引イベントログを抽出してネットワーク図を作成する

ERC20トークンは送金(transfer / transferFrom関数が呼ばれる)とevent Transferによってログが発行されます。ログは、Bloomフィルタという構造で格納され、ブロックチェーン自体には刻まれませんが、トランザクションを受け取った相手から受領するTransact…

セキュリティ分析ツールMythrilで、一部のERC20トークンで問題の関数を解析する

Mythrilとは Mythrilでチェックできるコントラクトの問題について batchTransferのオーバーフロー問題について batchTransferを解析してみる MythrilのDockerイメージ作成 問題のあったコントラクトを取得 コンテナを起動してMythrilを実行 分析結果を確認す…

coinmarketcapのデータをgrafanaとprometheusで可視化する

暗号通貨の価格や市場規模を見れるcoinmarketcapデータを取得して可視化するレポジトリが公開されていたので使ってみます。 この記事は以下の元記事にそって実施してみたものになります。 medium.com 事前準備 事前準備として、dockerとdocker swarmをインス…

ブロックチェーンエンジニアは実際どのくらい必要とされているかを求人要件から考えてみる(2018年春版)

前の記事を書いた10月の時と比べて、「ブロックチェーンエンジニア」という職種が徐々にメジャーになってきたように感じます。 仮想通貨が2017年11月頃から急騰し、取引所ビジネスの利益率が高いということも広まりました。それに伴って、金融庁の仮想通貨交…

「Ethereum Community Fund」創設発表イベントに行ってきました〜Ethereumエンジニアが必要とされそう〜

3月29日、「Ethereum Community Fund」創設発表イベントが東京で行われました。 Ethereum Community Fundとは、Ethereumのインフラ整備やDappsの普及のためのファンドとのことです。 イーサリアムを支援する6つのプロジェクト——Cosmos、OmiseGO、Golem、Make…

ブロックチェーンエンジニアを目指す方へお勧めの技術書・サイト

最近、ブロックチェーンエンジニアを目指すためにどのようなスキルセットを身につければ良いかや、初心者向けの技術書執筆の話などを頂くことが増えてきました。 ブロックチェーン業界で働くという事に興味をもつエンジニアの方が増えてきたように感じます。…