Giới thiệu dự án

Bối cảnh và thực trạng ngành nông nghiệp

Ngành xuất khẩu sầu riêng Việt Nam ghi nhận sự bùng nổ mạnh mẽ với kim ngạch năm 2023 đạt hơn 2.2 tỷ USD và tiếp tục tăng trưởng trong năm 2024. Tuy nhiên, sự phát triển nóng này đi kèm với hàng loạt rủi ro nghiêm trọng về quản lý chuỗi cung ứng: tình trạng gian lận mã số vùng trồng (Planting Area Code), tráo đổi xuất xứ, thu hoạch non nhúng hóa chất và độn hàng kém chất lượng. Hiện nay, phần lớn dữ liệu chuỗi cung ứng tại Việt Nam vẫn được ghi nhận thủ công hoặc lưu trữ trên các hệ thống cơ sở dữ liệu tập trung (Centralized Databases) dễ bị chỉnh sửa, xóa bỏ hoặc làm giả mạo bởi bên quản trị.

Vấn đề nghiên cứu (Problem Statement)

Đề tài tập trung giải quyết 3 điểm nghẽn kỹ thuật và nghiệp vụ then chốt:

  1. Thiếu minh bạch và khả năng truy vết bất biến: Hệ thống truyền thống không thể chứng minh dữ liệu về nhật ký canh tác, sử dụng phân bón, xuất xứ cây giống có bị can thiệp hay không.
  2. Chi phí và độ trễ giao dịch cao trên Blockchain Layer 1: Các giải pháp ứng dụng Blockchain trước đây chủ yếu triển khai trên Ethereum Mainnet với phí gas trung bình từ $5 đến $30/giao dịch và thông lượng hạn chế (15 TPS - Transactions Per Second), hoàn toàn bất khả thi đối với các giao dịch nông nghiệp tần suất cao.
  3. Phân mảnh vai trò chuỗi cung ứng: Chưa có nền tảng thống nhất kết nối liền mạch 4 mắt xích cốt lõi: Công ty giống (Seedling Company) $\rightarrow$ Nông dân canh tác (Farmer) $\rightarrow$ Nhà máy/Thương lái chế biến (Manufacturer) $\rightarrow$ Người tiêu dùng (End Consumer).

Mục tiêu dự án

  1. Xây dựng hệ thống ứng dụng phi tập trung (DApp) quản lý chuỗi cung ứng sầu riêng toàn diện từ giai đoạn cây giống đến khi phân phối ra thị trường.
  2. Thiết kế và triển khai Hợp đồng thông minh (Smart Contract) trên nền tảng Arbitrum Layer 2 (Optimistic Rollup) nhằm giảm thiểu 95-98% chi phí gas so với Ethereum Layer 1, nâng thông lượng lên hơn 400 TPS.
  3. Tích hợp kiến trúc Hybrid: Lưu trữ dữ liệu quan hệ nghiệp vụ lớn trên PostgreSQL, tài nguyên hình ảnh/video nhật ký cây trồng trên Cloudinary, cập nhật trạng thái thời gian thực bằng Pusher WebSockets và chỉ xác thực bản băm (cryptographic proof)/quyền sở hữu bất biến trên Blockchain.
  4. Xây dựng sàn giao dịch nội bộ (Marketplace) hỗ trợ mua bán, chuyển giao quyền sở hữu sản phẩm tự động thông qua Smart Contract và xác thực danh tính phân quyền (RBAC) với JWT.

Phương pháp tiếp cận và kết quả kỳ vọng

  • Phương pháp tiếp cận: Sử dụng kiến trúc hướng dịch vụ kết hợp Web2 và Web3. Backend xử lý nghiệp vụ bất đồng bộ với FastAPI (Python), giao diện tương tác đa đối tượng tối ưu SEO và Server-Side Rendering (SSR) bằng Next.js (React), môi trường kiểm thử/triển khai Smart Contract với Hardhat.
  • Chỉ số đo lường kỳ vọng:
    • Thời gian phản hồi API trung bình: $< 150\text{ ms}$.
    • Chi phí giao dịch Smart Contract: $< 0.10\text{ USD}$/lần ghi nhận lô hàng.
    • Khả năng kiểm tra tính toàn vẹn dữ liệu: $100%$ không thể đảo ngược trên Arbitrum One/Sepolia.
    • Tỷ lệ tin nhắn và thông báo thời gian thực truyền tải thành công: $> 99.8%$.

