Mở rộng ngăn xếp công nghệ: Tổng quan về các nguyên tắc zkTLS và các kịch bản ứng dụng tiềm năng

avatar
马里奥看Web3
1tháng trước
Bài viết có khoảng 5507từ,đọc toàn bộ bài viết mất khoảng 7 phút
Công nghệ zkTLS giới thiệu thuật toán chứng minh không kiến thức ZKP, cho phép hợp đồng thông minh trên chuỗi hoạt động như một bên thứ ba và trực tiếp xác minh dữ liệu do một nút cung cấp, do đó tránh được chi phí sử dụng cao của Oracle truyền thống do thuật toán đồng thuận gây ra.

Bài viết gốc của @Web3_Mario

Gần đây tôi đang tìm kiếm một hướng dự án mới. Khi thiết kế sản phẩm, tôi đã gặp phải một ngăn xếp công nghệ mà tôi chưa từng tiếp xúc trước đây, vì vậy tôi đã nghiên cứu và sắp xếp kinh nghiệm học tập của mình để chia sẻ với bạn. Nhìn chung, zkTLS là một công nghệ mới kết hợp zero-knowledge proof (ZKP) và TLS (Giao thức bảo mật lớp truyền tải). Trong đường dẫn Web3, nó chủ yếu được sử dụng trong môi trường máy ảo trên chuỗi. Nó có thể xác minh tính xác thực của dữ liệu HTTPS ngoài chuỗi do nó cung cấp mà không cần tin tưởng bên thứ ba. Tính xác thực ở đây bao gồm ba khía cạnh: nguồn dữ liệu đến từ một tài nguyên HTTPS nhất định, dữ liệu trả về không bị giả mạo và tính hợp lệ của dữ liệu có thể được đảm bảo. Thông qua cơ chế triển khai mật mã này, các hợp đồng thông minh trên chuỗi có thể có được quyền truy cập đáng tin cậy vào các tài nguyên Web2 HTTPS ngoài chuỗi, phá vỡ các kho dữ liệu riêng biệt.

Giao thức TLS là gì?

Để hiểu sâu hơn về giá trị của công nghệ zkTLS, cần phải cung cấp một bản tóm tắt ngắn gọn về giao thức TLS. Trước hết, TLS (Bảo mật lớp truyền tải) được sử dụng để cung cấp mã hóa, xác thực và tính toàn vẹn dữ liệu trong truyền thông mạng, đảm bảo truyền dữ liệu an toàn giữa máy khách (như trình duyệt) và máy chủ (như trang web). Đối với những ai không quan tâm đến phát triển mạng, bạn có thể thấy rằng khi truy cập một trang web, một số tên miền có tiền tố là https và một số có tiền tố là http. Khi truy cập vào trang sau, các trình duyệt chính thống sẽ nhắc nhở rằng trang này không an toàn. Trường hợp đầu tiên có nhiều khả năng gặp phải các lời nhắc như Liên kết của bạn không phải là liên kết riêng tư hoặc lỗi chứng chỉ HTTPS. Lý do cho lời nhắc này là vì giao thức TLS có sẵn.

Cụ thể, giao thức HTTPS sử dụng giao thức TLS dựa trên giao thức HTTP để đảm bảo tính riêng tư và toàn vẹn khi truyền thông tin, đồng thời có thể xác minh được tính xác thực của máy chủ. Như chúng ta đã biết, HTTP là một giao thức mạng truyền dữ liệu dưới dạng văn bản thuần túy và không thể xác minh tính xác thực của máy chủ. Điều này dẫn đến một số vấn đề bảo mật:

1. Thông tin được truyền giữa bạn và máy chủ có thể bị bên thứ ba theo dõi, dẫn đến rò rỉ quyền riêng tư;

2. Bạn không thể xác minh tính xác thực của máy chủ, nghĩa là liệu yêu cầu của bạn có bị các nút độc hại khác chiếm đoạt và trả về thông tin độc hại hay không;

3. Bạn không thể xác minh tính toàn vẹn của thông tin trả về, tức là liệu mất dữ liệu có thể xảy ra do sự cố mạng hay không;

Giao thức TLS được thiết kế để giải quyết những vấn đề này. Để tôi giải thích ở đây. Một số bạn có thể biết giao thức SSL. Trên thực tế, giao thức TLS được phát triển dựa trên SSL phiên bản 3.1. Nó chỉ đổi tên do một số vấn đề liên quan đến kinh doanh, nhưng thực ra nó vẫn như vậy. Vì vậy, đôi khi trong một số bối cảnh, hai từ này có thể được sử dụng thay thế cho nhau.

Ý tưởng chính của giao thức TLS để giải quyết các vấn đề trên là:

