Một giao dịch Ethereum bị kẹt hoặc đang chờ xử lý có thể bị hủy hoặc sửa đổi bằng hai phương pháp: hủy trong ứng dụng và đặt số lần sử dụng tùy chỉnh.
Ethereum là một nền tảng phần mềm dựa trên blockchain mã nguồn mở với hàng nghìn ứng dụng phi tập trung (DApps) hỗ trợ tiền điện tử gốc của nó, Ether, có thể được gửi và nhận trên toàn cầu mà không có bất kỳ sự can thiệp nào của bên thứ ba.
Lần đầu tiên được khái niệm hóa vào năm 2013 bởi lập trình viên người Canada gốc Nga Vitalik Buterin, Ethereum được thiết kế như một nền tảng để DApps tự thực hiện, vĩnh viễn và không thể thay đổi với các trường hợp sử dụng khác nhau, từ tài chính đến chơi game và nghệ thuật.
DApps thường được gọi là hợp đồng thông minh, là các giao thức giao dịch Ethereum tự động thực hiện một số chức năng và hành động nhất định như xử lý giao dịch với các điều kiện và thỏa thuận được xác định trước. Gửi giao dịch, hủy giao dịch hoặc giải quyết giao dịch Ethereum đang chờ xử lý là các hành động liên quan đến hoạt động của hợp đồng thông minh.
Nội dung bài viết
Giao dịch Ethereum là gì?
Giao dịch là các hướng dẫn được ký bằng mật mã từ các tài khoản.
Mạng Ethereum hỗ trợ hai loại giao dịch chính: giao dịch triển khai hợp đồng, loại giao dịch không có người nhận và giao dịch thông thường, loại giao dịch đơn giản nhất được sử dụng để chuyển ETH từ ví này sang ví khác.
Giao dịch Ethereum thông thường được gửi bao gồm mã nhận dạng của người gửi hoặc chữ ký được tạo khi khóa riêng của người gửi ký vào giao dịch và xác nhận rằng người gửi đã ủy quyền cho giao dịch Ethereum cụ thể. Địa chỉ nhận, số lượng ETH cần chuyển từ người gửi sang người nhận, thông tin về phí giao dịch Ethereum và trường tùy chọn để bao gồm dữ liệu tùy ý đều là một phần của giao dịch Ethereum thông thường được gửi.
Các giao dịch Ethereum phải được khai thác để có hiệu lực và yêu cầu người gửi phải trả phí.
Người khai thác Ethereum xác minh các giao dịch hợp pháp để nhận phần thưởng cho công việc của họ trong việc tạo ra ETH mới. Khi người khai thác giải được câu đố về mật mã (toán học), giao dịch được coi là xác thực. Ethereum, giống như Bitcoin, có hệ thống bằng chứng công việc (PoW) để ngăn chặn các cuộc tấn công mạng từ một cá nhân hoặc một nhóm.
Nghĩa vụ của người dùng phải trả phí giao dịch khi sử dụng Blockchain sẽ bảo vệ mạng Ethereum khỏi các tác vụ tính toán cẩu thả hoặc độc hại, chẳng hạn như người dùng gửi thư rác vào Blockchain với tình trạng quá tải các giao dịch không có mục đích.
Vòng đời giao dịch Ethereum
Một giao dịch Ethereum trải qua một loạt các trạng thái, bắt đầu từ trạng thái chưa xác định cho đến khi nó được xác nhận trong một khối.
Không xác định (Unknown): Trạng thái không xác định đề cập đến giao dịch mà mạng chưa nhìn thấy hoặc xử lý.
Đang chờ xử lý (Pending): Khi một giao dịch ở trạng thái chờ xử lý, nó đang chờ người khai thác nhận và xử lý giao dịch đó, được gọi là giao dịch gộp, còn được gọi là “mempool”. Bởi vì các công ty khai thác ưu tiên giá gas cao hơn nên các giao dịch có giá trị gas thấp hơn có thể bị trì hoãn trong giai đoạn chờ xử lý trong một thời gian dài. Các giao dịch có giá gas thấp nhất có thể không bao giờ được thực hiện, khiến chúng “mắc kẹt” vĩnh viễn trong trạng thái chờ xử lý.
Trong khối (In block): Khi người khai thác chọn thành công một giao dịch và khai thác nó trong một khối, nó sẽ chuyển sang trạng thái trong khối. Giao dịch trong khối được gọi là giao dịch được khai thác. Nếu khối bị phân nhánh, giao dịch trong khối có thể trở về trạng thái chờ xử lý. Khi một giao dịch được khai thác (tức là một giao dịch ở trạng thái khối) bị mạng đảo ngược, nó được gọi là giao dịch phân nhánh.
Đã thay thế (Replaced): Khi xảy ra một trong các trường hợp sau, giao dịch có thể được chuyển từ trạng thái chờ xử lý sang trạng thái được thay thế:
- Một giao dịch mới có cùng số nonce từ cùng một người gửi sẽ chuyển sang trạng thái trong khối hoặc
- Một giao dịch khác có cùng số lần sử dụng và giá gas cao hơn 12% sẽ bước vào giai đoạn chờ xử lý, lần này là từ cùng một người gửi.
Xác nhận giao dịch Ethereum
Xác nhận giao dịch Ethereum là số khối được tạo kể từ khối đầu tiên bao gồm giao dịch này.
Một giao dịch Ethereum đang chờ xử lý cần nhận được một số xác nhận nhất định. Phí gas càng cao thì độ tin cậy của mạng Ethereum đã xử lý và nhận ra giao dịch càng cao.
Các khối gần đây có thể được tổ chức lại, tạo cảm giác rằng quá trình xử lý giao dịch đã thất bại. Mặc dù vậy, giao dịch có thể được đưa vào một khối khác và vẫn hợp lệ. Xác suất tổ chức lại giảm dần theo từng khối được khai thác sau đó, nghĩa là càng có nhiều xác nhận thì giao dịch càng trở nên bất biến.
Phí giao dịch Ethereum
Phí giao dịch là một khoản khuyến khích được người dùng trả để chặn các thợ mỏ. Nó được sử dụng để gửi một giao dịch cụ thể trong Blockchain Ethereum.
Phí giao dịch Blockchain Ethereum còn được gọi là phí gas, vì chúng liên quan đến gas, một cơ chế định giá được sử dụng trên mạng Ethereum đề cập đến tính toán cần thiết để xử lý giao dịch của người khai thác. Các nhiệm vụ tính toán của một giao dịch được đo bằng chi phí gas.
Mặt khác, mỗi đơn vị gas có giá gas được tính bằng ETH. Mặc dù mức độ phức tạp của một giao dịch cụ thể quyết định chi phí gas, nhưng người dùng có thể đặt giá và giới hạn gas của riêng mình hoặc số lượng đơn vị gas tối đa mà giao dịch tiêu thụ.
nonce là gì?
Nonce là tên viết tắt của “số chỉ được sử dụng một lần”, đề cập đến tổng số giao dịch được xác nhận được gửi từ địa chỉ Ethereum nhất định.
Ví Ethereum có thể phát nhiều giao dịch từ một tài khoản mà không có nhiều độ trễ giữa các tài khoản khác, có nghĩa là phép tính nonce được coi là cơ chế cần thiết để xác định giao dịch nào được xử lý trước. Thông thường, các ứng dụng ví Ethereum sẽ đảm nhiệm việc quản lý nonce cho người dùng.
Làm cách nào để hủy giao dịch Ethereum?
Có hai phương pháp chính để hủy giao dịch Ethereum đang chờ xử lý: hủy trong ứng dụng và đặt số lần sử dụng tùy chỉnh.
Thông thường, các giao dịch Ethereum đang chờ xử lý hàng giờ hoặc bị kẹt khi người dùng gửi với giá gas thấp. Vì vậy, người dùng thường thấy cần thiết phải thay đổi các giao dịch Ethereum.
Khi giải quyết vấn đề này, người dùng cần nhớ rằng chỉ có thể thử hủy nếu giao dịch vẫn đang chờ xử lý trên mạng. Bước đầu tiên họ cần thực hiện là xác minh trong trình khám phá khối xem giao dịch có còn đang chờ xử lý hay không. Chủ yếu là để dán hàm băm giao dịch, còn được gọi là ID giao dịch Ethereum và nếu trình khám phá khối cho biết “đang chờ xử lý”, người dùng vẫn có thể thử hủy nó.
Cách dễ nhất để hủy giao dịch Ethereum bị kẹt là hủy trong ứng dụng, yêu cầu người dùng thoát khỏi ứng dụng ví Ethereum và đóng trình duyệt của họ, mở lại và đăng nhập lại vào ứng dụng.
Nếu các bước này không giải quyết được vấn đề, cách thứ hai sẽ ra tay giải cứu.
Việc hủy giao dịch Ethereum đang chờ xử lý bằng cách đặt nonce tùy chỉnh có nghĩa là tạo giao dịch 0 ETH với giá gas cao đến địa chỉ của chính người dùng để ngăn giao dịch trước đó bị kẹt. Trước khi gửi giao dịch thứ hai này, người dùng cần lưu ý nonce đang được sử dụng bởi giao dịch đang chờ xử lý ban đầu và sau đó sử dụng lại chính nonce mà họ đã ghi chú.
Nếu người dùng có nhiều giao dịch Ethereum đang chờ xử lý, tốt nhất họ nên bắt đầu với giao dịch cũ nhất hoặc giá trị nonce thấp nhất.
Làm cách nào để tăng tốc giao dịch Ethereum?
Người dùng có thể tăng tốc độ giao dịch Ethereum chậm bằng cách thêm gas vào đó. Bước này có thể khuyến khích các công ty khai thác Ethereum ưu tiên nó.
Nếu người dùng Ethereum đặt giá gas quá thấp, những người dùng khác sẽ có cơ hội trả giá cao hơn giá thầu ban đầu này và giao dịch sẽ vẫn đang chờ xử lý. Khi giao dịch bị kẹt, mạng sẽ không xác nhận bất kỳ giao dịch mới nào từ cùng một địa chỉ ví cho đến khi người khai thác xác nhận giao dịch đầu tiên.
Trong tình huống này, người dùng có thể chọn đợi cho đến khi mạng sẵn sàng xử lý giao dịch ở mức giá đã đặt hoặc gửi lại giao dịch ban đầu nhưng với phí gas cao hơn. Nhấp vào nút “tăng tốc” trong ví Ethereum của họ sẽ cho phép giao dịch được xử lý nhanh hơn.
Nếu bước trước không hiệu quả, người dùng có thể chuyển đến tab nâng cao để đặt giá gas theo cách thủ công.
Sau cùng, người dùng nên tìm kiếm giao dịch trên blockchain explorer bằng cách đăng hàm băm của nó để xem liệu nó có được xử lý thành công hay không. Nếu giao dịch không hiển thị ngay lập tức, họ sẽ phải đợi vài phút và làm mới trang.
Giao dịch Ethereum có thể bị đảo ngược không?
Ví Ethereum không thể hoàn nguyên các giao dịch Ethereum đã hoàn thành.
Khi người dùng Ethereum vô tình gửi tiền đến sai địa chỉ hoặc gửi sai số lượng ETH, họ có thể hủy giao dịch trong khi giao dịch vẫn đang chờ xử lý. Khi giao dịch được xác nhận và hiển thị là “Thành công”, nghĩa là nó đã được thêm vào khối tiếp theo thì không thể đảo ngược được. Blockchain Ethereum được thiết kế là bất biến, do đó các khối dữ liệu được nhập là không thể đảo ngược. Biết được điều này, điều cần thiết là phải đảm bảo rằng các chi tiết giao dịch là chính xác trước khi nhấp vào nút gửi.
Cuối cùng, điều đáng chú ý là nhiều công ty khởi nghiệp blockchain đã phát triển các cơ chế cho phép người dùng đảo ngược các giao dịch Ethereum.
Cảm ơn sự theo dõi và đón đọc của các bạn. Đừng quên để lại bình luận của bạn dưới bài viết để Fiahub hỗ trợ giải đáp nhé.
Freelancer Marketing và Content Creator với gần 10 năm kinh nghiệm; trong đó có khoảng hơn 3 năm làm việc trong mảng Blockchain với vai trò Dịch Thuật và Copywriter.
Với kiến thức sâu rộng cùng khả năng diễn giải để những thuật ngữ công nghệ khó hiểu trở nên gần gũi hơn với người đọc. Lê Hoàng đảm nhiệm những bài viết trong chuyên mục "Từ Điển Crypto" và "Hướng Dẫn Người Mới" tại Fiahub Blog