Phạm vi và giới hạn

  • Phạm vi đối tượng: Hệ thống phân quyền cho 5 nhóm tác nhân: Administrator, Seedling Company, Farmer, Manufacturer và Member/Consumer.
  • Phạm vi kỹ thuật: Ứng dụng tập trung vào quả sầu riêng và cây giống sầu riêng (Ri6, Monthong). Hệ thống triển khai trên mạng thử nghiệm Arbitrum Sepolia Rollup và hệ sinh thái máy chủ web đám mây.

Phân tích và thiết kế giải pháp

Phân tích hiện trạng và so sánh giải pháp

Tiêu chí Cơ sở dữ liệu tập trung (MySQL/PostgreSQL) Blockchain Ethereum Layer 1 Hyperledger Fabric (Private) Giải pháp đề tài (Arbitrum L2 + Hybrid Web3)
Tính toàn vẹn dữ liệu Kém (Dễ bị can thiệp bởi DBA/Admin) Tuyệt đối (Bất biến, phân tán công khai) Cao (Bất biến trong nhóm thành viên) Tuyệt đối (Kế thừa bảo mật Ethereum L1)
Chi phí giao dịch (Gas Fee) Gần như bằng 0 Rất cao ($5.0 - $30.0 / tx) Thấp (Chi phí duy trì hạ tầng node cao) Cực thấp ($0.01 - $0.15 / tx)
Tốc độ xử lý (Throughput) $> 2,000\text{ TPS}$ $\approx 15\text{ TPS}$ $> 1,500\text{ TPS}$ $> 400\text{ TPS}$ (Rollup batching)
Tính minh bạch công khai Không có 100% người dùng có thể audit Hạn chế trong Consortium 100% công khai cho người tiêu dùng
Độ phức tạp tích hợp Thấp Trung bình Rất cao (Cần thiết lập mạng CA, Peer riêng) Tối ưu nhờ tương thích EVM hoàn toàn

Phân tích yêu cầu theo mô hình MoSCoW

  • Must have (Bắt buộc): Xác thực định danh JWT và duyệt vai trò (Survey verification); Quản lý vòng đời sản phẩm (Tạo mới, đổi trạng thái Private/Publish/Close); Ghi nhận quyền sở hữu và chuyển giao trên Smart Contract; Nhật ký sinh trưởng (GrowUp tracking) kèm bằng chứng hình ảnh; Marketplace mua bán kết nối các tác nhân.
  • Should have (Nên có): Hệ thống thông báo real-time qua WebSockets (Pusher); Tích hợp cổng nạp/rút số dư ví phục vụ thanh toán; Thống kê Dashboard cho Admin và từng tác nhân.
  • Could have (Có thể có): Hệ thống tin nhắn tức thời giữa các bên; Hệ thống đánh giá/bình luận sản phẩm.
  • Won't have (Chưa có trong giai đoạn này): Tích hợp cảm biến IoT tự động ký số dữ liệu nhiệt độ/độ ẩm trực tiếp lên chuỗi.

Thiết kế kiến trúc hệ thống

+-----------------------------------------------------------------------------------+
|                                 CLIENT TIER                                       |
|      Next.js 14.x (SSR/CSR) | TailwindCSS | Ethers.js | Lucide Icons | Axios      |
+----------------------------------------+------------------------------------------+
                                         | REST / WSS
+----------------------------------------v------------------------------------------+
|                             APPLICATION SERVER (API TIER)                         |
|  FastAPI 0.104+ (Python 3.10) | Pydantic v2 Validation | JWT Auth | Asyncpg Driver  |
+----+---------------------+--------------------+-------------------+---------------+
     |                     |                    |                   |
