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

Nghiên cứu nền tảng công nghệ blockchain và ứng dụng trong bài toán truy xuất nguồn gốc sản phẩm

66 1 0

Đ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

Với khách hàng, do dữ liệu trên Blockchain là công khai, họ có thể theo dõi được toàn bộ quá trình sản xuất của sản phẩm đã được xác minh bởi các đơn vị có trách nhiệm thông qua ứng dụng

Trang 1

NGHIÊN CỨU NỀN TẢNG CÔNG NGHỆ BLOCKCHAIN VÀ ỨNG DỤNG TRONG BÀI TOÁN TRUY XUẤT NGUỒN GỐC

SẢN PHẨM

Thuộc nhóm ngành khoa học: Khoa học máy tính

Trang 2

NGHIÊN CỨU NỀN TẢNG CÔNG NGHỆ BLOCKCHAIN VÀ ỨNG DỤNG TRONG BÀI TOÁN TRUY XUẤT NGUỒN GỐC

SẢN PHẨM

Thuộc nhóm ngành khoa học: Khoa học máy tính

Sinh viên thực hiện: Trịnh Sỹ Tuấn Lớp, khoa: K23A ĐH CNTT – Khoa CNTT&TT

Năm thứ: 3 / Số năm đào tạo: 4 Ngành học: CNTT

Giảng viên hướng dẫn: PGS.TS Trịnh Viết Cường

THANH HÓA, THÁNG 04/2023

Trang 3

1.1 Tính cấp thiết của đề tài 8

1.2 Tổng quan tình hình nghiên cứu 8

CHƯƠNG 2: GIỚI THIỆU VỀ CÔNG NGHỆ BLOCKCHAIN VÀ FRAMEWORK BLOCKCHAIN HYPERLEDGER FABRIC 16

Trang 4

2.2.11 Smart Contract & Chaincode 38

2.2.12 Luồng thực hiện giao dịch trong Hyperledger Fabric 38

CHƯƠNG 3: XÂY DỰNG ỨNG DỤNG TRUY XUẤT NGUỒN GỐC SẢN PHẨM BẰNG CÔNG NGHỆ BLOCKCHAIN 43

3.1 Phân tích thiết kế hệ thống 43

3.1.1 Biểu đồ phân cấp chức năng tổng quát 43

3.1.2 Biểu đồ phân cấp chức năng mức dưới đỉnh 44

3.2 Phân tích thiết kế chức năng cơ sở dữ liệu 47

3.3 Giới thiệu phần mềm truy xuất nguồn gốc Blockchain 47

3.3.1 Cấu hình cài đặt 47

3.3.2 Giới thiệu phần mềm 48

3.4 Cách hoạt động của hệ thống Blockchain 61

CHƯƠNG 4: KẾT LUẬN VÀ HƯỚNG NGHIÊN CỨU 62

TÀI LIỆU THAM KHẢO 63

Trang 5

DANH MỤC CHỮ CÁI VIẾT TẮT

API Application Programming

SDK Software Development Kit Bộ công cụ phát triển phần mềm JSON JavaScript Object Notation Định dạng đối tượng JavaScript

NC Network Configuation Cấu hình của mạng

CA Certificate Authority Cơ quan chứng nhận

Trang 6

DANH MỤC CÁC BẢNG BIỂU

Bảng 1: Cấu hình cài đặt hệ thống Blockchain 48

Trang 7

DANH MỤC HÌNH ẢNH

Hình 1: Giao diện của phần mềm truy xuất nguồn gốc Agridential 9

Hình 2: Màn hình điền thông tin email đăng ký tại Agridential 10

Hình 3: Màn hình điền thông tin doanh nghiệp phần mềm truy xuất nguồn gốc Agridential 10

Hình 4: Tạo tài khoản thành công 11

Hình 5: Giao diện chính của hệ thống truy xuất nguồn gốc Agridential 11

Hình 6: Giao diện thêm mới sản phẩm của phần mềm truy xuất nguồn gốc Agridential 12 Hình 7: Chuỗi khối 16

Hình 8: Block Header trong Blockchain 18

Hình 9: Các dự án trong Hyperledger 20

Hình 10: Cơ chế Leader – Follower trong cơ chế đồng thuận Raft 22

Hình 11: Kiến trúc mạng của mạng Blockchain Hyperledger Fabric 25

Hình 12: Khởi tạo mạng ban đầu với một Orderer Node 26

Hình 13: Thêm cấu hình mạng (nguồn Internet) 27

Hình 14: Thêm một consortium 27

Hình 15: Thêm một kênh mới vào mạng 28

Hình 16: Kết nối các peer vào kênh 29

Hình 17: Applications tương tác với mạng 30

Hình 18: Cấu trúc mạng hoàn thiện 31

Hình 19: Cấu trúc một idenity trong Hyperledger Fabric 32

Hình 20: Cấu trúc một Peers 33

Hình 21: Thông tin của một block được lưu trữ trong CouchDB 34

Hình 22: World State trong Hyperledger Fabric 35

Hình 23: Blockchain trong Hyperledger Fabric 36

Hình 24: Sơ đồ chuỗi block trong Hyperledger Fabric 36

Hình 25: Sơ đồ một block trong Hyperledger Fabric 37

Hình 26: Hiện tượng Fork trong hệ thống Blockchain 38

Hình 27: Thông tin về một Smart Contract 38

Hình 28: Thông tin về một giao dịch trong Hyperledger Fabric 39

Hình 29: Thêm một khối mới trong Hyperledger Fabric 41

Hình 30: Biểu đồ phân cấp chức năng mức đỉnh 43

Hình 31: Biểu đồ phân cấp chức năng đơn vị vận hành phần mềm 44

Hình 32: Biểu đồ phân cấp chức năng nhà sản xuất 45

Trang 8

Hình 36: Giao diện phần mềm TRoot 48

Hình 37: Giao diện đăng nhập TRoot 49

Hình 38: Giao diện màn hình chính Đơn vị cung cấp phần mềm 49

Hình 39: Thêm mới một cơ quan sản xuất 50

Hình 40: Thêm mới cơ quan kiểm định tiêu chuẩn 50

Hình 41: Thêm mới Admin Nhà sản xuất 51

Hình 42: Thêm mới Admin nhà kiểm định 51

Hình 43: Xem trạng thái khóa công khai trong TRoot 51

Hình 44: Thông tin người dùng được gửi về Email trong TRoot 52

Hình 45: Giao diện của Admin nhà sản xuất trong TRoot 52

Hình 46: Thêm mới một nhân viên trong TRoot 53

Hình 47: Thêm mới sản phẩm trong TRoot 53

Hình 48: Thêm mới quy trình người dùng tự định nghĩa trong TRoot 54

Hình 49: Các chức năng về sản phẩm sau khi thêm mới sản phẩm 54

Hình 50: Xem mã QR cho sản phẩm trong TRoot 55

Hình 51: Tạo khóa của người dùng trong TRoot 55

Hình 52: Thông tin về khóa của người dùng trong TRoot 56

Hình 53: Thêm mới một người dùng trong TRoot 56

Hình 54: Phân công người xác thực quy trình trong TRoot 57

Hình 55: Nhân viên nhà sản xuất xem thông tin quy trình trong TRoot 57

Hình 56: Thông báo xác thực quy trình trong TRoot 58

Hình 57: Ký xác thực quy trình trong TRoot 58

Hình 58: Upload quyết định đạt chuẩn chất lượng trong TRoot 58

Hình 59: Thông tin người dùng tra cứu sản phẩm trên Mobile 59

Hình 60: Thông tin tra cứu sản phẩm trên Desktop 60

Hình 61: Script khởi tạo mạng……… 61

Trang 9

THÔNG TIN KẾT QUẢ NGHIÊN CỨU

1 Tên đề tài: Nghiên cứu nền tảng công nghệ Blockchain và ứng dụng trong bài

toán truy xuất nguồn gốc sản phẩm

