Tác giả gốc: ORFEO
Nguồn gốc: The SeeDAO
Dự án L2 một lần nữa được chú ý.
Là một đại diện của lộ trình mở rộng Rollup trong L2, sau đợt airdrop Arbitrum, Kỷ nguyên zkSync sẽ được khởi chạy. Đằng sau vô số thiết kế và lộ trình mới, dòng chính của Rollup là gì và tư duy tiến hóa là gì?
Các điểm chính của bài viết này:
Đối với Bitcoin và Ethereum, kể từ khi ra đời, có hai lời chỉ trích lớn nhất từ người dùng thông thường:
Hai lời chỉ trích này bắt nguồn từ hai yếu tố trong thiết kế chuỗi khối:
Nếu chuỗi khối thực sự có thể giống như một đường lái xe, thì giải pháp cơ bản đương nhiên là mở rộng đường lái xe, đồng thời hợp tác với các phương tiện giá cả để định hướng thời gian ra ngoài, và đừng ra ngoài nếu bạn không ở trong một sự vội vàng.
Tuy nhiên, mặc dù việc mở rộng làn đường và tăng dung lượng khối là một giải pháp hiệu quả về lưu lượng truy cập hấp dẫn, nhưng đây là giải pháp cuối cùng trong thiết kế chuỗi khối. Bởi vì kích thước khối càng lớn, yêu cầu phần cứng đối với người khai thác càng cao và càng ít người khai thác có thể đáp ứng yêu cầu; theo ý tưởng này, nếu bạn muốn xử lý hàng nghìn giao dịch mỗi giây như Visa, thì cuối cùng bạn sẽ chỉ thực hiện một giao dịch khác Visa tập trung đi ngược lại mục đích cốt lõi của sự tin cậy của blockchain.
Còn có những giải pháp nào nữa ko? Có, ngoài hướng dẫn về thời gian, chúng tôi cũng có thể tối ưu hóa không gian, bao gồm nhưng không giới hạn ở:
Là một chiếc xe buýt trên blockchain, chìa khóa của Rollup là tiết kiệm không gian và xăng (Gas, ý định chơi chữ):
Bằng cách này, hai vị trí “chậm” và “đắt” được giải quyết bằng Rollup.
Hãy quay trở lại blockchain và xem kế hoạch cụ thể của Rollup.
Thay vì xem qua câu trả lời tiêu chuẩn (chưa kể là không có), tốt hơn hết là bạn nên hồi hộp và tưởng tượng xem mình sẽ làm gì khi được giao nhiệm vụ thiết kế Rollup cho Ethereum.
Chúng ta cũng có thể bắt đầu từ hai góc độ là giảm chi phí tính toán (tiết kiệm xăng) và giảm chi phí lưu trữ (tiết kiệm dung lượng), và trước hết đề xuất một giải pháp triệt để hơn gọi là Rollup 1.0;.
Rollup 1.0 bao gồm 3 điểm chính:
Nói một cách đơn giản, đó là thu thập thường xuyên và định lượng các yêu cầu giao dịch của mọi người và sau khi tính toán ngoài chuỗi, chỉ có kết quả tính toán được củng cố trên chuỗi.
Giải pháp này giải quyết hoàn hảo hai vấn đề nhức nhối chính là “chậm” và “đắt”, nhưng dường như nó lại phát sinh các vấn đề mới:
Đối với ba vấn đề mới này, chúng ta có thể lặp lại một phiên bản của kế hoạch.
Vấn đề động lực được giải quyết tốt nhất, và những vấn đề có thể giải quyết bằng tiền không phải là vấn đề. Nhà cung cấp dịch vụ có thể chia đều chi phí “đi chung xe” và tính thêm một chút “tiền boa”, mặc dù vậy, đây vẫn là một tình huống đôi bên cùng có lợi với người “đi chung xe”.
Vấn đề xem xét rắc rối hơn một chút, nhưng giải pháp rất phổ biến trong lĩnh vực blockchain và đó là phân quyền. Một nhóm người là nhà cung cấp dịch vụ, tốt hơn là chỉ có một nhà cung cấp dịch vụ; bất kỳ ai cũng có thể là nhà cung cấp dịch vụ, điều này tốt hơn là một nhóm người cố định. Ở cách chơi thứ hai, nếu tất cả các nhà cung cấp dịch vụ đều không tốt, bạn cũng có thể tự mình làm nhà cung cấp dịch vụ hoặc trực tiếp đến L1 để bắt đầu phân xử.
Gian lận là một chút khó khăn hơn. Có thể chia thành hai câu hỏi—một là làm thế nào để xác định gian lận và hai là làm thế nào để ngăn chặn gian lận.
Trước hết, để xác định gian lận, chúng ta cần biết dữ liệu giao dịch (Giao dịch) của mọi người, trạng thái trước giao dịch (Trạng thái), để tính toán trạng thái mới (Trạng thái ') sau giao dịch và so sánh với trạng thái mới được lưu trữ trên chuỗi nhà cung cấp dịch vụ, nếu giống nhau có nghĩa là nhà cung cấp dịch vụ trung thực, ngược lại có nghĩa là anh ta nói dối. Tuy nhiên, chúng tôi không biết dữ liệu giao dịch vì chúng không trực tuyến. Do đó, chúng ta chỉ có thể hoài nghi mà không thể đánh giá nhà cung cấp dịch vụ có trung thực hay không.
Khi đó, cách tốt nhất để ngăn chặn gian lận là làm sao để gian lận không thể xảy ra, điều này tương đối khó, trừ khi tính toán của nhà cung cấp dịch vụ được kiểm tra mọi lúc trên chuỗi, nhưng theo cách này, sẽ không có lợi cho " đi chung xe". Vì vậy, chúng tôi chỉ có thể lùi một bước, để chi phí gian lận rất cao và khiến các nhà cung cấp dịch vụ phải có da trong trò chơi, chẳng hạn như trả tiền đặt cọc (Stake), số tiền này sẽ bị tịch thu nếu gian lận bị phát hiện. (Phương pháp này được gọi là đồng thuận xã hội, thuộc về bảo mật dựa trên trò chơi và cũng được đề cập trong “Tuần số 3;”.)
Rollup 2.0 không tệ, nhưng vấn đề xác định gian lận không được giải quyết.
Theo suy luận trước đó, để xác định gian lận, chúng ta phải biết dữ liệu giao dịch, vì vậy phần dữ liệu này phải nằm trên cùng một chuỗi với dữ liệu trạng thái.
Ai sẽ phát hiện ra họ là lừa đảo? Rõ ràng, đây khó có thể là người dùng bình thường, bởi không ai có thể theo dõi mọi động thái của nhà cung cấp dịch vụ 7;x; 24/24, nên chỉ có thể là một “thợ săn tiền thưởng” (Validator) chuyên nghiệp. Nếu một “thợ săn tiền thưởng” báo cáo gian lận trong vòng 7 ngày sau khi nhà cung cấp dịch vụ “gửi lệnh” và xác minh rằng đó là sự thật, giao dịch sẽ bị hủy bỏ và nhà cung cấp dịch vụ sẽ bị trừng phạt. Tất nhiên, cũng như vậy, “thợ săn tiền thưởng” cũng cần có những ưu đãi, chẳng hạn sau khi phát hiện gian lận, một phần tiền đặt cọc của nhà cung cấp dịch vụ sẽ được chuyển cho “thợ săn tiền thưởng” (chỉ một phần thôi, để tránh sự thông đồng giữa các bên). nhà cung cấp dịch vụ và thợ săn tiền thưởng).
Ở giai đoạn Rollup 3.0, toàn bộ giải pháp đã có thể chạy trơn tru nhưng chi phí mới đã được đưa ra. Chi phí cho đến nay bao gồm:
Hãy xem những chi phí nào có thể được tối ưu hóa.
Dữ liệu giao dịch
Theo một cách cụ thể, nhiều giao dịch được tổng hợp lại với nhau và dung lượng chiếm dụng có thể nhỏ hơn tổng dung lượng chiếm dụng của mỗi giao dịch.
Lấy giao dịch chuyển ETH đơn giản nhất làm ví dụ, chúng tôi phân tách thành phần nội dung của từng giao dịch và chúng tôi có thể thấy rằng không gian chữ ký chiếm tỷ lệ lớn nhất. Chúng tôi có thể kết hợp chữ ký của tất cả các giao dịch thành một (Tổng hợp khóa), giúp tiết kiệm rất nhiều chi phí lưu trữ (tương tự như Schnorr trong Bitcoin). Ngoài ra, chúng ta cũng có thể tối ưu hóa các phần khác, chẳng hạn như loại bỏ Nonce và chọn “béo và gầy” càng nhiều càng tốt khi “đi chung xe” và “người đi chung xe” phù hợp hoàn hảo để tối đa hóa việc sử dụng "xe " không gian.
nguồn:
Chỉ ba hoặc hai lần, kích thước của mỗi giao dịch chuyển ETH đã giảm từ 112 byte xuống 12 byte, gần bằng 1/10 so với trước đó; tất nhiên, có những cách khác để nén dữ liệu giao dịch hơn nữa.
Trong hoạt động thực tế, chúng ta có thể cài đặt một phương thức như vậy trong hợp đồng được triển khai trên chuỗi:
hàm storeTxData(byte dữ liệu calldata) bên ngoài {;// không làm gì}
Sau đó, mỗi khi “đi chung xe” thành công, dữ liệu giao dịch được hợp nhất và nén được chuyển vào phương thức này dưới dạng calldata. Dữ liệu cuộc gọi không cần phải được lưu trữ vĩnh viễn và sau Giai đoạn thử thách công khai đồng thuận xã hội (Giai đoạn thử thách), sẽ không có vấn đề gì nếu nó bị cắt bớt (Prune); bản thân giá đã rất thấp và sẽ rẻ hơn khi triển khai Các EIP như Danksharding và Data Blob, hình thức áp dụng L1 này vào phân phối lưu trữ dữ liệu (Data Availability) cũng sẽ bài bản hơn.
dữ liệu trạng thái
Giờ đây, dữ liệu giao dịch đã được tải lên chuỗi, bất kỳ ai cũng có thể tính toán trạng thái được cập nhật thông qua dữ liệu giao dịch và dữ liệu trạng thái không quá cần thiết. Chúng tôi chỉ có thể giữ Gốc Merkel của dữ liệu trạng thái, được sử dụng để cho phép người dùng thông thường (“người đi chung xe”) đăng ký rút tiền trực tiếp tới L1 khi nhà cung cấp dịch vụ không hợp tác và dựa vào Bằng chứng Merkel để chứng minh rằng họ có tiền trong tài khoản của họ.
Chi phí phân xử gian lận
Khi “thợ săn tiền thưởng” báo cáo gian lận cho nhà cung cấp dịch vụ, việc tính toán hợp đồng trên chuỗi (Phát lại) được thực hiện một lần và kết quả trạng thái được so sánh.Điều này khả thi về mặt lý thuyết. Tuy nhiên, chi phí để làm như vậy không hề thấp (mặc dù nó đã tốt rồi), và thứ hai là tổng Gas của các giao dịch có trong “danh sách đi chung xe” Rollup có thể vượt quá giới hạn gas của Ethereum, khiến điều đó là không thể. để xác minh.
Do đó, trọng tài cần phải giảm gánh nặng và cách để giảm gánh nặng đương nhiên là đưa các hoạt động tính toán không cần thiết ra khỏi chuỗi. Một trong những giải pháp được gọi là Chứng minh tương tác, quy trình chung như sau:
(Trong toàn bộ quá trình, nếu một bên không trả lời trong thời gian chờ, bên đó sẽ thất bại.)
Bằng cách này, chi phí trọng tài trên toàn bộ chuỗi là rất, rất thấp.
Phải nói rằng, chúng tôi đã xây dựng xong một giải pháp Rollup. Bởi vì sơ đồ này mặc định rằng nhà cung cấp dịch vụ trung thực, trừ khi có báo cáo “thợ săn tiền thưởng”, phe này được gọi là tổng hợp của những người lạc quan, cái gọi là Tổng hợp lạc quan.
Vậy Rollup 4.0 của chúng tôi có phải là giải pháp tốt nhất không?
Sau nhiều lần lặp lại của chúng tôi, Rollup 4.0 vẫn còn một số điểm không hoàn hảo:
Có giải pháp nào có thể làm cho gian lận trở nên bất khả thi, làm cho tính hữu hạn (Finality) nhanh hơn, làm cho ít dữ liệu cần tải lên chuỗi hơn và làm cho việc mở rộng trở nên lớn hơn không? Tôi không muốn quá nhiều, nhưng có một loại giải pháp có thể thỏa mãn hầu hết mọi trí tưởng tượng — Zero Knowledge Rollup (viết tắt là ZK-Rollup).
ZK-Rollup là một ý tưởng Rollup sử dụng bằng chứng không kiến thức (ZKP). Cái gọi là ZKP đề cập đến công nghệ thuyết phục bên kia rằng bạn biết thông tin này mà không tiết lộ bất kỳ thông tin nhạy cảm nào. Để giải thích về ZKP, có hai ví dụ yêu thích của tôi:
*Hãy tưởng tượng ở một thị trấn châu Âu thời trung cổ và tôi có một bản đồ kho báu với một kho báu được đánh dấu trên đó. Để chứng minh với bạn rằng tôi có bản đồ kho báu, nhưng không cho bạn biết vị trí chính xác của kho báu, tôi bịt mắt bạn, kéo bạn vào xe ngựa và lái xe quanh thị trấn trong nửa giờ để chắc chắn rằng bạn mất phương hướng, Cuối cùng cũng đến đích, xuống xe và cho bạn xem kho báu, sau đó đưa bạn quay trở lại. Đây là một hình thức ngây thơ của ZKP.
Nói một cách ít khắt khe hơn, ý tưởng cốt lõi của ZKP là trước tiên người chứng minh (Prover) che giấu kiến thức bí mật, “cam kết” (Commit), sau đó người xác minh (Verifier) bắt đầu thử thách ngẫu nhiên (Challenge). nếu anh ta có thể vượt qua thử thách thành công, thì khả năng cao là anh ta có tri thức bí mật tương ứng.
ZKP phải đáp ứng 3 yêu cầu:
Để đáp ứng ba yêu cầu này, ZKP sử dụng nhiều bài toán NP khác nhau, bao gồm phân tách số nguyên tố đơn giản nhất và logarit rời rạc (chẳng hạn như Schnorr is), v.v.
ZKP không phải là công nghệ sinh ra cho blockchain, nhưng nó có thể được sử dụng để mở rộng L2, chủ yếu là do một ZKP tốt có các đặc điểm hữu ích sau:
Bằng cách sử dụng các tính năng này, giải pháp Rollup của chúng tôi có thể:
Tất nhiên, bất kỳ cơ chế bảo mật nào cũng sẽ có các điều kiện tiên quyết tiềm năng và ZKP không phải là thuốc chữa bách bệnh cho chuỗi khối. ZKP hiện nay vẫn còn nhiều hạn chế cần từng bước khắc phục như:
nguồn:
Đây là lý do tại sao, trong ZK-Rollup, một lĩnh vực mở rộng hướng tới tương lai, mọi tiến bộ đều đáng khen ngợi và hài lòng.
nguồn:
Về tương lai của việc mở rộng dung lượng, tác giả tin rằng so với việc mở rộng dung lượng riêng của L1, thiết kế phân lớp bao gồm Rollup là một ý tưởng đáng tin cậy hơn. Mô đun hóa, mỗi lớp giải quyết các mối quan tâm của từng lớp, điều này ít rủi ro hơn so với việc xếp chồng liên tục trên L1 vốn đã “nguyên khối”, hơn nữa, việc phân cấp L1 bên dưới do mở rộng dung lượng về mặt lý thuyết khó có thể xảy ra. nó lên. Hơn nữa, ý tưởng thiết kế theo lớp này dường như có các ứng dụng thành công trong các lĩnh vực khác ngoài chuỗi khối. Quan điểm chưa hẳn đúng nhưng đây là nhận thức hiện tại của tác giả.
Bài viết này cố gắng sắp xếp các lý do về suy nghĩ và thiết kế của giải pháp mở rộng Tổng số theo một giọng điệu bất khả tri của dự án. Do trình độ có hạn, đôi chỗ còn hơi phiến diện, có thể không những không giải thích được tại chỗ mà còn tăng thêm độ khó hiểu; là một trường dọc luôn thay đổi từng ngày, tác giả có thể không ý thức được của và tính đến nhiều diễn biến mới trong thời gian. Chân thành chào đón bạn bè để sửa chữa và giao tiếp.