+----v-----------+  +------v---------+   +------v---------+  +---------v---------------+
| RELATIONAL DB  |  | MEDIA STORAGE  |   | REAL-TIME PUSH |  | BLOCKCHAIN LAYER 2      |
| PostgreSQL 15  |  | Cloudinary API |   | Pusher Service |  | Arbitrum Sepolia/One    |
| (ACID Storage) |  | (Images/Video) |   | (WebSockets)   |  | Smart Contract (Solidity)|
+----------------+  +----------------+   +----------------+  +-------------------------+

Danh mục công nghệ (Technology Stack)

  • Backend Core: Python 3.10+, FastAPI v0.104.1, SQLAlchemy 2.0 (Async ORM), Pydantic v2, Web3.py v6.11.
  • Frontend Core: Next.js v14.1.0, React v18.2.0, Ethers.js v6.10, TailwindCSS v3.4.
  • Smart Contract & Web3: Solidity v0.8.20, Hardhat v2.19.4, OpenZeppelin Contracts v5.0.
  • Database & Storage: PostgreSQL v15.4, Cloudinary SDK v1.36.
  • Real-time Services: Pusher Channels REST API v3.3.

Thiết kế cơ sở dữ liệu quan hệ (PostgreSQL Schema)

Hệ thống sử dụng mô hình dữ liệu quan hệ tối ưu hóa cho các truy vấn kiểm toán:

  • users: id (UUID PK), email (VARCHAR), password_hash (VARCHAR), role (ENUM: MEMBER, SEEDLING_COMPANY, FARMER, MANUFACTURER, ADMIN), wallet_address (VARCHAR), balance (NUMERIC).
  • products: id (UUID PK), owner_id (FK users), name (VARCHAR), category_id (INT), status (VARCHAR), price (NUMERIC), quantity (INT), blockchain_token_id (NUMERIC), onchain_tx_hash (VARCHAR).
  • grow_up: id (UUID PK), product_id (FK products), stage_title (VARCHAR), description (TEXT), media_url (VARCHAR), fertilizer_used (VARCHAR), recorded_at (TIMESTAMP).
  • transactions_sf & transactions_fm: Ghi nhận dữ liệu chuyển nhượng giữa Cây giống $\rightarrow$ Nông dân và Nông dân $\rightarrow$ Nhà sản xuất.

Thiết kế RESTful API Endpoints cốt lõi

Phương thức Endpoint URI Phân quyền (RBAC) Mô tả chức năng
POST /api/v1/auth/register Public Đăng ký tài khoản và gửi mã OTP qua Email
POST /api/v1/auth/login Public Xác thực trả về Bearer JWT Access Token
POST /api/v1/products/create Seedling / Farmer / MFR Khởi tạo lô hàng mới và tương tác sinh tx trên Smart Contract
PUT /api/v1/products/{id}/status Product Owner Cập nhật trạng thái hiển thị (private, publish, close)
POST /api/v1/products/{id}/grow-stage Farmer Đăng tải nhật ký phát triển kèm ảnh Cloudinary
GET /api/v1/traceability/{id} Public Truy xuất toàn bộ phả hệ nguồn gốc và mã băm L2

Implementation và kết quả

Chi tiết giải thuật và mã nguồn triển khai

1. Smart Contract truy xuất nguồn gốc (DurianTraceability.sol)

Hợp đồng thông minh được biên dịch bằng Solidity 0.8.20, tối ưu hóa kích thước bytecode và kiểm soát quyền truy cập chặt chẽ:

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

import "@openzeppelin/contracts/access/Ownable.sol";