2 Cấp dự thi: Cấp trường 3 Nhóm sinh viên thực hiện

Họ và tên: Trịnh Sỹ Tuấn

Lớp: K23A - ĐHCNTT Khoa: CNTT-TT

Điện thoại: 0374.816.654 Email: trinh@sytuan.net

4 Giáo viên hướng dẫn: PGS.TS Trịnh Viết Cường

5 Thời gian thực hiện: 08 tháng, từ tháng 09/2022 đến 04/2023 6 Cơ quan quản lý đề tài: Trường Đại học Hồng Đức

7 Đơn vị chủ trì đề tài: Khoa Công nghệ thông tin và truyền thông, trường Đại

học Hồng Đức

Trang 10

CHƯƠNG 1: MỞ ĐẦU 1.1 Tính cấp thiết của đề tài

Cuộc cách mạng công nghiệp 4.0 phát triển mạnh mẽ đã tạo nên một làn sóng mới, phương thức hoạt động mới trong việc giải quyết các vấn đề liên quan đến đến đời sống kinh tế và xã hội của con người Cùng với sự phát triển nhanh chóng và những thành tựu đạt được, lĩnh vực công nghệ nói chung và công nghệ thông tin nói riêng đã góp phần không nhỏ vào việc xử lý những khó khăn và nhu cầu cấp thiết của cuộc sống

Áp dụng công nghệ thông tin vào giải quyết những hạn chế trong việc quản lý, truy xuất nguồn gốc sản phẩm là một đòi hỏi thực tế hiện nay Trong bối cảnh thực phẩm giả, kém chất lượng xuất hiện tràn lan trên thị trường, niềm tin của người tiêu dùng đã không còn tuyệt đối, trở thành vấn đề đáng quan ngại trong xã hội Vì vậy, để nâng cao năng lực cạnh tranh của các doanh nghiệp sản xuất hàng hóa, yêu cầu cấp thiết là phải cho phép khách hàng truy xuất được nguồn gốc sản phẩm, tạo sự yên tâm khi quyết định mua hàng Ngoài ra, để đảm bảo vấn đề quản lý chất lượng hàng hóa cũng như vệ sinh an toàn thực phẩm, các cơ quan chức năng của Nhà nước cũng cần được tham gia vào việc giám sát toàn bộ quá trình sản xuất của doanh nghiệp

Với khách hàng, do dữ liệu trên Blockchain là công khai, họ có thể theo dõi được toàn bộ quá trình sản xuất của sản phẩm đã được xác minh bởi các đơn vị có trách nhiệm thông qua ứng dụng trên điện thoại (quét mã QR trên sản phẩm) hoặc truy cập từ website, từ đó tạo sự yên tâm khi quyết định chọn mua sản phẩm

Về mặt kỹ thuật, để đảm bảo tính chính xác về thông tin quản lý, độ bảo mật, cũng như tính minh bạch về thông tin thì cần thiết phải áp dụng những kết quả của công nghệ mới Trong cuộc cách mạng công nghiệp 4.0, Blockchain là một công nghệ rất quan trọng trong việc đẩy mạnh quá trình chuyển đổi số và xây dựng nền tảng công nghệ thông tin cho tương lai Nó đã được coi là một chìa khóa quan trọng trong việc tạo ra sự tiến bộ và thúc đẩy sự phát triển của các ngành công nghiệp khác nhau Với khả năng chia sẻ thông tin dữ liệu minh bạch theo thời gian thực và bảo mật cao, công nghệ Blockchain (chuỗi khối) là một trong những xu hướng công nghệ đột phá, có khả năng áp dụng rộng rãi, phù hợp với nhiều ứng dụng hiện nay Công nghệ Blockchain là một nền tảng quan trọng trong việc xây dựng ứng dụng truy xuất nguồn gốc sản phẩm, giúp đảm bảo chất lượng quản lý, truy xuất thông tin chính xác, đảm bảo an toàn dữ liệu cao

Với những lý do trên, việc nghiên cứu Framework Blockchain Hyperledger Fabric và xây dựng phần mềm truy xuất nguồn gốc sản phẩm bằng Blockchain là có tính thời

sự và cấp thiết, do đó em đã lựa chọn đề tài “Nghiên cứu nền tảng công nghệ Blockchain và ứng dụng trong bài toán truy xuất nguồn gốc sản phẩm”

1.2 Tổng quan tình hình nghiên cứu

Trang 11

1.2.1 Trên thế giới

Về mặt ứng dụng phần mềm truy xuất nguồn gốc sản phẩm, ứng dụng nổi trội nhất thế giới hiện nay là hệ thống phần mềm kết hợp giữa siêu thị Walmart và tập đoàn công nghệ IBM Phần mềm này cho phép khách hàng truy xuất thông tin sản phẩm bao gồm các thông tin sau:

- Thông tin chung về nguồn gốc sản phẩm

- Sản phẩm được sản xuất từ những quy trình nào, từng quy trình được kiểm định chất lượng bởi những cơ quan kiểm định nào

- Ngoài ra do dữ liệu được lưu lên hệ thống Blockchain, nên thông tin từng sản phẩm một khi được công khai cho khách hàng sẽ không thể thay đổi được và doanh nghiệp phải chịu trách nhiệm với thông tin đó

1.2.2 Trong nước

Ở Việt Nam hiện nay, một số công ty cũng đã xây dựng một số phần mềm về truy xuất nguồn gốc sản phẩm, cụ thể chi tiết như sau:

1 Phần mềm truy xuất nguồn gốc Agridential của Vietnam Blockchain

(agridential.vn) Khác với các phần mềm trên, phần mềm Agridential sử dụng Blockchain để lưu trữ dữ liệu về sản phẩm Tuy nhiên phần mềm trên cũng chỉ đưa ra thông tin về sản phẩm như: Tên sản phẩm, hình ảnh sản phẩm vv và các quy trình của sản phẩm do doanh nghiệp tự đăng ký Chưa có sự tham gia của các cơ quan chức năng để chứng thực quy trình

Quy trình đăng ký sử dụng phần mềm truy xuất nguồn gốc Agridential: Từ trang chủ phần mềm, bấm vào nút Dùng thử miễn phí

Hình 1: Giao diện của phần mềm truy xuất nguồn gốc Agridential

Trang 12

Hình 2: Màn hình điền thông tin email đăng ký tại Agridential

Sau khi điền email, hãy điền thông tin doanh nghiệp và mật khẩu rồi bấm tiếp tục:

Hình 3: Màn hình điền thông tin doanh nghiệp phần mềm truy xuất nguồn gốc Agridential

Phần mềm hiện thông báo đăng ký thành công, bạn hãy xác nhận email để hoàn tất quá trình đăng ký tài khoản

Trang 13

Hình 4: Tạo tài khoản thành công

Quy trình đăng ký sản phẩm trên ứng dụng Agridential

Tại trang chủ account của màn hình, bấm tạo mã QR sản phẩm để đăng ký sản phẩm

Trang 14

Hình 6: Giao diện thêm mới sản phẩm của phần mềm truy xuất nguồn gốc Agridential

Giá của phần mềm truy xuất nguồn gốc Agridential:

- Đối với cá nhân sử dụng phần mềm trên hệ thống Blockchain có sẵn của phần mềm: 9.000.000 vnđ/User/ năm

- Đối với doanh nghiệp muốn xây dựng hệ thống Blockchain riêng có giá từ 700 Triệu / 1 lần duy nhất

2 Phần mềm truy xuất nguồn gốc CheckVN (trang web: www.checkvn.vn) Phần mềm này cho phép các doanh nghiệp đăng ký mặt hàng mà có thể cho phép người tiêu dùng truy xuất thông tin Thông tin được phép truy xuất bao gồm thông tin chung về nguồn gốc sản phẩm, các quy trình sản xuất, … Tuy nhiên các thông tin này đều là thông tin một chiều do nhà sản xuất đưa ra, không có sự kiểm định của các cơ quan chuyên môn chức năng, tức là các cơ quan chức năng không tham gia vào quá trình giám sát chất lượng của sản phẩm Ngoài ra thông tin về sản phẩm có thể dễ dàng thay đổi bởi doanh nghiệp hoặc kẻ tấn công bên ngoài, hệ thống của CheckVN cũng không sử dụng công nghệ Blockchain để đảm bảo an toàn cho dữ liệu Do vậy về bản chất phần mềm này cũng chỉ tương đương một website giới thiệu thông tin sản phẩm của doanh nghiệp

