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 (smart contract) 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 aka off-chain). 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 (off-chain) và dữ liệu trên chuỗi (on-chain). 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ế.
Ví dụ về một oracle
VD Tèo và Tí đặt cược ai sẽ người chiến thắng bầu cử tổng thống Mỹ. Tèo tin rằng ứng cử viên của đảng Cộng hòa sẽ giành chiến thắng, còn Tí 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 Tèo hoặc Tí, 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 API này có thể là:
- Giá của Yahoo Stock.
- Thông tin về thời tiết.
- Thông tin về giá gas của Ethereum.
- Thông tin giá cho Coingecko.
- Bitcoin Block Hash.
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 đó.
Các Oracle nổi bật
Chainlink
Chainlink lấy dữ liệu bên ngoài đời sống thực đưa vào trong Chainlink. Ở trong Chainlink được vận hành thông qua các node xử lý thông tin để đưa ra kết quả cuối cùng cho khách hàng.
Dữ liệu được đưa vào Blockchain thông qua ChainLink được xem như điều kiện để kích hoạt Smart Contract hoạt động và tạo ra một dữ liệu đầu ra (một khoản thanh toán, chứng nhận sở hữu, yêu cầu chuyển dữ liệu…)
Data Provider (nhà cung cấp data) -> Đưa vào chainlink để xử lý nhờ các node -> Khách hàng (các blockchain nền tảng, các dự án DeFi,…). Đồng LINK token được sử dụng để thanh toán cho các node vận hành trong Chainlink. Được thanh toán bởi khách hàng.
Khiếm khuyết 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à The Oracle Problem.
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 (Man-in-the-middle attacks), 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.
TTT tổng hợp