Tổng quan
Plasma đã từng là một giải pháp Layer 2 tiềm năng vào năm 2017, khi Vitalik Buterin tuyên bố Plasma và Sharding sẽ giúp Ethereum đạt hiệu suất 1 triệu giao dịch trên giây.
And it begins… https://t.co/sThCkWnzUP @jcp
— vitalik.eth (@VitalikButerin) August 10, 2017
Tuy nhiên, dần theo thời gian phát triển, Plasma đã bộc lộ nhiều nhược điểm lớn, đặc biệt là không hỗ trợ hợp đồng thông minh của Ethereum. Dù vậy, ít ai biết rằng công nghệ bằng chứng gian lận (fraud proof) của Optimistic Rollups (một giải pháp Layer 2 rất hot gần đây) có nguồn gốc từ Plasma.
Vậy Plasma hoạt động như thế nào, và có những ưu nhược điểm gì? Tất cả sẽ được giải đáp trong bài viết dưới đây của GFI Blockchain.
Plasma là gì?
Plasma là một cơ chế Layer 2 cho phép phát triển các dApp, với hoạt động tính toán và lưu trữ dữ liệu được đặt trên nhiều child chain (blockchain con) chạy song song với parent chain (blockchain chính) như Ethereum Mainnet. Các child chain được liên kết với nhau, hoặc được xây dựng chồng lên nhau, với mỗi child chain phục vụ một ứng dụng chuyên biệt.
Để sử dụng Plasma, người dùng phải khóa một lượng ETH vào một hợp đồng thông minh, cho phép họ truy cập vào một child chain, nơi họ có thể giao dịch với lượng tài sản đã gửi vào trước đó.
Các child chain sẽ thực thi giao dịch một cách độc lập và định kỳ gửi state (trạng thái) lên parent chain. Parent chain sẽ không can thiệp gì lên hoạt động của child chain mà chỉ nhận dữ liệu được gửi lên.
Mô hình và cách thức hoạt động của
Mô hình của Plasma được cấu thành bởi 4 bộ phận chính: Tính toán off-chain, Hoàn thành trạng thái (State commitment), Nạp – Rút, và Giải quyết tranh chấp. Mỗi bộ phận chịu trách nhiệm xử lý một khâu và liên kết với nhau.
Tính toán off-chain
Tốc độ xử lý hiện tại của Ethereum bị giới hạn ở khoảng 15 – 20 TPS, làm giảm khả năng mở rộng quy mô trong thời gian ngắn để hỗ trợ nhiều người dùng hơn. Nguyên nhân là cơ chế đồng thuận của Ethereum cần nhiều node ngang hàng để xác minh mọi cập nhật trạng thái của chuỗi khối.
Với các giao dịch đơn giản, như trả ETH để mua một tách cà phê, việc sử dụng sức mạnh của cả mạng lưới là không hiệu quả. Plasma cho rằng Ethereum Mainnet không cần xác minh tất cả các giao dịch. Thay vào đó, Plasma có thể xử lý các giao dịch ngoài Mainnet, giải phóng các node khỏi việc phải xác thực mọi giao dịch.
Một Plasma chain có thể sử dụng một nhà điều hành (operator) duy nhất để quản lý việc đặt hàng và thực hiện các giao dịch. Chỉ với một thực thể xác minh giao dịch, thời gian xử lý trên Plasma chain sẽ nhanh hơn Ethereum Mainnet.
Hoàn thành trạng thái
Mặc dù Plasma thực hiện các giao dịch ngoài chuỗi, nhưng chúng được giải quyết trên lớp thực thi chính của Ethereum – nếu không, các chuỗi Plasma không thể hưởng lợi từ các đảm bảo an ninh của Ethereum.
Nhưng việc hoàn thiện các giao dịch ngoài chuỗi mà không biết trạng thái của chuỗi plasma sẽ phá vỡ mô hình bảo mật và để hổng các giao dịch không hợp lệ. Đây là lý do tại sao nhà điều hành – thực thể chịu trách nhiệm sản xuất các khối trên chuỗi plasma – được yêu cầu gửi các bản state commitment trên Ethereum theo định kỳ.
Sơ đồ hoàn thành (Commitment scheme) một kỹ thuật mã hóa để hoàn thành một giá trị hoặc tuyên bố mà không tiết lộ nó cho bên khác. Các bản state commitment này tạo ra ràng buộc khiến một người không thể thay đổi giá trị hoặc tuyên bố sau khi bạn đã hoàn thành nó.
Các bản state commitment trong Plasma có dạng Merkle Root (có nguồn gốc từ thuật ngữ Merkle Tree – một cấu trúc dữ liệu trong khoa học máy tính). Có thể coi Merkle Root là một “điểm lưu”, như một thông báo từ nhà điều hành rằng: “Đây là trạng thái của chuỗi Plasma tại thời điểm x và đây là Merkle Root làm bằng chứng.”.
Nạp – Rút
Plasma sử dụng hợp đồng chính (master contract) chạy trên Ethereum để xử lý hoạt động nạp và rút tiền của người dùng. Hợp đồng chính này cũng chịu trách nhiệm theo dõi các bản state commitment và trừng phạt hành vi không trung thực thông qua bằng chứng gian lận.
Nạp tiền
Để tham gia Plasma chain, Alice (người dùng) sẽ phải ký gửi ETH và các token ERC-20 trong hợp đồng Plasma. Nhà điều hành Plasma tạo lại một số tiền bằng với khoản tiền gửi của Alice và gửi nó đến địa chỉ của cô ấy trên chuỗi plasma. Alice được yêu cầu chứng thực việc nhận tiền trên child chain và sau đó có thể sử dụng số tiền này cho các giao dịch.
Rút tiền
Rút tiền khỏi Plasma chain phức tạp hơn nhiều việc nạp tiền. Vấn đề lớn nhất là, mặc dù Ethereum có thông tin về trạng thái của chuỗi plasma, nhưng nó không thể xác minh xem thông tin đó có đúng hay không. Người dùng gian lận có thể đưa ra xác nhận không chính xác (“Tôi có 1000 ETH”) và rút tiền bằng cách đưa ra một bằng chứng giả.
Để ngăn chặn việc rút tiền gian lận, một thời gian thử thách (challenge period) được đưa ra. Trong thời gian thử thách (thường là một tuần), bất kỳ ai cũng có thể thử thách yêu cầu rút tiền bằng cách sử dụng bằng chứng gian lận. Nếu thử thách thành công thì yêu cầu rút tiền sẽ bị từ chối.
Tuy nhiên, thông thường người dùng trung thực và đưa ra tuyên bố chính xác về số tiền họ sở hữu. Nếu như vậy, Alice có thể yêu cầu rút tiền thông qua hợp đồng chính trên chuỗi gốc (Ethereum). Cô ấy cũng phải cung cấp bằng chứng Merkle xác minh rằng giao dịch tạo ra tiền của cô ấy trên chuỗi Plasma đã được đưa vào một block.
Một thiết kế phổ biến của Plasma là MVP (Minimal Viable Plasma), sử dụng mô hình UTXO (Unspent Transaction Output), nghĩa là số tiền một người còn sở hữu sau một loạt giao dịch.
Một thiết kế khác là Plasma Cash, đại diện cho khoản tiền dưới dạng NFT thay vì UTXO. Trong trường hợp này, lệnh rút tiền yêu cầu bằng chứng về quyền sở hữu token trên chuỗi Plasma, gồm hai giao dịch mới nhất liên quan đến token đó và bằng chứng Merkle xác minh việc đã đưa các giao dịch đó vào một block.
Người dùng cũng phải thêm một khoản tiền bảo hiểm cho yêu cầu rút tiền như một sự đảm bảo cho hành vi trung thực. Nếu một người thử thách chứng minh được yêu cầu rút tiền của Alice không hợp lệ, tiền bảo hiểm của cô ấy sẽ bị lấy đi và chuyển một phần cho người thử thách như một phần thưởng.
Nếu thời gian thử thách trôi qua mà không có ai cung cấp bằng chứng gian lận, thì yêu cầu rút tiền của Alice được coi là hợp lệ, cho phép cô ấy lấy tiền gửi từ hợp đồng Plasma trên Ethereum.
Giải quyết tranh chấp
Các Plasma chain sử dụng bằng chứng gian lận để phân xử các tranh chấp liên quan đến tính hợp lệ của quá trình chuyển đổi trạng thái (state transition) và xử phạt hành vi xấu. Bằng chứng gian lận được sử dụng như một cơ chế mà qua đó child chain Plasma gửi khiếu nại đến blockchain chính.
Một ví dụ là nếu người dùng (Alice) cố gắng chi tiêu cùng một số tiền hai lần (double spending). Có thể Alice đã sử dụng UTXO trong một giao dịch với Bob và muốn sử dụng cùng một UTXO (hiện là của Bob) trong một giao dịch khác.
Để ngăn chặn việc rút tiền, Bob sẽ xây dựng một bằng chứng gian lận bằng cách cung cấp bằng chứng về việc Alice đã chi tiêu UTXO nói trên trong một giao dịch trước đó và bằng chứng Merkle về việc đã đưa giao dịch đó vào một block.
Quy trình tương tự cũng hoạt động trong Plasma Cash – Bob sẽ cần cung cấp bằng chứng rằng Alice trước đó đã chuyển các token mà cô ấy đang cố gắng rút.
Nếu thử thách của Bob thành công, yêu cầu rút tiền của Alice sẽ bị hủy. Tuy nhiên, cách tiếp cận này phụ thuộc vào khả năng của Bob trong việc theo dõi các yêu cầu rút tiền trên blockchain. Nếu Bob offline thì Alice có thể rút tiền một cách gian lận sau khi hết thời gian thử thách.
Đánh giá Plasma
Ưu điểm
- Cung cấp thông lượng cao và chi phí thấp cho mỗi giao dịch.
- Hiệu quả đối với các giao dịch giữa những người dùng chỉ hoạt động trên Plasma (không phải tốn chi phí nạp và rút về mạng Ethereum).
- Chuỗi plasma có thể được điều chỉnh cho phù hợp với các trường hợp sử dụng cụ thể không liên quan đến blockchain chính. Bất kỳ ai, kể cả doanh nghiệp, đều có thể tùy chỉnh hợp đồng thông minh Plasma để cung cấp cơ sở hạ tầng có thể mở rộng hoạt động trong các bối cảnh khác nhau.
- Giảm tải trên Ethereum Mainnet bằng cách di chuyển tính toán và lưu trữ ra off-chain.
Nhược điểm
- Không hỗ trợ tính toán chung (general computation), nghĩa là không thể chạy hợp đồng thông minh. Chỉ chuyển token cơ bản, swap và một số loại giao dịch đơn giản khác.
- Cần theo dõi mạng định kỳ hoặc ủy thác trách nhiệm này cho người khác để đảm bảo an toàn cho tiền của người dùng.
- Dựa vào một hoặc nhiều nhà điều hành để lưu trữ dữ liệu off-chain và cung cấp dữ liệu đó khi được yêu cầu.
- Việc rút tiền bị trì hoãn vài ngày để cho phép thử thách. Có thể rút ngắn thời gian thông qua các bridge, nhưng gánh nặng chờ đợi lệnh rút tiền sẽ chuyển từ người dùng sang đơn vị cung cấp dịch vụ bridge.
- Nếu có quá nhiều người dùng cố gắng rút tiền cùng lúc, Ethereum Mainnet có thể bị tắc nghẽn.
Các dự án ứng dụng công nghệ Plasma
- OMG Network: Là một giải pháp mở rộng Layer 2 của Ethereum, sử dụng kiến trúc Plasma nhằm cung cấp thông lượng cao và đảm bảo an toàn cho các bên thứ ba muốn xây dựng các dApp thanh toán trên Ethereum.
- Polygon Plasma bridge: Là một trong hai cầu chính thức để chuyển token MATIC, ETH và các token ERC-20, ERC-721 từ Ethereum sang Polygon, cầu còn lại là Polygon POS bridge. Plasma bridge được sử dụng bởi những nhà phát triển đề cao tính bảo mật.
Kết luận
Plasma là một công nghệ Layer 2 đời đầu, đại diện cho những nỗ lực đầu tiên của đội ngũ Ethereum trong việc mở rộng blockchain này.
Dù Plasma đã dần biến mất và bị thay thế bởi công nghệ Rollup, công nghệ này đã đưa ra những khái niệm căn bản về tính toán off-chain và bằng chứng gian lận. Tìm hiểu về Plasma cũng giúp chúng ta nắm được phần nào về cách hoạt động của Optimistic Rollup.