Khấu lưu dữ liệu &; Bằng chứng gian lận: Tại sao Plasma không hỗ trợ hợp đồng thông minh

金色财经_

Tác giả: Faust, geek web3

Về lý do tại sao Plasma đã bị chôn vùi trong một thời gian dài và tại sao Vitalik sẽ hỗ trợ mạnh mẽ Rollup, các manh mối chủ yếu chỉ ra hai điểm: triển khai DA off-chain trên chuỗi Ethereum là không đáng tin cậy và việc giữ lại dữ liệu rất dễ xảy ra và một khi việc giữ lại dữ liệu xảy ra, bằng chứng gian lận rất khó phát triển; **Hai điểm này làm cho Plasma về cơ bản chỉ có UTXO hoặc các mô hình gần đúng.

Để hiểu hai điểm cốt lõi này, hãy bắt đầu với DA và lưu giữ dữ liệu. DA là viết tắt của Data Avalibility, dịch theo nghĩa đen là tính khả dụng của dữ liệu và hiện đang bị nhiều người lạm dụng, đến mức nó bị nhầm lẫn nghiêm trọng với “dữ liệu lịch sử có thể được kiểm tra”. Nhưng trên thực tế, “dữ liệu lịch sử” và “bằng chứng lưu trữ” là những vấn đề lâu dài đã được giải quyết bởi những công ty như Filecoin và Arweave. Theo Ethereum Foundation và Celestia, vấn đề DA hoàn toàn là về các kịch bản giữ lại dữ liệu. **

**** Merkle Tree &; Merkle Root &; Merkle Proof****

Để minh họa các cuộc tấn công giữ lại dữ liệu và các vấn đề DA có nghĩa là gì, trước tiên chúng ta cần nói ngắn gọn về Merkle Root và Merkle Tree. **Trong Ethereum hoặc hầu hết các chuỗi công khai, một cấu trúc dữ liệu giống như cây được gọi là Merkle Tree được sử dụng để hoạt động như một bản tóm tắt / thư mục về trạng thái của toàn bộ tài khoản hoặc để ghi lại các giao dịch được đóng gói trong mỗi khối.

** Nút lá ở dưới cùng của Merkle Tree bao gồm các hàm băm dữ liệu thô như giao dịch hoặc trạng thái tài khoản, **Các hàm băm này được tổng hợp theo cặp và lặp lại, và Merkle Root cuối cùng có thể được tính toán.

(Bản ghi ở cuối sơ đồ là tập dữ liệu gốc tương ứng với nút lá)

Merkle Root có một thuộc tính: nếu một nút lá ở dưới cùng của Merkle Tree thay đổi, Merkle Root được tính toán cũng sẽ thay đổi. Do đó, Merkle Trees tương ứng với các bộ dữ liệu gốc khác nhau sẽ có Merkle Roots khác nhau, giống như những người khác nhau có dấu vân tay khác nhau. Công nghệ xác minh bằng chứng, được gọi là Merkle Proof, tận dụng đặc tính này của Merkle Tree.

Ví dụ, nếu Lý Cương chỉ biết giá trị của Merkle Root trong hình, anh ta không biết Merkle Tree hoàn chỉnh chứa dữ liệu gì. Chúng ta cần chứng minh với Li Gang rằng Bản ghi 3 thực sự có liên quan đến gốc trong hình, hoặc hàm băm của Bản ghi 3 tồn tại trên cây Merkle tương ứng với gốc.

Chúng ta chỉ cần gửi Record3 và 3 khối tiêu hóa được đánh dấu là màu xám cho Li Gang, thay vì cam kết toàn bộ Merkle Tree hoặc tất cả các nút lá của nó, đó là sự đơn giản của Merkle Proof. Khi bản ghi cơ bản của Merkle Tree có số lượng lá lớn, chẳng hạn như 2 đến sức mạnh của 2 khối dữ liệu (khoảng 1 triệu), Merkle Proof chỉ cần chứa ít nhất 21 khối dữ liệu.

(Khối dữ liệu 30 và H2 trong hình có thể tạo thành Bằng chứng Merkle, chứng minh rằng khối dữ liệu 30 tồn tại trên Cây Merkle tương ứng với H0) **

