Mempool là gì?
Mempool là một phần của một blockchain, đặc biệt là trong các blockchain sử dụng cơ chế Proof of Work (PoW) như Bitcoin và Ethereum. Mempool là nơi lưu trữ tạm thời các giao dịch mới mà chưa được đóng gói vào một Block mới.
Mặc dù thuật ngữ này lần đầu tiên được Bitcoin sử dụng, nhưng Mempool đã được mạng Ethereum chấp nhận. Các chuỗi Block khác có thuật ngữ riêng cho Mempool, nhưng về cơ bản, chúng đều giống nhau.
Mempool hoạt động như thế nào?
Khi một giao dịch được tạo ra trên mạng, nó sẽ được truyền tới các nút mạng trong hệ thống. Các nút mạng sẽ kiểm tra tính hợp lệ của giao dịch, ví dụ như xác nhận rằng người gửi có đủ số dư để thực hiện giao dịch đó và không gửi quá số lượng tối đa được cho phép. Sau khi giao dịch được xác nhận là hợp lệ, nó sẽ được đưa vào Mempool của các nút mạng.
Các Block mới được tạo ra bằng cách đóng gói một số giao dịch từ Mempool vào một Block mới và sau đó giải quyết một vấn đề toán học được gọi là "Proof of Work" để xác nhận khối đó. Các giao dịch trong Block mới sẽ được xác nhận và được đưa vào blockchain, trong khi các giao dịch không được bao gồm trong Block mới sẽ tiếp tục ở trong Mempool.
Kích thước của Mempool có thể thay đổi theo thời gian và tốc độ xử lý của mạng. Khi mạng có tốc độ xử lý chậm, Mempool có thể bị tắc nghẽn vì có quá nhiều giao dịch chờ đợi được xử lý, và các giao dịch này có thể mất nhiều thời gian để được xác nhận và được đưa vào blockchain.
Vòng đời giao dịch thông thường:
- Người dùng bắt đầu một giao dịch trong ví của họ, chẳng hạn như gửi tiền đến một ví khác và ký giao dịch bằng khóa riêng của họ.
- Giao dịch đã ký được phát tới một Node trên chuỗi Block (Ethereum, Bitcoin, v.v.).
- Node sẽ kiểm tra và xác thực giao dịch, thêm vào Mempool và phát tới các Node ngang hàng.
- Mỗi Node nhận giao dịch sẽ thực hiện tương tự, sao chép giao dịch trên toàn mạng.
- Một số Node này sẽ là các Node khai thác, sẽ thêm các giao dịch vào một Block và sau đó cạnh tranh để giải mã hash (một trong những phần quan trọng nhất của công nghệ nhằm giữ an toàn cho mạng lưới Bitcoin) của Block để trở thành Node được thêm vào chuỗi Block.
- Khi một người khai thác thành công và Block giao dịch được thêm vào chuỗi, Block mới sẽ được phát lại trên mạng.
- Tất cả các Node nhận được Block mới và có thể xem các giao dịch. Nếu có bất kỳ giao dịch khai thác nào được lưu trữ trong Mempool, thì chúng sẽ bị xóa.
Mempool, Full Node và Miner Node trong mạng Bitcoin có mối quan hệ như thế nào?
Mempool là nơi lưu trữ tạm thời các giao dịch mới mà chưa được đóng gói vào một Block mới. Các Full Node trên mạng Bitcoin đóng vai trò là các nút mạng hoàn chỉnh, chứa toàn bộ lịch sử giao dịch của blockchain và giúp duy trì tính toàn vẹn của mạng. Các Full Node sẽ nhận các giao dịch mới từ mạng và kiểm tra tính hợp lệ của chúng trước khi đưa chúng vào Mempool. Điều này đảm bảo rằng các giao dịch được đưa vào Mempool là hợp lệ và có thể được bao gồm vào Block mới.
Miner Node là các nút mạng đóng vai trò là các thợ đào, có nhiệm vụ đóng gói các giao dịch từ Mempool vào Block mới và giải quyết một vấn đề toán học để xác nhận Block đó. Khi một Block mới được tạo ra, các giao dịch trong Block đó được xác nhận và được đưa vào blockchain, trong khi các giao dịch không được xác nhận trong Block mới sẽ tiếp tục ở trong Mempool và chờ đợi đến khi được xác nhận trong Block mới.
Do đó, mối quan hệ giữa Mempool, Full Node và Miner Node trong mạng Bitcoin là rất quan trọng. Mempool lưu trữ các giao dịch mới, Full Node kiểm tra tính hợp lệ của chúng và đưa chúng vào Mempool, và Miner Node đóng gói các giao dịch từ Mempool vào Block mới. Tất cả các thành phần này cùng hoạt động để đảm bảo tính toàn vẹn và độ tin cậy của mạng Bitcoin.
Phí giao dịch ảnh hưởng đến Mempool như thế nào?
Mempool không phải là một không gian vô hạn. Kích thước của bộ nhớ khả dụng sẽ phụ thuộc vào Node riêng lẻ. Mặc dù kích thước Mempool mặc định là 300 MB, nhưng mỗi Node sẽ có các quy tắc riêng đối với những giao dịch được cho phép.
Khi Node gần đạt đến giới hạn RAM, sẽ đặt mức phí tối thiểu và thông báo tới các Node khác để chúng không chuyển tiếp các giao dịch dưới mức này trong thời điểm hiện tại.
Một Node có Mempool nhỏ hơn hoặc lớn hơn có thể hủy giao dịch sớm hơn hoặc muộn hơn, dẫn đến kích thước Mempool khác nhau.
Đây là nguyên nhân gây tắc nghẽn và tại thời điểm này, người dùng có thể đợi hết tắc nghẽn (khi một Block được khai thác và các giao dịch khác được xóa khỏi hàng đợi) hoặc họ có thể trả phí cao hơn để thử đẩy giao dịch của mình nhanh hơn.
Cách tăng tốc độ giao dịch Bitcoin
Nếu bạn thấy giao dịch Bitcoin của mình đang ở trạng thái “chờ xử lý” lâu hơn nhiều so với mong muốn của bạn, thì vẫn hoàn toàn có cách để bạn có thể tăng tốc độ giao dịch.
Cách thực hiện việc này sẽ phụ thuộc vào kiến trúc ví bạn đang sử dụng. Bạn có thể được lựa chọn Replace-by-Fee (Thay thế bằng Phí - RBF). Điều này cho phép bạn thay thế mức phí thấp hơn bằng mức phí cao hơn.
Nếu ví của bạn không hỗ trợ tính năng này, bạn có thể phải sử dụng kỹ thuật CPFP. Về cơ bản, bạn phát một giao dịch mới (giao dịch con) bằng cách sử dụng thay đổi (unspent output - đầu ra giao dịch chưa chi tiêu) từ giao dịch gốc ban đầu, nhưng với mức phí cao hơn nhiều. Tuy nhiên, để người khai thác có được mức phí cao hơn, họ cũng phải xác thực giao dịch ban đầu với mức phí thấp hơn.
Cách tăng tốc giao dịch Ethereum
Phí Ethereum được gọi là gas.
Trên mạng Ethereum, bạn có ba tùy chọn, bạn chỉ cần chờ xem liệu giao dịch của mình có được chấp nhận hay không khi tắc nghẽn giảm bớt. Hoặc bạn có thể tăng tốc giao dịch bằng cách thêm gas hoặc hủy giao dịch để thử lại sau.
Về cơ bản, việc hủy bỏ và “tăng tốc” được ghi đè lên một giao dịch đang chờ xử lý. Việc hủy sẽ ghi đè bằng thay thế có giá trị bằng 0, trong khi tăng tốc đang bổ sung gas nhằm tăng tốc độ xác thực giao dịch đang chờ xử lý. Chỉ cần lưu ý rằng những hành động này là nỗ lực và giao dịch ban đầu của bạn vẫn có thể được chấp nhận.
Cách tốt nhất để các giao dịch được xác thực kịp thời là trả một khoản phí hợp lý ngay từ đầu. Cách để làm điều đó là với dữ liệu Mempool.
Các Miner (thợ đào) sử dụng Mempool như thế nào?
Các Miner (thợ đào) sử dụng Mempool để lựa chọn các giao dịch khi đưa vào Block mới. Nếu một giao dịch mới được tạo ra trên mạng Bitcoin, giao dịch sẽ được truyền tới các Node mạng và được đưa vào Mempool - nơi lưu trữ tạm thời các giao dịch mới chưa được đóng gói vào Block.
Các Miner thường sẽ lựa chọn các giao dịch có phí cao hơn để đảm bảo rằng họ sẽ được ưu tiên xử lý trước. Các giao dịch có phí cao hơn cũng có khả năng được tiếp cận với Block nhanh hơn, do đó sẽ giúp tăng cơ hội của Miner để giành được phần thưởng khai thác.
Tuy nhiên, việc lựa chọn các giao dịch để đưa vào Block mới không chỉ phụ thuộc vào phí của giao dịch. Các Miner cũng cần xem xét kích thước Block và tốc độ xử lý của mạng Bitcoin để đảm bảo rằng Block mới có thể được xác nhận và được đưa vào blockchain một cách nhanh chóng và hiệu quả.