Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Move for Libra written in Rust
Search
cipepser
July 30, 2019
Programming
3.4k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Move for Libra written in Rust
cipepser
July 30, 2019
More Decks by cipepser
See All by cipepser
long-running-tasks
cipepser
3
550
layerx-fde-practices
cipepser
6
3.3k
NIKKEI Tech Talk#38
cipepser
0
1.2k
LayerXにおけるFDEについて
cipepser
4
3.4k
20250725-bet-ai-day
cipepser
4
670
Criterion-rs
cipepser
0
180
Practical Anonify
cipepser
2
920
procedural-macros
cipepser
0
210
How IBLT Works
cipepser
0
270
Other Decks in Programming
See All in Programming
【やさしく解説 設計編・中級 #4】ルールの寿命と、システムの年輪
panda728
PRO
2
110
「正の参照」と 「負の導出」で組む ハーネスエンジニアリング
cottpan
1
130
音楽のための関数型プログラミング言語mimiumにおける多段階計算の活用
tomoyanonymous
1
300
Vite+ Unified Toolchain for the Web
naokihaba
0
740
技術記事、 専門家としてのプログラマ、 言語化
mizchi
14
7.4k
エンジニアと一緒にテストコードの設計と実装を改善した話
mototakatsu
0
260
Performance Engineering for Everyone
elenatanasoiu
0
270
Mujeres en SEO Summit 2026 - Greatest Disaster Hits en Web Performance
guaca
0
240
Snowflake Summitでの新機能 CoCo / CoWork / snowflake-summit-2026-overall-what-new-coco
tatsuhiro
1
220
コーディングルールの鮮度を保ちたい for SRE NEXT 2026 / keep-fresh-go-internal-conventions-sre-next-2026
handlename
0
140
使用 Meilisearch 建立新聞搜尋工具
johnroyer
0
120
Creating Composable Callables in Contemporary C++
rollbear
0
200
Featured
See All Featured
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
220
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
630
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.4k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2.1k
Designing Powerful Visuals for Engaging Learning
tmiket
1
450
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.8k
Designing for humans not robots
tammielis
254
26k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
460
What's in a price? How to price your products and services
michaelherold
247
13k
Documentation Writing (for coders)
carmenintech
77
5.4k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
180
Transcript
Rustで実装された Libra Move言語とは cipepser 2019/7/30 Roppongi.rs #1
自己紹介 • cipepser(さいぺ) • Fintertech株式会社 • Rust歴: 1年半くらい • 経歴
◦ SIerで証券系システムのネットワーク設計、構築 • 最近の趣味プロジェクト ◦ 自作Protocol Buffersデコーダ(Golang) ◦ Monkey言語のRust実装 ▪ Lexerまでは実装済み。AST設計中。 ▪ コンパイラとVMの実装までやりきりたい
本日の内容 • Libraとは • Move言語とは • ブロックチェーン上にアセットを載せる難しさ • 既存のブロックチェーン言語の課題 •
Moveの設計 • Moveに触るには
Libraとは • 2019年6月にFacebookが発表した金融プラットフォーム • ミッション「多くの人びとに力を与える、シンプルで国境のないグローバルな通貨と 金融インフラになる」 • BFTモデルのLibra Blockchainが基盤 •
とにかくメンバーが強い 1) The Libra Whitepaper - Blockchain, Association, Reserve | Libra https://libra.org/ja-JP/white-paper/#introduction 2) Facebook’s cryptocurrency partners revealed—we obtained the entire list of inaugural backers - The Block https://www.theblockcrypto.com/2019/06/14/facebooks-cryptocurrency-partners-revealed-we-obtained-the-entire-list-of-inaugural-backers/
Move言語とは • Libraでスマートコントラクトを書く言語 • Move自体はRustで実装されている ◦ 安全とセキュリティを重視 • 静的型付けのバイトコード言語 ◦
VMで実行 ◦ bytecode verifierによるチェック
デジタル・アセットをオープンシステムに載せる難しさ • Scarcity(希少性) ◦ 無から有を生み出せないこと ◦ 複製できないこと • Access control
◦ 所有者だけがアセットをコントロールできること
既存のブロックチェーン言語の課題 • 資産を直接エンコードできない ◦ 資産をIntegerで表現 ◦ 型がない ◦ エラーハンドリングはどうやって? •
Scarcityの実装が開発者に委ねられる ◦ 言語のサポートなしに、注意深く実装しなければならない • Access controlが柔軟でない ◦ 署名スキームベースが主流
Moveの設計 • first-class assets ◦ resource typeを定義できる(資産を表現) ◦ コピーと破棄は明示的に行う( copy/move)
• flexibility ◦ Move言語: modules/resources/produres ◦ オブジェクト指向言語 : classes/objects/methods • safety ◦ bytecode verifierによるoff-chain解析 • verfiability ◦ 動的ディスパッチを行わない ▪ コールグラフが複雑にならない ◦ mutabilityの制限(valueの変更はreference経由。Rustの所有権システムの力を借りる) ◦ モジュール化によるデータ抽象化
Moveにふれるには • Githubで公開されている ◦ https://github.com/libra/libra/tree/master/language • 社内ブログもご一読ください ◦ Facebook libraのMove言語でスマートコントラクトを書いてみる
▪ https://note.mu/fintertech/n/n3334c5a021e9 • とはいえ、まだまだ発展途上 ◦ 現時点ではLibra Blockchainにデプロイできない ▪ ローカルでのテストはできる ◦ ドキュメントや開発ツールも揃っていない ▪ コードハイライトやsuggestionが早く欲しい ▪ buitlinsの一覧はWPのappendixに載ってる ◦ CollectionやGenericsも将来対応するらしい( WPより) ▪ 今はByteArrayとStructくらい