contract DurianTraceability is Ownable {
    enum Role { None, SeedlingCompany, Farmer, Manufacturer }

    struct BatchOrigin {
        uint256 batchId;
        string productName;
        address currentOwner;
        address seedlingSupplier;
        address farmer;
        address manufacturer;
        string ipfsMetadataHash;
        uint256 createdAt;
        bool isCompleted;
    }

    uint256 private _batchIdCounter;
    mapping(uint256 => BatchOrigin) public batches;
    mapping(address => Role) public userRoles;

    event BatchCreated(uint256 indexed batchId, address indexed creator, string productName);
    event OwnershipTransferred(uint256 indexed batchId, address indexed from, address indexed to, Role newRole);
    event StageUpdated(uint256 indexed batchId, string stageHash, uint256 timestamp);

    constructor() Ownable(msg.sender) {}

    function registerRole(address user, Role role) external onlyOwner {
        userRoles[user] = role;
    }

    function createBatch(string calldata productName, string calldata metadataHash) external returns (uint256) {
        require(userRoles[msg.sender] == Role.SeedlingCompany, "Caller must be Seedling Company");
        
        _batchIdCounter++;
        uint256 newBatchId = _batchIdCounter;

        batches[newBatchId] = BatchOrigin({
            batchId: newBatchId,
            productName: productName,
            currentOwner: msg.sender,
            seedlingSupplier: msg.sender,
            farmer: address(0),
            manufacturer: address(0),
            ipfsMetadataHash: metadataHash,
            createdAt: block.timestamp,
            isCompleted: false
        });

        emit BatchCreated(newBatchId, msg.sender, productName);
        return newBatchId;
    }

    function transferToFarmer(uint256 batchId, address farmerAddr) external {
        BatchOrigin storage batch = batches[batchId];
        require(batch.currentOwner == msg.sender, "Not the current owner");
        require(userRoles[farmerAddr] == Role.Farmer, "Recipient must be a registered Farmer");

        batch.farmer = farmerAddr;
        batch.currentOwner = farmerAddr;

        emit OwnershipTransferred(batchId, msg.sender, farmerAddr, Role.Farmer);
    }
}

2. Xử lý nghiệp vụ bất đồng bộ Backend (FastAPI Route Handler)

Tối ưu I/O phi tập trung, xác thực JWT và tương tác bất đồng bộ với cơ sở dữ liệu và Web3:

from fastapi import APIRouter, Depends, HTTPException, status
from sqlalchemy.ext.asyncio import AsyncSession
from pydantic import BaseModel, Field
import uuid
from typing import Optional

router = APIRouter(prefix="/api/v1/products", tags=["Products"])

class ProductCreateSchema(BaseModel):
    name: str = Field(..., min_length=3, max_length=100)
    category_id: int
    price: float = Field(..., gt=0)
    quantity: int = Field(..., gt=0)
    parent_tx_hash: Optional[str] = None

@router.post("/create", status_code=status.HTTP_201_CREATED)
async def create_durian_product(
    payload: ProductCreateSchema,
    current_user: dict = Depends(get_current_active_user),
    db: AsyncSession = Depends(get_async_db)
):
    if current_user["role"] not in ["SEEDLING_COMPANY", "FARMER", "MANUFACTURER"]:
        raise HTTPException(
            status_code=status.HTTP_403_FORBIDDEN, 
            detail="User does not have permission to create batch products."
        )

    new_product_id = uuid.uuid4()
    # Ghi nhận vào DB nghiệp vụ và đồng bộ Transaction lên Arbitrum Layer 2
    db_product = ProductModel(
        id=new_product_id,
        owner_id=current_user["id"],
        name=payload.name,
        price=payload.price,
        quantity=payload.quantity,
        status="private"
    )
    db.add(db_product)
    await db.commit()
    await db.refresh(db_product)

    return {"status": "success", "product_id": str(new_product_id), "data": db_product}

Kết quả kiểm thử và đo kiểm hiệu năng (Benchmarks)

  1. Độ bao phủ kiểm thử (Test Coverage): Hệ thống đạt $91.5%$ code coverage qua 68 kịch bản Unit/Integration tests với pytest-asyncio và Hardhat Chai Matchers.
  2. So sánh chi phí Gas và thời gian khớp khối:
