Nền tảng Blockchain Hyperledger Fabric

Một phần của tài liệu Ứng dụng nền tảng blockchain trong bài toán quản lý nguồn gốc và đặc tính của dữ liệu mở (Trang 32 - 41)

Figure 8 Các nền tảng blockchain của Hyperledger

Hyperledger fabric là 1 trong nhiều nền tảng blockchain được thiết kế để phục vụ bối cảnh doanh nghiệp, hỗ trợ đáp ứng những khả năng hoàn toàn khác biệt so với các nền tảng khác.

Fabric được phát triển dưới sự bảo trợ của Linux Foundation, nơi có lịch sử phát triển lâu dài và rất thành công trong việc xây dựng các dự án nguồn mở cũng như phát triển cộng đồng bền vững và hệ sinh thái thịnh vượng. Cộng động của Fabric đã phát triển với sự đóng góp của hơn

35 tổ chức và hơn 200 các lập trình viên trên khắp thế giới. Kiến trúc của Fabric theo hướng module hoá, cho phép tuỳ chỉnh linh hoạt các cấu hình sao cho phù hợp cho các yêu cầu thường xuyên đổi mới, đòi hỏi khả năng tối ưu hoá của các ngành đặc thù như ngân hàng, tài chính, bảo hiểm, y tế …. Fabric là nền tảng blockchain đầu tiên hỗ trợ việc xây dựng hợp đồng thông minh bằng các ngôn ngữ lập trình phổ biến (GPL) như Java, Go và Node.js, thay vì các ngôn ngữ DSL theo từng nền tảng như solidity cho Ethereum, Archetype cho Tezos, Simplicity cho bitcoins … Điều này giúp cho việc tiếp cận Fabric trở nên dễ dàng và nhanh chóng với các lập trình viên

3.4.1. Kiến trúc của mạng lưới blockchain hyperledger fabric

Figure 9 Minh hoạ kiến trúc của Hyperledger Fabric

Mạng lưới blockchain Hyperledger Fabric là một hệ thống bao gồm rất nhiều máy tính được kết nối với nhau. Mỗi máy tính gọi là một nút (Peer) trong mạng lưới, mỗi nút đảm nhiệm một vai trò khác nhau trong hệ thống. Chi tiết về vai trò của từng nút sẽ được trình bày cụ thể ở phần sau của chương.

Khái quát hoá đơn giản cấu trúc mạng lưới

Một tập hợp các nút được gọi là một tổ chức (Organization). Ta có thể hiểu đơn giản, tập hợp các máy tính của phòng kinh doanh tham gia hệ thống là tổ chức của phòng kinh doanh, tương tự ta có các tổ chức phòng tài chính, phòng nhân sự, phòng marketing … Mỗi phòng ban sẽ có

vai trò, quyền lợi và trách nhiệm khác nhau tạo thành một bộ máy vận hành của công ty. Trong mỗi phòng ban cũng sẽ có sự phân chia vai trò cho từng nhân viên, và mỗi phòng ban cũng sẽ có quy định riêng mà các nhân viên phải tuân thủ đồng thời các phòng ban cũng phải chấp hành các điều lệ chung của công ty.

Mỗi phòng ban sẽ có một ban quản lý, chịu trách nhiệm quản lý thông tin định danh của các thành viên trong tổ chức (MSP - Membership service provider)

Trong quá trình vận hành, giữa các phòng ban sẽ có rất nhiều các kênh thông tin (Channel) riêng với nhau. Mỗi kênh thông tin đều mang tính riêng tư, chỉ có các phòng ban tham gia mới có thể biết được

Trong công ty, luôn có một phòng ban đóng vai trò trung gian, điều khiển và giám sát, kiểm tra quá trình vận hành của hệ thống, đảm bảo các nguyên tắc của mạng lưới luôn được tuân thủ. Đó chính là Orderer - ta có thể hiểu tương tự như giám đốc điều hành. Một công ty có thể có một hoặc nhiều giám đốc điều hành

Để hiểu chi tiết hơn về từng thành phần trong mạng lưới, ta lần lượt đi qua các khái niệm trong blockchain Hyperledger Fabric

3.4.2. Một số khái niệm cơ bản trong Hyperledger Fabric a) Bản ghi phân tán- Distributed ledger

Figure 10 Cấu trúc bản ghi trong hyperledger fabric

Đây cũng là khái niệm chung của các hệ thống blockchain. Bản ghi (ledger) là nơi ghi lại toàn bộ các giao dịch diễn ra trong hệ thống và được lưu trữ theo hình thức phi tập trung - phân tán.

Với mỗi node tham gia hệ thống đều sẽ lưu giữ 1 phiên bản của bản ghi. Bản ghi (ledger) có thuộc tính chỉ cho phép thêm mới (append-only) và sử dụng các kỹ thuật mã hoá đảm bảo rằng một giao dịch (transaction) khi đã được thêm vào bản ghi là không thể thay đổi hoặc sửa chữa.

