Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
NK
Uploaded by
Nagato Kasaki
PDF, PPTX
1,079 views
Pact言語によるセキュアなスマートコントラクト開発
HI-Ether Meetup #8 TokyoのLT発表資料です
Technology
◦
Read more
0
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 19
2
/ 19
3
/ 19
4
/ 19
5
/ 19
6
/ 19
7
/ 19
8
/ 19
9
/ 19
10
/ 19
11
/ 19
12
/ 19
13
/ 19
14
/ 19
15
/ 19
16
/ 19
17
/ 19
18
/ 19
19
/ 19
More Related Content
PPTX
Rustのテストやエコシステム
by
KiyotomoHiroyasu
PDF
CSRを自動生成する!
by
Taichi Ishitani
PDF
What, Why, How Create OSS Libraries - 過去に制作した30のライブラリから見るC#コーディングテクニックと個人OSSの...
by
Yoshifumi Kawai
PPTX
Unimaginable code & commentary
by
Kazuki Kachi
PPTX
Live Coding で学ぶ C# 7
by
Takaaki Suzuki
PDF
Drawing Dataflow On Dalvik Bytecodes
by
Takahiro Yoshimura
PDF
new Objctive-C literal syntax
by
Wataru Kimura
PDF
pkgsrc で gimp がアレだった件 - デマと放置と私
by
Akio OBATA
Rustのテストやエコシステム
by
KiyotomoHiroyasu
CSRを自動生成する!
by
Taichi Ishitani
What, Why, How Create OSS Libraries - 過去に制作した30のライブラリから見るC#コーディングテクニックと個人OSSの...
by
Yoshifumi Kawai
Unimaginable code & commentary
by
Kazuki Kachi
Live Coding で学ぶ C# 7
by
Takaaki Suzuki
Drawing Dataflow On Dalvik Bytecodes
by
Takahiro Yoshimura
new Objctive-C literal syntax
by
Wataru Kimura
pkgsrc で gimp がアレだった件 - デマと放置と私
by
Akio OBATA
What's hot
PDF
TensorFlow XLA : AOT編 チラ見版
by
Mr. Vengineer
PDF
エキスパートGo
by
Takuya Ueda
PPTX
論理思考とプログラミング
by
Noritada Shimizu
PDF
Tokyo.R #19 発表資料 「Rで色々やってみました」
by
Masayuki Isobe
PDF
Pynq祭り資料
by
一路 川染
PPTX
Polyphony 新機能ツアー
by
ryos36
PDF
2017年のFPGA Community活動について
by
Mr. Vengineer
PDF
条件式評価器の実装による管理ツールの抽象化
by
Takuya Ueda
PDF
今日からはじめるHTML5 ver.2012
by
Yasuhito Yabe
PDF
俺の let p = PathBuf::from("/test").into_os_string().to_str();はなぜコンパイルエラーか
by
ShunsukeNakamura17
PPTX
C# 7 Current Status
by
Takaaki Suzuki
PDF
Implement tech
by
HCPC: 北海道大学競技プログラミングサークル
TensorFlow XLA : AOT編 チラ見版
by
Mr. Vengineer
エキスパートGo
by
Takuya Ueda
論理思考とプログラミング
by
Noritada Shimizu
Tokyo.R #19 発表資料 「Rで色々やってみました」
by
Masayuki Isobe
Pynq祭り資料
by
一路 川染
Polyphony 新機能ツアー
by
ryos36
2017年のFPGA Community活動について
by
Mr. Vengineer
条件式評価器の実装による管理ツールの抽象化
by
Takuya Ueda
今日からはじめるHTML5 ver.2012
by
Yasuhito Yabe
俺の let p = PathBuf::from("/test").into_os_string().to_str();はなぜコンパイルエラーか
by
ShunsukeNakamura17
C# 7 Current Status
by
Takaaki Suzuki
Implement tech
by
HCPC: 北海道大学競技プログラミングサークル
More from Nagato Kasaki
PDF
ゼロから始めるSparkSQL徹底活用!
by
Nagato Kasaki
PDF
Spark graph framesとopencypherによる分散グラフ処理の最新動向
by
Nagato Kasaki
PDF
Hive on Spark を活用した高速データ分析 - Hadoop / Spark Conference Japan 2016
by
Nagato Kasaki
PDF
Sparkで始めるお手軽グラフデータ分析
by
Nagato Kasaki
PDF
暗号通貨輪読会 #20 bloXroute
by
Nagato Kasaki
PDF
20190712 polkadot japan meetup
by
Nagato Kasaki
PDF
Sparkを活用したレコメンドエンジンのパフォーマンスチューニング&自動化
by
Nagato Kasaki
PDF
Spark GraphFrames のススメ
by
Nagato Kasaki
ゼロから始めるSparkSQL徹底活用!
by
Nagato Kasaki
Spark graph framesとopencypherによる分散グラフ処理の最新動向
by
Nagato Kasaki
Hive on Spark を活用した高速データ分析 - Hadoop / Spark Conference Japan 2016
by
Nagato Kasaki
Sparkで始めるお手軽グラフデータ分析
by
Nagato Kasaki
暗号通貨輪読会 #20 bloXroute
by
Nagato Kasaki
20190712 polkadot japan meetup
by
Nagato Kasaki
Sparkを活用したレコメンドエンジンのパフォーマンスチューニング&自動化
by
Nagato Kasaki
Spark GraphFrames のススメ
by
Nagato Kasaki
Recently uploaded
PPTX
ChatGPTのコネクタ開発から学ぶ、外部サービスをつなぐMCPサーバーの仕組み
by
Ryuji Egashira
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):コアマイクロシステムズ株式会社 テーマ 「AI HPC時代のトータルソリューションプロバイダ」
by
PC Cluster Consortium
PDF
論文紹介:DiffusionRet: Generative Text-Video Retrieval with Diffusion Model
by
Toru Tamaki
PDF
論文紹介:HiLoRA: Adaptive Hierarchical LoRA Routing for Training-Free Domain Gene...
by
Toru Tamaki
PDF
論文紹介:MotionMatcher: Cinematic Motion Customizationof Text-to-Video Diffusion ...
by
Toru Tamaki
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):日本ヒューレット・パッカード合同会社 テーマ1「大規模AIの能力を最大限に活用するHPE Comp...
by
PC Cluster Consortium
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):Pacific Teck Japan テーマ3「『TrinityX』 AI時代のクラスターマネジメ...
by
PC Cluster Consortium
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):Pacific Teck Japan テーマ2「『Slinky』 SlurmとクラウドのKuber...
by
PC Cluster Consortium
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):エヌビディア合同会社 テーマ1「NVIDIA 最新発表製品等のご案内」
by
PC Cluster Consortium
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):日本ヒューレット・パッカード合同会社 テーマ3「IT運用とデータサイエンティストを強力に支援するH...
by
PC Cluster Consortium
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):富士通株式会社 テーマ1「HPC&AI: Accelerating material develo...
by
PC Cluster Consortium
PDF
AI開発の最前線を変えるニューラルネットワークプロセッサと、未来社会における応用可能性
by
Data Source
PPTX
2025年11月24日情報ネットワーク法学会大井哲也発表「API利用のシステム情報」
by
Tetsuya Oi
PDF
ニューラルプロセッサによるAI処理の高速化と、未知の可能性を切り拓く未来の人工知能
by
Data Source
PDF
膨大なデータ時代を制する鍵、セグメンテーションAIが切り拓く解析精度と効率の革新
by
Data Source
ChatGPTのコネクタ開発から学ぶ、外部サービスをつなぐMCPサーバーの仕組み
by
Ryuji Egashira
PCCC25(設立25年記念PCクラスタシンポジウム):コアマイクロシステムズ株式会社 テーマ 「AI HPC時代のトータルソリューションプロバイダ」
by
PC Cluster Consortium
論文紹介:DiffusionRet: Generative Text-Video Retrieval with Diffusion Model
by
Toru Tamaki
論文紹介:HiLoRA: Adaptive Hierarchical LoRA Routing for Training-Free Domain Gene...
by
Toru Tamaki
論文紹介:MotionMatcher: Cinematic Motion Customizationof Text-to-Video Diffusion ...
by
Toru Tamaki
PCCC25(設立25年記念PCクラスタシンポジウム):日本ヒューレット・パッカード合同会社 テーマ1「大規模AIの能力を最大限に活用するHPE Comp...
by
PC Cluster Consortium
PCCC25(設立25年記念PCクラスタシンポジウム):Pacific Teck Japan テーマ3「『TrinityX』 AI時代のクラスターマネジメ...
by
PC Cluster Consortium
PCCC25(設立25年記念PCクラスタシンポジウム):Pacific Teck Japan テーマ2「『Slinky』 SlurmとクラウドのKuber...
by
PC Cluster Consortium
PCCC25(設立25年記念PCクラスタシンポジウム):エヌビディア合同会社 テーマ1「NVIDIA 最新発表製品等のご案内」
by
PC Cluster Consortium
PCCC25(設立25年記念PCクラスタシンポジウム):日本ヒューレット・パッカード合同会社 テーマ3「IT運用とデータサイエンティストを強力に支援するH...
by
PC Cluster Consortium
PCCC25(設立25年記念PCクラスタシンポジウム):富士通株式会社 テーマ1「HPC&AI: Accelerating material develo...
by
PC Cluster Consortium
AI開発の最前線を変えるニューラルネットワークプロセッサと、未来社会における応用可能性
by
Data Source
2025年11月24日情報ネットワーク法学会大井哲也発表「API利用のシステム情報」
by
Tetsuya Oi
ニューラルプロセッサによるAI処理の高速化と、未知の可能性を切り拓く未来の人工知能
by
Data Source
膨大なデータ時代を制する鍵、セグメンテーションAIが切り拓く解析精度と効率の革新
by
Data Source
Pact言語によるセキュアなスマートコントラクト開発
1.
Pact言語によるセキュアな スマートコントラクト開発 Hi-Ether Meetup #8
Tokyo 2018.08.29 DMM.com スマートコントラクト事業部 加嵜長門 更新
2.
https://www.amazon.co.jp/dp/4839965137/ 加嵜 長門(かさき ながと) スマートコントラクト事業部エバンジェリスト。 分散処理技術やブロックチェーン技術の研究開発、事 業提案などを担当。 共著に『ブロックチェーンアプリケーション開発の教科 書』(マイナビ出版)、『ビッグデータ分析・活用のための SQLレシピ』(マイナビ出版)、『詳解
Apache Spark』(技 術評論社) Twitter: @knagato 2 自己紹介
3.
Pact言語とは ● Kadenaブロックチェーンのコントラクト実装言語 ○ https://github.com/kadena-io/pact 3 ●
セキュアなコントラクト実装に特化 ○ 公開鍵ベースのアクセスコントロール ○ 非チューリング完全 ○ 形式的検証システム
4.
Kadenaの概要 ● ScalableBFTを採用したプライベートチェーン 4https://cyber.stanford.edu/sites/default/files/kadenachainweb-bpase18.pdf ● パブリックチェーンのためのプロトコルを開発中
5.
Pactのサンプルコード ● LISPライクな文法 5 ;; Define
the module. (module helloWorld 'admin-keyset "A smart contract to greet the world." (defun hello (name) "Do the hello-world dance" (format "Hello {}!" [name])) ) ;; and say hello! (hello "World") HelloWorld.pact
6.
Pactのサンプルコード ● 組み込みのキーバリューストア 6 ;; Set
transaction signature KEYS. (env-keys ["accountadmin" "user123" "user456"]) ;; Set transaction JSON data, ;; either as encoded string, or as pact types coerced to JSON. (env-data { "accounts-admin-keyset": ["accountadmin"] }) (env-data { "123-keyset": { "keys": ["user123"], "pred": "keys-all" }, "456-keyset": { "keys": ["user456"], "pred": "keys-any" } }) KeyValues.pact
7.
実行環境インストール ● Mac OS 7 ●
Ubuntu ○ バイナリをダウンロード $ brew install kadena-io/pact/pact http://kadena.io/pact/downloads.html
8.
実行環境インストール ● Windows ○ Windows
Subsystem for Linux が楽(旧 Bash on Ubuntu on Windows) 8
9.
Atom Plugin 9 ● AtomのPact言語用プラグインを提供 ○
language-pactで検索
10.
動作確認 10 $ pact pact> (+
1 2) 3 pact> (+ "hello, " "world") "hello, world" pact> (contains 2 [1 2 3]) True ● Pactインタプリタ(Ctrl-Dで終了)
11.
もっと手軽に使ってみる 11 ● Try Pact
In The Browser ○ http://kadena.io/try-pact/
12.
形式的証明システム ● The pact
property checking system ○ https://pact-language.readthedocs.io/en/latest/pact-properties.html ○ https://medium.com/kadena-io/889058bd8c3f 12 ● 形式的検証 (Formal Verification) ○ プログラムが正しいことを証明する ○ テストコードは書かない
13.
PactFVの使い方 ● Microsoft’s Z3
theorem proverをインストール ○ https://github.com/Z3Prover/z3/wiki ○ apt-get install z3 だとバージョンが古いので、上記から最新版を使う 13 ● アノテーションを書く (defun negate:integer (x:integer) @doc "negate a number" @model (properties [(= result (* -1 x))]) (* x -1))
14.
PactFVのデモ ● サンプルコード 14 (defschema account @doc
"user accounts with balances" @model (invariants [(>= balance 0)]) balance:integer ks:keyset) pactFVsample.repl https://gist.github.com/KasakiNagato/12fbb35341ee49ed2f4f0f74c0f595cd
15.
PactFVのデモ 15 (defun transfer (from:string
to:string amount:integer) @doc "Transfer money between accounts" @model (properties [(row-enforced 'accounts 'ks from) (= 0 (column-delta 'accounts 'balance))]) (with-read accounts from { 'balance := from-bal, 'ks := from-ks } (with-read accounts to { 'balance := to-bal } (enforce-keyset from-ks) (enforce (>= from-bal amount) "Insufficient Funds") (update accounts from { "balance": (- from-bal amount) }) (update accounts to { "balance": (+ to-bal amount) })))) pactFVsample.repl https://gist.github.com/KasakiNagato/12fbb35341ee49ed2f4f0f74c0f595cd
16.
PactFVのデモ 16 $ wget https://gist.githubusercontent.com/KasakiNagato/12fbb353 41ee49ed2f4f0f74c0f595cd/raw/0bd0fc04f688187c79d89bb3e07 29aba37d204bf/pactFVsample.repl $ pact pact>
(load "pactFVsample.repl") pact> (list-modules) ["pactFVsample"] pact> (verify 'pactFVsample)
17.
PactFVによるプログラムのバグ検出 17 Property proven valid pactFVsample.repl:21:7:Warning:
Invalidating model found: Arguments: from := "" to := "" amount := -1 Variables: from-bal := 1 from-ks := KeySet 3 to-bal := 1 ...
18.
発見されたバグと修正案 18 ● Amountに負の値を指定された場合 ○ 送信者が受信者の残高を奪ってしまうことができる ○
(enforce (> amount 0)) を指定 ● FromとToに同じアドレスを指定された場合 ○ 不正に自分の残高を増やすことができる ○ (enforce (!= from to)) を指定
19.
より詳しくは 19 ● Kadena Whitepapers ○
http://kadena.io/whitepapers.html ● Kadena - Medium ○ https://medium.com/kadena-io ● Kadena - Github ○ https://github.com/kadena-io/pact
Download