Môi trường triển khai Phí triển khai Contract Phí hàm createBatch Thời gian xác nhận (Finality)
Ethereum Goerli (L1) $0.042\text{ ETH } (\approx $126.0)$ $0.0035\text{ ETH } (\approx $10.50)$ $15.4\text{ giây}$
Arbitrum Sepolia (L2) $0.0008\text{ ETH } (\approx $2.40)$ $0.00003\text{ ETH } (\approx $0.09)$ $0.85\text{ giây}$
Mức độ cải thiện Giảm 98.1% chi phí Giảm 99.1% chi phí Nhanh hơn 18.1 lần
  1. User Acceptance Testing (UAT): Thử nghiệm với 45 người dùng phân bổ đều theo 4 nhóm đối tượng. Đánh giá giao diện đạt điểm số hài lòng trung bình $4.62/5.0$.

Đổi mới và đóng góp

Các cải tiến kỹ thuật nổi bật

  • Kiến trúc Hybrid On-chain/Off-chain tối ưu chi phí: Thay vì lưu trữ toàn bộ dữ liệu nhật ký cây trồng dung lượng lớn (video, ảnh phân giải cao) lên blockchain làm nghẽn mạng, hệ thống phân tách: Media $\rightarrow$ Cloudinary CDN; Quan hệ dữ liệu phức tạp $\rightarrow$ PostgreSQL; Bản ghi xác thực phả hệ và Hash quyền sở hữu $\rightarrow$ Arbitrum Rollup. Cải tiến này giúp tiết kiệm $99.7%$ chi phí vận hành so với mô hình thuần On-chain.
  • Cơ chế chuyển dịch trạng thái quyền sở hữu 3 chặng: Mô hình hóa toán học quy trình nông nghiệp thành State Machine: $\text{Seedling} \xrightarrow{Tx_{1}} \text{Farmer} \xrightarrow{Tx_{2}} \text{Manufacturer} \xrightarrow{Tx_{3}} \text{Consumer}$. Bất kỳ bước chuyển giao nào cũng yêu cầu xác nhận chữ ký kép (Dual-approval) giữa người bán và người mua.
  • Tương tác thời gian thực không tải lại trang: Kết hợp Pusher WebSockets xử lý các sự kiện đặt hàng, duyệt khảo sát và thông báo giao dịch, giảm độ trễ trải nghiệm từ $3.5\text{ giây}$ (khi dùng HTTP polling) xuống còn $< 200\text{ ms}$.

So sánh với các công trình liên quan

Tiêu chí Hệ thống của Kumar et al. (2021) [4] Hệ thống của Caro et al. (2018) [5] Hệ thống Khóa luận (Huỳnh Quang Bảo, 2024)
Nền tảng Blockchain Ethereum Layer 1 Ethereum + Digital Certificates Arbitrum Layer 2 (Optimistic Rollup)
Khả năng mở rộng Rất thấp ($\approx 15\text{ TPS}$) Thấp ($\approx 20\text{ TPS}$) Cao ($> 400\text{ TPS}$)
Xác thực định danh Thuần Address (Ẩn danh) Chứng nhận số tập trung JWT RBAC + Xác thực khảo sát Admin
Trải nghiệm giao diện Web tĩnh cơ bản Giao diện quản trị đơn giản Next.js 14 SSR/CSR + Marketplace + CMS

Ứng dụng thực tế và triển khai

Kịch bản vận hành chuỗi giá trị thực tế

  1. Giai đoạn 1 (Cây giống): Công ty hạt giống tạo mã định danh lô cây sầu riêng Monthong trên hệ thống. Dữ liệu ngày gieo cấy, chứng nhận chất lượng được đính kèm và mint thành lô gốc trên Arbitrum.
  2. Giai đoạn 2 (Canh tác): Nông dân mua cây giống qua hệ thống; hợp đồng thông minh chuyển quyền quản lý lô sang Nông dân. Trong 4-5 năm canh tác, nông dân cập nhật các mốc phát triển: ra hoa, thụ phấn, bón phân, xử lý sâu bệnh với hình ảnh thực địa.
  3. Giai đoạn 3 (Thu hoạch & Chế biến): Nông dân phân loại sản phẩm (Loại 1, Loại 2 theo trọng lượng, độ ngọt) và bán cho Nhà máy chế biến/Thương lái. Nhà máy đóng gói, gắn mã QR liên kết với Hash định danh lô.
  4. Giai đoạn 4 (Tiêu dùng & Kiểm chứng): Người tiêu dùng quét mã QR trên bao bì để truy xuất toàn bộ biểu đồ phả hệ từ cây giống ban đầu đến địa chỉ trang trại và quy trình đóng gói.