Trong Bitcoin, Ethereum hoặc các cầu nối chuỗi chéo, “sự đơn giản” này của Merkle Proof thường được sử dụng. Nút ánh sáng mà chúng ta biết thực sự là Li Gang đã đề cập ở trên, người chỉ nhận được tiêu đề khối từ nút đầy đủ, không phải khối đầy đủ. Điều quan trọng cần nhấn mạnh ở đây là Ethereum sử dụng cây Merkle được gọi là State Trie, hoạt động như một bản tóm tắt của toàn bộ tài khoản. Merkle Root của State Trie, được gọi là StateRoot, thay đổi bất cứ khi nào trạng thái của một trong các tài khoản được liên kết với State Trie thay đổi.

Trong tiêu đề khối của Ethereum, StateRoot sẽ được ghi lại và Merkle Root (được gọi là Txn Root) của cây giao dịch cũng sẽ được ghi lại. Nếu khối 100 chứa 300 giao dịch, thì lá của cây giao dịch đại diện cho 300 Txn này.

Một điểm khác biệt nữa là tổng lượng dữ liệu trong State Trie đặc biệt lớn và lá cơ bản của nó tương ứng với tất cả các địa chỉ trên chuỗi Ethereum (trên thực tế, có nhiều hàm băm trạng thái lỗi thời), vì vậy tập dữ liệu gốc tương ứng với State Trie sẽ không được xuất bản lên khối, chỉ có StateRoot sẽ được ghi lại trong tiêu đề khối. Tập dữ liệu ban đầu của cây giao dịch là dữ liệu Txn trong mỗi khối và TxnRoot của cây sẽ được ghi lại trong tiêu đề khối.

Vì nút ánh sáng chỉ nhận tiêu đề khối, chỉ biết StateRoot và TxnRoot và không thể suy ra Merkle Tree hoàn chỉnh dựa trên gốc (điều này được xác định bởi bản chất của Merkle Tree và hàm băm), nút ánh sáng không thể biết dữ liệu giao dịch chứa trong khối, cũng như không biết những thay đổi nào đã xảy ra đối với tài khoản tương ứng với State Trie. **

Nếu Wang Qiang muốn chứng minh với một light node (Li Gang đã đề cập trước đó) rằng block 100 chứa một giao dịch nhất định, và được biết rằng light node biết tiêu đề khối của block 100 và biết TxnRoot, thì vấn đề trên được dịch thành: chứng minh rằng Txn này tồn tại trên Merkle Tree tương ứng với TxnRoot. Lúc này, Vương Cường chỉ cần nộp Bằng chứng Merkle tương ứng.

Trong nhiều cầu nối chuỗi chéo dựa trên các giải pháp máy khách nhẹ, sự nhẹ nhàng và đơn giản của các nút ánh sáng và Merkle Proof được đề cập ở trên thường được sử dụng. Ví dụ: các cầu nối ZK như Map Protocol sẽ thiết lập một hợp đồng trên chuỗi ETH để nhận các tiêu đề khối từ các chuỗi khác (chẳng hạn như Polygon). Khi Relayer gửi tiêu đề của khối thứ 100 của Polygon cho hợp đồng trên chuỗi ETH, hợp đồng sẽ xác minh tính hợp lệ của tiêu đề (chẳng hạn như liệu nó có đủ chữ ký từ 2/3 nút POS trong mạng Polygon hay không).

Nếu tiêu đề hợp lệ và người dùng tuyên bố rằng họ đã khởi tạo Txn chuỗi chéo từ Polygon sang ETH, Txn được đóng gói vào khối thứ 100 của Polygon. Anh ta chỉ cần chứng minh thông qua Merkle Proof rằng Txn chuỗi chéo mà anh ta khởi xướng có thể tương ứng với TxnRoot của tiêu đề khối 100 (nói cách khác, nó chứng minh rằng Txn chuỗi chéo mà anh ta khởi xướng có một bản ghi trong khối 100 của Polygon). Tuy nhiên, cầu nối ZK sẽ sử dụng bằng chứng không có kiến thức để nén lượng tính toán cần thiết để xác minh Merkle Proof, giảm hơn nữa chi phí xác minh của các hợp đồng cầu nối xuyên chuỗi.

DA và các vấn đề tấn công lưu giữ dữ liệu

