Giao dịch kẹt: vì sao xảy ra và cách thay thế bằng phí gỡ bạn ra

·6 phút đọc·Bởi SSP Editorial Team
Ảnh bìa SSP Academy: giao dịch tiền mã hóa bị kẹt và thay thế bằng phí

Giao dịch kẹt: vì sao xảy ra và cách thay thế bằng phí gỡ bạn ra

Bạn đã gửi một khoản thanh toán. Ví báo «đang chờ». Một giờ trôi qua. Rồi ba giờ. Trình duyệt khối cho thấy giao dịch của bạn ngồi trong vùng chờ, chưa được xác nhận, và có vẻ như là mãi mãi.

Chẳng có gì hỏng và chẳng có gì mất. Bạn chỉ trả giá thấp trong một phiên đấu giá, và phiên đấu giá ấy vẫn đang chạy.

Phí là một cuộc đấu giá, không phải một cái giá

Không gian khối là khan hiếm, và sẽ mãi như vậy. Mỗi khối chứa được một lượng dữ liệu giao dịch có hạn, và thợ đào chọn đưa giao dịch nào vào. Họ chọn theo mức phí — satoshi trên mỗi byte ảo — bởi đó là thứ tối đa hóa doanh thu của họ.

Nghĩa là khoản phí bạn đính kèm không phải một cái giá cho một dịch vụ. Nó là một lời trả giá trong một cuộc đấu giá liên tục, đấu với tất cả những người khác đang muốn lọt vào khối kế tiếp.

Hai hệ quả nảy ra từ đó, và cả hai đều trái với trực giác:

Phí của bạn chỉ có nghĩa khi đặt cạnh phí của mọi người khác. Cũng mức phí ấy, thứ Ba tuần trước xác nhận trong mười phút, có thể nằm im hai ngày vào một cuối tuần đông đúc. Giao dịch của bạn chẳng thay đổi gì; thứ thay đổi là mức cạnh tranh.

Không có thời gian chờ nào cả. Một giao dịch trả giá thấp không hết hạn và cũng không thất bại. Nó chờ trong vùng chờ trong khi những người trả cao hơn vượt qua, và nó có thể chờ vô thời hạn. Rốt cuộc các nút sẽ loại những giao dịch quá cũ khỏi vùng chờ của mình — thường sau chừng hai tuần — nhưng đó là một mặc định dọn dẹp cục bộ, không phải luật của giao thức, và bạn không thể trông cậy vào nó như một lối thoát.

Chính điểm thứ hai ấy khiến giao dịch kẹt trở nên khó chịu đến thế. Không thông báo lỗi, không hoàn tiền, không hành động nào rõ ràng. Chỉ có một vòng quay chẳng bao giờ dừng.

Vì sao giao dịch của bạn bị kẹt

Ước tính phí đã cũ. Các bộ ước tính đọc điều kiện gần đây. Nếu vùng chờ đầy lên giữa lúc bạn ước tính và lúc bạn phát đi — một sàn lớn đang gộp tiền, một đợt đúc NFT, một làn sóng ordinals — lời trả giá của bạn lập tức nằm dưới giá thị trường.

Bạn chọn mức tiết kiệm và nhận đúng thứ mình yêu cầu. Các mức ưu tiên thấp rành rành là một canh bạc rằng tắc nghẽn sẽ dịu đi. Thường thì đúng vậy. Đôi khi thì không.

Giao dịch của bạn lớn về mặt vật lý. Mức phí tính theo byte, nên một giao dịch tiêu nhiều đầu vào nhỏ sẽ tốn hơn để được xác nhận so với một giao dịch đơn giản cùng số tiền. Những chiếc ví đầy bụi va vào chuyện này liên tục.

Bạn đang tiêu một đầu vào chưa xác nhận. Nếu bạn tiêu tiền thừa từ một giao dịch chưa xác nhận, giao dịch mới không thể xác nhận cho tới khi giao dịch cha xác nhận. Một khoản thanh toán kẹt có thể lặng lẽ mắc cạn mọi thứ nối sau nó.

Thay thế bằng phí: cách sửa thật sự

Thay thế bằng phí, được quy định trong BIP 125, cho phép bạn phát đi một giao dịch thay thế cho một giao dịch chưa xác nhận, trả mức phí cao hơn. Các nút bỏ bản gốc và chuyển tiếp bản mới; thợ đào lấy lời trả giá tốt hơn. Chỉ một trong hai có thể được xác nhận — chúng tiêu cùng những đầu vào, nên loại trừ nhau ngay từ cấu tạo.

Đây không phải khoản thanh toán thứ hai. Đây là cùng một khoản thanh toán, được trả giá lại.

Có hai chi tiết quan trọng trong thực tế.

Giao dịch phải được đánh dấu là thay thế được từ trước. RBF là tùy chọn: nó được báo hiệu bằng cách đặt số thứ tự của một đầu vào thấp hơn 0xfffffffe. Quy ước của Bitcoin Core là 0xfffffffd, và đó chính là thứ SSP đặt — đúng theo nghĩa đen là 0xffffffff - 2 trong bộ dựng giao dịch. Nếu một giao dịch không được đánh dấu thay thế được lúc tạo, phần lớn các nút sẽ từ chối bản thay thế, và lựa chọn của bạn hẹp đi đáng kể.