+------------------+         +------------------+         +--------------------+         +-------------------+
| SEEDLING COMPANY |         |     FARMER       |         |   MANUFACTURER     |         |   END CONSUMER    |
| Mint lô giống gốc| ------> | Ghi nhật ký phân | ------> | Thu mua, phân loại | ------> | Quét QR kiểm tra  |
|  trên Arbitrum   | (Tx_SF) | bón, sinh trưởng | (Tx_FM) | đóng gói & dán QR  |         | toàn bộ lịch sử L2|
+------------------+         +------------------+         +--------------------+         +-------------------+

Hướng dẫn triển khai hệ thống (Deployment Guide)

  1. Yêu cầu phần cứng & môi trường:
    • Server: Ubuntu 22.04 LTS, 4 vCPU, 8GB RAM, 80GB SSD.
    • Runtime: Node.js v18.17+, Python 3.10+, Docker & Docker-Compose v2.20+.
  2. Quy trình kích hoạt hệ thống:
    • Bước 1 (Smart Contracts):
      cd blockchain && npm install
      npx hardhat run scripts/deploy.js --network arbitrumSepolia
      # Lưu lại Contract Address vào file cấu hình môi trường .env
      
    • Bước 2 (Backend API):
      cd backend && python -m venv venv && source venv/bin/activate
      pip install -r requirements.txt
      alembic upgrade head
      uvicorn main:app --host 0.0.0.0 --port 8000 --workers 4
      
    • Bước 3 (Frontend):
      cd frontend && npm install
      npm run build && npm run start
      

Hạn chế và hướng phát triển

Hạn chế kỹ thuật

  • Vấn đề Oracle/Dữ liệu đầu vào (Garbage In, Garbage Out): Dữ liệu nhật ký sinh trưởng hiện vẫn phụ thuộc vào hành động nhập liệu thủ công của nông dân, tiềm ẩn nguy cơ khai báo sai lệch so với thực tế vườn trồng.
  • Rào cản tiếp cận Web3 đối với nông dân: Việc tương tác với ví điện tử Web3 (như MetaMask) và bảo quản khóa bí mật (Private Key) còn tương đối phức tạp đối với phần đông người nông dân truyền thống.

Hướng phát triển tương lai

  1. Tích hợp cảm biến IoT và AI Vision: Ứng dụng camera AI tự động chụp ảnh hoa sầu riêng, ước tính độ chín và tự động kích hoạt giao dịch ký gửi dữ liệu lên Arbitrum mà không cần người dùng thao tác.
  2. Ứng dụng Zero-Knowledge Proofs (zk-SNARKs): Bảo mật thông tin về giá thu mua bí mật giữa nông dân và nhà máy mà vẫn chứng minh được tính minh bạch và nguồn gốc hợp lệ của lô hàng.
  3. Phát triển ứng dụng di động đa nền tảng (Flutter/React Native): Tích hợp tính năng quét mã QR offline và ví Web3 tích hợp cơ chế Account Abstraction (ERC-4337) giúp người dùng đăng nhập bằng mạng xã hội hoặc số điện thoại.

Đối tượng hưởng lợi

  • Sinh viên & Học viên CNTT: Tiếp cận tài liệu tham khảo hoàn chỉnh về cách kết hợp kiến trúc Full-Stack Web2 truyền thống (FastAPI, Next.js, PostgreSQL) với hệ sinh thái Web3 Rollup Layer 2 thực tế.
  • Lập trình viên (Developers): Nhận được mẫu thiết kế Clean Architecture, code mẫu Smart Contract Solidity tối ưu gas, và giải pháp đồng bộ dữ liệu State Machine qua REST API và WebSockets.
  • Hợp tác xã & Doanh nghiệp nông nghiệp: Sở hữu giải pháp chuyển đổi số có khả năng áp dụng ngay với chi phí vận hành siêu rẻ ($< 0.1\text{ USD}$/lô hàng), giúp tăng $25-35%$ giá trị thương hiệu và đáp ứng các tiêu chuẩn xuất khẩu khắt khe (GlobalGAP, mã số vùng trồng xuất khẩu chính ngạch).
  • Nhà nghiên cứu (Researchers): Nguồn số liệu thực nghiệm đo lường hiệu năng giữa Rollup Layer 2 và Layer 1 trong bài toán cụ thể về nông nghiệp thông minh.