Sau khi nói về Merkle Tree và Merkle Root và Merkle Proof, chúng ta hãy quay trở lại vấn đề tấn công DA và giữ lại dữ liệu được đề cập ở đầu bài viết, được khám phá trước năm 2017 và bài báo gốc của Celestia đã nguyên mẫu hóa nguồn gốc của vấn đề DA. Trong một tài liệu 2017 ~ 18, chính Vitalik đã nói về cách các trình chặn có thể cố tình che giấu các đoạn dữ liệu nhất định của khối và xuất bản các khối không hoàn chỉnh, để các nút đầy đủ không thể xác nhận tính chính xác của việc thực hiện giao dịch / chuyển đổi trạng thái.

Tại thời điểm này, nhà sản xuất khối có thể đánh cắp tài sản của người dùng, chẳng hạn như chuyển tất cả các đồng tiền trong tài khoản A sang một địa chỉ khác và nút đầy đủ không thể xác định liệu chính A có làm như vậy hay không, vì họ không biết dữ liệu giao dịch hoàn chỉnh có trong khối mới nhất.

Trong các chuỗi công khai Lớp 1 như Bitcoin hoặc Ethereum, các nút đầy đủ trung thực sẽ trực tiếp từ chối các khối không hợp lệ ở trên. Nhưng các nút ánh sáng thì khác, chúng chỉ nhận được tiêu đề khối từ mạng, chúng chỉ biết StateRoot và TxnRoot và chúng không biết liệu khối ban đầu có tương ứng với tiêu đề và hai gốc có hợp lệ hay không.

Trong sách trắng Bitcoin, thực sự có một lỗ não cho tình huống này, Satoshi Nakamoto từng tin rằng hầu hết người dùng sẽ có xu hướng chạy các light node với yêu cầu cấu hình thấp hơn và light node không thể đánh giá liệu block tương ứng với block header có hợp lệ hay không và nếu block không hợp lệ, full node trung thực sẽ gửi báo động đến light node.

Nhưng Satoshi Nakamoto đã không phân tích chi tiết hơn về giải pháp này, và sau đó người sáng lập Vitalik và Celestia Mustafa đã xây dựng dựa trên ý tưởng này, kết hợp với công việc của những người tiền nhiệm khác, để giới thiệu lấy mẫu dữ liệu DA để đảm bảo rằng các nút đầy đủ trung thực có thể khôi phục dữ liệu hoàn chỉnh của từng khối và báo động khi cần thiết.

Lưu ý: DA Data Sampling (DAS) và Celestia không phải là trọng tâm của bài viết này, bạn đọc quan tâm có thể đọc bài viết trước của Geek Web3: “Những quan niệm sai lầm về tính khả dụng của dữ liệu: DA = Xuất bản dữ liệu ≠ Truy xuất dữ liệu lịch sử”

Bằng chứng gian lận của Plasma

Nói một cách đơn giản, Plasma là một giải pháp mở rộng quy mô chỉ xuất bản các tiêu đề khối Lớp 2 lên Lớp 1 và dữ liệu DA bên ngoài tiêu đề khối (tập dữ liệu giao dịch hoàn chỉnh / thay đổi trạng thái cho mỗi tài khoản) chỉ được xuất bản ngoài chuỗi. Nói cách khác, Plasma giống như một cầu nối chuỗi chéo dựa trên các máy khách nhẹ, triển khai một máy khách nhẹ Lớp 2 với hợp đồng trên chuỗi ETH và khi người dùng tuyên bố rằng họ muốn chuyển tài sản từ L2 sang L1, họ phải gửi Bằng chứng Merkle để chứng minh rằng họ thực sự sở hữu tài sản.

**Logic xác minh cho các tài sản trải dài từ L2 đến L1 tương tự như cầu ZK được đề cập ở trên, ngoại trừ mô hình cầu nối Plasma dựa trên bằng chứng gian lận hơn là bằng chứng ZK, gần với cái gọi là “cầu lạc quan”. **Yêu cầu rút tiền từ L2 đến L1 trong mạng Plasma không được phát hành ngay lập tức, nhưng có “thời gian thử thách”, vì mục đích của giai đoạn thử thách, chúng tôi sẽ giải thích bên dưới.

Plasma không có yêu cầu nghiêm ngặt về phát hành dữ liệu / DA, trình tự / nhà điều hành chỉ phát sóng từng khối L2 ngoài chuỗi và các nút sẵn sàng lấy khối L2 tự làm như vậy. Sau đó, sequencer sẽ xuất bản header của khối L2 lên Layer 1. Ví dụ: trình sắp xếp trình tự phát sóng khối 100 ngoài chuỗi và sau đó xuất bản tiêu đề của khối trên chuỗi. Nếu khối 100 chứa các giao dịch không hợp lệ, bất kỳ nút plasma nào cũng có thể gửi Bằng chứng Merkle cho hợp đồng trên ETH trước khi kết thúc “giai đoạn thử thách” để chứng minh rằng tiêu đề khối 100 có thể được liên kết với một giao dịch không hợp lệ, đây là một kịch bản được bao phủ bởi các bằng chứng gian lận.