3 Phần mềm truy xuất nguồn gốc Vinacheck (trang web: www.vinacheck.vn) Tương đương phần mềm CheckVN, phần mềm Vinacheck cũng hỗ trợ doanh nghiệp đăng ký thông tin sản phẩm lên hệ thống như: Tên sản phẩm, giá sản phẩm, ngày sản xuất hay các chứng chỉ chất lượng của sản phẩm lên hệ thống Tuy nhiên, các thông tin được cung cấp trên phần mềm chỉ là các thông tin doanh nghiệp đưa lên và không có chứng thực bởi các cơ quan kiểm định Ngoài ra phần mềm cũng không đăng chi tiết

Trang 15

các quy trình trong sản xuất sản phẩm và không sử dụng công nghệ Blockchain để bảo vệ thông tin cho người dùng

4 Phần mềm truy xuất nguồn gốc iCheck (trang web: www.icheckvn.com) Giống như các phần mềm truy xuất nguồn gốc đã đề cập ở trên, với phần mềm iCheck cũng giúp doanh nghiệp đăng ký sản phẩm lên hệ thống Khác với các phần mềm trên, iCheck hỗ trợ người dùng xem lịch sử thay đổi của sản phẩm, hỗ trợ người dùng để lại bình luận, góp ý cho phần mềm Tuy nhiên phần mềm vẫn chưa có sự tham gia của các cơ quan kiểm định để quản lý chất lượng sản phẩm và sử dụng công nghệ Blockchain để quyền lợi cho người tiêu dùng, do vậy phần mêm trên cũng chỉ tương đương như một trang web giới thiệu sản phẩm của doanh nghiệp

5 Phần mềm truy xuất nguồn gốc Traceverified (www.traceverified.com) Phần mềm này về mặt chức năng cũng hoàn toàn tương tự như phần mềm iCheck ở trên

6 Phần mềm truy xuất nguồn gốc OTS của AZteam (www.azteam.vn) Phần mềm này về mặt chức năng cũng hoàn toàn tương tự như phần mềm CheckVN ở trên

Như vậy, các phần mềm truy xuất nguồn gốc hiện nay ở Việt Nam chủ yếu có chức năng giúp doanh nghiệp cung cấp thông tin về sản phẩm, chưa có cơ chế phối hợp cùng các cơ quan kiểm định để kiểm tra chất lượng sản phẩm

Người tiêu dùng sẽ yên tâm hơn về chất lượng sản phẩm nếu chất lượng ở từng quy trình sản xuất của sản phẩm được kiểm tra bởi các cơ quan có trách nhiệm, và toàn bộ quy trình kiểm tra, ký xác thực bởi các cơ quan có trách nhiệm được cung cấp minh bạch cho người tiêu dùng Ngoài ra thông tin về sản phẩm một khi đã được cung cấp cho người tiêu dùng sẽ không thể thay đổi, tránh việc doanh nghiệp gian lận thông tin khi khách hàng khởi kiện thông tin không đúng về chất lượng sản phẩm

1.3 Mục tiêu và phạm vi đề tài

Mục tiêu đề tài:

Mục tiêu chung: Xây dựng phần mềm truy xuất nguồn gốc bằng Blockchain Mục tiêu cụ thể:

- Nghiên cứu về công nghệ Blockchain

- Nghiên cứu nền tảng Framework Blockchain Hyperledger Fabric

- Nghiên cứu về chữ ký điện tử và các nền tảng công nghệ ReactJS lập trình Website

Phạm vi nghiên cứu:

- Công nghệ Blockchain

Trang 16

1.4 Các quy định của pháp luật về truy xuất nguồn gốc hiện nay

1. Thông tư số 03/2011/TT-BNNPTNT ngày 21/01/2011 quy định về việc truy xuất nguồn gốc như sau:

- Truy xuất nguồn gốc: Khả năng truy xuất nguồn gốc có nghĩa là khả năng xác định nguồn gốc và quá trình sản xuất, chế biến, vận chuyển của một sản phẩm từ đầu đến khi nó đến tay người tiêu dùng

- Các cơ sở phải thiết lập hệ thống truy xuất nguồn gốc theo nguyên tắc là cơ sở phải lưu giữ thông tin để đảm bảo khả năng nhận diện được cơ sở sản xuất, kinh doanh/công đoạn sản xuất trước và cơ sở sản xuất, kinh doanh/công đoạn sản xuất tiếp theo sau trong quá trình sản xuất, chế biến và phân phối đối với một sản phẩm được truy xuất để đảm bảo khả năng nhận diện, truy tìm một đơn vị sản phẩm tại các công đoạn xác định của quá trình sản xuất, chế biến và phân phối sản phẩm

- Hệ thống truy xuất nguồn gốc phải bao gồm các nội dung như phạm vi áp dụng, thủ tục mã hóa và nhận diện sản phẩm, thủ tục ghi chép và lưu trữ hồ sơ, thủ tục truy xuất nguồn gốc, và phân công trách nhiệm

2 Quyết định số 100/QĐ-TTg của Thủ tướng chính phủ ngày 19/1/2019 về việc Phê duyệt đề án triển khai, áp dụng quản lý hệ thống truy xuất nguồn gốc, triển khai các đề tài, dự án, nhiệm vụ nghiên cứu, ứng dụng khoa học công nghệ để phát triển các giải pháp , công nghệ như: Blockchain, IoT và các công nghệ khác phù hợp với xu hướng phát triển của thế giới

3 Thông tư số 10/2020/TT-BKHCN ngày 30/12/2020 Thông tư quy định chi tiết và

biện pháp thi hành một số điều Nghị định số 132/2008/NĐ-CP ngày 31/12/2008 và Nghị định số 74/2018/NĐ-CP ngày 15/5/2018 của Chính phủ về sử dụng mã số, mã vạch

4 Quyết định số 2979/QĐ-BKHCN ngày 14/10/2019 về ban hành kế hoạch của Bộ

KH&CN triển khai Đề án “Triển khai, áp dụng và quản lý hệ thống truy xuất nguồn gốc”

5 Quyết định số 1221/QĐ-UBND ngày 07/4/2020 của UBND tỉnh Thanh Hóa về

việc phê duyệt “Kế hoạch triển khai, áp dụng và quản lý truy xuất nguồn gốc sản phẩm trên địa bàn tỉnh Thanh Hóa đến năm 2025”

6 Quyết định số 227/KH-UBND ngày 23/10/2020 của UBND tỉnh Thanh Hóa về

Kế hoạch đánh giá thực trang truy xuất nguồn gốc sản phẩm trên địa bàn tỉnh Thanh Hóa

7 Kế hoạch số 1043/KH-SCT của Sở công thương Thanh Hóa ngày 18/11/2020 về

việc “Triển khai thực hiện Quyết định số 1221/QĐ-UBND ngày 07/4/2020 của UBND tỉnh Thanh Hóa về việc “Phê duyệt Kế hoạch triển khai, áp dụng và quản lý truy xuất nguồn gốc sản phẩm, hàng hóa trên địa bàn tỉnh Thanh Hóa đến năm 2025”

Trang 17

8 Tiêu chuẩn quốc gia TCVN 12850:2019 về các tiêu chuẩn trong việc truy xuất nguồn gốc như: Yêu cầu chung của một hệ thống truy xuất nguồn gốc, các nguyên tắc trong truy xuất nguồn gốc, yêu cầu về khả năng tương tác, yêu cầu về dữ liệu của một hệ thống truy xuất nguồn gốc sản phẩm

