Nguồn cấp dữ liệu (oracle) trên blockchain là gì
Trang chủ
Bài viết
Nguồn cấp dữ liệu (oracle) trên blockchain là gì

Nguồn cấp dữ liệu (oracle) trên blockchain là gì

Trung cấp
Đã đăng Jan 22, 2020Đã cập nhật Nov 28, 2023
7m
Bài viết cho cộng đồng - Tác giả: Vallery Mou


Nội dung


Nguồn cấp dữ liệu (oracle) trên blockchain là gì?

Nguồn cấp dữ liệu (oracle) trên blockchain là các dịch vụ của bên thứ ba cung cấp cho các hợp đồng thông minh những thông tin bên ngoài. Chúng đóng vai trò là cầu nối giữa các blockchain và thế giới bên ngoài.
Các blockchain và hợp đồng thông minh không thể truy cập dữ liệu ngoài chuỗi (dữ liệu nằm ngoài mạng). Tuy nhiên, một số thỏa thuận hợp đồng yêu cầu phải có thông tin liên quan từ thế giới bên ngoài để thực thi các thỏa thuận đó.

Đây là lúc cần đến các oracle trên blockchain, vì chúng cung cấp một liên kết giữa dữ liệu ngoài chuỗi và dữ liệu trên chuỗi. Các oracle có vai trò thiết yếu trong hệ sinh thái blockchain vì chúng mở rộng phạm vi hoạt động của các hợp đồng thông minh. Nếu không có các oracle của blockchain, các hợp đồng thông minh sẽ có sử dụng hạn chế vì chúng chỉ có quyền truy cập vào dữ liệu từ trong mạng của chúng. 

Điều quan trọng cần lưu ý là bản thân các oracle trên blockchain không phải là nguồn dữ liệu, mà là một lớp để truy vấn, xác minh và xác thực các nguồn dữ liệu bên ngoài, sau đó chuyển tiếp thông tin đi. Dữ liệu mà các oracle truyền đi dưới nhiều dạng – thông tin giá cả, việc thanh toán được hoàn thành hoặc nhiệt độ được đo bằng cảm biến. 

Để gọi dữ liệu từ các nguồn bên ngoài, hợp đồng thông minh phải được dẫn ra và các tài nguyên mạng phải được sử dụng. Một số oracle ngoài khả năng chuyển thông tin đến các hợp đồng thông minh còn có thể gửi lại cho các nguồn bên ngoài.

Có nhiều loại oracle khác nhau – tuy nhiên, cách thức hoạt động của một oracle trên blockchain hoàn toàn phụ thuộc vào mục đích mà nó được thiết kế. Bài viết này sẽ giới thiệu một số trong các thiết kế đó.


Ví dụ về một oracle

Giả sử Alice và Bob đặt cược ai sẽ người chiến thắng bầu cử tổng thống Mỹ. Alice tin rằng ứng cử viên của đảng Cộng hòa sẽ giành chiến thắng, còn Bob tin rằng đảng Dân chủ sẽ là người chiến thắng. Họ đồng ý về các điều khoản đặt cược và khóa tiền của họ trong một hợp đồng thông minh, hợp đồng này sẽ thanh toán toàn bộ số tiền cho người chiến thắng dựa trên kết quả của cuộc bầu cử.

Vì hợp đồng thông minh không thể tương tác với dữ liệu bên ngoài, nên nó phải nhận các thông tin cần thiết qua một oracle – trong trường hợp này là kết quả của cuộc bầu cử tổng thống. Sau khi cuộc bầu cử kết thúc, oracle sẽ truy vấn một API đáng tin cậy để xác định ứng cử viên đã giành chiến thắng và chuyển tiếp thông tin này cho hợp đồng thông minh. Sau đó hợp đồng này sẽ gửi tiền cho Alice hoặc Bob, tùy thuộc vào kết quả.

Nếu không có oracle để chuyển tiếp dữ liệu, sẽ không có cách nào để kết thúc vụ cá cược này. 


Các loại oracle khác nhau của blockchain

Có thể phân loại các oracle trên blockchain tùy thuộc vào các tính chất của chúng: 

  • Nguồn – dữ liệu có nguồn gốc từ phần mềm hay phần cứng?
  • Hướng của thông tin – thông tin đến hay thông tin đi?
  • Độ tin cậy – dữ liệu là tập trung hay phi tập trung?