Các trường hợp sử dụng bằng chứng gian lận của Plasma cũng bao gồm:

  1. Giả sử tiến trình của mạng Plasma đạt đến khối 200 và người dùng A bắt đầu tuyên bố rút tiền, nói rằng anh ta có 10 ETH trong khối 100. Nhưng trên thực tế, người dùng A đã chi ETH cho tài khoản sau block 100.

Vì vậy, hành vi của A thực sự là chi tiêu 10 ETH, tuyên bố rằng anh ta đã có 10 ETH trong quá khứ và cố gắng rút ETH. Đây là “rút tiền kép” cổ điển, chi tiêu gấp đôi. Tại thời điểm này, bất kỳ ai cũng có thể gửi Bằng chứng Merkle để chứng minh trạng thái tài sản mới nhất của người dùng A và không đáp ứng tuyên bố rút tiền của nó, nghĩa là để chứng minh rằng A không có báo cáo rút tiền sau khối 100 (các chương trình Plasma khác nhau có phương pháp chứng minh không nhất quán cho tình huống này và mô hình địa chỉ tài khoản rắc rối hơn nhiều so với bằng chứng chi tiêu gấp đôi của UTXO).

  1. Nếu đó là sơ đồ Plasma dựa trên mô hình UTXO (chủ yếu là trường hợp trong quá khứ), không có StateRoot trong tiêu đề khối, chỉ có TxnRoot (UTXO không hỗ trợ mô hình địa chỉ tài khoản kiểu Ethereum, cũng không có thiết kế trạng thái toàn cầu như State Trie). Nói cách khác, một chuỗi áp dụng mô hình UTXO chỉ có hồ sơ giao dịch, không phải hồ sơ trạng thái.

Trong trường hợp này, bản thân trình sắp xếp trình tự có thể khởi động một cuộc tấn công chi tiêu kép, chẳng hạn như chi tiêu một UTXO đã được chi tiêu hoặc phát hành thêm UTXO cho người dùng ngoài không khí. Bất kỳ người dùng nào cũng có thể gửi Bằng chứng Merkle để chứng minh rằng lịch sử sử dụng của UTXO đã xuất hiện (đã được chi tiêu) trong các khối trước đó hoặc để chứng minh rằng nguồn gốc lịch sử của UTXO có vấn đề. **

  1. Đối với các lược đồ Plasma hỗ trợ EVM / State-Trie, bộ sắp xếp trình tự có thể gửi StateRoot không hợp lệ, ví dụ: sau khi thực hiện giao dịch có trong khối 100, StateRoot phải được chuyển đổi thành ST +, nhưng trình sắp xếp trình tự gửi ST- sang Lớp 1.

Trong trường hợp này, bằng chứng gian lận phức tạp hơn và yêu cầu giao dịch trong khối 100 phải được phát lại trên chuỗi Ethereum, tiêu thụ rất nhiều gas với lượng thông số tính toán và đầu vào cần thiết. ** Các nhóm áp dụng Plasma ban đầu rất khó đạt được bằng chứng gian lận phức tạp như vậy, vì vậy hầu hết trong số họ sử dụng mô hình UTXO, xét cho cùng, bằng chứng gian lận dựa trên UTXO rất đơn giản và dễ thực hiện ** (Fuel, chương trình Rollup đầu tiên khởi chạy bằng chứng gian lận, dựa trên UTXO)

Lưu giữ dữ liệu &; Trò chơi thoát ****

Tất nhiên, các kịch bản nêu trên, nơi bằng chứng gian lận có thể có hiệu lực chỉ được thiết lập khi việc phát hành DA / dữ liệu hợp lệ. Nếu trình sắp xếp trình tự giữ lại dữ liệu và không xuất bản toàn bộ khối ngoài chuỗi, nút Plasma sẽ không thể xác nhận xem tiêu đề khối trên Lớp 1 có hợp lệ hay không và tất nhiên nó sẽ không thể xuất bản bằng chứng gian lận một cách suôn sẻ.