Thuộc tính bất biến này rất phù hợp cho việc xác nhận nguồn gốc thông tin ( data provenance), vì vậy hệ thống blockchain đôi khi được mô tả là hệ thống bằng chứng (system of proof) Trong Hyperledger Fabric, thông tin của bản ghi được chia thành 2 phần chính, một là lịch sử của tất cả các giao dịch và hai là trạng thái hiện tại - world state (kết quả sau cùng khi thực hiện tất cả các giao dịch). Tuỳ chọn database lưu trữ world state trong Hyperledger có 2 lựa chọn là

• LevelDB

• CouchDB

LevelDB là cấu hình mặc định trong Hyperledger Fabric, lưu trữ dữ liệu dưới dạng Key-Value.

CouchDb lưu trữ dữ liệu dưới dạng JSON document store, và hỗ trợ đa dạng hơn LevelDB các câu truy vấn phức tạp

b) Nhà phát hành chứng chỉ - Certificate Authority – CA

Figure 11 Mô hình các chứng chỉ trong hyperledger fabric

Là một trong những thành phần hết sức quan trọng của hệ thống , chịu trách nhiệm quản lý và phát hành các chứng chỉ (certificate). Trong Hyperledger Fabric, tất cả các thành phần, các hoạt động đều được định danh bằng các chứng chỉ. Đây chính là nơi đảm bảo Hyperledger Fabric là một Permissioned blockchain - chỉ những thành phần được cấp phép mới có thể tham gia và thực hiện giao dịch trong hệ thống. Dựa vào các chứng chỉ, ta có thể biết định danh nào là một người dùng, định danh nào là một nút, nút đó có vai trò gì, tham gia tổ chức nào, tổ chức tham gia kênh truyền nào hoặc người dùng đó có quyền gì, thuộc tính gì ….Vì vậy thông thường trong hệ thống sẽ có rất nhiều CA, mỗi tổ chức khác nhau sẽ có một CA của riêng mình chịu trách nhiệm quản lý chứng chỉ cho toàn bộ hệ thống đó. Các chứng chỉ được cấp phát trong Hyperledger Fabric đều theo định dạng tiêu chuẩn X509

c) Tổ chức – Organizations

Các tổ chức (Organization) là thành viên chính trong hệ thống Hyperledger Fabric. Nhiều tổ chức kết hợp với nhau, trao đổi thông tin qua các kênh truyền dữ liệu để tạo nên mạng lưới blockchain. Mỗi tổ chức có quyền khác nhau và được xác định bởi một tập hợp các quy định, chính sách trong cấu hình mạng lưới khi tham gia

d)Kênh truyền thông tin - Channel

Một điểm mới và khác biệt được Hyperledger Fabric mang tới đó là khái niệm kênh truyền thông tin (channels) cho phép các tổ chức (organization) tham gia, trao đổi thông tin và thực hiện các giao dịch một cách bảo mật và riêng tư. Các tổ chức không tham gia vào kênh truyền

sẽ không bao giờ có quyền truy cập vào bất kỳ giao dịch hoặc thông tin của kênh truyền đó.

Một tổ chức có thể tham gia nhiều kênh cùng lúc

e) Hợp đồng thông minh - Smart Contract

Là một bộ mô tả các giao thức, các điều khoản, thoả thuận giữa các bên tham gia. Toàn bộ hoạt động của Smart Contract được thực hiện một cách tự động và không có sự can thiệp từ bên ngoài, hay thông qua một bên thứ ba trung gian. Những giao dịch được thực hiện bằng các smart contract rất minh bạch, có thể dễ dàng truy xuất được và không thể bị can thiệp hoặc đảo chiều. Các điều khoản trong Smart Contract tương đương với một hợp đồng có pháp lý và được ghi lại dưới ngôn ngữ của lập trình

Trong Hyperledger fabric, Chaincode tương đương với khái niệm hợp đồng thông minh.

Chaincode hỗ trợ cập nhật thông tin một cách nhất quán cũng như truy vấn các giao dịch một cách hiệu quả. Ngoài ra, với chaincode, mỗi node tham gia có vai trò khác nhau có thể thực hiện các nhiệm vụ khác nhau trong hệ thống

f) Các nút trong hệ thống - Peer node

Blockchain là một hệ thống mạng liên kết các nút ngang hàng với nhau. Mỗi peer đều lưu trữ 1 bản sao của bản ghi. Đối với các public blockchain, các peer đều có vai trò như nhau khi tham gia hệ thống, tuy nhiên đối với Hyperledger, mỗi Peer có thể nắm giữ một vai trò khác nhau, đóng góp vào quy trình vận hành của hệ thống

Trong Hyperledger, có 3 vai trò được phân chia