Một oracle có thể thuộc vào nhiều phân loại. Ví dụ, một oracle lấy thông tin từ trang web của công ty là oracle phần mềm phi tập trung lấy thông tin từ bên trong.


Oracle phần mềm

Các oracle phần mềm tương tác với các nguồn thông tin trực tuyến và truyền nó đến blockchain. Thông tin này có thể đến từ các cơ sở dữ liệu trực tuyến, các máy chủ, trang web – về cơ bản là bất kỳ nguồn dữ liệu nào trên Web.

Việc các oracle phần mềm được kết nối với mạng Internet không chỉ cho phép chúng cung cấp thông tin cho các hợp đồng thông minh mà còn truyền các thông tin đó đi theo thời gian thực. Điều này làm cho chúng trở thành một trong những loại oracle trên blockchain phổ biến nhất.

Các oracle phần mềm có thể cung cấp các thông tin bao gồm tỉ giá hối đoái, giá tài sản kỹ thuật số hoặc thông tin chuyến bay theo thời gian thực.


Oracle phần cứng

Một số hợp đồng thông minh cần tương tác với thế giới thực. Các oracle phần cứng được thiết kế để thu thập thông tin từ thế giới vật lý và cung cấp nó cho các hợp đồng thông minh. Những thông tin này có thể được chuyển từ các cảm biến điện tử, máy quét mã vạch và các thiết bị đọc thông tin khác.

Một oracle phần cứng về cơ bản “chuyển đổi” các sự kiện trong thế giới thực thành các giá trị kỹ thuật số mà các hợp đồng thông minh có thể hiểu được.

Oracle phần cứng có thể là một cảm biến có khả năng kiểm tra xem liệu một chiếc xe tải vận chuyển hàng hóa đã đến vịnh chất hàng hay chưa. Nếu xe đã đến, nó sẽ chuyển thông tin này đến hợp đồng thông minh và hợp đồng thông minh này sau đó sẽ ra các quyết định dựa trên thông tin đó.

Nếu bạn’d muốn đọc thêm về chủ đề này, chúng tôi khuyên bạn nên đọc bài viết Các trường hợp sử dụng Blockchain: Chuỗi cung ứng.


Các oracle nhận thông tin và các oracle gửi thông tin

Các oracle nhận thông tin đảm nhiệm việc gửi các thông tin từ các nguồn bên ngoài đến các hợp đồng thông minh, còn các oracle gửi thông tin sẽ gửi thông tin từ các hợp đồng thông minh ra bên ngoài.

Ví dụ, một oracle nhận thông tin sẽ cung cấp cho hợp đồng thông minh thông tin về nhiệt độ mà cảm biến đo được. Một oracle gửi thông tin có thể được kết hợp sử dụng với khóa thông minh. Khi tiền đã được gửi vào địa chỉ , hợp đồng thông minh sẽ gửi thông tin này qua một oracle gửi thông tin đến một hệ thống để mở khóa thông minh.


Các oracle tập trung và phi tập trung

Oracle tập trung được kiểm soát bởi một tổ chức duy nhất và là nhà cung cấp thông tin duy nhất cho hợp đồng thông minh. Việc chỉ sử dụng một nguồn thông tin có thể là một việc rủi ro – tính hiệu quả của hợp đồng phụ thuộc hoàn toàn vào tổ chức kiểm soát oracle đó. Ngoài ra, bất kỳ sự can thiệp độc hại nào từ một kẻ xấu sẽ có tác động trực tiếp đến hợp đồng thông minh. Vấn đề chính với các oracle tập trung là chúng tồn tại sự hư hỏng tại một điểm, điều đó làm giảm khả năng bảo vệ của chúng trước các lỗ hổng và các cuộc tấn công.

Các oracle phi tập trung có các mục tiêu tương tự như các blockchain công khai – tránh các rủi ro từ phía đối tác không hoàn thành nghĩa vụ. Chúng giúp tăng độ tin cậy của thông tin được cung cấp cho các hợp đồng thông minh bằng cách không dựa vào một nguồn sự thật duy nhất. Hợp đồng thông minh truy vấn nhiều oracle để xác định tính hợp lệ và chính xác của dữ liệu – đây là lý do tại sao các oracle phi tập trung cũng có thể được gọi là các oracle đồng thuận.