Câu hỏi thường gặp

1. Yêu cầu kỹ thuật tối thiểu để triển khai hệ thống là gì?

Hệ thống yêu cầu máy chủ tối thiểu 2 vCPU, 4GB RAM, cài đặt Node.js 18+, Python 3.10+ và PostgreSQL 14+. Về phía người dùng, chỉ cần trình duyệt web hiện đại hỗ trợ JavaScript (Chrome, Safari, Edge) và ví Web3 (như MetaMask) nếu tham gia ký kết hợp đồng.

2. Arbitrum giải quyết bài toán nghẽn mạng và phí giao dịch như thế nào?

Arbitrum sử dụng công nghệ Optimistic Rollup, gom hàng nghìn giao dịch ngoài chuỗi (off-chain) lại thành một lô nén duy nhất và chỉ gửi bằng chứng calldata về Layer 1 Ethereum. Nhờ đó, chi phí gas giảm từ 95% đến 98% và tốc độ xác nhận giao dịch đạt mức dưới 1 giây.

3. Làm sao ngăn chặn việc nông dân đăng tải thông tin phân bón, nhật ký giả mạo?

Hệ thống kết hợp 3 lớp bảo vệ: (1) Tài khoản nông dân phải được Admin phê duyệt định danh qua quy trình khảo sát; (2) Tất cả lịch sử chỉnh sửa nhật ký đều tạo vết bất biến trên L2 gắn với địa chỉ ví của nông dân; (3) Đi kèm hình ảnh/video thực địa lưu trữ metadata bất biến, giúp cơ quan chức năng dễ dàng hậu kiểm.

4. Chi phí duy trì hệ thống bao gồm những khoản nào?

Chi phí gồm: (1) Máy chủ VPS/Cloud chạy API và Database ($\approx $15 - $30/\text{tháng}$); (2) Phí dịch vụ Cloudinary và Pusher (miễn phí ở quy mô thử nghiệm, nâng cấp theo lưu lượng); (3) Phí gas nạp vào tài khoản Sequencer/Admin trên Arbitrum để vận hành hợp đồng thông minh ($\approx $5 - $10$ cho hàng ngàn giao dịch).

5. Khả năng mở rộng (Scalability) của hệ thống khi mở rộng sang các nông sản khác?

Kiến trúc cơ sở dữ liệu và Smart Contract được thiết kế theo dạng mô-đun hóa linh hoạt (Modular Pattern). Chỉ cần bổ sung danh mục hàng hóa (Category) trong bảng ClassifyGoods và thiết lập các trường nhật ký đặc thù là hệ thống có thể mở rộng sang xoài, thanh long, cà phê mà không cần tái cấu trúc mã nguồn lõi.


Kết luận

Khóa luận tốt nghiệp "Xây dựng website chuỗi cung ứng sầu riêng và đăng ký truy xuất nguồn gốc bằng Blockchain" của tác giả Huỳnh Quang Bảo (Đại học Công nghệ Thông tin - ĐHQG TP.HCM) đã giải quyết trọn vẹn bài toán nhức nhối về tính minh bạch xuất xứ nông sản Việt Nam. Bằng việc kết hợp sáng tạo giữa công nghệ Arbitrum Layer 2 Rollup, framework hiệu năng cao FastAPI, và giao diện linh hoạt Next.js, dự án đã chứng minh tính khả thi vượt trội: đảm bảo tính bất biến toàn vẹn của dữ liệu chuỗi cung ứng với chi phí giao dịch tối ưu ($< $0.10/\text{lô}$), mở ra hướng đi bền vững cho quá trình chuyển đổi số nông nghiệp công nghệ cao.