Nghiên cứu và ứng dụng công nghệ blockchain trong việc quản lý hoạt động chuyển vùng viễn thông quốc tế 1. Lý do chọn đề tài: Chuyển vùng viễn thông (roaming) là dịch vụ cho phép các thuê bao di động nghe gọi, nhắn tin và sử dụng data tại các vùng địa lý nằm ngoài khả năng đáp ứng của nhà mạng thường trú và trong khu vực đáp ứng của các nhà mạng khác có ký kết thỏa thuận chuyển vùng với các nhà mạng thường trú. Chuyển vùng quốc tế giúp cho thuê bao di động giữ được số điện thoại của mình khi đi ra nước ngoài và duy trì việc khai thác các dịch vụ thoại và data thông qua mạng di động của nước sở tại. Cùng với các lợi ích to lớn trên, hoạt động chuyển vùng quốc tế luôn đối mặt với các hành vi tấn công gian lận để chiếm đoạt cước phí. Tổ chức CFCA đã thực hiện các cuộc khảo sát và nghiên cứu hai năm một lần, lần gần đây nhất là vào năm 2021, cho thấy rằng thiệt hại gian lận toàn cầu khoảng 39,89 tỷ đô la Mỹ, tương đương với 2.22% doanh thu viễn thông toàn cầu ước tính trong năm 2021, tăng 28% so với năm 2019 13. Vài năm gần đây, công nghệ blockchain 3.0 đã được giới thiệu và ứng dụng rộng rãi ra nhiều lĩnh vực trong đời sống chứ không chỉ trong lĩnh vực tài chính (tiền kỹ thuật số). Blockchain mở ra cơ hội cho nhiều ngành nghề khác, trong đó có ngành viễn thông. Việc áp dụng blockchain trong ngành viễn thông giúp nâng cao hiệu quả quản lý, khai thác mạng lưới kinh doanh, giao dịch các loại tài sản số như các dịch vụ nội dung, quản lý định danh, hợp đồng thông minh. Đặc biệt, blockchain có vai trò rất quan trọng trong lĩnh vực an toàn thông tin, ngăn chặn gian lận viễn thông. Một số nền tảng blockchain đã được xây dựng phát triển hỗ trợ cho việc ứng dụng blockchain. Hyperledger là một dự án mã nguồn mở của Linux Foundation, đã được nhiều doanh nghiệp ICT ứng dụng trong việc khởi tạo và quản lý blockchain của doanh nghiệp. Hãng IBM có đề xuất giải pháp chống gian lận trong hoạt động chuyển vùng viễn thông thông qua các hợp đồng thông minh (smart contract). Để làm rõ hơn những điểm mà Blockchain có thể áp dụng được, tác giả đã chọn đề tài “Nghiên cứu và ứng dụng Blockchain trong việc quản lý hoạt động chuyển vùng viễn thông quốc tế” cho luận văn của mình. 2. Mục đích nghiên cứu: Mục đích nghiên cứu của đề tài là nghiên cứu tổng quan về công nghệ blockchain, nghiên cứu về nguyên tắc hoạt động, ứng dụng của blockchain đối với các hoạt động trong đời sống đặc biệt là các ứng dụng thiết thực cho mạng viễn thông. Nghiên cứu một mô hình, hệ thống Blockchain có khả năng ứng dụng vào hoạt động chuyển vùng quốc tế để giải quyết các hạn chế của các quy trình hiện có. Từ đó xây dựng kịch bản mô phỏng của hệ thống đề xuất nhằm xử lý bài toán chống gian lận trong hoạt động chuyển vùng quốc tế. 3. Nội dung nghiên cứu: Nghiên cứu tổng quan về công nghệ blockchain, cấu trúc blockchain, một số đặc điểm, phân loại blockchain. Nghiên cứu về các cơ chế đồng thuận của blockchain. Nghiên cứu nền tảng blockchain Hyperledger Fabric, các cơ chế hoạt động, các ưu điểm của Hyperledger Fabric. Nghiên cứu về hoạt động chuyển vùng viễn thông quốc tế, các vấn đề gian lận. Nghiên cứu và xây dựng mô hình hoạt động chuyển vùng quốc tế dựa trên công nghệ blockchain. 5. Phương pháp nghiên cứu: Tham khảo các công trình nghiên cứu, bài báo, tài liệu chuyên ngành, từ đó đưa ra các kiến thức cơ bản về blockchain. Sử dụng các kiến thức nghiên cứu được để đề xuất mô hình hình ứng dụng. Cài đặt và thử nghiệm thông qua các thực nghiệm để làm rõ các vấn đề cần đạt được trong luận văn. 6. Ý nghĩa khoa học và thực tiễn: Về mặt khoa học, luận văn đã cung cấp các kiến thức cơ bản về blockchain: cấu trúc mạng, block, giao dịch, sổ cái, phân loại các hệ thống blockchain, đi sâu vào phân tích nền tảng Hyperledger Fabric Về mặt thực tiễn, đề tài có đưa ra các hướng ứng dụng blockchain trong việc quản lý hoạt động chuyển vùng viễn thông quốc tế. Việc áp dụng blockchain vào quá trình chuyển vùng quốc tế góp phần giải quyết bài toán chống gian lận cước, tối ưu chi phí hoạt động của các nhà cung cấp dịch vụ và lợi ích cho người dùng. 7. Nội dung chính của luận văn Chương 1. Trong chương này sẽ trình bày các kiến thức cơ bản về blockchain như cấu trúc block, đặc điểm, phân loại blockchain và các cơ chế đồng thuận của blockchain. Nghiên cứu nên tảng blockchain Hyperleger Fabric, các ưu điểm và mô hình ứng dụng. Chương 2. Chương này, luận văn tập trung phân tích quy trình hoạt động chuyển vùng viễn thông quốc tế, các hình thức gian lận trong hoạt động chuyển vùng quốc tế, từ đó xác định các vấn đề cần giải quyết, đồng thời đề xuất mô hình ứng dụng để giải quyết các vấn đề đặt ra. Chương 3. Cuối cùng, chương 3 sẽ trình bày việc triển khai mô hình ứng dụng blockchain trong hoạt động chuyển vùng quốc tế, đưa ra đánh giá kết quả thực nghiệm.
Trang 1LÊ THANH HIỆU
NGHIÊN CỨU VÀ ỨNG DỤNG CÔNG NGHỆ BLOCKCHAIN TRONG VIỆC QUẢN LÝ HOẠT ĐỘNG CHUYỂN VÙNG VIỄN THÔNG QUỐC TẾ
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
ĐÀ NẴNG, Năm 2022
Trang 2LÊ THANH HIỆU
NGHIÊN CỨU VÀ ỨNG DỤNG CÔNG NGHỆ BLOCKCHAIN TRONG VIỆC QUẢN LÝ HOẠT ĐỘNG CHUYỂN VÙNG VIỄN THÔNG QUỐC TẾ
Chuyên ngành: Khoa học máy tính
Mã số: 8480101
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
Người hướng dẫn khoa học: TS Huỳnh Bá Diệu
ĐÀ NẴNG, NĂM 2022
Trang 3Lời đầu tiên, tôi xin được gửi lời cảm ơn sâu sắc tới TS Huỳnh Bá Diệu,giảng viên Viện Đào tạo Quốc tế - Đại học Duy Tân đã tận tình giúp đỡ, hướng dẫn
và truyền đạt những kinh nghiệm quý báu cho tôi trong suốt quá trình nghiên cứu vàhoàn thành luận văn này
Tôi cũng xin trân trọng cảm ơn Ban giám hiệu và các Thầy Cô giảng viênTrường Đại học Duy Tân đã giảng dạy, truyền đạt cho tôi những kiến thức trongsuốt thời gian học tập tại trường Những kiến thức này không chỉ làm tôi nâng cao
kỹ năng bản thân mà còn giúp ích cho tôi trong công việc hiện tại và về sau
Tôi cũng xin cảm ơn đến bạn bè, đồng nghiệp và đặc biệt là gia đình vànhững người thân đã ủng hộ, động viên tôi trong suốt thời gian vừa qua
Mặc dù đã hết sức nỗ lực, song do thời gian và kinh nghiệm nghiên cứu khoahọc còn hạn chế nên không thể tránh khỏi những thiếu sót Rất mong nhận được sựgóp ý của quý Thầy Cô và bạn bè đồng nghiệp để đề tài nghiên cứu hoàn thiện hơn
Đà Nẵng, ngày 20 tháng 02 năm 2022
Tác giả luận văn
Lê Thanh Hiệu
Trang 4Tôi xin cam đoan các nội dung trong luận văn với đề tài “Nghiên cứu và ứng dụng công nghệ Blockchain trong việc quản lý hoạt động chuyển vùng viễn thông quốc tế” là công trình nghiên cứu của bản thân dưới sự hướng dẫn của
thầy TS Huỳnh Bá Diệu Mọi tham khảo từ các tài liệu, công trình nghiên cứu liênquan trong nước và quốc tế đều được trích dẫn rõ ràng trong luận văn Tôi xin chịutrách nhiệm về lời cam đoan này
Tác giả luận văn
Lê Thanh Hiệu
Trang 5LỜI CẢM ƠN i
LỜI CAM ĐOAN ii
MỤC LỤC iii
DANH MỤC TỪ VIẾT TẮT vi
DANH MỤC CÁC BẢNG BIỂU ix
DANH MỤC CÁC SƠ ĐỒ, HÌNH VẼ x
MỞ ĐẦU 1
1 Lý do chọn đề tài: 1
2 Mục đích nghiên cứu: 2
3 Nội dung nghiên cứu: 2
5 Phương pháp nghiên cứu: 2
6 Ý nghĩa khoa học và thực tiễn: 2
7 Nội dung chính của luận văn 3
Chương 1 TỔNG QUAN VỀ BLOCKCHAIN VÀ NỀN TẢNG HYPERLEDGER FABRIC 4
1.1 TỔNG QUAN VỀ BLOCKCHAIN 4
1.2 CẤU TRÚC BLOCKCHAIN 5
1.3 ĐẶC ĐIỂM VÀ PHÂN LOẠI BLOCKCHAIN 6
1.3.1 Một số đặc điểm 6
1.3.2 Phân loại các hệ thống blockchain 7
1.4 CÁC CƠ CHẾ ĐỒNG THUẬN CỦA BLOCKCHAIN 8
1.4.1 Proof of Work (PoW) 9
1.4.2 Proof of Stake (PoS) 9
1.4.3 Delegated Proof of Stake (DPoS) 10
1.4.4 Practical Byzantine Fault Tolerance (PBFT) 10
1.5 NỀN TẢNG BLOCKCHAIN HYPERLEDGER FABRIC 11
1.5.1 Giới thiệu về Hyperledger Fabric 11
Trang 61.5.3 Xử lý lưu lượng mạng, khám phá và vận hành dịch vụ 22
1.5.4 Các ưu điểm của Hyperledger Fabric 25
1.6 ỨNG DỤNG CỦA BLOCKCHAIN 26
1.6.1 Lĩnh vực giáo dục 26
1.6.2 Lĩnh vực chính phủ điện tử 27
1.6.3 Lĩnh vực tài chính, ngân hàng 27
1.6.4 Lĩnh vực Y tế 28
1.6.5 Lĩnh vược công nghiệp viễn thông 28
1.7 KẾT LUẬN CHƯƠNG 1 29
Chương 2 ỨNG DỤNG KHAI THÁC DỊCH VỤ CHUYỂN VÙNG QUỐC TẾ TRÊN NỀN TẢNG HYPERLEDGER FABRIC 30
2.1 CHUYỂN VÙNG QUỐC TẾ VÀ CÁC VẤN ĐỀ GIAN LẬN 30
2.1.1 Tổng quan về hoạt động chuyển vùng trong mạng thông tin di động 30
2.1.2 Đối soát, tính cước dịch vụ chuyển vùng 31
2.1.3 Các kiểu gian lận trong hoạt động chuyển vùng 33
2.1.4 Hiện trạng chống gian lận chuyển vùng 35
2.2 ĐỀ XUẤT ỨNG DỤNG BLOCKCHAIN TRONG VIỆC CHỐNG GIAN LẬN CHUYỂN VÙNG 36
2.2.1 Triển khai thỏa thuận chuyển vùng bằng hợp đồng thông minh 36
2.2.2 Nhận dạng thuê bao bằng public key 37
2.3 GIỚI THIỆU GIẢI PHÁP MÃ NGUỒN MỞ CỦA HÃNG IBM 37
2.4 KẾT LUẬN CHƯƠNG 2 39
Chương 3 TRIỂN KHAI THỬ NGHIỆM VÀ ĐÁNH GIÁ KẾT QUẢ 40
3.1 CÀI ĐẶT HỆ THỐNG BLOCKCHAIN KHAI THÁC DỊCH VỤ CHUYỂN VÙNG……… 40
3.1.1 Mô hình triển khai cài đặt 40
3.1.2 Biểu đồ use-case 43
3.1.3 Biểu đồ lớp 43
Trang 73.2.1 Bước 1 khởi tạo các nhà cung cấp dịch vụ CSP 45
3.2.2 Bước 2 khởi tạo SIM thuê bao của mỗi CSP 47
3.2.3 Bước 3 khai báo chuyển vùng cho thuê bao vừa khởi tạo 49
3.2.4 Bước 4 kiểm tra cuộc gọi và cước của thuê bao 50
3.2.5 Bước 5 thử nghiệm hành vi gian lận chuyển vùng 52
3.2.6 Đánh giá kết quả chạy thử chương trình 53
3.3 KẾT LUẬN CHƯƠNG 3 53
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 54 TÀI LIỆU THAM KHẢO
Trang 8DANH MỤC TỪ VIẾT TẮT
Chữ viết tắt Chữ viết đầy đủ
Hệ thống chịu lỗi Byzantine
Trạm thu phát sóng di động
Nhà cung cấp chứng thực số
Bản ghi chi tiết cuộc gọi
CFCA Communications Fraud Control Association
Hiệp hội kiểm soát gian lận truyền thông
Khả năng chịu lỗi của sự cố
CIBER Cellular Intercarrier Billing Exchange Roamer
Bản ghi Roamer trao đổi thanh toán qua nhà cung cấp dịch vụ di động
Giao diện dòng lệnh
Hệ thống cấu hình chaincode
Nhà cung cấp dịch vụ viễn thông
Cơ quan trung gian thanh toán bù trừ
Bằng chứng cổ phần được ủy quyền
Nút định tuyến GPRS
GSMA
Global System for Mobile Communications Association
Hiệp hội Hệ thống Thông tin Di động Toàn cầu
Sổ đăng ký địa chỉ nhà riêng
Trang 9HPMN Home Public Mobile Network
Nhà mạng di động thường trú
Báo cáo sử dụng cao
Mô đun bảo mật phần cứng
ICT Information & Communication Technology
Công nghệ thông tin và truyền thông
IMSI International Mobile Subscriber Identity
Nhận dạng thuê bao di động quốc tế
IRSF International Revenue Share Fraud
Gian lận chia sẻ doanh thu quốc tế
Hệ thống vòng đời chaincode
Trung tâm chuyển mạch di động
MSISDN
Mobile Station International Subscriber Directory Number
Số danh bạ thuê bao quốc tế của trạm di động
Nhà cung cấp dịch vụ thành viên
NRTRDE Near Real Time Roaming Data Exchange
Trao đổi dữ liệu chuyển vùng thời gian thực
PBFT Practical Byzantine Fault Tolerance
Khả năng chịu lỗi Byzantine thực tế
Bằng chứng của cổ phần
Bằng chứng của công việc
Hệ thống truy vấn chaincode
Bộ công cụ phát triển phần mềm
SIM Subscriber Identification Module
Mô đun nhận dạng thuê bao
Trang 10Thủ tục chuyển tài khoản
Nhà mạng di động tạm trú
Hệ thống xác nhận chaincode
Trang 11DANH MỤC CÁC BẢNG BIỂU
Bảng 1.1 Bảng so sánh các hệ thống blockchain 8Bảng 1.2 Bảng so sánh các cơ chế đồng thuận của blockchain 11
Trang 12DANH MỤC CÁC SƠ ĐỒ, HÌNH VẼ
Hình 1.1 Các thế hệ công nghệ blockchain 5
Hình 1.2 Cấu trúc blockchain 5
Hình 1.3 Phân loại blockchain 7
Hình 1.4 Blockchain công nhận nhánh dài hơn 9
Hình 1.5 Thành phần và kiến trúc của Hyperledger Fabric 11
Hình 1.6 Mạng Fabric đơn giản với 2 tổ chức 13
Hình 1.7 Phân biệt nút bảo chứng (endorsing peer) và nút cam kết (commiting peer) 14
Hình 1.8 Các thành phần bên trong sổ cái của một nút peer 15
Hình 1.9 Mạng Fabric với các chaincode và sổ cái 16
Hình 1.10 Một mạng Hyperledger Fabric phức tạp với nhiều kênh 17
Hình 1.11 Lưu đồ thực hiện một giao dịch trong mạng Hyperledger Fabric 18
Hình 1.12 Dịch vụ sắp xếp trong Hyperledger Fabric 19
Hình 1.13 Mạng Hyperledger Fabric môi trường production 21
Hình 1.14 Cơ chế phân phối block dùng các leader peer 22
Hình 1.15 Khám phá các nút peer với hỗ trợ của Anchor Peer 24
Hình 1.16 Các ứng dụng của block chain 26
Hình 2.1 Ví dụ cuộc gọi thoại khi chuyển vùng 30
Hình 2.2 Ví dụ cuộc gọi dữ liệu khi chuyển vùng 31
Hình 2.3 Luồng xử lý thông tin cước cuộc gọi đến thuê bao roaming 32
Hình 2.4 Minh họa sử dụng hợp đồng chuyển vùng thông minh 36
Hình 2.5 Mô hình giải pháp của IBM 38
Hình 3.1 Mô hình cài đặt mạng Hyperledger Fabric 40
Hình 3.2 Sử dụng công cụ Hyperledger Explorer để giám sát các chuỗi blockchain 41
Hình 3.3 Danh sách các block trong chuỗi blockchain 42
Hình 3.4 Biểu đồ use case 43
Hình 3.5 Biểu đồ lớp 44
Hình 3.6 Chạy script tạo 3 nhà mạng đồng thời 46
Trang 13Hình 3.7 Block thứ 5 được thêm vào chuỗi chứa 03 giao dịch tạo CSP 46
Hình 3.8 Chạy script client kích hoạt tạo SIM thuê bao 47
Hình 3.9 Ba block mới khởi tạo được giám sát trên công cụ Hyperledger Explorer47 Hình 3.10 Thông tin chi tiết giao dịch tạo SIM_01 thuê bao mạng Vinaphone 48
Hình 3.11 World-state của blockchain xem trên công cụ Fauxton 49
Hình 3.12 Thuê bao SIM_01 di chuyển ra nước ngoài 49
Hình 3.13 Dữ liệu thuê bao SIM_01 trong sổ cái 50
Hình 3.14 Thuê bao SIM_01 thực hiện cuộc gọi đi 50
Hình 3.15 Thuê bao SIM_01 kết thúc cuộc gọi 51
Hình 3.16 Cuộc gọi của SIM_01 được tính cước ngay sau khi kết thúc 51
Hình 3.17 Cảnh báo gian lận chuyển vùng 52
Hình 3.18 Thông tin SIM_01 được cảnh báo gian lận trên world-state 53
Trang 14MỞ ĐẦU
1 Lý do chọn đề tài:
Chuyển vùng viễn thông (roaming) là dịch vụ cho phép các thuê bao di độngnghe gọi, nhắn tin và sử dụng data tại các vùng địa lý nằm ngoài khả năng đáp ứngcủa nhà mạng thường trú và trong khu vực đáp ứng của các nhà mạng khác có kýkết thỏa thuận chuyển vùng với các nhà mạng thường trú Chuyển vùng quốc tếgiúp cho thuê bao di động giữ được số điện thoại của mình khi đi ra nước ngoài vàduy trì việc khai thác các dịch vụ thoại và data thông qua mạng di động của nước sởtại Cùng với các lợi ích to lớn trên, hoạt động chuyển vùng quốc tế luôn đối mặtvới các hành vi tấn công gian lận để chiếm đoạt cước phí Tổ chức CFCA đã thựchiện các cuộc khảo sát và nghiên cứu hai năm một lần, lần gần đây nhất là vào năm
2021, cho thấy rằng thiệt hại gian lận toàn cầu khoảng 39,89 tỷ đô la Mỹ, tươngđương với 2.22% doanh thu viễn thông toàn cầu ước tính trong năm 2021, tăng 28%
so với năm 2019 [13]
Vài năm gần đây, công nghệ blockchain 3.0 đã được giới thiệu và ứng dụngrộng rãi ra nhiều lĩnh vực trong đời sống chứ không chỉ trong lĩnh vực tài chính(tiền kỹ thuật số) Blockchain mở ra cơ hội cho nhiều ngành nghề khác, trong đó cóngành viễn thông Việc áp dụng blockchain trong ngành viễn thông giúp nâng caohiệu quả quản lý, khai thác mạng lưới kinh doanh, giao dịch các loại tài sản số nhưcác dịch vụ nội dung, quản lý định danh, hợp đồng thông minh Đặc biệt,blockchain có vai trò rất quan trọng trong lĩnh vực an toàn thông tin, ngăn chặn gianlận viễn thông Một số nền tảng blockchain đã được xây dựng phát triển hỗ trợ choviệc ứng dụng blockchain Hyperledger là một dự án mã nguồn mở của LinuxFoundation, đã được nhiều doanh nghiệp ICT ứng dụng trong việc khởi tạo và quản
lý blockchain của doanh nghiệp Hãng IBM có đề xuất giải pháp chống gian lận
Trang 15trong hoạt động chuyển vùng viễn thông thông qua các hợp đồng thông minh (smartcontract) Để làm rõ hơn những điểm mà Blockchain có thể áp dụng được, tác giả
đã chọn đề tài “Nghiên cứu và ứng dụng Blockchain trong việc quản lý hoạt độngchuyển vùng viễn thông quốc tế” cho luận văn của mình
2 Mục đích nghiên cứu:
Mục đích nghiên cứu của đề tài là nghiên cứu tổng quan về công nghệblockchain, nghiên cứu về nguyên tắc hoạt động, ứng dụng của blockchain đối vớicác hoạt động trong đời sống đặc biệt là các ứng dụng thiết thực cho mạng viễnthông Nghiên cứu một mô hình, hệ thống Blockchain có khả năng ứng dụng vàohoạt động chuyển vùng quốc tế để giải quyết các hạn chế của các quy trình hiện có
Từ đó xây dựng kịch bản mô phỏng của hệ thống đề xuất nhằm xử lý bài toán chốnggian lận trong hoạt động chuyển vùng quốc tế
3 Nội dung nghiên cứu:
- Nghiên cứu tổng quan về công nghệ blockchain, cấu trúc blockchain, một
số đặc điểm, phân loại blockchain
- Nghiên cứu về các cơ chế đồng thuận của blockchain
- Nghiên cứu nền tảng blockchain Hyperledger Fabric, các cơ chế hoạt động,các ưu điểm của Hyperledger Fabric
- Nghiên cứu về hoạt động chuyển vùng viễn thông quốc tế, các vấn đề gianlận
- Nghiên cứu và xây dựng mô hình hoạt động chuyển vùng quốc tế dựa trêncông nghệ blockchain
Trang 165 Phương pháp nghiên cứu:
Tham khảo các công trình nghiên cứu, bài báo, tài liệu chuyên ngành, từ đóđưa ra các kiến thức cơ bản về blockchain Sử dụng các kiến thức nghiên cứu được
để đề xuất mô hình hình ứng dụng Cài đặt và thử nghiệm thông qua các thựcnghiệm để làm rõ các vấn đề cần đạt được trong luận văn
6 Ý nghĩa khoa học và thực tiễn:
Về mặt khoa học, luận văn đã cung cấp các kiến thức cơ bản về blockchain:cấu trúc mạng, block, giao dịch, sổ cái, phân loại các hệ thống blockchain, đi sâuvào phân tích nền tảng Hyperledger Fabric
Về mặt thực tiễn, đề tài có đưa ra các hướng ứng dụng blockchain trong việcquản lý hoạt động chuyển vùng viễn thông quốc tế Việc áp dụng blockchain vàoquá trình chuyển vùng quốc tế góp phần giải quyết bài toán chống gian lận cước, tối
ưu chi phí hoạt động của các nhà cung cấp dịch vụ và lợi ích cho người dùng
7 Nội dung chính của luận văn
Chương 1 Trong chương này sẽ trình bày các kiến thức cơ bản về
blockchain như cấu trúc block, đặc điểm, phân loại blockchain và các cơ chế đồngthuận của blockchain Nghiên cứu nên tảng blockchain Hyperleger Fabric, các ưuđiểm và mô hình ứng dụng
Chương 2 Chương này, luận văn tập trung phân tích quy trình hoạt động
chuyển vùng viễn thông quốc tế, các hình thức gian lận trong hoạt động chuyểnvùng quốc tế, từ đó xác định các vấn đề cần giải quyết, đồng thời đề xuất mô hìnhứng dụng để giải quyết các vấn đề đặt ra
Trang 17Chương 3 Cuối cùng, chương 3 sẽ trình bày việc triển khai mô hình ứng
dụng blockchain trong hoạt động chuyển vùng quốc tế, đưa ra đánh giá kết quả thựcnghiệm
Trang 18Chương 1 TỔNG QUAN VỀ BLOCKCHAIN VÀ NỀN TẢNG
HYPERLEDGER FABRIC
1.1 TỔNG QUAN VỀ BLOCKCHAIN
Blockchain lần đầu tiên được phát minh và thiết kế bởi Satoshi Nakamotovào năm 2008 và được hiện thực hóa vào năm sau đó như là một phần cốt lõi củaBitcoin (đồng tiền kỹ thuật số) Qua việc sử dụng mạng lưới ngang hàng và một hệthống dữ liệu phân cấp, Bitcoin blockchain được quản lý tự động Việc phát minh rablockchain cho Bitcoin đã làm cho nó trở thành loại tiền tệ kỹ thuật số đầu tiên giảiquyết được vấn đề double spending (chi tiêu gian lận khi 1 lượng tiền được dùng 2lần) Công nghệ này của Bitcoin đã trở thành nguồn cảm hứng cho một loạt các ứngdụng khác
Blockchain là một công nghệ chuỗi khối, cho phép truyền tải dữ liệu an toàn
dựa trên hệ thống mã hóa vô cùng phức tạp, thường được ví như cuốn sổ cái kếtoán của một công ty, nơi mà tiền được giám sát chặt chẽ và ghi nhận mọi giaodịch trên mạng ngang hàng Blockchain được tạo ra để chống lại sự thay đổi dữ liệutrong hệ thống, không thể làm giả, không thể phá hủy sự liên kết giữa các khốithông tin Công nghệ blockchain không phải là một phát minh mới mà là sự kết hợpgiữa 3 loại công nghệ đã có trước đó
Mật mã học: Để đảm bảo tính minh bạch, toàn vẹn và riêng tư thì công nghệ Blockchain đã sử dụng khóa công khai và hàm hash function (hàm băm).
Mạng ngang hàng (Peer-to-Peer): Mỗi một nút (node) trong mạng được xem như một client và cũng là server để lưu trữ bản sao ứng dụng.
Trang 19Lý thuyết trò chơi: Tất cả các nút tham gia vào hệ thống đều phải tuân thủ luật chơi đồng thuận (giao thức Proof-of-Work, Proof-of-Stake ) và được thúc đẩy bởi động lực kinh tế.
So với thời điểm ban đầu, công nghệ block chain đã có những thay đổi Hiệnnền tảng công nghệ block chain ở thế hệ 3.0, có nhiều cải tiến hơn so với thế hệ 1.0
Hình 1.1 Các thế hệ công nghệ blockchain
1.2 CẤU TRÚC BLOCKCHAIN
Blockchain là một chuỗi các khối, chứa hoàn chỉnh danh sách các hồ sơgiao dịch như sổ cái công khai thông thường Cấu trúc Chain được tạo thành từ mộtdanh sách các block liên tục tăng trưởng, được liên kết với nhau thành chuỗi [5] Như minh họa ở Hình 1 2, một block bao gồm 2 phần header và body:
Trang 20Hình 1.2 Cấu trúc blockchain
Phần header của block thông thường sẽ bao gồm:
Previous Block’s Hash: Trường chứa giá trị băm của block liền trước,
nhằm bảo vệ chống thay đổi trong các block đã được chấp nhận trong chuỗi Blockđầu tiên của chuỗi khối được gọi là genesis block và có trường băm này rỗng
Timestamp: Xác định thời gian tạo khối bằng cách đánh dấu thời gian cho
mỗi giao dịch trên blockchain Timestamp chứng minh những gì đã xảy ra trênblockchain và xảy ra khi nào
Merkle Tree’s Root Hash: Trường chứa giá trị băm gốc cây Merkle Cây
Merkle là một cấu trúc dữ liệu mà nút lá là dữ liệu các giao dịch, nút trung gian làgiá trị băm của hai nút kề trên Nó cho phép xác minh nội dung trong một khối dữliệu lớn là nhất quán và toàn vẹn, chống các thay đổi xảy ra trong lúc truyền block
đi qua các môi trường truyền không tin cậy
Phần body của block chủ yếu bao gồm trường Data Length chỉ thị lượng dữliệu chứa trong block và bản thân dữ liệu Kích thước tối đa cho phép của blockphải được định trước khi triển khai blockchain
Mật mã hóa là một phương tiện để đảm bảo các giao dịch được thực hiện
an toàn và có thể kiểm chứng Các thuật toán mã hóa và băm bất đối xứng là nền
Trang 21tảng của công nghệ blockchain để đảm bảo các yêu cầu bảo mật và yêu cầu xácminh các khối Thuật toán băm được sử dụng để xác thực block kề trước và xâydựng cấu trúc dữ liệu cây Merkle Mã hóa bất đối xứng được sử dụng để mã hóathông tin, chữ ký số.
1.3 ĐẶC ĐIỂM VÀ PHÂN LOẠI BLOCKCHAIN
1.3.1 Một số đặc điểm
Công nghệ blockchain có một số đặc điểm chính như [5].:
Tính bảo mật: Người dùng chỉ có thể chuyển dữ liệu nếu họ sở hữu khóa
riêng Khóa riêng được sử dụng để tạo chữ ký cho mỗi giao dịch blockchain màngười dùng gửi đi Chữ ký này xác nhận rằng giao dịch đã đến từ người dùng vàcũng để giữ cho giao dịch không bị thay đổi bởi bất cứ ai một khi nó đã đượcphát hành
Tính minh bạch: Blockchain đảm bảo tính minh bạch cao của thông tin dữ
liệu thông qua sự kết hợp giữa mã hóa bất đối xứng và hàm băm Các bản ghi trênblockchain có thể được kiểm tra bởi các bên tham gia được xác định trước Ví dụ,trong các blockchain công khai, tất cả mọi người có kết nối Internet đều có quyềntruy cập vào sổ cái và kiểm tra mọi giao dịch
Tính độc lập: Blockchain được duy trì bởi hệ thống các nút của chính nó và
cơ chế bằng chứng dữ liệu của nó được các nút thực hiện thông qua một giao thức
mà không cần can thiệp thủ công
Phi tập trung: Công nghệ blockchain không dựa vào sự tham gia của bên thứ
ba, cũng không có bất kỳ trung tâm điều khiển nào Tất cả người dùng blockchainthông thường đều có thể tham gia xác thực dữ liệu của họ Blockchain tạo thành
Trang 22một mạng thông qua giao thức P2P Không giống như mạng tập trung, các nút trongmạng P2P vai trò như nhau và không có máy chủ trung tâm
Tính bất biến: Blockchain hoạt động theo nguyên tắc không thoái thác và
không thể đảo ngược giao dịch Mỗi block chứa các thông tin cần thiết được lưu trữcũng như thời gian khởi tạo và được liên kết với các block trước đó Do đó khi mộtblock được ghép vào chuỗi thì thông tin được đảm bảo và không thể thay đổi được.Không ai có thể bí mật thay đổi dữ liệu cũ mà không bị mạng phát hiện, hay nóicách khác là blockchain được thiết kế để ngăn chặn sự thay đổi dữ liệu
1.3.2 Phân loại các hệ thống blockchain
Các hệ thống blockchain hiện tại có thể được phân thành ba loại:
Blockchain công cộng: Bất kỳ ai cũng có quyền đọc và ghi dữ liệu, quá trình
xác thực giao dịch trên hệ thống đòi hỏi rất nhiều node mạng tham gia Vì vậy, hệthống Blockchain này được đánh giá khá an toàn Bitcoin, Ethereum là ví dụ choloại Blockchain này
Hình 1.3 Phân loại blockchain
Blockchain liên kết: một dạng của blockchain công cộng nhưng có thêm một
số tính năng nhất định, kết hợp giữa "niềm tin" khi tham gia vào Public và "niềm tin
Trang 23tuyệt đối" khi tham gia vào Private Các tổ chức, tập đoàn liên doanh sẽ sử dụngBlockchain cho riêng mình.
Blockchain riêng tư: Người dùng chỉ được quyền đọc dữ liệu, không có
quyền ghi (quyền này thuộc về một tổ chức bên thứ 3 với độ tin cậy tuyệt đối) Bênthứ 3 có toàn quyền quyết định mọi thay đổi trên Blockchain Thời gian xác thựcgiao dịch đối với Private Blockchain khá nhanh (vì chỉ cần một lượng nhỏ thiết bịtham gia vào giao dịch) Ripple là một dạng Private Blockchain, hệ thống này chỉcần 80% các nút hoạt động ổn định là có thể tiến hành giao dịch
So sánh tính chất 3 loại blockchain như ở Bảng 1 1
Bảng 1.1 Bảng so sánh các hệ thống blockchain
Thuộc tính Blockchain
công cộng
Blockchain liên kết
Blockchain riêng tư Tham gia
đồng thuận
Tất cả các “thợmỏ”
Một tập các nútđược chọn Một tổ chức
Cho phép đọc Công khai Có thể công khai
hoặc hạn chế
Có thể công khaihoặc hạn chế
Tính bất biến Gần như không
thể giả mạo Có thể giả mạo Có thể giả mạo
Tập trung Không Một phần Có
Tiến trình
đồng thuận
Không cần cấpquyền Cần cấp quyền Cần cấp quyền
1.4 CÁC CƠ CHẾ ĐỒNG THUẬN CỦA BLOCKCHAIN
Blockchain là một hệ thống phi tập trung, không lệ thuộc vào bên thứ ba đểxác thực giao dịch Do đó mà cần phải có các thuật toán đồng thuận để đảm bảorằng tất cả các giao dịch được diễn ra một cách đáng tin cậy [5] Về cơ bản, cácthuật toán đồng thuận cần thực hiện được hai điều:
Đảm bảo rằng khối tiếp theo trong blockchain là duy nhất và tin cậy;
Trang 24Giữ cho các tác nhân bên ngoài không thể phá hỏng hệ thống.
Một số cơ chế đồng thuận của Blockchain cụ thể như sau:
1.4.1 Proof of Work (PoW)
Trong thuật toán PoW, các nút mạng sẽ phải tính toán một giá trị băm của
block header Block header chứa một giá trị nonce và thợ mỏ sẽ thay đổi giá trị
nonce để thu được giá trị băm khác nhau sao cho chuỗi giá trị băm phải bắt đầubằng các số 0 liên tiếp đủ số lượng nhất định đã cho [5] Khi một nút tìm ra giá trịnonce đúng yêu cầu, nó sẽ phát block tới các nút khác và tất cả các nút khác phảilẫn nhau xác nhận tính chính xác của giá trị băm Nếu block được xác thực, các nútkhác sẽ nối thêm block mới này vào chuỗi block cục bộ của mình Các nút tính toáncác giá trị băm được gọi là các thợ mỏ
Hình 1.4 Blockchain công nhận nhánh dài hơn Trong mạng phi tập trung, có thể có nhiều nút tìm thấy giá trị nonce gần như
cùng một lúc, kết quả là chuỗi block sẽ bị phân nhánh tạm thời Tuy nhiên, hainhánh cạnh tranh chắc chắn sẽ không cùng một lúc tạo ra block tiếp theo Hình 1 4
Trang 25giao thức PoW, nhánh nào tạo được block mới tiếp theo dài hơn và thông báo lên hệthống thì nhánh đó sẽ được công nhận.
1.4.2 Proof of Stake (PoS)
Thuật toán PoS xác minh các block không dựa vào năng lực tính toán nhưPoW Ý tưởng đằng sau PoS là việc các bên tham gia sẽ khó có được số lượng tiền
kỹ thuật số đủ lớn so với việc trang bị các máy tính đủ mạnh Người có nhiều tiền
số sẽ ít có khả năng tấn công phá hoại hơn, tức là đáng tin cậy hơn Các bên thamgia xác nhận block sẽ phải khóa một số tiền của họ làm cổ phần Sau đó, họ sẽ bắtđầu xác thực các block, nghĩa là khi phát hiện ra một block mà họ cho rằng có thểđược thêm vào chuỗi, họ sẽ xác thực nó bằng cách đặt cược Nếu block được thêmvào chuỗi, thì người xác nhận sẽ nhận được phần thưởng tương ứng với tiền cượccủa họ So với PoW, PoS có độ trễ thấp và không cần tiêu thụ nhiều tài nguyên vànăng lực tính toán
1.4.3 Delegated Proof of Stake (DPoS)
DPoS tương tự như PoS nhưng đòi hỏi các “cổ đông” phải bỏ phiếu cho các
"đại biểu", những người này sau đó chịu trách nhiệm xác nhận các giao dịch và duytrì chuỗi khối
DPoS có các tính năng "dân chủ" khác nhau được cho là hiệu quả và côngbằng hơn Thay vì phải đặt cọc để xác thực giao dịch, những người nắm giữ token
sẽ tiến hành bỏ phiếu cho một nhóm đại biểu được chọn để thực hiện vai trò xácnhận các giao dịch Quyền biểu quyết của người nắm giữ token nhiều hay ít là dựatrên số lượng token mà người đó có, hay còn gọi là trọng số biểu quyết
1.4.4 Practical Byzantine Fault Tolerance (PBFT)
Trang 26PBFT cung cấp đồng thuận trong mạng ngay cả khi có các nút độc hại trong
hệ thống Các nút trong hệ thống được sắp xếp theo thứ tự với một nút là nút chính(nút leader) và các nút khác được gọi là nút phụ (hoặc nút backup) Lưu ý là bất kỳnút đủ điều kiện nào trong hệ thống đều có thể trở thành nút chính bằng cáchchuyển từ thứ cấp sang chính (ví dụ khi nút chính bị lỗi) Mục tiêu là tất cả các núttrung thực giúp đạt được sự đồng thuận về trạng thái của hệ thống bằng cách sửdụng quy tắc số đông Một hệ thống chịu lỗi Byzantine thực tế có thể hoạt động vớiđiều kiện số lượng nút độc hại tối đa phải ít hơn 1/3 tổng số tất cả các nút trong hệthống Khi số lượng nút tăng lên, hệ thống trở nên an toàn hơn
Bảng 1.2 Bảng so sánh các cơ chế đồng thuận của blockchain
Tiêu thụ điện Cao Thấp Rất thấp Rất thấp
Số giao dịch
/giây 7 - 30 30 - 173 2.3 - 2500 100 - 2500Phí giao dịch Cao Thấp Thấp Rất thấp
Cấu trúc Phi tập
trung
Phi tậptrung Tập trung
Phi tậptrung
Sử dụng bởi Bitcoin Dash BitShare Stellar
1.5 NỀN TẢNG BLOCKCHAIN HYPERLEDGER FABRIC
1.5.1 Giới thiệu về Hyperledger Fabric
Hyperledger là một dự án mã nguồn mở, cung cấp một hệ sinh thái các giảipháp và người dùng trên nền tảng công nghệ blockchain thuộc tổ chức LinuxFoundation Mục đích của Linux Foundation là tạo ra một cộng đồng các nhà phát
Trang 27triển làm việc trên các dự án nguồn mở, nhằm duy trì sự phát triển của các dự án,trong đó, mã nguồn dự án luôn được nâng cấp, sửa đổi và phân phối lại.
Hình 1.5 Thành phần và kiến trúc của Hyperledger Fabric
Hyperledger Fabric là kiểu blockchain cần được cấp quyền (permissioned).Các thành viên tham gia mạng Hyperledger Fabric phải đăng ký qua một nhà cungcấp dịch vụ thành viên (MSP - Membership Service Provider) Hyperledger Fabriccũng cung cấp các tùy chọn plugable Dữ liệu sổ cái có thể được lưu ở nhiều địnhdạng, các cơ chế đồng thuận có thể được hoán đổi, và các MSP khác nhau được hỗtrợ
Hyperledger Fabric cung cấp khả năng tạo kênh, cho phép một nhóm ngườitham gia kênh tạo một sổ cái giao dịch riêng biệt và chỉ những người này mới cóbản sao của sổ cái cho kênh đó [1]
Sổ cái chia sẻ: Hyperledger Fabric có phân hệ sổ cái bao gồm hai phần:
world-state và log giao dịch Phần world-state mô tả trạng thái của sổ cái tại thờiđiểm hiện hành, nó chính là database của sổ cái và lưu trữ các bản ghi dưới dạngkey-value (hiện tại cho phép tùy chọn dùng LevelDB hoặc CouchDB) Phần loggiao dịch ghi lại tất cả các giao dịch đưa đến giá trị hiện tại của world-state Loggiao dịch chỉ đơn giản là ghi lại các giá trị trước và sau của database sổ cái, nóchính là chuỗi các block đang được sử dụng bởi kênh
Trang 28Hợp đồng thông minh (Smart contracts): được viết thành chaincode và
được một ứng dụng bên ngoài blockchain gọi ra khi ứng dụng đó cần tương tác với
sổ cái [1] Trong hầu hết các trường hợp, chaincode chỉ tương tác với thành phầnworld-state database của sổ cái chứ không phải nhật ký giao dịch Chaincode có thểđược xây dựng bằng một số ngôn ngữ khác nhau như Go, Java, Node
Quyền riêng tư: Đối với các mạng public, quyền riêng tư sẽ không phải là
mối quan tâm hàng đầu Tuy nhiên tùy thuộc vào nhu cầu sử dụng mạng, nhữngngười tham gia mạng giữa các doanh nghiệp (B2B - Bussiness to Business) có thểcực kỳ nhạy cảm về lượng thông tin họ chia sẻ Hyperledger Fabric đảm bảo quyềnriêng tư bằng cách sử dụng các kênh là một yêu cầu bắt buộc Bằng cách này,Hyperledger Fabric nhắm vào phân khúc đối tượng sử dụng là các tổ chức, doanhnghiệp
Giao thức đồng thuận: Một trong những điểm khác biệt cực kỳ quan trọng
của Fabric đó là hỗ trợ nhiều giao thức đồng thuận có thể lựa chọn [1] Ví dụ, trongmột số trường hợp cụ thể, giao thức đồng thuận chịu lỗi Byzantine (BTF -Byzantine Fault Tolerant) có thể là không cần thiết do nó tốn tài nguyên và băngthông, khi đó giao thức đồng thuận chịu lỗi sự cố (CFT - Crash Fault Tolerant) làquá đủ cho những trường hợp này Giao thức đồng thuận CFT có thể giúp hệ thốngvẫn đạt được sự đồng thuận một cách chính xác cho dù các thành phần khác có thể
bị sự cố [8]
1.5.2 Cơ chế hoạt động của Hyperledger Fabric
1.5.2.1 Cấu trúc mạng Hyperledger Fabric
Trang 29Trong Hyperledger Fabric, các tổ chức tham gia và liên lạc với nhau thôngqua channel (kênh) Kênh có thể được coi là một đường hầm để liên lạc bảomật Bất kỳ ai khác không tham gia vào kênh sẽ không có quyền truy cập vào cácgiao dịch hoặc thông tin liên quan của kênh đó [7] Một tổ chức có thể tham giavào nhiều kênh đồng thời
Hình 1.6 Mạng Fabric đơn giản với 2 tổ chức Hình 1 6 mô tả một mạng Fabric đơn giản với hai tổ chức Org1 và Org2 tham
gia vào kênh A (Channel A), các phần tử bao gồm Peer, Orderer, CA và Client có vaitrò như sau:
Peer: là một nút blockchain lưu chứa tất cả các giao dịch trên một kênh nó
tham gia Mỗi nút peer có thể tham gia một hoặc nhiều kênh nếu cần, tuy nhiên việclưu trữ thông tin của các kênh là độc lập nhau Do đó, một tổ chức có thể yên tâm
Trang 30rằng các thông tin được chia sẻ chỉ bao gồm nội bộ các bên tham gia trên kênh đó
mà thôi
Orderer: là một trong những thành phần quan trọng nhất được sử dụng trong
cơ chế đồng thuận của Fabric Orderer chịu trách nhiệm sắp xếp các giao dịch, tạo
ra block mới chứa các giao dịch và phân phối block đến tất cả các nút Peer trênkênh
CA: là nhà cung cấp chứng chỉ thực hiện quản lý các chứng chỉ số của người
dùng như đăng ký người dùng, ghi danh người dùng, thu hồi người dùng v.v.Hyperledger Fabric là một mạng blockchain có cấp phép (permissioned), có nghĩa
là chỉ những người dùng được phép mới có thể query (truy vấn thông tin) hoặc invoke (tạo giao dịch mới) trên kênh được cấp quyền Hyperledger Fabric sử dụng
chứng chỉ theo chuẩn X.509 để thể hiện các quyền, vai trò và thuộc tính cho mỗingười dùng Nói cách khác, người dùng có thể truy vấn hoặc gọi giao dịch nào trênkênh nào phải dựa trên quyền, vai trò và thuộc tính mà họ sở hữu
Client: được xem như một ứng dụng tương tác với mạng blockchain Fabric.
Nghĩa là Client có thể tương tác với mạng Fabric theo các quyền, vai trò và thuộctính của nó theo như được chỉ định trên chứng chỉ được lấy từ máy chủ CA của tổchức
Trang 31Hình 1.7 Phân biệt nút bảo chứng (endorsing peer) và nút cam kết
(commiting peer)
Trong Fabric, khái niệm smart-contract được gọi là chaincode Để triển khaimột chaincode, quản trị mạng phải cài đặt chaincode lên một nút peer đích và gọilệnh để một Orderer khởi tạo chaincode đó trên kênh [1] Khi khởi tạo chaincode,
người quản trị phải định nghĩa một chính sách bảo chứng (endorsement policy) cho
chaincode đó Chính sách bảo chứng sẽ định nghĩa những nút peer nào cần phảitham gia chứng nhận kết quả của giao dịch Các nút Peer được định nghĩa trong
chính sách bảo chứng được gọi là nút bảo chứng (endorsing peer hoặc endorser), nó
có cài đặt chaincode và chứa một sổ cái cục bộ Còn các nút cam kết (commiting peer) chỉ chứa sổ cái cục bộ và không nhất thiết phải cài chaincode Hình 1 7 phân
biệt giữa nút bảo chứng và nút cam kết
Trang 32Hình 1.8 Các thành phần bên trong sổ cái của một nút peer
Hình 1 8 là các thành phần bên trong sổ cái của một nút Peer bao gồmblockchain và World State Blockchain lưu giữ lịch sử của tất cả các giao dịch chomọi chaincode trên một kênh cụ thể World State duy trì trạng thái hiện tại của cácbiến đối với từng mã lệnh cụ thể Hai loại cơ sở dữ liệu được hỗ trợ trong Fabricbao gồm LevelDB và CouchDB LevelDB là cơ sở dữ liệu khóa-giá trị mặc địnhđược xây dựng trên Fabric Peer, trong khi CouchDB là cơ sở dữ liệu dựa trên JSON
hỗ trợ các hoạt động truy vấn phong phú dựa trên các đối tượng JSON Nhà pháttriển chaincode phải chọn sử dụng LevelDB hoặc CouchDB khi phát triểnchaincode
Hình 1 9 là sơ đồ mạng Fabric thể hiện thêm chaincode và sổ cái Các nút
Peer của Org1 và Org2 cùng tham gia vào một kênh Nhiều chaincode khác nhau có
thể cùng được khởi tạo trên một kênh Chaincode cũng có thể được cập nhật đượcnếu cần nâng cấp hoặc vá lỗi
Chúng ta chú ý đến nút Orderer Orderer được cài các system chaincode và
sổ cái system đặc biệt Các chaincode hệ thống thu thập cấu hình mạng, kênh và cấuhình hệ thống bên dưới để vận hành máy ảo Fabric; chúng khác biệt với cácchaincode người dùng (user chaincode) chạy trong các docker container riêng biệt.Trên thực tế, các system chaincode cũng được đăng ký và triển khai trên các nút
Trang 33peer lúc khởi động, nhưng để đơn giản ta không vẽ trong hình Một số systemchaincode trong Hyperledger Fabric như sau:
• QSCC (Query System Chaincode): dành cho các truy vấn liên quan đến sổcái và Fabric
• CSCC (Configuration System Chaincode): giúp điều phối kiểm soát truy cập
• LSCC (Lifecycle System Chaincode): định nghĩa các quy tắc đối với kênh
• ESCC (Endorsement System Chaincode): dùng để bảo chứng các giao dịch.VSCC (Validation System Chaincode): để kiểm tra hợp lệ các giao dịch
Trang 34Hình 1.9 Mạng Fabric với các chaincode và sổ cái
Hình 1 10 là một mạng Fabric phức tạp hơn với nhiều kênh Kênh A gồmcác Peer của các tổ chức Org1 và Org2 tham gia, trong khi kênh B gồm các Peercủa Org2 và Org3 Với mỗi kênh riêng biệt, các tổ chức tham gia cùng kênh có thểchia sẻ các giao dịch hoặc thông tin với nhau một cách bí mật
Trang 35Hình 1.10 Một mạng Hyperledger Fabric phức tạp với nhiều kênh
Một chaincode có thể gọi một chaincode khác trên cùng kênh Ngoài ra, mộtchancode cũng có thể gọi hàm của một chaincode khác trên của kênh khác trong
trường hợp chaincode gọi được thực thi trên cùng một nút bảo chứng (endorsing peer) tham gia vào cả 2 kênh liên quan (ví dụ nút peer của Org2 trên Hình 1 10).
1.5.2.2 Sự đồng thuận trong mạng Hyperledger Fabric
Hyperledger Fabric sử dụng sự đồng thuận dựa trên biểu quyết cấp quyền vớigiả định rằng tất cả các bên tham gia trong mạng đều được tin tưởng một phần Tiếntrình đồng thuận có thể được chia thành ba pha [7] như sau:
Pha 1: Bảo chứng (Endorsement): Bước 1-3 trong Hình 1 11
Pha 2: Sắp xếp (Ordering): Bước 4-5.
Trang 36Pha 3: Kiểm tra hợp lệ (Validation) và Cam kết (Commitment): Bước 6.
Hình 1.11 Lưu đồ thực hiện một giao dịch trong mạng Hyperledger Fabric
Như trong Hình 1 11 mô tả lưu đồ các bước của một lệnh gọi giao dịchFabric:
Bước 1: Client tạo ra một đề xuất giao dịch (transaction proposal), ký số
vào đề xuất bằng chứng chỉ của User và gửi đề xuất giao dịch đến các nút bảo
chứng (endorsing peer) trên một kênh cụ thể.
Bước 2: Mỗi nút bảo chứng sẽ kiểm tra danh tính và quyền hạn của User trên
payload của đề xuất giao dịch Nếu hợp lệ, nút bảo chứng sẽ mô phỏng giao dịch
(transaction simulation), tạo ra một phản hồi đề xuất (endorsed proposal response)
gồm một tập read-write và ký chứng nhận phản hồi đó
Bước 3: Client nhận về các phản hồi đề xuất được chứng thực từ các nút bảo
chứng và kiểm tra
Trang 37Bước 4: Client gửi một giao dịch (transaction submission) được đính kèm đề
xuất và các phản hồi đề xuất đã được bảo chứng cho Orderer
Bước 5: Orderer xếp đặt các giao dịch nhận được, tạo ra một block mới chứa
các giao dịch mới đã được sắp xếp và ký vào block bằng chứng chỉ của nó
Bước 6: Orderer quảng bá block được tạo cho tất cả các nút Peer (cả nút bảo
chứng và nút cam kết) trên kênh liên quan Mỗi nút Peer phải đảm bảo rằng mỗigiao dịch trong block đã có đủ chữ ký của các nút bảo chứng cần thiết (cụ thể, đượcxác định từ chính sách bảo chứng của chaincode được gọi) Sau đó, nó kiểm tra
phiên bản (multi-version concurrency control - MVCC) để xác định tính chính xác
của từng giao dịch trong block nhận được Tức là mỗi nút Peer sẽ so sánh read-setcủa mỗi giao dịch với trạng thái dữ liệu hiện hành trong sổ cái của nó (world-state) Nếu qua được việc kiểm tra, giao dịch sẽ được đánh dấu là hợp lệ và world-state của mỗi nút Peer sẽ được cập nhật Ngược lại, giao dịch sẽ bị đánh dấu làkhông hợp lệ và không cập nhật trạng thái dữ liệu hiện hành Cuối cùng, block này
sẽ được thêm vào blockchain cục bộ của mỗi nút Peer, bất chấp giao dịch trong
block có thể hợp lệ hoặc không
Bước 7: Client sẽ nhận bất cứ các sự kiện đã đăng ký từ service EventHub.
1.5.2.3 Dịch vụ sắp xếp (ordering service) trong Hyperleger Fabric
Nút Orderer là một trong những thành phần quan trọng nhất trongHyperledger Fabric Nó hoạt động như một trung tâm phân phối các block giao dịchcho tất cả các nút peer trên một kênh liên quan Vì vậy có thể xem như Orderer làđiểm yếu nhất trong mạng Hyper Fabric Có ba cách xây dựng dịch vụ sắp xếp
là Solo, Kafka và Raft [8]
Trang 38Hình 1.12 Dịch vụ sắp xếp trong Hyperledger Fabric
Raft (từ phiên bản 1.4.1) - Raft là một dịch vụ sắp xếp chịu lỗi va chạm
(CFT) dựa trên việc triển khai giao thức Raft, việc triển khai Raft rất phù hợp đểđược sử dụng như một nút duy nhất cho cả phát triển và được mở rộng cho nhiềunút trong môi trường production
Kafka (hiện không dùng cho phiên bản 2.x) thường được sử dụng trong môi
trường production Với Kafka, chúng ta có thể thiết lập một cluster Kafka và một nhóm ZooKeeper để cung cấp dịch vụ sắp xếp có khả năng chịu lỗi sự cố CTF.
Mặc dù Kafka có thể cung cấp khả năng đồng thuận chịu lỗi sự cố CFTcho Orderer, tuy nhiên chỉ có một tổ chức kiểm soát toàn bộ dịch vụ sắp xếp (tổchức sáng lập ra mạng) Việc này có thể là vấn đề vì tổ chức đó có thể không đượctin cậy
Solo (hiện không dùng cho phiên bản 2.x) được khuyến nghị chỉ sử dụng
trong môi trường phát triển vì loại dịch vụ này chỉ là một tiến trình đơn phục vụ tất
cả các client; đây sẽ là điểm lỗi đơn nếu dùng trong môi trường triển khai
1.5.2.4 Hyperledger Fabric trong môi trường production
Trang 39Trong môi trường production, có nhiều thành phần liên quan cộng tác vớinhau Hình 1 .13 tóm tắt mô hình triển khai mạng Fabric trong môi trườngproduction [7] Ứng dụng Client có thể tương tác với mạng blockchain Fabric bằng
2 cách: qua Fabric SDK (bộ công cụ phát triển phần mềm) hoặc Fabric CLI (giaodiện dòng lệnh)
Fabric SDK cung cấp một tập chức năng phong phú thích hợp để dùng trong
môi trường production Thông thường, ứng dụng client (Client#1 trong hình) tương
tác với mạng Fabric bằng cách kết nối đến một server RESTful API sử dụng FabricSDK làm thư viện để giao tiếp với mạng blockchain Fabric SDK hiện hỗtrợ các ngôn ngữ Go, Node.js và Java Ngoài ra, các phiên bản Python
và REST SDK cũng đang được phát triển Fabric CLI thích hợp để sử dụng trong
chế độ phát triển hoặc bảo trì (Client#2 trong Hình 1 13).
Trong Fabric, CA thực hiện các tác vụ cấp chứng chỉ và quản lý ngườidùng Có hai cách để triển khai Fabric CA Cách thứ nhất là thiết lập Fabric CA màkhông có mở rộng LDAP Server Với cấu hình này, Fabric CA sẽ được sử dụng đểđăng ký user, xác thực user và cấp chứng chỉ cho user (user enrollment) Cách thứhai là thiết lập Fabric CA với mở rộng LDAP Server Với cấu hình này, Fabric
CA sẽ chỉ dùng để cấp chứng chỉ user và ủy quyền cho LDAP Server quản lý cáctác vụ đăng ký, xác thực user, thu hồi user v.v Cách thứ hai phù hợp để kếtnối Fabric CA với máy chủ AD, LDAP hoặc Radius hiện có của tổ chức
Trang 40Hình 1.13 Mạng Hyperledger Fabric môi trường production
LevelDB và CouchDB đều có thể dùng để chạy database chứa state cho sổ cái của nút peer Tuy nhiên CouchDB là tùy chọn tốt hơn cho môitrường production vì nó hỗ trợ nhiều tính năng như truy vấn JSON, lập chỉ mục(index), nhân bản dữ liệu, thuộc tính ACID v.v Trong khi đó, LevelDB chỉ hỗ trợmột số tính năng hạn chế
world-Để hỗ trợ đồng thuận CTF cho dịch vụ sắp xếp của Hyperledger Fabric,trong môi trường production thường mở rộng Orderer bằng một cluster Kafka-broker Để cluster Kafka hoạt động đúng, cần thiết có một cluster ZooKeeper đểphối hợp các tác vụ cục bộ giữa các Kafka-broker