Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Rippleアドレスについて
Search
Yuki Akiyama
August 29, 2017
2.1k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Rippleアドレスについて
Yuki Akiyama
August 29, 2017
More Decks by Yuki Akiyama
See All by Yuki Akiyama
ビットコインを支えるインフラについて
you21979
3
3.9k
Bitcoinにおける手数料の考え方
you21979
1
1.2k
トレーディングボットとは
you21979
0
430
Bitcoin x Javascript
you21979
1
440
Featured
See All Featured
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
230
For a Future-Friendly Web
brad_frost
183
10k
Believing is Seeing
oripsolob
1
220
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
4.3k
Design in an AI World
tapps
1
310
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
900
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.2k
Building Applications with DynamoDB
mza
96
7.2k
Mind Mapping
helmedeiros
1
350
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
350
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
4.8k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
330
Transcript
Ripple アドレスについて 2017/08/29 ビットコインとか勉強会#10 Yuki Akiyama
自己紹介 ビットバンク株式会社 ビットコインエンジニア Yuki Akiyama (@you21979)
リップルのアドレスといえば? sから始まるシークレットキー(snx9HAm11LEpNVVGe4brEePcb3Bcp) rから始まるリップルアドレス(rNLUx8GJhkHstX3XtC4jLQCzWoRftbhrG5) シークレットキーからリップルアドレスが生成されます
要素技術 リップルのアドレスを求めるのに必要な技術は以下の5つ • secp256k1(楕円曲線) • sha512(ハッシュ) • sha256(ハッシュ) • ripmd160(ハッシュ)
• base58(エンコード) ここでは特にふれません
シークレットキーとリップルアドレスの関係 リップルアドレスをシークレットキーから生成する仕様を知るには アカウントファミリーという実装を知る必要があります シークレットキーから生成する場合はこの仕様を元に作られています 以下は仕様が書かれているWIKI https://wiki.ripple.com/Account_Family
用語 1.シークレットキー(シード) 2.プライベートジェネレータ、パブリックジェネレータ 3.秘密鍵、公開鍵 4.リップルアドレス
シークレットキー リップルでシークレットキーと読んでいるのは乱数のシード値のことです 16byte(128bit)のエントロピー(乱数)にFamilySeed(33=s)識別子をつけてbase58Check でエンコードされます
プライベートジェネレータ シードのハッシュから生成されます (細かい仕様はGenerateRootDeterministicKeyを参照) プライベートジェネレータからは2つのパラメータを生成できます • インデックスに対応した秘密鍵 • パブリックジェネレータ
パブリックジェネレータ プライベートジェネレータの楕円曲線から生成されます (細かい仕様はGenerateRootDeterministicKeyを参照) パブリックジェネレータからは1つのパラメータを生成できます • インデックスに対応した公開鍵
秘密鍵と公開鍵 秘密鍵から楕円曲線で公開鍵を生成できます 公開鍵からリップルアドレスを生成できます アドレスの作成方法はビットコインとほぼ同じです(P2PKH) ほとんど同じなので前の勉強会の資料を参考にするとよいです https://www.slideshare.net/tomohidemurata1/ss-76891213
アドレスのエンコード(BASE58) ビットコインと同じbase58だが変換テーブルが違う。 ビットコインの変換テーブル 123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz リップルの変換テーブル rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz
工程のおさらい 以下の組み合わせで生成できます 公開鍵を生成する方法が二通りあります • シードからプライベートジェネレータを生成 • プライベートジェネレータからパブリックジェネレータを生成 • プライベートジェネレータから秘密鍵を生成 •
パブリックジェネレータから公開鍵を生成 • 秘密鍵から公開鍵を生成 • 公開鍵からリップルアドレスを生成
プライベート/パブリックジェネレータ? • ジェネレータにインデックスを与えるとインデックスに対応したキーを得られる • つまり一つのシードから複数のリップルを得られる • ビットコインにも似た仕組みがある! • 階層的決定制ウォレット(BIP32、HDウォレット) 実は以下の記事にまとめてある
http://qiita.com/you21979@github/items/ddcdd4de31fb96c26ad2
リップルでもBIP32 • 実はBIP32を実装しているウォレットがある • Ledger Nano S • ニーモニックからリッピルアドレスを作れる •
概念が変わってしまうのでシークレットキーが存在しない • 既存のシークレットキーを使ったインフラが使えない 興味があれば以下の記事にやり方を書いてます http://qiita.com/you21979@github/items/7ca77dbd6ffe8f001e9c
最後に リップルのアドレスを大量に作る方法を紹介しましたが リップルのアドレスは実はいろいろ制限されています • 20XRPいれてアクティベートしないとならない • 対応したライブラリが公式にない アドレスが無限にあるとレジャーの仕組み上都合が悪い。 1000億XRP /
20XRP = 最大50億アカウント 人類は75億人
ご静聴ありがとうございました 質問など