Vào ngày 10 tháng 8 năm 2017, Vitalik Buterin và Joseph Poon đã phát hành dự thảo ban đầu về dự án Plasma khi thực hiện giải pháp mở rộng Ethereum. Vậy giao thức Plasma là gì mà lại có thể tăng khả năng mở rộng của mạng Ethereum?
Plasma là gì?
Plasma là một giải pháp Layer-2 được đề xuất bởi Joseph Poon và Vitalik Buterin. Đây là một Framework để xây dựng các ứng dụng có thể mở rộng trên Ethereum.
Cấu trúc của Plasma cho phép tạo ra vô số các blockchain con (child chain) có khả năng hoạt động độc lập và tương tác với Ethereum bằng cách sử dụng thuật toán Merkle-Tree để kết hợp các smart contract.
Khái niệm về Plasma khá đơn giản: Bạn có thể tạo ra số lượng không giới hạn các blockchain con – bản sao của blockchain Ethereum miễn có thể xác minh được mọi thông tin trên các blockchain đó là hợp lệ. Giải pháp Plasma giúp Layer-1 cải thiện được tốc độ giao dịch và giảm đáng kể phí giao dịch.
Cách hoạt động của Plasma
Ý tưởng chính của Plasma là thiết lập một cấu trúc gồm các chuỗi con sẽ giao tiếp và tương tác với chuỗi chính (trong trường hợp này là Ethereum). Cấu trúc này hoạt động như một cây Blockchain, được sắp xếp theo thứ bậc theo cách thức phân nhánh, trong đó nhiều chuỗi nhỏ hơn được liên kết với một chuỗi gốc. Những chuỗi nhỏ này được gọi là chuỗi Plasma hoặc chuỗi con.
Về bản chất, các chuỗi con này là một loạt các hợp đồng thông minh chạy trên chuỗi gốc có thể tùy chỉnh, có thể được thiết kế để hoạt động theo một cách thức đặc biệt nhằm phục vụ các nhu cầu khác nhau.
Giải pháp Plasma tận dụng việc ứng dụng hợp đồng thông minh và kỹ thuật Merkle Tree (một cấu trúc dữ liệu để mã hoá dữ liệu Blockchain hiệu quả và an toàn hơn), cho phép tạo ra vô số các chuỗi con – về bản chất là các bản sao nhỏ hơn của Blockchain gốc. Từ mỗi chuỗi con, nhiều chuỗi con nhỏ hơn có thể được tạo ra, do đó tạo thành một cấu trúc cây.
Bởi vì mỗi chuỗi con sẽ được thiết kế để hoạt động theo một cách riêng biệt nhằm hướng tới các mục tiêu cụ thể (không nhất thiết liên quan đến các mục tiêu của chuỗi chính) nên các chuỗi con sẽ giúp làm giảm bớt công việc của chuỗi chính, giúp chuỗi chính ít có khả năng bị tắc nghẽn hơn.
Luồng hoạt động của giải pháp Plasma sẽ như sau:
- Người điều hành chuỗi con đưa ra các quy tắc mà chuỗi con sẽ hoạt động (thiết lập các quy tắc trên hợp đồng thông minh của chuỗi con).
- Các giao dịch đã được xử lý sẽ nằm trên chuỗi con trong khi tiêu đề khối (còn gọi là block header, dùng để xác định một block nằm trong Blockchain) của mỗi khối trong chuỗi Plasma sẽ được gửi và ghi lại trong các khối của chuỗi chính. Điều này làm giảm tắc nghẽn mạng chuỗi chính và do đó, cho phép hàng chục nghìn giao dịch được xử lý đồng thời trong chuỗi Plasma.
- Dữ liệu trên chuỗi con sẽ được xác thực bằng “bằng chứng gian lận” (Fraud proof), do đó chuỗi gốc chịu trách nhiệm giữ an toàn cho mạng và trừng phạt các tác nhân độc hại. Khi gian lận xảy ra trong chuỗi Plasma, bất cứ ai cũng có thể cung cấp bằng chứng gian lận để chứng minh giao dịch không hợp lệ. Nếu giao dịch được chứng minh là gian lận, trạng thái ban đầu của giao dịch sẽ được khôi phục lại. Bằng chứng gian lận được sử dụng như một cơ chế mà qua đó một chuỗi con Plasma gửi đi một khiếu nại đến chuỗi bố mẹ của nó hoặc đến chuỗi gốc.
Ví dụ về cách hoạt động của Plasma
Để hiểu cách thức hoạt động của Plasma, chúng ta cùng xét ví dụ sau đây:
Giả sử có một game trao đổi bài trên Ethereum, tương tự như Crypto Kitties, nhưng có thêm các thuộc tính cho phép người chơi thực hiện các hành động trong game như giao chiến.
Những lá bài là tài sản trong game được tạo ra chính là các token theo chuẩn ERC721 chứa một đoạn mã là duy nhất đối với mỗi lá bài, và không thể bị chia tách được (hãy tưởng tượng giá của những tờ tiền giấy là ERC20 thì số serial trên mỗi tờ tiền là ERC721).
Những hành động của người chơi trong game có thể diễn ra liên tục và lặp đi lặp lại, vì thế việc chuyển những action trong game thành transaction lên main-chain sẽ rất tốn kém và không đem lại nhiều lợi ích.
Thay vào đó chúng ta sẽ sử dụng plasma để lưu các trạng thái của game.
Điều đầu tiên cần đó là một, hoặc một số, các smart contracts được tạo ra ở main-chain, đóng vai trò như là gốc (Root) cho các chuỗi Plasma con. Những smart contracts này sẽ lưu thông tin transaction cơ bản nhất tạo nên chuỗi Plasma con.
Những thông tin như “địa chỉ sở hữu tài sản game”, thông tin về trạng thái hiện tại của chuỗi Plasma con (mã băm của khối hiện tại trên chuỗi blockchain Plasma con). Ngoài ra những smart contracts này còn được coi là “cầu nối” để người chơi có thể chuyển tài sản của mình từ ethereum main-chain sang nhánh con và ngược lại.
Tiếp theo, chúng ta dựng nhánh con. Ở đây có thể có một cơ chế đồng thuận khác với nhánh chính. Có thể là Proof of Authority, một cơ chế đơn giản dựa trên sự đồng thuận của chỉ một số nốt duy nhất có khả năng tạo khối mới (block producers). Những nốt này nhận các transactions, tạo khối mới và phát tán đến tất cả các nốt khác. Công ty tạo ra game có thể trở thành một nốt như vậy.
Một khi được vận hành, các nốt producers sẽ gửi định kỳ thông tin trạng thái của nhánh con đến smart contracts gốc trên ethereum main-chain. Những thông tin này có thể là gốc của cây Merkel của tất cả các khối đã được tạo ra trên nhánh con. Như vậy bất kể lúc nào, trên main-chain cũng có thể kiểm chứng lại thông tin mà các nốt khác đã tạo ra trên nhánh con, mà không cần thiết phải lưu lại toàn bộ thông tin transactions trên main-chain.
Cuối cùng, những lá bài ERC721 sẽ được tạo ra trên main-chain, và khóa lại để không thể giao dịch, và chuyển sang nhánh con thông qua một smart contract. Sau đó, dựa vào những tính năng được định nghĩa trên smart contracts của nhánh con, các action được người chơi thực hiện, như giao chiến, nâng cấp, trao đổi bài. Bởi vì trên nhánh con, chỉ một số nốt là producers có thể thực thi giao dịch và tạo khối, nên chi phí sẽ nhỏ hơn nhiều so với trên main-chain, trong khi tốc độ thực hiện sẽ tăng lên rất cao.
Ưu và nhược điểm của Plasma
Ưu điểm
Nhìn chung, chuỗi Plasma này sẽ giúp Blockchain đạt được mục tiêu mở rộng khi mà chuỗi chính được giảm bớt tắc nghẽn, các giao dịch được xử lý nhanh và chi phí thấp. Khi đem so sánh với các giải pháp mở rộng khác, chúng ta có thể thấy chuỗi Plasma vượt trội hơn như sau:
- Chuỗi Plasma sẽ được ưu tiên hơn Channel bởi vì chuỗi Plasma cho phép gửi tài sản/coin tới những người khác, trong khi đối với Channel, giao dịch chỉ xảy ra giữa 2 bên.
- Chuỗi Plasma tốt hơn Sidechain vì chúng được bảo mật bởi chuỗi chính. Nếu Sidechain bị tấn công, không có gì xảy ra với chuỗi chính, nhưng chuỗi chính không thể làm bất cứ điều gì để bảo vệ người dùng trên Sidechain. Trong khi, vì chuỗi Plasma tận dụng tính bảo mật của chuỗi chính nên trong trường hợp có bất kỳ cuộc tấn công nào, người dùng chuỗi Plasma có thể thoát và chuyển sang chuỗi chính. Do đó, tính bảo mật của chuỗi Plasma hơn các Sidechain.
Nhược điểm
Nhược điểm của chuỗi Plasma có thể kể đến như:
- Không hỗ trợ tính toán chung. Chỉ hỗ trợ các giao dịch chuyển token cơ bản, hoán đổi và một số loại giao dịch khác.
- Dựa vào một hoặc nhiều người điều hành để lưu trữ dữ liệu và cung cấp nó theo yêu cầu.
- Việc rút tiền không được thực hiện ngay lập tức vì phải thông qua thời gian thử thách do sử dụng bằng chứng gian lận để xác minh giao dịch.
- Có khả năng xảy ra sự cố Mass Exit. Sự cố này mô tả một kịch bản mà trong đó nhiều người dùng thoát khỏi chuỗi Plasma cùng một lúc, gây ra sự cố tràn chuỗi gốc và gây tắc nghẽn mạng lớn. Vấn đề này có thể được kích hoạt bởi hoạt động gian lận, tấn công mạng, hoặc bất kỳ loại lỗi nghiêm trọng nào khác mà một chuỗi con Plasma, hoặc một nhóm các chuỗi, có thể có.
Liệu Plasma có an toàn hay không
Bằng việc xây dựng các phương thức hoạt động trên nhánh con, được kiểm soát bới chỉ một số nốt là producers, hệ thống đã quay lại kiểu thiết kế tập trung ban đầu. Tuy nhiên, ngay cả trong trường hợp chỉ có duy nhất một producer kiểm soát 100% transactions trên nhánh con, thì điều tồi tệ nhất đối với người sử dụng cũng chỉ là bị buộc phải rời khỏi nhánh con, do thông tin tài sản của người chơi vẫn đang được lưu trong smart contracts trên main-chain.
Giả sử nốt producer muốn chiếm đoạt tài sản của người chơi bằng việc tạo ra một khối giả mạo và gửi thông tin trạng thái mới của chuỗi lên smart contract gốc trên main-chain. Hãy nhớ là tất cả các smart contract trên ethereum main-chain đếu được public và có thể được người dùng theo dõi trạng thái liên tục. Do đó khi một khối mới được tạo ra trên nhánh con không được xác thực bằng chữ ký bí mật của người dùng, và gửi lên smart contract gốc, người chơi có thể nhận ra và gửi một bằng chứng là chữ ký của mình đến smart contract gốc, để hủy trạng thái mới vừa được thêm vào cây Merkle. Và sau đó tạo transaction khác để rút tài sản khỏi nhánh con một cách hợp lệ.
Plasma tạo ra một cơ chế để ngăn chặn sự gian lận trong việc rút tài sản khỏi nhánh con. Đấy là tất cả người tham gia đều có thể gửi một bằng chứng gian lận đến smart contract gốc, để chứng minh một giao dịch trên nhánh con là không hợp lệ, trước khi giao dịch đấy về được main-chain và đi vào hệ thống.
Nếu Alice muốn chuyển tài sản của mình từ nhánh con về main-chain, Alice sẽ phải đợi một khoảng thời gian để thông tin của mình được kiểm chứng. Trong khoảng thời gian đó, bất cứ nốt nào cũng có thể gửi thông tin về smart contract gốc chứng minh là Alice đã không còn sở hữu khối tài sản đó kể từ thời điểm Alice yêu cầu chuyển tài sản về main-chain.
Tuy nhiên việc rút tài sản khỏi nhánh con cũng có những rủi ro đáng kể. Trong điều kiện xấu nhất, khi mà tất cả người dùng trên nhánh con đồng loạt gửi yêu cầu chuyển tài sản về main-chain. Mạng Ethereum chưa t thể xử lý quá nhiều giao dịch cùng một lúc, nên với số lượng rất lớn yêu cầu, khoảng thời gian người dùng phải đợi để thông tin được kiểm chứng sẽ vượt quá khoảng thời gian mà smart contract gốc quy định, như vậy người dùng có thể bị mất hoàn toàn tài sản của mình trên nhánh con.
Kết luận
Bài viết của DeFiX tới đây là kết thúc. Hi vọng những thông tin này hữu ích với các nhà đầu tư!
Hãy theo dõi DeFiX.Network để cập nhật thêm nhiều thông tin thú vị, mới nhất về thị trường trường tài chính và tiền điện tử nhé.
Hẹn gặp lại các bạn trong các bài chia sẻ, hướng dẫn tiếp theo. Chúc các bạn đầu tư thành công!