BO GIAO DUC VA DAO TAO DAI HOC HUE
TRUONG DAI HOC KHOA HOC
VO MINH DUC
NGHIEN CUU NEN TANG
BLOCKCHAIN HYPERLEDGER FABRIC VA UNG DUNG TRONG VIEC KHAI THAC
DICH VU CHUYEN VUNG VIEN THONG CHUYEN NGANH: KHOA HOC MAY TINH
MA SO: 8 48 01 01
LUAN VAN THAC SI KHOA HOC
DINH HUONG NGHIEN CUU
NGUOI HUONG DAN KHOA HOC: PGS.TS NGUYEN MAU HAN
Thừa Thiên Huế, 2020
Trang 2
LOI CAM DOAN
Tôi xin cam đoan các nội dung trong luận văn với để tài “Nghiên cứu nền tang blockchain Hyperledger Fabric va tng dung trong việc khai thác dịch vụ chuyển vùng viễn thông” 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 PGS.TS Nguyễn Mậu Hân Các số liệu, hình ảnh, trích dẫn có nguồn gốc rõ ràng và tuân thủ quy định Luận văn không có sự sao chép tử các công trình nghiên cứu của người khác mà không ghi rõ trong tài liệu tham khảo Tôi xin chịu trách nhiệm về lời cam đoan này
Trang 3LOI CAM ON
Đầu tiên em xin gửi lời cảm ơn đặc biệt và sâu sắc tới thầy PGS.TS Nguyễn
Mậu Hân, khoa Công nghệ thông tin trường Đại học Khoa học - Đại học Huế đã
trực tiếp hướng dẫn tận tình, đồng thời truyền những kinh nghiệm quý báu đề em có
Trang 4MUC LUC DANH MỤC CÁC BẢNG DANH MỤC TỪ VIẾT TẮT wii DANH MỤC HÌNH VẼ, ĐÒ THỊ wiv MODAG ss.sueoseoastồittdititotHttRDOHOIOAOIOQOOGHSIOENLRNOORIAOEUtAHtONAOOUSUUEER 1 Chương 1 GIỚI THIỆU CÔNG NGHỆ BLOCKCHAIN -5 -2 3 1.1 DẪN NHẬP - - 1S 12 tỰ n1 HH 11211 n1 ng ga 3 1.2 KIẾN TRÚC CÔNG NGHỆ BLOCKCHAIN 5 5c 2s 2t re 4 1.2.1 Lớp dữ liệu 2S 222212112112112112112112122112121212121212222 xe 1.2.2 Lớp mạng 1.2.3 Lớp đồng thuận 1.2.4 Lớp hợp đồng 2 2 2221211211211 1121121212211 ra 7 1.2.5 Lớp dịch vụ 8 1.2.6 Lớp ứng dụng - is St nh Hy TH HE HH Hà nu 8 1.3 DAC DIEM VA PHAN LOAI BLOCKCHAIN 2c c2 se 9 1.3.1 Một số đặc điểm - 2-52 522122122112112121211212212222 xe 9
1.3.2 Phân loại các hệ thống blockchain ve 10
1.4 MOT SO CO CHE DONG THUAN S21 2 1E 2E 22 8 tre, 11
1.4.1 Proofof Work (PoW) 2 2 c1 2112 11101111111 111112 21111 11 1:42 Proof of Stake (POS)¡iiiiosixosiasisaairosiioisgi011108311593181051660551 12 1.4.3 Delegated Proof of Stake (DPoS) - cành nhe 12 1.4.4 Practical Byzantine Fault Tolerance (PBET) . ccc+ss°: 12
1.5 ỨNG DỤNG CỬA BLOCKCHAIN TRONG CÁC LĨNH VỤC 14
1;ÿ:l: Tài chính: ngân hàNBsss:zessrisssooetiriintitotboitssSIUEBRDIBIRSUHEDDI00ĐBSV8PSM 14
1.5.2 Chính phủ điện tử 52-22222222 2 2222222.ree 14 1.53 Ÿ HỂ Q.0 2n nn HH HH ng trung 14
1.5.4 Công nghiệp viễn thông .- 2 2.2222 2222221221212121212222 212 x6 14
1.6 TIỂU KÉT CHƯƠNG l 521 1S 1221212512122 12x rau 15
Chuong 2 NEN TANG BLOCKCHAIN HYPERLEDGER FABRIC
2.1 GIGI THIEU HYPERLEDGER FABRIC 21.1 86 cdi Chia $6.00 cccccccccccececsveccsceveeseesesveesevsussevevsisesevstssessestevevsesetenss 16
2.1.2 Hợp đồng thông minh 2222 2512112122122122121221212222 xe 17
Trang 5chức khác trên một kênh Để ngăn chặn điểm lỗi đơn, một tổ chức có thể có nhiều Anchor Peer Nhu duoc minh hoa trong Hinh 2.10, Peer #2 cua Org] va Peer #2 của
Org2 được cấu hình để làm Anchor Peer Client Ấ hoạt đông trên kénh - 5 ‘Org1: [P1, P2, P3], Lay danh sách các neer Org2: [P1, P2, P3, P4] ` i Org! - Peer #1 Org? - Peer #1 ‘1 Bong ba Í Đồng bộ ——, Ø ðngl:[Pl,P24] /———Ï—— 1 Đồng bộ ———— (rụ1 - Penr #2 Ỉ ~ Peer #2
(anchor Peet) {anchor Peer rut Eee
——+——— Ổ Orga: [P1, P2, P3, Pa] a" 7=
{ Đồng bộ { Đồng bỗ
— —
Orgi - Peer #3 | Org2 - Peer #3
Hinh 2.10 Khám phá các mút peer với hỗ trợ của Anchor Peer
Lưu đỗ từng bước khám phá peeer với sự hỗ trợ của Anchor Peer như sau: Các Peer thông thường định kỳ đồng bộ hóa với các Anchor Peer cùng tổ chức thông qua giao thirc gossip
Anchor Peer của Orgl định kỳ cập nhật danh sách cac peer đang hoạt động của mình gửi cho Anchor Peer của Org2 bằng giao thức gossip
Anchor Peer của Org2 cũng định kỳ cập nhật danh sách các peer đang hoạt động của mình gửi cho Anchor Peer của Org1 bằng giao thức gossip
Khi Client cần biết danh sách tất cả các peer đang hoạt động trên kênh, nó thực hiện yêu cầu truy vấn đùng Fabric SDK và gửi yêu cầu đến một trong số các nút Peer cùng tô chức
Nút Peer được truy vấn hồi đáp cho Client danh sách các peer đang hoạt động
Trang 6
3.4.3 Thué bao di chuyén ra nước ngoài
3.4.4 Ghi nhận chỉ tiết cuộc gọi và tính cước
3.4.5 Cảnh báo sử dụng vượt hạn mứỨcC - -.: cành rhhnryerrrryes
3.4.6 Thử nghiệm kịch bản gian lận chuyên vùng . .- 62 3.4.7 Nhận Xét LH HH HH nha 63
k0 309009cc 100 64
KÉT LUẬN VÀ HƯỚNG PHÁT TRIỂN - 555555555 S5< xe Sxecxesxerrerxers 65
Trang 7DANH MUC CAC BANG
Trang Bang 1.1 So sánh các loại blockchain cà c3 2E hinh nà ray 10
Bảng 1.2 So sánh các loại thuật toán đồng thuận cc c2 22222 14
Trang 8Chir viét tat BaaS BTF BTS CA CDR CFCA CFT CIBER CLI CSCC CSP DCH DPoS GGSN GSMA HLR HPMN HUR IMSI IRSF LSCC MSC MSISDN MSP NRTRDE PBFT PoA DANH MUC TU VIET TAT Chữ viết đầy đủ Blockchain-as-a-Service Byzantine Fault Tolerant Base Transceiver Station Certificate Authority Call Detail Records
Communications Fraud Control Association Crash Fault Tolerant
Cellular Intercarrier Billing Exchange Roamer Command Line Interface
Configuration System Chaincode Communication Service Providers Data Clearing House
Delegated Proof of Stake Gateway GPRS Support Node
Global System for Mobile Communications Association Home Location Register
Home Public Mobile Network High Usage Reports
International Mobile Subscriber Identity International Revenue Share Fraud Lifecycle System Chaincode Mobile Switching Center
Mobile Station International Subscriber Directory Number Membership Service Provider
Near Real Time Roaming Data Exchange Practical Byzantine Fault Tolerance Proof of Authority
Trang 9PoET PoS PoW QSCC SIM TAP VPMN VSCC Proof of Eplapsed Time Proof of Stake Proof of Work
Query System Chaincode
Subscriber Identification Module Transfer Account Procedure Visited Public Mobile Network Validation System Chaincode
Trang 10DANH MUC HiNH VE, DO THI
Trang Hinh 1.1 Kién tric 6 Iép ctia céng nghé blockchain .00.0 0.ccccccecceceeeeeeeeee 4 Hình 1.2 Cấu trúc chain va block :2:- 52:22: 222322211221223122122121 xe 5 Hình 1.3 Blockchain công nhận nhánh dài hơn c5 2c‡csxss+y 11 Hình I4 Các pha đồng thuận trong PBET 22 2 221221221221221222222222 xe 13 Hình 2.1 Ví dụ blockchain B bao gồm 4 bloek 2-2222 222222222222222222e2 18
Hình 2.2 Cấu trúc một giao dịch -.- 5-2 222212112112112122122122222 re 18
Hinh 2.3 Mang Fabric don giản với 2 tổ chức tham gia kênh A 19
Hình 2.4 Nút bảo chứng và nút cam kết 5-5225 2212212122122 xee 21
Hinh 2.5 Mang Fabric với các chaincode và số cái 52222 22222222 se 21 Hình 2.6 Một mạng Hyperledger Fabrie phức tạp hơn với 2 kênh 23
Hình 2.7 Lưu đỗ thực hiện một giao dịch trong mạng Fabiric 24
Hình 2.8 Mạng Fabric trong môi trường production sccccxcs++ 27 Hinh 2.9 Co chế phân phối block dùng các leader peer 2:2ss5¿ 28 Hình 2.10 Khám phá các nút peer với hỗ trợ của Anchor Peer 30
Hình 3.1 Ví dụ cuộc gọi thoại và dữ liệu khi chuyển VÙNG cà 34
Hình 3.2 Luồng xử lý thông tin cước cuộc gọi đến thuê bao roaming 35 Hình 3.3 Minh họa sử dụng hợp đồng chuyển vùng thông minh 40 Hình 3.4 Biểu đồ ngữ cảnh hệ thống khai thác chuyên vùng 42 Hình 3.5 Biểu đỗ use case 2 22c 12112212211211221211121222 re 43
Hình 3.6 Biểu đỗ lớp -2- 22 222222212112212112112112122222122222122222 re 44 Hình 3.7 Biểu đỗ tuần tự tao mot nha mang (CSP) o.oo cece cece cece teens 46
Hình 3.8 Biểu đồ tuần tự khởi tạo SIM thuê bao - : 47
Hình 3.9 Biểu đỗ tuần tự thuê bao di chuyển vùng phủ sóng 49
Hình 3.10 Biểu đồ tuần tự thuê bao khởi tạo một cuộc 0) 50 Hình 3.11 Biểu đồ tuần tự thuê bao kết thúc cuộc gọi và được tính cước 52
Hình 3.12 Mô hình cài đặt mạng Hyperledger Fabric - -s-+cs+¿ 33 Hình 3.13 Tổ chức các nút trong mô hình cài đặt - 52222222 22222 xe 34 Hình 3.14 Giám sát mạng Fabric trên công cụ Hyperledger Explorer 34 Hình 3.15 Liên kết giá trị băm giữa các block kế tiếp trong chuỗi khối 35
Trang 11Hinh 3.16 Hinh 3.17 Hinh 3.18 Hinh 3.19 Hinh 3.20 Hinh 3.21 Hinh 3.22 Hinh 3.23 Hinh 3.24 Hinh 3.25 Hinh 3.26 Hinh 3.27 Hinh 3.28 Hinh 3.29 Hinh 3.30
Chay script tao 3 nha mang dong thi cence 56
Block #5 được thêm vào chuỗi chứa 03 giao dịch tạo CSP 56
Chay script client kich hoat tao SIM thuê bao - 57
Block #6 được giám sát trên công cu Hyperledger Explorer 57
Thông tin chỉ tiết giao địch tạo SIM thuê bao mạng Vinaphone 58
'World-state của blockchain xem trên công cụ Fauxton 59
Thuê bao sim] di chuyển ra nước ngồi -©22 222222222 s5c2 59 Dữ liệu thuê bao sim] trong số cái -2 522222222 22222212112222222e2 60 Thuê bao siml thực hiện cuộc gọi đi ò 5 5c sec: 60 Thuê bao simL được cập nhật bản ghi chị tiết cuộc ĐO se sossrasyvsg 61 Thuê bao sim] kết thúc cuộc "90 61 Cuộc gọi được tính cước ngay sau khi kết thúc - 61
Trang 12MO DAU
Trong linh vue vién théng di déng, chuyén ving (roaming) quéc té 1a mét trong những dịch vụ mang lại đoanh thu rất cao Các công ty điện thoại di động ở các quốc gia thường có thỏa thuận chuyên vùng với nhau để cung cấp dịch vụ đến khách hàng Chuyển vùng quốc tế cho phép thuê bao của một mạng di động trong
nước khi đi ra nước ngoài vẫn sử dụng được các dịch vụ một cách bình thường
thông qua các mạng di động ở nước sở tại Tuy nhiên đây cũng là dịch vụ thường bị tấn công gian lận để chiếm đoạt doanh thu cước phí Theo số liệu khảo sát toàn cầu của Hiệp hội kiểm soát gian lận truyền thông CFCA!, vấn nạn gian lận chuyên vùng quốc tế đã gây thiệt hại cho các công ty viễn thông lên tới 38 tỉ USD mỗi năm”
Gian lận chuyển vùng diễn ra khi thuê bao đi động chuyền vùng và gây phát sinh cước phí lớn nhưng không có ý định thanh toán cho nhà mạng thường trú Kẻ gian lận có được các SIM card bằng nhiều cách như đánh cắp, nhân bản hoặc đăng ký thuê bao giả mạo và mang ra nước ngoài chuyên vùng để sử dụng cho các giao dịch có mức cước phí cao như gọi quốc tế hoặc truy cập các dịch vụ nội dung giá cao Nhà mạng thường trú không thu được cước phí của thuê bao gian lận nhưng vẫn phải chỉ trả doanh thu kết nối cho đối tác chuyển vùng
Hành vi gian lận chuyển vùng quốc tế lợi dụng thời gian trễ trong cơ chế trao đổi đối soát bản ghi chi tiết cuộc gọi giữa nhà mạng thường trú và nhà mạng tạm trú Bản ghi chỉ tiết của thuê bao chuyển vùng được ghi bởi nhà mạng tạm trú và sau một chu kỳ thời gian được tập hợp về một trung tâm thanh toán bù trừ (Clearing House) Trung tâm này chuyển file số liệu cho nhà mạng thường trú để thực hiện đối soát và tính cước, quy trình này có thể mất đến một tuần Như vậy khi nhà mạng
thường trú phát hiện được thuê bao gian lận để ngăn chặn thì thiệt hại đã khá lớn
1 CFCA: Communications Fraud Control Association
Trang 13Chống gian lận dịch vụ chuyển vùng là một trong những ưu tiên trong ngành
viễn thông di động và đây thực sự là một cuộc chiến chưa có hồi kết Hiệp hội GSM
đã đưa ra một số kỹ thuật và tiêu chuẩn nhằm rút ngắn khung thời gian trao đổi đữ liệu xuống còn 4 giờ đã giúp hạn chế bớt nhiều vụ gian lận lớn Tuy nhiên bất chấp sáng kiến này, nếu một nhóm gian lận dùng một cụm hàng chục thẻ SIM thì chúng vẫn có thể gây ra nhiều thiệt hại trong vòng 4 giờ
Vài năm gần đây, công nghệ blockchain 3.0 đã vượt khỏi biên giới của ngành
Tài chính - tiền tệ, thâm nhập đa dạng vào các lĩnh vực khác Blockchain mở ra cơ
hội cho ngành viễn thông 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 địch vụ nội dung, quản lý chuỗi cung ứng bằng
hợp đồng thông minh, đặc biệt là an ninh mạng và ngăn chặn gian lận Một số nền
tảng blockchain đã được xây dựng phát triển, trong đó Hyperledger Fabric được
Linux Foundation giới thiệu vào năm 2016 là một mã nguồn mở hỗ trợ việc ứng dụng
blockchain để thiết lập bộ khung số cái phân tán cấp doanh nghiệp
Là một cán bộ làm việc trong Tập đồn Bưu chính Viễn thơng Việt Nam
VNPT - một trong những doanh nghiệp cung cấp các dịch vụ Viễn thông và CNTT hàng đầu tại Việt Nam, tôi nhận thấy xu hướng triển khai bloekchain trong ngành viễn thông là tất yếu Một trong số các use-case thiết thực nhất hiện nay là giải quyết vấn nạn gian lận chuyển vùng quốc tế Chính vì vậy tôi chọn đề tài: “Nghiên cứu nên tảng blockchain Hyperledger Fabric và ứng dụng trong việc khai thác dịch vụ chuyển vùng viễn thông” nhằm mục đích tìm hiểu và đề xuất ứng dụng các kỹ thuật mới nhờ công nghệ blockchain mang lại, tăng cường hiệu quả trong việc quản lý khai thác địch vụ chuyền vùng viễn thông
Bố cục luận văn được chia thành 03 chương:
Chương 1: Giới thiệu công nghệ blockchain
Chương 2: Nền tảng blockchain Hyperledger Fabric
Trang 14Chương 1
GIOI THIEU CONG NGHE BLOCKCHAIN
Công nghệ blockchain được đê xuất đầu tién boi Satoshi Nakamoto vao ndém
2008, khi đồng tiền kỹ thuật số Bitcoin được Satoshi giới thiệu ra thể giới Tại thời
điểm đó người ta chỉ biết đến Bitcoin, còn công nghệ đứng sau nó thì chưa có tiếng vang như hiện tại Nhưng từ năm 2008 đến nay, blockchain liên tục phát triển và được cải tiễn trở thành một trong những công nghệ có tiểm năng ảnh hưởng rộng
lớn tới mọi ngành nghề, mọi lĩnh vực từ tài chính đến sản xuất kinh doanh, dịch
vũ Trong chương này học viên tìm hiểu về kiến trúc công nghệ và một số tính chất kỹ thuật của blockcham
11 DÃNNHẠP
Công nghệ blockchain không phải là một phát minh mới lạ mà là sự kết hợp giữa 3 loại công nghệ đã tổn tại qua nhiều năm: mạng ngang hàng [1], lý thuyết mật mã [2] và lý thuyết trò chơi [3] Blockchain được sử dụng trong việc lưu trữ thông tin trong các khối thông tin được liên kết với nhau và được quản lý bởi tất cả mọi
người tham gia hệ thống Blockchain được tạo ra để chống lại sự thay đổi dữ liệu
trong 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ối thông tin Thông tin khi được nhập vào trong chuỗi khối blockchain thì sẽ không thể thay đổi và chỉ được bổ sung thêm thông tin khi có sự đồng thuận của tất cả các bên trong hệ thống Các loại công nghệ được sử dụng trong blockchain là:
Mang ngang hàng: Một hệ thông mạng mà mỗi một nút trong mạng có vai
trò như nhau, tự quản lý tài nguyên của mình Một nút được xem như một client và
cũng là server dé lưu trữ bản sao dữ liệu
Mat ma hoc: St dung public key trong chữ ký số và giá trị hàm băm để đảm
bảo tính minh bạch, toàn vẹn và riêng tư
Lý 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ủ
Trang 1512 KIÊN TRÚC CÔNG NGHE BLOCKCHAIN
Kiến trúc công nghệ blockchain có thể được phân thành 6 lớp được thể hiện trong Hình 1.1 gồm: lớp dữ liệu, lớp mạng, lớp đồng thuận, lớp hợp đồng, lớp dịch vụ và lớp ứng dụng [4] Lớp Ứng dụng
Tài chính, Bảo mật, Y tế, loT, Chuỗi cung ứng, Cloud, Tín dụng, Tài
sản sổ, Xác minh sở hữu, Chia sẻ tài nguyên, Lưu trữ, Liên lac Lớp Dịch vụ Linux's Hyperledger IBM's Azure BaaS Lớp Hợp đồng Smart Contract Script Coding Cơ chế động viên Lớp Đồng thuận PoW PoS DPoS PBFT Lop Mang Mang P2P Cơ chế xác minh Giao thức broadcast Lớp dữ liệu
Data Block Timestamp Hàm băm Cấu trúc Chain Cây Merkle Mật mã hóa
Hình L1 Kiến trúc 6 lớp của công nghệ blockchain
Lớp dữ liệu và lớp mạng được coi là các lớp cấp thấp thực hiện việc tạo lập,
xác thực và lưu trữ dữ liệu Hai lớp nằm trên cùng của kiến trúc bao gồm các nền tảng dịch vụ và ứng dụng Các lớp đồng thuận và hợp đồng là các lớp trung gian giữa cấp dưới và cấp trên Lớp đồng thuận bao gồm các cơ chế đồng thuận giữa các
nút để thống nhất dữ liệu nào được đưa vào blockchain như Proof of Work (PoW),
Proof of Stake (PoS), Delegated Proof of Stake (DPoS) hoặc Practical Byzantine Fault Tolerance (PBFT) Lép hop đồng thường liên quan đến hợp đồng thông
Trang 161.2.1 Lớp dữ liệu
Lớp dữ liệu chủ yếu giải quyết các vấn đề về cách thức tổ chức đữ liệu trong các block và đóng gói các công nghệ cơ bản bao gồm tem thời gian, hàm băm, công nghệ mã hóa bất đối xứng và cấu trúc Chain, làm nên tảng cho các lớp bên trên [4] Block 11 Block 12
Block Header Block Header
H Previous Timestam| Previous Timestam
Block 10 Block's Hash p Block's Hash P
Merklet Tree's Root Merklet Tree's Root
Block Header Hash Hash
Block Body Block Body Block Body Data Length Data Length Data Data E.i A La Fal 7 \ Data 1 Data 2 Data 3 Data 4 Hũ-0 H01 H1-0 H1-1 HO H1 Merkle Tree's Root Hash
Hinh 1.2 Céu tric chain va block
Cấu trúc Chain được tạo thành từ một danh 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] Nhu minh hoa ở Hình 1.2, một
block bao gồm 2 phần header và body
Phan header của block thông thường sẽ bao gồm:
Trang 17e Timestamp: Xac dinh thoi gian tao 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ên blockchain và xảy ra khi nào
©_ A/erkle 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à đữ 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 xay ra trong luc 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 block
phả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 tả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ác
minh các khối Thuật toán băm được sử dụng để các thực block kể trước và xây
dự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óa thông tin, chữ ký số
1.2.2 Lớp mạng
Lớp mạng quản lý địa chỉ và định tuyến các gói tin giữa các bộ định tuyến khác nhau Mạng ngang hàng Peer-to-Peer (P2P) được tạo khi hai hoặc nhiều nút được kết nối và chia sẻ tài nguyên mà không cần thông qua một server nào khác Mỗi nút đều có thê truyền tải và xác minh đữ liệu [4]
Cơ chế xác minh: Kiểm tra tính toàn vẹn dữ liệu và đảm bảo tính chính xác và độ tin cậy của thông tin và dữ liệu được vận chuyển trong mạng Các nút có thể
tự do tham gia hoặc rời khỏi hệ thống blockchain mà không ảnh hưởng đến hoạt động bình thường cua blockchain
Giao thức broadcast: chịu trách nhiệm gửi thông điệp đến mọi nút trong
Trang 18cần truyền hai loại thông tin: thông tin tuong tac va théng tin block Mét qua trình broadcast gần như theo cấp số nhân cho phép thông tin được gửi trên toàn mạng trong vài giây hoặc vài phút Mỗi bản ghi tương tác hoặc hoặc block phải vượt qua bước kiêm tra để tiếp tục lan truyền và trả lại cho nút gửi để xác minh thông tin đã truyền; nếu không giao dịch bị loại bỏ và một thông điệp hủy được trả lại cho bên gửi
1.2.3 Lớp đồng thuận
Cơ chế đồng thuận là một cơ chế chịu lỗi dùng để đạt được thỏa thuận cần
thiết giữa các tiến trình phân tán hoặc hệ thống đa tác nhân [4] Các cơ chế được thiết kế để đảm bảo tính chính xác và nhất quán của thông tin được lưu trữ bởi tất cả các nút trong một sé cái phân tán Hệ thống quyết định càng phân tán thì hiệu suất đồng thuận càng thấp, nhưng độ thỏa mãn và ổn định của hệ thống càng cao và
ngược lại
Các cơ chế đồng thuận có khả năng loại bỏ các giao dịch mâu thuẫn hoặc không hợp lệ Hiện tại không có cơ chế đồng thuận hoàn hảo cho mọi trường hợp
mà chỉ có các giải pháp tối ưu trong từng kịch bản cụ thể Ví dụ PoW là thuật toán
đồng thuận được sử dụng bởi Biteoin Trước Bitcoin đã có vô số biến thể của các hệ
thống tiền tệ phi tập trung ngang hàng đã thất bại vì chúng không thể giải quyết vấn
để lớn nhất khi đạt được sự đồng thuận Vấn dé này được gọi là bài toán các vị
tướng Byzantine Các cơ chế đồng thuận của blockchain nhằm mục đích loại bỏ chủ yếu hai vấn đề đã biết với tiền kỹ thuật số (1) Giải quyết van dé chi tiêu 2 lần và (2) Giải quyết bài toán Byzantine
Một số cơ chế đồng thuận sẽ được trình bày thêm ở mục 1.4
1.2.4 Lớp hợp đồng
Lớp hợp đồng chủ yếu bao gồm các loại script code và thuật toán cần thiết cho hoạt động của hệ thống blockchain và các hợp đồng thông minh [4] Nó là các quy tắc logic hoặc thuật toán được xây dựng bên trong blockchain dé cho phép các
Trang 19Smart Contract: La cac hop đồng được viết thành mã máy tính hoạt động trên blockchain và chứa một bộ quy tắc, theo đó các bên tham gia hợp đồng thông minh đó đồng ý tương tác với nhau Nếu các quy tắc được xác định trước được đáp
ứng, thỏa thuận sẽ tự động được thi hành Mã hợp đồng thông minh tạo điều kiện, xác minh và thực thi đàm phán hoặc thực hiện thỏa thuận hoặc giao dịch
Cơ chế động viên: là các cơ chế khuyến khích dành cho các bên tham gia có được các lợi ích kinh tế nào đó khi cung cấp tài nguyên tính toán hoặc có đóng góp vào tiến trình giúp duy trì vận hành mạng blockchain
1.2.5 Lớp dịch vụ
Một số công ty công nghệ cung cấp các dịch vụ hạ tầng blockchain cho các ứng dụng lớp trên Blockchain-as-a-Service (BaaS) cho phép khách hàng thử các công nghệ mới trước khi chính thức áp dụng chúng đề cắt giảm chỉ phí và loại bỏ sự
phức tạp Chẳng hạn, Microsoft có dịch vụ blockchain trên Azure, IBM có dịch vụ
Blockchain Platform còn Amazon cung cấp AWS BaaS Lớp ứng dụng chủ yếu sử
dụng các dịch vụ cụ thể sẽ được phân định trong các ứng dụng Ví dụ BaaS là một
dịch vụ cho phép khách hàng tận dụng các giải pháp dựa trên đám mây để xây
dựng, lưu trữ và sử dụng các ứng dụng blockchain, smart contract cua riêng họ
trong khi nhà cung cấp dịch vụ đám mây sẽ lo việc đảm bảo cơ sở hạ tầng hoạt động
ồn định
1.2.6 Lớp tng dung
Trang 2013 DAC DIEM VA PHAN LOAI BLOCKCHAIN
1.3.1 Một số đặc điểm
Công nghệ blockchain đóng vai trò giống như một cuốn số cái ghi lại tất cả các giao dịch xây ra trong hệ thống và có các đặc điểm chính có thể kê đến [5]:
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 blockchain
thông thường đều có thể tham gia xác thực dữ liệu của họ Blockchain tạo thành
một mạng thông qua giao thức P2P Không giống như mạng tập trung, các nút trong mạng P2P vai trò như nhau và không có máy chủ trung tâm
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ó đã được
phát hành
Tinh minh bach: Blockchain dam bao tinh minh bach 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ên
blockchain 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ền truy 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 đữ 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
Tính bắt biến: Blockchain hoạt động theo nguyên tắc khơng thố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ột
block đượ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ói
Trang 211.3.2 Phân loại các hệ thống blockchain
Blockchain công cộng: tất cả nút tham gia có thé truy cập cơ sở đữ liệu, lưu trữ một bản sao và sửa đổi nó bằng cách cung cấp khả năng tính toán của chúng Các blockchain công khai được coi là phi tập trung hoàn toàn, với quyển kiểm sốt blockchain khơng nằm trong tay của bất kỳ cá nhân hoặc tổ chức nào Bitcoin là
một ví dụ về blockchain công khai
Blockchain riêng tư: sử dụng nội bộ trong một tô chức và chỉ các nút trong tổ chức đó mới có quyên truy xuất hoặc cập nhật đữ liệu Một blockchain riêng
được coi là một mạng tập trung vì nó được kiểm sốt hồn tồn bởi một tổ chức Blockchain tập đoàn (còn được gọi là blockchann lai): dữ liệu được mở công
khai cho một số tô chức cùng tham gia, nhưng không phải tất cả các nút tham gia
đều có quyền cập nhật Thay vì bất cứ ai thì chỉ một nhóm các nút được chọn trước
trên mạng mới được phép truy cập vào hệ thống blockchain này Blockchain tập đoàn được coi là “bán phi tập trung”
Blockchain công cộng còn được gọi là permissionless (không cần cấp quyền) Blockchain riêng và blockchain tập đoàn được gọi là permissioned, tức là cần phải được cấp quyển mới có thể truy cập So sánh tính chất 3 loại blockchain như ở Bảng 1.1 Bang 1.1 So sánh các loại blockchain
Thuộc tính Elcleehiait ar cong Blockeham tập doan Blockchain riêng tư
Thamigia ding =| qiredade themes | Motte eaemut Một tổ chức
thuận được chọn
a 3 Có thê công khai Có thể công khai Cho.plep age Cong Khai hoặc hạn chế hoặc hạn chế
Tính bắt biến Gnanhu khôngthể | œụ rộ ca mục giả mạo Có thể giả mạo
Hiệu suất Thấp Cao Cao
Tập trung Không Một phần Có
Tiến trình đồng Khơng cần cấp ¬- x Rong À
thuận aan Can cap quyén Can can cap quyén
Trang 22
1.4 MOT SO CO CHE DONG THUAN
Blockchain là môi trườ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ảo rằng tất cả các giao dịch được diễn ra một cách đáng tin cậy [Š] Về cơ bản, các thuật toán đồng thuận cần thực hiện được hai điều: (1) Đảm bảo rằng khối tiếp theo
trong blockchain là duy nhất và tin cậy; (2) Giữ cho các tác nhân bên ngoài không thê phá hỏng hệ thống
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 va tho mo 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 đầu bằ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ải
lẫ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út khá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án các giá trị băm được goi la cac miner | Nhánh ngắn | | I | —| us | I | | \ | Ba B2 B3 Nhanh dai | | | | 54 oF B5 | | | ! |
Hình 1.3 Blockchain céng nhận nhánh đài hơn
Trong mạng phi tập trung, có thê có nhiều nút tìm thấy giá trị zonce 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, hai
Trang 23nhánh cạnh tranh chắc chắn sẽ không cùng một lúc tao ra block tiép theo Trong
giao 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 như trong Hình 1.3
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ẽ it 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 tham
gia xác nhận block sẽ phải khóa một số tiền của họ làm cổ phan 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êm
và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ược củ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à duy
trì 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ông bằ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ác
nhận các giao địch Quyển biểu quyết của người nắm giữ token nhiều hay ít là dựa trê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)
PBFT 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 leađer) 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ách
Trang 24chuyể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út trung 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
Message | Pre-prepare | Prepare Commit Reply Replica ` | ING : : È f : Replica 1 \ \ | 9 Replica 2 \ \ Replica 3
Hình 1 4 Các pha đồng thuận trong PBFT
Các vòng đồng thuận PBFT được chia thành 4 pha như Hình 14: - Client giri yêu cầu đến nút chính (nút leader)
- Nut chinh (mút leader) phát yêu cầu đến tất cả các nút phụ (backup)
- Các nút (chính và phụ) thực hiện dịch vụ được yêu cầu và sau đó gửi lai tra 161 cho Client
- _ Yêu cầu được cung cấp thanh céng khi Client nhận được trả lời giống nhau từ (2m + 1) nút trong mạng trong đó m là số nút lỗi tối đa
Nut chinh (leader) được thay đổi trong mọi view (vòng đồng thuận PBFT) và có thê được thay thế bằng giao thức chuyển view nếu sau một khoảng thời gian được xác định trước mà không có nút leader phát yêu cầu đến các nút backup Nếu cần, số đông các nút trung thực có thê bỏ phiếu về tính hợp pháp của nút leader hiện tại và thay thế nó bằng nút leader tiếp theo trong đanh sách
Trang 25Bang 1.2 So sánh các loại thuật toán đồng thuận
PoW PoS DpoS PBFT
Tiêu thụ điện Cao Thấp Rat thấp Rat thấp
Số giao dịch /giây 7-30 30 - 173 2.3 - 2500 100 - 2500
Phí giao dịch Cao Thấp Thấp Rất thấp
Cấu trúc Phi tập trung Phi tập trung Tập trung Phi tập trung Sử dụng bởi Bitcoin Dash BitShare Stellar
1.5 UNG DUNG CUA BLOCKCHAIN TRONG CAC LINH VUC
1.5.1 Tài chính, ngân hàng
Chúng ta đã thấy sự phát triển mạnh mẽ của các loại tiền ảo cho phép giao dịch trực tiếp một cách tin cậy mà không cần bên trung gian Tiềm năng ứng dụng công nghệ Blockchain trong các tô chức tài chính, ngân hàng rất đa dạng và phong phú như: thanh khoản quốc tế, chống rửa tiền, bảo mật thông tin khách hàng 1.5.2 Chính phủ điện tử
Trong số những công nghệ nền tảng phát triển chính phủ điện tử, blockchain
hiện đang thu hút được nhiều sự quan tâm nhờ vào tính minh bạch, tin cậy và bảo mật dữ liệu, đặc biệt nó phù hợp trong việc cung cấp dịch vụ công trực tuyến cho
người dân, doanh nghiệp
1.5.3 Y tế
Blockchain có thể được khai thác trong quản lý chuỗi cung ứng y tế; tăng
cường tính minh bạch và tự động hóa trong các giao dịch khám chữa bệnh; xuất xứ
xét nghiệm lâm sàng; quản lý hồ sơ sức khỏe, bệnh án điện tử của người dân 1.5.4 Công nghiệp viễn thông
Các nhà cung cấp địch vụ viễn thông đang quan tâm đến công nghệ blockchain dé phát triển mô hình kinh doanh mới trong khi cải thiện các quy trình như chuyển vùng và quân lý danh tinh [6]
Phòng chống gian lận trong chuyển vùng: Việc áp dụng blockchain có khả năng giảm thiểu gian lận chuyển vùng thông qua chức năng hợp đồng thông minh
Trang 26Bằng cách sử dụng các mạng blockchain cấp phép, các thỏa thuận chuyển vùng
giữa các nhà khai thác sẽ trở nên minh bạch Theo kịch bản này, các nút được chỉ
định có thể đóng vai trò là trình xác nhận (người khai thác) để xác minh từng giao dịch phát sinh trên mạng
Quản lý danh tính và xác thực: Do tính chất phi tập trung của nó, blockchain có thể mang lại giá trị bố sung cho các ứng dụng quản lý danh tính, loại bỏ các khâu trung gian Ví dụ: Deutsche Telekom và SK Telecom đều đang sử dụng blockchain để xây dựng chương trình xác thực tên thật, xác minh và xử lý đăng ký SoftBank cũng đang làm việc trên một hệ thống nhận dạng an toàn, xuyên biên giới
Tiến trình chuyền đổi 5G: Khi các công ty viễn thông chuyên sang cung cấp dịch vụ 5G, blockchain cung cấp cơ hội để hợp lý hóa tiến trình chuyên đổi nay Dé cung cấp quyên truy cập chung mà 5G hứa hẹn, các nhà mạng sẽ cần xử lý các nút truy cập rời rạc và các cơ chế truy cập đa đạng Các quy tắc và thỏa thuận giữa các mạng khác nhau sẽ có dạng hợp đồng thông minh Nhờ sự linh hoạt này, các hợp
đồng tự thực hiện có thể kết nối các thiết bị với nhà cung cấp dịch vụ gần nhất đồng
thời đánh giá sự liên tục của kết nối và tính phí dịch vụ qua các nút truy cập
Kết nổi Internet vạn vật (IoT): IoT được dự báo sẽ tăng trưởng mạnh mẽ và
tiếp tục cách mạng hóa các ngành công nghiệp Tuy nhiên an ninh mạng là một vấn đề khi các thiết bị truyền đi thông tin nhạy cảm trực tuyến, luôn có khả năng nó rơi
vào tay kẻ xấu Tại đây, blockchain có thể tạo ra một môi trường an toàn hơn để
truyền đữ liệu bằng cách tạo các mạng tự quản ngang hàng an toàn cao
16 TIỂU KẾT CHƯƠNG 1
Trong chương 1, học viên tìm hiểu tổng quan về kiến trúc công nghệ Blockchain, các lý thuyết nền tảng là hàm băm và chữ ký số, cấu trúc dữ liệu block và chuỗi block Đồng thời tìm hiểu một số cơ chế đồng thuận phổ biến như PoW, PoS, DPoS hoặc và PBFT Chương này cũng tìm hiểu các lĩnh vực ứng dụng công
nghệ chuỗi khối tiêu biểu hiện nay, đặc biệt là với sự hỗ trợ linh hoạt của tính năng
hợp đồng thông minh
Trang 27Chương 2
NEN TANG BLOCKCHAIN HYPERLEDGER FABRIC
Bộ dự án Hyperledger được Linux Foundation ra mắt vào năm 2015 để thúc đẩy các công nghệ blockchain trong công nghiệp Thay vì tuyên bố một tiêu chuẩn blockchain duy nhất, họ khuyến khích cách tiếp cận hợp tác dé phát triển nhiều loại công nghệ blockchain khác nhau thông qua quy trình cộng đồng, mã nguồn mở Hyperledger Fabric la m6t trong số các đự án con blockchain trong Hyperledger nhắm tới phân khúc người dùng là các tổ chức, doanh nghiệp Trong chương này tập trung trình bày các khái niệm và cơ chế hoạt động của Hyperledger Fabrie 2.1 GIỚI THIỆU HYPERLEDGER FABRIC
Hyperledger Fabric thuộc loại blockchan cần được cấp quyển (permissioned) Các thành viên tham gia mạng Hyperledger Fabrec phải đăng ký qua một nhà cung cấp dịch vụ thành viên (MSP - Membership Service Provider) Hyperledger Fabric cũng cung cấp các tùy chọn plugable Dữ liệu số cái có thể
được lưu ở nhiều định dạ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ười tham 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 đó [7]
2.1.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ạng key-value (hiện tại cho phép tùy chọn đùng LevelDB hoặc CouchDB) Phần log giao dich ghi lai tất cả các giao dịch đưa đến giá trị hiện tại của world-state Log giao dich chi đơ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 282.1.2 Hợp đồng thông minh
Hợp đồng thông minh Hyperledger Fabric được viết thành chaincode và được một ứng đụng bên ngoài blockchain gọi ra khi ứng dụng đó cần tương tác với số cái [7] Trong hầu hết các trường hợp, chaincode chỉ tương tác với thành phần world-state database của sô cái chứ không phải nhật ký giao dịch Chaincode có thé được xây đựng bằng một số ngôn ngữ khác nhau như Go, Java, Node
2.1.3 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ững người tham gia mạng giữa các đoanh 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 dam bảo quyển riê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 cach nay, Hyperledger Fabric nhắm vào phân khúc đối tượng sử đụng là các tô chức, doanh nghiệp
2.1.4 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 Fabrie đó là hỗ trợ
nhiều giao thức đồng thuận có thể lựa chọn [7] Ví dụ, trong mộ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ăng thô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ống vẫn đạt được sự đồng thuận
một cách chính xác cho dù các thành phan khác có thể bị sự cố [12] 2.2 COCHE HOAT DONG CUA HYPERLEDGER FABRIC
2.2.1 Cau tric block va giao dich
Blockchain là một log giao dịch, tạo bởi các block liên kết Block được tạo thành từ bó các giao dịch, mỗi giao dịch có thể là một truy vấn hoặc một cập nhật số
cái [12] Trong ví dụ Hình 2.1, block đầu tiên là block genesys không có bất kỳ giao
Trang 29dịch nào Thay vào đó, nó chứa trạng thái cầu hình và khởi tạo của kênh Mỗi block có 3 phần chính: Blockchain Block Y I T +1 B0 [Ho | B1 [H1 | Block header DŨ D1 Block data — Giao dịch | MO | M1 Block metadata H2 nối chuỗi với H1
Hình 2 1 Vi du blockchain B bao gém 4 block
Block header gém cac trường: số hiệu block bắt đầu từ 0 và tăng dần; giá trị
băm của block hiện tại; giá trị băm của header block kể trước
Block Data: bao gồm một tập danh sách các giao dịch đã được sắp xếp Block Metadata: bao gém cac metadata nhuw: timestamp khi block duoc ghi, chứng chỉ số, public-key và chữ ký số của bên ghi block „JGiao dịch Header Chữ ký giao dịch Đề xuất giao dịch M1 N Đáp ứng giao dịch Các bảo chứng
Hình 2.2 Cầu trúc một giao dich
Trong mỗi giao địch lại có cấu trúc như Hình 2.2, gồm các trường chính: Header: bao gém mét sé metadata chu tén chaincode va phién ban
Chữ ký: chữ ký số của ứng dụng yêu cầu thực hiện giao dịch
Trang 30Đề xuất (Proposal): chứa danh sách các tham số đầu vào do ứng dụng đưa ra dé gọi một giao địch nào đó trong chaincode
Đáp tng (Response): kết quả đầu ra của chaincode, là tập đọc/ghi (RW-set) Các bảo chứng (Endorsememis): danh sách các phản hồi đề xuất giao dịch được tính toán từ các nút ngang hàng có trong chính sách chứng thực
2.2.2 Cầu trúc mạng Hyperledger Fabric Org! - CA Org2 - CA — Mạng hlockchain Fabric Org1 - Peer Org2 - Peer Client * —— Kênh A Founder - CA Orderer
Hinh 2.3 Mang Fabric don gian véi 2 tổ chức tham gia kênh A
Trong Hyperledger Fabric, các tô chức tham gia và liên lạc với nhau thông
qua kênh Kênh có thể được coi là một đường ham để liên lạc bảo mật Bat kỳ aI
khác không tham gia vào kênh sẽ không có quyển truy cập vào các giao dịch hoặc thông tin liên quan của kênh đó [8] Một tổ chức có thể tham gia vào nhiều kênh đồng thời Hình 23 mô tả một mạng Fabric đơn giản với hai tổ chức Org1 và Org2tham gia vào kênh A.Các phần tử trong mạng Fabric bao
gồm Peer, Orderer, CA và Client có vai trò như sau:
Trang 32Trong Hinh 2.5, so dé mang Fabric thể hiện thêm chaincode và số cái Các
nut Peer cia Org! va Órg2 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 được nê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ầu
hì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ác chaincode người dung (user chaincode) chay 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 peer lúc khởi động, nhưng để đơn giản ta không vẽ trong hình Một số system chaincode trong Hyperledger Fabric như sau:
* QSCC (Query System Chaincode): đành cho các truy vấn liên quan đến số cai va Fabric
* CSCC (Configuration System Chaincode): gitip diéu phéi kiém soat truy cap
* 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): dé kiểm tra hợp lệ các giao dịch Trong Hình 2.6 là một mạng Fabric phức tạp hơn với nhiều kênh Kênh A gồm các Peer của các tổ chức Orgl và Org2 tham gia, trong khi kênh B gồm các Peer củ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
Một chaincode có thể gọi một chaincode khác trên cùng kênh Ngoài ra, một
chancode 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 2.6)
Trang 33ove | 1 L Í[EE | Chaincodes ae } (Kênh B} ‘Client Founder - CA 7
Hinh 2.6 M6t mang Hyperledger Fabric phức tạp hơn với 2 kênh
2.2.3 Tiến trình đồng thuận trong mạng Fabric
Hyperledger Fabric sử dụng sự đồng thuận dựa trên biểu quyết cấp quyên với giả đị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ến trình đồng thuận có thê được chia thành ba pha như sau:
(1) Bao ching (Endorsement): Buéc 1-3 trong Hình 2.7
(2) Sap xép (Ordering): Bước 4-5
(3) Kiém tra hop 1é (Validation) va Cam két (Commitment): Bước 6
Hinh 2.7 mé ta luu dé cdc budc cia mét lénh goi giao dich Fabric [13]:
Trang 34Â_ Đệ trình giao dịch Client Phản hồi Mô phỏng 3 đề xuã at giao dịch = i Org2 - Peer 2 6 L Phân phối block Đề xuất giao dịch Founder - Orderer 5 L ———Dp Sắp xếp giao dịch Org1 - Peer 2 và tạo block Phản hồi " Ma prong đề xuất giao dịch 7` Chuyển sự kiện
Hình 2.7 Lưu đồ thực hiện một giao dich trong mang Fabric
Client tao ra một dé xuất giao dịch (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 (enđorsing
peer) trên một kênh cụ thể
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, tạo
ra một phản hồi dé xuat (proposal response) gdm một tập read-write và ký chứng nhận phản hồi đó
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
Client gửi một giao dich (request) được đính kèm để xuất và các phản hồi dé xuất đã được bảo chứng cho Orderer
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 đặt và ký vào block bằng chứng chỉ của nó
Trang 356 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ỗi giao địch trong block đã có đủ chữ ký của các nút bảo chứng cần thiết (cụ
thể, được xác định từ chính sách bảo chứng của chaincode được gọi) Sau đó,
nó kiểm tra phién ban (multi-version concurrency control - MVCC) dé xac
đị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-set củ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, bat chấp giao dich trong block có
thé hợp lệ hoặc không
7 Client sẽ nhận bất cứ các sự kiện đã đăng ky tir service EventHub
2.2.4 Dich vu sap dat (ordering service) trong Fabric
Nút Ordererlà một trong những thành phần quan trọng nhất trong Hyperledger Fabric Nó hoạt động như một trung tâm phân phối các block giao dịch cho tất cả các nút peer trên một kênh liên quan Vì vậy có thể coi Orderer là điểm yéu nhat trong mang Fabric Hyperledger Fabric v.1.4.4 hé tro ba loại dịch vụ sắp dat 1a Solo, Kafka va Raft (12)
Solo được khuyến nghị chỉ sử đụ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ụ tat ca cdc client; đây sẽ là điểm lỗi đơn nếu
dùng trong môi trường triển khai
Kafka 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 ciusfer Kaƒka và một nhóm ZooKeeper để cung cấp dịch vụ sắp đặt 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ố CFT cho Orderer, tuy nhiên chỉ có một tổ chức kiểm sốt tồn bộ dịch vụ sắp đặt (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 được tin cậy
Trang 36Raft - 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ều nút trong môi trường production Raft cũng có khả năng chịu lỗi sự cố CFT Việc triển khai Raft đơn
giản hơn so Với việc thiết lập các nút Kafka và linh hoạt hơn trong việc triển khai May mắn là dịch vụ sắp đặt Fabric được thiết kế là plugable Hiện tại, đồng thuận chịu lỗi byzantine BFT đang được phát triển Đồng thuận dựa trên BFT sẽ
cho phép các tổ chức tham gia mạng cùng kiểm soát dịch vụ sắp đặt, chống lại việc
hệ thống bị thao túng trong trường hợp có các tác nhân độc hại hoặc các nút bị lỗi
2.2.5 Hyperledger Fabric trong môi trường producfion
Trong môi trường production, có nhiều thành phần liên quan cộng tác với nhau Hình 2.8 tóm tắt mô hình triển khai mạng Fabric trong môi trường production [13] Ứng dụng Client có thể tương tác với mạng blockchain Fabrie bằng 2 cách: qua Fabric SDK hoặc Fabric CLI (giao diện dòng lệnh)
Fabric SDK cung cấp một tập chức năng phong phú thích hợp đề đùng trong môi trường production Thông thường, ứng dung client (Client#] trong hình) tương tac véi mang Fabric bang cach kết néi dén mét server RESTful API str dung Fabric SDK làm thư viện để giao tiếp voi mang blockchain Fabric SDK hién hỗ trợ cácngôn ngữGo, Node.jsvàlava Ngoài ra các phiên ban Python và REST SDK cũng đang được phát trién Fabric CLI thich hop dé str dung trong chế độ phát triển hoặc bảo tri (Client#2 trong Hình 2.8)
Trong Fabric, CA thực hiện các tác vụ cấp chứng chỉ và quản lý người
dùng Có hai cách để triển khai Fabric CA Cách thứ nhất là thiét lap Fabric CA ma
không có mở rộng LDAP Server Với cấu hình nay, Fabric CA sé duoc st dung dé đă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ỉ đùng để cấp chứng chỉ user và ủy quyền cho LDAP Server quản lý các
tác vụ đăng ký, xác thực user, thu hồi user v.v Cách thứ hai phù hợp để kết nỗi Fabric CA với máy chủ AD, LDAP hoặc Radius hiện có của tổ chức
Trang 37Orgi - LOAP Org? - LDAP Org3- LDAP
Server Server Server Cllent #1 ‘Org! - Fabric CA Org? - Fabric CA (Org3 - Fabric CA Foundor- est Org] - Peor CnuehDb 1e APIS: Fabric Blodkchain Network Founder - Fabric [al | 1 (2 uu Founder - Fabric
Founder = Founder = Katka
Zookeeper Cluster Cluster Se) net Founder - LDAP Server TH: Clicnt #2
Hinh 2.8 Mang Fabric trong méi truong production
LevelDB và CouchDB đều có thể dùng để chay database chtra world- 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ôi trườ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ế
Dé hỗ trợ đồng thuận CTF cho dich vu sắp đặt của Fabric, trong môi trường
production thường mở rộng Orderer bằng một cluster Kafka-broker Dé cluster
Trang 382.3 XỬ LÝ LƯU LƯỢNG MẠNG, DỊCH VỤ KHAM PHA VA VAN HANH
2.3.1 Xử lý lưu lượng mạng
Tắc nghẽn lưu lượng mạng là một trong những vấn đề tiềm tàng nhất trên
kênh Fabric, do có nhiều tổ chức tham gia kênh Mỗi tổ chức lại có thể sở hữu nhiều
nút peer Nếu số lượng tô chức tham gia và các nút peer liên quan tăng lên theo thời gian, Orderer sẽ bị quá tải trong việc phân phối các block giao dich cho moi nut peer trên mỗi kênh Vì vậy, Orderer dễ trở thành điểm lỗi đơn Đề cung cấp khả
năng chịu lỗi CFT cho Orderer, Hyperledger Fabric hién hỗ trợ hai loại địch vụ sắp dat CFT la Kafka va Raft Ngoai ra, mét số loại dịch vụ sắp đặt chịu lỗi Byzantine
(BFT) cũng đang được phát triển [9] 3 Đệ trình giao dịch Đề xuất Í giaodịh - ——————— ———— OF Org! - Peer#1 i if Founder - Ockece Org2 - Peer#1 ™ 9 Phan hoi — — Client Bp cage
dé xudt Phố biến mek
Phổ biến block 5 pia Soest
qua Gossip _
Org] - Peer#2 | é Org2 - Peer#2 (Leader Peer) | Phân phối block mới (Leader Peer)
Phé bién block qua 5 Phé bién block qua 5
giao thifc Gossip AE” giao thức Gossip
Org1 - Peer#3 Org2 - Peer#3
- +
Hình 2.9 Cơ chế phân phối block dùng các leader peer
Đề giảm bớt gánh nặng phân phối block cho nút Orderer , khái niệm “Leader Peer” được đưa ra cho tất cả các tổ chức tham gia [13] Mỗi tổ chức có thể cho phép lựa chọn nút peer nao trở thành Leader Peer Nhu trong Hinh 2.9, Peer #2 cla Org]
Trang 39va Peer #2 của Org2 duoc chi dinh la cac Leader Peer Luu đỗ các bước của cơ chế
phân phối block dung Leader Peer:
1 Client gửi đề xuất giao dịch đến các nút bảo chứng đã chọn
2 Mỗi nút bảo chứng tạo ra một phản hồi giao địch và gửi phản hồi được
chứng thực trở lại cho Client
3 Client giti giao dịch đính kèm các phản hồi được chứng thực cho Orderer
4 Orderer tao mot block cac giao dich duoc sắp đặt và chỉ phân phối cho các Leader Peer của các tô chức
tn Mỗi Leader Peer phổ biến block nhận được cho các Peer khác trong cùng tổ chức thông qua giao thức GossIp
Cơ chế phân phối block nói trên có thể giảm tải đáng kế cho Orderer Mỗi tổ chức có thể định nghĩa tĩnh nút peer nào trở thành Leader Peer Nếu không có peer nào được chỉ dinh tinh thi Hyperledger Fabric ciing có giải thuật lựa chọn động Leader Peer
2.3.2 Khám phá dịch vụ (Service Discovery)
Để gọi một giao dịch thay đổi trạng thái của số cái, một ứng dụng client phải biết một tập các nút bảo chứng cần thiết dé chứng thực để xuất giao dịch Từ phiên ban Fabric 1.2, dịch vụ khám phá được giới thiệu cho phép ứng dung client kham phá cấu hình thành viên và bảo chứng, tất cả các nút peer đang hoạt động và các
dịch vụ khả dụng khác Dịch vụ khám phá cung cấp một API dưới dang Fabric SDK
để Client có thể gửi truy vấn các thông tin cần thiết (ví dụ, liệt kê tat ca cdc peer
hoạt động trên một kênh) tới các nút peer thuộc cùng tổ chức Các nút peer khi được
truy vấn sẽ tính toán động các thông tin cần thiết và trả lời cho Client
Để dịch vụ khám phá hoạt động hiệu quả, một loại nút peer đặc biệt gọi là
Anchor Peer được câu hình cho mỗi tổ chức [13] Một trong những vai trò chính của Anchor Peer là phát hiện các nút peer Cụ thể, tất cả các nút peer có thể truy vấn Anchor Peer trong cùng tổ chức để phát hiện động tất cả các Peer khác thuộc các tô
Trang 40chức khác trên một kênh Để ngăn chặn điểm lỗi đơn, một tổ chức có thể có nhiều Anchor Peer Nhu duoc minh hoa trong Hinh 2.10, Peer #2 cua Org] va Peer #2 của
Org2 được cấu hình để làm Anchor Peer Client Ấ hoạt đông trên kénh - 5 ‘Org1: [P1, P2, P3], Lay danh sách các neer Org2: [P1, P2, P3, P4] ` i Org! - Peer #1 Org? - Peer #1 ‘1 Bong ba Í Đồng bộ ——, Ø ðngl:[Pl,P24] /———Ï—— 1 Đồng bộ ———— (rụ1 - Penr #2 Ỉ ~ Peer #2
(anchor Peet) {anchor Peer rut Eee
——+——— Ổ Orga: [P1, P2, P3, Pa] a" 7=
{ Đồng bộ { Đồng bỗ
— —
Orgi - Peer #3 | Org2 - Peer #3
Hinh 2.10 Khám phá các mút peer với hỗ trợ của Anchor Peer
Lưu đỗ từng bước khám phá peeer với sự hỗ trợ của Anchor Peer như sau: Các Peer thông thường định kỳ đồng bộ hóa với các Anchor Peer cùng tổ chức thông qua giao thirc gossip
Anchor Peer của Orgl định kỳ cập nhật danh sách cac peer đang hoạt động của mình gửi cho Anchor Peer của Org2 bằng giao thức gossip
Anchor Peer của Org2 cũng định kỳ cập nhật danh sách các peer đang hoạt động của mình gửi cho Anchor Peer của Org1 bằng giao thức gossip
Khi Client cần biết danh sách tất cả các peer đang hoạt động trên kênh, nó thực hiện yêu cầu truy vấn đùng Fabric SDK và gửi yêu cầu đến một trong số các nút Peer cùng tô chức
Nút Peer được truy vấn hồi đáp cho Client danh sách các peer đang hoạt động