9 Tiêu chuẩn quốc gia TCVN 15851:2019 quy định về tổ chức chứng nhận hệ

thống truy xuất nguồn gốc

10 Tiêu chuẩn VietGaps theo TCVN 11892-1:2017 trong hoạt động canh tác nông

Trang 18

CHƯƠNG 2: GIỚI THIỆU VỀ CÔNG NGHỆ BLOCKCHAIN VÀ FRAMEWORK BLOCKCHAIN HYPERLEDGER FABRIC 2.1 Công nghệ Blockchain

2.1.1 Giới thiệu về công nghệ Blockchain

Blockchain là một công nghệ mới được phát triển và ứng dụng rộng rãi trong những năm gần đây Với cách thức lưu trữ thông tin độc đáo, Blockchain sử dụng các khối dữ liệu, được gọi là Block, các khối này được nối liên tiếp với nhau thành một chuỗi dài Mỗi khối kế tiếp được mã hóa với mã của khối trước đó, tạo nên một hệ thống bảo mật thông tin đáng tin cậy Nếu một khối trong chuỗi bị thay đổi, toàn bộ hệ thống sẽ phát hiện và không còn đảm bảo được sự toàn vẹn thông tin Khối đầu tiên trong chuỗi được gọi là khối khởi tạo (genesis block)

Hình 7: Chuỗi khối (nguồn Internet)

Ngoài ra, Blockchain còn có 2 tính năng quan trọng là tính đồng thuận và tính phân tán của dữ liệu

Dữ liệu trong Blockchain không được lưu trữ tập trung tại một nơi như mô hình Client – Server truyền thống mà được phân tán ra các người dùng tham gia vào hệ thống (được gọi là các Node) Các Node này đều giữ bản sao của dữ liệu Blockchain và khi một số Node vì một lý do nào đó mà ngừng hoạt động thì hệ thống vẫn hoạt động bình thường với các Node còn lại, điều này khác với mô hình Client – Server khi Server bị lỗi thì toàn bộ hệ thống sẽ ngưng hoạt động

Tính đồng nghĩa là không ai làm chủ của toàn bộ hệ thống, mà tất cả mọi người tham gia vào hệ thống đều là chủ Tính đồng thuận giúp cho mọi người tuy không quen biết nhau nhưng có thể giao dịch một cách an toàn Trong hệ thống Blockchain, khi có một giao dịch mới, nó sẽ gửi tới các Node trong mạng Các Node trong mạng sẽ kiểm tra thông tin giao dịch này xem có hợp lệ không Nếu hợp lệ thì các Node sẽ xác thực giao dịch này và một khối mới chứa thông tin giao dịch đó sẽ được tạo ra Để đảm bảo tính bảo mật thì thông tin chỉ được chấp thuận khi có tối thiểu 51% số Node trong hệ thống đồng ý chấp thuận giao dịch

Trang 19

2.1.2 Khối - Block

Dữ liệu được lưu vào các khối (Block) theo thời gian, tùy theo từng hệ thống Blockchain quy định bao lâu thì sẽ tạo ra một Block mới, ví dụ như trong hệ thống tiền ảo Bitcoin thì khoảng 10 phút sẽ có một block mới được tạo ra Dữ liệu hệ thống phát sinh trong khoảng thời gian này sẽ được lưu vào block đó Dữ liệu của toàn bộ hệ thống sẽ bao gồm tất cả các Block móc nối với nhau theo thứ tự thời gian (và đây cũng chính là cái tên của công nghệ Blockchain – chuỗi khối) Block số 0 được gọi là Block khởi tạo chứa các thông tin do người phát triển ra hệ thống Blockchain tạo

2.1.3 Node mạng – Người dùng

Về cơ bản trong công nghệ Blockchain có hai dạng Node mạng (hay có thể hiểu là người dùng) Dạng thứ nhất là Full Node (người dùng chủ chốt – active user) có chức năng chứa toàn bộ dữ liệu của hệ thống (tất cả các khối), ngoài ra nó còn đóng vai trò trong việc tạo ra Block mới thông qua cơ chế đồng thuận của hệ thống Dạng thứ hai là Node thông thường (người dùng thông thường) đăng ký tài khoản trên hệ thống và dùng các chức năng được cung cấp bởi hệ thống

Ví dụ như trong hệ thống tiền ảo Bitcoin, Full Node còn có thể phân ra làm hai chức năng là chứa dữ liệu và tạo Block mới Node mà chỉ tạo Block mới mà không chứa dữ liệu còn được gọi là Miner Node (Node đào Bitcoin) Node thông thường là người dùng thông thường đăng ký một tài khoản (ví điện tử) sau đó thực hiện các giao dịch thông thường, người dùng này không tham gia vào việc chứa dữ liệu của hệ thống hay tạo Block mới

2.1.4 Hàm băm

Hàm băm (Hash) là thuật toán xáo trộn mã nhị phân của dữ liệu kỹ thuật số, sao cho dữ liệu đầu vào dù dài hay ngắn, là File dưới dạng văn bản hay hình ảnh thì khi qua hàm băm sẽ cho kết quả là một chuỗi có chiều dài cố định và không trùng lặp Nghĩa là không có việc có 2 dữ liệu đầu vào khác nhau nhưng lại cho 2 mã băm giống nhau Và hàm băm cũng là cách tạo ra mã số định danh duy nhất của các khối trong Blockchain

Hăm băm là hàm một chiều, tức là cho dữ liệu đầu vào thì ta tính được ra hàm băm, nhưng cho hàm băm thì ta không thể tính ngược lại dữ liệu đầu vào

Trong thực tế, các hàm băm được sử dụng phổ biến như MD5, SHA-1, SHA-256 có thể xử lý các dữ liệu có kích thước lớn và tạo ra mã băm với độ dài cố định Thuật toán băm được sử dụng rộng rãi trong các ứng dụng bảo mật, hệ thống cơ sở dữ liệu và các lĩnh vực khác

Trang 20

2.1.5 Chữ ký điện tử

Chữ ký điện tử là một công nghệ cho phép người dùng xác nhận tính toàn vẹn và danh tính của người ký lên văn bản của một thông điệp hoặc tài liệu điện tử

Thay vì dùng chữ ký thủ công trên giấy như trong truyền thống, chữ ký điện tử sử dụng một cặp khóa bao gồm khóa công khai và khóa bí mật để mã hóa và giải mã một thông điệp(thường là mã băm của văn bản đó)

Khóa bí mật là khóa chỉ có chủ sở hữu biết và được sử dụng để ký, trong khi khóa công khai được chia sẻ rộng rãi để người nhận có thể xác nhận xem văn bản đó có đúng là chủ sở hữu ký hay không Với chữ ký điện tử, người dùng có thể đảm bảo rằng thông điệp hoặc tài liệu không bị thay đổi và xác minh được danh tính người đã ký lên văn bản đó

Hiện tại, có nhiều thuật toán về chữ ký điện tử như: RSA, ElGamal, DSS vv

2.1.6 Cơ chế đồng thuận

Trong công nghệ Blockchain nói chung, các Full Node (người dùng chủ chốt) sẽ phối hợp với nhau theo một cơ chế nào đó để tạo ra Block mới, cơ chế như vậy được gọi là cơ chế đồng thuận (Algorithm concensus) Hiện nay có hai cơ chế đồng thuận được sử dụng phổ biến trong các hệ thống Blockchain là cơ chế đồng thuận dựa trên bằng chứng công việc (Proof of Work – PoW) và cơ chế đồng thuận dựa trên bằng chứng cổ phần (Proof of Stake – PoS)

Giao thức đồng thuận PoW (Proof of Work) là một trong những giao thức đồng thuận quan trọng trong Blockchain PoW được sử dụng để xác nhận các giao dịch và tạo ra các khối mới trên mạng Blockchain Dựa vào tính chất của Blockchain là khối liền sau luôn có thông tin mã băm của khối liền trước đó, vì vậy giao thức đồng thuận PoW ra đời

