
Hiểu rõ Chainlink DECO: Oracle bảo vệ quyền riêng tư trong một bài viết
Tuyển chọn TechFlowTuyển chọn TechFlow

Hiểu rõ Chainlink DECO: Oracle bảo vệ quyền riêng tư trong một bài viết
Web3 đã tái định hình giá trị dữ liệu, nhưng blockchain với cấu trúc phi tập trung lại là một hệ thống khép kín mang tính xác định.
Tác giả: kokii.eth, Thực tập sinh tại Qiming Venture Capital
0. Giới thiệu
Web3 đang tái định hình giá trị dữ liệu, nhưng cấu trúc phân tán của blockchain là một hệ thống xác định và đóng kín, hợp đồng thông minh không có chức năng gọi API bên ngoài, do đó cơ chế oracles ra đời nhằm giúp hợp đồng thông minh truy cập dữ liệu từ thế giới bên ngoài.
Việc đưa dữ liệu off-chain lên chuỗi bản thân không quá khó, điều khó nằm ở việc sử dụng công nghệ và thiết kế cơ chế để tạo dựng niềm tin. Vấn đề oracle chính là cần giải quyết sự tin cậy từ nguồn dữ liệu, xử lý đến việc cung cấp dữ liệu (feed).
Một điều kiện cơ bản để trở thành oracle được cộng đồng công nhận là tính phi tập trung, tức là loại bỏ điểm lỗi đơn lẻ và cho phép kiểm tra xác minh dữ liệu. Giải pháp phổ biến để phi tập trung hóa off-chain là sử dụng nhiều nút dữ liệu tạo thành mạng lưới oracle phi tập trung, mỗi nút thu thập dữ liệu, đạt đồng thuận rồi truyền vào hợp đồng thông minh trên blockchain.

Kiến trúc Chainlink
Hiện tại, cách dùng chính của oracle là cung cấp Price Feed (cập nhật giá) cho DeFi, đảm bảo cập nhật kịp thời, an toàn và chính xác giá tài sản cơ sở. Theo dữ liệu DefiLlama, Chainlink là một trong những giải pháp oracle lớn nhất thị trường, tại thời điểm viết bài này đang bảo đảm tổng giá trị khoảng 11 tỷ USD, chiếm 46% toàn thị trường.

Dữ liệu thị trường oracle
Khi blockchain phát triển, nhu cầu về dữ liệu off-chain ngày càng mạnh mẽ, chỉ cung cấp dữ liệu giá cho DeFi đã không còn đáp ứng được yêu cầu của các nhà phát triển. Phần lớn dữ liệu trong thế giới thực và Web2 không thể truy cập công khai, nhưng lại là yếu tố bắt buộc để xây dựng các ứng dụng đổi mới Web3 (vay tín dụng, mạng xã hội, DID, KYC/AML, v.v.). Do đó, thế hệ oracle mới cần cho phép hợp đồng thông minh hỗ trợ các trường hợp sử dụng phức tạp liên quan đến dữ liệu nhạy cảm dưới hình thức bảo vệ quyền riêng tư.
DECO là giải pháp của Chainlink theo hướng này, sử dụng công nghệ bằng chứng không kiến thức (zero-knowledge proof), cho phép người dùng tạo bằng chứng về dữ liệu riêng tư off-chain gửi đến hợp đồng thông minh mà không tiết lộ dữ liệu với công chúng hay ngay cả với các nút oracle.
DECO có thể kết nối với các API hiện có, ngay cả khi cần xác thực người dùng cuối (ví dụ như đăng nhập để lấy số dư tài khoản ngân hàng), cũng không yêu cầu nhà cung cấp dữ liệu API phải thay đổi gì. Hiện tại DECO đang ở giai đoạn alpha, đang thử nghiệm proof-of-concept cùng nhiều đối tác.
1. Bối cảnh
Phần này cung cấp kiến thức nền tảng cần thiết về TLS và ZKP, DECO được xây dựng dựa trên các giao thức này.
1.1 TLS
TLS (Transport Layer Security, Bảo mật tầng truyền tải) là một giao thức bảo mật mạnh mẽ và được triển khai rộng rãi, tiền thân là SSL, nhằm đảm bảo tính riêng tư và an toàn dữ liệu trong truyền thông internet, nằm giữa tầng giao thức ứng dụng và tầng TCP/IP, mục đích chính là mã hóa truyền thông giữa ứng dụng web và máy chủ.
Truyền thông qua HTTP đều ở dạng văn bản thuần, dễ bị nghe lén, sửa đổi và giả mạo. Khi sử dụng TLS, dữ liệu HTTP người dùng gửi đến website (nhấp chuột, điền biểu mẫu...) và dữ liệu HTTP website gửi lại người dùng đều được mã hóa, người nhận phải dùng khóa để giải mã dữ liệu. HTTPS là giao thức HTTP được áp dụng mã hóa TLS, là tiêu chuẩn cho website, website cần cài đặt chứng chỉ TLS trên máy chủ nguồn, trình duyệt sẽ đánh dấu tất cả website không dùng HTTPS là không an toàn.

