Đặc biệt cảm ơn Karl Floersch, Georgios Konstantopoulos và Martin Koppelmann vì những phản hồi, đánh giá và thảo luận.
Plasma là một loại giải pháp mở rộng quy mô blockchain cho phép tất cả dữ liệu và tính toán, ngoại trừ tiền gửi, rút tiền và gốc Merkle, được giữ ở ngoài chuỗi. Điều này mở ra cơ hội đạt được những lợi ích về khả năng mở rộng rất lớn mà không bị cản trở bởi tính sẵn có của dữ liệu trên chuỗi. Plasma được phát minh lần đầu tiên vào năm 2017 và đã chứng kiến nhiều lần lặp lại vào năm 2018, đáng chú ý nhất là Plasma khả thi tối thiểu, Tiền mặt plasma, Dòng tiền plasma và Plasma Prime. Thật không may, Plasma phần lớn đã bị thay thế bởi các bản tổng hợp , vì những lý do chủ yếu liên quan đến (i) chi phí lưu trữ dữ liệu phía khách hàng lớn và (ii) những hạn chế cơ bản của Plasma khiến nó <a href="https://medium .com/@kelvinfichter/why-is-evm-on-plasma-hard-bf2d99c48df7">khó có thể khái quát hóa ngoài các khoản thanh toán .
Sự ra đời của các bằng chứng xác thực (hay còn gọi là ZK-SNARK) cho chúng ta lý do để suy nghĩ lại về quyết định này. Thách thức lớn nhất trong việc khiến Plasma hoạt động được trong thanh toán, lưu trữ dữ liệu phía khách hàng, có thể được giải quyết một cách hiệu quả bằng bằng chứng hợp lệ. Ngoài ra, bằng chứng hợp lệ cung cấp một loạt công cụ cho phép chúng tôi tạo chuỗi giống như Plasma chạy EVM. Các đảm bảo về bảo mật của Plasma sẽ không áp dụng cho tất cả người dùng, vì những lý do cơ bản đằng sau việc không thể mở rộng các trò chơi thoát kiểu Plasma sang nhiều loại ứng dụng phức tạp vẫn còn tồn tại. Tuy nhiên, trên thực tế, một tỷ lệ rất lớn tài sản vẫn có thể được giữ an toàn.
Bài đăng này mô tả cách các ý tưởng Plasma có thể được mở rộng để thực hiện điều đó.
Phiên bản dễ hiểu nhất của Plasma là Plasma Cash. Plasma Cash hoạt động bằng cách xử lý từng đồng tiền riêng lẻ như một NFT riêng biệt và theo dõi lịch sử riêng biệt cho từng đồng tiền. Chuỗi Plasma có một người vận hành, người chịu trách nhiệm tạo và xuất bản các khối thường xuyên. Các giao dịch trong mỗi khối được lưu trữ dưới dạng cây Merkle thưa thớt: nếu một giao dịch chuyển quyền sở hữu đồng tiền k, nó sẽ xuất hiện ở vị trí k của cây. Khi người vận hành chuỗi Plasma tạo một khối mới, họ xuất bản gốc của cây Merkle thành chuỗi và gửi trực tiếp đến từng người dùng các nhánh Merkle tương ứng với số tiền mà người dùng đó sở hữu.
Giả sử đây là ba cây giao dịch cuối cùng trong chuỗi Plasma Cash. Sau đó, giả sử tất cả các cây trước đó đều hợp lệ, chúng ta biết rằng Eve hiện sở hữu đồng xu 1, David sở hữu đồng xu 4 và George sở hữu đồng xu 6.
Rủi ro chính trong bất kỳ hệ thống Plasma nào là người vận hành hoạt động không đúng cách. Điều này có thể xảy ra theo hai cách:
Nếu nhà điều hành có hành vi sai trái liên quan đến tài sản của người dùng, người dùng có trách nhiệm thoát ngay lập tức (cụ thể là trong vòng 7 ngày). Khi người dùng (“người thoát”) thoát ra, họ cung cấp một nhánh Merkle chứng minh sự bao gồm của giao dịch đã chuyển số tiền đó từ chủ sở hữu trước đó sang họ. Điều này bắt đầu giai đoạn thử thách kéo dài 7 ngày, trong đó những người khác có thể thách thức lối thoát đó bằng cách cung cấp bằng chứng Merkle về một trong ba điều sau:
Với những quy tắc này, bất kỳ ai sở hữu đồng xu k cần phải xem tất cả các nhánh Merkle của vị trí k trong tất cả các cây lịch sử trong tuần qua để chắc chắn rằng họ thực sự sở hữu đồng xu k và có thể thoát khỏi nó. Họ cần lưu trữ tất cả các nhánh chứa tài sản chuyển nhượng để có thể ứng phó với các thách thức và thoát ra một cách an toàn với đồng tiền của mình.
Thiết kế trên phù hợp với NFT. Tuy nhiên, phổ biến hơn nhiều so với NFT là các token có thể thay thế được, như ETH và USDC. Một cách để áp dụng Plasma Cash cho các token có thể thay thế được là chỉ cần tạo ra từng mệnh giá nhỏ của một đồng xu (ví dụ: 0,01 ETH) một NFT riêng. Thật không may, chi phí gas để thoát ra sẽ quá cao nếu chúng ta làm điều này.
Một giải pháp là tối ưu hóa bằng cách xử lý nhiều đồng tiền liền kề như một đơn vị duy nhất, có thể chuyển hoặc thoát tất cả cùng một lúc. Có hai cách để làm điều này:
Tuy nhiên, cả hai cách tiếp cận này đều gặp phải vấn đề phân mảnh: nếu bạn nhận được 0,001 ETH mỗi người từ hàng trăm người đang mua cà phê của bạn, thì bạn sẽ có 0,001 ETH ở nhiều nơi trong cây và do đó thực tế là bạn sẽ thoát khỏi ETH đó vẫn sẽ yêu cầu phải nộp nhiều lối thoát riêng biệt, khiến phí gas trở nên quá cao. Các giao thức chống phân mảnh đã được phát triển nhưng rất khó thực hiện.
Ngoài ra, chúng tôi có thể thiết kế lại hệ thống để tính đến mô hình “đầu ra giao dịch chưa chi tiêu” (UTXO) truyền thống hơn. Khi bạn thoát một đồng xu, bạn sẽ cần cung cấp tuần cuối cùng về lịch sử của những đồng tiền đó và bất kỳ ai cũng có thể thách thức việc thoát của bạn bằng cách chứng minh rằng những đồng tiền lịch sử đó đã được thoát ra.
Việc rút 0,2 ETH UTXO ở phía dưới bên phải có thể bị hủy bằng cách hiển thị việc rút bất kỳ UTXO nào trong lịch sử của nó, được hiển thị bằng màu xanh lá cây. Đặc biệt lưu ý rằng UTXO ở giữa bên trái và dưới cùng bên trái là tổ tiên, nhưng UTXO ở trên cùng bên trái thì không. Cách tiếp cận này tương tự như ý tưởng tô màu theo thứ tự từ các giao thức tiền xu màu vào khoảng năm 2013.
Có rất nhiều kỹ thuật để làm điều này. Trong mọi trường hợp, mục tiêu là theo dõi một số quan niệm về thế nào là “cùng một đồng tiền” ở các thời điểm khác nhau trong lịch sử, nhằm ngăn chặn “cùng một đồng tiền” bị rút hai lần.
Thật không may, việc khái quát hóa các khoản thanh toán cho EVM khó hơn nhiều. Một thách thức chính là nhiều đối tượng trạng thái trong EVM không có “chủ sở hữu” rõ ràng. Tính bảo mật của Plasma phụ thuộc vào việc mỗi đối tượng có một chủ sở hữu, người có trách nhiệm theo dõi và đảm bảo dữ liệu của chuỗi có sẵn và thoát khỏi đối tượng đó nếu có vấn đề gì xảy ra. Tuy nhiên, nhiều ứng dụng Ethereum không hoạt động theo cách này. Ví dụ: nhóm thanh khoản Uniswap không có một chủ sở hữu duy nhất.
Một thách thức khác là EVM không cố gắng hạn chế sự phụ thuộc. ETH được giữ trong tài khoản A tại khối N có thể đến từ bất kỳ đâu trong khối N-1. Để thoát khỏi trạng thái nhất quán, chuỗi EVM Plasma sẽ cần phải có trò chơi thoát, trong trường hợp cực đoan, ai đó muốn thoát bằng cách sử dụng thông tin từ khối N có thể phải trả phí để xuất bản toàn bộ trạng thái khối N trên chuỗi : chi phí xăng lên tới hàng triệu đô la. Các sơ đồ Plasma dựa trên UTXO không gặp phải vấn đề này: mỗi người dùng có thể thoát tài sản của mình khỏi bất kỳ khối nào là khối gần đây nhất mà họ có dữ liệu.
Thách thức thứ ba là sự phụ thuộc không giới hạn trong EVM khiến việc đưa ra các khuyến khích phù hợp để chứng minh tính hợp lệ trở nên khó khăn hơn nhiều. Hiệu lực của bất kỳ trạng thái nào đều phụ thuộc vào mọi thứ khác, và do đó, việc chứng minh bất kỳ điều gì cũng đòi hỏi phải chứng minh mọi thứ. Việc phân loại các lỗi trong tình huống như vậy thường không thể được khuyến khích tương thích do vấn đề về tính sẵn có của dữ liệu. Một vấn đề đặc biệt khó chịu là chúng tôi mất đi sự đảm bảo, hiện có trong các hệ thống dựa trên UTXO, rằng trạng thái của đối tượng không thể thay đổi nếu không có sự đồng ý của chủ sở hữu nó. Sự đảm bảo này cực kỳ hữu ích, vì nó có nghĩa là chủ sở hữu luôn biết về trạng thái có thể chứng minh mới nhất của tài sản của họ và đơn giản hóa việc thoát trò chơi. Không có nó, việc tạo ra các trò chơi thoát sẽ trở nên khó khăn hơn nhiều.
Điều cơ bản nhất mà bằng chứng hợp lệ có thể làm để cải thiện thiết kế chuỗi Plasma là chứng minh tính hợp lệ của từng khối Plasma trên chuỗi. Điều này giúp đơn giản hóa rất nhiều không gian thiết kế: nó có nghĩa là cuộc tấn công duy nhất từ người vận hành mà chúng ta phải lo lắng là các khối không có sẵn chứ không phải các khối không hợp lệ. Ví dụ, trong Plasma Cash, nó loại bỏ sự lo lắng về những thách thức trong lịch sử. Điều này làm giảm trạng thái mà người dùng cần tải xuống, từ một nhánh trên mỗi khối trong tuần trước xuống còn một nhánh trên mỗi nội dung.
Ngoài ra, việc rút tiền từ trạng thái gần đây nhất (trong trường hợp phổ biến là nhà điều hành trung thực, tất cả các lần rút tiền sẽ từ trạng thái gần đây nhất) không phải chịu những thách thức của chủ sở hữu không phải là chủ sở hữu mới nhất, và do đó, trong chuỗi Plasma đã được chứng minh tính hợp lệ, chẳng hạn như việc rút tiền sẽ không phải chịu bất kỳ thách thức nào cả. Điều này có nghĩa là, trong trường hợp bình thường, việc rút tiền có thể được thực hiện ngay lập tức!
Trong trường hợp EVM, bằng chứng hợp lệ cũng cho phép chúng tôi làm điều gì đó thông minh: chúng có thể được sử dụng để triển khai biểu đồ UTXO song song cho mã thông báo ETH và ERC20, đồng thời chứng minh SNARK tương đương giữa biểu đồ UTXO và trạng thái EVM. Khi đã có được điều đó, bạn có thể triển khai hệ thống Plasma “thông thường” trên biểu đồ UTXO.
Điều này cho phép chúng ta tránh được nhiều sự phức tạp của EVM. Ví dụ: thực tế là trong hệ thống dựa trên tài khoản, ai đó có thể chỉnh sửa tài khoản của bạn mà không cần sự đồng ý của bạn (bằng cách gửi tiền xu và do đó tăng số dư của tài khoản) không thành vấn đề, bởi vì cấu trúc Plasma không vượt quá trạng thái EVM mà là hơn trạng thái UTXO hoạt động song song với EVM, trong đó mọi đồng tiền bạn nhận được sẽ là các đối tượng riêng biệt.
Đã có những kế hoạch đơn giản hơn được đề xuất để tạo ra một “EVM plasma”, ví dụ: Plasma Free và trước đó là bài đăng này từ năm 2019. Trong các kế hoạch này, bất kỳ ai cũng có thể gửi tin nhắn trên L1 để buộc nhà điều hành thực hiện giao dịch hoặc cung cấp một nhánh cụ thể của tiểu bang. Nếu người vận hành không thực hiện được điều này, chuỗi sẽ bắt đầu hoàn nguyên các khối. Chuỗi sẽ ngừng hoàn nguyên sau khi ai đó đăng bản sao đầy đủ của toàn bộ trạng thái hoặc ít nhất là tất cả dữ liệu mà người dùng đã gắn cờ là có khả năng bị thiếu. Việc rút tiền có thể yêu cầu đăng một khoản tiền thưởng, khoản tiền thưởng này sẽ trả cho phần chi phí gas của người dùng đó khi ai đó đăng một lượng lớn dữ liệu như vậy.
Các kế hoạch như thế này có điểm yếu là chúng không cho phép rút tiền ngay lập tức trong trường hợp thông thường, bởi vì luôn có khả năng chuỗi sẽ cần hoàn nguyên trạng thái mới nhất.
Các chương trình như thế này rất mạnh mẽ nhưng KHÔNG thể cung cấp sự đảm bảo an ninh đầy đủ cho tất cả người dùng. Trường hợp mà chúng bị phá vỡ rõ ràng nhất là tình huống trong đó một đối tượng nhà nước cụ thể không có “chủ sở hữu” kinh tế rõ ràng.
Chúng ta hãy xem xét trường hợp CDP (vị trí nợ thế chấp), một hợp đồng thông minh trong đó người dùng có tiền bị khóa và chỉ có thể được giải phóng sau khi người dùng trả nợ. Giả sử người dùng có 1 ETH (~$2000 tính đến thời điểm viết bài này) bị khóa trong CDP với khoản nợ 1000 DAI. Bây giờ, chuỗi Plasma ngừng xuất bản các khối và người dùng từ chối thoát. Người dùng không bao giờ có thể thoát ra được. Giờ đây, người dùng có một tùy chọn miễn phí: nếu giá ETH giảm xuống dưới 1000 đô la, họ sẽ bỏ đi và quên CDP, và nếu giá ETH vẫn ở trên, cuối cùng họ sẽ yêu cầu điều đó. Trung bình, một người dùng độc hại như vậy sẽ kiếm được tiền từ việc này.
Một ví dụ khác là hệ thống bảo mật, vd. Tiền mặt Tornado hoặc Nhóm riêng tư. Hãy xem xét một hệ thống bảo mật với năm người gửi tiền:
ZK-SNARK trong hệ thống bảo mật giữ mối liên kết giữa chủ sở hữu của một đồng xu vào hệ thống và chủ sở hữu của đồng xu đó được ẩn đi.
Giả sử chỉ có màu cam đã rút và tại thời điểm đó, nhà điều hành chuỗi Plasma ngừng xuất bản dữ liệu. Cũng giả sử rằng chúng ta sử dụng phương pháp biểu đồ UTXO với quy tắc nhập trước xuất trước, để mỗi đồng xu được khớp với đồng xu ngay bên dưới nó. Sau đó, Orange có thể rút đồng xu đã trộn trước và sau khi trộn, và hệ thống sẽ coi đó là hai đồng tiền riêng biệt. Nếu màu xanh cố gắng rút đồng xu đã trộn sẵn của họ, trạng thái gần đây hơn của màu cam sẽ thay thế nó; trong khi đó, màu xanh sẽ không có thông tin để rút đồng xu sau trộn của họ.
Điều này có thể được khắc phục nếu bạn cho phép bốn người gửi tiền khác tự rút hợp đồng quyền riêng tư (sẽ thay thế tiền gửi), sau đó rút tiền ra trên L1. Tuy nhiên, việc thực hiện một cơ chế như vậy trên thực tế đòi hỏi nỗ lực bổ sung từ phía những người phát triển hệ thống bảo mật.
Ngoài ra còn có những cách khác để giải quyết quyền riêng tư, ví dụ. cách tiếp cận Intmax , bao gồm việc đặt một vài byte theo kiểu cuộn chuỗi cùng với toán tử giống Plasma để truyền thông tin giữa những người dùng cá nhân.
Các vị trí LP của Uniswap có một vấn đề tương tự: nếu bạn giao dịch USDC lấy ETH ở vị thế Uniswap, bạn có thể thử rút USDC trước giao dịch và ETH sau giao dịch của mình. Nếu bạn thông đồng với nhà điều hành chuỗi Plasma, nhà cung cấp thanh khoản và những người dùng khác sẽ không có quyền truy cập vào trạng thái sau giao dịch, do đó họ sẽ không thể rút USDC sau giao dịch của mình. Cần phải có logic đặc biệt để ngăn chặn những tình huống như thế này.
Vào năm 2023, Plasma là một không gian thiết kế bị đánh giá thấp. Bản tổng hợp vẫn là tiêu chuẩn vàng và có các đặc tính bảo mật không thể so sánh được. Điều này đặc biệt đúng từ góc độ trải nghiệm của nhà phát triển: không gì có thể sánh được với sự đơn giản của việc nhà phát triển ứng dụng thậm chí không cần phải suy nghĩ về biểu đồ quyền sở hữu và các luồng khuyến khích trong ứng dụng của họ.
Tuy nhiên, Plasma cho phép chúng tôi hoàn toàn bỏ qua câu hỏi về tính khả dụng của dữ liệu, giúp giảm đáng kể phí giao dịch. Plasma có thể là một bản nâng cấp bảo mật đáng kể cho các chuỗi mà lẽ ra chỉ là hợp lệ. Việc ZK-EVM cuối cùng đã thành hiện thực trong năm nay tạo cơ hội tuyệt vời để khám phá lại không gian thiết kế này và đưa ra các công trình hiệu quả hơn nữa để đơn giản hóa trải nghiệm của nhà phát triển và bảo vệ tiền của người dùng.
Đặc biệt cảm ơn Karl Floersch, Georgios Konstantopoulos và Martin Koppelmann vì những phản hồi, đánh giá và thảo luận.
Plasma là một loại giải pháp mở rộng quy mô blockchain cho phép tất cả dữ liệu và tính toán, ngoại trừ tiền gửi, rút tiền và gốc Merkle, được giữ ở ngoài chuỗi. Điều này mở ra cơ hội đạt được những lợi ích về khả năng mở rộng rất lớn mà không bị cản trở bởi tính sẵn có của dữ liệu trên chuỗi. Plasma được phát minh lần đầu tiên vào năm 2017 và đã chứng kiến nhiều lần lặp lại vào năm 2018, đáng chú ý nhất là Plasma khả thi tối thiểu, Tiền mặt plasma, Dòng tiền plasma và Plasma Prime. Thật không may, Plasma phần lớn đã bị thay thế bởi các bản tổng hợp , vì những lý do chủ yếu liên quan đến (i) chi phí lưu trữ dữ liệu phía khách hàng lớn và (ii) những hạn chế cơ bản của Plasma khiến nó <a href="https://medium .com/@kelvinfichter/why-is-evm-on-plasma-hard-bf2d99c48df7">khó có thể khái quát hóa ngoài các khoản thanh toán .
Sự ra đời của các bằng chứng xác thực (hay còn gọi là ZK-SNARK) cho chúng ta lý do để suy nghĩ lại về quyết định này. Thách thức lớn nhất trong việc khiến Plasma hoạt động được trong thanh toán, lưu trữ dữ liệu phía khách hàng, có thể được giải quyết một cách hiệu quả bằng bằng chứng hợp lệ. Ngoài ra, bằng chứng hợp lệ cung cấp một loạt công cụ cho phép chúng tôi tạo chuỗi giống như Plasma chạy EVM. Các đảm bảo về bảo mật của Plasma sẽ không áp dụng cho tất cả người dùng, vì những lý do cơ bản đằng sau việc không thể mở rộng các trò chơi thoát kiểu Plasma sang nhiều loại ứng dụng phức tạp vẫn còn tồn tại. Tuy nhiên, trên thực tế, một tỷ lệ rất lớn tài sản vẫn có thể được giữ an toàn.
Bài đăng này mô tả cách các ý tưởng Plasma có thể được mở rộng để thực hiện điều đó.
Phiên bản dễ hiểu nhất của Plasma là Plasma Cash. Plasma Cash hoạt động bằng cách xử lý từng đồng tiền riêng lẻ như một NFT riêng biệt và theo dõi lịch sử riêng biệt cho từng đồng tiền. Chuỗi Plasma có một người vận hành, người chịu trách nhiệm tạo và xuất bản các khối thường xuyên. Các giao dịch trong mỗi khối được lưu trữ dưới dạng cây Merkle thưa thớt: nếu một giao dịch chuyển quyền sở hữu đồng tiền k, nó sẽ xuất hiện ở vị trí k của cây. Khi người vận hành chuỗi Plasma tạo một khối mới, họ xuất bản gốc của cây Merkle thành chuỗi và gửi trực tiếp đến từng người dùng các nhánh Merkle tương ứng với số tiền mà người dùng đó sở hữu.
Giả sử đây là ba cây giao dịch cuối cùng trong chuỗi Plasma Cash. Sau đó, giả sử tất cả các cây trước đó đều hợp lệ, chúng ta biết rằng Eve hiện sở hữu đồng xu 1, David sở hữu đồng xu 4 và George sở hữu đồng xu 6.
Rủi ro chính trong bất kỳ hệ thống Plasma nào là người vận hành hoạt động không đúng cách. Điều này có thể xảy ra theo hai cách:
Nếu nhà điều hành có hành vi sai trái liên quan đến tài sản của người dùng, người dùng có trách nhiệm thoát ngay lập tức (cụ thể là trong vòng 7 ngày). Khi người dùng (“người thoát”) thoát ra, họ cung cấp một nhánh Merkle chứng minh sự bao gồm của giao dịch đã chuyển số tiền đó từ chủ sở hữu trước đó sang họ. Điều này bắt đầu giai đoạn thử thách kéo dài 7 ngày, trong đó những người khác có thể thách thức lối thoát đó bằng cách cung cấp bằng chứng Merkle về một trong ba điều sau:
Với những quy tắc này, bất kỳ ai sở hữu đồng xu k cần phải xem tất cả các nhánh Merkle của vị trí k trong tất cả các cây lịch sử trong tuần qua để chắc chắn rằng họ thực sự sở hữu đồng xu k và có thể thoát khỏi nó. Họ cần lưu trữ tất cả các nhánh chứa tài sản chuyển nhượng để có thể ứng phó với các thách thức và thoát ra một cách an toàn với đồng tiền của mình.
Thiết kế trên phù hợp với NFT. Tuy nhiên, phổ biến hơn nhiều so với NFT là các token có thể thay thế được, như ETH và USDC. Một cách để áp dụng Plasma Cash cho các token có thể thay thế được là chỉ cần tạo ra từng mệnh giá nhỏ của một đồng xu (ví dụ: 0,01 ETH) một NFT riêng. Thật không may, chi phí gas để thoát ra sẽ quá cao nếu chúng ta làm điều này.
Một giải pháp là tối ưu hóa bằng cách xử lý nhiều đồng tiền liền kề như một đơn vị duy nhất, có thể chuyển hoặc thoát tất cả cùng một lúc. Có hai cách để làm điều này:
Tuy nhiên, cả hai cách tiếp cận này đều gặp phải vấn đề phân mảnh: nếu bạn nhận được 0,001 ETH mỗi người từ hàng trăm người đang mua cà phê của bạn, thì bạn sẽ có 0,001 ETH ở nhiều nơi trong cây và do đó thực tế là bạn sẽ thoát khỏi ETH đó vẫn sẽ yêu cầu phải nộp nhiều lối thoát riêng biệt, khiến phí gas trở nên quá cao. Các giao thức chống phân mảnh đã được phát triển nhưng rất khó thực hiện.
Ngoài ra, chúng tôi có thể thiết kế lại hệ thống để tính đến mô hình “đầu ra giao dịch chưa chi tiêu” (UTXO) truyền thống hơn. Khi bạn thoát một đồng xu, bạn sẽ cần cung cấp tuần cuối cùng về lịch sử của những đồng tiền đó và bất kỳ ai cũng có thể thách thức việc thoát của bạn bằng cách chứng minh rằng những đồng tiền lịch sử đó đã được thoát ra.
Việc rút 0,2 ETH UTXO ở phía dưới bên phải có thể bị hủy bằng cách hiển thị việc rút bất kỳ UTXO nào trong lịch sử của nó, được hiển thị bằng màu xanh lá cây. Đặc biệt lưu ý rằng UTXO ở giữa bên trái và dưới cùng bên trái là tổ tiên, nhưng UTXO ở trên cùng bên trái thì không. Cách tiếp cận này tương tự như ý tưởng tô màu theo thứ tự từ các giao thức tiền xu màu vào khoảng năm 2013.
Có rất nhiều kỹ thuật để làm điều này. Trong mọi trường hợp, mục tiêu là theo dõi một số quan niệm về thế nào là “cùng một đồng tiền” ở các thời điểm khác nhau trong lịch sử, nhằm ngăn chặn “cùng một đồng tiền” bị rút hai lần.
Thật không may, việc khái quát hóa các khoản thanh toán cho EVM khó hơn nhiều. Một thách thức chính là nhiều đối tượng trạng thái trong EVM không có “chủ sở hữu” rõ ràng. Tính bảo mật của Plasma phụ thuộc vào việc mỗi đối tượng có một chủ sở hữu, người có trách nhiệm theo dõi và đảm bảo dữ liệu của chuỗi có sẵn và thoát khỏi đối tượng đó nếu có vấn đề gì xảy ra. Tuy nhiên, nhiều ứng dụng Ethereum không hoạt động theo cách này. Ví dụ: nhóm thanh khoản Uniswap không có một chủ sở hữu duy nhất.
Một thách thức khác là EVM không cố gắng hạn chế sự phụ thuộc. ETH được giữ trong tài khoản A tại khối N có thể đến từ bất kỳ đâu trong khối N-1. Để thoát khỏi trạng thái nhất quán, chuỗi EVM Plasma sẽ cần phải có trò chơi thoát, trong trường hợp cực đoan, ai đó muốn thoát bằng cách sử dụng thông tin từ khối N có thể phải trả phí để xuất bản toàn bộ trạng thái khối N trên chuỗi : chi phí xăng lên tới hàng triệu đô la. Các sơ đồ Plasma dựa trên UTXO không gặp phải vấn đề này: mỗi người dùng có thể thoát tài sản của mình khỏi bất kỳ khối nào là khối gần đây nhất mà họ có dữ liệu.
Thách thức thứ ba là sự phụ thuộc không giới hạn trong EVM khiến việc đưa ra các khuyến khích phù hợp để chứng minh tính hợp lệ trở nên khó khăn hơn nhiều. Hiệu lực của bất kỳ trạng thái nào đều phụ thuộc vào mọi thứ khác, và do đó, việc chứng minh bất kỳ điều gì cũng đòi hỏi phải chứng minh mọi thứ. Việc phân loại các lỗi trong tình huống như vậy thường không thể được khuyến khích tương thích do vấn đề về tính sẵn có của dữ liệu. Một vấn đề đặc biệt khó chịu là chúng tôi mất đi sự đảm bảo, hiện có trong các hệ thống dựa trên UTXO, rằng trạng thái của đối tượng không thể thay đổi nếu không có sự đồng ý của chủ sở hữu nó. Sự đảm bảo này cực kỳ hữu ích, vì nó có nghĩa là chủ sở hữu luôn biết về trạng thái có thể chứng minh mới nhất của tài sản của họ và đơn giản hóa việc thoát trò chơi. Không có nó, việc tạo ra các trò chơi thoát sẽ trở nên khó khăn hơn nhiều.
Điều cơ bản nhất mà bằng chứng hợp lệ có thể làm để cải thiện thiết kế chuỗi Plasma là chứng minh tính hợp lệ của từng khối Plasma trên chuỗi. Điều này giúp đơn giản hóa rất nhiều không gian thiết kế: nó có nghĩa là cuộc tấn công duy nhất từ người vận hành mà chúng ta phải lo lắng là các khối không có sẵn chứ không phải các khối không hợp lệ. Ví dụ, trong Plasma Cash, nó loại bỏ sự lo lắng về những thách thức trong lịch sử. Điều này làm giảm trạng thái mà người dùng cần tải xuống, từ một nhánh trên mỗi khối trong tuần trước xuống còn một nhánh trên mỗi nội dung.
Ngoài ra, việc rút tiền từ trạng thái gần đây nhất (trong trường hợp phổ biến là nhà điều hành trung thực, tất cả các lần rút tiền sẽ từ trạng thái gần đây nhất) không phải chịu những thách thức của chủ sở hữu không phải là chủ sở hữu mới nhất, và do đó, trong chuỗi Plasma đã được chứng minh tính hợp lệ, chẳng hạn như việc rút tiền sẽ không phải chịu bất kỳ thách thức nào cả. Điều này có nghĩa là, trong trường hợp bình thường, việc rút tiền có thể được thực hiện ngay lập tức!
Trong trường hợp EVM, bằng chứng hợp lệ cũng cho phép chúng tôi làm điều gì đó thông minh: chúng có thể được sử dụng để triển khai biểu đồ UTXO song song cho mã thông báo ETH và ERC20, đồng thời chứng minh SNARK tương đương giữa biểu đồ UTXO và trạng thái EVM. Khi đã có được điều đó, bạn có thể triển khai hệ thống Plasma “thông thường” trên biểu đồ UTXO.
Điều này cho phép chúng ta tránh được nhiều sự phức tạp của EVM. Ví dụ: thực tế là trong hệ thống dựa trên tài khoản, ai đó có thể chỉnh sửa tài khoản của bạn mà không cần sự đồng ý của bạn (bằng cách gửi tiền xu và do đó tăng số dư của tài khoản) không thành vấn đề, bởi vì cấu trúc Plasma không vượt quá trạng thái EVM mà là hơn trạng thái UTXO hoạt động song song với EVM, trong đó mọi đồng tiền bạn nhận được sẽ là các đối tượng riêng biệt.
Đã có những kế hoạch đơn giản hơn được đề xuất để tạo ra một “EVM plasma”, ví dụ: Plasma Free và trước đó là bài đăng này từ năm 2019. Trong các kế hoạch này, bất kỳ ai cũng có thể gửi tin nhắn trên L1 để buộc nhà điều hành thực hiện giao dịch hoặc cung cấp một nhánh cụ thể của tiểu bang. Nếu người vận hành không thực hiện được điều này, chuỗi sẽ bắt đầu hoàn nguyên các khối. Chuỗi sẽ ngừng hoàn nguyên sau khi ai đó đăng bản sao đầy đủ của toàn bộ trạng thái hoặc ít nhất là tất cả dữ liệu mà người dùng đã gắn cờ là có khả năng bị thiếu. Việc rút tiền có thể yêu cầu đăng một khoản tiền thưởng, khoản tiền thưởng này sẽ trả cho phần chi phí gas của người dùng đó khi ai đó đăng một lượng lớn dữ liệu như vậy.
Các kế hoạch như thế này có điểm yếu là chúng không cho phép rút tiền ngay lập tức trong trường hợp thông thường, bởi vì luôn có khả năng chuỗi sẽ cần hoàn nguyên trạng thái mới nhất.
Các chương trình như thế này rất mạnh mẽ nhưng KHÔNG thể cung cấp sự đảm bảo an ninh đầy đủ cho tất cả người dùng. Trường hợp mà chúng bị phá vỡ rõ ràng nhất là tình huống trong đó một đối tượng nhà nước cụ thể không có “chủ sở hữu” kinh tế rõ ràng.
Chúng ta hãy xem xét trường hợp CDP (vị trí nợ thế chấp), một hợp đồng thông minh trong đó người dùng có tiền bị khóa và chỉ có thể được giải phóng sau khi người dùng trả nợ. Giả sử người dùng có 1 ETH (~$2000 tính đến thời điểm viết bài này) bị khóa trong CDP với khoản nợ 1000 DAI. Bây giờ, chuỗi Plasma ngừng xuất bản các khối và người dùng từ chối thoát. Người dùng không bao giờ có thể thoát ra được. Giờ đây, người dùng có một tùy chọn miễn phí: nếu giá ETH giảm xuống dưới 1000 đô la, họ sẽ bỏ đi và quên CDP, và nếu giá ETH vẫn ở trên, cuối cùng họ sẽ yêu cầu điều đó. Trung bình, một người dùng độc hại như vậy sẽ kiếm được tiền từ việc này.
Một ví dụ khác là hệ thống bảo mật, vd. Tiền mặt Tornado hoặc Nhóm riêng tư. Hãy xem xét một hệ thống bảo mật với năm người gửi tiền:
ZK-SNARK trong hệ thống bảo mật giữ mối liên kết giữa chủ sở hữu của một đồng xu vào hệ thống và chủ sở hữu của đồng xu đó được ẩn đi.
Giả sử chỉ có màu cam đã rút và tại thời điểm đó, nhà điều hành chuỗi Plasma ngừng xuất bản dữ liệu. Cũng giả sử rằng chúng ta sử dụng phương pháp biểu đồ UTXO với quy tắc nhập trước xuất trước, để mỗi đồng xu được khớp với đồng xu ngay bên dưới nó. Sau đó, Orange có thể rút đồng xu đã trộn trước và sau khi trộn, và hệ thống sẽ coi đó là hai đồng tiền riêng biệt. Nếu màu xanh cố gắng rút đồng xu đã trộn sẵn của họ, trạng thái gần đây hơn của màu cam sẽ thay thế nó; trong khi đó, màu xanh sẽ không có thông tin để rút đồng xu sau trộn của họ.
Điều này có thể được khắc phục nếu bạn cho phép bốn người gửi tiền khác tự rút hợp đồng quyền riêng tư (sẽ thay thế tiền gửi), sau đó rút tiền ra trên L1. Tuy nhiên, việc thực hiện một cơ chế như vậy trên thực tế đòi hỏi nỗ lực bổ sung từ phía những người phát triển hệ thống bảo mật.
Ngoài ra còn có những cách khác để giải quyết quyền riêng tư, ví dụ. cách tiếp cận Intmax , bao gồm việc đặt một vài byte theo kiểu cuộn chuỗi cùng với toán tử giống Plasma để truyền thông tin giữa những người dùng cá nhân.
Các vị trí LP của Uniswap có một vấn đề tương tự: nếu bạn giao dịch USDC lấy ETH ở vị thế Uniswap, bạn có thể thử rút USDC trước giao dịch và ETH sau giao dịch của mình. Nếu bạn thông đồng với nhà điều hành chuỗi Plasma, nhà cung cấp thanh khoản và những người dùng khác sẽ không có quyền truy cập vào trạng thái sau giao dịch, do đó họ sẽ không thể rút USDC sau giao dịch của mình. Cần phải có logic đặc biệt để ngăn chặn những tình huống như thế này.
Vào năm 2023, Plasma là một không gian thiết kế bị đánh giá thấp. Bản tổng hợp vẫn là tiêu chuẩn vàng và có các đặc tính bảo mật không thể so sánh được. Điều này đặc biệt đúng từ góc độ trải nghiệm của nhà phát triển: không gì có thể sánh được với sự đơn giản của việc nhà phát triển ứng dụng thậm chí không cần phải suy nghĩ về biểu đồ quyền sở hữu và các luồng khuyến khích trong ứng dụng của họ.
Tuy nhiên, Plasma cho phép chúng tôi hoàn toàn bỏ qua câu hỏi về tính khả dụng của dữ liệu, giúp giảm đáng kể phí giao dịch. Plasma có thể là một bản nâng cấp bảo mật đáng kể cho các chuỗi mà lẽ ra chỉ là hợp lệ. Việc ZK-EVM cuối cùng đã thành hiện thực trong năm nay tạo cơ hội tuyệt vời để khám phá lại không gian thiết kế này và đưa ra các công trình hiệu quả hơn nữa để đơn giản hóa trải nghiệm của nhà phát triển và bảo vệ tiền của người dùng.