Bản thay thế phải vượt một ngưỡng sàn, và cái sàn hiển nhiên nhất lại là sai. Quy tắc thứ tư của BIP 125 đòi bản thay thế trả ít nhất bằng phí gốc cộng với kích thước của chính nó tính theo mức chuyển tiếp tối thiểu. Chỗ này làm nhiều người vấp: nâng từ «tiết kiệm» lên «bình thường» có thể tăng mức phí trong khi kích thước gần như không đổi, và nếu phép tính hụt, nút sẽ từ chối bản thay thế và bạn chẳng được gì. SSP tính rõ ngưỡng sàn ấy trước khi dựng bản thay thế, nên mức phí mới chắc chắn vượt quy tắc 4 thay vì bị mạng lưới lặng lẽ từ chối.

Trong SSP, một giao dịch chưa xác nhận và thay thế được sẽ hiện hành động Thay thế bằng phí trong danh sách giao dịch. Nó điền sẵn cùng người nhận và cùng số tiền, mang theo phí của giao dịch bị thay thế để ngưỡng sàn có thể tính được, rồi dẫn bạn ký bản thay thế trên cả hai thiết bị y như bất kỳ khoản thanh toán nào khác. Chữ ký thứ hai vẫn bắt buộc — một bản thay thế là một giao dịch mới, và không gì được ký bằng một thiết bị.

Không phải chuỗi nào cũng cho phép

RBF là một lựa chọn chính sách, không phải một tính năng phổ quát, và các chuỗi mà SSP hỗ trợ thật sự khác nhau:

ChuỗiThay thế được trong SSP
Bitcoin
Litecoin
Dogecoin
Ravencoin
Bitcoin CashKhông
ZcashKhông
FluxKhông

Việc Bitcoin Cash bị loại là chủ ý từ phía chuỗi ấy: BCH gỡ bỏ RBF để các khoản thanh toán không cần xác nhận đáng tin hơn ở điểm bán hàng. Đó là một sự đánh đổi thật sự chứ không phải sơ suất — bạn được thêm niềm tin vào các khoản thanh toán chưa xác nhận và mất khả năng sửa một khoản trả giá thấp. Zcash và Flux cũng không chuyển tiếp các bản thay thế.

Trên những chuỗi ấy, một giao dịch định giá hụt buộc phải chờ cho qua. Đó cũng chính là lý lẽ mạnh nhất để đừng trả giá thấp ngay từ đầu trên một chuỗi sẽ không cho bạn rút lại.

Làm gì khi chuyện đó xảy ra

Trước hết, hãy chờ một chút. Tắc nghẽn vùng chờ có tính đột biến. Một giao dịch trông như vô vọng lúc chín giờ tối thường xác nhận qua đêm, khi đống tồn đọng thoát đi. Hãy xem một công cụ hiển thị vùng chờ trước khi tiêu tiền cho một cách sửa.

Nếu nó thay thế được và bạn đang vội, hãy thay thế. Chọn một mức phí trên mức hiện tại ở đáy khối kế tiếp, chứ không chỉ trên mức gốc của bạn. Trả cao hơn một chút so với một lời trả giá đã thua chính là cách để phải làm việc này hai lần.

Đừng phát đi một khoản thanh toán thứ hai. Nếu khoản đầu rốt cuộc được xác nhận, bạn đã trả hai lần. Bản thay thế an toàn chính vì nó loại trừ lẫn nhau với bản gốc; một giao dịch riêng biệt thì không.

Đừng tiêu tiền thừa từ một giao dịch bị kẹt. Bạn sẽ nối một giao dịch kẹt thứ hai vào giao dịch thứ nhất.

Nếu không thay thế được, hãy chờ. Trên các chuỗi không có RBF, giao dịch hoặc sẽ xác nhận khi tắc nghẽn tan đi, hoặc rốt cuộc bị loại khỏi các vùng chờ, sau đó số tiền lại tiêu được. Đừng thử các dịch vụ «hủy giao dịch»; chẳng có thứ đó.

Tránh nó lần sau

Hãy nhìn mức phí, đừng chỉ nhìn nhãn của mức. «Tiết kiệm» có nghĩa khác nhau vào một Chủ nhật yên ắng và trong một đợt phí tăng vọt. Phần lớn các ví, kể cả SSP, đều cho bạn thấy mức phí thật.

Hãy khớp mức khẩn với mức phí một cách trung thực. Một khoản thanh toán thật sự không gấp trong một ngày thì nên dùng phí thấp — đó chính là ý nghĩa của mức ấy. Một khoản bạn sẽ hồi hộp làm mới liên tục thì không nên.

Giữ tập UTXO của bạn gọn gàng. Gộp các đầu vào nhỏ khi phí đang thấp khiến mọi giao dịch tương lai nhỏ hơn và rẻ hơn. Đó là điều hiệu quả nhất mà một người nắm giữ dài hạn có thể làm về mặt phí, và thời điểm tốt nhất là khi chẳng ai khác muốn không gian khối.

Hãy chọn chuỗi và thời điểm một cách có chủ đích. Chiến lược phí là một kỹ năng thật, và phần lớn của nó chỉ là nhận ra rằng không gian khối có lúc rẻ hơn lúc khác.

Một giao dịch kẹt là một trong số ít vấn đề tiền mã hóa thật sự lành tính. Tiền của bạn chưa từng rời khỏi quyền kiểm soát của bạn, không có kẻ tấn công nào dính líu, và cách sửa là một tính năng giao thức được đặc tả rõ ràng. Nó chỉ giống một tình huống khẩn cấp vì giao diện chẳng đưa ra lời trấn an nào — bản thân điều đó đã là một lý do để hiểu chuyện gì đang diễn ra bên dưới.

Chia sẻ bài viết này

Bài viết liên quan