Hình 8: Block Header trong Blockchain (nguồn Internet)

Trang 21

Dựa vào hình 8, ta có thể thấy mỗi Block Header trong Blockchain bao gồm 4 tham số là: Mã băm khối trước, thời gian tạo ra Block, số nonce và mã băm của dữ liệu, trong đó tham số thời gian, mã băm của dữ liệu và mã băm của khối trước là không đổi, vì vậy để tạo ra Block mới ta cần phải tính toán số nonce phù hợp

Để tìm ra giá trị nonce, các thợ đào trên mạng phải sử dụng sức mạnh tính toán của các máy tính để giải một bài toán số học phức tạp Bài toán này thường là bài toán tìm kiếm một giá trị băm hash mà có độ khó vượt quá một ngưỡng nhất định Bằng cách thử và sai, các thợ đào sẽ tìm ra giá trị nonce phù hợp với bài toán này Khi một thợ đào tìm thấy giá trị nonce phù hợp, họ sẽ tạo ra một khối mới và chèn nó vào chuỗi khối Blockchain

Khi một khối mới được tạo ra, các nút mạng trên Blockchain sẽ kiểm tra tính hợp lệ của khối mới bằng cách xác nhận rằng giá trị băm hash của khối mới phải vượt quá ngưỡng độ khó được thiết lập trước đó Nếu giá trị băm hash của khối mới đáp ứng yêu cầu này, khối mới sẽ được chấp nhận và thêm vào chuỗi khối Blockchain Các giao dịch được chứa trong khối mới cũng sẽ được xác nhận và thêm vào Blockchain

Ngưỡng độ khó ở đây là số lượng số 0 ở đầu cho trước của mã băm Ví dụ trong hệ thống Bitcoin thì mã băm tạo ra phải có 10 chữ số 0 ở đầu thì giao dịch tạo Block đó mới được chấp thuận

Thuật toán này có ưu điểm là đạt được tính công bằng trong việc tạo Block, nhưng có nhược điểm là sẽ gây tốn rất nhiều tài nguyên để tạo Block

Trong giao thức đồng thuận PoS khác với việc đi tìm số nonce như giao thức PoW thì mỗi Full Node tham gia hệ thống sẽ có một lượng cổ phần tương ứng, lượng cổ phần có thể khác nhau tùy từng Full Node, do từng ứng dụng quy định Khi tạo mới một Block, các Full Node này sẽ „bầu‟ lên người có quyền tạo Block đó gọi là Leader, với mỗi Block khác nhau thì ta sẽ có các leader khác nhau Hiện tại có nhiều giao thức đồng thuận như: Algorand, Ouroburos, Raft, SBFT vv

2.1.7 Ứng dụng của Blockchain

Công nghệ Blockchain đã và đang được triển khai trong một số lĩnh vực có thể kể đến như:

Web 3.0: Tập trung vào việc tạo ra một môi trường web phi tập trung, nơi mà người dùng sẽ không cần phải tin tưởng vào các bên trung gian để thực hiện các giao dịch Thay vào đó, các giao dịch sẽ được xác minh và thực hiện thông qua các giao thức mã nguồn mở và công nghệ Blockchain

Tiền ảo: Áp dụng tính đồng thuận và khả năng không thể thay đổi của Blockchain

Trang 22

Sản xuất – cung ứng: Áp dụng tính không thể làm giả, không thể phá hủy sẽ giúp người sử dụng truy xuất được nguồn gốc xuất xứ sản phẩm, tăng tính cạnh tranh cho doanh nghiệp và bảo vệ quyền lợi cho người tiêu dùng

Ngân hàng: Blockchain được ứng dụng trong ngân hàng nhằm tăng tính bảo mật và minh bạch trong các giao dịch tài chính do dữ liệu không thể thay đổi được

Thương mại điện tử: Blockchain giúp đảm bảo các giao dịch giữa các bên liên quan thông qua chữ ký số, giảm rủi ro và tăng cường sự tin tưởng giữa các bên

Blockchain cung cấp một giải pháp hữu ích cho việc truyền tải và lưu trữ dữ liệu một cách an toàn và minh bạch, giúp giảm thiểu rủi ro tài chính Sự kết nối an toàn và minh bạch giữa các thiết bị điện tử có thể được đảm bảo thông qua Blockchain Vì vậy, Blockchain đã trở thành công nghệ có tiềm năng lớn để thay đổi cách thức phát triển trong nhiều lĩnh vực khác nhau

2.2 Framework Hyperledger Fabric

2.2.1 Tổng quan về Hyperledger

Hyperledger là một dự án mã nguồn mở mà Linux Foundation khởi xướng lên từ năm 2015, tới nay dự án Hyperledger đã nhận được thêm sự hậu thuẫn từ các ông lớn làng công nghệ như UBM, Intel, SAP Ariba nhằm hỗ trợ phát triển hệ thống sổ cái phân tán và các ứng dụng liên quan dựa trên công nghệ Blockchain

Blockchain là một công nghệ đang được nghiên cứu và phát triển rộng rãi trong nhiều lĩnh vực khác nhau Nó không chỉ được ứng dụng trong doanh nghiệp mà còn trong các lĩnh vực khác như tài chính, y tế, giáo dục, web3 v.v Điều này giúp cho công nghệ Blockchain trở nên linh hoạt và có khả năng đáp ứng các yêu cầu khác nhau của mỗi lĩnh vực Kết quả là nó đang được sử dụng để tạo ra mạng lưới kinh doanh và giao dịch hiệu quả hơn

Hình 9: Các dự án trong Hyperledger (nguồn Internet)

Trang 23

Các dự án trong Hyperledger Fabric: Framework:

Một số dự án con quan trọng của Hyperledger bao gồm:

1 Hyperledger Fabric: là một nền tảng Blockchain doanh nghiệp được thiết kế để

hỗ trợ các ứng dụng quản lý chuỗi cung ứng, giám sát tài sản và quản lý đồng thuận

2 Hyperledger Sawtooth: là một nền tảng Blockchain được thiết kế cho các ứng

dụng IoT và các ứng dụng liên quan đến quản lý tài sản

3 Hyperledger Burrow: là một nền tảng Blockchain được thiết kế để hỗ trợ các ứng

dụng phân quyền

4 Hyperledger Indy: là một nền tảng Blockchain được thiết kế để hỗ trợ các ứng

dụng liên quan đến danh tính số và xác thực

5 Hyperledger Iroha: là một nền tảng Blockchain được thiết kế cho các ứng dụng

thanh toán và quản lý tài sản

Tools:

1 Hyperledger Explorer: Quản trị Blockchain

2 Hyperledger Cello: Cấu hình mạng cho Blockchain

3 Hyperledger Caliper: Phục vụ đánh giá hệ thống Blockchain

4 Hyperledger QuiLt: Chuyển các giá trị giữa các hệ thống phân tán và không phân

tán

2.2.2 Tổng quan về Hyperledger Fabric

Hyperledger Fabric là một nền tảng Blockchain mã nguồn mở được phát triển bởi Linux Foundation, là một dự án của Hyperledger Fabric cung cấp một môi trường phát triển Blockchain cho các doanh nghiệp và tổ chức, cho phép họ xây dựng và triển khai các ứng dụng Blockchain với tính bảo mật cao, khả năng mở rộng và sự linh hoạt

Một trong những tính năng đáng chú ý của Fabric là nó cho phép các nhà phát triển xây dựng các smart contract bằng nhiều ngôn ngữ lập trình, bao gồm cả Java, Go và Node.js Điều này đảm bảo rằng các nhà phát triển có thể sử dụng ngôn ngữ thành thạo nhất để phát triển Blockchain

Với kiến trúc mềm dẻo và linh hoạt, Fabric có thể thích nghi và đáp ứng nhu cầu của nhiều ngành công nghiệp, bao gồm ngân hàng, tài chính, bảo hiểm và chăm sóc sức khỏe