1. Truyền thông được mã hóa: Sử dụng mã hóa đối xứng (AES, ChaCha 20) để bảo vệ dữ liệu và ngăn chặn việc nghe lén.

2. Xác thực danh tính: Sử dụng chứng chỉ số (như chứng chỉ X.509) do bên thứ ba cấp cho một tổ chức được chỉ định để xác minh danh tính của máy chủ và ngăn chặn các cuộc tấn công trung gian (MITM).

3. Tính toàn vẹn của dữ liệu: Sử dụng HMAC (Mã xác thực tin nhắn băm) hoặc AEAD (Mã hóa xác thực) để đảm bảo dữ liệu không bị giả mạo.

Chúng ta hãy giải thích ngắn gọn về các chi tiết kỹ thuật của giao thức HTTPS dựa trên giao thức TLS trong quá trình tương tác dữ liệu. Toàn bộ quá trình được chia thành hai giai đoạn. Đầu tiên là giai đoạn bắt tay, tức là máy khách và máy chủ thương lượng các tham số bảo mật và thiết lập phiên được mã hóa. Thứ hai là giai đoạn truyền dữ liệu, sử dụng khóa phiên để truyền thông được mã hóa. Quá trình cụ thể được chia thành bốn bước:

1. Máy khách gửi ClientHello:

Máy khách (chẳng hạn như trình duyệt) gửi tin nhắn ClientHello đến máy chủ, bao gồm:

  • Các phiên bản TLS được hỗ trợ (như TLS 1.3)

  • Các thuật toán mã hóa được hỗ trợ (Cipher Suites, chẳng hạn như AES-GCM, ChaCha 20)

  • Client Random (được sử dụng để tạo khóa)

  • Các tham số chia sẻ khóa (chẳng hạn như khóa công khai ECDHE)

  • SNI (Chỉ định tên máy chủ) (tùy chọn, được sử dụng để hỗ trợ nhiều tên miền trong HTTPS)

Mục đích của nó là cho máy chủ biết khả năng mã hóa của máy khách và chuẩn bị các thông số bảo mật.

2. Máy chủ gửi ServerHello:

Máy chủ phản hồi bằng thông báo ServerHello bao gồm:

  • Thuật toán mã hóa được chọn

  • Máy chủ ngẫu nhiên

  • Chứng chỉ của máy chủ (chứng chỉ X.509)

  • Các tham số chia sẻ khóa của máy chủ (chẳng hạn như khóa công khai ECDHE)

  • Tin nhắn đã hoàn tất (được sử dụng để xác nhận rằng quá trình bắt tay đã hoàn tất)

Mục đích của nó là cho máy khách biết danh tính của máy chủ và xác nhận các thông số bảo mật.

3. Máy khách xác thực máy chủ:

Khách hàng thực hiện các thao tác sau:

  • Xác minh chứng chỉ máy chủ: Đảm bảo rằng chứng chỉ được cấp bởi CA (cơ quan cấp chứng chỉ) đáng tin cậy và xác minh xem chứng chỉ đã hết hạn hay bị thu hồi hay chưa;

  • Tính toán khóa chia sẻ: Sử dụng khóa công khai ECDHE của riêng bạn và của máy chủ để tính toán khóa phiên, được sử dụng cho mã hóa đối xứng (như AES-GCM) cho các lần liên lạc tiếp theo.

  • Gửi tin nhắn hoàn tất: chứng minh tính toàn vẹn của dữ liệu bắt tay và ngăn chặn các cuộc tấn công trung gian (MITM).

Mục đích của nó là đảm bảo máy chủ đáng tin cậy và tạo ra khóa phiên.

4. Bắt đầu giao tiếp được mã hóa:

Máy khách và máy chủ hiện đang giao tiếp được mã hóa bằng khóa phiên đã thương lượng.

  • Mã hóa đối xứng (như AES-GCM, ChaCha 20) được sử dụng để mã hóa dữ liệu nhằm tăng tốc độ và bảo mật.

  • Bảo vệ tính toàn vẹn dữ liệu: Sử dụng AEAD (như AES-GCM) để ngăn chặn sự giả mạo.

Do đó, sau bốn bước này, vấn đề về giao thức HTTP có thể được giải quyết hiệu quả. Tuy nhiên, công nghệ cơ bản này, được sử dụng rộng rãi trong mạng Web2, đã gây ra rắc rối cho việc phát triển ứng dụng Web3, đặc biệt là khi hợp đồng thông minh trên chuỗi muốn truy cập một số dữ liệu ngoài chuỗi. Do các vấn đề về tính khả dụng của dữ liệu, máy ảo trên chuỗi sẽ không mở khả năng gọi dữ liệu bên ngoài để đảm bảo khả năng truy xuất nguồn gốc của tất cả dữ liệu, do đó đảm bảo tính bảo mật của cơ chế đồng thuận.

