Vấn đề blockchain oracle là gì?
Vấn đề blockchain oracle là một trong những rào cản quan trọng nhất cần phải vượt qua nếu các hợp đồng thông minh trên các mạng như Ethereum muốn đạt được sự chấp nhận hàng loạt trên nhiều thị trường
Các hợp đồng thông minh chạy trên blockchain mang lại tiềm năng to lớn để xác định lại cách các thực thể độc lập tham gia vào các thỏa thuận hợp đồng và trao đổi giá trị. Hoạt động tách biệt với nền kinh tế hợp đồng thông minh là nền kinh tế kỹ thuật số phi blockchain lớn hơn nhiều, được tạo thành từ tất cả các thiết bị kết nối Internet và tính toán trực tuyến. Sản phẩm phụ của cơ sở hạ tầng kỹ thuật số là một kho dữ liệu và API ngày càng mở rộng, cung cấp thông tin chi tiết về cách thế giới hoạt động; ví dụ: kết quả tìm kiếm trên Internet thể hiện các chủ đề thảo luận phổ biến trong xã hội hoặc các cảm biến IoT hiển thị các dòng lưu thông phổ biến.
Các hợp đồng thông minh trên blockchain, dữ liệu truyền thống và nền kinh tế API có tiềm năng to lớn để kết hợp thành các hợp đồng thông minh kết hợp và hình thành kiến trúc tương lai của tự động hóa theo hướng dữ liệu, 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 là mấu chốt của “oracle problem” và sẽ là trọng tâm của bài viết này.
Bài viết được chia thành năm phần chính:
Vấn đề oracle
Công việc của một oracle
Tại sao các blockchain như Ethereum không tự cung cấp giải pháp oracle
Rủi ro bảo mật của các oracle tập trung
Chainlink, tiêu chuẩn mạng oracle phi tập trung an toàn và đáng tin cậy
Vấn đề Oracle
Vấn đề oracle xoay quanh một hạn chế rất đơn giản - các blockchain không thể lấy dữ liệu vào hoặc đẩy dữ liệu ra bất kỳ hệ thống bên ngoài nào dưới dạng chức năng tích hợp sẵn. Như vậy, các blockchain là các mạng bị cô lập, giống như một máy tính không có kết nối Internet. Sự cô lập của một blockchain là đặc tính khiến nó trở nên cực kỳ an toàn và đáng tin cậy, vì mạng chỉ cần tìm được sự đồng thuận về một bộ câu hỏi nhị phân (đúng/sai) rất cơ bản bằng cách sử dụng dữ liệu đã được lưu trữ bên trong sổ cái của nó. Những câu hỏi này bao gồm: chủ sở hữu khóa công khai có ký giao dịch bằng khóa bí mật tương ứng của họ không, địa chỉ công khai có đủ tiền để thực hiện giao dịch không và loại giao dịch có hợp lệ trong hợp đồng thông minh cụ thể đó không? Trọng tâm đồng thuận blockchain rất hẹp là lý do tại sao các hợp đồng thông minh được coi là có tính xác định — chúng thực thi chính xác như được viết với mức độ chắc chắn cao hơn nhiều so với các hệ thống truyền thống.
Tuy nhiên, để các hợp đồng thông minh hiện thực hóa tới 90% các trường hợp sử dụng tiềm năng, chúng phải kết nối với thế giới bên ngoài. Ví dụ: hợp đồng thông minh tài chính cần thông tin thị trường để xác định các khoản thanh toán, hợp đồng bảo hiểm thông minh cần IoT và dữ liệu web để đưa ra quyết định về việc thanh toán chính sách, hợp đồng thương mại cần tài liệu thương mại và chữ ký kỹ thuật số để biết khi nào phát hành thanh toán và nhiều hợp đồng thông minh muốn thanh toán bằng tiền pháp định trên mạng thanh toán truyền thống. Không có thông tin nào trong danh sách trên được tạo ra trong chuỗi khối, cũng như các dịch vụ truyền thống này đều không thể truy cập trực tiếp.
Cầu nối kết nối giữa blockchain (trên chuỗi) và thế giới bên ngoài (ngoài chuỗi) yêu cầu một phần cơ sở hạ tầng bổ sung và riêng biệt được gọi là oracle.
Blockchain Oracle là gì?
Blockchain oracle là một phần mềm trung gian an toàn tạo điều kiện giao tiếp giữa blockchain và bất kỳ hệ thống ngoài chuỗi nào, bao gồm các nhà cung cấp dữ liệu, web API, phụ trợ doanh nghiệp, các nhà cung cấp dịch vụ đá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 đảm nhận một số chức năng chính:
Lắng nghe - giám sát mạng blockchain để kiểm tra bất kỳ yêu cầu dữ liệu ngoài chuỗi nào của người dùng hoặc hợp đồng thông minh.
Trích xuất - tìm nạp dữ liệu từ một hoặc nhiều hệ thống bên ngoài, chẳng hạn như API ngoài chuỗi được lưu trữ trên máy chủ web của bên thứ ba.
Định dạng - định dạng dữ liệu được truy xuất từ các API bên ngoài thành một định dạng blockchain có thể đọc được (đầu vào) và/hoặc làm cho dữ liệu blockchain tương thích với một API bên ngoài (đầu ra).
Xác thực - tạo bằng chứng mật mã chứng thực hiệu suất của dịch vụ tiên tri bằng cách sử dụng bất kỳ sự kết hợp nào của việc ký dữ liệu, ký giao dịch blockchain, chữ ký TLS, chứng thực Môi trường thực thi tin cậy (TEE) hoặc zero-knowledge proof.
Tính toán - thực hiện tính toán ngoài chuỗi an toàn cho hợp đồng thông minh, chẳng hạn như tính toán giá trị trung bình từ nhiều lần yêu cầu oracle hoặc tạo một số ngẫu nhiên có thể xác minh cho một ứng dụng trò chơi.
Truyền thông tin - ký và gửi giao dịch lên blockchain để gửi dữ liệu và bất kỳ bằng chứng nào tương ứng trên chuỗi để hợp đồng thông minh sử dụng.
Đầu ra (không bắt buộc) - gửi dữ liệu đến hệ thống bên ngoài khi thực hiện hợp đồng thông minh, chẳng hạn như chuyển tiếp hướng dẫn thanh toán tới mạng thanh toán truyền thống hoặc kích hoạt các hành động từ hệ thống mạng vật lý.
Thực hiện các chức năng trên yêu cầu hệ thống oracle hoạt động cả trên và ngoài blockchain cùng lúc. Thành phần trên chuỗi là để thiết lập kết nối blockchain (để lắng nghe các yêu cầu), truyền thông tin dữ liệu, gửi bằng chứng, trích xuất dữ liệu blockchain và có thể bao gồm thực hiện tính toán trên blockchain. Thành phần ngoài chuỗi là để xử lý các yêu cầu, truy xuất và định dạng dữ liệu bên ngoài, gửi dữ liệu chuỗi khối đến các hệ thống bên ngoài và thực hiện tính toán ngoài chuỗi để có khả năng mở rộng cao hơn, quyền riêng tư, bảo mật và nhiều cải tiến hợp đồng thông minh khác.
Tại sao blockchain không thể giải quyết vấn đề oracle
Blockchain có độ bảo mật cao và đáng tin cậy vì một số nguyên tắc thiết kế cụ thể. Như đã mô tả ở trên, một blockchain chỉ cần hình thành sự đồng thuận về các câu hỏi nhị phân rất cơ bản bằng cách sử dụng dữ liệu đã được lưu trữ trên sổ cái của chính nó. Sổ cái của blockchain được coi là đúng vì nó tận dụng sự phi tập trung để xác thực dư thừa mọi phần dữ liệu bằng cách sử dụng tất cả các node trong mạng. Nó cũng sử dụng phi tập trung để duy trì tính toàn vẹn của thuật toán đồng thuận (PoW, PoS, v.v.), đảm bảo các quy tắc giao thức chỉ thay đổi khi phần đa của mạng đồng ý với nhau (ví dụ: 51%). Các thuộc tính này cung cấp sự đảm bảo mạnh mẽ về tính xác định của tính toán và lưu trữ dữ liệu, đặc biệt là trong các mạng có độ phi tập trung cao và có khả năng chống lại Sybil.
Tuy nhiên, blockchain không phù hợp để trả lời các câu hỏi đi sâu vào lĩnh vực chủ quan hoặc yêu cầu dữ liệu bên ngoài mà không phải node nào trong mạng cũng có thể dễ dàng truy cập được. Ví dụ: một câu hỏi đơn giản như 'Giá thị trường của Bitcoin là bao nhiêu?' hoặc 'Thời tiết ở New York như thế nào?' Có thể gợi ra nhiều câu trả lời khác nhau có thể khác nhau tùy thuộc vào nguồn dữ liệu họ sử dụng và thời điểm họ yêu cầu dữ liệu từ nguồn. Câu hỏi sau đó trở thành, câu trả lời chính xác là gì và làm thế nào để xác minh nó là đúng?
Việc giới thiệu tính chủ quan ở lớp cơ sở của blockchain sẽ mở đường cho một loạt các lo ngại về bảo mật, độ tin cậy và quản trị, dẫn đến rủi ro tới giá trị mà blockchain đề xuất mang lại.
Một mối lo ngại lớn là làm thế nào để đảm bảo dữ liệu bên ngoài được nhập vào blockchain là chất lượng cao? Ngay cả một yêu cầu dữ liệu cơ bản về giá Bitcoin cũng khá là khó khăn vì chỉ mỗi việc nhìn vào một trang web hoặc một sàn giao dịch đơn lẻ có thể không chính xác hoặc đáng tin cậy bằng việc trả phí API cho một công ty tổng hợp dữ liệu chuyên nghiệp có hàng chục năm kinh nghiệm lọc dữ liệu và phủ sóng thị trường và được khuyến khích về mặt tài chính để duy trì chất lượng dịch vụ cao. Việc quản lý chất lượng và thực thi đối với dữ liệu ngoài chuỗi được gửi bởi các node blockchain là cực kỳ khó khăn vì bất kỳ ai cũng có thể giả danh chạy một node và gửi câu trả lời, ngay cả khi họ không sẵn sàng mua API trả phí ngoài chuỗi chất lượng cao. Nếu chất lượng dữ liệu được thực thi, blockchain sẽ có giới hạn trên thấp hơn về phi tập trung vì chi phí chạy các node sẽ tăng lên đối với mọi công việc oracle mới trên hệ thống, ảnh hưởng đến bảo mật của tất cả các ứng dụng khác chạy trên blockchain đấy.
Một mối lo ngại lớn khác là 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 hoặc phương pháp tổng hợp dữ liệu hiện có phải được điều chỉnh, nó đòi hỏi sự phối hợp quản trị xã hội rộng rãi để mọi node trong mạng đồng ý và nâng cấp phần mềm của họ. Việc bổ sung chi phí quản lý dẫn đến tăng ma sát, phát triển các tính năng blockchain cốt lõi chậm hơn (chẳng hạn như PoS và sharding) và giới hạn đổi mới oracle. Tóm lại, càng có nhiều độ phức tạp ở lớp cơ sở của blockchain, thì càng có nhiều bề mặt để tấn công và rủi ro đối với tất cả các ứng dụng chạy trên đó. Ngay cả các ứng dụng không sử dụng oracles hoặc không liên quan đến các yêu cầu dữ liệu đối đầu cũng sẽ bị bắt chéo và có khả năng bị gián đoạn nếu toàn bộ chuỗi ngừng hoạt động vì sự cố oracle.
Chính vì những lý do này và nhiều lý do khác mà oracles không được tích hợp vào lớp cơ sở của bất kỳ blockchain lớn nào, mà thay vào đó hoạt động như các mạng riêng biệt. Điều này đảm bảo rằng các blockchain có ít bề mặt tấn công hơn và duy trì tính xác định của chúng bằng cách duy trì sự tập trung duy nhất vào sự đồng thuận, trong khi oracle có sự linh hoạt cần thiết để tạo ra thuyết quyết định từ một thế giới ngoài chuỗi phức tạp và chủ quan mà không tạo ra sự phụ thuộc và giới hạn gây rủi ro cho tất cả các ứng dụng khác.
Blockchain oracle tập trung có nhiều rủi ro lớn
Mục đích của hợp đồng thông minh là đạt được tính xác định thông qua việc thực thi bằng công nghệ các điều khoản của hợp đồng thay vì thực thi theo xác suất do con người thực thi. Để đạt được mục tiêu này, blockchain không thể có điểm đơn gây thất bại nào — một tính năng phải được mở rộng qua oracle nếu tính xác định của các hợp đồng thông minh được duy trì từ đầu đến cuối. Tại sao hợp đồng thông minh trị giá hàng triệu đô la chạy trên một blockchain hoàn toàn phi tập trung lại dùng một oracle tập trung nơi mà một điểm duy nhất có thể kiểm soát đầu vào xác định kết quả của hợp đồng?
Cho dù đó là nhóm phát triển điều hành oracle hay một dịch vụ tập trung của bên thứ ba, cả hai tình huống đều trao quyền lực quá mức cho một thực thể duy nhất để tác động đến hợp đồng thông qua sự kiểm soát oracle. Mặc dù nhà điều hành oracle tập trung hoạt động với mục đích tốt, nhưng họ vẫn phải đối mặt với tất cả các vấn đề tập trung phổ biến hiện nay như thời gian ngừng hoạt động, các cuộc tấn công DDOS, hack và không đủ năng lực, tất cả đều khiến tiền của người dùng gặp rủi ro.
Ngay cả những thực thể tập trung danh tiếng nhất cũng có thể phải chịu áp lực một khi giá trị của hợp đồng tăng lên, khiến dẫn tới hối lộ, đe dọa và áp lực pháp lý, chỉ cần một con sâu trong tổ chức phá hỏng. Mô hình này không thể mở rộng và không phù hợp với ý tưởng về cơ sở hạ tầng phi tập trung là động lực chính của tự động hóa an toàn và đáng tin cậy.
Để khắc phục những thiếu sót này, oracle cần phải tạo ra các đảm bảo an ninh và độ tin cậy giống như một blockchain, mặc dù theo một cách khác vì nhiều điểm khác biệt của chúng.
Chainlink: Tiêu chuẩn oracle đáng tin cậy và an toàn
Để mang lại tính xác định cho layer oracle, Chainlink đã phát triển một mạng lưới các mạng oracle phi tập trung (DONs), với mỗi DON bao gồm sự kết hợp của nhiều kỹ thuật bảo mật cần thiết để phục vụ một trường hợp sử dụng cụ thể.
Mã nguồn mở - là một công nghệ mã nguồn mở cho phép cộng đồng blockchain tự mình xác minh 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ư đóng góp vào cải tiến của nó.
Bộ điều hợp bên ngoài - cho phép các node lưu trữ khóa API và quản lý thông tin đăng nhập tài khoản một cách an toàn và cho phép các hợp đồng thông minh truy xuất dữ liệu từ 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 đăng nhập.
Phi tập trung - áp dụng sự 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 là điểm lỗi duy nhất, cung cấp cho người dùng sự đảm bảo chắc chắn rằng dữ liệu sẽ có, tới đúng giờ và không bị thao túng.
Ký dữ liệu - việc 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 xét lịch sử trước đây để xác định chất lượng công việc.
Thỏa thuận dịch vụ - sử dụng thỏa thuận trên chuỗi ràng buộc giữa hợp đồng thông minh và nhà cung cấp oracle để phác thảo các điều khoản của dịch vụ oracle và hình phạt/phần thưởng cho công việc giúp người dùng tin tưởng hơn về chất lượng dữ liệu ngoài chuỗi mà họ yêu cầu.
Hệ thống danh tiếng - cung cấp dữ liệu trên chuỗi đã ký vào hệ thống danh tiếng cho phép người dùng đưa ra quyết định sáng suốt về node nào tốt và node nào không tốt dựa trên nhiều chỉ số như số lượng công việc thực hiện thành công, danh sách khách hàng đã được phục vụ, thời gian phản hồi trung bình, v.v.
Dịch vụ chứng nhận - cho phép các node tăng cường bảo mật và độ tin cậy bằng cách đạt chứng chỉ có thể cung cấp cho người dùng các đảm bảo bổ sung như KYC, vị trí địa lý của node, đánh giá bảo mật cơ sở hạ tầng của họ, v.v.
Phần cứng và tiêu chuẩn mã hóa tiên tiến - cung cấp tính linh hoạt cho advanced cryptography (như zero-knowledge proofs) và phần cứng (chẳng hạn như môi trường thực thi đáng tin cậy) cho phép các oracles thực hiện các chức năng bổ sung như chứng minh nguồn gốc của dữ liệu (ví dụ dữ liệu cụ thể đến từ một máy chủ cụ thể), giữ bí mật dữ liệu, thực hiện tính toán ngoài chuỗi và hơn thế nữa.
Đây chỉ là một 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 nhiều phương thức đảm bảo để chắc chắn cơ chế tiên tri sẽ 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 trên Chainlink, các hợp đồng thông minh trên bất kỳ blockchain nào giờ đây có thể truy cập dữ liệu ngoài chuỗi mà không phải hy sinh giá trị cốt lõi của tính xác định, cung cấp một nền tảng vững chắc để xây dựng tương lai của tự động hóa theo hướng dữ liệu.
Tìm hiểu thêm
Tìm hiểu thêm bằng cách xem bài viết tiếp theo trong loạt bài Giáo dục về Hợp đồng thông minh. Tham gia trò chuyện bằng tiếng Việt trên Facebook và Telegram cũng như cập nhật tin tức mới nhất.