Tuy nhiên, điều đặc biệt nổi bật của Fabric là khả năng hỗ trợ đồng thời nhiều giao thức đồng thuận khác nhau Hyperledger Fabric sử dụng các giao thức đồng thuận như PBFT và Raft để đảm bảo tính toàn vẹn và độ tin cậy của mạng Blockchain trong các

Trang 24

mạng bằng cách cho phép các Node xử lý giao dịch độc lập và đồng bộ sau đó Việc kết hợp các giao thức đồng thuận giúp Hyperledger Fabric đáp ứng các yêu cầu khác nhau của các ứng dụng Blockchain và đảm bảo tính toàn vẹn của hệ thống trong nhiều tình huống khác nhau

Sự kết hợp giữa các tính năng này giúp Fabric trở thành một trong những Framework Blockchain tốt nhất hiện nay cả về tốc độ xử lý giaoo dịch và độ trễ xác nhân giao dịch

2.2.3 Thuật toán đồng thuận trong Hyperledger Fabric

Cơ chế đồng thuận được sử dụng trong Hyperledger Fabric là cơ chế đồng thuận Raft Raft là thuật toán đồng thuận được ra đời để giải quyết bài toán sao lưu log trong hệ thống phân tán, đảm bảo tính nhất quán và an toàn

Hình 10: Cơ chế Leader – Follower trong cơ chế đồng thuận Raft (nguồn Internet)

Thuật toán Raft là một thuật toán đồng thuận dựa trên mô hình Leader - Follower, nơi mà một leader sẽ được bầu và nó sẽ chịu trách nhiệm hoàn toàn trong việc quản lý tất cả các máy khác (cụm), cụ thể là nó sẽ thực hiện replicate các log mà nó nhận được từ phía client đến tất cả các Node trong cụm Thuật toán raft có ba trạng thái cơ bản cho các Node trong cụm:

- Follower: Đây là trạng thái mặc định của các Node Các Node ở trạng thái này sẽ

nhận và áp dụng các log từ leader, và bầu chọn cho leader khi có yêu cầu

- Candidate: Đây là trạng thái khi một Node không nhận được heartbeat từ leader

trong một khoảng thời gian ngẫu nhiên Node ở trạng thái này sẽ tự bầu chọn cho chính mình và yêu cầu các Node khác bầu chọn cho mình Nếu nhận được đa số phiếu bầu, Node sẽ chuyển sang trạng thái leader Nếu không, Node sẽ quay lại trạng thái follower hoặc bắt đầu lại quá trình bầu cử

Trang 25

- Leader: Đây là trạng thái khi một Node nhận được đa số phiếu bầu từ các Node

khác Node ở trạng thái này sẽ gửi heartbeat định kỳ đến các Node khác để duy trì vai trò của mình Node ở trạng thái này cũng sẽ nhận các log từ client và replicate chúng đến các Node khác

Thuật toán Raft có ba giai đoạn chính để đảm bảo tính nhất quán của replicated log:

- Leader election: Đây là giai đoạn để bầu ra một leader cho cụm khi không có

leader hoặc leader hiện tại bị lỗi Giai đoạn này sử dụng một bộ đếm giờ ngẫu nhiên để tránh xung đột khi có nhiều Node cùng muốn trở thành leader Giai đoạn này kết thúc khi có một Node nhận được đa số phiếu bầu và gửi heartbeat đến các Node khác

- Log replication: Đây là giai đoạn để leader replicate các log mới nhận được từ

client đến các Node khác Giai đoạn này sử dụng một cơ chế gọi là index và term để xác định vị trí và nguồn gốc của các log Giai đoạn này kết thúc khi có quá nửa số Node đã nhận và áp dụng log mới vào state machine của họ

- Safety: Đây là giai đoạn để đảm bảo rằng không có hai log khác nhau có cùng

index và term trong replicated log Giai đoạn này sử dụng một số quy tắc để ngăn chặn việc ghi đè hoặc xóa các log đã được commit Giai đoạn này cũng yêu cầu rằng chỉ có log ở term hiện tại mới được commit

Cách bầu Leader trong thuật toán Raft:

- Raft sử dụng hai giá trị timeout để quản lý quá trình bầu chọn Leader: Election timeout và Heartbeat timeout Election timeout là khoảng thời gian chờ của một nút Follower cho đến khi chuyển sang trạng thái Candidate Heartbeat timeout là khoảng thời gian mà một nút Leader gửi tin nhắn trái tim (heartbeat) cho các nút Follower để duy trì quyền lãnh đạo của mình và kiểm tra sự sống còn của các Follower

- Khi một nút Follower không nhận được heartbeat từ Leader trong khoảng thời gian Election timeout, nó sẽ tự động chuyển sang trạng thái Candidate và bắt đầu một term bầu chọn mới Nó sẽ tăng số hiệu phiên bản (term) của mình lên một đơn vị, tự bầu cho mình và gửi yêu cầu bầu chọn (RequestVote) cho các nút khác trong nhóm Nó cũng sẽ reset lại Election timeout của mình để chờ kết quả bầu chọn

- Khi một nút nhận được yêu cầu bầu chọn từ một Candidate, nó sẽ kiểm tra xem nó đã bầu cho ai trong term hiện tại hay chưa và xem log của Candidate có cập nhật hơn log của nó hay không Nếu nó chưa bầu cho ai và log của Candidate không lỗi thời hơn log của nó, nó sẽ bầu cho Candidate và reset lại Election timeout của mình Nếu không, nó sẽ từ chối yêu cầu bầu chọn

Trang 26

Candidate nào nhận được đa số phiếu bầu trong khoảng thời gian Election timeout, quá trình bầu chọn sẽ lặp lại với term mới

- Khi một Leader gửi heartbeat cho các Follower, nó sẽ đính kèm số hiệu phiên bản (term) của mình Nếu một Follower nhận được heartbeat có term lớn hơn term hiện tại của nó, nó sẽ cập nhật term của mình và chuyển sang trạng thái Follower Nếu một Leader nhận được heartbeat có term lớn hơn term hiện tại của nó, nó sẽ cập nhật term của mình và chuyển sang trạng thái Follower

Sau khi hệ thống chọn ra được leader, bất kỳ yêu cầu nào từ phía client đều sẽ được gửi đến leader, leader sẽ nhận yêu cầu này và bắt đầu gửi yêu cầu tới tất cả follower trong mạng Follower sẽ sao lưu dữ liệu từ leader gửi dưới dạng log và gửi thông báo sao lưu thành công tới leader Khi leader nhận được thông báo từ hơn một nửa follower trong hệ thống, nó sẽ báo các follower thêm block này vào state machine của mình

Sau khi tất cả các follower áp dụng yêu cầu mới vào state machine của mình, leader sẽ thông báo cho client biết rằng yêu cầu đã được thực hiện thành công

Nếu một số follower không xác nhận thành công, leader sẽ gửi lại yêu cầu đến các follower đó và tiếp tục thực hiện quá trình sao lưu và áp dụng yêu cầu cho đến khi đa số follower xác nhận thành công

Cơ chế đồng thuận Raft cũng giải quyết vấn đề split-brain, một tình huống xảy ra khi mạng phân tán bị tách ra thành hai phần không thể truy cập được lẫn nhau, nhưng cả hai phần đều vẫn hoạt động một cách bình thường Trong trường hợp này, Raft sử dụng một số quy tắc để đảm bảo rằng chỉ có một leader được bầu chọn, giúp giải quyết xung đột dữ liệu giữa hai phần mạng và đảm bảo tính nhất quán của hệ thống

Ngoài ra, Raft cũng cung cấp tính năng phục hồi, cho phép hệ thống khôi phục lại dữ liệu sau khi gặp sự cố Khi một follower bị lỗi, nó có thể yêu cầu log từ leader để cập nhật lại dữ liệu bị mất Nếu leader bị lỗi, các follower sẽ tự động chuyển sang chế độ ứng cử mới leader và tiếp tục hoạt động Điều này đảm bảo tính sẵn sàng cao của hệ thống, giảm thiểu thời gian chết và đảm bảo rằng các giao dịch trong hệ thống được xử lý một cách chính xác và an toàn

