Oracle problem - Các vấn đề của Oracle Blockchain hiện tại
Lời mở đầu
Các vấn đề Oracle trong blockchain hiện tại đang là một trong những rào cản quan trọng nhất cần được giải quyết để cho phép các hợp đồng thông minh trên các mạng như Ethereum được ứng dụng ở nhiều nơi, nhiều thị trường và nhiều lĩnh vực hơn.
Như những gì đã được đề cập trong series “Blockchain Education”, hợp đồng thông minh trong blockchain có một vai trò vô cùng quan trọng và mang lại một tiềm năng phát triển lớn. Với việc sử dụng hợp đồng thông minh, các bên tham gia có thể thực hiện hợp đồng một cách chính xác, an toàn và nhanh chóng nhất.
Nền kinh tế hoạt động dựa trên hợp đồng thông minh sẽ ngày một phát triển mạnh mẽ hơn so với nền kinh tế non-blockchain. Với hợp đồng thông minh, các bên tham gia không cần biết nhau từ trước, cũng không cần phải gặp trực tiếp để có thể làm việc với nhau, không cần một bên trung gian thứ ba mà chỉ cần có kết nối internet, bởi vì nó được tạo nên nhờ tất cả các thiết bị có internet được kết nối với nhau.
Sản phẩm phụ của cơ sở hạ tầng kỹ thuật số này là một kho thông tin dữ liệu và API (Application Programming Interface) ngày càng được mở rộng hơn. Nó cung cấp các thông tin chi tiết về cách mà thế giới đang diễn ra.
Ví dụ: Đưa ra thông tin của những chủ đề đang được thảo luận nhiều trên mạng xã hội hoặc các cảm biến IoT (Internet of Things) đang chỉ ra các mô thức phổ biến của lưu lượng truy cập.
Các hợp đồng thông minh hoạt động trong blockchain, dữ liệu truyền thống và nền kinh tế API nếu được kết hợp với nhau sẽ trở thành một hệ thống tự động hóa dữ liệu với tiềm năng phát triển to lớn trong tương lai.
Nhưng câu hỏi đặt ra là làm thế nào để hai thế giới này kết nối với nhau? Điều này sẽ được lý giải trong bài viết ngày hôm nay với chủ đề “Oracle problem”.
Thông tin trong bài dựa trên dữ liệu bài dịch gốc anh em có thể tham khảo thêm tại đây.
Bài viết sẽ được chia thành 5 phần chính và giải quyết các vấn đề sau:
- Vấn đề Oracle là gì?
- Blockchain Oracle dùng để làm gì?
- Tại sao các blockchain như Ethereum không cung cấp các giải pháp Oracle cho nền tảng của mình?
- Các rủi ro về vấn đề bảo mật của Oracles tập trung (Centralized Oracles)
- Giới thiệu về Chainlink - một Oracle phi tập trung an toàn và đáng tin cậy.
Bây giờ mình sẽ đi vào phân tích cụ thể từng phần để anh em có thể nắm được các nội dung của vấn đề Oracle
Vấn đề Oracle là gì?
Vấn đề Oracle chính là việc các blockchain gặp nhiều khó khăn trong việc thực hiện tích hợp sẵn chức năng lấy các dữ liệu đưa vào blockchain và đẩy dữ liệu ra bất kỳ một hệ thống bên ngoài nào khác.
Như vậy, blockchain bị cô lập rất giống với một máy tính không có kết nối Internet. Sự độc lập riêng rẽ của blockchain khiến cho nó trở nên cực kỳ an toàn và đáng tin cậy. Nó là mạng lưới chỉ cần hình thành sự đồng thuận cho một tập hợp các câu hỏi cơ bản như Đúng/Sai bằng cách sử dụng kho dữ liệu đã được lưu trữ sẵn...
Ví dụ: Người sở hữu mã khóa công khai có thực hiện ký các hợp đồng giao dịch của họ bằng mã khóa bí mật tương ứng không, địa chỉ công khai có đủ nguồn vốn để thực hiện giao dịch không và có loại giao dịch nào chuẩn xác được như smart contract không?
Một trọng điểm nhỏ của sự đồng thuận blockchain chính là lý do tại sao các hợp đồng thông minh được coi có tính minh bạch. Chúng được thực hiện một cách rõ ràng trong việc soạn thảo với mức độ chính xác cao hơn nhiều so với các nền tảng truyền thống.
Tuy nhiên, để hợp đồng thông minh có thể phát huy được hết khả năng của nó. 90% các trường hợp xảy ra đều cần kết nối với cuộc sống thực tế để giải quyết vấn đề.
Ví dụ:
Trong lĩnh vực tài chính, hợp đồng thông minh cần thông tin từ thị trường để xác định các điều khoản thanh toán.
Trong lĩnh vực bảo hiểm, hợp đồng thông minh cần IoT và dữ liệu web để đưa ra quyết định về các chính sách, điều khoản thanh toán.
Trong lĩnh vực tài trợ thương mại, hợp đồng thông minh cần tài liệu thương mại và chữ ký số để biết được khi nào tiến hành thanh toán. Và nhiều hợp đồng thông minh muốn thực hiện việc thanh toán bằng tiền pháp định qua hệ thống thanh toán truyền thống.
Không có điều nào trong số này được tạo ra trong blockchain, cũng không thể thực hiện được ở các dịch vụ truyền thống.
Vì vậy Oracle được sinh ra như là cầu nối kết nối giữa blockchain (on-chain) và thế giới thực tế bên ngoài (off-chain).
Đọc thêm: Oracle là gì? Tầm quan trọng & xu hướng của Oracle trong tương lai
Blockchain Oracle dùng để làm gì?
Blockchain Oracle là một bên trung gian thứ ba để kết nối giữa các blockchain và bất kỳ hệ thống ngoài chuỗi nào.
Nó bao gồm các nhà cung cấp dữ liệu, API web, hỗ trợ doanh nghiệp, nhà cung cấp dịch vụ lưu trữ đám mây, thiết bị IoT, chữ ký điện tử, hệ thống thanh toán, các blockchain khác, v.v.
Oracles bao gồm một số chức năng chính như sau:
- Listen (lắng nghe): Giám sát và quản lý dữ liệu đầu vào (dữ liệu ngoài chuỗi) hay các yêu cầu được gửi đến hợp đồng thông minh trước khi đưa vào blockchain.
- Extract: Cổng cung cấp dữ liệu từ một hay nhiều hệ thống thông tin bên ngoài như API đến các máy chủ của bên web thứ 3.
- Format (định dạng): Cho phép hai hệ thống đầu vào, đầu ra kết nối với nhau qua blockchain bằng cách định dạng các dữ liệu API đầu vào một cách tương thích với định dạng của các dữ liệu API đầu ra.
- Validate (xác thực): Đưa ra những bằng chứng để chứng minh tính bảo mật của dịch vụ Oracle bằng các hình thức như ký kết về thông tin, ký kết về các giao dịch blockchain, chữ ký TLS, chứng nhận “Trusted Execution Environment - môi trường thực thi tin cậy“, chứng minh tính không có thông tin (zero knowledge proof) và nhiều cách chứng minh khác.
- Compute (tính toán): Có các thuật toán để tính toán và xử lý dữ liệu.
Ví dụ: Tính giá trung bình từ nhiều nguồn dữ liệu đầu vào để đưa ra một con số chính xác và sát với giá thực tế nhất. Hoặc phức tạp hơn đó là trong lĩnh vực bảo hiểm, có thể báo giá bảo hiểm thông qua việc xử lý và tính toán số liệu từ các nguồn thông tin như hồ sơ rủi ro cá nhân, tỷ giá thị trường, chi phí vốn, v.v. - Broadcast (truyền tín hiệu): Sau khi ký nhận và phát hành một giao dịch trên blockchain đồng nghĩa với việc thông tin dữ liệu đầu vào đã được xác thực tính tương thích trên chuỗi, sau đó sẽ được đưa vào xử lý trong blockchain và hợp đồng thông minh.
- Output (đầu ra): Hỗ trợ xử lý thông tin đầu ra bằng việc gửi dữ liệu từ hợp đồng thông minh qua các hệ thống bên ngoài.
Ví dụ: Gửi thông tin thanh toán đến mạng lưới thanh toán truyền thống hoặc tác động lên các hệ thống vật lý không gian mạng khác.
Để cung cấp các chức năng trên, hệ thống Oracle phải hoạt động đồng thời cả trong (on-chain) và ngoài (off-chain) blockchain.
On-chain thực hiện thiết lập các kết nối từ bên ngoài với blockchain như: Lắng nghe và giải quyết các yêu cầu đầu vào, truyền dữ liệu, gửi bằng chứng, cung cấp các thông tin, dữ liệu cần thiết cho blockchain và đôi khi thực hiện tính toán trên blockchain.
Off-chain là để xử lý các yêu cầu, lấy dữ liệu và định dạng dữ liệu bên ngoài, gửi dữ liệu từ blockchain đến các hệ thống bên ngoài và có thể thực hiện tính toán trên các hệ thống mạng khác một cách tối ưu.
Một hợp đồng thông minh do dịch vụ Oracle của Chainlink cung cấp cho bảo hiểm cây trồng. Lấy dữ liệu thời tiết từ 3 nguồn Open Weather Map, World Weather Online và WeatherBug.
Sau đó dữ liệu được tính toán và xử lý thông qua các node của Chainlink và đưa ra kết quả cuối cùng cho khách hàng. Hợp đồng bảo hiểm trên blockchain được kích hoạt và khách hàng có thể thanh toán bằng bất kỳ phương thức thanh toán truyền thống nào.
Tại sao Blockchain không thể giải quyết vấn đề Oracle?
Blockchains có độ bảo mật cao và đáng tin cậy vì một số đặc tính của nó.
Như đã phân tích ở trên, chúng ta chỉ cần đưa ra cách quyết định cho những câu hỏi rất cơ bản bằng cách chỉ sử dụng dữ liệu được tạo ra trong môi trường của chính nó mà có thể là đúng hoặc sai.
Các blockchain sử dụng kiến trúc mạng ngang hàng thay vì một trung tâm quản lý. Mỗi cá thể trong mạng lưới đóng vai trò như một nút (node). Tất cả các node tạo sự đồng thuận.
Với việc sử dụng tính phi tập trung đảm bảo rằng một node hoặc một nhóm nhỏ các node không thể thay đổi các quy tắc của thuật toán đồng thuận (PoW, PoS, v.v.) từ đó ngăn chặn tấn công mạo nhận (Sybil attack) đối với blockchain.
Tuy nhiên, các node ở trong mạng lưới blockchains không phù hợp để trả lời cho các câu hỏi đào sâu vào thực tế hay giải quyết được những yêu cầu từ dữ liệu bên ngoài.
Ví dụ: Một câu hỏi đơn giản như "Giá Bitcoin hiện tại là bao nhiêu?" hoặc "Thời tiết ở New York đang như thế nào?", tùy thuộc vào nguồn dữ liệu được cung cấp và xử lý để trả lời cho hai câu hỏi, nhưng chắc chắn rằng sẽ có sự khác nhau giữa các câu trả lời.
Vậy cuối cùng, câu hỏi được đặt ra trở thành: Câu trả lời chính xác nhất là gì?
Lớp nền của blockchain mở ra toàn cảnh các mối quan tâm xoay quanh sự bảo mật, độ tin cậy và quản trị, điều này sẽ gây ra những rủi ro cho giá trị mà blockchain hướng tới - tính trung lập của 1 giao dịch điện toán.
Một điều quan trọng là làm thế nào để đảm bảo được chất lượng và tính chính xác của thông tin khi không phải mọi node trong hệ thống đều có quyền truy cập dữ liệu như nhau.
Ngay cả một yêu cầu cơ bản về giá Bitcoin cũng rất khó có thể đưa ra chính xác nếu chỉ dựa vào thông tin cung cấp từ một trang web hoặc một sàn giao dịch đơn lẻ. Tính đơn lẻ sẽ không cung cấp được thông tin chính xác và đáng tin cậy.
Còn nếu bạn chọn cách đầu tư cho API, trả phí cho một công ty tổng hợp dữ liệu chuyên nghiệp, chất lượng cao và có kinh nghiệm lâu dài trong việc lọc dữ liệu với phạm vi rộng, bao quát toàn thị trường.
Kết quả thông tin dữ liệu cuối cùng mà bạn nhận được sẽ có tính chính xác cao hơn.
Việc quản lý và kiểm soát chất lượng thông tin ngoài chuỗi được gửi qua các node blockchain là cực kỳ khó khăn. Lý do vì bất kỳ ai cũng có thể là một node giả ẩn danh và ai cũng đều có thể tạo ra câu trả lời. Không phải ai cũng sẵn sàng bỏ tiền ra mua hay đăng ký API để nâng cao chất lượng của thông tin nhận được.
Một vấn đề lớn khác liên quan đến khả năng mở rộng.
Mỗi khi nguồn dữ liệu mới cần được thêm vào mạng lưới hoặc khi các phương pháp tổng hợp dữ liệu đầu vào cần được điều chỉnh, nó đòi hỏi sự phối hợp và thống nhất của mọi node trong mạng lưới, cần được tất cả chấp thuận về việc nâng cấp và thay đổi này.
Chi phí quản lý này làm tăng sự bất hòa hợp, làm chậm sự phát triển của các tính năng cốt lõi trong blockchain (chẳng hạn như PoS và sharding) và hạn chế tốc độ cập nhật cái mới của Oracle.
Cuối cùng, lớp nền của blockchain càng phức tạp thì càng dễ bị tấn công và tồn tại nhiều rủi ro khác cho tất cả các ứng dụng chạy trên đó.
Ngay cả những ứng dụng không sử dụng Oracles hoặc không liên quan đến yêu cầu dữ liệu cũng sẽ có khả năng bị gián đoạn nếu toàn bộ chuỗi bị dừng vì sự cố Oracle.
Chính vì những lý do kể trên và nhiều lý do khác mà Oracles không được tích hợp vào lớp nền của bất kỳ blockchain nào. Thay vào nó đó hoạt động như các mạng độc lập. Điều này giúp cho các blockchain giảm bớt khả năng bị tấn công và vẫn đảm bảo được tính xác định của blockchain do cơ chế đồng thuận
Trong khi Oracles sẽ linh hoạt xử lý các thông tin, dữ liệu ngoài chuỗi. Với việc tách biệt như vậy sẽ đảm bảo Oracle không tạo ra bất cứ rủi ro nào cho blockchain mà chúng được sử dụng.
Các rủi ro khi sử dụng Oracles tập trung (Centralized Oracles)
Hợp đồng thông minh được tự động thực hiện khi các điều kiện trong thỏa thuận được đáp ứng nhờ sự hỗ trợ của công nghệ mật mã học mà không cần đến sự can thiệp của con người.
Để đưa ra được kết quả cuối cùng, tất cả các node trong blockchain đều không được xuất hiện một điểm lỗi nào. Ngoài ra nó phải mở rộng cho Oracle tham gia vào để duy trình quá trình thực hiện hợp đồng từ đầu đến cuối.
Tại sao lại sinh ra một hợp đồng trị giá hàng triệu đô la như hợp đồng thông minh trên blockchain phi tập trung nếu như mọi vấn đề về việc kiểm soát thông tin dữ liệu đầu vào đều có thể giải quyết được bằng bất cứ một Oracles tập trung nào?
Khi chúng ta sử dụng Oracle dù là tự chạy hay sử dụng dịch vụ Oracle của bên thứ ba cung cấp đều đồng nghĩa với việc việc trao quyền kiểm soát thông tin cho bên phía Oracle.
Mặc dù có thể phía cung cấp dịch vụ Oracle tập trung họ làm việc với mục đích tốt, nhưng chúng ta không thể tránh khỏi những rủi ro xảy ra khi họ có thể ngừng hoạt động đột ngột. Hay khi có các cuộc tấn công DDOS, hack và tình trạng trì trệ do hạn chế về năng lực, tất cả điều này đều gây ra rủi ro lớn cho phía người sử dụng.
Ngay cả những bên cung cấp dịch vụ Oracle lớn mạnh cũng có thể xảy ra các trường hợp rủi ro về việc hợp đồng bị thay đổi, hối lộ, lừa đảo,...
Vì thế mô hình Oracle tập trung khó có thể mở rộng và phát triển mạnh mẽ. Thay vào đó Oracle phi tập trung sẽ được tin dùng hơn do tính an toàn và tin cậy của nó.
Để khắc phục những vấn đề đang tồn tại, các Oracles cần phải chứng minh được tính bảo mật, an ninh và độ tin cậy giống như một blockchain.
Mặc dù có nhiều điểm khác biệt trong cách giải quyết vấn đề giữa Oracle và blockchain, quan trọng là cần giải quyết được vấn đề làm thế nào để Oracle đáp ứng được tính đồng thuận của tất cả các node trong blockchain.
Chainlink - Một Oracle phi tập trung an toàn và đáng tin cậy
Chainlink là mạng lưới Oracle phi tập trung được thành lập năm 2017 bởi công ty Smart Contract Chainlink Ltd., có trụ sở tại Cayman Islands.
Chainlink là cầu nối chuyển tiếp thông tin, dữ liệu từ thế giới thực vào blockchain và ngược lại. Nó là bên cung cấp các giải pháp Oracle tùy chỉnh cho rất nhiều các dự án khác nhau.
Sau đây là các đặc tính của Chainlink để mọi người có thể hiểu rõ hơn:
- Open-source (mã nguồn mở): Là một công nghệ mã nguồn mở cho phép cộng đồng blockchain xác minh được tính độc lập, tính bảo mật và độ tin cậy của mã nguồn và các chức năng của Chainlink, cũng như góp phần cải tiến nó.
- External Adapters (bộ cảm biến ngoại vi): Cho phép các node trong mạng lưới lưu trữ khóa API một cách an toàn và quản lý các thông tin đăng nhập tài khoản. Nó cho phép hợp đồng thông minh xuất các dữ liệu ra bất kỳ hệ thống và API bên ngoài nào, bao gồm cả những hệ thống được bảo vệ bằng mật khẩu/thông tin xác thực.
- Decentralization (phi tập trung): Tính phi tập trung ở cấp độ node và nguồn dữ liệu đảm bảo không có một node hoặc nguồn dữ liệu nào bị lỗi. Đảm bảo chắc chắn rằng dữ liệu sẽ được cung cấp đúng thời hạn với tính chính xác cao nhất cho người dùng.
- Data Signing (ký xác thực dữ liệu): Các node ký mã hóa dữ liệu mà họ cung cấp cho các hợp đồng thông minh cho phép người dùng xác định các node nào đã gửi dữ liệu và xem được lịch sử trước đây của họ để từ đó đánh giá chất lượng và hiệu suất làm việc của họ.
- Service Agreements (thỏa thuận dịch vụ): Sử dụng các điều khoản được quy định giữa nhà cung cấp Oracle và những yêu cầu của hợp đồng thông minh. Từ đó đưa ra các điều khoản về mức thưởng/phạt đối với bên cung cấp dịch vụ khi họ đáp ứng được các yêu cầu dữ liệu ngoài chuỗi của khách hàng.
- Reputation Systems (hệ thống có uy tín): Cung cấp những dữ liệu đã được ký xác thực vào hệ thống cho phép người dùng đưa ra quyết định đúng đắn xem node nào tốt và node nào không dựa trên nhiều chỉ số như số lượng công việc hoàn thành, khách hàng được phục vụ, thời gian phản hồi trung bình, v.v.
- Certification Services (chứng nhận dịch vụ): Cho phép các node gia tăng bảo mật và độ tin cậy cho người dùng bằng cách cung cấp một số thông tin chứng nhận như KYC, vị trí địa lý của node, đánh giá về bảo mật cơ sở hạ tầng của họ, v.v.
- Advanced Cryptography and Hardware (bảo mật và phần cứng tiên tiến): Cung cấp các phương pháp bảo mật tiên tiến (như zero knowledge proofs) và các phần cứng (như môi trường thực thi đáng tin cậy). Nó cho phép các Oracles thực hiện các chức năng nâng cao như: Chứng minh nguồn gốc của dữ liệu cho một hợp đồng thông minh (ví dụ: chỉ ra dữ liệu cụ thể đến từ máy chủ nào), bảo mật dữ liệu từ chính Oracle, thực hiện tính toán ngoài chuỗi và nhiều chức năng khác.
Đây chỉ là một số trong số rất nhiều tính năng được cung cấp bởi Chainlink nhằm cung cấp cho người dùng một dịch vụ Oracle có độ an toàn cao và đáng tin cậy.
Bằng cách xây dựng các tính năng chính này của Chainlink, các hợp đồng thông minh trên bất kỳ blockchain nào giờ đây đều có thể truy cập dữ liệu ngoài chuỗi mà không bị ảnh hưởng tới tính xác định - giá trị cốt lõi của blockchain. Chainlink là một dự án Oracle cung cấp một nền tảng vững chắc để xây dựng “tự động hóa dữ liệu” trong tương lai.
Tổng kết
Hy vọng sau bài viết, anh em đã hiểu hơn về vấn đề Oracle trong blockchain là gì và chúng có thể được giải quyết bằng phương pháp nào.
Để đi sâu hơn và hiểu rõ hơn về dự án Chainlink cũng như các dự án Oracle khác trên coin98.net đã có bài viết như: Dự án Band Protocol, Dự án Tellor.. Nếu có bất kỳ thắc mắc nào, anh em hãy để lại comment để chúng ta cùng thảo luận nhé!
Hẹn gặp lại anh em trong bài viết sắp tới!