Endorser: Đảm nhận nhiệm vụ chứng thực giao dịch, khi có một yêu cầu giao dịch trong hệ thống, các endorser peer sẽ nhận được yêu cầu này sẽ tiến hành kiểm tra tính hợp lệ của yêu cầu và thực thi các hợp đồng thông minh dựa vào thông tin bản ghi đang lưu trữ. Kết quả thực thi không được cập nhật vào bản ghi mà được gửi lại cho client.

Chỉ những nút đảm nhiệm vai trò endorser sẽ được cài đặt chaincode, các nút còn lại chỉ cần lưu trữ bản ghi

Anchor: Đảm nhận nhiệm vụ nhận thông tin cập nhật bản ghi, sau đó broadcast toàn bộ thông tin cập nhật cho các peer còn lại trong tổ chức. Thông thường một tổ chức gồm nhiều peer, sẽ có ít nhất 1 anchor peer. Các tổ chức chỉ có thể liên lạc với nhau thông qua các anchor peer này, và mọi cập nhật thông tin ở anchor peer sẽ được update lại cho các peer trong cùng tổ chức

Orderer: Đây là nút liên lạc trung tâm của toàn bộ hệ thống blockchain, là nơi chịu trách nhiệm cho quá trình đồng thuận diễn ra, là nơi sắp xếp và đảm bảo thứ tự của các giao dịch trong trong block và tiến hành đóng block. Sau khi đóng block, thông tin của block sẽ được Orderer peer gửi về các anchor peer của các tổ chức để cập nhật bản ghi Một peer có thể đảm nhiệm cùng lúc nhiều vai trò khác nhau

g) Cơ chế đồng thuận consensus trong hyperledger

Trong hệ thống phi tập trung (decentralized system), có rất nhiều nút trong hệ thống, giao thức đồng thuận là quy trình đồng bộ hoá các dữ liệu sao cho chỉ các giao dịch hợp lệ được cập nhật và đảm bảo các giao dịch được cập nhật theo cùng một thứ tự. Đối với bất kỳ loại blockchain nào, ta cũng có thể xem giao thức đồng thuận là trái tim, luật chơi của hệ thống. Bất cứ ai tham gia đều phải tuân thủ và không được phạm luật.

Đối với các Public Blockchain như Ethereum hay Bitcoin, các nút có vai trò như nhau và đều có thể tham gia quá trình đồng thuận. Các nút được khuyến khích kiểm tra tính hợp lệ của giao dịch thông qua hình thức giải quyết bài toán như Proof of Work trong Bitcoin hoặc thông qua sức mạnh tiền tệ như Proof of Stake trong Ethereum nhằm giành quyền đóng block

Tuy nhiên trong HF, mỗi nút có vai trò khác nhau vì vậy quá trình đồng thuận trải qua rất nhiều giai đoạn, mỗi nút lại tham gia 1 giai đoạn khác nhau. Ta có thể chia thành 3 giai đoạn chính

• Giai đoạn chứng thực - Endorsement (Bước 1 tới bước 3)

• Giai đoạn sắp xếp - Ordering (4 - 5)

• Giai đoạn xác nhận và cam kết - Validation and Commitment (bước 6)

Figure 12 Tiến trình đồng thuận trong hyperledger fabric

1. Người dùng gửi yêu cầu đề xuất thực hiện giao dịch thông qua client, yêu cầu này sẽ được đánh dấu bằng chữ ký điện tử của người tham gia. Các đề xuất này sẽ được gửi tới các nút chứng thực (endorser) của các tổ chức liên quan.

2. Sau khi các nút chứng thực (endorser) nhận được yêu cầu xác thực giao dịch, sẽ tiến hành kiểm tra định danh chữ ký của người dùng, nếu qúa trình kiểm tra định danh thành công, tiến hành quá trình giả lập kết quả giao dịch thông qua hợp đồng thông

minh và dữ liệu đang được lưu trữ trên bản ghi của nút. Kết quả thực thi được đánh dấu bằng chữ ký điện tử của nút chứng thực và gửi về lại cho client

3. Client thu thập và kiểm tra toàn bộ các kết qủa chứng thực, đảm bảo chữ ký của các kết quả là đúng và so sánh kết quả giữa các nút chứng thực có giống nhau hay không.

4. Toàn bộ kết quả thực thi cùng với yêu cầu giao dịch được client gửi về cho nút sắp xếp (Ordering Peer)

5. Nút Sắp xếp (Ordering) nhận các kết quả và yêu cầu giao dịch, tạo ra block mới, sắp xếp thứ tự trong block, kiểm tra và đảm bảo các quy định chứng thực được tuân thủ 6. Thông tin về block mới được gửi về cho các nút neo (Anchor peer), các nút neo cập

nhật bản ghi của mình cũng như gửi thông tin đến các nút còn lại trong tổ chức để cùng cập nhật

Một phần của tài liệu Ứng dụng nền tảng blockchain trong bài toán quản lý nguồn gốc và đặc tính của dữ liệu mở (Trang 32 - 41)

Tải bản đầy đủ (PDF)

(111 trang)