Sử dụng Libra Mọi khoản thanh toán Libra đư ợc ghi vĩnh viễn vào Libra Blockchain - cơ sở dữ liệu đư ợc xác thực bằng mật mã, hoạt động như một sổ cái trực tuyến công cộng đư ợc thiết k
Trang 1Tác động của tiền mã hóa Libra đối với chính sách tiền tệ
Libra là đồng tiền mã hoá (cryptocurrency) được phát triển dựa trên sáng kiến của Facebook với sứ mệnh giúp h ệ thống tiền tệ và hạ tầng tài chính đơn giản hơn để trao quyền quyết định cho hàng tỷ người dùng toàn cầu
I Khái quát về đồng Libra
Ba thành phần chính cấu tạo nên hệ thống tài chính toàn c ầu của Libra bao gồm:
(i) Xây dựng trên n ền tảng blockchain bảo mật, có khả năng m ở rộng và đáng tin cậy;
(ii) Đồng Libra được bảo đảm bằng một kho dự trữ tài sản (quỹ tiền tệ); (iii) Đồng Libra được kiểm soát bởi một Hiệp hội độc lập phi lợi nhuận - Libra Association, có nhi ệm vụ phát triển hệ sinh thái
Nền tảng Blockchain c ủa Libra là mã ngu ồn mở, đư ợc thiết kế với mục đích cho phép bất cứ ai cũng có thể phát triển các ứng dụng tài chính trên nền tảng này Đồng Libra có giá tr ị được gắn với một quỹ tiền gửi ngân hàng và chứng khoán chính ph ủ ngắn hạn cho m ột loạt các loại tiền tệ quốc
tế ổn định trong l ịch sử, bao gồm đồng USD, Bảng Anh, EURO, Franc Thụy Sĩ và Yên Nh ật Đư ợc điều hành bởi Hiệp hội Libra, Hi ệp hội có nhiệm vụ duy trì qu ỹ tài sản này và có thể thay đổi số dư của các thành phần nếu cần thiết để bù đắp biến động giá l ớn ở bất kỳ một ngoại tệ nào
để giá trị của một Libra luôn ổn định
Mạng Blockchain c ủa Libra hiện tại là mạng có phép (permissioned
blockchain), tuy nhiên, Libra d ự tính sẽ được phát tri ển thành m ạng không cần cấp phép (permissionless) trong tương lai M ạng Blockchain Libra s ẽ được mở cho tất cả mọi người tham gia, bao gồm người tiêu dùng, nhà phát triển hay doanh nghi ệp đều có thể sử dụng mạng Libra, xây d ựng ứng dụng
và tạo ra các giá trị mới trên đó M ục tiêu c ủa Hiệp hội Libra hư ớng đến là xây dựng thêm nhiều giải pháp phổ cập tài chính cho thế giới
Trang 2
1 Sử dụng Libra
Mọi khoản thanh toán Libra đư ợc ghi vĩnh viễn vào Libra Blockchain - cơ
sở dữ liệu đư ợc xác thực bằng mật mã, hoạt động như một sổ cái trực tuyến công cộng đư ợc thiết kế để xử lý 1.000 giao d ịch mỗi giây Libra
Blockchain được vận hành và liên tục được xác minh bởi các thành viên sáng lập của Hiệp hội Libra vận hành nút xác th ực Khi một giao dịch đư ợc gửi, mỗi nút s ẽ chạy một phép tính dựa trên sổ cái hiện có của tất cả các giao dịch Với các giao dịch 5KB, 1.000 xác minh m ỗi giây trên CPU
thương mại và tối đa 4 tỷ tài khoản, Libra Blockchain sẽ có thể hoạt động
ở mức 1.000 giao dịch mỗi giây nếu các nút sử dụng ít nhất 40Mbps kết nối
và ổ cứng SSD 16TB
- Ví điện tử Calibra:
Facebook đang ra mắt một công ty con với tên gọi Calibra nhằm mục đích cung cấp các dịch vụ tài chính cho phép ngư ời dùng truy c ập và tham gia mạng lư ới Libra S ản phẩm đầu tiên c ủa Calibra là ví đi ện tử cho đồng Libra Ứng dụng Ví đi ện tử này sẽ được phát hành trên Messenger,
Whatsapp và m ột ứng dụng điện thoại riêng
- Libra Blockchain
Blockchain của Libra đư ợc thiết kế dưới 3 tiêu chí:
(i) Được thiết kế và sử dụng ngôn ngữ lập trình Move, một ngôn ngữ lập trình mới Nó g ọi là Move vì ch ức năng chính c ủa nó là di chuy ển tiền Libra từ tài khoản này sang tài kho ản khác và không bao giờ để những tài sản đó vô tình bị trùng l ặp Mã giao d ịch cốt lõi trông giống như: th ủ tục LibraAccount.pay_from_sender (receive_address, s ố tiền)
(ii) Sử dụng cơ chế đồng thuận dựa trên dung sai l ỗi Byzantine (BFT) Cơ chế này cho phép ch ỉ khi 2/3 các nút phải đồng thuận rằng giao d ịch là hợp pháp thì nó m ới đư ợc thực hiện và ghi vào blockchain Cơ ch ế này cũng cho phép mạng lư ới hoạt động bình thư ờng kể cả khi dư ới 1/3 s ố lượng node trong mạng bị tấn công hoặc dừng hoạt động Do đó, mạng lư ới sẽ có
Trang 3tốc độ giao dịch cao, độ trễ thấp và có hi ệu năng cao hơn các cơ ch ế “bằng chứng công việc” (proof of work) c ủa một số mạng blockchain thông d ụng
(iii) Dễ dàng tích h ợp các cấu trúc dữ liệu blockchain thông d ụng Dữ liệu trên Libra blockchain đư ợc bảo vệ bởi cây Merkle (Merkle tree - cấu trúc
dữ liệu trên blockchain v ới khả năng phát hiện bất cứ thay đổi mới nào đối với dữ liệu có sẵn) Khác v ới quan điểm coi blockchain là m ột chuỗi các khối giao d ịch, Libra blockchain là m ột cấu trúc dữ liệu đơn nhất lưu trữ lịch sử giao dịch và các trạng thái theo th ời gian C ấu trúc dữ liệu này giúp cho việc truy cập dữ liệu đơn giản và nhanh chóng hơn, đ ảm bảo tính toàn vẹn của dữ liệu bằng một nền tảng thống nhất.[1]
2 Dự trữ đồng Libra
Libra được thiết kế để làm một đồng tiền kỹ thuật số ổn định (stable digital cryptocurrency) [2] D ự trữ đồng Libra đư ợc đảm bảo bởi một mạng lư ới giao dịch mua bán, đồng nghĩa với việc những ngư ời nắm giữ Libra có được sự đảm bảo cao trong việc chuyển đổi đồng Libra ra các đồng tiền pháp định theo tỷ giá Cơ chế gắn giá trị của Libra vào quỹ tài sản dự trữ dẫn đến 2 tính chất của đồng tiền này như sau:
(i) Giá tr ị của đồng Libra sẽ không gắn cố định vào một đồng tiền pháp định cụ thể (như USD hay Bảng Anh);
(ii) Khi giá trị của quỹ tài sản dự trữ thay đổi, giá trị của một đồng Libra đối với bất kỳ đồng tiền pháp định nào cũng sẽ thay đổi
Tuy nhiên, các tài s ản dự trữ được lựa chọn với tiêu chí gi ảm thiểu tối đa biến động để đảm bảo tính giữ giá trị của đồng tiền theo thời gian Tài sản
dự trữ của Libra đư ợc lưu trữ trên một mạng lư ới bảo quản phân tán theo địa lý, các đơn vị bảo quản này có điểm tín dụng ở mức điểm đầu tư
(investment -grade) để đảm bảo cả tính an toàn và phân tán c ủa tài sản
Khoản lãi sinh ra trên tài s ản sẽ được dùng đ ể chi trả cho chi phí của hệ thống, đảm bảo phí giao dịch thấp, trả lợi tức cho các nhà đầu tư và thúc đẩy nghiên cứu phát triển Các nguyên tắc phân phối lãi sẽ được ban hành
và quản lý bởi Hiệp hội Libra Ngư ời dùng Libra không nh ận đư ợc khoản
Trang 4lãi này
Mỗi khi ngư ời dùng gửi 1 lư ợng tiền mặt bằng 1 lo ại tiền nào đó vào qu ỹ
dự trữ Libra thì h ệ thống phần mềm sẽ tạo ra 1 lư ợng tiền Libra tương ứng
Và ngược lại, khi 1 người dùng rút tiền từ quỹ dự trữ Libra thì 1 lượng Libra tương ứng sẽ bị huỷ Cơ chế này khiến cho 100% lượng Libra lưu hành trên th ị trường đư ợc đảm bảo bằng tiền mặt trong quỹ dự trữ Việc chuyển tiền Libra v ẫn có phí nhưng g ần như bằng không Mức phí này ch ỉ nhằm chặn các giao dịch spam ho ặc tấn công từ chối dịch vụ Ngư ời dùng
có thể mua hoặc rút ti ền trực tuyến hoặc tại các điểm trao đổi địa phương như cửa hàng tạp hóa và sử dụng ứng dụng ví của bên thứ ba hoặc ví
Calibra c ủa Facebook, đư ợc tích hợp vào WhatsApp, Messenger và ứng dụng riêng của họ
3 Hiệp hội Libra Association
Hiệp hội Libra [3] là m ột Hiệp hội phi lợi nhuận giám sát sự phát triển của Libra, qu ỹ dự trữ tài sản thực để đảm bảo giá trị cho Libra và quy t ắc quản trị của blockchain M ỗi thành viên sáng l ập phải trả tối thiểu 10 tri ệu USD
để tham gia và tùy ý trở thành nhà điều hành nút xác thực (sẽ được tăng lên
về sau), giành đư ợc một phiếu trong h ội đồng Hiệp hội Libra và đư ợc
hưởng một phần (tương ứng với khoản đầu tư của họ) từ tiền lãi kiếm được
từ khoản dự trữ tiền mặt mà ngư ời dùng tr ả để nhận Libra Các tổ chức sắp trở thành sáng l ập viên của hiệp hội bao gồm: [4]
- Thanh toán: Mastercard, PayPal, PayU (cánh tay fintech c ủa Naspers), Stripe, Visa.[5]
- Công nghệ và thị trường: Booking Holdings, eBay, Facebook/Calibra, Farfetch, Lyft, Mercado Pago, Spotify AB, Uber Technologies, Inc
- Viễn thông: Iliad, T ập đoàn Vodafone
- Blockchain: Neo, Bison Trails, Coinbase, Inc., Xapo Holdings Limited
- Đầu tư mạo hiểm: Andreessen Horowitz, Breakthrough Initiatives, Ribbit Capital, Thrive Capital, Union Squa re Ventures
Trang 5- Các Hiệp hội phi lợi nhuận và đa phương, và các Hi ệp hội học thuật:
Creative Destruction Lab, Kiva, Mercy Corps, Women’s World Banking
Facebook ch ỉ được một phiếu bầu duy nhất trong hội đồng như các thành viên sáng lập khác của Hiệp hội Libra Hi ệp hội Libra sẽ quảng bá nền tảng Libra Blockchain mã ngu ồn mở và nền tảng cho các bên phát tri ển ứng dụng với ngôn ngữ lập trình Move riêng, và t ới cả các doanh nghi ệp đăng
ký chấp nhận Libra để thanh toán hoặc giảm giá hay làm phần thưởng cho khách hàng
Hiệp hội Libra có lịch làm vi ệc trực tiếp sáu tháng m ột lần Để tham gia hiệp hội, các thành viên ph ải có một giàn máy ch ủ, kết nối internet chuyên dụng 100Mbps tr ở lên, m ột kỹ sư tin c ậy làm toàn th ời gian và có mức bảo mật cấp doanh nghi ệp Các doanh nghi ệp phải đạt hai trong ba ngư ỡng: trị giá thị trường 1 tỷ USD ho ặc số dư của khách hàng là 500 tri ệu đô la, đ ạt
20 triệu ngư ời dùng m ỗi năm và/hoặc được công nhận là một trong 100 doanh nghiệp đầu ngành bởi Interbrand Global ho ặc S & P và m ột số điều kiện khác
II Nền tảng kỹ thuật của đồng Libra
1 Giao thức Libra
Giao thức Libra dùng đ ể duy trì cơ s ở dữ liệu mã hóa của Libra blockchain Hình dưới đây thể hiện 2 thực thể tương tác với giao thức Libra, bao gồm các node phê duy ệt có vai trò duy trì, v ận hành cơ sở dữ liệu blockchain và các node client thực hiện các chức năng truy vấn vào cơ s ở dữ liệu và tạo các giao d ịch (Hình 2)
Trang 6
1) Node client t ạo các giao dịch (làm thay đ ổi trạng thái cơ sở dữ liệu) và gửi lên cơ s ở dữ liệu (mạng blockchain Libra), các node Validators s ẽ có nhiệm vụ phê duyệt các giao dịch này Các node validators s ử dụng một cơ chế đồng thuận phân tán đ ể cùng xác thực các giao dịch đã đư ợc đưa vào
cơ sở dữ liệu
(2) Các node validator thay phiên nhau đóng vai trò đ ầu mối nhận giao dịch gửi lên Khi m ột node đóng vai trò làm đ ầu mối, node đó sẽ nhận các giao dịch đư ợc gửi lên chính nó hoặc gửi thông qua các node validator khác, sau đó chuyển các giao dịch này đến các node validator khác trong mạng
(3) Tất cả các node validator xác th ực các giao d ịch và tạo ra một cấu trúc
dữ liệu đồng thuận chưa dữ liệu sổ cái mới (trạng thái mới sau khi giao dịch được thông qua)
(4) Các node validator cùng b ỏ phiếu bầu (vote)
(5) Để xác nhận giao dịch Ti tại phiên bản i, cơ chế đồng thuận ban hành một chữ ký điện tử trên toàn bộ trạng thái c ủa cơ sở dữ liệu tại phiên bản (bao gồm toàn bộ các dữ liệu lịch sử) để phản hồi lại cho các node client
Các node client có th ể gửi truy vấn đến một node validator đ ể đọc dữ liệu
từ cơ sở dữ liệu Do cơ s ở dữ liệu đã được xác thực, node client có th ể chắc chắn về tính chính xác c ủa kết quả truy vấn của mình Ngoài ra, m ỗi node client cũng có thể tạo một bản copy của toàn bộ cơ sở dữ liệu bằng cách đồng bộ lịch sử giao dịch từ các node validator Trong khi t ạo bản copy, các node client cũng có thể xác nhận tính đúng đắn của các giao dịch được xác nhận bởi các node validator
2 Mô hình dữ liệu
Toàn bộ dữ liệu của Libra blockchain đư ợc lưu trữ trong một cơ s ở dữ liệu phiên bản duy nhất [6] Số phiên bản là một số nguyên 64 -bit [7] tương đương với số lượng giao dịch mà hệ thống đã xác thực Ở mỗi phiên bản,
cơ sở dữ liệu chứa một bộ (Ti ,Oi ,Si) với Ti là giao dịch,Oi là đầu ra của
Trang 7giao dịch,Si là tr ạng thái của sổ cái Với hàm Apply cho trư ớc, ý nghĩa c ủa
bộ này như sau:
Apply(Si-1,Ti) →(Oi ,Si)
Thực hiện giao dịchTi t ại trạng thái c ủa sổ cái Si-1, tạo ra đầu ra Oi và m ột trạng thái s ổ cái mới Si
Như vậy, bằng cách sử dụng cơ sở dữ liệu phiên bản, các node validator có thể thực hiện các công việc sau:
- Thực hiện giao dịch trên tr ạng thái s ổ cái ở phiên bản mới nhất;
- Phản hồi kết quả truy vấn của client v ề lịch sử của sổ cái ở cả phiên bản mới nhất lẫn các phiên b ản cũ hơn
2.1 Trạng thái s ổ cái
Trạng thái s ổ cái phản ánh toàn b ộ thực trạng của hệ sinh thái Libra, bao gồm cả số lượng đồng Libra mỗi ngư ời dùng đang nắm giữ tại mỗi phiên bản Mỗi node validator c ần phải nắm được trạng thái s ổ cái tại phiên b ản mới nhất để thực hiện giao d ịch mới
Trang 8
Trạng thái được cấu tạo như một giá tr ị khóa, dùng để liên kết địa chỉ tài khoản (account address) đ ến giá tr ị tài khoản (account values) M ột giá tr ị tài khoản trong tr ạng thái sổ cái là tập hợp của tài nguyên và mô -đun Tài nguyên lưu trữ các giá trị dữ liệu và các mô-đun lưu trữ code ngôn ngữ Move
a Địa chỉ tài khoản
Để tạo một tài khoản mới, một người dùng tạo một cặp khóa xác thực/ký mới (vk,sk) và sử dụng hàm băm mã hóa c ủa khóa công khai (public
key) làm một địa chỉ tài khoản a=H(vk) [8] Tài khoản mới sẽ được tạo trên trạng thái sổ cái khi một một tài khoản cũ gửi một giao d ịch khởi tạo lệnh Move create_account(a) Vi ệc này xảy ra khi một tài khoản cũ gửi Libra đến một tài khoản tại địa chỉ a chưa tồn tại Một khi tài khoản mới đã được tạo tại a, người dùng có thể ký các giao dịch gửi đi của mình bằng cách sử dụng khóa bí mật sk
b Giá tr ị tài nguyên
Ngôn ngữ Move định nghĩa giá tr ị tài nguyên hay tài nguyên là b ản ghi dùng để ràng buộc các trường dữ liệu với các giá trị đơn giản (như
integers) hay giá tr ị phức tạp (như các tài nguyên khác đư ợc gán trong tài nguyên đó) Tài nguyên có các lo ại khác nhau và được định nghĩa bởi một đun Tên loại tài nguyên bao g ồm tên của loại và tên, địa chỉ của mô-đun khai báo tài nguyên đó Ví d ụ:
Tài nguyên có loại là 0x56.Currency.T, trong đó:
- 0x56: đ ịa chỉ lưu trữ mô-đun Currency
- Currency: tên của mô-đun
- Currency.T: tên c ủa tài nguyên
c Giá tr ị mô-đun
Mô-đun của ngôn ngữ Move chứa code định nghĩa các lo ại tài nguyên và thủ tục Tương tự như loại tài nguyên, m ột mô-đun đư ợc định nghĩa b ởi địa
Trang 9chỉ tài khoản vị trí lưu trữ mô-đun đó Ví dụ định nghĩa c ủa mô-đun
Currency là 0x56.Currency
Mỗi tài kho ản chỉ được chứa 1 tên mô -đun duy nhất Tại phiên bản hiện tại của giao thức Libra, các mô -đun đang không th ể chỉnh sửa Một khi một mô-đun đư ợc tạo ra dư ới một địa chỉ tài kho ản, nó không thể được sửa hoặc xóa, trừ khi sử dụng hard-fork [9]
Như vậy, một tài khoản của Libra có kết cấu như sau:
2.2 Giao d ịch
Các node clients c ủa Libra cập nhật trạng thái s ổ cái bằng cách tạo các giao dịch Một giao dịch bao g ồm lệnh giao dịch (được viết bằng code Move) và các tham s ố cho lệnh (như địa chỉ tài khoản nhận hay s ố lượng Libra sẽ được chuyển) Một node validator s ẽ xác nhận giao dịch bằng cách chạy dòng l ệnh với các tham số để cập nhật dữ liệu vào cơ s ở dữ liệu Tại bước này, trạng thái sổ cái chưa được thay đổi cho đến khi giao dịch được duyệt qua cơ chế đồng thuận
Việc xác nhận một giao dịch sẽ tạo ra một trạng thái s ổ cái mới và trạng thái xác thực, phí giao d ịch và danh sách s ự kiện (được tích hợp trong đầu
ra Trạng thái xác thực ghi lại kết quả thực hiện giao dịch (thành công, thất bại, không đủ phí thực hiện,…), phí giao d ịch ghi l ại số lượng phí dùng để thực thi giao dịch này Danh sách sự kiện ghi lại các tác động sinh
ra sau khi thực thi giao dịch
2.3 Sổ cái lịch sử
Sổ cái lịch sử lưu trữ dữ liệu về toàn bộ các giao d ịch đã được duyệt và thực hiện, bao gồm cả các sự kiện sinh kèm theo M ục đích của sổ cái lịch
sử là để ghi nhận cách thức tạo ra phiên b ản cuối cùng của sổ cái Khác v ới các blockchain như Bitcoin hay Etherium, s ổ cái của Libra không có định nghĩa block [10] Tuy nhiên, cơ ch ế đồng thuận Libra chia các giao dịch thành block để tối ưu hóa và tăng tốc độ đồng thuận
Trang 10Việc tra cứu đư ợc sổ cái lịch sử cũng giúp cho vi ệc kiểm toán các giao dịch và việc xác nh ận/ phê duy ệt giao dịch của các node validator
3 Cơ chế phát sinh giao dịch
Cách duy nh ất để thay đ ổi trạng thái s ổ cái là thông qua giao d ịch Trư ớc khi bắt đầu phê duy ệt một giao dịch mới, tất cả các node validator ph ải đồng ý với trạng thái sổ cái hiện tại (hay khởi đầu) của hệ thống (genesis state) Tr ạng thái g ốc phải lưu trữ tất cả các thành ph ần quan tr ọng (như logic của tài khoản, xác thực giao dịch, lựa chọn node validator, đ ồng
Libra,…) và đảm bảo phải có đủ điều kiện cho các thành phần này để cho giao dịch có thể thực hiện Ở trường hợp giao d ịch khởi đầu của mạng lư ới,
ít nhất một tài khoản phải có đủ số dư để chi trả chi phí cho giao d ịch đầu tiên, một node validator ph ải được xác định để phê duyệt
Cấu trúc của một giao dịch bao gồm:
- Địa chỉ người gửi;
- Khóa công khai c ủa ngư ời gửi;
- Chương trình: mã Move dùng đ ể chạy lệnh giao d ịch, danh sách đ ầu vào của lệnh;…
- Phí giao dịch: số Libra mà ngư ời gửi tình nguyện trả cho giao dịch;
- Số lượng phí giao dịch tối đa: số lượng tối đa các units mà giao d ịch được phép tiêu thụ trước khi dừng;
- Số tự tăng: Một số nguyên bằng với số tự tăng trong tài nguyên
LibraAccount.T của ngư ời gửi Sau khi giao d ịch được thực thi, số này tăng thêm 1 Vì mỗi giao dịch chỉ được thực thi với một số định danh, cùng một giao dịch không thể lặp lại
Để phát sinh một giao dịch cần thực hiện 6 bước sau:
(1) Kiểm tra chữ ký: chữ ký trên giao dịch phải khớp với khóa công khai của người gửi và dữ liệu giao d ịch;
(2) Chạy code kh ởi tạo: code này xác th ực ngư ời gửi giao dịch, đảm bảo tài khoản của người gửi có đủ Libra để chi tr ả cho số lượng phí giao d ịch tối