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
BC_study_5_Token.pdf
Search
titech.crypto
May 27, 2018
390
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
BC_study_5_Token.pdf
titech.crypto
May 27, 2018
More Decks by titech.crypto
See All by titech.crypto
Crypgeek 勉強会 #13
titechcrypto
0
460
Lightning network
titechcrypto
0
43
About Bitcoin and its cryptography
titechcrypto
0
110
第8回 CrypGeek勉強会
titechcrypto
0
81
勉強会_7ゼロ知識証明.pdf
titechcrypto
0
440
勉強会7.pdf
titechcrypto
0
450
勉強会 #6
titechcrypto
0
370
勉強会 #6
titechcrypto
0
380
勉強会 #4
titechcrypto
0
330
Featured
See All Featured
A better future with KSS
kneath
240
18k
The Limits of Empathy - UXLibs8
cassininazir
2
720
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
50
10k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
2
2k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
2
2.2k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
31k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
640
HDC tutorial
michielstock
2
960
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.9k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Transcript
東工大ブロックチェーン 勉強会 #5 1. トークンについて
トークンとは? • 一般的なトークン…限定された範囲で発行された、一定の少額な価値を持 つコインの様な物(Ex: 切符、チケット、商品券 • ブロックチェーントークン…様々な価値、権利の所有権や管理権を象徴す るもの。 一般的なトークン ブロックチェーントークン
範囲 限定的 非限定的 流動性 低 高 価値 比較的小 様々
トークンの機能 • 仮想通貨 • リソース • 資産 • アクセス権限 •
株式 • 投票権 • コレクション • 身分等の証明物(ID) • 歴史的な証拠 トークンの多くは、機能が 複雑に絡み合っているが、 それぞれを別個に考えるこ ともできる。必要に応じた 分別実装もブロックチェー ンでは可能。 • 身分証明物 • 歴史的な証拠
用語: トークンの内部性(intrinsicality) • intrinsic(固有、本質) • 仮想通貨やCryptoKittiesのトークンなど、トークンが持つ価値が本質的にそ のトークン自体にあり、ブロックチェーン上に記録されていることをいう。 • Extrinsic(外部的) •
逆に、不動産などの所有権、投票権は、ブロックチェーンの外部にある価値 をブロックチェーン上に載せている。これをextrinsicであると言う。 • Extrinsicなトークンの場合、カウンタパーティリスクが付随する。
用語: カウンタパーティーリスク • トークンの取引を行う際、取引に関わりのある第三者が取引要求を満たす ことが出来ないリスク。 • 例…100gの金を表すGold Tokenの取引では、トークンの売り手、買い手、 金の保管者の3者が存在。トークンの売り手は、金を実際に所持している 訳ではなく、金を交換できるトークンを保有しているだけである。トーク
ンの交換が出来たからと言って、必ずしも実際の金の所有権を正しく譲渡 できる訳ではなく、金の保有者が取引を認知せず前の所有者に金を渡すな どのカウンタパーティーリスクが考えられる。
用語: Fungibility • Fungible…物や商品のある単位ごとの価値が互いに交換可能なこと。つま り、同じ単位のトークン同士では差異が無い。 • 例: 仮想通貨 • Non-fungibility…あるトークンが固有の価値を持っており、数値的に等価
な交換ができないもの。 • 例: 絵画の所有権、Cryptokitties, 個人情報 • 厳密には取引履歴の追跡が可能な仮想通貨は完全にFungibleであるとは言 えない。
トークンスタンダード: ERC-20 • ERC-20トークンとは, Ethereum上のFungibleなトークンの標準技術仕様 の一つである。 • MyEtherWalletなどERC-20の保存に対応しているウォレットが多く、殆 どのICOはこのトークン仕様で実装されている。 •
現在発行されているトークン量, 自分の残高, トークンのtransfer等の一連 の関数の名前と引数名・形が定義されている。 • 「トークンスタンダードを満たす = 要求されている関数を実装する」こ とであるが、追加で独自の関数を実装することもできる。
トークンスタンダード: ERC-20 • totalSupply: トークンの総発行量を返す • balanceOf: 呼び出し元のアドレスが保有している残高を返す • transfer:
所有するトークンの送付を行う • transferFrom: 誰か誰に、トークンの送付量を指定する。approveと一緒に使用 する。 • approve: 発信元の保有するトークンの引き出し最大値を指定する。 • allowance: owner, spenderを指定して, ownerがspenderに支払える限度額の残 りを返す • Transfer event: transferが成功した時にトリガーされる。 • Approval event: approveが正しく実行された時にトリガーされる。
2種類の送金例について • Transferの使用例: Alisはtranseferを用いて1 Coffee tokenをBobに送付する • approveとtransfer fromの使用例: 1.
AlisはAlisCoinを発行して、一旦全て自分 に送付する。 2. AlisはAlisICOコントラクトを作成する。 3. Alisは販売したいトークン最大量を approveにて指定する。指定アドレス: AliceICO。 4. 購入者はETHの送金を行うと、AliceICOが transferFromを実行する。 5. AliceCoinはETH額に応じてAliceCoinを Bobに送付する。
トークンスタンダードの拡張 • ERC-20では以下のような拡張がよく行われる。 • name: トークンの名前を返す(“US Dollars”) • symbol: トークンのシンボルを返す(“USD”など)
ERC20の実装ライブラリ • Consensys EIP20 • 可読性が高く、シンプルな実装 • OpenZeppelin • 資金調達のしきい値、オークション、権利付与期間などの機能が実装
されている。より多くのセキュリティ対策が実装されている。
トークンスタンダード: ERC-223 • ERC-20の問題点であった、存在しないアドレスに送金した際にトークン が失われる問題を解決している。具体的には、tokenFallback関数によっ て送金先が間違っていた場合には、送金元に資金を返すことができる。 • approve関数、approvalイベントは削除されている。
トークンスタンダード: ERC-721 • Non-fungible tokenを扱うことができる統一形式。ERC-20, 223との内部 データマッピングに差異がある。 • ERC-20 mapping(address
=> uint256) balances; • ERC-721 mapping(uint256 => address) deedOwner;
トークンに追加することができる機能 • Owner Control: 特定のユーザーを、ブラックリスト、ホワイトリスト、ミンティング、リ カバリーなどの特別な権限を与える • Burning: 存在しないアドレス又は、自分のアカウント残高を減らすことによって、総発行 量を減らす
• Minting: トークンを追加で発行する • Crowdfunding: オークションやセール、ダッチオークション形式でトークンのセールを行 う • Caps: 事前にトークンの総発行量を規定する • Recovery “Back Doors”: 特定のアドレスからの呼び出しに応じて過去のトランスファーを 元に戻す。 • Whitelisting: 特定のアドレスのみに対してアドレスの送付を可能にする • Blacklisting: 特定のアドレスへのトークンの送付を制限する
• EoF