Tổng quan về MEV (Part 1)
Bài viết lần này sẽ nói đến MEV - một chủ đề khá nóng trong thời gian gần đây. Vậy MEV là gì? Nó hoạt động như thế nào? Và quan trọng nhất nó ảnh hưởng đến mọi người ra sao? Nào mình cùng bắt đầu nhé.
Cách mà Blockchain hoạt động
Như chúng ta đã biết, blockchain bao gồm nhiều thành phần trong đó như: block, chain, transaction data, v.v… Ngoài ra còn có các bên liên quan như users, block productors, validators, miners v.v.. Đầu tiên, khi bạn approve và sign một transaction để đưa vào blockchain, transaction của bạn sẽ được gửi đến một node. Các node sẽ chia sẻ giao dịch đã ký của bạn vào một public pool đang chờ xử lý được gọi là mempool.
Miners chọn các transaction từ mempool này và gộp chúng thành một block và bắt đầu tính toán tất cả dữ liệu trong block (ETH transfer, contract interactions, v.v…). Cuối cùng, họ sẽ “mine” khối block đó, bằng Proof-of-Work để xác thực tính hợp lệ của trạng thái blockchain mới. Khi hoàn tất, khối block được xuất bản và trở thành 1 phần của chuỗi blockchain.
Để hiểu chi tiết hơn có thể xem qua 2 website dưới này, nó giải thích một transaction sẽ đi vào mempool và được đưa vào block như thế nào, mất bao lâu dựa vào giá gas.
Một vài điểm cần chú ý bao gồm:
1. Miner có thể chọn bất cứ giao dịch nào để tạo thành một block nhất định. Một block có thể 10, 20 hay 50 transactions miễn là chúng hợp lệ. Giới hạn duy nhất về số lượng transaction đó là giới hạn gas tối đa của một block.
2. Miner có thể thực hiện các transaction trong khối block theo bất kỳ thứ tự nào họ muốn. Các transaction vào mempool theo thứ tự A, B, C, D, E thì chúng có thể được sắp xếp theo thứ tự thực hiện theo ý muốn của miner chẳng hạn như D, C, A, E, B.
MEV là gì?
Miner Extractable Value (MEV) được hiểu là khoản lợi nhuận mà miner có được từ đặc quyền trong việc lựa chọn và sắp xếp các transaction vào khối block.
Ví dụ dễ hiểu, giả sử bạn là user và muốn bán 1 token nào đó. Trong tình huống không có MEV diễn ra, lệnh bán đó sẽ nằm ngẫu nhiên giữa các giao dịch mua và bán khác. Tuy nhiên, nếu bạn là miner và muốn đặt lệnh bán, bạn có thể tạo một block bao gồm cả giao dịch “bán” của bạn và giao dịch “mua” của user khác. Sau đó, sắp xếp các transaction đó vào block để có một chuỗi mua ban đầu của những người dùng khác, đẩy giá lên và cuối cùng bán với giá cao hơn.
Một ví dụ khác, giả sử một user đang thực hiện 1 giao dịch có lợi nhuận, như giao dịch chênh lệch giá (arbitrage) hoặc snipping một NFT được list dưới giá floor. Người dùng bắt đầu gửi giao dịch đến mempool. Miner lúc này sẽ đánh giá xem giao dịch đó có mang lại lợi nhuận hay không, nếu có thì sẽ sao chép giao dịch đó rồi chèn lệnh của miner vào trước transaction của user ban đầu. Điều này được gọi là “Extractable” -khoản lợi nhuận mà miner có được vì đặc quyền của mình.
Các loại MEV chính đang phổ biến hiện nay
Có nhiều loại MEV hiện đang được sử dụng rộng rãi nhưng có thể rút ra được 4 loại MEV chính đang phổ biến hiện nay:
1. Sandwich attacks
2. Frontrunning
3. Arbitrage
4. Just-In-Time Liquidity
Sandwich Attacks
Sandwich attacks là phương thức tấn công phổ biến nhất của MEV. Bằng cách tạo ra cặp giao dịch mua/bán dùng để chèn vào giao dịch mua/bán của user trên DEX. Chúng ta hãy thử hình dung, users swap token A lấy token B trên DEX. Miner sẽ bắt đầu chèn lệnh swap Token A cho Token B phía trước transaction của user (mua thấp), điều này đẩy giá của token B lên cao hơn. Transaction của user lúc này mới trôi lệnh đi nhưng lại ở mức giá cao (thu được ít token B hơn họ mong đợi) và tiếp tục đẩy giá trị cao hơn. Cuối cùng, miner sẽ thêm một giao dịch để bán lại token B của họ về token A (bán cao), và bỏ túi phần chênh lệch.
Một số lưu ý quan trọng trong Sandwich attacks:
· Các nhóm có tính thanh khoản thấp (low-liquidity pools) là nơi dễ bị Sandwich attacks nhất.
· Các nhóm có độ trượt giá thấp (low-slippage pools) Uniswap V3 hoặc các stableswap algorithms ít bị tấn công hơn.
· Số lượng giao dịch nhỏ gây ra ít sự trượt giá hơn, vì vậy chúng ít có khả năng bị tấn công bởi MEV hoặc đòi hỏi miner phải bỏ nhiều vốn hơn để tạo ra lợi nhuận.
Frontrunning
Đơn giản, frontrunning nghĩa là thực hiện một giao dịch có lợi nhuận trước giao dịch của user ban đầu. Giả sử ai đó vô tình listing NFT của họ dưới mức giá floor price. Một người dùng thấy điều đó và đặt lệnh để mua nó. Lúc này miner chỉ cần quan sát điều này và chèn giao dịch mua trước giao dịch của người dùng, mine khối block và thu được NFT đó.
Ngoài ra cũng có các bot frontrunning thực hiện việc này. Các bot frontrunning sẽ sao chép các giao dịch trong mempool, mô phỏng việc gửi giao dịch đó từ tài khoản của chính họ và nếu nó tạo ra lợi nhuận thành công, bot sẽ frontrun lệnh call ban đầu cách sử dụng giao dịch được sao chép. Bot không cần phải biết hoặc quan tâm đến những gì bạn đang làm, chỉ biết tạo ra lợi nhuận và nó có thể tự nhân đôi lệnh call.
Arbitrage
Arbitrage là hình thức kinh doanh rất phổ biến không chỉ trong thị trường crypto mà cả bên ngoài thị trường tài chính. Đây là hình thức kinh doanh chênh lệch giá, mua thứ gì đó rẻ ở một nơi và bán nó với giá cao hơn ở nơi khác. Trong trường hợp MEV, bạn có thể tiến hành mua bán chênh lệch giá (trong một khối duy nhất) ngay khi có cơ hội. Miner có lợi thế hơn trong kinh doanh chênh lệch giá vì họ có thể dễ dàng thực hiện lệnh mua và bán chỉ trong 1 block duy nhất.
Just-In-Time Liquidity
Loại MEV phổ biến này có một chút khác biệt hơn so với các loại khác. MEV này ảnh hưởng đến các giao dịch token ở trên sàn DEX, chủ yếu tập trung vào các liquid provider chứ không phải là swapper, đặc biệt xuất hiện ở Uniswap V3.
Miner sẽ lùng sục trong mempool để tìm các giao dịch swap lớn đang chờ xử lý và họ bắt đầu thêm liquidity cho các pool liên quan trước khi giao dịch swap được xác nhận. Điều này cho phép Miner nhận được một khoản số lượng lớn phí giao dịch và sau đó rút thanh khoản đó ra trong cùng một khối.
Đối với những người dùng bình thường thì điều này có lợi bởi vì chịu ít sự trượt giá. Tuy nhiên, điều đó không tốt cho các Liquid Provider, vì nó cướp đi các khoản phí mà lẽ ra họ phải nhận được, làm giảm lợi nhuận của họ.
Flashbots
Đây là loại MEV cuối cùng và là chủ đề chính cho bài sau.
Flashbot được xem như là MEV-as-a-service. Người dùng có thể gửi một hoặc nhiều transaction được sắp xếp cụ thể đến Flashbot. Các giao dịch này sẽ đi qua một Private RPC và không bao giờ đi qua public mempool. Vì vậy miner sẽ không thể lấy chúng rồi thực hiện các hành động MEV. Flashbot miners sẽ thực hiện nhiệm vụ của mình và sau đó nhận lại được phần thưởng từ chính những người dùng sử dụng dịch vụ mà không chia sẻ lợi nhuận cho các bên khác.