Website không dùng HTTPS
Nguyên lý cơ bản của TLS là dùng mã hóa khóa công khai, chứng chỉ TLS/SSL công khai của website chứa khóa công khai, còn khóa riêng được cài trên máy chủ gốc và thuộc sở hữu của website. Máy khách trước tiên yêu cầu khóa công khai từ máy chủ, sau đó dùng khóa công khai để mã hóa thông tin, máy chủ nhận được văn bản mã hóa rồi dùng khóa riêng để giải mã.
Tuy nhiên, mã hóa khóa công khai tốn rất nhiều tài nguyên tính toán. Để giảm thời gian phiên làm việc, trong mỗi phiên, máy khách và máy chủ đều tạo ra một "khóa phiên" (session key), dùng nó để mã hóa thông tin. Vì "khóa phiên" dùng mã hóa đối xứng nên tốc độ xử lý rất nhanh, còn khóa công khai của máy chủ chỉ dùng để mã hóa chính "khóa phiên", từ đó giảm thời gian xử lý mã hóa.
Do đó, giao thức TLS chủ yếu gồm hai tầng:
-
Giao thức bắt tay (handshake protocol): truyền thông văn bản thuần, dùng mã hóa bất đối xứng để xác nhận lẫn nhau, xác lập thuật toán mã hóa sẽ dùng, và tạo ra khóa phiên giống nhau để dùng cho mã hóa đối xứng trong giao thức ghi nhận.
-
Giao thức ghi nhận (record protocol): phần chính của giao thức, bảo vệ tính bảo mật và toàn vẹn dữ liệu truyền tải.

