© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Libra 코드 분석 및
AWS 상에서 구축 방법
박혜영
솔루션즈 아키텍트
E m e r g i n g T e c h
박천구
솔루션즈 아키텍트
Contents 3. Rust & Move
4. Libra Demo on AWS
2. Libra Architecture
1. AWS Blockchain Stack
5. Blockchain Benefits on AWS
AWS Blockchain Stack
BLOCKCHAIN
INFRASTRUCTURE
BLOCKCHAIN
OPENSOURCE
BLOCKCHAIN
MANAGED SERVICE
E C 2
Q L D BA m a z o n M a n a g e d
B l o c k c h a i n
E t h e r e u m
H y p e r l e d g e r
F a b r i c
L i b r a
L a m b d a
SGX is continually seeking ways to use
blockchain to reduce settlement time,
while exploring collaborations in cross-
border transactions in ASEAN. As such,
they need a reliable platform that can run
blockchain workloads and scale as they
add regional partners such as banks,
monetary authorities as well as other
exchanges.
AWS Professional Services provisioned an
Amazon Managed Blockchain network, as
well as an Ethereum client, and deployed
SGX’s existing blockchain investments to
demonstrate Delivery-vs-Payment (DvP)
settlement of cash versus government
bonds on AWS.
SGX now has a blockchain platform that
enhances collaboration with banks,
monetary authorities and other exchanges
to execute and achieve local and cross-
border trade settlement. ProServe
demonstrated that SGX investments in
blockchain can be utilized on Amazon
Managed Blockchain with minimal
changes.
Singapore Exchange Limited
Challenge Solution Benefit
Singapore Exchange is Asia’s leading and
trusted market infrastructure, operating
equity, fixed income and derivatives
markets to the highest regulatory
standards. As Asia’s most international,
multi-asset exchange, SGX provides listing,
trading, clearing, settlement, depository
and data services, with about 40% of listed
companies and over 80% of listed bonds
originating outside of Singapore.
Central Exchange
Singapore
www.sgx.com
800+
company
Industry
Country
Website
Employees
Payment : Singapore Exchange
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
기존 이슈
인터넷으로 돈은 송금하기 여전히 어렵다.
금융기관 계좌 계설 / 높은 수수료
디지털 에셋은 인터넷으로 싸고 쉽게 보내는데,
기존 암호화폐 이슈
Libra는 기존 암호화폐의 변동성과 확장성 부족을 모두를 해결하고자 함
변동성 이슈
확장성 이슈
What is Libra?
리브라는 암호화폐라기 보다는 새로운 디지털 통화
리브라 연합미국 연방준비제도
1:1
(FRB : Federal Reserve Board) (Libra Association)
Libra Network
Local>
./scripts/cli/start_cli_testnet.sh
libra%
libra%
libra%
Libra Client
CoreTestNet
TestNet
v1
V2 V3
V4
① Local (Docker, Cargo Build)
Leader
Mint
④
$ clone https://github.com/libra/libra.git && cd libra
Currently available for macOS and Linux
$ git checkout testnet
$ ./scripts/cli/start_cli_testnet.sh
$ ./scripts/dev_setup.sh
Local> ./scripts/cli/start_cli_testnet.sh
libra%
libra%
libra%
Libra Client
https://developers.libra.org/☞
How to set up Libra
Validators
Mint
Leader
Local (Docker)
$ docker/validator/build.sh
$ docker/mint/build.sh
$ run docker/mint/run.sh
$ docker/validator/run.sh
https://github.com/libra/libra/tree/master/docker☞
$ cargo run -p client --bin client -- -a localhost -p 8000 -f localhost:8080
-s terraform/validator-sets/dev/consensus_peers.config.toml
How to set up Libra
Currently available for macOS and Linux
Libra CLI
https://developers.libra.org/docs/reference/libra-cli☞
Leader Validator
https://developers.libra.org/docs/assets/papers/the-libra-blockchain.pdf☞
Consensus
Storage
Mempool
Admission
Control
Other Validators
Local>
./scripts/cli/start_cli_testnet.sh
libra%
libra%
libra%
Libra Client
❶ transaction
❷
❸
❼
❺
❽
❾
Virtual
Machine
❹ ❻
❾10
Execution
How to work
1. 브로드캐스팅 대신 리더노드를 중심으로 통신
2. Quorum Certificate(QC)이 없는, 블록이 생성 되었을 경우
뒤의 블록이 완결성을 가지면 해당 블록 또한 완결성을 갖게 됨 (Finality vs Safety tradeoff)
Mesh communication network Star communication network
Consensus - HotStuff Consens
us
Prepare Pre-Commit Commit Decide
PBFT à HotStuff à LibraBFT
executevalidateverify
+ public_key
+ signature
Signed Transaction
+ sender
+ sequence_number
+ Program = Tx Script/Module
+ max_gas_amount
+ gas_unit_price
1. Check signature
2. Run prologue
3. Compile Script & modules
4. Bytcode Verifier
5. Execute main
6. Run epilogue
7. Write storage
How it works – Virtual Machine Virtual
Machine
Executio
n
Transaction
Signed Transaction
+ sender
+ sequence_number
+ Payload = Tx Script/Module
+ max_gas_amount
+ gas_unit_price
Validators
V3
[ Ledger History ]
T0 T1 T2 T3
Tr
[ Transactions Tree ]
[ Event Tree ]
E
1
E
2
S3
[ State Tree ]
peer_to_peer_transfer
Script Name
Main( ) {
0x0.LibraAccount.pay_from_sender(…)
}
MVIR
0101010101011010110011011001111
0111101010101010101010101010110
Bytecode
How it works - Storage Storage
Ethereum
Miner
Public
Go / Solidity
Validators
Permissioned
Rust /Move
ERC20 Stable Coin
15 tx/s 2000 tx/s
RocksDBLevelDB
PoW
ü Purpose
ü Consensus
ü Performance
ü Language
ü Storage
ü Network
ü Block Maker
Hotstuff
PBFT à HotStuff à LibraBFT
Libra
What is Rust?
Trade-Off : Control vs. Safety
• Mozilla needs Control
• Mozilla needs Safety
Why Rust?
C C++
Trade-Off : Control vs. Safety
Go
Java Scalar
Python
Haskell
Safety
Control
“Low-level”
Rust : Memory Model
• Each value in Rust has a variable that’s called its owner.
• There can only be one owner at a time.
• When the owner goes out of scope, the value will be dropped.
Rust : Memory Model
fn main() {
let hello = ”Hello, World!"; // string literal
let hello1 = hello; // copy data (Stack)
println!("{ }", hello); // ok
}
fn main() {
let hello = String::from(“Hello, World!”); // String type
let hello1 = hello; // move data (Heap)
println!("{ }", hello); // error[E0382]: use of moved value: `hello`
}
🥇 Quiz. Rust Programming 예제
fn main() {
let mut num = 5;
{
let mut add_num = |x: i32| num += x;
add_num(5);
}
println!("{ }", num);
}
num= 10
🥇 Quiz. Rust Programming 예제
move 키워드를 추가하면 변수의 ownership 까지 가져온다
fn main() {
let mut num = 5;
{
let mut add_num = move |x: i32| num += x;
add_num(5);
}
println!("{ }", num);
}
num= 5
Move : Libra Programming Language
• Move는 Libra 블록체인을 위해 만들어진 새로운 프로그래밍 언어
• 토큰 위/변조, 이중 지불 등 비정상 행위를 Move 언어 자체에서 방지
• Move VM은 Bytecode Verifier를 먼저 실행하여 잘못된 코드의 실행을 방지
Move : Libra Programming Language
< Other Language > < Move >
Move : Modules & Script
• Move 모듈은 사용자의 Account에 퍼블리싱됨
• Move 모듈내에서는 리소스와 프로시저를 정의
• Libra의 트랜잭션(Transfer)은 스크립트(Peer_to_Peer_Transfer.mvir)를 포함
※ 트랜잭션 스크립트는 Move 모듈내 프로시저를 호출하고 다른 스크립트가 실행시킬 수 없음 (single-use)
모듈
0x0
리소스
LibraCoin
LibraAccount
0x0.LibraCoin.T {…}
모듈
0x4
리소스
myModule
0x4.myModule.T {…}
0x0.LibraCoin.T {…}
Move : Resource
10 Coin
Quantity Resource Type
Identified by <address>/<module name>/<type name>
• 리소스는 기존의 integer, boolean, string 등과 근본적으로 다름
ü Asset(Coin)을 위한 새로운 변수 타입을 제공
ü 모듈에 정의된 프로시저를 통해서만 타입에 접근
Move : Libra Programming Language
• Move는 Libra 블록체인을 위해 만들어진 새로운 프로그래밍 언어
• 토큰 위/변조, 이중 지불 등 비정상 행위를 Move 언어 자체에서 방지
• Move VM은 Bytecode Verifier를 먼저 실행하여 잘못된 코드의 실행을 방지
0x0.LibraCoin.deposit(copy(payee), move(amount));
Move : Libra Programming Language
public pay_from_sender(payee: address, amount: u64) {
let to_pay: LibraCoin.T
to_pay = withdraw_from_sender(move(amount));
deposit(move(payee), move(to_pay));
}
정상적인 코드
deposit(move(payee), move(to_pay));
Move : Libra Programming Language
deposit(move(payee), copy(to_pay));
deposit(move(payee), move(to_pay));
deposit(move(payee), move(to_pay));
deposit(move(payee), move(to_pay));
아래 3가지 유형의 코드는 에러를 발생
à Resource 값은 move만 가능하고 복제/카피는 불가능.
à Resource 값은 한번만 move 가능. 이중지불 방지
à withdraw 후에 deposit 누락. 개발자의 실수로 인한 누락으로 판단
deposit(move(payee), move(to_pay));
🥇Quiz
🥇Quiz
🥇Quiz
Move Modules : LibraCoin
module LibraCoin {
// A resource representing the Libra coin
resource T {
// The value of the coin. May be zero
value: u64,
}
public withdraw(coin_ref: &mut Self.T, amount: u64) { … }
public deposit(coin_ref: &mut Self.T, check: Self.T) { … }
…
}
# libra/language/stdlib/modules/libra_coin.mvir
모듈
리소스
프로시저
Move Modules : LibraAccount
module LibraAccount {
resource T {
balance: LibraCoin.T,
authentication_key: bytearray,
sequence_number: u64,
sent_events: Event.Handle,
received_events: Event.Handle,
delegated_withdrawal_capability: bool,
}
pupublic pay_from_sender(amount: u64): LibraCoin.T acquires T {…}
public withdraw_from_sender(amount: u64): LibraCoin.T acquires T {…}
public deposit(payee: address, to_deposit: LibraCoin.T) acquires T {…}
public create_new_account(fresh_address: address, initial_balance: u64) {…}
…
} # libra/language/stdlib/modules/libra_account.mvir
모듈
리소스
프로시저
Move Scripts : Transfer
# libra/language/stdlib/transaction_scripts/peer_to_peer_transfer.mvir
# peer_to_peer_transfer.mvir
import 0x0.LibraAccount;
main (payee: address, amount: u64) {
LibraAccount.pay_from_sender(move(payee), move(amount));
return;
}
스크립트
모듈 프로시저
Move Scripts : Transfer
# pay_from_sender
public pay_from_sender(payee: address, amount: u64) acquires T {
let to_pay: LibraCoin.T;
if (exists<T>(copy(payee)) {
to_pay = Self.withdraw_from_sender(move(amount));
Self.deposit(move(payee), move(to_pay));
} else {
Self.create_new_account(move(payee), move(amount*1000));
}
return;
}
# libra/language/stdlib/modules/libra_account.mvir
리소스
Local>
./scripts/cli/start_cli_testnet.sh
libra%
libra%
libra%
Libra Client
RESTful API
(Libra Client)
Libra Validators
Leader
Mint
Local
User
https://developers.libra.org/☞
Wallet
Application
email
Libra
Account
Private
Key
Public
Key
a@gmail.com
b@gmail.com
c@gmail.com
d@gmail.com
0x343983f0x
0xfas300if3h
0x785k750xj
0x987ktokr0
$%(__$RK454F
^}|^{%^|^{{}{P}
%^%^^^$)&*&
|||{}{#||$}%^&*
#$#$%#%}87^
{_+_)++^%(=+&
^$%^$_(%^{{}
&}}}||}P$_^)%^
Application Demo Architecture
• Easy to Create Network
• 손쉬운 블록체인 인프라 제공
• Secure Key Management
• Private Key 암호화
• KeyPair 안전한 보관
• Powerful Access Control
• 허용된 트랜잭션만 처리
• 무중단 서비스, Auto Scaling 등
• Amazon EC2
• AWS Lambda
• AWS Managed Blockchain
• QLDB
• KMS
• CloudHSM
• VPN Password (2fa)
• VPC, Security Group
• AWS IAM
• IP WhiteList
AWS ServicesBenefits
Blockchain Benefits on AWS
Restful API
Reference Site
• https://developers.libra.org
• https://developers.libra.org/docs/assets/papers/the-libra-blockchain.pdf
• https://developers.libra.org/docs/assets/papers/libra-move-a-language-with-programmabl
e-resources.pdf
• https://arxiv.org/pdf/1803.05069.pdf
• https://github.com/learndapp/awesome-libra#java-libraries
여러분의 피드백을 기다립니다!
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
#AWSDEVDAYSEOUL

[AWS Dev Day] 이머징 테크 | Libra 소스코드분석 및 AWS에서 블록체인 기반 지불 시스템 최적화 방법 - 박혜영 AWS 솔루션즈 아키텍트, 박천구 AWS 솔루션즈 아키텍트

  • 1.
    © 2019, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Libra 코드 분석 및 AWS 상에서 구축 방법 박혜영 솔루션즈 아키텍트 E m e r g i n g T e c h 박천구 솔루션즈 아키텍트
  • 2.
    Contents 3. Rust& Move 4. Libra Demo on AWS 2. Libra Architecture 1. AWS Blockchain Stack 5. Blockchain Benefits on AWS
  • 3.
    AWS Blockchain Stack BLOCKCHAIN INFRASTRUCTURE BLOCKCHAIN OPENSOURCE BLOCKCHAIN MANAGEDSERVICE E C 2 Q L D BA m a z o n M a n a g e d B l o c k c h a i n E t h e r e u m H y p e r l e d g e r F a b r i c L i b r a L a m b d a
  • 4.
    SGX is continuallyseeking ways to use blockchain to reduce settlement time, while exploring collaborations in cross- border transactions in ASEAN. As such, they need a reliable platform that can run blockchain workloads and scale as they add regional partners such as banks, monetary authorities as well as other exchanges. AWS Professional Services provisioned an Amazon Managed Blockchain network, as well as an Ethereum client, and deployed SGX’s existing blockchain investments to demonstrate Delivery-vs-Payment (DvP) settlement of cash versus government bonds on AWS. SGX now has a blockchain platform that enhances collaboration with banks, monetary authorities and other exchanges to execute and achieve local and cross- border trade settlement. ProServe demonstrated that SGX investments in blockchain can be utilized on Amazon Managed Blockchain with minimal changes. Singapore Exchange Limited Challenge Solution Benefit Singapore Exchange is Asia’s leading and trusted market infrastructure, operating equity, fixed income and derivatives markets to the highest regulatory standards. As Asia’s most international, multi-asset exchange, SGX provides listing, trading, clearing, settlement, depository and data services, with about 40% of listed companies and over 80% of listed bonds originating outside of Singapore. Central Exchange Singapore www.sgx.com 800+ company Industry Country Website Employees Payment : Singapore Exchange
  • 6.
    © 2019, AmazonWeb Services, Inc. or its affiliates. All rights reserved. 기존 이슈 인터넷으로 돈은 송금하기 여전히 어렵다. 금융기관 계좌 계설 / 높은 수수료 디지털 에셋은 인터넷으로 싸고 쉽게 보내는데,
  • 7.
    기존 암호화폐 이슈 Libra는기존 암호화폐의 변동성과 확장성 부족을 모두를 해결하고자 함 변동성 이슈 확장성 이슈
  • 8.
    What is Libra? 리브라는암호화폐라기 보다는 새로운 디지털 통화 리브라 연합미국 연방준비제도 1:1 (FRB : Federal Reserve Board) (Libra Association)
  • 9.
  • 10.
    $ clone https://github.com/libra/libra.git&& cd libra Currently available for macOS and Linux $ git checkout testnet $ ./scripts/cli/start_cli_testnet.sh $ ./scripts/dev_setup.sh Local> ./scripts/cli/start_cli_testnet.sh libra% libra% libra% Libra Client https://developers.libra.org/☞ How to set up Libra
  • 11.
    Validators Mint Leader Local (Docker) $ docker/validator/build.sh $docker/mint/build.sh $ run docker/mint/run.sh $ docker/validator/run.sh https://github.com/libra/libra/tree/master/docker☞ $ cargo run -p client --bin client -- -a localhost -p 8000 -f localhost:8080 -s terraform/validator-sets/dev/consensus_peers.config.toml How to set up Libra Currently available for macOS and Linux
  • 12.
  • 13.
  • 14.
    1. 브로드캐스팅 대신리더노드를 중심으로 통신 2. Quorum Certificate(QC)이 없는, 블록이 생성 되었을 경우 뒤의 블록이 완결성을 가지면 해당 블록 또한 완결성을 갖게 됨 (Finality vs Safety tradeoff) Mesh communication network Star communication network Consensus - HotStuff Consens us Prepare Pre-Commit Commit Decide PBFT à HotStuff à LibraBFT
  • 15.
    executevalidateverify + public_key + signature SignedTransaction + sender + sequence_number + Program = Tx Script/Module + max_gas_amount + gas_unit_price 1. Check signature 2. Run prologue 3. Compile Script & modules 4. Bytcode Verifier 5. Execute main 6. Run epilogue 7. Write storage How it works – Virtual Machine Virtual Machine Executio n
  • 16.
    Transaction Signed Transaction + sender +sequence_number + Payload = Tx Script/Module + max_gas_amount + gas_unit_price Validators V3 [ Ledger History ] T0 T1 T2 T3 Tr [ Transactions Tree ] [ Event Tree ] E 1 E 2 S3 [ State Tree ] peer_to_peer_transfer Script Name Main( ) { 0x0.LibraAccount.pay_from_sender(…) } MVIR 0101010101011010110011011001111 0111101010101010101010101010110 Bytecode How it works - Storage Storage
  • 17.
    Ethereum Miner Public Go / Solidity Validators Permissioned Rust/Move ERC20 Stable Coin 15 tx/s 2000 tx/s RocksDBLevelDB PoW ü Purpose ü Consensus ü Performance ü Language ü Storage ü Network ü Block Maker Hotstuff PBFT à HotStuff à LibraBFT Libra
  • 19.
    What is Rust? Trade-Off: Control vs. Safety • Mozilla needs Control • Mozilla needs Safety
  • 20.
    Why Rust? C C++ Trade-Off: Control vs. Safety Go Java Scalar Python Haskell Safety Control “Low-level”
  • 21.
    Rust : MemoryModel • Each value in Rust has a variable that’s called its owner. • There can only be one owner at a time. • When the owner goes out of scope, the value will be dropped.
  • 22.
    Rust : MemoryModel fn main() { let hello = ”Hello, World!"; // string literal let hello1 = hello; // copy data (Stack) println!("{ }", hello); // ok } fn main() { let hello = String::from(“Hello, World!”); // String type let hello1 = hello; // move data (Heap) println!("{ }", hello); // error[E0382]: use of moved value: `hello` }
  • 23.
    🥇 Quiz. RustProgramming 예제 fn main() { let mut num = 5; { let mut add_num = |x: i32| num += x; add_num(5); } println!("{ }", num); } num= 10
  • 24.
    🥇 Quiz. RustProgramming 예제 move 키워드를 추가하면 변수의 ownership 까지 가져온다 fn main() { let mut num = 5; { let mut add_num = move |x: i32| num += x; add_num(5); } println!("{ }", num); } num= 5
  • 25.
    Move : LibraProgramming Language • Move는 Libra 블록체인을 위해 만들어진 새로운 프로그래밍 언어 • 토큰 위/변조, 이중 지불 등 비정상 행위를 Move 언어 자체에서 방지 • Move VM은 Bytecode Verifier를 먼저 실행하여 잘못된 코드의 실행을 방지
  • 26.
    Move : LibraProgramming Language < Other Language > < Move >
  • 27.
    Move : Modules& Script • Move 모듈은 사용자의 Account에 퍼블리싱됨 • Move 모듈내에서는 리소스와 프로시저를 정의 • Libra의 트랜잭션(Transfer)은 스크립트(Peer_to_Peer_Transfer.mvir)를 포함 ※ 트랜잭션 스크립트는 Move 모듈내 프로시저를 호출하고 다른 스크립트가 실행시킬 수 없음 (single-use) 모듈 0x0 리소스 LibraCoin LibraAccount 0x0.LibraCoin.T {…} 모듈 0x4 리소스 myModule 0x4.myModule.T {…} 0x0.LibraCoin.T {…}
  • 28.
    Move : Resource 10Coin Quantity Resource Type Identified by <address>/<module name>/<type name> • 리소스는 기존의 integer, boolean, string 등과 근본적으로 다름 ü Asset(Coin)을 위한 새로운 변수 타입을 제공 ü 모듈에 정의된 프로시저를 통해서만 타입에 접근
  • 29.
    Move : LibraProgramming Language • Move는 Libra 블록체인을 위해 만들어진 새로운 프로그래밍 언어 • 토큰 위/변조, 이중 지불 등 비정상 행위를 Move 언어 자체에서 방지 • Move VM은 Bytecode Verifier를 먼저 실행하여 잘못된 코드의 실행을 방지 0x0.LibraCoin.deposit(copy(payee), move(amount));
  • 30.
    Move : LibraProgramming Language public pay_from_sender(payee: address, amount: u64) { let to_pay: LibraCoin.T to_pay = withdraw_from_sender(move(amount)); deposit(move(payee), move(to_pay)); } 정상적인 코드 deposit(move(payee), move(to_pay));
  • 31.
    Move : LibraProgramming Language deposit(move(payee), copy(to_pay)); deposit(move(payee), move(to_pay)); deposit(move(payee), move(to_pay)); deposit(move(payee), move(to_pay)); 아래 3가지 유형의 코드는 에러를 발생 à Resource 값은 move만 가능하고 복제/카피는 불가능. à Resource 값은 한번만 move 가능. 이중지불 방지 à withdraw 후에 deposit 누락. 개발자의 실수로 인한 누락으로 판단 deposit(move(payee), move(to_pay)); 🥇Quiz 🥇Quiz 🥇Quiz
  • 32.
    Move Modules :LibraCoin module LibraCoin { // A resource representing the Libra coin resource T { // The value of the coin. May be zero value: u64, } public withdraw(coin_ref: &mut Self.T, amount: u64) { … } public deposit(coin_ref: &mut Self.T, check: Self.T) { … } … } # libra/language/stdlib/modules/libra_coin.mvir 모듈 리소스 프로시저
  • 33.
    Move Modules :LibraAccount module LibraAccount { resource T { balance: LibraCoin.T, authentication_key: bytearray, sequence_number: u64, sent_events: Event.Handle, received_events: Event.Handle, delegated_withdrawal_capability: bool, } pupublic pay_from_sender(amount: u64): LibraCoin.T acquires T {…} public withdraw_from_sender(amount: u64): LibraCoin.T acquires T {…} public deposit(payee: address, to_deposit: LibraCoin.T) acquires T {…} public create_new_account(fresh_address: address, initial_balance: u64) {…} … } # libra/language/stdlib/modules/libra_account.mvir 모듈 리소스 프로시저
  • 34.
    Move Scripts :Transfer # libra/language/stdlib/transaction_scripts/peer_to_peer_transfer.mvir # peer_to_peer_transfer.mvir import 0x0.LibraAccount; main (payee: address, amount: u64) { LibraAccount.pay_from_sender(move(payee), move(amount)); return; } 스크립트 모듈 프로시저
  • 35.
    Move Scripts :Transfer # pay_from_sender public pay_from_sender(payee: address, amount: u64) acquires T { let to_pay: LibraCoin.T; if (exists<T>(copy(payee)) { to_pay = Self.withdraw_from_sender(move(amount)); Self.deposit(move(payee), move(to_pay)); } else { Self.create_new_account(move(payee), move(amount*1000)); } return; } # libra/language/stdlib/modules/libra_account.mvir 리소스
  • 37.
    Local> ./scripts/cli/start_cli_testnet.sh libra% libra% libra% Libra Client RESTful API (LibraClient) Libra Validators Leader Mint Local User https://developers.libra.org/☞ Wallet Application email Libra Account Private Key Public Key a@gmail.com b@gmail.com c@gmail.com d@gmail.com 0x343983f0x 0xfas300if3h 0x785k750xj 0x987ktokr0 $%(__$RK454F ^}|^{%^|^{{}{P} %^%^^^$)&*& |||{}{#||$}%^&* #$#$%#%}87^ {_+_)++^%(=+& ^$%^$_(%^{{} &}}}||}P$_^)%^ Application Demo Architecture
  • 38.
    • Easy toCreate Network • 손쉬운 블록체인 인프라 제공 • Secure Key Management • Private Key 암호화 • KeyPair 안전한 보관 • Powerful Access Control • 허용된 트랜잭션만 처리 • 무중단 서비스, Auto Scaling 등 • Amazon EC2 • AWS Lambda • AWS Managed Blockchain • QLDB • KMS • CloudHSM • VPN Password (2fa) • VPC, Security Group • AWS IAM • IP WhiteList AWS ServicesBenefits Blockchain Benefits on AWS
  • 39.
  • 40.
    Reference Site • https://developers.libra.org •https://developers.libra.org/docs/assets/papers/the-libra-blockchain.pdf • https://developers.libra.org/docs/assets/papers/libra-move-a-language-with-programmabl e-resources.pdf • https://arxiv.org/pdf/1803.05069.pdf • https://github.com/learndapp/awesome-libra#java-libraries
  • 42.
    여러분의 피드백을 기다립니다! ©2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. #AWSDEVDAYSEOUL