Mục tiêu của đồ án là tìm hiểu phương pháp để xây dựng nên hạ tầngmạng Blockchain triển khai trên nhiều node, hiểu được phương pháp xâydựng hệ thống lưu trữ hồ sơ sức khỏe của bệnh nhân
Trang 1ĐẠI HỌC QUỐC GIA TP HỖ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA MẠNG MÁY TÍNH VÀ TRUYỀN THÔNG
THACH CẢNH NHỰT
PHAN ĐẶNG TRÚC QUYÊN
PHƯƠNG PHÁP CHIA SẺ BẢO MAT HỖ SƠ
BỆNH ÁN ĐIỆN TỬ FHIR BẰNG BLOCKCHAIN
E-HEALTHCARE RECORD SHARING USING FHIR AND BLOCKCHAIN
KỸ SƯ NGÀNH AN TOÀN THÔNG TIN
TP HỒ CHÍ MINH, 2021
Trang 2ĐẠI HỌC QUOC GIA TP HO CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA MẠNG MÁY TÍNH VÀ TRUYỀN THÔNG
THACH CẢNH NHUT - 16520902
PHAN DANG TRUC QUYEN - 16521013
KHOA LUAN TOT NGHIEP
PHUONG PHAP CHIA SE BAO MAT HO SO
BENH AN DIEN TU FHIR BANG BLOCKCHAIN
E-HEALTHCARE RECORD SHARING USING FHIR AND BLOCKCHAIN
KY SU NGANH AN TOAN THONG TIN
GIANG VIEN HUGNG DAN
TS PHAM VAN HAU
TP HO CHi MINH, 2021
Trang 3LOI CAM ON
Trong suốt quá trình nghiên cứu và hoàn thành khóa luận tốt nghiệp, chúng
tôi đã nhận được sự hướng dẫn, giúp đỡ nhiệt tình và các góp ý quý báu
cùng với những lời động viên từ thầy cô, các anh chị tại phòng Thí nghiệm
An toàn thông tin.
Đầu tiên, chúng tôi xin được cảm ơn chân thành đến thầy TS Phạm Văn
Hậu đã tận tình diu dắt, hỗ trợ chúng tôi trong quá trình nghiên cứu và
hoàn thành khóa luận này Thầy luôn nhiệt tình, cung cấp cho chúng tôicác tài liệu liên quan đến đề tài, cũng như định hướng nghiên cứu đề tài.Chúng tôi cũng xin gửi lời cảm ơn đến thầy ThS Phan Thế Duy và cácanh chị tại phòng thí nghiệm An toàn thông tin đã tạo điều kiện thuận lợi,
nhiệt tình góp ý và động viên chúng tôi hoàn thành khóa luận.
Ngoài ra, chúng tôi xin cảm ơn các thầy cô tại Trường Đại học Công nghệ
Thông tin, đặc biệt là các thầy cô khoa Mạng máy tính và Truyền thông
đã giảng dạy, cung cấp các kiến thức nền tảng giúp chúng tôi hoàn thành
khóa luận.
Cuối cùng chúng tôi cảm ơn Trường Đại học Công nghệ thông tin đã tạođiều kiện thuận lợi để chúng tôi hoàn thành khóa luận này
Trang 41.5 Đề cương khóa luận
2 TONG QUAN VÀ NEN TANG LÝ THUYET
œ œ œ ¬ ¬ 6ö ca a
Trang 5MỤC LỤC
2.2.1.1 Khániệm 8
2.2.1.2 Thành phan của mạng Blockchain 9
2.2.1.3 Nguyên lí hoạt động của mạng Blockchain 11
22.1.4 Đặcđiểểm cu 13 2.2.1.5 Cơ chế đồng thuận trong blockchain 14
2.2.2 Hyperledger trên nền tảng Blockchain 15
22/21 Giới thiệu Hyperledger 15
2.2.2.2 Framework của Hyperledger 16
2.2.2.3 Congcu 2 ee ee 18 2.2.2.4 KiếntÚC:z í ý? te ee 19 2.2.2.5 Lợiíchsử dụng Hyperledger 20
2.2.3 HyperledgerFabric 21
2.2.3.1 Khániệm 21
2.2.3.2 Crashfaulttolerance 23
2.2.3.3 Byzantine faulttolerance 23
2.2.3.4 Thành phan của Hyperledger Fabric 23
2.2.3.5 Ordering Service trên Hyperledger Fabric 24
2.2.3.6 Peer trén Hyperledger Fabric 27
2.2.3.7 Quy trình làm việc của Hyperledger Fabric 32
2.24 Chaincode Ặ Ặ Q QQ ee 33 225 FHIR Ặ Q Q Q Q Q eee eee 34 3 THIẾT KẾ HỆ THONG 36 3.1 Ytuéng ee 36 3.2 Hating 2 37
3.2.1 Membership Service Provider 37
3.2.2 Hyperledger Fabric Certificate Authority 39
3.2.2.1 Môhìnhthếtlập 42
Trang 6MỤC LỤC
3.23 OrderingService Q 42
3.24 SDK Qua 43 3.3 Môhìnhứng dụng ẶcẶSẶẶ ee 47
3.3.1 Mô hình kiến trúc hệ thống - 41
3.3.2 Sơ đồ giao tiếp ứng dụng với mạng Blockchain 49
3.3.3 Quá trình thực hiện giao dịch 50
3.3.4 Quá trình đăng ký người đùng 52
3.3.5 Quá trình thực thi chaincode để cấp quyền bệnhán 53
3.3.6 Quá trình chia sẻ dữ liệu 54
3.3.7 M6hinhuse-case 2 ee 56 3.3.7.1 Sơ đỖ use-Case Q.0 2 56 3.3.7.2 Đặc tả use-case cho từng chức năng 57
4 THỰC NGHIỆM VÀ ĐÁNH GIÁ HỆ THONG 69 41 Xây dựnghệthống cc.ằ 69 4.1.1 Xây dựng mang BlockChain 69
4.1.2 Cài đặt môi trường 70
4.1.2.1 Cấu hình và cài đặt Fabric CA server organization 70 4.1.2.2 Tạo genesis block và file channeltx 75
4.1.2.3 Tạo kênh trên peer và tham gia vào kênh 84
4.1.3 Viét chaincode tương tác với hệ thong §4
4.13.1 Tạobệnhnhân 84
4.1.3.2 Tạo người chuyên môn trong bệnh viện 87
4.1.3.3 Tạo hồ sơ bệnh án điệntử 88
4.2 Thực nghiệm và đánh giá hệthống 90
4.2.1 Thực nghiệm giám sáthệthống 90
4.2.2 Thực nghiệm ứng dụng và đánh giá bảo mật hệ thống 94
4.2.2.1 Các kịch bản thựcnghiệm 94
iv
Trang 75.2 Định hướng pháttriển ẶcẶ So 113
53 Kếtluận Q.2 HH ng sa 114
TÀI LIỆU THAM KHẢO 115
Trang 8Danh sách hình vẽ
21
2.2
2.3
24
2.5
2.6
27
2.8
2.9
2.10
211
3.2
3.3
3.4
3.5
3.6
3.7
3.8
Kiến trúc Hyperledger c 19
Thành phan của HyperledgerFabric 23
Kiến trúc Ordering Service Solo 26
Kiến trúc Ordering Service RafL - 26
Kiến trúc Ordering ServiceKafka 27
Peer nắm giữ sổ cái và smart contract - 28
Các loại peer trong mạng - 29
Leader pect Wa /(xấ"” 30
Anchor peer ee 31 Quy trình làm việc của mang Hyperledger Fabric 32
Dinh dang dữ liệu củaFHIR 35
Sơ đồ hoạt động Membership Service Provider 39
Hyperledger Fabric Certificate Authorty 41
Mô hình thiết lập cơ quan cấp chứng chi (certificate authority) [1] 42
Mô hình sử dung Fabric SDK trên MiddleWare 44
Mô hình sử dung Fabric SDK trên Desktop Application 45
Kiến trúc cơ bản của hệ thống 47
Kiến trúc chỉ tiết của hệthống - 48
So đồ giao tiếp ứng dụng với mạng Blockchain 49
vi
Trang 9DANH SÁCH HÌNH VẼ
3.9 Các giai đoạn của quá trình giao dịch 50
3.10 Quá trình đăng ký người dùng 52
3.11 Quá trình hoạt thực thi chaincode 53
3.12 Quá trình chia sẻ của dữ liệu 54
3.13 Sơ đồ use-case của hệthống - 56
3.14 Sơ đồ quyền kiểm soát bác sĩ, bệnh nhân, hồ sơ bệnh án 57
3.15 Luồng sự kiện use-case quản lý bác sĩ 58
3.16 Luéng sự kiện use-case quản lý bệnh nhân - 60
3.17 Luồng sự kiện use-case quản lý hồ sơ bệnh án điện tử 61
3.18 Luồng sự kiện use-case đăng nhập vào hệ thống 62
3.19 Luồng sự kiện use-case đăng ký người dùng 63
3.20 Luồng sự kiện use-case sửa thông tin người dùng 64
3.21 Luồng sự kiện use-case xem thông tin người dùng 65
3.22 Luồng sự kiện use-case xem danh sách bệnh nhân đã khám 66
3.23 Luéng sự kiện use-case yêu cầu cấp quyền chỉnh sửa hồ sơ 67
3.24 Luồng sự kiện use-case chỉnh sttahdsd 68
4.1 Dữ liệu cần để tạo genesis block và file channeltx 76
4.2 Hệ thống bệnh viện triển khai trên Kubernetes Rancher 90
4.43 Explorer giám sát bệnh viện ThủĐức 94
44 Đăng ký mới cho bệnhnhân 95
45 Thông báo đăng ký thànhcông 96
4.6 Chứng chỉ của người dùng sau khi đắng ký 96
4.7 Thông tin cá nhân của người dùng 97
4.8 Giao dich đăng ký bệnh nhân trên hệ thống 98
4.9 Truy vấn thông tin của bệnh nhân 98
4.10 Danh sách bệnh nhân được bác sĩ yêu cầu truy cập hồ sơ bệnhán 99
4.11 Bác sĩ chưa được cấp quyền xem thông tin bệnh nhân 99
vii
Trang 10DANH SÁCH HÌNH VẼ
4.12
4.13
4.14
4.15
4.16
4.17
4.18
4.19
4.20
4.21
Gửi yêu cầu cấp quyển 2 ee 100
Nhập thông tin cấp quyền 100
Danh sách yêu cầu chỉnh sửa hồ sơ - 101
Bệnh nhân chấp nhận yêu cầu của bácsĩ - 101
Bác sĩ thêm hồ sơ bệnh án cho bệnh nhân 102
Danh sách các bệnh án của bệnh nhân 102
Chỉ tiết hồ sơ bệnh án 103
Chia sẻ hồ sơ cho bác sĩ của các bệnh viện khác 104
Thông tin đánh giá hiệu suất trong file report.html 110
Mức độ tiêu tốn tài nguyên của các container 111
viii
Trang 11DANH MỤC TU VIET TAT
EHR Electronic Health Record
Trang 12TÓM TẮT
Trong khóa luận tốt nghiệp này, chúng tôi nghiên cứu về cách chia sẻ dữliệu hồ sơ bệnh án của bệnh nhân ung thư một cách an toàn giữa các bêntham gia Hồ sơ bệnh án của bệnh nhân lúc này được lưu trữ trên hệ thống
mạng phân tán Blockchain Chúng tôi tập trung nghiên cứu phương pháp
lưu trữ dif liệu hồ sơ bệnh án trên mạng Hyperledger Fabric và chia sẻ dit
liệu sức khỏe theo tiêu chuẩn FHIR
Mục tiêu của đồ án là tìm hiểu phương pháp để xây dựng nên hạ tầngmạng Blockchain triển khai trên nhiều node, hiểu được phương pháp xâydựng hệ thống lưu trữ hồ sơ sức khỏe của bệnh nhân theo cơ sở hạ tầngmạng Blockchain, từ đó có thể tự cài đặt lại và tạo một hệ thống lưu trữ
hồ sơ bệnh án hoàn chỉnh, cho phép bệnh nhân sở hữu bệnh án được toàn
quyền quyết định với quyền sử dụng hồ sơ của mình Ngoài ra, áp dụng tiêu
chuẩn FHIR cho bài toán chia sẻ dit liệu an toàn cho phép bệnh nhân chia
sẻ bệnh án của mình với người khác an toàn, bảo mật, tránh mat mát thôngtin Để làm được điều này, chúng tôi đã tiến hành tìm hiểu sau hơn vàoHyperledger — một mã nguồn mở của Blockchain, đặc biệt là Hyperledger
Fabric.
Trang 131.1 Lí do chọn đề tài
'Việc khám chữa bệnh tại các bệnh viện hiện nay còn nhiều bắt tiện, đó là tình trangviệc làm thủ tục để được khám chữa bệnh khá phức tạp, rườm rà, gây nên tình trạng quátải, đối với những người lần đầu tiên khám chữa bệnh, quá trình thực hiện sẽ tốn khánhiều thời gian Do đó, để cải thiện được vấn đề này, hồ sơ bệnh án điện tử Electronic
Health Record (EHR) được ra đời.
EHR - hồ sơ bệnh án điện tử, giúp lưu trữ dữ liệu, thông tin của bệnh nhân dưới
dạng kỹ thuật số, thay thế cho hồ sơ bệnh án giấy truyền thống Dữ liệu trong hồ sơ
bệnh án điện tử có thể được cập nhật một cách đồng bộ và thường xuyên, tự động hóacác chuẩn đoán của bác sĩ Qua đó, bác sĩ có thể truy xuất thông tin nhanh chóng, giúptiết kiệm thời gian khám chữa bệnh Tuy nhiên, dữ liệu hồ sơ bệnh án điện tử thườngkhông theo một khuôn mẫu nhất định, điều này gây khó khăn trong việc đồng bộ và tựđộng hóa Sự ra đời của FHIR là chìa khóa để giải quyết bài toán trên
Ngoài ra vẫn còn nhiều bất cập trong việc đảm bảo an toàn cho dữ liệu sức khỏe
Trang 14của bệnh nhân Cụ thể theo Luật Khám bệnh và chữa bệnh thì hồ sơ sức khỏe phải đượcgiữ bí mật Nhưng đối với hồ sơ bệnh án điện tử, không ai có thể đảm bảo được việc
thông tin không bị rò rỉ, không bị xâm nhập hoặc đánh cắp Đó là chưa kể đến việc
dữ liệu có thể bị chia sẻ ra bên ngoài Một hồ sơ bệnh án điện tử sẽ được quản lý bởimột bệnh viện (một tổ chức) Một bệnh nhân có thể khám bệnh ở nhiều bệnh viện khácnhau Điều đó dẫn đến sự cần thiết trong việc chia sẻ dữ liệu giữa tổ chức và tổ chức,
các nhân và tổ chức hoặc cá nhân và cá nhân Sự ra đời của công nghệ blockchain kèm
với những ưu điểm về mặt bảo mật có thể đáp ứng các yêu cau trên
12 Mục dich
* Nghiên cứu phương pháp triển khai một mạng blockchain sử dụng hyperledger
fabric Sau đó thực hiện viết chaincode giúp tương tác với hệ thông blockchain
để tạo và lưu trữ các hồ sơ bệnh án điện tử xuống sổ cái.
* Tạo ứng dụng giao tiếp với chaincode đã viết thông qua Fabric SDK
+ Ap dụng chuẩn FHIR để chia sẻ dữ liệu hồ sơ bệnh án điện tử qua lại giữa các
đối tượng
* Mở rộng hệ thống chạy trên nhiều node bằng cách sử dụng Kubernetes Rancher
* Đánh giá được hiệu năng và độ bảo mật của hệ thống
1.3 Đối tượng
Hồ sơ bệnh án điện tử của bệnh nhân bị ung thư
w
Trang 151.4 Phạm vi nghiên cứu
Xây dựng hệ thống lưu trữ bảo mật hồ sơ bệnh án điện tử của bệnh nhân khámchữa bệnh ung thư trên nền tảng công nghệ Blockchain và chia sẻ hồ sơ theo tiêu chuẩnFHIR Hệ thống có thể quản lý truy cập của các người dùng trong hệ thống, quản lýthay đổi hồ sơ bệnh án Cho phép chia sẻ hồ sơ bệnh án giữa các cá nhân, tổ chức trong
hệ thống Người dùng có thể theo dõi và thao tác với hồ sơ bệnh án điện tử thông qua
ứng dụng.
1.5 Dé cương khóa luận
Chương 1: Trình bay lí do lựa chọn dé tài xây dựng hệ thống lưu trữ bảo mật và chia
sẻ hồ sơ bệnh án điện tử theo FHIR bằng Blockchain Mục đích, đối tượng và phạm vinghiên cứu đề tài
Chương 2: Tổng quan và nền tảng lý thuyết Phân tích và đánh giá các nghiên cứuliên quan đến đề tài đã thực hiện, đưa ra các van dé còn tồn tại trong việc xây dựng hệthống, từ đó định hướng nghiên cứu và phát triển đề tài để giải quyết các vấn đề còn tồntại Đưa ra khái niệm cơ bản về các công nghệ sử dụng để xây dựng hệ thống, cách thức
hoạt động, đặc điểm chính, ứng dụng cũng như những lợi ích khi sử dụng công nghệ
tích hợp vào hệ thống Mô tả về Hyperledger Blockchain, giới thiệu về HyperledgerFabric, từ đó đưa ra lí do chọn Hyperledger áp dụng vào hệ thống
Chương 3: Trình bày về thiết kế mô hình mạng Blockchain để xây dựng nên hệ
thống quản lý hồ sơ bệnh án điện tử
Chương 4: Thực nghiệm và đánh giá hệ thống Triển khai hệ thống và đánh giá hiệusuất hoạt động của hệ thống
Trang 16Chương 5: Kết luận về những gì đã làm được và chưa làm được của khóa luận, đưa
ra những khó khăn trong quá trình thực hiện Định hướng phát triển cho tương lai
Trang 17Chương 2
TONG QUAN VÀ NEN TANG LÝ
THUYET
2.1 Tổng quan
2.1.1 Các nghiên cứu trên thị trường
Công nghệ blockchain đã ngày càng được áp dụng rộng rãi cho nhiều lĩnh vực, baogồm y tế, nông nghiệp, logictis, tài chính, tiền tệ, Đối với y tế, blockchain đượcxem như công nghệ giúp lưu trữ bảo mật hé sơ bệnh án của bệnh nhân, giúp chia sẻ hồ
sơ y tế giữa các tổ chức y tế với nhau mà vẫn đảm bảo được tính bảo mật và riêng tư.Trong vòng vài năm qua, đã có không ít các nghiên cứu về blockchain được ứng dụng
trong y tế Cụ thể như sau:
5 B4HEALTH - An architecture model for personal health records with HL7
FHIR and Hyperledger Fabric: Nghiên cứu này đã triển khai một mang blokchain
sử dụng nền tảng Hyperledger Fabric (sử dụng công cụ Hyperledger Composer
Trang 18để khởi tạo mạng blockchain) trên 1 máy ảo Ubuntu 2 CPUs Intel(R) Core (TM)
i5-7300U CPU 2.60GHz với 4GB RAM Ngoài ra, nghiên cứu tập trung vào các
khía cạnh nội bộ của HIS, đặc biệt là về cách chuyển đổi dữ liệu EHR hiện tại từbat kỳ tiêu chuẩn dữ liệu sức khỏe nào sang HL7 FHIR [2]
+ Secure and Trustable Electronic Medical Records Sharing using Blockchain:
Nghiên cứu dé xuất các kịch ban ứng dung blockchain để giải quyết vấn dé nhưchăm sóc bệnh nhân ban đầu, kết nối những người chăm sóc sức khỏe với nhau
và tổng hợp dữ liệu nhằm mục đích nghiên cứu Ngoài ra, nghiên cứu còn đề
xuất phương pháp chia sẻ dữ liệu giữa bệnh nhân và bác sĩ sử dụng mã hóa bất
đối xứng [3].
2.1.2 Van đề và giải pháp
2.1.2.1 Van đề
Thách thức lớn nhất mà các hệ thống chăm sóc sức khỏe dang phải đối mặt trên
toàn thế giới là làm thế nào để chia sẻ các dữ liệu y tế với các bên liên quan đã biết
và chưa biết để phục vụ cho các mục đích khác nhau đồng thời vẫn đảm bảo được tínhtoàn vẹn dữ liệu và bảo vệ sự riêng tư của bệnh nhân, nghĩa là hồ sơ bệnh án của bệnh
nhân không bị làm giả, cũng như không bị người khác xem trộm khi không được phép.
Ngoài ra các hệ thống lưu trữ hồ sơ bệnh án điện tử hiện nay được triển khai chỉtrên một máy Việc triển khai trên một máy không thỏa mãn yêu cầu phân tán dữ liệucủa mạng blockchain Dữ liệu lưu trữ trên một máy mang nguy cơ mat mát thông tinkhi bị tấn công khá cao
Trang 192.1.2.2 Giải pháp
Giải pháp được đưa ra ở đây là bệnh nhân sẽ là người tự kiểm soát việc những ai
được phép xem hỗ sơ bệnh án của họ, những ai không được phép xem, những nội dung
nào sẽ được chia sẻ và ngược lại Nghia là bệnh nhân sẽ có toàn quyên sở hữu và quyết
định đối với hồ sơ bệnh án điện tử của riêng họ
Sử dụng Kubernetes Rancher để triển khai mở rộng hệ thống ra nhiều node Cùng
với đó, bệnh nhân có thể chia sẻ dữ liệu, hồ sơ khám chữa bệnh cho bác sĩ hoặc bệnh
viện theo tiêu chuẩn FHIR
2.2 Nền tang lý thuyết
2.2.1 Blockchain
2.2.1.1 Khái niệm
Blockchain hoạt động như một cuốn sổ cái công cộng, mọi thông tin liên quan
đến tài sản trên mạng đều sẽ được ghi lại và không thể thay đổi hay xóa bỏ Từ đó
Blockchain ngày càng được ứng dụng rộng rãi trong nhiều lĩnh vực: kinh tế tài chính,
giáo dục, nông nghiệp, công nghiệp, lĩnh vực giải trí, y tế, giáo duc
Blockchain còn được gọi là Công nghệ Sổ cái phân tán (Distributed Ledger Technology),trong đó các dữ liệu được lưu trữ và chia sẻ dưới dạng các khối thông tin (block) Các
khối được kết nối với nhau theo dạng danh sách liên kết dưới dạng mã hóa SHA256
Mã hóa của một khối bao gồm địa chỉ của khối trước và dữ liệu của chính khối đó
nên khi một khối được thêm vào, nó không thể thay đổi cũng như tái sắp xếp Thông
tin trong blockchain không thể bị thay đổi và thông tin mới cần phải được sự đồng
thuận của tất cả các thành viên trong mạng trước khi được thêm vào cơ sở dữ liệu của
Trang 20blockchain Những người tham gia vào hệ thống mạng chịu trách nhiệm về việc phê
duyệt các giao dịch và giám sát các thông tin được thêm vào mạng Blockchain bằng
cách giải quyết các công thức tỉnh vi với sự trợ giúp của máy tính
Các khối thông tin hoạt động độc lập và có thể mở rộng theo thời gian, từ đó cáckhối được quản lý bởi những người tham gia hệ thống thay vì có một cơ quan riêng lẻ
như nhà nước hay ngân hàng trung ương hiện nay.
Các mạng blockchain có thể là mạng riêng tư với các thành viên bị hạn chế tương
tự như một mạng intranet, hay công cộng giống như mạng internet mà bất kỳ ai cũng
có thể truy cập được Dù là blockchain nào đi nữa thì đều là sổ cái thời gian thực củacác hồ sơ được lưu trữ dưới hình thức phân tán, ngang hàng, độc lập với bất kỳ cơ quan,
tổ chức Từ đó làm tăng cường độ an toàn, minh bạch cũng như sự ổn định, giảm thiểuchỉ phí và các lỗi do con người gây ra Điểm đặc biệt của blockchain khiến nó có thểlàm được như vậy đó chính là mọi hồ sơ hay bản ghi đều được mã hóa và gán nhãn thờigian cho nó, đồng thời người dùng chỉ có thể truy cập và thao tác trên khối mà họ sở
hữu thông qua khóa riêng tư.
Điểm khác biệt của Blockchain với so với các công nghệ khác là cơ sở dữ liệu được
lưu trữ phân tán thành nhiều nơi được gọi là các nút chứ không lưu trữ tập trung Cácnút này đều hoạt động ngang hàng Vì vậy mỗi khi có thay đổi phải có sự đồng thuậncủa tất cả các nút
2.2.1.2 Thanh phan của mang Blockchain
Blockchain bao gồm ba khái niệm quan trọng: khối, nút va thợ đào
* Khối Mỗi chuỗi đều bao gồm nhiều khối và mỗi khối có ba phan tử cơ bản:
o Dữ liệu trong khối.
Trang 21© Một số nguyên 32 bit được gọi là nonce Nonce được tạo ngẫu nhiên khi
một khối được tạo, sau đó tạo ra một giá trị băm (hash) của tiêu đề khối
(block header).
© Giá trị băm là một số 256-bit được kết hợp với số nonce Nó phải bắt đầuvới một số lượng lớn các số 0 (nghĩa là cực kỳ nhỏ)
Khi khối đầu tiên của một chuỗi được tạo, một số nonce tạo ra hàm băm mật mã
Dữ liệu trong khối được coi là đã ký và mãi mãi gắn liền với nonce và giá trị băm
trừ khi nó được khai thác.
Thợ mỏ (Miner)
Người khai thác tạo ra các khối mới trên chuỗi thông qua một quá trình được gọi
là thợ mỏ.
Trong một chuỗi khối, mỗi khối đều có hàm băm riêng biệt của nó, nhưng cũng.
tham chiếu đến hàm băm của khối trước đó trong chuỗi, vì vậy việc khai thácmột khối không dễ dàng, đặc biệt là trên các chuỗi lớn
Các thợ mỏ sử dụng phần mềm đặc biệt để giải quyết vấn đề toán học vô cùng
phức tạp về việc tìm ra một nonce tạo ra một hàm băm được chấp nhận Bởi vì
nonce chỉ có 32bit và băm là 256, có khoảng bốn tỷ tổ hợp nonce-hash có thểđược khai thác trước khi tìm được giá trị thích hợp Khi điều đó xảy ra, nhữngngười thợ mỏ được cho là đã tìm thấy "số nonce vàng" và khối của họ được thêm
vào chuỗi
Thực hiện thay đổi đối với bất kỳ khối nào trước đó trong chuỗi yêu cầu khai
thác lại thì không chỉ khối đó thay đổi, mà tat cả các khối tiếp theo cũng thay đổi
theo Đây là lý do tại sao việc thao túng công nghệ blockchain cực kỳ khó khăn.
Hãy coi đó là "sự an toàn trong thuật toán" vì việc tìm ra các nonce vàng đòi hỏi
một lượng lớn thời gian và khả năng tính toán khổng lồ
10
Trang 22Khi một khối được khai thác thành công, sự thay đổi được chấp nhận bởi tất cảcác nút trên mạng và người khai thác được thưởng về mặt tài chính.
Vi các blockchains là minh bạch, mọi hành động trong sổ cái có thể được kiểm
tra và xem dễ dàng Mỗi người tham gia được cấp một mã số nhận dạng bao gồm
cả chữ và số duy nhất dùng để hiển thị các giao dịch của họ.
'Việc kết hợp thông tin công khai với hệ thống kiểm tra và cân bằng giúp blockchainduy trì tính toàn vẹn và tạo sự tin tưởng giữa người dùng Về cơ bản, blockchain
có thể được coi là khả năng mở rộng của sự tin tưởng thông qua công nghệ
2.2.1.3 Nguyên lí hoạt động của mang Blockchain
+ Nguyên ly mã hóa
Hệ thống blockchain được thiết kế theo cách không yêu cầu sự tin cậy và bảo
đảm bởi độ tin cậy có được thông qua các hàm mã hóa toán học đặc biệt Dữ liệu
sẽ được bảo vệ bằng một phương pháp mã hóa đặc biệt đó là sử dụng một cặpkhóa bảo mật duy nhất: khóa riêng tu (private key) và khóa công khai (public
key).
Nếu một thông điệp được mã hóa bằng một khóa công khai cụ thể thì chỉ chủ
11
Trang 23sở hữu của khóa riêng tư là một cặp với khóa công khai này mới có thể giải mã
và đọc nội dung thông điệp Khi mã hóa một yêu cau giao dich bằng khóa riêng
tư, chủ sở hữu sẽ tạo ra một chữ ký điện tử được các máy tính trong mạng lưới
blockchain sử dụng để kiểm tra chủ thể gửi và tính xác thực của giao dịch Chữ
ký này là một chuỗi văn bản và là sự kết hợp của yêu cầu giao dịch và khóa riêngcủa chủ sở hữu Nếu một ký tự đơn trong thông điệp yêu cầu giao dịch này bịthay đổi thì chữ ký điện tử sẽ thay đổi theo Vì thế, hacker khó có thể thay đổiyêu cầu giao dịch hoặc thay đổi nội dung đang gửi
Quy tắc sổ cái
Mỗi nút trong blockchain đều dang lưu giữ một bản sao của sổ cái Do vậy, mỗinút đều biết thông tin dữ liệu được lưu trữ Hệ thống blockchain chỉ ghi lại mỗigiao dịch được yêu cầu chứ không hề theo dõi dữ liệu
Nguyên lý tạo khối
Các giao dịch sau khi được gửi lên trên mạng lưới blockchain sẽ được nhóm vào
các khối và các giao dịch trong cùng 1 khối (block) được coi là đã xảy ra cùngthời điểm Các giao dịch chưa được thực hiện trong 1 khối được coi là chưa đượcxác nhận Mỗi nút có thể nhóm các giao dịch với nhau thành một khối và gửi nóvào mạng lưới như một hàm ý cho các khối tiếp theo được gắn vào sau đó
Để được thêm vào blockchain, mỗi khối phải chứa một đoạn mã đóng vai trò như một đáp án cho một vấn đề toán học phức tạp được tạo ra bằng hàm mã hóa băm
không thể đảo ngược
“Thêm khối vào mang
Để một block — khối thông tin được thêm vào Blockchain, phải có 4 yếu tố:
o Phải có giao dịch: Phải có hoạt động, giao dịch trên mạng tạo ra các
transaction.
12
Trang 24© Giao dịch đó phải được xác minh: mọi dữ liệu trong giao dịch đều phải
được chứng thực và ghi lại vào log.
© Giao dịch đó phải được lưu trữ trong block: Người dùng có thể xem lại lich
sử giao dịch bất cứ lúc nào
© Block đó phải nhận được hash (hàm chuyển đổi một giá trị sang giá trị
khác): chỉ khi nhận được hash thì một block mới có thể được thêm vào
blockchain.
2.2.1.4 Đặc điểm
Blockchain có các đặc điểm nổi bật sau:
» Tính minh bạch: có thể nói đây là một trong những đặc điểm nổi bật nhất Tat
cả mỗi thông tin được lưu trữ, truyền tải và xử lý trong hệ thông blockchain, đều
được thể hiện một cách minh bạch, rõ ràng nhất, không thể giả mạo.
* Tinh bat biến: dữ liệu trong Blockchain không thể sửa (có thể sửa nhưng sẽ để
lại dấu vết), không bị phá vỡ và sẽ lưu trữ mãi mãi Do đó, khi truy xuất những.
thông tin về giao dịch của mình hay của người khác (bao gồm ngày, giờ, chỉ tiết
về giao dịch .) sẽ không bao giờ phải lo ngại về sự thiếu chính xác của dữ liệu
5 Đặc tinh ẩn danh: trọng tâm trong việc bảo vệ sự riêng tư của blockchain chính
là khả năng ẩn danh người dùng Đặc tính này, sẽ giúp bạn có thể giao dịch mộtcách an toàn, bảo mật mà không cần phải lo ngại về người khác biết được danh
tính của mình.
* Bao mật: Các thông tin, dit liệu trong Blockchain được phân tán và an toàn tuyệt
đối Minh bạch: Ai cũng có thể theo dõi dữ liệu Blockchain đi từ địa chỉ này tớiđịa chỉ khác và có thể thống kê toàn bộ lịch sử trên địa chỉ đó
Trang 25* Hợp đồng thông minh: là hợp đồng kỹ thuật số được nhúng vào đoạn code
if-this-then-that (IF ), cho phép chúng tự thực thi mà không cần bên thứ ba.
* Rút ngắn được thời gian và tiết kiệm chi phí: khi ứng dụng blockchain vào giao
dịch, với hợp đồng thông minh (smart contract) người giao dịch và đối tác của họ
sẽ là người trực tiếp thực hiện giao dịch và hệ thống trên blockchain sẽ là ngườixác nhận giao dịch, mà không cần tốn thêm chỉ phí, thậm chí là còn tiết kiệmđược cả về thời gian giao dịch
2.2.1.5 Cơ chế đồng thuận trong blockchain
Cơ chế đồng thuận trong Blockchain có thể hiểu như cách thức mà mọi người quản
lý trong hệ thống blockchain có thể đồng ý cho một giao dịch xảy ra trong hệ thống.
Dưới đây là các loại cơ chế đồng thuận phổ biến trong blockchain:
* Proof of Work (Bằng chứng Công việc): Day là cơ chế đồng thuận phổ biến nhất,được dùng trong Bitcoin, Ethereum, Litecoin, Dogecoin và hầu hết các loại tiền
mã hoá Đây là cơ chế đồng thuận tiêu tốn khá nhiều điện năng
* Proof of Stake (Bằng chứng Cổ phan): Day là cơ chế đồng thuận phổ biến trong
Decred, Peercoin và trong tương lai là Ethereum và nhiều loại tiền mã hoá khác
Cơ chế đồng thuận này phân cấp hơn, tiêu hao ít năng lượng và không dễ gì bị
de doa.
* Delegated Proof-of-Stake (Uy quyền Cổ phan): Day là cơ chế đồng thuận phổbiến trong Steemit, EOS, BitShares Cơ chế đồng thuận này có chỉ phí giao dịchrẻ; có khả năng mở rộng; hiệu suất năng lượng cao Tuy nhiên vẫn một phan hơihướng tập trung vì thuật toán này lựa chọn người đáng tin cậy để uỷ quyền
* Proof of Authority (Bằng chứng Uỷ nhiệm): Đây là cơ chế đồng thuận phổ biến
14
Trang 26thường thấy trong POA.Network, Ethereum Kovan testnet Cơ chế đồng thuận
này có hiệu suất cao, có khả năng mở rộng tốt.
* Proof-of-Weight (Bằng chứng Khối lượng /Càng lớn càng tốt): Day là cơ chếđồng thuận phổ biến trong Algorand, Filecoin Cơ chế đồng thuận này có thể tuỳchỉnh và khả năng mở rộng tốt Tuy nhiên quá trình thúc day việc phát triển sẽ là
một thử thách lớn.
* Byzantine Fault Tolerance (Đồng thuận chống gian lận /Tướng Byzantine baovây Blockchain): Day là cơ chế đồng thuận phổ biến trong Hyperledger, Stellar,Dispatch, và Ripple Cơ chế đồng thuận này có năng suất cao; chỉ phí thấp; có
khả năng mở rộng Tuy nhiên vẫn chưa thể tin tưởng hoàn toàn
2.2.2 Hyperledger trên nền tảng Blockchain
2.2.2.1 Giới thiệu Hyperledger
Hyperledger là một dự án mã nguồn mở được thành lập bởi Linux Foundation Nó
cung cấp một loạt các dự án, khuôn khổ, các tiêu chuẩn, hướng dẫn và các công cụ
cần thiết cho các doanh nghiệp và nhà phát triển để xây dựng các mạng và ứng dụngblockchain Hyperledger sử dụng kiến trúc Module (Modular Architecture) cho phépcác nhà phát triển có thể điều chỉnh nhiều thứ như: cơ chế đồng thuận (consensusmechanism), quản lý việc lưu trữ, thiết lập các dịch vụ nhận diện, phân quyên Dự ánHyperledger nhằm mục đích dễ dàng hợp tác giữa các doanh nghiệp, nhà phát triển và
doanh nghiệp trong lĩnh vực Distributed Ledger Technology (Công nghệ sổ cái phân
tán) Tư tưởng của Hyperledger là thé giới sẽ gồm nhiều kênh thanh toán (private chain)
riêng biệt với các thị trường khác nhau Mỗi doanh nghiệp có những đặc trưng riêng,
nên các ứng dụng cho các doanh nghiệp sẽ cần phát triển với các quy tắc được cá nhân
hóa Không giống như ethereum có xu hướng buộc các nhà phát triển xây dựng các
Trang 27ứng dụng của họ xung quanh một bộ giao thức định sẵn.
Hyperledger được đóng góp bởi rất nhiều hãng công nghệ lớn, hiện nay có hơn
250 tổ chức đang hỗ trợ Hyperledger và con số đó đang tăng lên nhanh chóng theothời gian Danh sách các tổ chức bao gồm nhiều gã công nghệ khổng lồ như Airbus và
Daimler, IBM, SAP, Huwaei, Fujitsu, Nokia, Samsung, American Express, JP Morgan
va các công ty khởi nghiệp blockchain như Blockstream va Consensys.
Khác với các nền tảng blockchain khác như Bitcoin hay Ethereum, Hyperledgerkhông có đồng tiền điện tử riêng và cũng không có ý định phát triển nó, Hyperledgercũng không phải là một tổ chức hay hệ thống chuỗi khói Nó hoạt động bằng cách cung
cấp cơ sở hạ tầng và tiêu chuẩn cần thiết để phát triển các hệ thống và ứng dụng dựa
trên nền tảng chuỗi khối khác nhau cho hoạt động công nghiệp
2.2.2.2 Framework của Hyperledger
* Hyperledger Fabric: được thiết kế như một nền tảng dé phát triển các ứng dụnghoặc giải pháp có kiến trúc mô-đun Hyperledger Fabric cho phép các thành
phần, chẳng hạn như dịch vụ đồng thuận và thành viên, là plug-and-play Thiết
kế mô-đun và linh hoạt của nó đáp ứng nhiều trường hợp sử dụng trong ngành
Nó cung cấp một cách tiếp cận duy nhất để đạt được sự đồng thuận cho phépthực hiện trên quy mô lớn trong khi vẫn bảo vệ quyên riêng tư [4]
* Hyperledger Besu: là một ứng dụng khách Ethereum được thiết kế thân thiện
với doanh nghiệp cho cả các trường hợp sử dụng mạng được phép công khai
và riêng tư Nó cũng có thể được chạy trên các mạng thử nghiệm như Rinkeby,Ropsten và Gorli Hyperledger Besu bao gồm một số thuật toán đồng thuận baogồm PoW và PoA (IBFT, IBFT 2.0, Etherhash va Clique) Các chương trình cấpphép toàn diện của nó được thiết kế đặc biệt để sử dụng trong môi trường liênkết
16
Trang 28* Hyperledger Iroha: được thiết kế dé đơn giản và dé dàng kết hợp vào các dự án
cơ sở hạ tầng hoặc IơT yêu cầu công nghệ sổ cái phân tán Hyperledger Iroha có
cấu trúc đơn giản, thiết kế C ++ hướng theo mô-dun, miền, nhấn mạnh vào pháttriển ứng dụng khách và thuật toán đồng thuận chịu lỗi sự cố mới (crash fault
tolerant), được gọi là YAC.
» Hyperledger Sawtooth: cung cấp một kiến trúc mô-đun và linh hoạt tách hệ
thống cốt lõi khỏi miền ứng dụng, vì vậy các hợp đồng thông minh có thể chỉ
định các quy tắc kinh doanh cho các ứng dụng mà không cần biết thiết kế cơ bản
của hệ thống lõi Hyperledger Sawtooth hỗ trợ nhiều thuật toán đồng thuận khác
nhau, bao gồm Khả năng chịu lỗi Byzantine Thực tế (PBFT) và Bằng chứng về
thời gian đã trôi qua (PoET)
* Hyperledger Indy: cung cấp các công cụ, thư viện và các thành phần có thể tái
sử dung để cung cấp danh tính kỹ thuật số bắt nguồn từ các blockchains hoặc các
sổ cái phân tán khác để chúng có thể tương tác trên các miễn quản trị, ứng dụng
và bất kỳ silo nào khác Indy có thể tương tác với các blockchains khác hoặc cóthể được sử dụng độc lập để hỗ trợ phân cấp danh tính [5]
* Hyperledger Burrow: là một phân phối blockchain đơn nhị phân hoàn chỉnhtập trung vào sự đơn giản, tốc độ và công thái học của nhà phát triển Nó hỗ trợ
cả hợp đồng thông minh dựa trên EVM và WASM va sử dụng đồng thuận BFTthông qua thuật toán Tendermint Nó có một hệ thống sự kiện phức tạp và có thểduy trì ánh xạ cơ sở dữ liệu quan hệ của dữ liệu trên chuỗi Quản trị và cấp phépđược tích hợp sẵn và có thể được sửa đổi bằng các giao dịch đề xuất trên chuỗi
Nó được tối ưu hóa cho các trường hợp sử dụng bằng chứng cổ phần được phépcông khai nhưng cũng có thể được sử dụng cho các mạng riêng / liên két.[6]
* Hyperledger Grid: dự định cung cấp các triển khai tham chiếu của các kiểu dữ
liệu tập trung vào chuỗi cung ứng, các mô hình dữ liệu và logic kinh doanh dựa
17
Trang 29trên hợp đồng thông minh - tat cả đều dựa trên các tiêu chuẩn mở, hiện có và cácphương pháp hay nhất trong ngành Nó giới thiệu một cách chân thực và thực tếcách kết hợp các thành phần từ ngăn xếp Hyperledger thành một giải pháp kinhdoanh hiệu quả, duy nhất.[7]
2.2.2.3 Công cụ
* Hyperledger Composer: là một bộ công cụ và framework mở, rộng rãi để giúpphát triển các ứng dụng blockchain dễ dàng hơn Mục tiêu chính của nó là đẩy
nhanh thời gian định giá và giúp việc tích hợp các ứng dụng blockchain với các
hệ thống kinh doanh hiện có trở nên dé dang hơn Có thể sử dụng Composer để
phát triển nhanh chóng các trường hợp sử dụng và triển khai giải pháp blockchain
trong vài tuần thay vì vài tháng Composer cho phép lập mô hình mạng lưới kinhdoanh của mình và tích hợp các hệ thống và dữ liệu hiện có với các ứng dụng
blockchain của bạn.
5 Hyperledger Cello: nhằm mục đích đóng vai trò là bảng điều khiển hoạt động
cho Blockchain, giúp giảm thiểu nỗ lực cần thiết cho việc tạo, quản lý và sửdụng các blockchain Bên cạnh đó, nó cũng có thể được sử dụng để tạo điều kiệnthuận lợi cho việc tạo Blockchain như một Dịch vụ Cello cung cấp một bảngđiều khiển hoạt động để quản lý hiệu quả của blockchain và chạy trên các cơ
sở hạ tầng khác nhau, ví dụ: baremetal, máy ảo và các nền tảng container khác
nhau.
5 Hyperledger Explorer: là một mô-đun tiện ích mã nguồn mở của blockchain
cho phép người dùng tạo một ứng dụng dựa trên web thân thiện với người dùng,
được sử dụng để xem, gọi, triển khai hoặc truy vấn khối, giao dịch và dữ liệu liên
quan, thông tin mạng (tên, trạng thái, danh sách các nút), mã chuỗi và giao dịch,
cũng như bắt kỳ liên quan nào khác thông tin được lưu trên sổ cái
18
Trang 30* Hyperledger Caliper: là một công cụ điểm chuẩn blockchain, nó cho phép
người dùng đo lường hiệu suất của việc triển khai blockchain với một tập hợp
các trường hợp sử dụng được xác định trước Hyperledger Caliper sẽ tạo ra các
báo cáo chứa một số chỉ số hiệu suất để làm tài liệu tham khảo khi sử dụng các
giải pháp blockchain sau: Hyperledger Besu, Hyperledger Burrow, Ethereum,
Hyperledger Fabric, FISCO BCOS, Hyperledger Iroha và Hyperledger Sawtooth.
ure
Services
Hình 2.1: Kiến trúc Hyperledger
19
Trang 31* Membership: cung cấp các dịch vụ quản lý danh tính, quyền riêng tư, bảo mật
và kiểm toán trên mạng.
« Blockchain Services: các dịch vụ blockchain bao gồm ba thành phần chính:
trình quản lý đồng thuận, giao thức peer-to-peer (P2P) và sổ cái phân phối
(Distributed Ledger Ledger Storage).
¢ Transactions: Các giao dịch được thực hiện va lưu trữ trên blockchain.
* Chaincode: Hyperledger lưu các hợp đồng thông minh dưới dạng các chaincode
(ngôn ngữ lập trình để phát triển smartcontract), chaincode được sử dụng trong
Hyperledger là golang Có thể hiểu chaincode là một decentralized application,
chạy trên các nút xác nhận tính hợp lệ và được đóng gói trong các docker
2.2.2.5 Lợi ích sử dụng Hyperledger
Trong vai trò là một dự án mã nguồn mở:
* Tiết kiệm chi phi cho phần mềm: Hyperledger là dự án mã nguồn mở, do đó
không cần phải trả phí sử dụng.
* Tự do cải tién và mở rộng: được tự do cải tiễn và mở rộng mà không đòi hỏi sự
cho phép của người sở hữu.
* Phát triển và cải tiến ổn định: có nhiều thành viên là các tập đoàn, tổ chức lớn
tham gia phát triển, đóng góp, quy trình cải tiến rõ ràng giúp dự án ngày càng
được phát triển.
* An toàn và tin cậy: cộng đồng sử dụng lớn, các lỗi trong quá trình sử dụng có thể
dễ dàng được tìm thấy và vá lại dựa trên sự hỗ trợ từ cộng đồng người dùng.
20
Trang 32Đẩy nhanh quá trình phát triển và thương mại hóa: sử dụng các tiêu chuẩn có
sẵn, giúp người dùng dễ dàng phát triển, tăng độ tin cậy của hệ thống, từ đó dễ dàng đưa sản phẩm tiếp cận tới cộng đồng.
Trong vai trò là một dự án sử dụng công nghệ blockchain:
Phân tán: loại bỏ các bên tin cậy thứ ba để xác thực các giao dịch.
Minh bạch và tin cậy: các giao dịch được thực hiện trên blockchain đều có thể
kiểm chứng được.
Độ an toàn cao: toàn bộ các giao dịch đều được đảm bảo an toàn dựa trên mật
mã và tính toàn vẹn của chúng được đảm bảo.
Độ khả dụng cao: hệ thống bao gồm nhiều nút và không có một nút nào đóng
vai trò chi phôi hệ thông nên chong được van dé về “one point failure’.
Tiết kiệm chi phí: trong thực tế chi phí cho các bên trung gian thứ ba của các hệ thống là rất đáng kể, do đó việc loại bỏ được các bên trung gian này sẽ giúp tiết
kiệm chỉ phí cho người sử dụng.
2.2.3 Hyperledger Fabric
2.2.3.1 Khai niệm
Trong khi các mạng Public Blockchain đang dần điều chỉnh để phù hợp hơn với
yêu cầu riêng tư của thị trường thì Hyperledger Fabric được sinh ra để làm việc đấy.
Hyperledger Fabric là một khuôn khổ blockchain mã nguồn mở, được cấp phép, bắt đầu
vào năm 2015 bởi The Linux Foundation Hyperedger Fabric là một trong 5 Framework
về Blockchain nằm trong chiến lược Hyperledger Umbrella của Linux Foundation gồm:
21
Trang 33Hyperledger Indy, Hyperledger Fabric, Hyperledger Iroha, Hyperledger Sawtooth, và
Hyperledger Burror Điều đặc biệt là Hyperledger Fabric được contributed bởi ông lớn
IBM Đây là một khung mô-đun, có mục đích chung, cung cấp các tính năng quản lý danh tính và kiểm soát truy cập độc đáo, phù hợp với nhiều ứng dụng trong ngành như theo dõi chuỗi cung ứng, tài trợ thương mại, lòng trung thành và phần thưởng, cũng như bù trừ và quyết toán tài sản tài chính.
Kết cầu Hyperledger là lý tưởng để xây dựng một mạng lưới kinh doanh blockchain
riêng tư được cấp phép Ở chế độ riêng tư, có nghĩa là nó không được công khai cho tất
cả mọi peer hoặc giao dịch trên mạng Đối với các doanh nghiệp, đây là một yêu cầu
lớn mà Hyperledger Fabric đáp ứng được Doanh nghiệp cần kiểm soát nhiều hơn các
chính sách truy cập dữ liệu của họ Họ cũng cần một mạng được cấp phép để họ có thể thực hiện kiểm soát truy cập theo yêu cầu của riêng họ.
Hyperledger Fabric sử dụng các Channel giúp phân đoạn các dữ liệu thành nhiều
private blockchain, mang lại một kiến trúc mềm dẻo, dễ dàng mở rộng, khác biệt với
các giải pháp blockchain khác hiện có.
Hyperledger Fabric sử dụng các Channel giúp phân đoạn các dữ liệu thành nhiều private blockchain, mang lại một kiến trúc mềm dẻo, dễ dàng mở rộng, khác biệt với
các giải pháp blockchain khác hiện có.
Trong mạng, có người cấp quyền phát hành hoặc thu hồi quyền đối với tất cả những người tham gia và các thành phần cơ sở hạ tầng của mạng Quyền hoặc kiểm soát truy cập này trong Fabric dựa trên cơ sở hạ tầng X509 PKI Có nghĩa là có một tổ chức phát
hành chứng chỉ đáng tin cậy cấp chứng chỉ cho tất cả những người tham gia Hợp đồng
thông minh nắm giữ logic xác định ai có thể thay đổi những gì trên sổ cái Và những người tham gia viết giao dịch trên sổ cái bằng cách gọi các hợp đồng
Phiên bản hiện tại mới nhất của Hyperledger Fabric là 2.2.
22
Trang 342.2.3.2 Crash fault tolerance
Crash fault tolerance (CFT) là một mức kha năng phục hồi, trong đó hệ thống van
có thể đạt được sự đồng thuận nếu có nút bị lỗi Nếu có N nút trong hệ thống đồng thuận CFT, thì hệ thống sẽ có khả năng chịu được tối đa N/2 nút bị lỗi.
2.2.3.3 Byzantine fault tolerance
Các lỗi do phần mềm, lỗi do hệ điều hành, lỗi do người quan trị, lỗi do bi virus tan công, là nguyên nhân phổ biến gây ra lỗi ở các nút và khiến cho các nút thực hiện các hành vi tùy ý Tất cả đều những lỗi trên được gọi là lỗi Byzantine.
Byzantine Fault Tolerance (BFT) cung cấp các đảm bảo để chồng lại và đạt được sự đồng thuận bất kể lỗi nào, kể cả các lỗi Byzantine Byzantine Fault Tolerance (BFT)
là 1 thuật toán sao chép trạng thái của máy (state machine replication) , nó có kha nang sao chép các dịch vụ (service) với các hoạt động phức tạp Đây là biện pháp bảo vệ
quan trọng giúp các máy khách (client) chồng lại lỗi Byzantine.
2.2.3.4 Thành phan của Hyperledger Fabric
Chaincode | [BB | oderng Service
Hình 2.2: Thành phần của Hyperledger Fabric
23
Trang 35« Channel: là cơ chế phân vùng dif liệu, chỉ cho phép hiển thị các giao dich cho
những bên liên quan Mỗi channel là một chuỗi các khối giao dịch độc lập chỉ
chứa các giao dịch của channel đó.
« Chaincode: chính là Smart Contract trong Hyperledger Fabric Nó bao gồm các
định nghĩa về tài sản và các logic kinh doanh để sửa đổi thông tin của các tài sản
đó Các yêu cầu giao dịch sẽ dẫn đến sự thay đổi trong số cái.
» Ledger: chứa trạng thái hiện tại của mạng blockchain và chuỗi các yêu cầu giao
dịch Các thông tin trong sổ cái chỉ được phép thêm vào chứ không thể xóa hay
sửa được.
¢ Network: là tập hợp các nút ngang hang (Peer) xử lý dữ liệu tạo thành mạng
blockchain Mạng này chịu trách nhiệm duy trì một sổ cái được nhân rộng mang
tính nhất quán.
« Ordering Service: là tập hợp các nút yêu cầu các giao dịch thành một khối.
* World State: phản ánh dữ liệu hiện tại về tất cả các tài sản trong mang blockchain.
Dữ liệu này được lưu trữ trong cơ sở dữ liệu để truy cập hiệu quả Các cơ sở dữ
liệu được hỗ trợ hiện tại là: LevelDB và CouchDB.
» Membership Service Provider (MSP): quản lý danh tính và quyền truy cập của
các client và các nút ngang hàng (peer).
2.2.3.5 Ordering Service trên Hyperledger Fabric
Nhiều blockchain phân tán, chang han như Ethereum và Bitcoin, không được cấp phép, có nghĩa là bất kỳ nút nào cũng có thể tham gia vào quá trình đồng thuận, trong
đó các giao dịch được sắp xếp và đóng gói thành các khối.
24
Trang 36Hyperledger Fabric hoạt động theo cách khác Nó có một nút được gọi là orderer
(nó còn được gọi là “orderer node”) thực hiện việc đặt đồng thuận (consensus) giao
dịch, cùng với các nút orderer khác tạo thành một dịch vụ đặt hàng (ordering service).
Bởi vì thiết kế của Fabric dựa trên các thuật toán đồng thuận xác định, bất kỳ khối nào được đồng nghiệp xác thực đều được đảm bảo là khối cuối cùng và chính xác Dịch vụ
đặt hàng là một dịch vụ phân tán chịu trách nhiệm tổ chức các giao dịch được xác nhận
thành các khối theo trình tự và phân phối cho tất cả các đồng nghiệp Dịch vụ này được chạy trên nhiều nút Thông thường, mỗi tổ chức sẽ có ít nhất một nút của dịch vụ đặt hàng để đảm bảo chúng là một phần của quá trình xử lý giao dịch từ đầu đến cuối.
Việc tách xác nhận thực thi chaincode (xảy ra ở các peer) khỏi ordering mang lại
lợi thế cho Fabric về hiệu suất và khả năng mở rộng, loại bỏ tắc nghẽn có thể xảy ra
khi việc thực thi va ordering được thực hiện bởi các nút giống nhau.
Ngoài vai trò trên, ordering service còn lưu trữ các thông tin khác như danh sách
tổ chức nào được phép tạo channel, ai có thể thay đổi các cấu hình channel, và tất cả hành động thay đổi câu hình đó đều phải di qua orderer Danh sách các tổ chức này còn được gọi là tập đoàn (consortium) và bản thân danh sách này được lưu giữ trong cấu hình của kênh hệ thống đặt hàng (ordering system channel) Theo mặc định, danh sách
này và kênh tổn tại trên đó, chỉ quản trị viên của orderer mới có thể chỉnh sửa.
Các cách triển khai Ordering Service: Mặc dù moi ordering service hiện có đều xử
lý các giao dịch và cập nhật cấu hình theo cùng một cách, tuy nhiên vẫn có một số cách triển khai khác nhau để đạt được sự đồng thuận về thứ tự giao dịch chặt chẽ giữa các
nut ordering serive.
* Solo: Chỉ có 1 nút orderer duy nhất, nó không có khả năng "fault tolerant" (chịu
lỗi) Việc triển khai Solo của ordering service chỉ nhằm mục đích thử nghiệm và chỉ bao gồm nút orderer duy nhất Nó đã không được dùng nữa và có thể bị xóa
hoàn toàn trong một bản phát hành trong tương lai.
25
Trang 37Hình 2.3: Kiến trúc Ordering Service Solo
° Raft: Mới kể từ phiên bản 1.4.1, hyperledger fabric ra mat Raft là một dịch vụ
đặt hàng chịu lỗi va chạm (crash fault tolerant - CET) dựa trên việc triển khai
giao thức Raft trong etcd Raft tuân theo mô hình "người dẫn đầu và người theo dõi", trong đó một nút lãnh đạo được bầu chọn (trên mỗi kênh) và các quyết định
của nó được những người theo dõi lặp lại Các ordering service theo nhóm sẽ
dễ thiết lập và quản lý hơn các ordering service dựa trên Kafka và thiết kế của
chúng cho phép các tổ chức khác nhau đóng góp các nút vào ordering.
Trang 38* Kafka: Tương tự như Raft, Apache Kafka là một triển khai CFT sử dung cấu hình nút người dẫn đầu và người theo dõi (leader và follower) Kafka sử dụng
nhóm ZooKeeper cho mục đích quản lý Dịch vụ đặt hàng dựa trên Kafka đã có
san từ Fabric phiên bản 1.0, nhưng nhiều người dùng có thể thấy chi phí quản trị bổ sung của việc quản lý một cụm Kafka là đáng sợ hoặc không mong muốn Việc sử dụng bên thứ ba để quản lý cũng trở nên bắt tiện Cũng như Solo, Kafka đang dần được loại bỏ và không còn được sử dụng ở phiên bản 2.x.
OrdererOrg
e000
Kafka
Hình 2.5: Kiến trúc Ordering Service Kafka
2.2.3.6 Peer trên Hyperledger Fabric
Một mạng blockchain chủ yếu bao gồm một tập hợp các nút peer (hoặc đơn giản
là các peer) Peer là một yếu tố cơ bản của mạng vì chúng lưu trữ sổ cái và hợp đồng
thông minh.
27
Trang 39Peer Node
Một peer có thể lưu trữ phiên bản sổ cái mà không cần lưu trữ bất kỳ chaincode truy
cập vào sổ cái đó Mỗi peer có thể cài đặt thêm một chaincode và các sổ cái Không
bắt buộc phải cài đặt mã chaincode trên mỗi peer, vì vậy trong trường hợp này các peer khác trong hệ thống giao tiếp với nhau để cập nhật trạng thái mới nhất của sổ cái bằng
giao thức Gossip Một peer không thể thuộc sở hữu của nhiều tổ chức, tức là nó chỉ thuộc sở hữu của một tổ chức duy nhất và do đó được liên kết với một MSP duy nhất.
Mỗi tổ chức trong mạng blockchain có trách nhiệm đóng góp vào mạng bằng cách thiết lập các peer Không bắt buộc mỗi tổ chức phải đóng góp số lượng peer bằng nhau trong mang Tat cả các peer này đều được tích hợp với mạng blockchain bang cách sử dụng quyền đặc biệt, chữ ký sử dụng Cơ quan cấp chứng chỉ.
I Các loại peer
Trong mạng blockchain có các loại peer khác nhau với các nhiệm vụ khác nhau
28
Trang 40peer] _ [Anchor Per ==
Peer
Peer Leader Peer | Leader Peer
EN x
Hinh 2.7: Cac loai peer trong mang
Leader Peer: Peer này luôn nhận một khối mới từ orderer và chia sẻ nó với các
peer khác bằng giao thức Gossip Có 2 loại leader có thể được thiết lập trong một
tổ chức.
Dynamic Leader - Các peer khác trong tổ chức chọn leader peer trong fabric
runtime, vì vay trong trường hợp này, bat kỳ peer nào cũng có thể nhận khối mới
gọi là Non-Anchor peer.
29