Ngăn xếp giao thức TLS
Bộ mã hóa (CipherSuite) của TLS là tổ hợp của 4 thuật toán:
-
Xác thực (Authentication): xác minh tính xác thực danh tính, phổ biến gồm RSA/DSA/ECDSA.
-
Thỏa thuận khóa (Key exchange): hai bên thỏa thuận khóa dùng để mã hóa, phổ biến là ECDHE.
-
Mã hóa (Encryption): mã hóa đối xứng dùng trong truyền thông, xu hướng hiện nay là dùng GCM.
-
MAC (Message Authentication Code - Mã xác thực tin nhắn): xác minh tính toàn vẹn dữ liệu và kiểm tra dữ liệu có bị sửa đổi hay không, phổ biến gồm SHA256/SHA384/SHA1, v.v.
TLS rất mạnh mẽ, nhưng có một hạn chế: không cho phép người dùng chứng minh với bên thứ ba rằng dữ liệu họ truy cập thực sự đến từ một website cụ thể nào đó, vì truyền dữ liệu dùng mã hóa đối xứng, người dùng và máy chủ đều có khả năng ký dữ liệu. Ví dụ trực quan: nhiều máy chủ website đều lưu thông tin định danh của Alice, có thể dễ dàng xác minh Alice đã trên 18 tuổi, nhưng Alice lại rất khó chứng minh điều này với Bob. Alice có thể chụp màn hình từ website, nhưng ảnh chụp dễ bị làm giả; ngay cả khi ảnh chụp được chứng minh là thật, thì vẫn rò rỉ thông tin —— ngày tháng năm sinh chính xác của Alice, chứ không chỉ đơn thuần là việc cô ấy đã trên 18 tuổi.
Oracle cần chứng minh nguồn gốc (Provenance) dữ liệu riêng tư off-chain theo cách phi tập trung (không phụ thuộc điểm đơn như máy chủ website), và cung cấp dữ liệu cho hợp đồng thông minh mà không tiết lộ quyền riêng tư. Bằng chứng không kiến thức (zero-knowledge proof) có thể giúp thực hiện các chức năng này.
1.2 ZKP
Bằng chứng không kiến thức (Zero Knowledge Proof, ZKP) đang được chú ý rộng rãi trong blockchain, ứng dụng chính gồm ZK-Rollup (để tăng hiệu quả mở rộng quy mô nhưng phải hy sinh nhiều trong thiết kế thuật toán, không hoàn toàn "zk") và công nghệ riêng tư (ZK thật sự). Bằng chứng không kiến thức cho phép Prover (người chứng minh) chứng minh với Verifier (người xác minh) rằng mình sở hữu một lời giải (Witness) có thể giải quyết một vấn đề tính toán cụ thể (Statement), mà không tiết lộ bất kỳ thông tin bổ sung nào về lời giải (Witness) đó.
Một hệ thống ZK điển hình có thể chia thành phần trước và phần sau.
-
Phần trước (Frontend): trình biên dịch, chuyển đổi Statement cần xác minh sang ngôn ngữ chuyên biệt (DSL), sau đó biên dịch sang định dạng phù hợp với ZK, ví dụ như mạch số học;
-
Phần sau (Backend): hệ thống chứng minh, hệ thống tranh luận tương tác kiểm tra tính đúng đắn của mạch, ví dụ như Marlin, Plonky2, Halo2;

Hệ thống ZK
Xây dựng quy trình hỏi đáp tương tác trên hệ thống mở như blockchain rất phức tạp, việc chứng minh cần ai cũng có thể xác minh mọi lúc, do đó hệ thống ZK ứng dụng trên blockchain thường là phi tương tác, hệ thống tương tác có thể dùng Fiat–Shamir heuristic để chuyển đổi thành phi tương tác.
2. Cách DECO hoạt động
DECO mở rộng trên cơ sở giao thức HTTPS/TLS, cho phép sử dụng mà không cần máy chủ phải thay đổi gì.
Ý tưởng cốt lõi của DECO là xây dựng một giao thức bắt tay ba bên mới giữa Prover (người dùng hoặc Dapp chạy DECO Prover), Verifier (oracle Chainlink chạy DECO Verifier), Server (nhà cung cấp dữ liệu).
-
Nguồn gốc (Provenance): khi Prover truy vấn thông tin từ Web Server, Verifier làm chứng cho quá trình tương tác, đồng thời nhận được một cam kết (Commitment) do Prover tạo ra từ dữ liệu phiên TLS, từ đó Verifier có thể xác minh nguồn gốc thật sự của thông tin;
-
Riêng tư (Privacy): nếu dữ liệu không cần bảo mật, Prover có thể cung cấp trực tiếp khóa giải mã dữ liệu cho Verifier, để nhà phát triển tích hợp dữ liệu vào Dapp; nếu cần riêng tư, Prover dùng ZKP để tạo bằng chứng mà không tiết lộ dữ liệu, dùng để tích hợp vào Dapp.

Ví dụ DECO
Cụ thể hơn, giao thức DECO gồm ba giai đoạn:
-
Bắt tay ba bên: Prover, Verifier và Server thiết lập khóa phiên định dạng đặc biệt, đảm bảo dữ liệu không thể giả mạo;
-
Thực thi truy vấn: Prover dùng truy vấn chứa tham số riêng tư θs (ví dụ tên đăng nhập/mật khẩu, API key) để truy vấn dữ liệu từ Server;
-
Tạo bằng chứng: Prover chứng minh phản hồi thỏa mãn điều kiện yêu cầu.