Tuy nhiên, sau một loạt các lần lặp lại, các nhà phát triển nhận thấy rằng DApp vẫn có nhu cầu về dữ liệu ngoài chuỗi, do đó một loạt các dự án oracle đã xuất hiện, chẳng hạn như Chainlink và Pyth. Chúng phá vỡ hiện tượng dữ liệu cục bộ này bằng cách hoạt động như một cầu nối chuyển tiếp giữa dữ liệu trên chuỗi và dữ liệu ngoài chuỗi. Đồng thời, để đảm bảo tính khả dụng của dữ liệu chuyển tiếp, các Oracle này thường được triển khai thông qua cơ chế đồng thuận PoS, nghĩa là chi phí cho hành vi độc hại của nút chuyển tiếp cao hơn lợi ích thu được, do đó sẽ không cung cấp thông tin sai lệch cho chuỗi theo quan điểm kinh tế. Ví dụ, nếu chúng ta muốn truy cập giá có trọng số của BTC trên các sàn giao dịch tập trung như Binance và Coinbase trong hợp đồng thông minh, chúng ta cần dựa vào các Oracle này để truy cập và tổng hợp dữ liệu ngoài chuỗi và chuyển dữ liệu đó đến hợp đồng thông minh trên chuỗi để lưu trữ trước khi chúng ta có thể sử dụng.

ZkTLS giải quyết vấn đề gì?

Tuy nhiên, mọi người nhận thấy giải pháp thu thập dữ liệu dựa trên Oracle này có hai vấn đề:

1. Chi phí quá mức: Chúng tôi biết rằng để đảm bảo dữ liệu được Oracle truyền đến chuỗi là xác thực và không bị can thiệp, cần có cơ chế đồng thuận PoS. Tuy nhiên, tính bảo mật của cơ chế đồng thuận PoS dựa trên số tiền cam kết, dẫn đến chi phí bảo trì. Hơn nữa, thông thường, có rất nhiều sự dư thừa tương tác dữ liệu trong cơ chế đồng thuận PoS, vì tập dữ liệu cần phải được truyền, tính toán và tóm tắt nhiều lần trong mạng trước khi có thể vượt qua sự đồng thuận, điều này cũng làm tăng chi phí sử dụng dữ liệu. Vì vậy, thông thường, để thu hút khách hàng, các dự án của Oracle sẽ chỉ lưu trữ miễn phí một số dữ liệu phổ biến nhất, chẳng hạn như giá của các tài sản phổ biến như BTC. Đối với những nhu cầu riêng biệt, bạn cần phải trả phí. Điều này cản trở sự đổi mới ứng dụng, đặc biệt là một số nhu cầu tùy chỉnh dài hạn.

2. Hiệu quả quá thấp: Nói chung, sự đồng thuận của cơ chế PoS mất một khoảng thời gian nhất định, gây ra độ trễ của dữ liệu trên chuỗi. Điều này không có lợi cho một số tình huống truy cập tần suất cao vì có độ trễ lớn giữa dữ liệu thu được trên chuỗi và dữ liệu thực tế ngoài chuỗi.

Để giải quyết các vấn đề trên, công nghệ zkTLS đã ra đời. Ý tưởng chính của nó là giới thiệu thuật toán chứng minh không kiến thức ZKP, để hợp đồng thông minh trên chuỗi có thể hoạt động như một bên thứ ba để trực tiếp xác minh rằng dữ liệu do một nút cung cấp thực sự là dữ liệu được trả về sau khi truy cập vào một tài nguyên HTTPS nhất định và không bị giả mạo. Điều này có thể tránh được chi phí sử dụng cao của Oracle truyền thống do thuật toán đồng thuận gây ra.

