6 Hiện thực và đánh giá thực nghiệm
5.1 Kiến trúc kỹ thuật tổng quan
Như đã trình bày ở các chương trước, việc lưu trữ thông tin trên Blockchain sẽ được thực hiện bằng cách gửi một giao dịch tương tác với Hợp đồng thông minh. Mỗi khi canh tác sản xuất, người sử dụng đều phải ghi nhật ký lại và tạo thành một giao dịch Blockchain, vì vậy số lượng giao dịch là rất lớn khi có nhiều người dùng đồng thời sử dụng. Lưu ý rằng, các giao dịch này không liên quan tới việc chuyển - nhận tiền mã hóa mà chỉ sử dụng để lưu trữ các thông tin trên mạng Blockchain. Để đáp ứng được yêu cầu trên, thì kiến trúc kỹ thuật tổng quan cần được thiết kế theo định hướng như sau:
• Khả năng xử lý giao dịch: Do hạn chế của nền tảng Blockchain (về số lượng tối đa giao dịch có thể xử lý tại một thời điểm và thời gian xử lý một khối dữ liệu)[50] nên kiến trúc cần được thiết kế để có thể “tận dụng” gom những cơng đoạn giống nhau vào cùng một giao dịch hoặc tối thiểu số giao dịch cần gửi lên Blockchain để đảm bảo hiệu năng và đáp ứng được một lượng lớn người dùng.
5.1 Kiến trúc kỹ thuật tổng quan
• Tính minh bạch và riêng tư của dữ liệu: Tận dụng tính minh bạch của cơng nghệ Blockchain, tất cả dữ liệu truy xuất nguồn gốc sẽ được lưu trữ để mọi tác nhân có thể tra cứu và xác thực trên nền tảng Blockchain[51]. Tuy nhiên, để đảm bảo tính riêng tư của dữ liệu (đặc biệt là các dữ liệu liên quan tới kinh doanh) thì sẽ có một phần dữ liệu sẽ được lưu trữ dưới dạng mã hóa. • Thân thiện với người sử dụng: Đối tượng sử dụng giải pháp phần mềm này
đa phần sẽ là nông dân - những người chưa quen với cơng nghệ. Vì vậy giải pháp phần mềm (đặc biệt là áp dụng công nghệ mới như Blockchain) cần được thiết kế sao cho đơn giản, khơng liên quan tới tiền mã hóa hay việc trả phí giao dịch. Ngồi ra, cũng cần phải lựa chọn nền tảng Blockchain hỗ trợ các công cụ để người dùng dễ dàng đọc hiểu và đối chiếu dữ liệu được lưu trữ trên Blockchain.
Với các mục tiêu trên, giải pháp phần mềm sẽ được hiện thực theo kiến trúc bao gồm 4 lớp. Kiến trúc này được cải tiến dựa trên kiến trúc mà tác giả đã trình bày trong cơng bố khoa học [52]:
• Lớp ứng dụng: Là tập hợp bao gồm các ứng dụng phần mềm giúp cho người dùng có thể ghi lại nhật ký sản xuất cũng như quản lý các thơng tin liên quan tới q trình sản xuất giữa các tác nhân trong chuỗi giá trị. Bên cạnh đó, lớp này cũng bao gồm cổng truy xuất nguồn gốc - nơi sẽ hiển thị các thông tin truy xuất khi người tiêu dùng quét mã QR trên sản phẩm.
• Lớp xử lý dữ liệu Blockchain: Lớp này đóng vai trị bổ sung cho lớp ứng dụng, hiện thực các chức năng liên quan tới việc chuẩn bị dữ liệu giao dịch, gửi giao dịch cũng như việc định thời các giao dịch trên Blockchain. Các tác vụ trên nhằm tránh các xung đột về dữ liệu phát sinh trong quá trình người dùng thực hiện các chức năng có liên quan tới cơng nghệ Blockchain. • Lớp Hợp đồng thơng minh: Đây là phần quan trọng nhất của một ứng dụng
phi tập trung, tại lớp này sẽ mơ hình hóa các quy trình nghiệp vụ và số hóa các tác nhân trong hệ sinh thái liên quan tới truy xuất nguồn gốc. Thông qua lớp này, các thơng tin được lưu trữ có cấu trúc và có thể truy vết trên mạng lưới Blockchain.
5.1 Kiến trúc kỹ thuật tổng quan
• Lớp mạng lưới Blockchain: Đây là mạng lưới Blockchain mà tác giả sẽ nghiên cứu, phân tích, chọn lựa để xây dựng giải pháp phần mềm. Nhìn chung, lớp mạng lưới này cần phải đảm bảo được các tiêu chí đã phân tích ở các chương trước đó, bao gồm các tiêu chí về khả năng xử lý giao dịch, phí giao dịch và khả năng tương tích với máy ảo Ethereum.
Nhìn chung, về mặt ứng dụng được sử dụng bởi người dùng cuối thì một phần mềm truy xuất nguồn gốc sẽ bao gồm 04 mô-đun phần mềm nhỏ, đảm nhiệm các vai trò khác nhau và được sử dụng bởi những tác nhân khác nhau, cụ thể sẽ bao gồm: mô-đun các dịch vụ lõi, mô-đun quản trị doanh nghiệp, mô-đun nhập liệu và mô-đun cổng truy xuất nguồn gốc. Các mô-đun này sẽ tương tác trực tiếp với nhau và xoay quanh nền tảng Blockchain.
Nếu như các mô-đun phần mềm nhỏ trên thuộc lớp ứng dụng, thì nền tảng Blockchain sẽ bao gồm 03 lớp cịn lại trong kiến trúc kỹ thuật tổng quan trình bày ở hình 5.1. Lớp xử lý dữ liệu Blockchain kết hợp với mô-đun các dịch vũ lõi (ở lớp ứng dụng) sẽ đóng vai trị là cầu nối giữa ứng dụng phần mềm và lớp Hợp đồng thơng minh. Trong khi đó, lớp Hợp đồng thơng minh sẽ phụ trách xử lý các lo-gic nghiệp vụ của phần mềm, cuối cùng dữ liệu sẽ được lưu trữ ở lớp mạng lưới Blockchain.
5.2 Nền tảng Blockchain
5.2 Nền tảng Blockchain
5.2.1 Mạng lưới Blockchain
Như đã trình bày ở chương 03, tác giả sẽ tiếp cận công nghệ Blockchain bằng cách xây dựng trên một mạng lưới Blockchain đã có sẵn và thừa kế tồn bộ các tính chất của hệ thống đó. Hiện tại trên thế giới đang có rất nhiều mạng lưới Blockchain khác nhau, nổi tiếng nhất có thể kể đến như Bitcoin1, Ethereum2, Binance Smart Chain3, Cardano4,... Mỗi mạng lưới Blockchain này sẽ giải quyết một vấn đề nhất định và đa số là trong lĩnh vực tài chính, thanh toán. Một mạng lưới Blockchain phù hợp để xây dựng các ứng dụng phần mềm phi tập trung thì cần phải có khả năng hỗ trợ lập trình (hay nói cách khác phải hỗ trợ Hợp đồng thông minh).
Theo thống kê của CoinMarketCap thì tính đến ngày 29/12/2021 trên thế giới đang có 135 dự án Blockchain được gán nhãn là hỗ trợ chức năng lập trình Hợp đồng thơng minh với nhiều ngơn ngữ khác nhau. Tuy nhiên trong thực tế thì do sự hồn thiện và hiệu quả mạng lưới Ethereum, nên hầu hết các mạng lưới Blockchain sẽ được thiết kế để tương thích với máy ảo EVM. Cần lưu ý rằng, hầu hết các mạng lưới Blockchain công khai sẽ yêu cầu dùng tiền mã hóa để làm phí xử lý giao dịch nhằm duy trì mạng lưới.
Lấy ví dụ như mạng lưới Polygon, được xem là loại Blockchain có phí xử lý giao dịch rẻ nhất trong dịng EVM, thì cũng đang mất khoảng $0.05 (tương đương 1,160 VND) cho một giao dịch chuyển tiền mã hóa đơn giản5. Như vậy, nếu áp dụng trên mạng lưới này thì mỗi lần người nơng dân ghi nhận thông tin nhật ký sản xuất, nông dân sẽ tốn 1,160 đồng và chưa kể là mỗi nông dân phải sở hữu tiền mã hóa (của mạng lưới Polygon) trong địa chỉ Blockchain của họ. Điều này khiến cho việc triển khai phần mềm truy xuất nguồn gốc là gần như không khả thi nếu áp dụng mạng lưới Blockchain cơng khai.
Vì lý do trên, tác giả sẽ lựa chọn mạng lưới Blockchain dành cho doanh 1https://bitcoin.org/bitcoin.pdf
2https://ethereum.org/en/whitepaper/
3https://github.com/binance-chain/whitepaper/blob/master/WHITEPAPER.md
4https://cardano.org/what-is-ada/
5.2 Nền tảng Blockchain
nghiệp, đặc điểm của mạng lưới Blockchain này là doanh nghiệp sẽ tự triển khai và vận hành các nút trong mạng lưới. Mục tiêu hướng tới việc lưu trữ dữ liệu phi tập trung và minh bạch trên mạng lưới Blockchain mà khơng cần tiền mã hóa làm phí giao dịch. Bảng 5.1 so sánh giữa các mạng lưới Blockchain dành cho doanh nghiệp:
Bảng 5.1: Bảng so sánh giữa các mạng lưới Blockchain dành cho doanh nghiệp
Nền tảng Mạng lưới Blockchain Luật đồng thuận Sử dụng tiền mã hóa Tương thích máy ảo EVM Hỗ trợ API truy vấn dữ liệu Hỗ trợ Block Explorer tra cứu dữ liệu Quorum6 Ethereum (Hyper- ledger Besu, GoQuorum) Ethash, Clique, IBFT 2.0, Quorum IBFT 1.0, QBFT, RAFT Khơng Có Có Khơng Sử dụng mã nguồn mở VBChain7 Ethereum (Hyper- ledger Besu, GoQuo- rum, Open Ethereum) Ethash, Clique, IBFT 2.0, Quorum IBFT 1.0, QBFT Khơng Có Có Có 6https://consensys.net/quorum/
5.2 Nền tảng Blockchain Hyperledger Fabric8 Hyperledger Fabric Kafka,
Raft Khơng Khơng Có
Khơng Sử dụng mã nguồn mở Hyperledger Besu9 Ethereum (Hyperledger Besu) Ethash, Clique, IBFT 2.0, Quorum IBFT 1.0, QBFT Khơng Có Có Khơng Sử dụng mã nguồn mở AkaChain10 Hyperledger Fabric Kafka,
Raft Khơng Khơng Có Có
Corda11 Corda
Validity, Unique- ness
Khơng Khơng Có Có
Tất cả các mạng lưới Blockchain trên đều phù hợp để triển khai phần mềm truy xuất nguồn gốc được mô tả trong phạm vi nghiên cứu của đề tài. Tuy nhiên xét về tính dễ dàng khi cấu hình mạng lưới, cũng như mức độ đầy đủ của các cơng cụ hỗ trợ liên quan thì tác giả nhận thấy nền tảng VBChain là phù hợp nhất. Trong nền tảng này bao gồm các mạng lưới Blockchain (tương thích với máy ảo EVM) và bộ cơng cụ giúp người dùng cuối tra cứu, xác minh thông tin trên mạng lưới Blockchain. Vì các lý do trên, tác giả sẽ lựa chọn nền tảng VBChain trong quá trình hiện thực (sẽ được trình bày ở chương 6).
8https://www.hyperledger.org/use/fabric
9https://besu.hyperledger.org/en/stable/
10https://akachain.io/
5.2 Nền tảng Blockchain
5.2.2 Kiến trúc Hợp đồng thông minh
Lớp Hợp đồng thông minh được dùng để mơ tả các quy trình nghiệp vụ của truy xuất nguồn gốc và số hóa các đối tượng đã mơ tả ở chương 4. Mỗi đối tượng/nhóm đối tượng sẽ được số hóa thành một Hợp đồng thơng minh và sẽ tương tác với Hợp đồng thông minh khác. Khi triển khai một Hợp đồng thơng minh trên mạng Blockchain thì mỗi Hợp đồng thơng minh sẽ có một địa chỉ hợp đồng duy nhất trên mạng Blockchain. Các giao dịch sẽ được gửi tới địa chỉ hợp đồng này để ghi nhận hoặc truy vấn thông tin định danh, thông tin mô tả của đối tượng.
Mặt khác, đối với việc ứng dụng cơng nghệ Blockchain thì một trong những trở ngại lớn nhất như đã trình bày sẽ nằm ở phần hiệu năng, cụ thể là số lượng giao dịch có thể xử lý mỗi giây. Tất nhiên việc lựa chọn mạng lưới có khả năng xử lý càng nhiều càng tốt, tuy nhiên về phía thiết kế Hợp đồng thơng minh thì tác giả cũng có thể tăng hiệu năng thông qua giảm bớt số lượng giao dịch mà người dùng cần gửi. Để đạt được mục đích này, tác giả sẽ thiết kế kiến trúc Hợp đồng thông minh với nguyên tắc tránh dư thừa dữ liệu. Việc này được thực hiện bằng cách tách các phần dữ liệu chung của các đối tượng số thành một loại hợp đồng riêng biệt, hợp đồng của mỗi đối tượng chỉ lưu thơng tin mang tính định danh hoặc các thơng tin đặc trưng khác.
Nhìn chung, kiến trúc Hợp đồng thơng minh sẽ được thiết kế bao gồm 08 loại Hợp đồng thông minh khác nhau, được chia thành thành ba nhóm như hình 5.2:
5.2 Nền tảng Blockchain
Hình 5.2: Các loại hợp đồng thơng minh
• Nhóm Hợp đồng vận hành (Master contract): Các hợp đồng trong nhóm này đóng vai trị điều hành chung cho tồn bộ kiến trúc hệ thống Blockchain:
Ê Hợp đồng Factory: Chịu trách nhiệm tạo ra những đối tượng số trên mạng lưới Blockchain, tùy theo thơng tin mà người dùng cung cấp thì hợp đồng này sẽ tạo ra thực thể của những hợp đồng trong nhóm Hợp đồng định danh đối tượng.
Ê Hợp đồng Data Storage: Hợp đồng này lưu trữ những thông tin quan trọng và chung nhất của toàn bộ phần mềm. Các thông tin trong hợp đồng này sẽ được truy vấn bởi các hợp đồng khác thường xuyên và được tái sử dụng nhiều lần.
Ê Hợp đồng Escrow: Mỗi khi phát sinh một giao dịch đặt mua nông sản trước, mọi thơng tin của giao dịch đó sẽ được mơ hình hóa thành một thực thể dựa trên hợp đồng này. Thực thể vừa mới tạo sẽ mô tả những điều kiện giữa hai bên khi tiến hành đặt mua trước.
5.2 Nền tảng Blockchain
• Nhóm Hợp đồng định danh đối tượng (Object identity contract): Các hợp đồng trong nhóm này được dùng để số hóa các đối tượng trong mạng lưới Blockchain. Trong đây bao gồm 03 loại hợp đồng với những mô tả biến, chức năng khác nhau đại diện cho 03 loại đối tượng khác nhau trong thế giới thực.
Ê Hợp đồng Entity Credential: Hợp đồng này dùng để ánh xạ định danh của những người dùng trong thế giới thực, ví dụ như các nơng dân, nhà sản xuất,... Mỗi người dùng sẽ có tương ứng một thực thể của hợp đồng và lưu trữ những thơng tin định danh của mình trên đây. Mỗi thực thể được phân biệt bởi một địa chỉ hợp đồng, và địa chỉ này được đăng ký, lưu trữ trong hợp đồng Data Storage.
Ê Hợp đồng Non-Fungible Asset: Hợp đồng này dùng để ánh xạ các sản phẩm trong thế giới thực. Cụ thể ở đây là các nông sản được sản xuất ra. Một thực thể của hợp đồng này đại diện cho 01 loại nơng sản, các nơng sản cùng loại sẽ có những thơng số mô tả tương tự nhau.
Ê Hợp đồng Fungible Asset: Hợp đồng này được dùng để bổ trợ cho hợp đồng Fungile Asset, mỗi thực thể của hợp đồng này sẽ gắn với một thực thể của hợp đồng Fungile Asset, nhằm để mơ tả số lượng của những nơng sản có đặc tính giống nhau và mối quan hệ sở hữu về số lượng giữa người dùng - loại nơng sản.
• Nhóm Hợp đồng nhật ký (Object diary contract): Các hợp đồng trong nhóm này chịu trách nhiệm tạo và lưu giữ các hoạt động sản xuất liên quan tới các đối tượng số trên mạng lưới Blockchain.
Ê Hợp đồng Crop Diary: Hợp đồng này đại diện cho một mùa vụ sản xuất. Trong mỗi mùa vụ sẽ mô tả những hoạt động sản xuất của nông dân đối với một loại nông sản. Như vậy, một thực thể của hợp đồng này sẽ gắn với một thực thể của hợp đồng Non-Fungible Asset.
Ê Hợp đồng Stamp Activation: Khi nông sản được thu hoạch và phân phối tới người tiêu dùng. Thì nơng sản sẽ được dán tem QR để người tiêu dùng có thể truy xuất nguồn gốc và hệ thống có thể kiểm sốt dễ dàng. Việc kích hoạt tem sẽ tương đương với việc nơng dân chuyển nông sản thu hoạch cho một tác nhân khác. Trong hợp đồng này sẽ lưu trữ lại những lần mà nơng dân kích hoạt tem và địa chỉ Blockchain của người
5.2 Nền tảng Blockchain
5.2.3 Lớp xử lý dữ liệu Blockchain
Đặc điểm của công nghệ Blockchain là các giao dịch sẽ có độ trễ nhất định, tùy thuộc vào thời gian của một Khối dữ liệu được tạo ra và được đồng thuận trên mạng lưới. Trái ngược với đó, trong hệ thống phần mềm truyền thống thì gần như các thơng tin sẽ được cập nhật tức thì. Sự khác nhau này dẫn tới việc bất đồng bộ dữ liệu và giảm hiệu năng hệ thống. Bên cạnh đó, việc tạo ra các giao dịch, địa chỉ hoặc tương tác trực tiếp trên hệ thống Blockchain yêu cầu về mặt kỹ thuật rất lớn. Các tác nhân tham gia vào hệ sinh thái khó có đủ khả năng để hiện thực hoặc tự mình tương tác. Vì vậy, cần phải có một lớp đứng giữa, chịu trách nhiệm xử lý các dữ liệu trước khi đưa lên Blockchan. Đây chính là ý nghĩa của lớp cầu nối giao tiếp.
Lớp này đóng vai trị bổ sung cho lớp ứng dụng, hiện thực các chức năng liên quan tới việc chuẩn bị dữ liệu giao dịch, gửi giao dịch cũng như việc định thời các giao dịch trên Blockchain. Các tác vụ trên nhằm tránh các xung đột về dữ liệu phát sinh trong quá trình người dùng thực hiện các chức năng có liên quan tới cơng nghệ Blockchain. Trong lớp này (hình 5.3) gồm 3 nhóm API với vai trị khác nhau, các nhóm API này sẽ tương tác với những thực thể của Hợp đồng thơng tinh minh đã được triển khai trên mạng lưới Blockchain:
Hình 5.3: Các phần trong lớp xử lý dữ liệu Blockchain
• Nhóm API xử lý giao dịch là các API liên quan tới giao dịch và khối trên hệ