Tại thời điểm này, trình sắp xếp chuỗi có thể đánh cắp tài sản của người dùng, chẳng hạn như chuyển tất cả tiền từ tài khoản A sang tài khoản B, sau đó chuyển tiền từ tài khoản B sang C và cuối cùng bắt đầu rút tiền dưới tên C. Tài khoản B và C thuộc sở hữu của bộ giải trình tự và việc chuyển B->C là vô hại ngay cả khi nó được công bố công khai.** Nhưng trình tự có thể giữ lại dữ liệu về việc chuyển giao không hợp lệ A->B và mọi người không thể chứng minh rằng có vấn đề với nguồn tài sản của B và C ** (để chứng minh rằng nguồn tài sản của B có vấn đề, cần phải chỉ ra rằng chữ ký số của “một Txn nào đó được chuyển sang B” là không chính xác).

Giải pháp Plasma dựa trên UTXO được nhắm mục tiêu bởi thực tế là bất kỳ ai bắt đầu rút tiền đều phải gửi toàn bộ lịch sử của tài sản, mặc dù có nhiều cải tiến hơn sau đó. Tuy nhiên, nếu là dung dịch Plasma tương thích EVM thì sẽ yếu ở khu vực này. Bởi vì nếu Txn liên quan đến hợp đồng tham gia, sẽ có một chi phí rất lớn trong việc xác minh quá trình chuyển đổi trạng thái trên chuỗi, vì vậy rất khó để thực hiện một kế hoạch xác minh tính hợp lệ của việc rút tiền bằng cách hỗ trợ mô hình địa chỉ tài khoản và hợp đồng thông minh Plasma.

Ngoài ra, ngoài chủ đề trên, cho dù đó là Plasma dựa trên mô hình dựa trên UTXO hay địa chỉ tài khoản, việc giữ lại dữ liệu có thể gây hoảng loạn vì bạn không biết trình tự đang thực hiện giao dịch nào. **Các nút plasma sẽ tìm thấy điều gì đó không ổn, nhưng họ sẽ không thể xuất bản bằng chứng gian lận vì bộ giải trình tự Plasma sẽ không gửi dữ liệu cần thiết cho bằng chứng gian lận.

Tại thời điểm này, mọi người chỉ có thể nhìn thấy tiêu đề khối tương ứng, nhưng họ không biết những gì trong khối và họ không biết tài sản tài khoản của họ đã trở thành gì, vì vậy họ sẽ cùng nhau bắt đầu một tuyên bố rút tiền và cố gắng rút tiền bằng Bằng chứng Merkle tương ứng với khối lịch sử, ** kích hoạt một kịch bản cực đoan được gọi là “Trò chơi thoát”, điều này sẽ dẫn đến “giẫm đạp”, điều này sẽ khiến Lớp 1 bị tắc nghẽn nghiêm trọng và vẫn sẽ khiến tài sản của một số người bị hư hỏng ** (Những người không nhận được thông báo nút trung thực hoặc không vuốt Twitter sẽ không biết rằng trình sắp xếp thứ tự đang ăn cắp tiền xu.)

Do đó, Plasma là một giải pháp mở rộng quy mô Layer2 không đáng tin cậy và một khi cuộc tấn công giữ lại dữ liệu xảy ra, nó sẽ kích hoạt “Trò chơi thoát”, rất dễ khiến người dùng bị tổn thất, đó là lý do chính khiến nó bị từ bỏ. **

Lý do tại sao plasma khó hỗ trợ hợp đồng thông minh ****

Sau khi nói về Exit Game và các vấn đề lưu giữ dữ liệu, hãy xem tại sao Plasma khó hỗ trợ các hợp đồng thông minh, chủ yếu vì hai lý do:

Đầu tiên, nếu đó là tài sản của hợp đồng Defi, ai nên rút nó về Lớp 1? Bởi vì điều này về cơ bản là di chuyển trạng thái của hợp đồng từ Lớp 2 sang Lớp 1, giả sử ai đó tính phí 100 ETH vào nhóm LP của DEX, và sau đó trình sắp xếp Plasma làm điều ác, và mọi người muốn rút tiền gấp, lúc này, 100 ETH của người dùng vẫn bị kiểm soát bởi hợp đồng DEX, ai nên đề cập đến các tài sản này lên Lớp 1 vào lúc này?