Một số bạn có thể hỏi tại sao không xây dựng trực tiếp khả năng gọi API Web2 vào môi trường VM trên chuỗi. Câu trả lời là không, vì lý do tại sao dữ liệu đóng cần được duy trì trong môi trường on-chain là để đảm bảo khả năng truy xuất của tất cả dữ liệu. Nghĩa là, trong quá trình đồng thuận, tất cả các nút đều có logic đánh giá thống nhất về độ chính xác của một dữ liệu nhất định hoặc một kết quả thực thi nhất định hoặc logic xác minh khách quan. Điều này đảm bảo rằng trong một môi trường hoàn toàn không cần sự tin cậy, hầu hết các nút có thiện chí đều có thể dựa vào dữ liệu dự phòng của riêng mình để xác định tính xác thực của kết quả trực tiếp. Tuy nhiên, do dữ liệu Web2, rất khó để xây dựng logic đánh giá thống nhất như vậy, vì do một số độ trễ mạng, các nút khác nhau có thể thu được kết quả khác nhau khi truy cập tài nguyên HTTPS của Web2, điều này làm tăng thêm khó khăn cho sự đồng thuận, đặc biệt là đối với một số khu vực dữ liệu tần suất cao. Ngoài ra, một vấn đề quan trọng khác là tính bảo mật của giao thức TLS mà giao thức HTTPS phụ thuộc vào dựa vào số ngẫu nhiên do máy khách tạo ra (Client Random) (để tạo khóa) và các tham số chia sẻ khóa để đạt được sự đàm phán với máy chủ về khóa mã hóa. Tuy nhiên, chúng ta biết rằng môi trường trên chuỗi là mở và minh bạch. Nếu hợp đồng thông minh duy trì số ngẫu nhiên và các tham số chia sẻ khóa, dữ liệu khóa sẽ bị lộ, do đó làm ảnh hưởng đến quyền riêng tư của dữ liệu.

Sau đó, zkTLS áp dụng một cách tiếp cận khác. Ý tưởng của nó là thay thế chi phí cao của cơ chế đồng thuận truyền thống dựa trên Oracle để mang lại tính khả dụng của dữ liệu thông qua bảo vệ mật mã. Tương tự như việc tối ưu hóa OP-Rollup bằng ZK-Rollup trong L2. Cụ thể, bằng cách giới thiệu bằng chứng không kiến thức ZKP và tính toán và tạo Bằng chứng cho các tài nguyên thu được bởi nút chuyển tiếp ngoài chuỗi yêu cầu một HTTPS nhất định, thông tin xác minh chứng chỉ CA có liên quan, bằng chứng về thời gian và bằng chứng toàn vẹn dữ liệu dựa trên HMAC hoặc AEAD, đồng thời duy trì thông tin xác minh và thuật toán xác minh cần thiết trên chuỗi, hợp đồng thông minh có thể xác minh tính xác thực, hiệu quả và độ tin cậy của nguồn dữ liệu mà không tiết lộ thông tin quan trọng. Các chi tiết cụ thể của thuật toán không được thảo luận ở đây và những ai quan tâm có thể tự nghiên cứu sâu hơn.

Lợi ích lớn nhất của giải pháp kỹ thuật này là nó giúp giảm chi phí để đạt được tính khả dụng của tài nguyên Web2 HTTPS. Điều này đã thúc đẩy nhiều nhu cầu mới, đặc biệt là trong việc giảm giá mua tài sản dài hạn trên chuỗi, sử dụng các trang web có thẩm quyền trong thế giới Web2 để thực hiện KYC trên chuỗi và do đó tối ưu hóa thiết kế kiến trúc kỹ thuật của DID và Web3 Games. Tất nhiên, chúng ta có thể thấy rằng zkTLS cũng có tác động đến các công ty Web3 hiện tại, đặc biệt là các dự án oracle chính thống hiện nay. Do đó, để ứng phó với tác động này, các công ty lớn trong ngành như Chainlink và Pyth đang tích cực theo dõi các nghiên cứu theo hướng liên quan, cố gắng duy trì vị thế thống lĩnh trong quá trình lặp lại công nghệ. Đồng thời, cũng sẽ tạo ra các mô hình kinh doanh mới, chẳng hạn như chuyển từ tính phí theo thời gian ban đầu sang tính phí theo mức sử dụng, tính toán như một dịch vụ, v.v. Tất nhiên, khó khăn ở đây cũng giống như hầu hết các dự án ZK, đó là làm sao để giảm chi phí điện toán và khiến nó có giá trị thương mại.

Tóm lại, khi thiết kế sản phẩm, bạn cũng có thể chú ý đến sự phát triển của zkTLS và tích hợp công nghệ này vào các khía cạnh phù hợp. Có lẽ bạn có thể tìm thấy một số hướng đi mới trong đổi mới kinh doanh và kiến trúc kỹ thuật.

Bài viết gốc, tác giả:马里奥看Web3。Tuyển dụng: Nhân viên kinh doanh phần mềm theo dự án report@odaily.email;Vi phạm quy định của pháp luật.

Odaily nhắc nhở, mời đông đảo độc giả xây dựng quan niệm đúng đắn về tiền tệ và khái niệm đầu tư, nhìn nhận hợp lý về blockchain, nâng cao nhận thức về rủi ro; Đối với manh mối phạm tội phát hiện, có thể tích cực tố cáo phản ánh với cơ quan hữu quan.

Đọc nhiều nhất
Lựa chọn của người biên tập