Kiến trúc DECO
2.1 Bắt tay ba bên
Lưu ý: Mô tả dưới đây dựa trên thuật toán mã hóa AES-CBC-HMAC, TLS 1.3 chỉ giữ lại AEAD an toàn hơn làm thuật toán mã hóa, dùng một khóa cho cả mã hóa và MAC, không cần khóa MAC riêng. Tuy nhiên, do tính độc lập khóa của TLS 1.3, vẫn có thể xây dựng giao thức bắt tay ba bên với độ phức tạp tương tự.
Prover P không thể cam kết sau khi có khóa MAC, nếu không anh ta có thể giả mạo hoặc sửa đổi dữ liệu. Do đó, ý tưởng của bắt tay ba bên là coi Prover P và Verifier V cùng là phía client TLS, cùng thiết lập với máy chủ TLS S một khóa MAC chung. Khóa MAC k được chia nhỏ ở phía client, Prover giữ kp, Verifier giữ kv, k = kp + kv. Đồng thời, P cũng giữ khóa mã hóa đối xứng k^{Enc}. Nếu Verifier không hành xử ác ý, giao thức bắt tay ba bên có thể đảm bảo dữ liệu không thể giả mạo.
2.2 Thực thi truy vấn
Sau khi bắt tay, do khóa MAC được chia sẻ bí mật, P và V thực hiện một giao thức tương tác (tính toán an toàn hai bên), dùng tham số riêng tư θs để xây dựng thông điệp TLS Query Q đã mã hóa. Sau đó P như một client TLS tiêu chuẩn gửi Q tới S, trong suốt quá trình này chỉ có P giao tiếp với S, mọi truy vấn gửi đi đều không tiết lộ cho V.
Sau khi nhận phản hồi R từ S, P gửi văn bản mã hóa R^ cho V để cam kết phiên làm việc, đồng thời nhận được kv từ V, từ đó xác minh tính xác thực của phản hồi R.
2.3 Tạo bằng chứng
Tiếp theo, P cần chứng minh rằng văn bản mã hóa R^ tương ứng với văn bản rõ R thỏa mãn một số thuộc tính nhất định. Nếu không cần riêng tư, có thể tiết lộ trực tiếp khóa mã hóa k^{Enc}; nếu cần riêng tư, phải dùng bằng chứng không kiến thức.
Giả sử văn bản rõ gồm nhiều khối dữ liệu R=(B1,...,Bn), DECO dùng phương pháp công khai chọn lọc (Selective Opening) để tạo bằng chứng không kiến thức:
-
Chỉ tiết lộ một dòng dữ liệu cụ thể: chứng minh khối dữ liệu thứ i của R là Bi, mà không tiết lộ các khối dữ liệu khác.
-
Ẩn dòng dữ liệu chứa thông tin riêng tư: chứng minh R_{-i} và R bằng nhau, ngoại trừ Bi bị xóa.