Các node tham gia vào giao thức đồng thuận đều có chứng chỉ CA từ MSP để xác minh danh tính và thông tin gửi tới các peer đều được mã hóa bằng TLS

2.2.4 Cấu trúc của một mạng Hyperledger Fabric

Kiến trúc đơn giản của một mạng Hyperledger Fabric

Trang 27

Hình 11: Kiến trúc mạng của mạng Blockchain Hyperledger Fabric (nguồn Internet)

- N: Network (Mạng): Đây là toàn bộ hệ thống Hyperledger Fabric, bao gồm các

thành phần khác như orderer Node, peers, channels, smart contracts, ledgers và certificate authorities

- NC: Network Configuration (Cấu hình của mạng): Là các thiết lập được áp dụng

cho toàn bộ mạng, chẳng hạn như địa chỉ IP, mật khẩu và cấu hình mạng

- C: Channel (Kênh): Là một tập hợp các tổ chức vai trò nhất định trong cùng một

quy trình kinh doanh Ví dụ, trong một kênh về mua bán điện thoại thì sẽ có 2 tổ chức là: Nhà sản xuất điện thoại và nhà phân phối điện thoại

- CN: Channel Configuration (Cấu hình của kênh): Là các thiết lập được áp dụng

cho một kênh nhất định, chẳng hạn như số lượng và các tổ chức tham gia vào kênh đó

- R: Organization (Tổ chức): Là một tập hợp các thành viên trong mạng, được phân

chia thành các tổ chức khác nhau để quản lý quyền truy cập và quản lý dữ liệu Mỗi tổ chức có một số lượng peer và một kênh có thể có nhiều hơn 1 tổ chức

- O: Orderer Node: Là thành phần tham gia đồng thuận trong hệ thống Blockchain

Ví dụ trong hệ thống Public Blockchain thì tất cả các Node đều tham gia đồng thuận, nhưng trong Hyperledger Fabric chỉ có các Orderer Node tham gia đồng thuận

- P: Peer: Là một điểm tương tác giữa các tổ chức trong một kênh, cho phép các tổ

chức trao đổi thông tin và thực hiện các giao dịch với nhau Tất cả các giao dịch trên mạng đều phải được xác thực bởi một hoặc nhiều peer

- S: Smart Contract (Chaincode): Là một chương trình được cài đặt trên kênh, định

nghĩa rõ các struct, các hành động mà người dùng có thể thực hiện để tương tác với sổ cái

- L: Ledger (Sổ cái): Là một cơ sở dữ liệu phân tán được sử dụng để lưu trữ trạng

thái của các đối tượng trong mạng, bao gồm các giao dịch được xác thực và đồng thuận

Trang 28

thực và đồng thuận trên mạng Sổ cái được lưu trữ trên mỗi peer Node, đảm bảo tính nhất quán của dữ liệu trên mạng Có thể sử dụng nhiều loại sổ cái khác nhau trên một mạng, tùy thuộc vào nhu cầu sử dụng của từng kênh và tổ chức tham gia

- CA: Certificate Authority (Cơ quan chứng nhận): Là một thành phần quan trọng

trong Hyperledger Fabric, CA có nhiệm vụ phát hành và quản lý các chứng chỉ và định danh cho các thành viên trong mạng Ví dụ người dùng Quỳnh thuộc tổ chức R1, khi muốn tham gia vào tổ chức R1 cần yêu cầu tổ chức này tạo ra một identity (định danh) bao gồm khóa công khai, khóa bí mật và các thông tin khác, từ đó về sau người dùng Quỳnh mới có thể dùng identity đó để tương tác với mạng, mạng sẽ tự động biết đó là người dùng Quỳnh đến từ tổ chức R1

- A: Application (Ứng dụng): Là một phần mềm trên web hoặc app giúp người dùng

tương tác với mạng Hyperledger Fabric

Quy trình xây dựng mạng

Bước 1 Bắt đầu định dạng và khởi tạo mạng

Hình 12: Khởi tạo mạng ban đầu với một Orderer Node (nguồn Internet)

Quy trình xây dựng mạng Hyperledger Fabric bắt đầu bằng việc định dạng và khởi tạo mạng Đầu tiên, cần tạo một Orderer Node, chẳng hạn như Node O4 trong hình với dịch vụ Ordering Services Tổ chức R4 sẽ có quyền quản trị mạng N và thông tin này sẽ được lưu trữ trong cấu hình mạng NC4 Bên cạnh đó, Node CA4 sẽ được sử dụng để phát hành các Identity cho người dùng, peer và ứng dụng đến từ tổ chức R4

Bước 2 Thêm một tổ chức quản trị

Trang 29

Hình 13: Thêm cấu hình mạng (nguồn Internet)

Ban đầu, cấu hình mạng NC4 chỉ cho phép tổ chức R4 có quyền quản trị trên mạng Để thêm một tổ chức quản trị khác vào mạng, chẳng hạn như tổ chức R1, cần thực hiện các thao tác sau:

- Tổ chức R4 cập nhật cấu hình mạng NC4 để thêm tổ chức R1 làm quản trị viên Sau khi hoàn tất, cả R1 và R4 sẽ có quyền ngang nhau đối với việc quản trị mạng

- Thêm CA1 vào để cung cấp identity cho người dùng của tổ chức R1 Sau đó, tất cả người dùng từ cả R1 và R4 đều có quyền quản trị mạng

- Mặc dù Orderer Node O4 đang chạy trên một cơ sở hạ tầng của tổ chức R4, nhưng tổ chức R1 cũng sẽ có quyền truy cập và quản trị O4 cùng với R4

Bước 3 Định nghĩa 1 consortium

Mạng hiện tại được quản lý bởi R1 và R4 và hầu như không có nhiều hoạt động có thể thực hiện trên mạng Để đưa các hoạt động kinh doanh vào mạng, điều đầu tiên cần làm là xác định một consortium (tập đoàn) - một nhóm các tổ chức có chung mục tiêu hoạt động kinh doanh như sản xuất, phân phối sản phẩm, và cung cấp dịch vụ

Hình 14: Thêm một consortium (nguồn Internet)

Trong ví dụ này, một quản trị viên mạng (R1 hoặc R4) sẽ định nghĩa một

Trang 30

theo CA2 là cơ quan cấp chứng chỉ cho người dùng, Node và ứng dụng đến từ tổ chức R2 trong consortium Tùy theo doanh nghiệp mà consortium có số lượng tổ chức tùy ý

Bước 4 Tạo một channel cho một consortium

Kênh là một phương tiện truyền thông thông qua đó các thành viên của một consortium có thể giao tiếp với nhau Một mạng có thể có nhiều consortium và nhiều kênh, tuy nhiên, mỗi consortium chỉ có thể có một kênh Ví dụ, một kênh được gọi là C1 đã được tạo cho consortium X1 Cấu hình của kênh C1 được lưu trữ trong cấu hình kênh CC1, hoàn toàn tách biệt với cấu hình mạng NC4 CC1 được quản lý bởi R1 và R2, hai tổ chức này có quyền ngang nhau đối với C1 và R4 không có quyền gì trong CC1

Hình 15: Thêm một kênh mới vào mạng (nguồn Internet)

Một kênh C1 đã được tạo cho consortium X1 Cấu hình của kênh C1 được lưu trong cấu hình kênh CC1, tách biệt hoàn toàn với cấu hình mạng NC4 CC1 được quản lý bởi R1 và R2, 2 tổ chức này có quyền ngang nhau đối với C1 R4 không có quyền gì trong CC1

Kênh C1 cung cấp một cơ chế liên lạc riêng cho các tổ chức trong X1 Mặc dù kênh này là một phần của mạng N, nhưng nó tách biệt hoàn toàn với mạng N tuy nhiên, kênh này chỉ dành cho xử lý giao dịch giữa R1 và R2, không bao gồm R4 Trong sơ đồ này, tổ chức R1 hoặc R4 có thể đã tạo ra kênh C1, và một kênh có thể có bất kỳ số lượng tổ chức nào được kết nối với nó

