Truy xuất nguồn gốc thực phẩm bằng hợp đồng thông minh của Blockchain Ethereum và công nghệ RFID

Giới thiệu

Các sản phẩm thực phẩm cũng như đồ uống là một trong những sản phẩm được lưu hành nhiều nhất trong thương mại quốc tế. Đó cũng là một trong những thị trường được điều tiết và giám sát nghiêm ngặt nhất, cả ở cấp quốc gia và quốc tế. Do những thiệt hại tiềm tàng mà các sản phẩm thực phẩm không phù hợp có thể gây ra những ảnh hưởng trong nền kinh tế, và sức khỏe cộng đồng hoặc môi trường tự nhiên của bất kỳ quốc gia nào , nên thực phẩm sẽ được kiểm soát rất gắt gao khi lưu hành trên quốc tế.Tuy nhiên, các phương pháp, quy trình và công cụ để áp dụng các biện pháp kiểm soát này và theo dõi sự lưu hành của các sản phẩm thực phẩm qua một số quốc gia và tiểu bang mà chúng có thể đi qua rất phức tạp và không hiệu quả. Các vấn đề về văn hóa và quản trị, xung đột ngôn ngữ hoặc tài liệu bị mất  là một số vấn đề chính mà các công nghệ thực phẩm kỹ thuật số trong tương lai nên giải quyết.

Trong bài viết này, chúng tôi đề xuất một hệ thống truy xuất nguồn gốc cho các sản phẩm thực phẩm trong thương mại quốc tế, dựa trên công nghệ Blockchain và tag RFID. Sử dụng các giao thức API REST, cơ sở dữ liệu NoQuery và mã Java-Script, nó được triển khai một giải pháp phân tán để thu thập, ký và lưu trữ thông tin đáng tin cậy về dòng sản phẩm thực phẩm. Một hệ thống bảo mật cũng được triển khai để đảm bảo khả năng phục hồi lỗi và chỉ truy cập của người dùng được ủy quyền vào hệ thống.

Tác giả : Borja Bordel, Pierre Lebigot, Ramón Alcarria, and Tomás Robles.

Truy xuất nguồn gốc kỹ thuật số truyền thống

Các giải pháp truy xuất nguồn gốc kỹ thuật số đã được nghiên cứu từ những năm đầu của thế kỷ XXI, khi các kỹ thuật nhận dạng tần số vô tuyến RFID được áp dụng để cung cấp các định danh duy nhất cho tất cả các loại vật thể, thiết bị, dịch vụ và sản phẩm hàng ngày.

Trong các phương pháp kỹ thuật số đầu tiên này, các hệ thống truy nguyên nguồn gốc bao gồm các cơ sở dữ liệu SQL tiêu chuẩn khác nhau (mỗi đại lý quản lý các sản phẩm được kiểm soát), trong đó thông tin liên quan được lưu trữ theo luật pháp địa phương và công nghệ có sẵn. Tuy nhiên, không có kho lưu trữ dữ liệu tập trung thường được xem xét sử dụng và một số giải pháp sử dụng một thanh ghi vật lý truyền thống nếu không có giải pháp kỹ thuật số nào khả dụng hơn.

Truy xuat nguon goc bằng RFID

Các sản phẩm thực phẩm được kiểm soát vệ sinh nghiêm ngặt hơn so với các sản phẩm thương mại truyền thống, và là các yếu tố áp dụng các giải pháp khả năng theo dõi tiên tiến nhất, Trong tình huống này, có hai lợi ích rất phù hợp hội tụ: một mặt chính quyền chính phủ cần ngăn chặn các vấn đề an toàn vệ sinh công cộng và, trong trường hợp một, họ phải có thể xác định nguồn gốc một cách nhanh nhất có thể; mặt khác, các công ty liên quan đến thực phẩm mong muốn đảm bảo uy tín và chất lượng sản phẩm của họ, để đảm bảo sự gia tăng của thị trường và lợi nhuận của họ.

Theo cách đó, nhiều sáng kiến ​​khác nhau để tìm giải pháp truy xuất nguồn gốc để giải quyết các vấn đề về công nghệ truyền thống đã được đề cập : Nông nghiệp thông minh, Internet thực phẩm , v.v. Tuy nhiên, không có đề xuất nào đáp ứng tất cả các yêu cầu về truy xuất nguồn gốc thực phẩm thành công mang tính hệ thống. Cụ thể là:

  • Hệ thống phải là duy nhất và phân phối. Một số tác nhân khác nhau phải có thể chèn thông tin, nhưng chỉ có dữ liệu đáng tin cậy mới được chấp nhận.
  • Hệ thống phải linh hoạt để thích ứng với các quy định và loại thông tin địa phương khác nhau có thể là một phần của hồ sơ truy xuất nguồn gốc.
  • Thông tin được lưu trữ trong hệ thống không thể được sửa đổi trong mọi trường hợp. Theo cách đó, các hệ thống tạo thông tin tự động được ưa thích để tránh lỗi của con người.