Một số dự án blockchain cung cấp các dịch vụ oracle phi tập trung cho các blockchain khác. Các oracle phi tập trung cũng có thể hữu ích trong các thị trường dự đoán, trong đó tính hợp lệ của một kết quả nhất định có thể được xác minh bằng sự đồng thuận xã hội.

Trong khi các oracle phi tập trung có mục tiêu đạt được tính không cần sự tin cậy, cần lưu ý rằng giống cũng giống như các mạng blockchain không cần sự tin cậy, các oracle phi tập trung không loại bỏ hoàn toàn vai trò của sự tin cậy nhưng phân chia chúng cho nhiều người tham gia.


Các oracle cụ thể theo hợp đồng

Một oracle cụ thể theo hợp đồng là một oracle được thiết kế cho một hợp đồng thông minh duy nhất. Điều này có nghĩa là nếu một người muốn triển khai một số hợp đồng thông minh, thì người đó cần phải phát triển một số lượng tương ứng các oracle cụ thể theo hợp đồng.

Để duy trì loại oracle này rất tốn thời gian và tốn kém chi phí. Các công ty muốn trích xuất dữ liệu từ nhiều nguồn khác nhau có thể thấy cách tiếp cận này rất không thực tế. Mặt khác, do các oracle cụ thể theo hợp đồng có thể được thiết kế từ đầu để phục vụ một trường hợp sử dụng cụ thể, nên các nhà phát triển có thể linh hoạt điều chỉnh chúng theo các yêu cầu cụ thể.


Các oracle con người

Đôi khi những người có kiến thức chuyên ngành trong một lĩnh vực cụ thể cũng có thể đóng vai trò như một oracle. Họ có thể nghiên cứu và xác minh tính xác thực của thông tin từ nhiều nguồn khác nhau và chuyển các thông tin đó đến các hợp đồng thông minh. Vì các oracle con người có thể xác minh danh tính của họ bằng cách sử dụng mật mã, nên nguy cơ họ bị giả mạo danh tính và cung cấp dữ liệu lỗi là tương đối thấp.


Vấn đề của Oracle

Vì các hợp đồng thông minh thực thi các quyết định dựa trên dữ liệu do các oracle cung cấp nên chúng là chìa khóa cho một hệ sinh thái blockchain lành mạnh. Vấn đề lớn nhất trong việc thiết kế các blockchain là nếu oracle bị tấn công, thì hợp đồng thông minh dựa vào nó cũng bị tấn công. Điều này thường được gọi là Vấn đề Oracle. 

Vì các oracle không phải là một phần của đồng thuận chính của blockchain, nên rất tiếc, chúng không nằm trong các cơ chế bảo mật mà các blockchain công khai có thể cung cấp. Xung đột về yêu cầu sự tin cậy giữa các oracle của bên thứ ba và khả năng thực thi mà không cần sự tin cậy của các hợp đồng minh vẫn là một bài toán chưa có lời giải.

Các cuộc tấn công của người trung gian, trong đó một tác nhân độc hại có quyền truy cập vào luồng dữ liệu giữa các oracle và hợp đồng để sửa đổi hoặc làm sai lệch dữ liệu, cũng có thể là một mối đe dọa.  


Kết luận

Để áp dụng blockchain trên phạm vi toàn cầu, cần có một cơ chế đáng tin cậy cho việc giao tiếp giữa các hợp đồng thông minh và thế giới bên ngoài. Nếu không có các oracle trên blockchain, các hợp đồng thông minh sẽ chỉ có thể dựa vào những thông tin có sẵn trong mạng của chúng, điều này sẽ hạn chế đáng kể khả năng của chúng.

Các oracle phi tập trung có thể tích hợp các cơ chế bảo vệ để loại bỏ nhiều rủi ro hệ thống khỏi hệ sinh thái blockchain. Các oracle trên blockchain vẫn là một trong những yếu tố nền tảng quan trọng cần được triển khai theo cách an toàn, đáng tin cậy và theo cách thức không cần sự tin tưởng giữa các bên tham gia để phát triển hệ sinh thái blockchain.