Cấu hình kênh CC1 chứa các quy định về quyền mà R1 và R2 có trên kênh C1, và R4 không có quyền gì trong kênh này R4 chỉ có thể tương tác với C1 nếu được thêm vào cấu hình kênh CC1 bởi R1 hoặc R2 R4 không thể tự thêm mình vào kênh C1

Hyperledger Fabric rất mạnh về tính riêng tư, và tính riêng tư của nó đến từ các kênh Các kênh cho phép các tổ chức chia sẻ cơ sở hạ tầng mà vẫn giữ được tính riêng tư của mình Bất kỳ cập nhật cho cấu hình mạng NC4 từ thời điểm này trở đi không ảnh hưởng trực tiếp đến cấu hình kênh CC1 Điều này cho phép các tổ chức cấu thành kênh

Trang 31

có thể liên lạc riêng tư với nhau, và dữ liệu trong một kênh được cách ly hoàn toàn với phần còn lại của mạng, cũng như các kênh khác

Bước 5 Peer và Ledger

Kênh được sử dụng để kết nối các tổ chức với nhau trong hệ thống Mỗi peer sẽ lưu trữ một bản sao của sổ cái để người dùng thuộc các tổ chức khác nhau nhưng cùng một kênh có thể truy cập Ví dụ, peer P1 của tổ chức R1 lưu trữ bản sao sổ cái L1 để người dùng từ tổ chức R1 có thể truy cập

Hình 16: Kết nối các peer vào kênh (nguồn Internet)

Một peer P1 đã tham gia kênh C1 Mỗi Kênh sẽ chỉ có một sổ cái duy nhất, mỗi Peer sẽ lưu trữ 1 bản sao của sổ cái này để người dùng từ tổ chức tương ứng truy cập Chẳng hạn như P1 của tổ chức R1 lưu trữ bản sao của sổ cái L1 để người dùng từ tổ chức R1 truy cập

Sổ cái L1 được lưu trữ vật lý trên peer P1, nhưng được lưu trữ logic trên kênh C1 Nhờ đó, P1 và O4 có thể giao tiếp với nhau thông qua kênh C1.Lúc này, P1 và O4 có thể giao tiếp với nhau thông qua kênh C1

Mọi thành phần từ người dùng đến peer đều cần có 1 identity Vì thế P1 là cũng có một identity do CA1 cấp, xác định P1 thuộc tổ chức R1

Khi P1 được khởi động, nó có thể tham gia kênh C1 bằng cách gửi yêu cầu tham gia tới O4 Sau đó, O4 sử dụng cấu hình kênh CC1 để xác định quyền của P1 trên kênh này Ví dụ, CC1 xác định xem P1 có thể đọc và/hoặc ghi thông tin vào sổ cái L1 hay không

Bước 6 Application và Smart Contract ( Chaincode)

Lúc này, kênh C1 đã có một sổ cái trên đó, sau khi sổ cái được tạo trên kênh C1, các ứng dụng có thể kết nối và sử dụng các nghiệp vụ kinh doanh đã được định nghĩa

Trang 32

Hình 17: Applications tương tác với mạng (nguồn Internet)

Một Smart Contract S5 được triển khai trên peer P1 Ứng dụng A1 của tổ chức R1 có thể sử dụng S5 để truy cập vào sổ cái L1 thông qua peer P1 Hiện tại, kênh có A1, P1 và O4

Mặc dù có vẻ như A1 có thể truy cập trực tiếp vào sổ cái L1 thông qua P1, thực tế là tất cả các quyền truy cập được quản lý thông qua Smart Contract S5 Nói cách khác, S5 định nghĩa các trường hợp sử dụng để truy cập vào sổ cái L1 và cung cấp một tập hợp các quy tắc mà theo đó sổ cái L1 có thể được truy cập hoặc cập nhật bởi ai và như thế nào Vì vậy, ứng dụng A1 phải thông qua Smart Contract S5 để tương tác với sổ cái L1

Các nhà phát triển ứng dụng trong mỗi tổ chức có thể tạo Smart Contract để triển khai các quy trình kinh doanh được chia sẻ bởi các thành viên của consortium Mỗi kênh có thể chứa nhiều Smart Contract để hỗ trợ nhiều quy trình kinh doanh khác nhau

Bước 6.1 Cài một smart contract

Sau khi hoàn thành việc code smart contract S5, quản trị viên trong tổ chức R1 cần cài đặt nó trên một hoặc nhiều peer trên kênh C1 Việc này sẽ cho phép peer P1 có thể truy cập vào logic triển khai của S5 - các đoạn mã mà smart contract sử dụng để truy cập sổ cái L1

Với nhiều peer trên một kênh, tổ chức có thể lựa chọn cài đặt smart contract trên các peer tùy ý, thay vì cài đặt trên tất cả các peer trên kênh

Để các thành phần khác trên kênh C1 biết về smart contract vừa được cài đặt, chúng ta cần khởi tạo nó trên kênh C1 Trong ví dụ này, chỉ có một peer P1, vì vậy một quản trị viên trong tổ chức R1 phải khởi tạo S5 trên kênh C1 bằng cách sử dụng P1 Sau khi khởi tạo, mọi thành phần trên kênh C1 đều biết về sự tồn tại của S5 và interface của smart contract đã được cung cấp cho các thành phần này Điều này có nghĩa là bây giờ S5 có thể được gọi bởi ứng dụng khách A1

Trang 33

Mặc dù mọi thành phần trên kênh hiện có thể truy cập S5 thông qua giao diện đã được cung cấp, nhưng chúng không thể truy cập vào logic triển khai của S5 Việc truy cập logic này vẫn được giữ riêng tư đối với những peer đã cài đặt nó, trong trường hợp này là P1 Từ khái niệm, điều này có nghĩa là chỉ có giao diện của smart contract được khởi tạo Việc cài đặt một smart contract hiểu đơn giản là nó được lưu trữ trên một peer, trong khi việc khởi tạo smart contract hiểu là nó được giới thiệu và cung cấp cho các thành phần khác trên kênh

Endorsement policy ( chính sách chứng thực )

Chính sách chứng thực (endorsement policy) là một phần quan trọng trong định nghĩa chaincode tại thời điểm khởi tạo Chính sách này xác định các tổ chức nào phải phê duyệt các giao dịch trước khi chúng được chấp nhận vào bản sao của sổ cái bởi các tổ chức khác Chính sách chứng thực có thể được xác định dưới dạng "AND" hoặc "OR" giữa các tổ chức tham gia, ví dụ như "R1 AND R2" hoặc "R1 OR R2" Nó giúp đảm bảo tính toàn vẹn của sổ cái và ngăn chặn các hành động gian lận hoặc không đáng tin cậy

Invoking Smart Contract ( gọi hợp đồng thông minh )

Khi một smart contract được cài đặt và khởi tạo trên một kênh, nó có thể được gọi bởi ứng dụng thông qua việc gửi đề xuất giao dịch cho các peer thuộc sở hữu của các tổ chức được chỉ định bởi chính sách chứng thực Việc gọi smart contract sử dụng đề xuất giao dịch như là tham số đầu vào cho smart contract, bao gồm tên hàm và các tham số đầu vào của hàm đó Sau đó, smart contract sẽ sử dụng các tham số này để tạo ra phản hồi giao dịch được chứng thực và trả lại cho ứng dụng thông qua peer

Bước 7 Network completed

Hình 18: Cấu trúc mạng hoàn thiện (nguồn Internet)

Việc thêm các peer P2 và A2, CA2, cài đặt Smart contract cho P2 tương tự như đối với R1

Ngày đăng: 03/04/2024, 08:35

Xem thêm:

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

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

TÀI LIỆU LIÊN QUAN