1. Trang chủ
  2. » Luận Văn - Báo Cáo

Nghiên cứu nền tảng blockchain hyperledger fabric và ứng dụng trong việc khai thác dịch vụ viễn thông

103 5 0
Tài liệu được quét OCR, nội dung có thể không chính xác

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Nghiên Cứu Nền Tảng Blockchain Hyperledger Fabric Và Ứng Dụng Trong Việc Khai Thác Dịch Vụ Viễn Thông
Tác giả Vũ Minh Đức
Người hướng dẫn PGS.TS. Nguyễn Mậu Hân
Trường học Đại học Khoa học - Đại học Huế
Chuyên ngành Khoa học máy tính
Thể loại luận văn thạc sĩ
Năm xuất bản 2020
Thành phố Thừa Thiên Huế
Định dạng
Số trang 103
Dung lượng 45,27 MB

Nội dung

Trang 1

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 3

LOI 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 4

MUC 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 5

chứ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 7

DANH 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 8

Chir 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 9

PoET 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 10

DANH 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 11

Hinh 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 12

MO 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 13

Chố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 14

Chươ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 15

12 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 16

1.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 17

e 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 18

cầ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 19

Smart 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 20

13 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 21

1.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 23

nhá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 24

chuyể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 25

Bang 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 26

Bằ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 27

Chươ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 28

2.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 29

dị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 32

Trong 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 33

ove | 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 35

6 Orderer quảng bá block được tạo cho tất cả các nút Peer (cả nút bảo chứng và nút cam kết) trên kênh liên quan Mỗi nút Peer phải đảm bảo rằng mỗ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 36

Raft - Việc triển khai Raft rất phù hợp để được sử dụng như một nút duy

nhất cho cả phát triển và được mở rộng cho nhiề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 37

Orgi - 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 38

2.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 39

va 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 40

chứ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

Ngày đăng: 11/01/2024, 22:48

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN

w