アルゴリズムとかオーダーとか

仕事で勉強したことなどをまとめてます

secp256k-1には整数解は存在しないことの証明

久しぶりのブログ投稿になります。こんにちは。今回はsecp256k-1であるy^2=x^3+7に整数解は存在しないことの証明を行いたいと思います。

元々はgemとC Libraryで書かれたsecp256k-1のライブラリが返す加算結果が違っていて、どっちのライブラリが正しい値かを手計算でも検算できそうな整数解となる点はどこかという話が発端でした。


この話題のなかで、「secp256k-1 integer」などでググったところタイトルの通り、整数解は存在しないというhomeworkを見つけました。今回ではこのhomeworkの回答をみながら自分なりに証明をしていきたいと思います。

続きを読む

ganache-cliのデータを永続化する

今回はganache-cliのデータをファイルに吐き出して永続化する方法について説明します。
ganache-cliのデータを永続化できるとDappsのサンプルを提供する時にセットアップ済みのnodeもセットで提供できるため、非常に有用ですよね。
0x protocolでもganache-cliのsnapshotを提供しており、すぐにsampleを動かせるようになっています。
https://0xproject.com/wiki#Ganache-Setup-Guide0xproject.com

それでは早速、ganache-cliでデータを永続化する方法を説明します。と言っても非常に簡単だったので、さらに応用してevm_snapshotも利用した復元ポイントを持ったdumpデータの作成方法も合わせて説明したいと思います。

続きを読む

IntelliJ Idea(Ultimate)からmochaのdebuggerを使う

今回はタイトルの通り、IntelliJ Ideaを使ったmochaのdebuggerを使う環境構築の方法を紹介します。
いい加減、mochaのtestを書くためにconsole.logで変数を追っていくのに疲れたので、重い腰をあげてdebugger環境を作ってみました。

結論としては非常に簡単に作れました。なお、Ultimate版のみ対応とのことです。

では以下で構築方法を簡単に説明します。

続きを読む

AWS上にbitcoin-seederを立てる

今回はDNSを使ったことはあるけど設定したことがないNetwork初心者の僕がbitcoindns-seederを立てたので、その時の作業ログ的なものをまとめたいと思います。seederのプログラムはこちらを使いました。
github.com

続きを読む

Solidity Assembly入門 ~ Function Selector ~

今回の記事はSolidity Assembly入門という連載記事の第5回目です。

この連載ではSolidityのコードをコンパイルした時に生成されるopcodeについて解説していきます。
この連載ではSolidityのコードをデバッグするのに必要な知識を得られることを目的としています。
前回の記事はこちら。
y-nakajo.hatenablog.com

第5回目の今回は、Solidityの関数をEVM上でどのように表現されているのかについて説明します。公式ドキュメントはこちらです。
Solidity Document#Function Selector
Solidity Document#Functions

続きを読む

Node.jsのtestでsinonを使ってspyする

今回の記事はNode.jsのTest用ライブラリの紹介です。
Node.jsでtestを書く時に今までmochaとchaiを使ってきました。今回はconsole.warnの呼び出しをspyしたくてどうやったらいいのか?を調べていた時にこのライブラリを発見しました。
sinonjs.org

ちょっと触った感じ、非常に使いやすいmockupツールだと思います。以降はconsole.warnをspyすることを題材にして使い方を説明します。

続きを読む