
Đối thoại Scroll, Cysic: Cùng thảo luận về mạng lưới máy chứng minh và tăng tốc phần cứng zk
Tuyển chọn TechFlowTuyển chọn TechFlow

Đối thoại Scroll, Cysic: Cùng thảo luận về mạng lưới máy chứng minh và tăng tốc phần cứng zk
Tập chương trình này sẽ thảo luận về tính phi tập trung của rollup từ góc độ "mạng lưới máy chứng minh phi tập trung và tăng tốc phần cứng".
Giới thiệu
Đây là tập thứ ba trong chuỗi phỏng vấn về Rollup phi tập trung, trong tập này chúng tôi thảo luận về việc phi tập trung hóa rollup dưới góc nhìn “mạng lưới prover phi tập trung và tăng tốc phần cứng”. Chúng tôi đã mời Zhang Ye – đồng sáng lập Scroll và Leo Fan – đồng sáng lập Cysic để cùng trao đổi về những chủ đề được cộng đồng quan tâm như: mạch ZK, tăng tốc phần cứng thực chất đang tăng tốc cái gì, một mạng lưới prover mở và phi tập trung sẽ như thế nào, sự khác biệt giữa thị trường "đào" chứng minh zk với cơ chế đào PoW của Bitcoin,... Đồng thời, Ye và Leo cũng chia sẻ về các nghiên cứu và kế hoạch triển khai tương lai của nhóm họ trong lĩnh vực mạng lưới prover và thị trường tăng tốc phần cứng zk.
Giới thiệu khách mời
Ye
Tôi tên là Zhang Ye, là đồng sáng lập Scroll. Tôi tập trung vào nghiên cứu ZK, cụ thể là nghiên cứu phần cứng ZK (ZK Hardware Acceleration), tìm cách dùng phần cứng để tăng tốc quá trình tạo chứng minh (prover). Ngoài ra, tôi cũng nghiên cứu các thuật toán mật mã học và toán học đằng sau ZK, tức là những nguyên lý toán học kỳ diệu phía sau. Gần đây tôi tập trung vào zkEVM – mạng lưới zk-Rollup mà Scroll đang xây dựng nhằm tương thích với EVM, nên tôi chú trọng nhiều hơn vào ứng dụng thực tiễn và các giao thức liên quan.
Leo
Tôi là Leo Fan, đồng sáng lập Cysic. Trước đây tôi lấy bằng Tiến sĩ tại Cornell, chuyên ngành mật mã học. Giống như Ye, tôi cũng làm về nghiên cứu thuật toán. Nghiên cứu trước đây của tôi thiên về mật mã hậu lượng tử, vài năm gần đây mới chuyển sang nghiên cứu các thuật toán liên quan đến ZK. Mục tiêu của Cysic là sử dụng phần cứng để tăng tốc quá trình "tạo chứng minh" (proof generation) trong zero-knowledge proof, giúp loại bỏ điểm nghẽn hiện tại.
Phần phỏng vấn
Giải mã Chứng minh Không kiến thức
Giải thích Chứng minh Không kiến thức
Ye
Chúng ta hãy bắt đầu từ những khái niệm cơ bản nhất, giải thích rõ khái niệm "chứng minh không kiến thức". Mục đích chính của chứng minh không kiến thức là có hai vai trò: một bên là Prover (người chứng minh), một bên là Verifier (người xác minh). Prover có thể chứng minh cho Verifier rằng một mệnh đề nào đó là đúng, mà không tiết lộ bất kỳ thông tin bí mật nào mình biết. Để dễ hiểu, tôi xin đưa ra một vài ví dụ minh họa rõ hơn về mệnh đề này và thông tin bí mật có thể là gì.
Giả sử bạn đang ở trong một lớp học, giáo viên đưa ra một bài toán, ví dụ như giải một phương trình. A đã giải được bài toán này, còn B thì chưa. A muốn khoe với B rằng anh ấy đã giải được. Một cách trực tiếp là A nói luôn kết quả cho B, nhưng như vậy B cũng sẽ biết nghiệm của phương trình, do đó A không đạt được mục đích “vừa chứng minh được mình biết đáp án, vừa không tiết lộ đáp án đó”. Đây chính là một ví dụ điển hình, nơi chứng minh không kiến thức cho phép A chứng minh với B rằng mình biết nghiệm của phương trình mà không cần tiết lộ nghiệm cụ thể.
Một ví dụ mang tính blockchain hơn là hàm băm (hash). Ví dụ, output của một hàm băm là 0. A có thể chứng minh với B rằng mình biết một input (pre-image), sao cho khi băm pre-image này thì output là 0. Trước đây, để tìm được pre-image này, bạn có thể cần proof of work (bằng chứng công sức), tốn rất nhiều năng lực tính toán. A có thể khoe với B rằng mình biết pre-image đó, nhưng lại không tiết lộ nội dung cụ thể.
Hoặc một ví dụ blockchain khác nữa: chứng minh không kiến thức có thể tăng cường tính riêng tư trên blockchain. Tính minh bạch của blockchain cũng kéo theo nhiều vấn đề về quyền riêng tư. Ví dụ, mỗi giao dịch bạn gửi đi đều phải phát tán trên một mạng công khai. Bởi vì giao dịch đó phải chứa thông tin A gửi bao nhiêu tiền cho B, nên mọi giao dịch đều công khai. Điều này có ưu và nhược điểm; nhược điểm là hoàn toàn không có tính ẩn danh. Khi bạn gửi tiền cho ai đó, bạn ngay lập tức có thể biết được rất nhiều thông tin liên kết với địa chỉ của người đó. Với chứng minh không kiến thức, bạn có thể đính kèm một "chứng minh" vào giao dịch, chứng minh rằng giao dịch là hợp lệ mà không tiết lộ nội dung cụ thể của nó.
Sau này, các ứng dụng như zk-Rollup còn có thể mở rộng khả năng xử lý của blockchain. Nó có thể đóng gói hàng loạt giao dịch lại với nhau và tạo ra một chứng minh duy nhất.
Đó là khái niệm cơ bản và một số ứng dụng của chứng minh không kiến thức.
Mạch zk được dùng trong zk-Rollup là gì?
Ye
Cụ thể thì “mạch” (circuit) trong chứng minh không kiến thức nghĩa là gì? Điều này liên quan đến việc bạn sử dụng chứng minh không kiến thức như thế nào. Như đã giới thiệu, chứng minh không kiến thức cho phép bạn chứng minh một điều gì đó mà không tiết lộ bí mật. Tiếp theo là cách bạn thực sự tạo ra chứng minh cho một chương trình. Việc này liên quan đến quy trình tính toán cụ thể của chứng minh không kiến thức.
Ví dụ như việc giải phương trình hay tính hàm băm ở trên, thực chất bạn đang chứng minh input của một hàm số. Với một input ban đầu, bạn nhận được một output nhất định. Về cơ bản, bạn cần chứng minh rằng toàn bộ chương trình chạy đúng, nhưng thay vì mô tả từng bước, bạn sẽ tạo ra một "chứng minh mật mã học" mang tính toán học cao.
Thông thường, khi viết một chương trình, chúng ta dùng C++ hoặc các ngôn ngữ cấp cao. Tương tự, với ZK, nếu bạn muốn tạo chứng minh cho một chương trình, trước tiên bạn cần mã hóa (encode) chương trình đó bằng một ngôn ngữ đặc biệt dành cho ZK (không phải C++).
Ngôn ngữ này rất toán học, giống như hợp ngữ nhưng mang tính toán học hơn, chỉ bao gồm các phép toán cơ bản như cộng, nhân và một số thao tác cổng logic cơ bản. Bạn dùng các thành phần này để biểu diễn lại chương trình gốc. Khi bạn đã viết chương trình bằng ngôn ngữ mạch ZK đặc biệt này, bạn có thể chạy một thuật toán mật mã học để sinh ra chứng minh.
Tóm lại, nếu bạn muốn tạo chứng minh cho một chương trình, bạn cần viết lại chương trình đó bằng ngôn ngữ ZK, và cách mã hóa này được gọi là mạch ZK.
Có mối liên hệ gì giữa mạch zk và tăng tốc phần cứng không?
Ye
Đây là một câu hỏi rất hay, vì nhiều người thường nghĩ đến vi mạch hoặc mạch điện vật lý khi nghe thấy từ “circuit”. Nhưng thực tế, mạch ZK là một mạch đại số – một dạng mã hóa đại số của chương trình. Bạn có thể hình dung nó như một tập hợp các biểu thức toán học kiểu A nhân B bằng C. Nó hoàn toàn khác với một bảng mạch điện tử.
Tuy nhiên cũng có một số điểm tương đồng. Ví dụ, khi viết mạch ZK, bạn cũng phải xây dựng từ các cổng cơ bản. Vì bị giới hạn chỉ dùng được các phép cộng, nhân và một số cấu trúc cơ bản, nên nó có bố cục riêng. Nếu suy nghĩ kỹ, sẽ thấy nhiều điểm giống nhau, nhưng quy trình tính toán cụ thể thì hoàn toàn khác biệt.
Điểm mạnh của mạch ZK là nó dựa trên các yếu tố toán học, ví dụ có thể kiểm tra mối quan hệ A × B = C. Trong khi đó, mạch vật lý là nơi bạn đưa input vào một con chip, chạy qua nó và nhận được kết quả.
Đây là một điểm khác biệt. Ví dụ, nếu bạn muốn thực hiện A chia B bằng C trong mạch điện tử, bạn cần thiết kế một bộ chia, đưa vào A và B, rồi chia để ra C. Nhưng khi viết mạch ZK, bạn chỉ cần giả sử trời cho bạn ba giá trị A, B, C (gọi là witness), và bạn chỉ cần chứng minh rằng B × C = A là đủ. Đây chính là sự khác biệt giữa mạch ZK và mạch vật lý.
Tăng tốc phần cứng thực chất đang tăng tốc cái gì?
Ye
Thông thường, khi mọi người nói “tăng tốc phần cứng”, thực tế không phải đang tăng tốc quá trình mạch ZK, bởi vì mạch ZK chỉ là một cách biểu diễn khác của chương trình gốc. Ví dụ, bạn có một hàm băm, giờ bạn viết lại hàm băm đó bằng ngôn ngữ mạch ZK – nó vẫn là một chương trình, chỉ là được viết theo cách ZK hiểu được.
Nhưng thực tế bạn đang chạy cái gì? Là bạn dùng chương trình/mạch ZK đó làm đầu vào để chạy một thuật toán mật mã học – thuật toán ZK. Chính thuật toán này mất rất nhiều thời gian, có thể vài giờ hoặc cả ngày. Nó có thể đang thực hiện các phép tính đường cong elliptic, đa thức, vì đây là một thuật toán mật mã cụ thể, cần biến mạch thành một chứng minh. Quá trình này cực kỳ nặng nề và tốn thời gian, nên mới cần đến bộ tăng tốc để đẩy nhanh quá trình tạo chứng minh – chứ không phải quá trình viết mạch.
Việc viết mạch có thể coi là bước tiền xử lý chương trình, biến chương trình thành mạch. Chỉ khi bạn có mạch ZK, bạn mới có thể tạo chứng minh. Nhưng thực tế, việc tăng tốc là ở bước tạo chứng minh – tức là khi bạn đã có mạch ZK, bạn cần tạo ra chứng minh. Lúc này bạn cần ASIC hoặc GPU để thực hiện toàn bộ quá trình tính toán chứng minh.
Vì vậy, sự khác biệt nằm ở chỗ: bạn đang tăng tốc quá trình tạo chứng minh sau khi đã có mạch ZK.
Leo
Tôi nghĩ Ye đã tổng hợp rất tốt. Mạch trong ZK giống như một cách biểu đạt khác, để mô tả mô hình trừu tượng toán học mà ZK có thể hiểu. Sau đó, mô hình trừu tượng này được đưa vào backend tương ứng để sinh ra chứng minh. Chính ở bước backend tạo chứng minh này mới cần tăng tốc phần cứng. Như vậy, mạch ZK và tăng tốc phần cứng là hai việc hoàn toàn khác nhau. Chỉ là chúng ta có thể dùng tăng tốc phần cứng để cải thiện hiệu suất tạo chứng minh ZK.
Ye
Tôi quên bổ sung thêm một điểm. Câu hỏi ban đầu là: liệu các mạch ZK khác nhau có thể dùng chung một bộ tăng tốc không? Câu trả lời là hoàn toàn có thể. Dù là các mạch ZK khác nhau – ví dụ các hàm băm khác nhau, chương trình khác nhau – bạn đều phải viết thành các mạch khác nhau. Nhưng như Leo nói, quá trình tăng tốc xảy ra sau khi có mạch, tức là quá trình tạo chứng minh.
Thuật toán tạo chứng minh là một thuật toán mật mã học xác định (deterministic). Nghĩa là dù xử lý mạch nào, nó cũng dùng cùng một thuật toán. Do đó, khi bạn dùng ASIC để tăng tốc quá trình tạo chứng minh, các mạch khác nhau chỉ là các đầu vào khác nhau. Cùng một bộ tăng tốc có thể tăng tốc cho các mạch ZK khác nhau.
Prover: Tập trung hay Phi tập trung
Prover đóng vai trò gì trong zk-Rollup?
Ye
Trước tiên, tôi xin giới thiệu sơ lược zk-Rollup giải quyết vấn đề gì. Nó giải quyết bài toán mở rộng quy mô cho Ethereum. Ethereum là một mạng P2P rất phi tập trung, mỗi giao dịch phải được truyền tới mọi nút, và mỗi nút đều phải thực thi lại. Càng phi tập trung thì hiệu suất càng thấp, vì có hàng ngàn nút, mỗi nút đều thực hiện cùng một tính toán. Điều này khiến mạng lưới rất tốn kém và khả năng xử lý giao dịch bị giới hạn.
Ý tưởng cốt lõi của zk-Rollup là lấy một lượng lớn giao dịch từ layer 1 xuống offline. Sau đó, tạo một chứng minh ZK, chứng minh rằng mười nghìn giao dịch là đúng – tức là tạo một chứng minh nhỏ để xác nhận mười nghìn giao dịch. Như vậy, chúng ta không cần đưa mười nghìn giao dịch lên mạng Ethereum, mà chỉ cần đưa chúng lên mạng Scroll, rồi Scroll tạo ra một chứng minh. Chỉ cần nộp chứng minh nhỏ này cùng một số dữ liệu khác lên chuỗi, Ethereum chỉ cần xác minh chứng minh là có thể biết mười nghìn giao dịch đều đúng.
Việc này giúp toàn bộ mạng Ethereum không phải tính toán mười nghìn giao dịch, mà chỉ cần xác minh một chứng minh rất nhỏ, do đó hiệu quả cao hơn rất nhiều. Giả sử Ethereum mỗi giây chỉ xử lý được 10 giao dịch, nhưng mỗi giao dịch lại đang xác minh một chứng minh, và mỗi chứng minh lại xác nhận được mười nghìn giao dịch. Như vậy, khả năng mở rộng có thể tăng gấp một triệu lần. Tất nhiên đây là cách nói đơn giản để dễ hiểu, còn nhiều chi tiết cụ thể khác. Nhưng đây là ý tưởng cốt lõi: đóng gói nhiều giao dịch thành một chứng minh, nộp chứng minh lên chuỗi, để các nút xác minh.
Vậy prover đóng vai trò gì lúc này? **Trước hết, zk-Rollup cần một nút tạo khối, ví dụ nhận mười nghìn giao dịch và tạo khối; sau đó cần một nút chứng minh, prover phải tạo chứng minh cho mười nghìn giao dịch đó.** Vai trò chính là chứng minh tính hợp lệ của từng khối trong mạng zk-Rollup và tạo ra chứng minh cho nó.
Prover có thể là tập trung hoặc phi tập trung. Nhưng hiện tại, phần lớn các giải pháp đều tương đối tập trung vì có thể dùng nhiều GPU. Việc tính toán chứng minh là một quá trình xác định, bạn có khối, chạy thuật toán và tính ra chứng minh là xong. Đây là một quy trình khá cố định, có thể thực hiện bằng cách phân tán hoặc dùng cụm máy tính.
Giới thiệu về những gì Scroll đang làm
Ye
Scroll muốn xây dựng một zk-Rollup ZKEVM. ZKEVM là gì? Như tôi đã nói, chúng ta cần tạo chứng minh cho mười nghìn giao dịch. Vậy quay lại câu hỏi: làm thế nào để tạo chứng minh? Trước tiên, bạn cần biểu diễn chương trình cần chứng minh bằng ngôn ngữ ZK. ZKEVM thực chất là việc dùng ngôn ngữ ZK để viết lại Máy ảo Ethereum (EVM). Trước đây, khi nhiều người làm zk-Rollup, họ chỉ có thể tạo chứng minh cho các trường hợp sử dụng cụ thể, ví dụ như DEX tạo chứng minh cho giao dịch chuyển tiền, nên chỉ cần mã hóa logic chuyển tiền thành ngôn ngữ ZK.
Nhưng giờ đây, chúng tôi muốn xây dựng một mạng lưới phổ quát, và không muốn buộc các nhà phát triển viết hợp đồng, viết Solidity phải dùng ZK. Vì vậy, chúng tôi xây dựng một phiên bản ZK của EVM. Như vậy, trải nghiệm của nhà phát triển giống hệt như trên Ethereum. Họ vẫn làm việc với EVM, nhưng thực tế chúng tôi đã viết logic EVM bằng ngôn ngữ ZK. Khi chứng minh, chúng tôi chứng minh rằng mọi giao dịch EVM đều đúng.
Hiểu đơn giản hơn, Scroll là một mạng lưới có băng thông cao hơn, nhanh hơn, rẻ hơn, nhưng độ bảo mật bằng với Ethereum. Điểm kỳ diệu là chúng tôi có thể nhận giao dịch và tạo chứng minh, thay vì phát tán và để các nút đạt đồng thuận. Vì vậy, prover đóng vai trò chứng minh tính hợp lệ của từng khối.
Mạng prover phi tập trung: đảm bảo độ tin cậy của mạng và thúc đẩy thị trường để nâng cao hiệu suất tạo chứng minh
Ye
Đây là một câu hỏi rất hay. Tại sao chúng ta nhất thiết phải phi tập trung hóa thị trường prover? Như bạn nói, thực tế chúng tôi tự tính toán cũng được, và hiện tại mọi người đều đang làm như vậy. Nhưng tại sao chúng tôi lại muốn xây dựng một mạng lưới như vậy? Có những lợi ích sau:
Thứ nhất, nó đảm bảo độ tin cậy của mạng. Ý tưởng cốt lõi của zk-Rollup là ngay cả khi Scroll hoặc layer 2 tắt mạng, ngừng vận hành nút, ngừng xử lý giao dịch, người dùng vẫn có khả năng tự tạo chứng minh để rút tiền từ layer 1. Nếu prover bị tập trung, dẫn đến sập mạng hoặc gặp nhiều sự cố, thì độ tin cậy và độ bền của toàn bộ mạng sẽ bị ảnh hưởng. Nếu có nhiều prover phi tập trung, thì luôn có người đang tạo chứng minh cho bạn.
Thứ hai, như tôi đã nói, việc tính toán là xác định, khác với proof of work, nó không có yếu tố ngẫu nhiên – bạn chỉ cần làm nhanh hơn là được. Nhưng chúng tôi hy vọng tạo ra một vòng lặp tích cực, khuyến khích cộng đồng không ngừng cải tiến. Vì chứng minh càng nhanh, thời gian rút tiền từ layer 1 trong tương lai càng ngắn, tính xác định cuối cùng càng nhanh. Chúng tôi mong muốn rút ngắn thời gian tạo chứng minh ngày càng nhiều.
Và chỉ khi xây dựng một thị trường prover mở, mọi người mới đổ xô tham gia. Ví dụ như Cysic hay các công ty ASIC khác, họ đều đang xây dựng prover ZK ngày càng tốt hơn. Khi ngày càng nhiều người xây dựng phần cứng tốt hơn, họ sẽ góp phần hoàn thiện nền tảng của chúng tôi. Nếu đây không phải là một thị trường mở, chỉ có chúng tôi tự tạo chứng minh, thì đến một mức độ nào đó sẽ không còn động lực, hoặc chúng tôi luôn phải thuê người giỏi hơn để tối ưu thiết kế, rút ngắn thời gian xác định cuối cùng, giảm chi phí.
Nhưng một khi chúng tôi mở thị trường prover, nó sẽ khuyến khích nhiều người làm nhanh hơn. Tôi cho rằng đây là một động lực tích cực, giúp chứng minh ngày càng nhanh hơn, thậm chí với ASIC, có thể làm được những điều điên rồ hơn. Như vậy, nó sẽ thúc đẩy việc tăng tốc lên gấp mười, rồi lại gấp mười lần nữa, tạo ra nhiều khả năng mới.
Leo
Tôi nghĩ Ye đã tổng hợp rất tốt. Hiện tại, ZK là chủ đề rất nóng trong blockchain, với vô số ứng dụng, nhu cầu về prover ZK thực sự rất lớn. Cysic từ đầu đã theo hướng open design. Chúng tôi thỉnh thoảng công bố dữ liệu, thu hút cộng đồng cùng xây dựng phần cứng ZK tốt hơn, hỗ trợ các dự án ZK vượt qua điểm nghẽn hiệu suất.
Hiện tại, thị trường còn non trẻ, nhưng chúng tôi rất lạc quan, cho rằng đây là một thị trường khổng lồ. Đó cũng là lý do chính khiến chúng tôi đầu tư mạnh, từ FPGA trước, sau đó chuyển sang ASIC.
Kế hoạch và tiến độ hiện tại của Scroll về prover phi tập trung
Ye
Giai đoạn đầu tiên, chúng tôi tập trung vào việc ra mắt phiên bản mainnet. Trước tiên, chúng tôi sẽ xây dựng xong ZKEVM và zk-Rollup, có một phiên bản mainnet ổn định.
Đồng thời, đội ngũ nội bộ chúng tôi đang xây dựng các giải pháp GPU cực nhanh, và dự định sẽ mã nguồn mở, để bất kỳ ai cũng có thể chạy GPU này. Chúng tôi đã công bố hai bài báo học thuật, một về cách dùng ASIC tăng tốc ZK, và hợp tác với các tổ chức học thuật như Đại học Khoa học và Công nghệ Hoa Trung, Đại học Thanh Hoa và các trường khác. Có các bài báo GPU mã nguồn mở, mọi người có thể xem cách thiết kế kiến trúc. Hướng tối ưu hiện tại là làm sao tăng tốc ZKEVM bằng GPU. Và để prover phi tập trung hơn, mục tiêu tối ưu là làm sao cho thuật toán prover của chúng tôi chạy được trên GPU giá rẻ. Ví dụ, trước đây mọi người dùng 1080, sau đó là 2080, rồi GPU ngày càng tốt hơn. Mục tiêu hiện tại là làm sao để GPU 1080 giá rẻ cũng có thể chạy thuật toán prover của chúng tôi. Như vậy sẽ có nhiều người tham gia hơn – đó là mục tiêu lớn của chúng tôi.
Về kế hoạch cụ thể cho prover, hiện có một số định hướng thiết kế lớn: chúng tôi không muốn luôn là prover nhanh nhất sẽ thắng. Vì đây là thuật toán xác định, nếu ai đó dùng ASIC hoặc phần cứng thần kỳ đánh bại mọi người khác về tốc độ, họ sẽ chiếm toàn bộ phần thưởng. Nhưng như vậy, hệ thống sẽ trở nên mong manh – bạn mãi phụ thuộc vào prover nhanh nhất, nếu một ngày họ rời khỏi hệ sinh thái, sẽ gây tổn hại nghiêm trọng. Chúng tôi muốn có nhiều bản sao lưu. Vì vậy, triết lý thiết kế là trong một cửa sổ thời gian nhất định, bạn có thể nộp chứng minh một cách hợp lý – miễn là nộp trong khoảng thời gian đó là được. Dùng ASIC hay cách khác có thể tiết kiệm điện năng và chi phí. Sau đó chúng tôi dần thu hẹp cửa sổ thời gian này, tùy theo sự gia tăng năng lực tính toán. Đó là triết lý thiết kế của chúng tôi.
Tuy nhiên, kế hoạch cụ thể vẫn đang được xây dựng, trước tiên đảm bảo mạng hoạt động ổn định, sau đó từ từ cho các thực thể phi tập trung tham gia, rồi mới mở hoàn toàn. Nhưng GPU của chúng tôi sau này ai cũng có thể truy cập và dùng trực tiếp, hiệu suất rất tốt, và có tài liệu mã nguồn mở hỗ trợ.
Tôi muốn bổ sung thêm một điểm: chúng tôi có ba định hướng giá trị: trung lập (neutrality), mở (openness) và định hướng cộng đồng (community driven). Tôi cho rằng prover phi tập trung là một phần của community driven và openness.
Mạng Ethereum mạnh vì có cộng đồng khổng lồ, chúng tôi cũng vậy, muốn xây dựng cộng đồng riêng. Ví dụ, phần cứng của Cysic là một phần trong hệ sinh thái của chúng tôi. Chúng tôi sẽ chủ động tổ chức nhiều buổi workshop, xuất bản tutorial để giúp mọi người hiểu công cụ zk mà chúng tôi dùng. Như vậy sẽ có thêm nhiều dự án, thậm chí 100 dự án zk thế hệ tiếp theo dùng chung công cụ zk, và họ cũng được hưởng lợi từ mạng prover hoặc thế hệ phần cứng này. Không chỉ giúp chúng tôi xây dựng, mà chúng tôi đang xây dựng một cộng đồng lớn – mọi ứng dụng zk dùng chung công cụ, có thể trong tương lai dùng chung ASIC, chung GPU. Chúng tôi đang xây dựng một khung khổ và mạng lưới lớn cho cộng đồng. Đó là mục tiêu lớn, nhưng lộ trình cụ thể vẫn đang bàn bạc.
Giải mã tăng tốc phần cứng chứng minh zk
Tại sao cần tăng tốc tạo chứng minh zk
Leo
Lý do ban đầu chúng tôi làm Cysic đến từ công việc trước đây của tôi tại Algorand. Tôi đã làm Algorand state proof, về bản chất vẫn là một chứng minh zk, có thể dùng cho cầu nối liên chuỗi. Khi tôi hoàn thành PoC vào khoảng tháng 3-4 năm ngoái, tôi nhận ra thời gian tạo chứng minh quá dài, khoảng vài phút. Tôi thử rất nhiều tối ưu phần mềm và thuật toán nhưng không giải quyết được. Vì vậy, tôi nghĩ đến việc dùng phần cứng để tăng tốc toàn bộ quá trình tạo chứng minh. Vì Algorand mong muốn thời gian tạo chứng minh khoảng 30 giây, và khi các phương pháp khác không hiệu quả, chỉ còn cách dùng phần cứng để nâng cao hiệu suất. Thực tế này giống như một quá trình trong mật mã học: có một thuật toán nổi tiếng là RSA encryption. Ban đầu, RSA chạy rất chậm trên máy tính thời đó, nên ba người phát minh RSA đã làm ra một phần cứng chuyên dụng để tăng tốc. Tư tưởng tương tự có thể áp dụng cho ZKP: khi dùng phần cứng phổ thông tính rất chậm, chúng ta cần thiết kế phần cứng chuyên dụng để thúc đẩy sự phát triển của cộng đồng.
Các giải pháp phần cứng chính và lộ trình của Cysic
Leo
Thực ra, Cysic học được nhiều cảm hứng từ một bài viết của Ye. Các cách chính gồm CPU, GPU, FPGA và ASIC. CPU là phần cứng phổ thông, nói chung tính toán chậm, trừ khi dùng nhiều core, ví dụ CPU 192-core. Tất nhiên, điều này không phải ai cũng có khả năng.
Thứ hai là GPU, FPGA thuộc nhóm có thể nhanh chóng thâm nhập thị trường. Trong phần cứng, có hai tiêu chuẩn đo lường chính: hiệu suất trên mỗi đô la (performance per dollar) và hiệu suất trên mỗi watt (performance per watt).
Performance per dollar là chi phí vốn ban đầu để mua phần cứng. Về mặt này, GPU tốt hơn FPGA khi chi cùng số tiền. Vì FPGA bị giới hạn phần cứng, không thể đạt hiệu suất cao như GPU. Do đó, GPU là lựa chọn rất tốt khi mới thâm nhập thị trường. Đây cũng là hướng mà đội ngũ nội bộ của Ye chọn.
Tuy nhiên, mục tiêu của Cysic là làm ASIC, thiết kế một bộ tăng tốc ZKP phổ quát. **Nhưng trước khi làm ASIC, cần thực hiện nhiều thử nghiệm và tạo mẫu trên FPGA. Đây là hướng mà chúng tôi đang tập trung.** Dù một FPGA đơn lẻ không bằng GPU, nhưng nếu nối nhiều FPGA lại, hiệu suất có thể cao hơn GPU nhiều lần. Trên FPGA, chúng tôi cũng có thể thử nghiệm nhiều thứ, hỗ trợ thiết kế ASIC sau này.
Performance per watt là hóa đơn điện bạn phải trả khi chạy phần cứng. Về mặt này, FPGA và GPU ở cùng mức. Nhưng ASIC thực tế vượt trội hơn cả hai về cả hai tiêu chí, khi sản lượng đạt đến mức nhất định. Đây là tổng quan về lộ trình công nghệ phần cứng hiện nay.
Scroll sẽ cân nhắc các giải pháp tăng tốc phần cứng như thế nào?
Ye
Thực ra Leo vừa đề cập sơ qua, chúng tôi đã nghiên cứu nhiều về ASIC và GPU. Nhưng cuối cùng, ít nhất giải pháp nội bộ hoặc mã nguồn mở của chúng tôi sẽ là GPU.
Bởi vì xây dựng ASIC và FPGA đòi hỏi kiến thức và kỹ năng chuyên môn rất đặc biệt: chọn model FPGA, biết cách làm mask, hiểu rõ nhà cung cấp, chuỗi cung ứng – những việc mà công ty phần cứng làm. Một công ty phần mềm khó xử lý những việc này. Bạn cần chi phí R&D, chi phí một lần rất cao.
Nhưng GPU thì khác, kỹ sư phần mềm của chúng tôi chỉ cần viết code, ai có GPU đều có thể chạy. Vì vậy, triết lý thiết kế của chúng tôi là tận dụng tối đa, thậm chí tận dụng một phần GPU của thợ đào Ethereum để cùng tạo chứng minh. Cuối cùng, chúng tôi cân nhắc tổng thể về chi phí, số lượng người có thiết bị, và thời gian (FPGA và ASIC mất nhiều thời gian hơn), nên chọn giải pháp GPU. Hơn nữa, hiệu suất GPU đã đủ tốt, nên ngắn hạn chúng tôi chọn GPU.
Tuy nhiên, nếu có ASIC hoặc FPGA muốn kết nối với mạng chúng tôi, chúng tôi rất hoan nghênh. Hiện nay có nhiều đơn vị theo đuổi GPU, ví dụ Supranational; theo đuổi ASIC như Cysic, Accseal; làm FPGA như Ulvantanna, Ingonyama... Tất cả các giải pháp này đều là một phần trong hệ sinh thái của chúng tôi, chúng tôi đều hỗ trợ. Nếu họ có câu hỏi về benchmark prover, chúng tôi đều sẵn sàng trả lời. Cuối cùng, tất cả đều mở.
Nhưng theo tầm nhìn hiện tại, kết luận của chúng tôi rất giống Leo: FPGA rất phù hợp cho giai đoạn chuyển tiếp. Vì một FPGA đơn lẻ khó đánh bại GPU đơn lẻ, nhưng nhiều FPGA kết nối thì có thể. Nhưng FPGA đắt, trong khi ASIC có hiệu suất tương đương nhiều FPGA kết nối, nhưng chỉ cần mask một lần có thể tốn hàng chục triệu USD, phải đợi giữa năm sau, mất rất lâu. Vì vậy, về mặt thực dụng, chúng tôi muốn dùng GPU trước, rồi dần dần, cộng đồng hoặc các công ty khác xây dựng giải pháp ngày càng tốt hơn, dùng ASIC để tiếp tục tăng tốc.
Triển vọng tương lai của mạng prover và thị trường tăng tốc phần cứng
Cung và cầu trên thị trường tăng tốc phần cứng zkp
Leo
Mục tiêu của Cysic là xây dựng một DAO prover ZK, trong đó có nhiều loại phần cứng tham gia. DAO này sẽ hợp tác với nhiều dự án ZK, vậy đầu cầu là các dự án ZK. Đầu cung là các prover. Cysic đã liên hệ với hơn 20 mỏ đào trước đây, họ có cơ sở vật chất để cung cấp dịch vụ tạo chứng minh, nhưng thiếu kinh nghiệm nghiên cứu. Vì vậy, Cysic sẽ cung cấp phần cứng cho các mỏ đào này, giúp họ tham gia DAO, cung cấp dịch vụ cho cộng đồng ZK.
Việc này giúp DAO prover ZK khởi động nhanh, vì Cysic không cần tốn quá nhiều thời gian và công sức để thiết lập các prover phi tập trung, mà có thể dựa vào các cơ sở hiện có để tham gia dịch vụ tạo chứng minh. Tất nhiên, trong DAO prover ZK của Cysic, không chỉ có ASIC mà còn nhiều GPU. Điều này phù hợp với tư tưởng của cộng đồng về prover phi tập trung.
Hiện tại, đối tác chính của Cysic chủ yếu đến từ các giải pháp mở rộng quy mô, các chuỗi layer 1 tập trung vào riêng tư, cầu nối liên chuỗi. Ngoài ra còn có các dự án ZK indexer như Axiom và HyperOracle, dùng ZKP để tăng hiệu suất index. Cuối cùng là các dự án ZKML – kết hợp ZK và trí tuệ nhân tạo. Đây vẫn là giai đoạn rất sớm. Đó là một số đối tác của Cysic trong blockchain.
Thị trường "đào" chứng minh zk này khác gì với cơ chế đào PoW của Bitcoin?
Leo
Tôi nghĩ điều này phụ thuộc vào đối tác hợp tác. Như Scroll của Ye, họ có triết lý thiết kế phi tập trung, tức là không yêu cầu ai nhanh nhất thì nhận toàn bộ phần thưởng. Họ mong muốn mọi người tạo chứng minh trong một cửa sổ thời gian, và có cơ hội nhận phần thưởng. Tôi cho rằng đây là một ý tưởng phi tập trung rất tốt.
Thị trường này sẽ không giống thị trường đào Bitcoin hay Ethereum trước đây, trở thành độc quyền một nhà. Ví dụ như Bitmain chiếm hơn nửa thị trường. Thị trường này sẽ không như vậy, mà là một giải pháp phi tập trung, mọi người hưởng lợi từ sự phát triển của các dự án ZK. Người làm prover cũng có lợi nhuận tốt, không phải kiểu một nhà ăn hết.
Ye
Theo tôi, sự khác biệt lớn nhất giữa PoW và tạo chứng minh ZK vẫn quay về điều chúng ta đã nói: thuật toán ZK là một thuật toán xác định. Chúng ta có thể ép đặt một cửa sổ thời gian, nhưng một khi tính xong là xong ngay. Bạn có thể hình dung: chúng tôi mong muốn kết quả là có một vạn prover, mỗi người đều đang làm công việc hữu ích, ví dụ cùng lúc tạo chứng minh cho một vạn khối, từ đó san sẻ chi phí, tăng băng thông. Vì có một vạn người đang song song làm việc này. Nhưng proof of work giống như một vạn người đang cạnh tranh, ai tạo ra khối trước thì thắng. Như vậy, phần lớn công việc của một vạn người bị lãng phí. Đây là sự khác biệt rõ rệt, chi phí và năng lượng tiêu thụ của chúng tôi có thể chỉ bằng chưa đến 0,01% so với Ethereum.
Hơn nữa, yêu cầu phần cứng hoàn toàn khác. Vì PoW tính toán hàm băm, làm nhiều công việc vô ích, dẫn đến máy đào Ethereum trước đây thường là CPU yếu, GPU mạnh – một mô hình ngớ ngẩn. Nhưng ZK là một thuật toán chính thống. Đây là sự khác biệt lớn nhất về nhu cầu phần cứng giữa PoW và ZK. Chúng tôi cần CPU tốt, và CPU cần bộ nhớ lớn – đây là khác biệt trong lựa chọn máy. Vì PoW chỉ cần nối mạng, dùng GPU chạy hàm băm, tính toán song song. Nhưng với ZK, prover cần dùng CPU, rồi dùng GPU cho một phần tính toán – giống như một bộ xử lý có CPU, là một thể thống nhất.
Vì vậy, đây là sự khác biệt trong lựa chọn máy – rất lớn, bạn cần một CPU rất tốt để xử lý các tính toán này. Nhưng đào truyền thống có thể chỉ cần một máy GPU. Tóm lại: ngẫu nhiên và xác định; lãng phí và ít lãng phí; công việc vô ích và công việc hữu ích. Như tôi đã nói, về lựa chọn máy, zk có yêu cầu cao hơn về CPU. Tuy nhiên điều này phụ thuộc vào từng mạng, có thể Filecoin trước đây cũng đã có yêu cầu nhất định về CPU.
Leo
Tôi có thể bổ sung thêm một chút, đưa ra dữ liệu hỗ trợ. Như Ye nói, trước đây tính toán hàm băm, mỗi chip rất nhỏ. Ví dụ trong máy đào của Bitmain, có hàng trăm chip như vậy. Toàn bộ máy đào tiêu thụ điện năng rất cao, khoảng 3000-4000 watt.
Nếu tính zk, chip lớn hơn nhiều, nhưng số lượng chip trong máy ít hơn. Trong suốt quá trình tính toán, chip và bộ nhớ có nhiều tương tác. Chúng tôi ước tính toàn bộ tiêu thụ điện năng của máy khoảng 400-500 watt, thực tế tương đương trạng thái một GPU đơn card.
Làm sao hiểu được tăng tốc phần cứng lại có lợi cho việc phi tập trung hóa mạng prover?
Ye
Khi có nhà cung cấp phần cứng tốt hơn sản xuất ASIC tốt hơn, chi phí tham gia mạng có thể giảm. Kể cả khi chúng tôi mã nguồn mở thuật toán, mọi người có GPU ở nhà hoặc thiết bị gì đó đều có thể chạy mạng. Như vậy, tăng tốc phần cứng có thể giảm chi phí, giảm điện năng, giúp hạ thấp rào cản tham gia thị trường prover, từ đó ngày càng nhiều người tham gia. Đồng thời, điều này cũng có lợi cho băng thông, độ ổn định, độ tin cậy và độ bền của toàn bộ mạng.
Leo
Tôi muốn bổ sung: nếu có tăng tốc phần cứng, có thể tạo ra một chứng minh tương đối phức tạp trong thời gian rất ngắn, điều này rất có lợi để mở rộng ứng dụng mới. Ví dụ, trước đây tính toán một mạng neural vài tầng bằng zk có thể mất vài giờ. Mọi người cho rằng phương pháp này hoàn toàn không thực dụng. Nhưng nếu dùng tăng tốc phần cứng, thời gian có thể rút ngắn xuống còn vài phút hoặc vài giây.
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