Xem xét các yêu cầu trước đó, chúng tôi cho rằng Blockchain là một giải pháp hợp lệ để phát triển truy xuất nguồn gốc sản phẩm thực phẩm kỹ thuật số trong tương lai. Blockchain là một hệ thống phi tập trung bao gồm một số nút thưa thớt về mặt địa lý không xác định, có thể đồng ý về trạng thái toàn cầu của hệ thống, thông qua việc tạo ra một chuỗi các khối thông tin được liên kết không thể sửa đổi khi được lưu trữ và hợp nhất. Mặc dù các công nghệ Blockchain khác nhau đã được báo cáo trong những năm qua, để phát triển các hệ thống truy xuất nguồn gốc kỹ thuật số, Ethereum (một công nghệ để phát triển, triển khai và thực thi Smart Contract) là đầy đủ nhất.

Do đó, mục tiêu của bài viết này là thiết kế một hệ thống truy xuất nguồn gốc kỹ thuật số cho các sản phẩm thực phẩm, dựa trên các công nghệ Ethereum, thẻ SmartContract và thẻ RFID. Thông tin sẽ được lưu trữ trong các cơ sở dữ liệu tập trung được truy cập bởi các hợp đồng Ethereum thông qua các trình kết nối đặc biệt có tên là các chương trình JavaScript.

Công nghệ tiên tiến về hệ thống truy xuất nguồn gốc bằng giải pháp Blockchain

Kiến trúc chung của giải pháp được đề xuất có thể được nhìn thấy trong Hình 1. Như có thể thấy, kiến ​​trúc được đề xuất bao gồm sáu thành phần chính.

  • Sản phẩm được gắn thẻ: Sản phẩm thực phẩm được cung cấp với số nhận dạng kỹ thuật số duy nhất được lưu trữ trong thẻ RFID. Các thẻ sử dụng là loại passive, vì các công nghệ active đắt hơn và có khả năng độc hại do sử dụng pin.
  • Đầu đọc RFID: Bao gồm hai yếu tố, vi điều khiển và ăng-ten hoặc bộ thu RFID. Bộ vi điều khiển kích hoạt đầu đọc tạo ra từ trường. Trường này làm cho các thẻ có trong các sản phẩm truyền định danh duy nhất được lưu trữ.
  • Máy chủ Node.js:  Một máy chủ JavaScript chứa ba tập lệnh khác nhau. Kịch bản đầu tiên là một máy chủ web lấy thông tin từ cơ sở dữ liệu và kiểm tra tính hợp lệ của nó thông qua các chức năng trong SmartContract.

Máy chủ web này tạo ra một trang web nơi thông tin được hiển thị để được tư vấn bởi người dùng. Kịch bản thứ hai chịu trách nhiệm nhận thông tin từ đầu đọc RFID và kịch bản thứ ba chịu trách nhiệm lưu trữ thông tin tự động trong cơ sở dữ liệu thông qua SmartContract và Oracles. Mỗi một trong những đoạn script này được thực thi trong một cổng khác nhau.

  • Mạng Blockchain: Một mạng Ethereum nơi hai Smart Contraction được triển khai. HĐ thông minh đầu tiên chứa tất cả các chức năng để lưu trữ thông tin mới trong cơ sở dữ liệu và kiểm tra tính hợp lệ của một thông tin được truy xuất nhất định từ kho lưu trữ này. Hợp đồng thứ hai là một phần của Oracle (cổng kết nối).
  • Oracle :  Cổng kết nối là một thành phần có thể chèn thông tin bên ngoài vào mạng Blockchain. Thành phần này bao gồm hai mô-đun, SmartContract đóng vai trò là trình kết nối trong mạng Blockchain và máy chủ PHP nơi thực thi hai tập lệnh (tập lệnh PHP và tệp JavaScript). Xem thêm về Oracles trong Blockchain tại đây .

Giải nghĩa về Oracles trong Blockchain

  • Cơ sở dữ liệu: Đây là kho lưu trữ được sử dụng để lưu trữ và duy trì thông tin truy xuất nguồn gốc. Do loại thông tin sẽ được lưu trữ và tính linh hoạt cần có cho hệ thống, cơ sở dữ liệu NoQuery là công nghệ phù hợp nhất cho đề xuất này.

