One or Zero?

興味のある様々なことについて

BOLT#11 Lightning Networkによる支払いの請求書プロトコル

前回の記事ではLightning Networkで買い物したが、以下のようにQRコードとlnbcから始まる文字列が表示され、それを用いて支払いを行う。

f:id:johntas:20180216235114p:plain

このlnbcから始まる invoiceを作成するためのプロトコルが、BOLT(Basis of Lightning Technology)の11番で定義されている。このプロトコルをTypeScriptで実装したものをびりあるさんがGithubで公開していたので、マネしてRubyで書いてみよう、と思ったのでそのメモ。 

続きを読む

Bitcoin のLightning Network を使ってお買い物しました〜環境構築と支払い方法〜

Blockstream がLightning Network(以下LN)での決済ができるECサイトを立ち上げたというこのtweetを見て居てもたってもいられなくなったので、VPSを借りてLNのノードを立てることにしました。 "Testnet is so boring" ということで、もちろんmainnnetでの送金です。

注)LightningNetworkはテスト段階の技術であるため、mainnetでの送金は資金を失う可能性があります。少額で、かつ自己責任でお願い致します。

続きを読む

Bitcoin Script 入門

はじめに

この記事は、暗号通貨 Advent Calendar 20日目の記事です。Bitcoinトランザクションには欠かせない、ロジックの部分を担っているScriptについて解説します。プログラミングや初歩的な数学の知識、ビットコインの概要の理解を前提としています。この記事を読んで、最も典型的なP2PKHのScriptを理解できるようになることが目標です。私は情報学の専門ではないので、間違いがあったらコメントや編集リクエストで指摘していただけるとありがたいです。

Transactionの構造を理解している前提の記事なので、Mastering Bitcoinトランザクションの章やこの記事を事前に読むことをおすすめします。

Scriptとは

続きを読む

Bitcoinでも使われている楕円曲線暗号について

楕円曲線とは

楕円曲線暗号は,楕円曲線を利用した暗号です."楕円"とは言っても楕円の形はしておらず,下図のように横に見るとタコのような形ですね.

楕円曲線



また,次の方程式で表されます.式の形から(x)軸対称な図形であることがわかります.

$$ y^2 = x^3 + ax + b $$

さて,楕円曲線にどのようにして暗号の機能をもたせることができるのでしょうか.それを理解するためには,群論を少しかじっている必要があります.群論と言っても,難しい事を理解する必要はありません.

続きを読む

Lightning Network で必要不可欠な(だった) SIGHASH_NOINPUT について

何に使うのか

Lightning Network、乃至 Bidirectional Payment Channel では、最初に Funding Transaction(あるいは Opening Transaction) と行って、チャネルの参加者二人がそれぞれデポジットを行うようなトランザクションを作成します。詳細は省きますが、以後、それを用いてマイクロペイメントを行います。

 

続きを読む

CoinHive でWebサイト閲覧者にMonero マイニングさせてみる(してみてね!)

Webサイトを訪れた人のブラウザにJavaScript でゴニョゴニョすることによって、サイト訪問者のCPUを使ってMonero をマイニングしちゃおうという、闇のサービスが提供されているというのをどっかの記事で読んだので、早速試してみました。

Macだと、アクティビティモニタを見れば、たしかにChromeCPU使用率が以上に上昇してるのがわかると思います。

 

 

じょんた's Website'