Tuy nhiên, nhiều khi Verifier cần xác minh xem chuỗi con được tiết lộ có xuất hiện trong bối cảnh đúng hay không, phương pháp nói trên chưa đủ để bảo vệ tính toàn vẹn bối cảnh. Để khắc phục, DECO sử dụng kỹ thuật gọi là phân tích hai giai đoạn không kiến thức (Two-stage Parsing): Prover phân tích dữ liệu phiên làm việc tại chỗ, xác định chuỗi con nhỏ nhất có thể thuyết phục Verifier, sau đó gửi dữ liệu cho Verifier. Như vậy đạt được tính riêng tư.
Bằng chứng không kiến thức phi tương tác ngắn gọn (NIZK) thường có chi phí cao về mặt tính toán và bộ nhớ phía Prover. Vì DECO dùng ZKP với Verifier được chỉ định (oracle của Chainlink), nên có thể sử dụng bằng chứng không kiến thức tương tác hiệu quả hơn, ví dụ như sử dụng bộ nhớ ít hơn, tránh thiết lập đáng tin cậy, tính toán rẻ hơn, v.v.
Trong Alpha Test hiện tại, DECO vẫn dùng Dapp làm Prover, trong các phiên bản tương lai dự kiến Prover có thể được triển khai cục bộ bởi người dùng cuối (ví dụ điện thoại), hoặc triển khai trong môi trường thực thi đáng tin cậy (TEE).
3. Ứng dụng
DECO có thể xác minh tính hợp lệ của thông tin định danh off-chain của người dùng, đồng thời bảo vệ quyền riêng tư dữ liệu, từ đó mở ra nhiều trường hợp ứng dụng đổi mới Web3, từ tài chính đến mạng xã hội.
- Phục hồi xã hội tự quản lý / Chứng minh danh tính pháp lý (Bạn là ai): dùng DECO, tận dụng các website tổ chức đã có cơ chế xác thực danh tính trưởng thành (ngân hàng, mạng xã hội) làm một trong những "người giám hộ" cho phục hồi xã hội.

- Vay tín dụng / Chứng minh tài chính (Bạn có bao nhiêu tiền): Teller là một giao thức vay tín dụng DeFi, sử dụng giao thức DECO để chứng minh số dư tài sản trong tài khoản ngân hàng off-chain của người dùng vượt ngưỡng tối thiểu động yêu cầu cho khoản vay.

-
Chứng minh người hâm mộ / Chứng minh tương tác (Bạn đã tương tác với ai): Clique là một oracle xã hội, đang phát triển giải pháp cung cấp phân tích sâu sắc về ảnh hưởng, lòng trung thành và đóng góp của người dùng off-chain trên nhiều nền tảng mạng xã hội khác nhau (ví dụ dùng Twitter API).
-
Danh tính số / Chứng minh danh tính xã hội (Bạn sở hữu một tài khoản trực tuyến): PhotoChromic là giải pháp danh tính số, dùng DECO để liên kết người dùng Web3 với tài khoản Twitter hoặc Discord, trong quá trình này không tiết lộ dữ liệu cá nhân nền tảng, giúp ứng dụng lọc ra người dùng thật.
-
Chống tấn công Sybil trong DAO, SBT, KYC/AML, v.v.
4. Các đối thủ cạnh tranh khác
-
Axiom xây dựng oracle ZK cho TWAP Uniswap, sử dụng hoàn toàn nguồn dữ liệu có thể xác minh từ on-chain, gần giống với Indexing (ví dụ Hyper Oracle); so với DECO thì bổ trợ hơn là cạnh tranh: ngày càng nhiều hoạt động kinh tế diễn ra trên chuỗi, oracle thuần on-chain là một hướng; ngày càng nhiều dữ liệu off-chain cần đưa lên chuỗi, oracle riêng tư off-chain cũng là một hướng.
-
Empiric Network dùng tính toán zk để đưa toàn bộ oracle lên chuỗi, không cần cơ sở hạ tầng off-chain phải truyền dữ liệu, khác hướng hoàn toàn với DECO.
5. Kết luận
Chainlink với tư cách là ông lớn tuyệt đối trong lĩnh vực oracle hiện nay, thông qua oracle DECO, lượng lớn dữ liệu riêng tư off-chain sẽ được gọi đến bởi hợp đồng thông minh trên chuỗi với điều kiện bảo vệ quyền riêng tư, từ đó mở ra nhiều trường hợp ứng dụng từ tài chính đến danh tính, mạng xã hội.
Rủi ro tiềm tàng là tốc độ tạo bằng chứng của Prover và vấn đề tập trung hóa ở Verifier.
Chào mừng tham gia cộng đồng chính thức TechFlow
Nhóm Telegram:https://t.me/TechFlowDaily
Tài khoản Twitter chính thức:https://x.com/TechFlowPost
Tài khoản Twitter tiếng Anh:https://x.com/BlockFlow_News