Kịch bản của hệ thống đề xuất được mô tả dưới đây:

Đầu đọc RFID có được định danh duy nhất của sản phẩm thực phẩm khi nó ở trong khu vực đọc của nó. Sau đó, thông qua Internet và sử dụng thông tin liên lạc không dây, thông tin về sản phẩm này được gửi đến máy chủ Node.js, nơi mà sẽ chèn Script nhận dữ liệu. Các dữ liệu này được làm giàu với thông tin về thời gian và / hoặc vị trí và được gửi đến mạng Ethereum nơi SmartContract được triển khai với chức năng phù hợp để nhận thông tin này.

Hợp đồng thông minh giao tiếp với hợp đồng thứ hai đóng vai trò là đầu nối oracles. Thông tin sau đó được gửi đến cơ sở dữ liệu bên ngoài bằng cách sử dụng trình lắng nghe sự kiện liên tục tìm kiếm các bản cập nhật và thông tin mới sẽ được lưu trữ và tập lệnh PHP mã hóa các thuật toán để tương tác với cơ sở dữ liệu. Theo định kỳ và sử dụng các hàm băm mật mã và kỹ thuật chữ ký số, trạng thái của cơ sở dữ liệu được lưu trữ trong SmartContract để hoạt động như một tác nhân đảm bảo tính hợp lệ và độ tin cậy của dữ liệu được lưu trữ.

Nếu người dùng cần tham khảo một số thông tin truy xuất nguồn gốc, thì anh ta sẽ kết nối với máy chủ web chạy vào máy chủ Node.js. Máy chủ web này lấy thông tin tương ứng từ cơ sở dữ liệu và, bằng cách sử dụng các kỹ thuật kiểm tra thích hợp trong cơ sở hạ tầng chữ ký số, đánh giá sự gắn kết của dữ liệu thu được. Nếu tất cả các quy trình xác minh được kết thúc thành công, thông tin sẽ được trình bày cho người dùng.

Như đã nói, các kỹ thuật bảo mật, đặc biệt là các công nghệ chữ ký số là cơ bản để làm cho giải pháp được đề xuất hoạt động theo cách đầy đủ. Những kỹ thuật này thường được hỗ trợ bởi Cơ sở hạ tầng khóa công khai (PKI), đảm bảo mức độ bảo vệ cao. Cụ thể, các cơ chế bảo mật sau được coi trong hệ thống được đề xuất là có khả năng phục hồi lỗi:

Truyền thông qua Internet dựa trên giao diện REST và thông điệp HTTP được triển khai bằng giao thức HTTPS secure.

SmartContract bao gồm các bộ sửa đổi trong tất cả các chức năng để làm cho chúng chỉ có thể truy cập được bởi người dùng được ủy quyền. Chức năng bảo mật này được hỗ trợ bởi các cơ chế người dùng / mật khẩu và KPI được sử dụng để xác thực và xác định các thực thể trong quá trình hoạt động trong mạng Blockchain.

Thông tin trong cơ sở dữ liệu chỉ có thể được đưa vào thông qua SmartContract và Oracles. Theo sơ đồ này, SmartContract phải chứa thông tin về toàn bộ dòng chảy cho các sản phẩm thực phẩm, nhưng được đảm bảo rằng không có thông tin sai lệch nào được lưu trữ trong kho lưu trữ.

Thông tin truy xuất nguồn gốc được lưu trữ trong cơ sở dữ liệu được tóm tắt bằng cách sử dụng các hàm băm và được lưu trữ trong SmartContract theo định kỳ. Theo cách đó, tính hợp lệ của thông tin được truy xuất luôn được đảm bảo bởi sự gắn kết của thông tin trong Blockchain.

Thí nghiệm  và Prototype

Để đánh giá hiệu suất của hệ thống đề xuất, một Prototype ban đầu đầu tiên được xây dựng và triển khai như hình dưới đây. Prototype được đề xuất bao gồm một vi điều khiển NodeMCU LoLin V3 (ESP8266) và ăng-ten RFC522 RFID để tạo đầu đọc RFID. WiFi được chọn là công nghệ giao tiếp không dây để gửi thông tin đến tập lệnh dữ liệu của bộ thu dữ liệu có thể chạy trong cổng 3000 trong máy chủ Node.js. Tập lệnh này giao tiếp bằng cách sử dụng các thông điệp HTTP và giao diện REST với tập lệnh Chèn Chèn của Pháp, chạy trong cổng 1337. Máy chủ web đang chạy ở cổng 80 theo truyền thống. Máy chủ Node.js được triển khai bằng công nghệ Express.