Cách tốt nhất để làm điều này dường như là cho phép người dùng mua lại tài sản từ DEX trước, sau đó người dùng sẽ tự rút tiền về L1, nhưng vấn đề là bộ giải trình tự Plasma đã làm điều gì đó xấu và có thể từ chối yêu cầu của người dùng bất cứ lúc nào.

Vì vậy, điều gì sẽ xảy ra nếu chúng ta thiết lập Chủ sở hữu cho hợp đồng DEX trước, cho phép anh ta đưa tài sản hợp đồng lên L1 trong trường hợp khẩn cấp? Rõ ràng, điều này sẽ mang lại cho chủ sở hữu hợp đồng quyền sở hữu tài sản công, và anh ta có thể đưa những tài sản này lên L1 bất cứ lúc nào và bỏ trốn, điều đó có phải là khủng khiếp không?

Rõ ràng, phải làm gì với những “tài sản công” bị chi phối bởi các hợp đồng Defi này là một tiếng sét lớn. ** Điều này thực sự liên quan đến vấn đề phân phối quyền lực công cộng, điều mà Xiangma trước đây đã nói đến trong một cuộc phỏng vấn với “Rất khó để các chuỗi công cộng hiệu suất cao làm những điều mới và các hợp đồng thông minh liên quan đến việc phân phối quyền lực”.

Thứ hai, nếu hợp đồng không được phép di chuyển trạng thái của nó, nó sẽ bị tổn thất rất lớn, và nếu hợp đồng được phép di chuyển trạng thái của nó sang Lớp 1, sẽ có những lần rút tiền kép khó giải quyết với bằng chứng gian lận Plasma:

Ví dụ: giả sử rằng Plasma áp dụng mô hình địa chỉ tài khoản của Ethereum, hỗ trợ các hợp đồng thông minh, có bộ trộn tiền xu, hiện đang gửi 100 ETH và chủ sở hữu của bộ trộn tiền xu do Bob kiểm soát;

Giả sử Bob rút 50 ETH từ máy trộn ở khối 100. Sau đó, Bob bắt đầu một tuyên bố rút tiền và vượt qua 50 ETH đến Lớp 1;

Sau đó, Bob sử dụng ảnh chụp nhanh trạng thái hợp đồng trong quá khứ (ví dụ: khối 70) để di chuyển trạng thái trong quá khứ của máy trộn sang Lớp 1, cũng sẽ vượt qua 100 ETH mà máy trộn “từng có” sang Lớp 1.

Rõ ràng, đây là một “rút tiền kép” điển hình, đó là một khoản chi tiêu gấp đôi. **150 ETH đã được Bob đề cập đến Lớp 1, nhưng người dùng mạng Lớp 2 chỉ trả 100 ETH cho máy trộn / Bob và 50 ETH đã bị rút ra khỏi không khí. Điều này có thể dễ dàng tiêu hao dự trữ của Plasma **. Về mặt lý thuyết, người ta có thể bắt đầu một bằng chứng gian lận để chứng minh rằng trạng thái của hợp đồng máy trộn đã thay đổi sau khối 70.

Nhưng nếu bạn muốn đưa ra bằng chứng cho thấy hợp đồng Mixer đã thay đổi sau Block 70, bạn phải chạy tất cả Txn được đề cập ở trên trên chuỗi Ethereum để cuối cùng cho phép hợp đồng Plasma xác định rằng trạng thái của hợp đồng Mixer đã thực sự thay đổi (lý do tại sao nó phức tạp như vậy được xác định bởi cấu trúc của chính Plasma). Nếu số lượng Txn quá lớn, bằng chứng gian lận sẽ không được công bố trên Lớp 1 (nó sẽ vượt quá giới hạn gas cho một khối Ethereum).

Về mặt lý thuyết, trong kịch bản chi tiêu gấp đôi ở trên, có vẻ như bạn chỉ cần gửi ảnh chụp nhanh trạng thái hiện tại của máy trộn (thực chất là bằng chứng Merkle tương ứng với StateRoot), nhưng trên thực tế, vì Plasma không công bố dữ liệu giao dịch trên chuỗi, hợp đồng không thể xác định xem ảnh chụp nhanh trạng thái bạn gửi có hợp lệ hay không. **Điều này là do bản thân trình sắp xếp trình tự có thể bắt đầu lưu giữ dữ liệu, gửi ảnh chụp nhanh trạng thái không hợp lệ và chỉ ra bất kỳ khoản rút tiền nào một cách ác ý. **

