Luận văn Nghiên cứu ứng dụng Blockchain cho bài toán thanh toán phi tiền mặt trong lĩnh vực tài chính ngân hàng
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
----------------------------------------
Nguyễn Đức Duy
NGHIÊN CỨU ỨNG DỤNG BLOCKCHAIN CHO BÀI TOÁN
THANH TOÁN PHI TIỀN MẶT TRONG LĨNH VỰC TÀI
CHÍNH NGÂN HÀNG
LUẬN VĂN THẠC SỸ KỸ THUẬT
(Theo định hướng ứng dụng)
HÀ NỘI – 2020
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
----------------------------------------
Nguyễn Đức Duy
NGHIÊN CỨU ỨNG DỤNG BLOCKCHAIN CHO BÀI TOÁN
THANH TOÁN PHI TIỀN MẶT TRONG LĨNH VỰC TÀI
CHÍNH NGÂN HÀNG
CHUYÊN NGHÀNH: KHOA HỌC MÁY TÍNH
MÃ SỐ:
8.48.01.01
LUẬN VĂN THẠC SỸ KỸ THUẬT
(Theo định hướng ứng dụng)
NGƯỜI HƯỚNG DẪN KHOA HỌC
TS. ĐẶNG MINH TUẤN
HÀ NỘI – 2020
i
LỜI CAM ĐOAN
Tôi xin cam đoan: Khoá luận tốt nghiệp với đề tài “NGHIÊN CỨU ỨNG DỤNG
BLOCKCHAIN CHO BÀI TOÁN THANH TOÁN PHI TIỀN MẶT TRONG
LĨNH VỰC TÀI CHÍNH NGÂN HÀNG” là công trình nghiên cứu của cá nhân tôi,
các số liệu, kết quả nêu trong luận văn là trung thực và chưa từng được ai công bố
trong bất kỳ công trình nào khác, không sao chép của bất cứ ai.
Tôi xin chịu mọi trách nhiệm về công trình nghiên cứu của riêng mình!
Hà Nội, ngày ………….
Người cam đoan
Nguyễn Đức Duy
ii
MỤC LỤC
DANH SÁCH BẢNG..........................................................................................................vi
DANH SÁCH HÌNH VẼ ...................................................................................................vii
1.1. Tổng quan về công nghệ Blockchain ......................................................................2
1.1.1. Khái niệm............................................................................................................2
1.1.2. Mạng ngang hàng (Peer to Peer Network)..........................................................3
1.1.3. Block...................................................................................................................5
1.1.4. Giao dịch.............................................................................................................7
1.1.5. Sổ cái...................................................................................................................8
1.1.6. Blockchain phân phối phi tập trung....................................................................9
1.1.7. Smart Contract ..................................................................................................10
1.2. Mật mã trong Blockchain ......................................................................................11
1.2.1. Hàm băm............................................................................................................11
1.2.2. Mã hoá bất đối xứng .........................................................................................12
1.2.3. Con trỏ băm.......................................................................................................13
1.2.4. Chữ ký số ..........................................................................................................14
1.2.5. Cây Merkle........................................................................................................16
1.3. Phân loại các hệ thống Blockchain........................................................................17
1.3.2. Blockchain bí mật .............................................................................................18
1.3.3. Blockchain cấp quyền.......................................................................................18
1.4. Các cơ chế đồng thuận...........................................................................................19
1.4.1. Đồng thuận theo bằng chứng công việc.............................................................20
1.4.2. Đồng thuận theo bằng chứng cổ phần...............................................................21
1.4.4. Đồng thuận theo bằng chứng ủy quyền. ...........................................................22
1.5. Phương thức hoạt động của Blockchain................................................................24
1.8. Ưu nhược điểm của công nghệ Blockchain...........................................................26
1.8.1. Ưu điểm ............................................................................................................26
iii
2.1. Nền tảng Corda R3 ................................................................................................29
2.1.1. Giới thiệu nền tảng Corda R3 ............................................................................29
2.1.4. So sánh Corda với các nền tảng khác ................................................................31
2.2. Đặc trưng và triết lý của Corda..............................................................................32
2.2.1. Tính cấp quyền...................................................................................................32
2.2.2. Hợp đồng thông minh trong Corda R3. .............................................................33
2.2.4. Mạng ngang hàng...............................................................................................33
2.2.4. Hàng đợi thông điệp...........................................................................................34
2.3. Các khái niệm quan trọng trong Corda.....................................................................35
2.3.1. Các trạng thái.....................................................................................................35
2.3.5. Các cơ chế đồng thuận.......................................................................................37
2.3.10. The service hub................................................................................................39
2.3.12. Mạng Corda .....................................................................................................40
Kết chương.......................................................................................................................41
CHUYỂN TIỀN LIÊN NGÂN HÀNG.............................................................................42
3.1. Đặt vấn đề..............................................................................................................42
3.1.1. Xác định bài toán ..............................................................................................43
3.1.2. Cách tiếp cận và giải pháp. ...............................................................................45
3.2. Xây dựng hệ thống.................................................................................................46
3.2.1. Môi trường phát triển và công cụ ......................................................................46
3.2.2. Kiến trúc hệ thống.............................................................................................47
3.2.3. Đặc tả chức năng...............................................................................................47
iv
3.3.1. Kết quả thử nghiệm...........................................................................................53
3.3.2. Đánh giá kết quả ...............................................................................................56
3.4. Kết chương ............................................................................................................56
KẾT LUẬN CHUNG.........................................................................................................57
v
DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT
Viết tắt
AMQP
Nguyên nghĩa
Advanced Message Queuing Protocol
Application Programming Interface
Boston Consulting Group
Bitshares
API
BCG
BTS
CorDapps
CPU
Corda Distributed Applications
Central Processing Unit
Directed Acyclic Graph
Tổ chức tự quản phân cấp thế giới
Database Management System
Delegated Proof-of-Stake
Elliptic Curve Digital Signature Algorithm
Integrated Development Environment
Java Database Connectivity
Java Development Kit
DAG
DAO
DBMS
DPoS
ECDSA
IDE
JDBC
JDK
KYC
OS
Know your customer
operating system
POA
POS
Proof-of-Authority
Proof-of-Stake
POW
RAM
RPC
Proof-of-work
Random Access Memory
Remote Procedure Call
Secure Hash Algorithm
Transaction
SHA
TX
UTXO
Unspent transaction output
vi
DANH SÁCH BẢNG
Bảng 1.1: Ví dụ về 1 giao dịch....................................................................................8
Bảng 2.1: So sánh Corda với một số nền tảng khác..................................................32
Bảng 3.1: Cấu hình phần cứng hệ thống...................................................................46
Bảng 3.1: Các phần mềm hệ thống ...........................................................................46
vii
DANH SÁCH HÌNH VẼ
Hình 1.1: Ví dụ về Block ............................................................................................5
Hình 1.2: Một chuỗi của các Blocks ...........................................................................6
Hình 1.2: Sổ cái phân tán ............................................................................................8
Hình 1.3: Mô hình phân phối của Blockchain ............................................................9
Hình 1.4: Con trỏ băm...............................................................................................13
Hình 1.5: Thuận toán chữ ký số ECDSA..................................................................15
Hình 1.7: Cách hoạt động của Blockchain................................................................25
Hình 2.1: Luồng xử lý trong CorDapp......................................................................30
Hình 2.8: Ví dụ đơn giản về Corda Flow..................................................................37
Hình 2.12: Corda Network........................................................................................41
Hình 3.2: Nghiệp vụ chuyển tiền đi ..........................................................................44
Hình 3.3: Nghiệp vụ nhận tiền ..................................................................................44
Hình 3.11. CSDL trong lưu trữ trong Corda.............................................................51
Hình 3.12. Màn hình đăng nhập bank A...................................................................52
Hình 3.14. Màn hình lịch sử giao dịch......................................................................52
Hình 3.15. Màn hình chuyển tiền..............................................................................53
1
MỞ ĐẦU
Trong Cách mạng công nghiệp 4.0, “blockchain” (chuỗi khối) được xem là
một trong những công nghệ "then chốt" cho chuyển đổi số và xây dựng nền tảng
công nghệ thông tin trong tương lai.
Với khả năng chia sẻ thông tin dữ liệu minh bạch theo thời gian thực tế, có
tính bảo mật cao, công nghệ blockchain là một trong những xu hướng công nghệ
đột phá, có khả năng ứng dụng rộng rãi ở nhiều ngành nghề, lĩnh vực khác nhau.
Ứng dụng công nghệ Blockchain có thể giải quyết được một số vấn đề mà hệ
thống tài chính ngân hàng hiện nay đang gặp phải. Blockchain cung cấp mức độ bảo
mật cao, minh bạch trong các giao dịch cũng như chi phí thấp. Hơn nữa, người dùng
có thể hoàn toàn tham gia vào giao dịch mà không cần xác thực bởi bên thứ 3.
Công nghệ Blockchain thực sự mở ra tiềm năng vô cùng lớn trong lĩnh vực
tài chính – ngân hàng, tác động không nho đến quy trình xác nhận giao dịch, quản
lý tiền mặt, tối ưu hóa tài sản cũng như các quy trình kinh doanh khác. Công nghệ
Blockchain sẽ giúp giảm thiểu thời gian từ lúc đăng ký tới lúc hoàn thành giao dịch
hoặc giảm thời gian cho các giao dịch liên ngân hàng, chuyển khoản quốc tế hoặc
xác nhận thông tin cá nhân.
Nhận thấy những tiềm năng to lớn của Blockchain ở hiện tại và tương lai,
em quyết định lựa chọn đề tài nghiên cứu các ứng dụng của Blockchain cho bài
toán thanh toán phi tiền mặt trong các hệ thống tài chính ngân hàng cho báo cáo
luận văn Thạc sĩ của mình.
2
CHƯƠNG 1: GIỚI THIỆU CÔNG NGHỆ BLOCK CHAIN
1.1. Tổng quan về công nghệ Blockchain
1.1.1. Khái niệm
Satoshi Nakamoto (một người chưa rõ danh tính) đã xuất bản một bài báo
trình bày giải pháp cho vấn đề "chi tiêu gấp đôi" đối với tiền kỹ thuật số vào năm
2008. Khi đó, ông đã tiết lộ công nghệ cơ bản được gọi là blockchain và một ví dụ
về ứng dụng có thể có của blockchain dưới dạng triển khai đơn giản được gọi là
"Bitcoin".
"Bitcoin" đã nhận được sự chú ý rộng rãi kể từ thời điểm đó. Cơ chế cơ bản,
blockchain, cũng đã được công nhận và đã tìm thấy các ứng dụng trong các bối cảnh
đa dạng. Thật vậy, thế giới đã phát hiện ra rằng các nguyên tắc của blockchain hữu
ích trong nhiều bối cảnh và có thể có nhiều biến thể của việc triển khai ban đầu.
Blockchain là một công nghệ phức tạp và phát triển nhanh chóng. Phải mất
nhiều trí tuệ sáng suốt trong nhiều năm phát triển, cộng với sự kết hợp của những
tiến bộ trong mật mã, điện toán phân tán và kinh tế học để tạo ra công nghệ hiện tại.
Blockchain được thiết kế để chống lại việc thay đổi của dữ liệu: Một khi dữ liệu đã
được cập nhật trong mạng thì sẽ khó có thể thay đổi được nó. Thông tin đã lưu
trong Blockchain thì không thể bị thay đổi và chỉ được bổ sung thêm khi có sự đồng
thuận của tất cả các nút trong hệ thống. Ngay cả khi nếu một phần của hệ thống
Blockchain sập đổ, những máy tính và nút khác sẽ tiếp tục hoạt động để bảo vệ
thông tin. Đặc biệt, Blockchain có khả năng truyền tải dữ liệu mà không đòi hỏi
trung gian để xác nhận thông tin. Hệ thống Blockchain bao gồm nhiều nút độc lập
có khả năng xác thực thông tin.
Công nghệ Blockchain là sự kết hợp của 3 yếu tố dưới đây:
•
Mật mã học: public key và hàm hash function được sử dụng để đảm bảo tính
minh bạch, toàn vẹn và riêng tư.
Mạng ngang hàng: Mỗi một nút trong mạng được xem như một client và
cũng là server để lưu trữ của bản sao ứng dụng.
Lý thuyết trò chơi: Tất cả các nút trong hệ thống đều phải tuần thủ theo luật
•
•
3
chơi đồng thuận (PoW, PoS, …) nhất định và được thúc đẩy bởi động lực kinh tế.
Lý tưởng cơ bản của Blockchain là phi tập trung (dencentralized), nơi cộng đồng
có quyền quyết định mọi vấn đề mà không cần một trung gian (như nhà nước, ngân
hàng, tổ chức hành chính…). Blockchain được ví như cuốn sổ cái phân tán
(distributed ledger) mã nguồn mở (open source) nơi mọi thông tin được lưu trữ
minh bạch và không bị sửa đổi.
Công nghệ Blockchain là một loại chương trình để lưu, xác nhận, vận chuyển và
truyền thông dữ liệu trong mạng thông qua các nút phân phối của riêng nó mà
không phụ thuộc vào bên thứ ba.
Theo một cách nào đó, blockchain, với tư cách là một hệ thống phân tán, tự
phụ trách chính nó. Việc tham gia vào hệ thống giao dịch vẫn bị chi phối bởi các
quy tắc được xác định trong giao thức và được thực thi bởi tất cả những người tham
gia. Tuy nhiên, một người tham gia trung thực sẽ đóng góp vào việc thực thi các
quy tắc giao thức.
Thử nghiệm trong quản trị chuỗi cho thấy các phương pháp tiếp cận để quản lý sự
phát triển của cấu trúc phần thưởng và thậm chí cả các quy tắc quản trị, đồng thời
hạn chế sự phát triển của hệ thống và tránh những thay đổi lớn trừ khi hầu hết người
dùng đồng ý.
1.1.2. Mạng ngang hàng (Peer to Peer Network)
Mạng ngang hàng là một kiến trúc mạng phân phối, trong đó mỗi nút tham gia
(máy tính) chia sẻ tài nguyên phần cứng của nó như máy tính, dung lượng lưu trữ,
liên kết mạng với nhau.
Về bản chất, hệ thống ngang hàng được duy trì bởi một mạng lưới người dùng
phân tán. Mạng này thường không có quản trị viên trung tâm hoặc máy chủ vì mỗi
nút lưu trữ một bản sao của các tệp và mỗi nút đóng vai trò như một máy khách và
máy chủ cho các nút khác. Do đó, mỗi nút có thể tải tệp về từ các nút khác hoặc tải
lên tệp cho các nút khác. Đây là điểm khác biệt giữa các mạng ngang hàng với các hệ
thống máy chủ-máy khách truyền thống hơn, trong đó các thiết bị máy khách tải
xuống các tệp từ một máy chủ tập trung.
4
Trên mạng ngang hàng, các thiết bị được kết nối chia sẻ các tệp được lưu trữ
trên ổ cứng của chúng. Sử dụng các ứng dụng phần mềm được thiết kế để làm trung
gian cho việc chia sẻ dữ liệu, người dùng có thể truy vấn các thiết bị khác trên mạng
để tìm và tải xuống các tệp. Khi người dùng đã tải xuống một tệp, họ có thể đóng vai
trò là nguồn của tệp đó.
Nói cách khác, khi một nút hoạt động như một máy khách, họ tải xuống dữ
liệu từ các nút khác trên mạng. Nhưng khi họ hoạt động như một máy chủ, họ là
nguồn mà các nút khác có thể tải xuống dữ liệu. Tuy nhiên, trên thực tế, các nút có
thể thực hiện hai chức năng cùng một lúc (ví dụ: tải xuống dữ liệu A và tải lên dữ liệu
B).Vì mỗi nút đều có chức năng lưu trữ, truyền và nhận tệp, mạng ngang hàng có xu
hướng hoạt động nhanh và hiệu quả hơn khi cộng đồng người dùng của họ phát triển
lớn hơn. Ngoài ra, kiến trúc phân tán của họ làm cho các hệ thống P2P có khả năng
chống lại các cuộc tấn công mạng rất cao. Không giống như các mô hình truyền thống,
mạng P2P không có sự hư hỏng tại một điểm. Các tài nguyên này được sử dụng để
cung cấp các dịch vụ như chia sẻ nội dung và chia sẻ tập tin và có sẵn cho tất cả các
nút trực tiếp mà không cần bất kỳ máy chủ trung tâm nào.
Một mạng ngang hàng đúng nghĩa thì không có khái niệm máy chủ và máy
khách, hay nói cách khác, tất cả các máy tham gia đều bình đẳng như nhau và được
gọi là 1 peer, là một nút mạng đóng vai trò đồng thời là máy khách và máy chủ đối
với các máy khác trong mạng.
Mang ngang hàng cũng được sủ dụng để ẩn danh định tuyến lưu lượng mạng, máy
tính song song, lưu trữ tập tin phân tán, chia sẻ phương tiện truyền thông. Blockchain
sử dụng kiến trúc mạng P2P để đảm bảo phân tán, phân quyền mạng và không tồn tại
một đơn vị kiểm soát trung tâm.
Kiến trúc ngang hàng là yếu tố cốt lõi của công nghệ blockchain - nền tảng của tiền
mã hóa. Có nhiều cách để phát triển và sử dụng kiến trúc ngang hàng. Bằng cách phân
tán các sổ cái giao dịch trên một mạng lớn gồm nhiều nút, kiến trúc P2P cung cấp khả
năng bảo mật, phi tập trung và chống kiểm duyệt.
5
1.1.3. Block
Block là một đơn vị trong Blockchain, là khối xây dựng nên Blockchain bao gồm các
giao dịch với dữ liệu. Một thợ đào thu thập các giao dịch của một khoảng thời gian
nhất định để tạo thành một khối và tính toán hàm băm mật mã. Mã băm này phải có
định dạng cụ thể như phải có 4 số 0 như trong Hình 1.1. Để có được loại mã băm này,
người thợ đào phải đoán một cách ngẫu nhiên một số tùy ý đưa ra bảng băm với bốn
số không hàng đầu. Số độc đoán này được gọi là số được sử dụng một lần hoặc số
một lần (nonce). Ngoài ra, quá trình xác định nonce được gọi là khai thác mỏ. Một
khối mẫu được thể hiện trong Hình 1.1 trong đó mỗi khối có một số block, nonce,
data và hash.
Hình 1.1: Ví dụ về Block
Các giao dịch sau khi được gửi lên trên mạng lưới blockchain sẽ được nhóm
vào các khối và các giao dịch trong cùng 1 khối (block) được coi là đã xảy ra cùng
thời điểm. Các giao dịch chưa được thực hiện trong 1 khối được coi là chưa được xác
nhận.
Mỗi nút có thể nhóm các giao dịch với nhau thành một khối và gửi nó vào
mạng lưới như một hàm ý cho các khối tiếp theo được gắn vào sau đó.
Bất kỳ nút nào cũng có thể tạo ra một khối mới. Vậy, câu hỏi đặt ra là: hệ
thống sẽ đồng thuận với khối nào? khối nào sẽ là khối tiếp theo?
6
Hình 1.2: Một chuỗi của các Blocks
Để được thêm vào blockchain, mỗi khối phải chứa một đoạn mã đóng vai trò
như một đáp án cho một vấn đề toán học phức tạp được tạo ra bằng hàm mã hóa băm
không thể đảo ngược.
Cách duy nhất để giải quyết vấn đề toán học như vậy là đoán các số ngẫu
nhiên, những số khi mà kết hợp với nội dung khối trước tạo ra một kết quả đã được
hệ thống định nghĩa. Điều này nhiều khi có thể mất khoảng một năm cho một máy
tính điển hình với một cấu hình cơ bản có thể đoán đúng các con số đáp án của vấn
đề toán học này.
Mạng lưới quy định mỗi khối được tạo ra sau một quãng thời gian là n phút một lần,
bởi vì trong mạng lưới luôn có một số lượng lớn các máy tính đều tập trung vào việc
đoán ra dãy số này. Nút nào giải quyết được vấn đề toán học như vậy sẽ được quyền
gắn khối tiếp theo lên trên chuỗi và gửi nó tới toàn bộ mạng lưới.
Vậy điều gì sẽ xảy ra nếu hai nút giải quyết cùng một vấn đề cùng một lúc và truyền
các khối kết quả của chúng đồng thời lên mạng lưới? Trong trường hợp này, cả hai
khối được gửi lên mạng lưới và mỗi nút sẽ xây dựng các khối kế tiếp trên khối mà nó
nhận được trước tiên.
Tuy nhiên, hệ thống blockchain luôn yêu cầu mỗi nút phải xây dựng trên chuỗi khối
dài nhất mà nó nhận được. Vì vậy, nếu có sự không rõ ràng về việc block nào là khối
cuối cùng thì ngay sau khi khối tiếp theo được giải quyết thì mỗi nút sẽ áp dụng vào
chuỗi dài nhất.
7
1.1.4. Giao dịch
Giao dịch là một bản ghi chuyển giao tài sản (tiền tệ kỹ thuật số, đơn vị hàng tồn
kho, v.v…) giữa các bên. Tương tự như vậy sẽ là một bản ghi trong một tài khoản
kiểm tra cho mỗi lần tiền đã được gửi hoặc thu hồi. Bảng 1.1 cho thấy một ví dụ tiêu
biểu của một giao dịch. Mỗi khối trong một Blockchain chứa nhiều giao dịch. Một
giao dịch đơn lẻ yêu cầu ít nhất các trường thông tin sau, nhưng có thể chứa nhiều
hơn:
Amount: Tổng số tiền của tài sản kỹ thuật số để chuyển.
Input: Một danh sách các tài sản kỹ thuật số sẽ được chuyển giao (tổng giá
trị bằng số tiền). Lưu ý rằng mỗi tài sản kỹ thuật số được xác định duy nhất
và có thể có các giá trị khác nhau từ các tài sản khác. Tuy nhiên, không thể
thêm hoặc xóa tài sản khỏi các tài sản kỹ thuật số hiện có. Thay vào đó, tài
sản kỹ thuật số có thể được chia thành nhiều tài sản kỹ thuật số mới (mỗi giá
trị nhỏ hơn) hoặc được kết hợp để tạo ít tài sản kỹ thuật số mới hơn (mỗi giá
trị có giá trị tương ứng cao hơn).
Output - Các tài khoản sẽ là những người nhận tài sản kỹ thuật số. Mỗi đầu
ra chỉ định giá trị được chuyển giao cho (các) chủ sở hữu mới, danh tính của
chủ sở hữu mới và một tập hợp các điều kiện mà chủ sở hữu mới phải đáp
ứng để nhận giá trị đó. Nếu tài sản kỹ thuật số được cung cấp nhiều hơn yêu
cầu, các khoản tiền bổ sung được trả lại cho người gửi (đây là một cơ chế để
"thay đổi").
ID giao dịch/Hash - Mã nhận dạng duy nhất cho mỗi giao dịch. Một số
Blockchains sử dụng một ID, và một số khác sử dụng một hash của giao dịch
cụ thể như là một định danh duy nhất.
8
Bảng 1.1: Ví dụ về 1 giao dịch
Input
Account A
Output
Account B
Account C
Amount
0.0321
2.5000
Total
2.531
Transaction
ID: 0xa1b2c3
1.1.5. Sổ cái
Sổ cái được coi là một cuốn sổ hoặc tệp tin ghi chép và tổng hợp các giao dịch.
Trong suốt lịch sử, sổ ghi chép đã được sử dụng để theo dõi trao đổi hàng hoá và
dịch vụ.
Hình 1.2: Sổ cái phân tán
Để có được bức tranh về trạng thái của các tài khoản tại bất kỳ thời điểm nào, người
ta phải kiểm đếm tất cả các giao dịch cho đến thời điểm đó. Từng cái một, mọi bản
ghi giao dịch đều thay đổi trạng thái.
Mọi giao dịch trong sổ cái đều chứa một bộ dữ liệu tùy ý, tùy thuộc vào mục đích của
chúng. Trong sổ cái ghi lại các giao dịch tiền tệ, sổ cái có thể chứa các dữ liệu sau:
Người gửi
Người nhận
Số tiền
Tín dụng / Ghi nợ
Tài liệu tham khảo
9
Cuối cùng, dữ liệu được ghi lại phụ thuộc vào cấu trúc và mục đích của sổ cái.
Điều này sẽ quan trọng sau này, vì vậy hãy nhớ rằng các giao dịch cuối cùng là các
phần dữ liệu được sắp xếp theo thứ tự thời gian.
Xem qua và xử lý từng giao dịch trong sổ cái cho phép chúng ta lấy được tất cả
các loại thông tin meta. Điều này có thể bao gồm số lượng giao dịch, hoạt động trên
mỗi tài khoản và tất nhiên, số dư tài khoản cá nhân. Số dư tài khoản, giống như số dư
tài khoản ngân hàng của bạn, là một bản trình bày và tóm tắt trừu tượng của một danh
sách các giao dịch.
Một sổ cái được thực hiện bằng cách sử dụng một Blockchain có thể giảm thiểu
những vấn đề này thông qua việc sử dụng cơ chế đồng thuận phân tán. Các sổ cái
Blockchain sẽ được sao chép và phân phối giữa các nút trong hệ thống.
1.1.6. Blockchain phân phối phi tập trung
Mức độ phi tập trung có ý nghĩa rất lớn đối với hoạt động của mạng. Vào năm
1964, trước những khám phá và phát triển lớn như hệ thống mã hóa khóa công khai
và mạng P2P, Paul Baron đã xuất bản một bài báo về Truyền thông phân tán. Trong
đó, ông đã cố gắng phân biệt giữa các mức độ phân quyền đa dạng. Mạng có thể là
tập trung, phi tập trung hoặc phân tán.
Hình 1.3: Mô hình phân phối của Blockchain
Trong khái niệm của Baran về mức độ tập trung, ông đã xác định một loạt
các cấu trúc liên kết mạng - tập trung và phân quyền là những thuộc tính được giới
thiệu từ lâu để mô tả các hệ thống và cấu trúc phân quyền.
10
Blockchain là sự phân tán các nút trong mạng ngang hàng, nơi tất cả các nút
có một bản sao chính xác của Blockchain. Do đó, nếu một mục trong Blockchain
được sửa đổi và tái sử dụng, kết quả của mã băm sẽ trở nên khác so với các nút khác.
Giao dịch này sẽ bị vô hiệu vì các nút khác sẽ làm mất hiệu lực bản sao này. Tuy
nhiên, một thợ đào có thể sửa đổi một mục nhập Blockchain và tái khai thác tất cả
các mục nhập băm trên các nút phân phối nếu nó có nhiều quyền lực tính toán hơn
các thợ đào khác kết hợp.
1.1.7. Smart Contract
Smart Contract là một thuật ngữ mô tả khả năng tự đưa ra các điều khoản và thực thi
thoả thuận của hệ thống máy tính bằng cách sử dụng công nghệ Blockchain. Các điều
khoản của Smart Contract có thể coi là tương đương với một hợp đồng pháp lý và
được ghi lại dưới ngôn ngữ của máy tính. Toàn bộ quá trình của Smart Contract được
lập trình để thực hiện tự động và không thể có sự can thiệp từ bên ngoài.
Smart Contract được viết ra để cho phép hai bên có thể không cần xác định
danh tính rõ ràng có thể giao dịch hay làm việc với nhau trên Internet mà không cần
thông qua các bên trung gian. Smart Contract có tính an ninh cao, bởi vì được mã
hóa và phân phối về cho các nút. Cách thức này đảm bảo không bị thất lạc hay sửa
đổi mà không được cho phép.
Về cơ bản Bitcoin là nền tảng đầu tiên hỗ trợ các Smart Contract, Bitcoin là hệ thống
có thể chuyển giá trị từ người này sang người khác thông qua công nghệ Blockchain.
Các máy tính trong hệ thống chỉ xác nhận giao dịch hợp lệ khi đáp ứng các điều
kiện trong Smart Contract. Tuy nhiên Bitcoin chỉ giới hạn ở các trường hợp sử dụng
giao dịch tiền tệ mà thôi. Ngược lại, Ethereum đã cải tiến và khắc phục các hạn chế
của Bitcoin và thay thế ngôn ngữ hạn chế của Bitcoin thành những ngôn ngữ cho
phép các nhà phát triển viết các ứng dụng riêng của họ dựa trên việc lập trình ra các
Smart Contract.
Smart Contract chỉ tự động thực hiện những điều khoản đã được lập trình sẵn từ
trước khi được điều khoản đó đã đáp ứng đủ những yêu cầu cần thiết.
11
Đầu tiên, các điều khoản trong hợp đồng sẽ được viết bằng ngôn ngữ lập trình, sau
đó được mã hóa và chuyển vào một block thuộc Blockchain. Sau khi chuyển vào
block, Smart Contract này sẽ được phân phối và sao chép lại bởi các node đang hoạt
động trên nền tảng đó.
Sau khi có nhận lệnh triển khai thì hợp đồng sẽ được triển khai theo đúng như điều
khoản định sẵn. Đồng thời, Smart Contract cũng sẽ tự động kiểm tra quá trình thực
hiện những cam kết, điều khoản được nêu trong hợp đồng.
1.2. Mật mã trong Blockchain
1.2.1. Hàm băm
Một thành phần quan trọng của công nghệ Blockchain là sử dụng hàm băm mật mã
cho nhiều thao tác, chẳng hạn như băm nội dung của một khối. Hashing là phương
pháp tính một đầu ra có kích thước cố định cho một đầu vào có kích thước gần như
bất kỳ (ví dụ: tệp, văn bản hoặc hình ảnh). Ngay cả sự thay đổi nhỏ nhất của đầu
vào sẽ dẫn đến kết quả khác biệt hoàn toàn. Bảng 1.2 cho thấy các ví dụ đơn giản
về điều này. Các thuật toán băm được thiết kế theo một chiều, không thể tìm ra bất
kỳ đầu vào nào có thể cho bất kỳ đầu ra được xác định trước. Các thuật toán băm
cũng được thiết kế để không tìm ra hai hoặc nhiều đầu vào sản xuất cùng một đầu
ra.
Một thuật toán băm được sử dụng nhiều trong công nghệ Blockchain là Thuật toán
băm an toàn (SHA) với kích thước đầu ra là 256 bit (SHA-256).
Bảng 1.2: Ví dụ về đầu vào và giá trị tiêu biểu SHA-256
Input
Text
1
SHA-256 Digest Value
0x6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7
875b4b
2
0x4735e3a265e16eee03f59718b9b5d03019c07d8b6c51f90da3a666eec
13ab35
Hello,
World
0xdffd6021bb2bd5b0af676290809ec3a53191dd81c7f70a4b28688a362
182986f
Tải về để xem bản đầy đủ
Bạn đang xem 20 trang mẫu của tài liệu "Luận văn Nghiên cứu ứng dụng Blockchain cho bài toán thanh toán phi tiền mặt trong lĩnh vực tài chính ngân hàng", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
File đính kèm:
luan_van_nghien_cuu_ung_dung_blockchain_cho_bai_toan_thanh_t.pdf