Hợp đồng thông minh được phát triển bằng ngôn ngữ Solidity. Trong lần triển khai đầu tiên này, không có mạng Ethereum thực sự nào được xem xét, vì vậy các hợp đồng được triển khai trong mạng Blockchain ảo được tạo bằng phần mềm Ganache. Phần mềm này chạy một mạng có thể được truy cập thông qua cổng 7545.

Cuối cùng, MongoDB, một cơ sở dữ liệu NoQuery, được chọn, có thể dễ dàng truy cập từ các chương trình JavaScript và PHP.

Sử dụng Prototype này một thí nghiệm đã được thực hiện. Mặc dù các thông số khác nhau có thể được đo lường, thuộc tính khả năng mở rộng là phù hợp nhất trong giai đoạn này. Trong các hệ thống truy xuất nguồn gốc sản phẩm thực phẩm, hàng ngàn RFID Readers có thể truy cập để lưu trữ thông tin mới cùng một lúc. Điều rất quan trọng là đảm bảo cho tất cả họ quyền truy cập vào cơ sở dữ liệu và điều tra các giới hạn đối với số này trong giải pháp đề xuất.

Để thực hiện thử nghiệm được đề xuất, nó sử dụng hệ điều hành Ubuntu 1670 Linux, với bộ xử lý Intel i5 và bộ nhớ RAM 8 GB. Vì cấu hình phần cứng này không được thiết kế đặc biệt để hỗ trợ các triển khai ảo nặng, các trình đọc khác nhau truy cập vào mạng Ethereum được mô phỏng bằng chương trình C ++ duy nhất. Đối với mỗi số lượng đầu đọc RFID được xem xét trong hệ thống, nó được đánh giá số lượng giao dịch thành công.

.

Có thể thấy, tỷ lệ thành công là 100% cho đến khi gần như đạt được số lượng 1800 RFID Readers trong hệ thống. Sau đó, tỷ lệ thành công bắt đầu đi xuống, vượt qua ngưỡng tiêu chuẩn để xem xét một hệ thống công nghệ đang hoạt động (50%) cho (khoảng) 6000 RFID Readers trong hệ thống truy xuất nguồn gốc.
Tốc độ giảm đang ổn định khi số lượng RFID Readers tăng lên. Đối với một số RFID Readers khoảng 2000, tốc độ giảm là rất cao, nhưng nó giảm xuống 50% (xấp xỉ) trong môi trường sáu nghìn RFID Readers.

Kết luận

Trong bài báo này, chúng tôi trình bày một hệ thống truy xuất nguồn gốc mới cho các sản phẩm thực phẩm trong thương mại quốc tế, dựa trên các mạng Blockchain và thẻ RFID . Sử dụng giao diện REST, cơ sở dữ liệu NoQuery và mã JavaScript, nó được triển khai một giải pháp phân tán để thu thập, ký và lưu trữ thông tin đáng tin cậy về dòng sản phẩm thực phẩm. Một hệ thống bảo mật cũng được triển khai để đảm bảo khả năng phục hồi lỗi và chỉ truy cập của người dùng được ủy quyền vào hệ thống.

Một Prototype thực tế ban đầu đầu tiên cũng được triển khai bằng cách sử dụng các mạng Blockchain Ethereum và các nút phần cứng dựa trên nền tảng Arduino và công nghệ truyền thông không dây (WiFi). Kết quả cho thấy tỷ lệ thành công là 100% cho đến khi gần như đạt được số lượng 1800 Readers trong hệ thống, đây là một giá trị tốt cho truy xuất nguồn gốc trong thương mại quốc tế.

Các công trình trong tương lai nên xem xét các đề xuất mới về các mạng Blockchain nâng cao như Algorand hoặc Vechain. Các Prototype và triển khai mới (và các thử nghiệm) xem xét các mạng Blockchain thực sự cũng sẽ được đề cập trong các công trình trong tương lai. Các môi trường ưu tiên để xác định SmartContract và tất cả các logic liên quan mà không yêu cầu kỹ năng lập trình cũng phải được nghiên cứu.

 

Đăng ký để nhận ebook
Đăng ký để nhận ebook "Ứng dụng IoT" từ chúng tôi.
Đăng ký để được nhận ebook "The Technical Foundations of IoT" và "Building Arduino Projects for the Internet of Things ".