Ví dụ: khi bạn tuyên bố rằng bạn có 50 ETH trong tài khoản của mình và bắt đầu rút tiền, trình sắp xếp chuỗi có thể xóa riêng tài khoản của bạn về 0, sau đó bắt đầu giữ lại dữ liệu, gửi StateRoot không hợp lệ đến chuỗi và gửi ảnh chụp nhanh trạng thái tương ứng để buộc tội sai bạn hết tiền trong tài khoản của mình. Tại thời điểm này, bạn không thể chứng minh rằng StateRoot và State Snapshot do trình sắp xếp trình tự gửi là không hợp lệ, bởi vì anh ta đã bắt đầu nắm giữ dữ liệu và bạn không nhận được đủ dữ liệu cần thiết để chứng minh gian lận. **

Để ngăn chặn điều này, nút Plasma cũng phát lại lịch sử giao dịch trong giai đoạn này khi trình bày ảnh chụp nhanh trạng thái để chứng minh rằng ai đó đã chi tiêu gấp đôi, điều này ngăn bộ sắp xếp chuỗi giữ lại dữ liệu để ngăn người khác rút tiền. Trong Rollup, nếu bạn gặp phải việc rút tiền kép nêu trên, bạn không cần phải phát lại giao dịch lịch sử về mặt lý thuyết, vì Rollup không có vấn đề giữ lại dữ liệu và sẽ “buộc” trình sắp xếp chuỗi xuất bản dữ liệu DA trên chuỗi. **Trình tự tổng hợp gửi ảnh chụp nhanh trạng thái StateRoot không hợp lệ sẽ không xác thực được hợp đồng (ZK Rollup) hoặc sẽ sớm bị thách thức (OP Rollup).

Trên thực tế, ngoài ví dụ về máy trộn tiền xu được đề cập ở trên, các kịch bản như hợp đồng đa chữ ký cũng có thể dẫn đến việc rút tiền hai lần trên mạng Plasma. Bằng chứng gian lận không hiệu quả trong việc xử lý các tình huống như vậy. **Tình huống này được phân tích trong Nghiên cứu ETH.

Tóm lại, vì sơ đồ Plasma không có lợi cho các hợp đồng thông minh và về cơ bản không hỗ trợ di chuyển trạng thái hợp đồng sang Lớp 1, Plasma chính thống phải chọn UTXO hoặc các cơ chế tương tự, vì UTXO không có vấn đề xung đột quyền sở hữu tài sản và có thể hỗ trợ tốt bằng chứng gian lận (kích thước nhỏ hơn nhiều), nhưng với chi phí của một kịch bản ứng dụng duy nhất, về cơ bản nó chỉ có thể hỗ trợ chuyển khoản hoặc trao đổi sổ lệnh.

Ngoài ra, vì bản thân bằng chứng gian lận phụ thuộc mạnh vào dữ liệu DA, nên sẽ khó đạt được một hệ thống chống gian lận hiệu quả nếu lớp DA không đáng tin cậy. Tuy nhiên, cách xử lý các vấn đề DA của Plasma quá thô sơ để giải quyết vấn đề tấn công giữ lại dữ liệu và với sự gia tăng của Rollup, Plasma đã dần biến mất khỏi lịch sử. **

Xem bản gốc
Tuyên bố miễn trừ trách nhiệm: Thông tin trên trang này có thể đến từ bên thứ ba và không đại diện cho quan điểm hoặc ý kiến của Gate. Nội dung hiển thị trên trang này chỉ mang tính chất tham khảo và không cấu thành bất kỳ lời khuyên tài chính, đầu tư hoặc pháp lý nào. Gate không đảm bảo tính chính xác hoặc đầy đủ của thông tin và sẽ không chịu trách nhiệm cho bất kỳ tổn thất nào phát sinh từ việc sử dụng thông tin này. Đầu tư vào tài sản ảo tiềm ẩn rủi ro cao và chịu biến động giá đáng kể. Bạn có thể mất toàn bộ vốn đầu tư. Vui lòng hiểu rõ các rủi ro liên quan và đưa ra quyết định thận trọng dựa trên tình hình tài chính và khả năng chấp nhận rủi ro của riêng bạn. Để biết thêm chi tiết, vui lòng tham khảo Tuyên bố miễn trừ trách nhiệm.
Bình luận
0/400
Không có bình luận