2018-01-01から1年間の記事一覧
base58は大まかに言ってbase64を改良したものです。 base64は64個の文字とパディングに=(イコール)を使うものです。WEBプログラマなら説明は不要でしょう。 base58はbase64から小文字のl(エル),大文字のI(アイ),大文字のO(オー),0(数字のゼロ),+(プラス),/(…
シュノア署名(Schnorr Signature) シュノア署名を群の言葉で書きます。 秘密鍵と公開鍵の生成 STEP1 有限体 と素数位数lのベースポイントを生成する。 STEP2 乱数を秘密鍵とし、 を公開鍵とする。 STEP3 H()をハッシュ関数とし公開する。 署名 STEP1 メッセ…
BeautyChain (BEC)などに実装された batchTransfer に見つかったぜい弱性 CVE-2018-10299 medium.com について試してみました。 remix で検証しました。 この 0x8000...0000 に2を掛けると、solidify のuint256実装では、桁あふれした分が差し引かれ、_amoun…
以下の関数の機能を見てみましょう。 func secp256k1_ec_privkey_negate(_ ctx: secp256k1_context, _ seckey: inout [UInt8]) -> Bool func secp256k1_ec_pubkey_negate(_ ctx: secp256k1_context, _ pubkey: inout secp256k1_pubkey) -> Bool func secp256…
ECDSA の秘密鍵は1以上、群Gの位数未満です。 secp256k1 の群Gの位数は L = 0xFFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE BAAEDCE6 AF48A03B BFD25E8C D0364141 ですが、256bitの正の値skをランダムに取り(0以上)、値が0だった場合と、L以上だった場合、値を取り…
前回の記事では、secp256k1ライブラリでは署名のsの値は値が小さい方を使うから注意せよと書きました。 ECDSA(secp256k1)での署名と検証をswiftで行う(secp256k1swiftライブラリ使用) - Pebble Coding 関数リストをよくみてみると、 secp256k1_ecdsa_signatu…
前回、pythonで行なったECDSA(secp256k1)での署名と検証をswiftで行なってみます。 拙作 secp256k1swift GitHub - pebble8888/secp256k1swift: secp256k1 by pure swift を用いてみます。 ちなみに、このライブラリはbitcoinのC言語で書かれたライブラリ Git…
ECDSA(secp256k1)での署名と検証をpythonで行ってみます。 まずコードです。 ちなみにpython3です。 #!/usr/bin/env python # # secp256k1 # http://www.secg.org/SEC2-Ver-1.0.pdf # import sys import hashlib sys.setrecursionlimit(1500) b = 256 # q is…
ECDSAでの署名と検証をrubyで行います。 ECDSAの仕様はこちらです。 ECDSA(楕円曲線デジタル署名アルゴリズム)の概要 - Pebble Coding それではコードです。 #!/usr/bin/env ruby require 'ecdsa' require 'securerandom' require 'digest' def bin_to_hex(s…
python3.6.4を用いています。 import hmac import hashlib sk = str("secret").encode('utf-8') msg = str("message").encode('utf-8') sig = hmac.new(sk, msg, hashlib.sha512).hexdigest() print(sig) print(len(sig)) 1bba587c730eedba31f53abb0b6ca589e…
ウォレットのダンプ $ bitcoin-cli dumpwallet a.txt { "filename": "/Users/pebble8888/Library/a.txt" } 第2引数には出力先のファイル名をいれます。 約4000行のファイル名が出力されました。先頭を少し加工して見てみます。 (ちなみにtestnet環境のもので…
$ pg_ctl -D /usr/local/var/postgres start && brew services start postgresql $ psql postgres # create role myuser with login password mypass; # alter role myuser createdb; # \q; ruby用の環境変数 DATABASE_URL=postgres://myuser:mypass@{hostna…
$ irb irb(main):001:0> require 'ecdsa' => true irb(main):002:0> require 'securerandom' => true irb(main):003:0> group = ECDSA::Group::Secp256k1 => #<ECDSA::Group:secp256k1> 法素数 irb(main):005:0> group.field.prime => 115792089237316195423570985008687907853269984</ecdsa::group:secp256k1>…
$ sudo gem install bitcoin-ruby $ sudo gem install openassets-ruby $ sudo gem install ecdsa
Original Bitcoin client/API calls list - Bitcoin Wiki コネクション数表示 bitcoin-cli getconnectioncount 8 コネクション情報表示 bitcoin-cli getpeerinfo [ { "id": 8, "addr": "35.187.63.250:18333", "addrlocal": "103.5.140.142:61962", "addrbin…
macos環境でbitcoinフルノードをソースからビルドします。 以下の手順通りでOKです。 GUI版をインストールしたくない場合はqtを省略します。 https://github.com/bitcoin/bitcoin/blob/master/doc/build-osx.md $ brew install automake berkeley-db4 libtoo…
ECDSA(Elliptic Curve Digital Signature Algorithm)の概要です。 要点だけをまとめ、異例のチェックや楕円曲線上の点であるかどうかなどの細かな点は省きます。 正確な仕様は以下です。 AMERICAN NATIONAL STANDARD X9.62-1998 Public Key Cryptography For…
コミットメントスキームの概念を理解するために、まず、コイン投げプロトコルを考えます。 Alice,Bobの2人が同じ場所に居合わせ、Aliceがコインを投げ、Bobが表が出るか裏が出るかを当て、勝敗を決めるゲームを考えます。 このゲームの手順のことをプロトコ…
RPC(リモートプロシージャコール)とはRESTと同じような、 特定フォーマットのHTTPリクエストを受け取り、レスポンスを返すプロトコルの一種です。 フォーマットには XML, JSON, protocol buffer, messagepack などあります。 最後の2つはバイナリフォーマッ…
現時点(2018年2月)において2009年から作られたビットコインのブロックの数(=ブロック高)は、 こちら Bitcoinブロックエクスプローラ - ブロックチェーン をみるとわかるように、 508786 です。 最新の4つのブロックを見ると、一つのブロックには、200 ~ 160…
2017年買ってよかったモノベスト3です。 第3位 MacBookPro 2017 13inch www.apple.com 今まで、iOSアプリ開発用には MacBook Air を使っていましたが、Storyboardを開くのにメモリ不足で、 きつくなってきていたので、入手を決めました。 Storyboardを開く…
クラウドマイニングやってみたいなーという簡単な気持ちで、HashFlare のSHA256 (BTC) に少額を突っ込んでみました。 HashFlareはスコットランドの会社らしいです。 メリット、デメリット マイニング機材の購入維持、マシンの騒音を気にする必要がないという…
この記事は2018-1-28時点のものです。備忘録として手順を残しておきます。 マシン: MacBook Pro 2017 モナコインのウォレットをダウンロード Monacoin project ここからmacOSX版のウォレットをダウンロードします。 立ち上げると全トランザクションのダウン…