SlideShare ist ein Scribd-Unternehmen logo
1 von 17
Downloaden Sie, um offline zu lesen
Bitcoin
x
Javascript
Yuki Akiyama(you21979)
どんなひと
・ビットコイン界隈で働いているエンジニア
・Javascriptが最近のメイン言語
・なぜかビットコイン界隈エンジニア少ない
Bitcoinとはなにか
・オープンソース
・分散型
・仮想通貨の一種
・モノでもオカネでもない(日本政府の見解)
技術的には署名にECDSAとか公開鍵暗号方式と
か
Bitcoinの機能
大きく分けて三つ
■ウォレット(秘密鍵管理、トランザクションの作成)
■マイニング(トランザクションの認証)
■ブロックチェーン(データベース)
リファレンスであるbitcoindにはすべて入っている
Bitcoinの機能
普通はサーバーを立ててJSON-RPCを経由して
プログラムする
bitcoindはブロックチェーンの同期に時間がかかる
(0.9.5は3日くらい?)
気軽にインスタンスを立ち上げるのはつらい
Bitcoinの機能
ブロックチェーンの同期に時間がかかるので
ブロックチェーンやp2pネットワークは共有インフラ
として用意しておいて
クライアントとサーバーを分けたい。
そんなことができちゃいます。
Bitcoinの機能
ブラウザで扱える機能
■ウォレット
■ブロックチェーン(REST-API経由)
JSのライブラリ
■bitcoinjs-lib (http://bitcoinjs.org/)
 stefan thomasさんが作っているライブラリ
■bitcore (http://bitcore.io/)
 bitpayという会社が作っているライブラリ
(ほかにもcryptocoinjsとか)
アドレスを作成してみる(口座の作成)
var bitcore = require("bitcore");
var privateKey = new bitcore.PrivateKey();
var address = privateKey.toAddress();
var wif = privateKey.toWIF();
console.log(address.toString(), wif);
アドレスを作成してみる(口座の作成)
■ビットコインアドレス(公開鍵)
1NdJsXeKxNv5EtHPVBQ1QfpEgyi5aTvV3B
■秘密鍵
KyJw2R3uzQ7svEDGYMuoNnryTaXojmmoz8a
jk9XwzJTdGPaoQkuQ
アドレスを作成してみる(口座の作成)
■QRコードにしてみる(jquery.qrcodeとかで)
1NdJsXeKxNv5EtHPVBQ1QfpEgyi5aTvV3B
残高の確認
npm install bitcore-explorers
残高の確認
var explorers = require("bitcore-explorers");
var insight = new explorers.Insight();
var address = '1NdJsXeKxNv5EtHPVBQ1QfpEgyi5aTvV3B';
insight.getUnspentUtxos(address, function(err, utxos) {
if (err) {}
else {
console.log(utxos.map(function(v){ return {
txid : v.txId,
vout : v.outputIndex,
satoshi : v.satoshis,
btc : (v.satoshis * 1e-8).toFixed(8),
}}))
}
});
送金処理
var bitcore = require("bitcore");
var explorers = require("bitcore-explorers");
var insight = new explorers.Insight();
var wif = ''KyJw2R3uzQ7svEDGYMuoNnryTaXojmmoz8ajk9XwzJTdGPaoQkuQ'';
var privateKey = bitcore.PrivateKey.fromWIF(wif);
var address = privateKey.toAddress();
var send_address = '1xxxx';
var amount = 100000;
var fee = 10000;
// つづく
送金処理
insight.getUnspentUtxos(address.toString(), function(err, utxos) {
if (err) {}
else if(utxos.length>0){
var transaction = new bitcore.Transaction()
.from(utxos)
.to(send_address, amount)
.fee(fee)
.change(address)
.sign(privateKey)
var rawtx = transaction.serialize().toString('hex');
insight.broadcast(rawtx, function(err, txid){
console.log(txid);
})
}
});
最後に
JSとREST-APIでわりと簡単にいろいろできます
ご清聴有難うございました
・ビットコインワークショップをやっています
http://bitbank.connpass.com/

Weitere ähnliche Inhalte

Was ist angesagt?

ビットコインで使われている暗号の基礎を学ぶ
ビットコインで使われている暗号の基礎を学ぶビットコインで使われている暗号の基礎を学ぶ
ビットコインで使われている暗号の基礎を学ぶYuto Takei
 
Blockchain innovation
Blockchain innovationBlockchain innovation
Blockchain innovationYuto Takei
 
ブロックチェーン技術の基本と応用の可能性
ブロックチェーン技術の基本と応用の可能性ブロックチェーン技術の基本と応用の可能性
ブロックチェーン技術の基本と応用の可能性Kenji Saito
 
Bitcoinのしくみと設計思想
Bitcoinのしくみと設計思想Bitcoinのしくみと設計思想
Bitcoinのしくみと設計思想Kindai University
 
【ビットコインとか勉強会#1】トランザクションを読み解く
【ビットコインとか勉強会#1】トランザクションを読み解く【ビットコインとか勉強会#1】トランザクションを読み解く
【ビットコインとか勉強会#1】トランザクションを読み解くTomohide Murata
 
徹底サーベイ : デジタル通貨の15年
徹底サーベイ : デジタル通貨の15年徹底サーベイ : デジタル通貨の15年
徹底サーベイ : デジタル通貨の15年Kenji Saito
 
OpenID Bizday #9 - 山崎重一郎氏 プレゼン資料
OpenID Bizday #9 - 山崎重一郎氏 プレゼン資料OpenID Bizday #9 - 山崎重一郎氏 プレゼン資料
OpenID Bizday #9 - 山崎重一郎氏 プレゼン資料OpenID Foundation Japan
 
Certificate TransparencyによるSSLサーバー証明書公開監査情報とその課題の議論
Certificate TransparencyによるSSLサーバー証明書公開監査情報とその課題の議論Certificate TransparencyによるSSLサーバー証明書公開監査情報とその課題の議論
Certificate TransparencyによるSSLサーバー証明書公開監査情報とその課題の議論Kenji Urushima
 
ブロックチェーン連続講義 第3回 ビットコインの技術
ブロックチェーン連続講義 第3回 ビットコインの技術ブロックチェーン連続講義 第3回 ビットコインの技術
ブロックチェーン連続講義 第3回 ビットコインの技術Kenji Saito
 
MinChain – Bitcoin ライクな最小限のブロックチェーン実装
MinChain – Bitcoin ライクな最小限のブロックチェーン実装MinChain – Bitcoin ライクな最小限のブロックチェーン実装
MinChain – Bitcoin ライクな最小限のブロックチェーン実装Yuto Takei
 
ブロックチェーン連続講義 第4回 暗号技術のリテラシー
ブロックチェーン連続講義 第4回 暗号技術のリテラシーブロックチェーン連続講義 第4回 暗号技術のリテラシー
ブロックチェーン連続講義 第4回 暗号技術のリテラシーKenji Saito
 
ブロックチェーン連続講義 第6回 ブロックチェーン 2.0
ブロックチェーン連続講義 第6回 ブロックチェーン 2.0ブロックチェーン連続講義 第6回 ブロックチェーン 2.0
ブロックチェーン連続講義 第6回 ブロックチェーン 2.0Kenji Saito
 
ブロックチェーンの解説 In.live ppt
ブロックチェーンの解説 In.live pptブロックチェーンの解説 In.live ppt
ブロックチェーンの解説 In.live pptAsteria Corporation
 
ブロックチェーンの基本構造
ブロックチェーンの基本構造ブロックチェーンの基本構造
ブロックチェーンの基本構造Soichiro Takagi
 
ブロックチェーン基礎基本
ブロックチェーン基礎基本ブロックチェーン基礎基本
ブロックチェーン基礎基本RyuzoNakata1
 
ブロックチェーン連続講義 第7回 スマートコントラクト
ブロックチェーン連続講義 第7回 スマートコントラクトブロックチェーン連続講義 第7回 スマートコントラクト
ブロックチェーン連続講義 第7回 スマートコントラクトKenji Saito
 

Was ist angesagt? (20)

ビットコインで使われている暗号の基礎を学ぶ
ビットコインで使われている暗号の基礎を学ぶビットコインで使われている暗号の基礎を学ぶ
ビットコインで使われている暗号の基礎を学ぶ
 
Blockchain innovation
Blockchain innovationBlockchain innovation
Blockchain innovation
 
ブロックチェーン技術の基本と応用の可能性
ブロックチェーン技術の基本と応用の可能性ブロックチェーン技術の基本と応用の可能性
ブロックチェーン技術の基本と応用の可能性
 
Bitcoinのしくみと設計思想
Bitcoinのしくみと設計思想Bitcoinのしくみと設計思想
Bitcoinのしくみと設計思想
 
【ビットコインとか勉強会#1】トランザクションを読み解く
【ビットコインとか勉強会#1】トランザクションを読み解く【ビットコインとか勉強会#1】トランザクションを読み解く
【ビットコインとか勉強会#1】トランザクションを読み解く
 
Congre chain説明資料
Congre chain説明資料Congre chain説明資料
Congre chain説明資料
 
徹底サーベイ : デジタル通貨の15年
徹底サーベイ : デジタル通貨の15年徹底サーベイ : デジタル通貨の15年
徹底サーベイ : デジタル通貨の15年
 
Bitcoinの技術
Bitcoinの技術Bitcoinの技術
Bitcoinの技術
 
OpenID Bizday #9 - 山崎重一郎氏 プレゼン資料
OpenID Bizday #9 - 山崎重一郎氏 プレゼン資料OpenID Bizday #9 - 山崎重一郎氏 プレゼン資料
OpenID Bizday #9 - 山崎重一郎氏 プレゼン資料
 
Certificate TransparencyによるSSLサーバー証明書公開監査情報とその課題の議論
Certificate TransparencyによるSSLサーバー証明書公開監査情報とその課題の議論Certificate TransparencyによるSSLサーバー証明書公開監査情報とその課題の議論
Certificate TransparencyによるSSLサーバー証明書公開監査情報とその課題の議論
 
ブロックチェーン連続講義 第3回 ビットコインの技術
ブロックチェーン連続講義 第3回 ビットコインの技術ブロックチェーン連続講義 第3回 ビットコインの技術
ブロックチェーン連続講義 第3回 ビットコインの技術
 
ブロックチェーンの仕組みと動向(入門編)
ブロックチェーンの仕組みと動向(入門編)ブロックチェーンの仕組みと動向(入門編)
ブロックチェーンの仕組みと動向(入門編)
 
MinChain – Bitcoin ライクな最小限のブロックチェーン実装
MinChain – Bitcoin ライクな最小限のブロックチェーン実装MinChain – Bitcoin ライクな最小限のブロックチェーン実装
MinChain – Bitcoin ライクな最小限のブロックチェーン実装
 
ブロックチェーン連続講義 第4回 暗号技術のリテラシー
ブロックチェーン連続講義 第4回 暗号技術のリテラシーブロックチェーン連続講義 第4回 暗号技術のリテラシー
ブロックチェーン連続講義 第4回 暗号技術のリテラシー
 
ブロックチェーン連続講義 第6回 ブロックチェーン 2.0
ブロックチェーン連続講義 第6回 ブロックチェーン 2.0ブロックチェーン連続講義 第6回 ブロックチェーン 2.0
ブロックチェーン連続講義 第6回 ブロックチェーン 2.0
 
ブロックチェーンの解説 In.live ppt
ブロックチェーンの解説 In.live pptブロックチェーンの解説 In.live ppt
ブロックチェーンの解説 In.live ppt
 
ブロックチェーンの基本構造
ブロックチェーンの基本構造ブロックチェーンの基本構造
ブロックチェーンの基本構造
 
ブロックチェーン基礎基本
ブロックチェーン基礎基本ブロックチェーン基礎基本
ブロックチェーン基礎基本
 
Bitcoin 2
Bitcoin 2Bitcoin 2
Bitcoin 2
 
ブロックチェーン連続講義 第7回 スマートコントラクト
ブロックチェーン連続講義 第7回 スマートコントラクトブロックチェーン連続講義 第7回 スマートコントラクト
ブロックチェーン連続講義 第7回 スマートコントラクト
 

Andere mochten auch

水を求めて〜蜃気楼に負けないゲーム開発〜
水を求めて〜蜃気楼に負けないゲーム開発〜水を求めて〜蜃気楼に負けないゲーム開発〜
水を求めて〜蜃気楼に負けないゲーム開発〜dan5
 
ripple api 勉強会
ripple api 勉強会ripple api 勉強会
ripple api 勉強会Yuki Akiyama
 
完全負け組なモバイルWebが、これから復活する(多分)
完全負け組なモバイルWebが、これから復活する(多分)完全負け組なモバイルWebが、これから復活する(多分)
完全負け組なモバイルWebが、これから復活する(多分)Hiroshi Kawada
 
未来のプログラミング技術をUnityで -UniRx-
未来のプログラミング技術をUnityで -UniRx-未来のプログラミング技術をUnityで -UniRx-
未来のプログラミング技術をUnityで -UniRx-torisoup
 
エディタの壁を越えるGoの開発ツールの文化と作成法
エディタの壁を越えるGoの開発ツールの文化と作成法エディタの壁を越えるGoの開発ツールの文化と作成法
エディタの壁を越えるGoの開発ツールの文化と作成法Takuya Ueda
 
カスタマーサポートのことは嫌いでも、カスタマーサクセスは嫌いにならないでください
カスタマーサポートのことは嫌いでも、カスタマーサクセスは嫌いにならないでくださいカスタマーサポートのことは嫌いでも、カスタマーサクセスは嫌いにならないでください
カスタマーサポートのことは嫌いでも、カスタマーサクセスは嫌いにならないでくださいTakaaki Umada
 

Andere mochten auch (7)

kintonecafe kagoshima-vol1
kintonecafe kagoshima-vol1kintonecafe kagoshima-vol1
kintonecafe kagoshima-vol1
 
水を求めて〜蜃気楼に負けないゲーム開発〜
水を求めて〜蜃気楼に負けないゲーム開発〜水を求めて〜蜃気楼に負けないゲーム開発〜
水を求めて〜蜃気楼に負けないゲーム開発〜
 
ripple api 勉強会
ripple api 勉強会ripple api 勉強会
ripple api 勉強会
 
完全負け組なモバイルWebが、これから復活する(多分)
完全負け組なモバイルWebが、これから復活する(多分)完全負け組なモバイルWebが、これから復活する(多分)
完全負け組なモバイルWebが、これから復活する(多分)
 
未来のプログラミング技術をUnityで -UniRx-
未来のプログラミング技術をUnityで -UniRx-未来のプログラミング技術をUnityで -UniRx-
未来のプログラミング技術をUnityで -UniRx-
 
エディタの壁を越えるGoの開発ツールの文化と作成法
エディタの壁を越えるGoの開発ツールの文化と作成法エディタの壁を越えるGoの開発ツールの文化と作成法
エディタの壁を越えるGoの開発ツールの文化と作成法
 
カスタマーサポートのことは嫌いでも、カスタマーサクセスは嫌いにならないでください
カスタマーサポートのことは嫌いでも、カスタマーサクセスは嫌いにならないでくださいカスタマーサポートのことは嫌いでも、カスタマーサクセスは嫌いにならないでください
カスタマーサポートのことは嫌いでも、カスタマーサクセスは嫌いにならないでください
 

Ähnlich wie Bitcoin x javascript

EXE #6:Lightning Network入門
EXE #6:Lightning Network入門EXE #6:Lightning Network入門
EXE #6:Lightning Network入門blockchainexe
 
仮想通貨ボットサービスによるJSボット作成
仮想通貨ボットサービスによるJSボット作成仮想通貨ボットサービスによるJSボット作成
仮想通貨ボットサービスによるJSボット作成慎二 山田
 
猫でも分かる Android WebKit
猫でも分かる Android WebKit猫でも分かる Android WebKit
猫でも分かる Android WebKitNaruto TAKAHASHI
 
EXE #4:ブロックチェーンコア技術と既存技術の組み合わせ
EXE #4:ブロックチェーンコア技術と既存技術の組み合わせEXE #4:ブロックチェーンコア技術と既存技術の組み合わせ
EXE #4:ブロックチェーンコア技術と既存技術の組み合わせblockchainexe
 
これから利用拡大?WebSocket
これから利用拡大?WebSocketこれから利用拡大?WebSocket
これから利用拡大?WebSocketAdvancedTechNight
 
[Intermediate 01] イントロダクション / Bitcoin を動作させる
[Intermediate 01] イントロダクション / Bitcoin を動作させる[Intermediate 01] イントロダクション / Bitcoin を動作させる
[Intermediate 01] イントロダクション / Bitcoin を動作させるYuto Takei
 
はじめてのWeb of Things
はじめてのWeb of ThingsはじめてのWeb of Things
はじめてのWeb of ThingsSaki Homma
 
Blockchain EXE #16:Hyperledger fabricの技術動向とファイナンシャルエンジニアリング視点でのトークンエコノミー|平山 毅...
Blockchain EXE #16:Hyperledger fabricの技術動向とファイナンシャルエンジニアリング視点でのトークンエコノミー|平山 毅...Blockchain EXE #16:Hyperledger fabricの技術動向とファイナンシャルエンジニアリング視点でのトークンエコノミー|平山 毅...
Blockchain EXE #16:Hyperledger fabricの技術動向とファイナンシャルエンジニアリング視点でのトークンエコノミー|平山 毅...blockchainexe
 
ライトニングノードをいじってみよう
ライトニングノードをいじってみようライトニングノードをいじってみよう
ライトニングノードをいじってみようtakayaimai
 
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-Saki Homma
 
ブロックチェーン技術概論1 輪読
ブロックチェーン技術概論1 輪読ブロックチェーン技術概論1 輪読
ブロックチェーン技術概論1 輪読Hiroki Takemura
 
JavaEdge第3回ライブセッション
JavaEdge第3回ライブセッションJavaEdge第3回ライブセッション
JavaEdge第3回ライブセッションYoichiro Tanaka
 
Kubernetes 初心者の僕からの JKD 参加報告
Kubernetes 初心者の僕からの JKD 参加報告Kubernetes 初心者の僕からの JKD 参加報告
Kubernetes 初心者の僕からの JKD 参加報告Kentaro NOMURA
 
ブロックチェーンを学ぶ 公開版
ブロックチェーンを学ぶ 公開版ブロックチェーンを学ぶ 公開版
ブロックチェーンを学ぶ 公開版YamashitaKatsushi
 
【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏
【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏
【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏Developers Summit
 
仮想通貨とBlockchainの課題と展望
仮想通貨とBlockchainの課題と展望仮想通貨とBlockchainの課題と展望
仮想通貨とBlockchainの課題と展望Masanori Kusunoki
 
Remote-Containersでnext.js環境を 作った話
Remote-Containersでnext.js環境を作った話Remote-Containersでnext.js環境を作った話
Remote-Containersでnext.js環境を 作った話Masaki Suzuki
 
Oracle bc gig#1_sisco
Oracle bc gig#1_siscoOracle bc gig#1_sisco
Oracle bc gig#1_siscoken0730
 

Ähnlich wie Bitcoin x javascript (20)

EXE #6:Lightning Network入門
EXE #6:Lightning Network入門EXE #6:Lightning Network入門
EXE #6:Lightning Network入門
 
Lightning Network入門
Lightning Network入門Lightning Network入門
Lightning Network入門
 
仮想通貨ボットサービスによるJSボット作成
仮想通貨ボットサービスによるJSボット作成仮想通貨ボットサービスによるJSボット作成
仮想通貨ボットサービスによるJSボット作成
 
WebRTCについて
WebRTCについてWebRTCについて
WebRTCについて
 
猫でも分かる Android WebKit
猫でも分かる Android WebKit猫でも分かる Android WebKit
猫でも分かる Android WebKit
 
EXE #4:ブロックチェーンコア技術と既存技術の組み合わせ
EXE #4:ブロックチェーンコア技術と既存技術の組み合わせEXE #4:ブロックチェーンコア技術と既存技術の組み合わせ
EXE #4:ブロックチェーンコア技術と既存技術の組み合わせ
 
これから利用拡大?WebSocket
これから利用拡大?WebSocketこれから利用拡大?WebSocket
これから利用拡大?WebSocket
 
[Intermediate 01] イントロダクション / Bitcoin を動作させる
[Intermediate 01] イントロダクション / Bitcoin を動作させる[Intermediate 01] イントロダクション / Bitcoin を動作させる
[Intermediate 01] イントロダクション / Bitcoin を動作させる
 
はじめてのWeb of Things
はじめてのWeb of ThingsはじめてのWeb of Things
はじめてのWeb of Things
 
Blockchain EXE #16:Hyperledger fabricの技術動向とファイナンシャルエンジニアリング視点でのトークンエコノミー|平山 毅...
Blockchain EXE #16:Hyperledger fabricの技術動向とファイナンシャルエンジニアリング視点でのトークンエコノミー|平山 毅...Blockchain EXE #16:Hyperledger fabricの技術動向とファイナンシャルエンジニアリング視点でのトークンエコノミー|平山 毅...
Blockchain EXE #16:Hyperledger fabricの技術動向とファイナンシャルエンジニアリング視点でのトークンエコノミー|平山 毅...
 
ライトニングノードをいじってみよう
ライトニングノードをいじってみようライトニングノードをいじってみよう
ライトニングノードをいじってみよう
 
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
 
ブロックチェーン技術概論1 輪読
ブロックチェーン技術概論1 輪読ブロックチェーン技術概論1 輪読
ブロックチェーン技術概論1 輪読
 
JavaEdge第3回ライブセッション
JavaEdge第3回ライブセッションJavaEdge第3回ライブセッション
JavaEdge第3回ライブセッション
 
Kubernetes 初心者の僕からの JKD 参加報告
Kubernetes 初心者の僕からの JKD 参加報告Kubernetes 初心者の僕からの JKD 参加報告
Kubernetes 初心者の僕からの JKD 参加報告
 
ブロックチェーンを学ぶ 公開版
ブロックチェーンを学ぶ 公開版ブロックチェーンを学ぶ 公開版
ブロックチェーンを学ぶ 公開版
 
【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏
【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏
【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏
 
仮想通貨とBlockchainの課題と展望
仮想通貨とBlockchainの課題と展望仮想通貨とBlockchainの課題と展望
仮想通貨とBlockchainの課題と展望
 
Remote-Containersでnext.js環境を 作った話
Remote-Containersでnext.js環境を作った話Remote-Containersでnext.js環境を作った話
Remote-Containersでnext.js環境を 作った話
 
Oracle bc gig#1_sisco
Oracle bc gig#1_siscoOracle bc gig#1_sisco
Oracle bc gig#1_sisco
 

Bitcoin x javascript