Tính bất biến của các giao dịch blockchain vừa là một may mắn vừa là một lời nguyền.
Tấn công mạng lừa đảo BAYC. Tấn công PolyNetwork. Cầu Hòa Hợp Hacking. Vụ trộm Ronin. 14 tỷ đô la tiền điện tử sẽ bị đánh cắp chỉ trong năm 2021. Những thứ này - và nhiều thứ nữa - đều là những vụ trộm đã được xác nhận, nhưng không có "nút hoàn tác" (ví dụ: đảo ngược các khoản thanh toán bằng thẻ tín dụng) và không phải ai cũng có Jump Crypto để lưu chúng khi có nhu cầu.
Nhưng nếu có một loại mã thông báo có thể đảo ngược thì sao?
Đây là câu hỏi mà một số nhà nghiên cứu của chúng tôi tại Stanford (Dan Boneh, Qinchen Wang và tôi) đã cố gắng trả lời trong vài tháng qua. Chúng tôi đã thiết kế các tiêu chuẩn mã thông báo chọn tham gia tương tự như ERC-20 và ERC-721, đồng thời hỗ trợ các giao dịch đảo ngược (khi có đủ bằng chứng để hỗ trợ), viết một bài báo về chúng và triển khai một số nguyên mẫu . Chúng tôi gọi các tiêu chuẩn mã thông báo này là ERC-20R và ERC-721R tương ứng.
Bây giờ, bạn có thể đang nghĩ: Mã thông báo có thể đảo ngược? Điều này không đánh bại mục đích của blockchain? Trên thực tế là không. Nó không nhằm mục đích thay thế các mã thông báo ERC-20 hoặc làm cho Ethereum có thể đảo ngược được -- nó chỉ cho phép hành vi trộm cắp bị thách thức và có thể được khôi phục trong một thời gian ngắn sau một giao dịch.
Lưu ý rằng các giao dịch chỉ có thể bị đóng băng trong một khoảng thời gian ngắn (chẳng hạn như 3 ngày) trước khi không thể đảo ngược. Tiền ERC-20R hầu như không thể đảo ngược.
khả năng đảo ngược trong giao dịch
Trong một giao dịch, việc trao đổi giữa hai mã thông báo có thể đảo ngược diễn ra ngay lập tức; nếu một bên yêu cầu đóng băng, có thể lấy lại tiền từ bên kia bất kể khoảng thời gian có thể đảo ngược đã trôi qua hay chưa. Tuy nhiên, có thể hoán đổi các mã thông báo có thể đảo ngược với các mã thông báo không thể đảo ngược; để bảo vệ bản thân khỏi bị đảo ngược, các giao dịch chỉ có thể được hoàn tất sau khoảng thời gian có thể đảo ngược. Điều này có nghĩa là các giao dịch hoán đổi có thể đảo ngược → không thể đảo ngược sẽ có độ trễ cho đến khi số tiền không thể đảo ngược. Vì vậy, một khi hai mã thông báo chính có thể đảo ngược, sẽ có rất nhiều áp lực đối với các mã thông báo khác cũng có thể đảo ngược.
Tùy thuộc vào việc triển khai, có thể thanh lý ngay tài sản đã hết thời gian đảo ngược (ví dụ: thanh lý tài sản bạn nhận được 3 ngày trước). Trong trường hợp này, sẽ không cần có độ trễ giữa mã thông báo có thể đảo ngược và không thể đảo ngược của bạn.
nguyên tắc làm việc
quá trình đảo ngược một giao dịch
Giả sử kẻ tấn công đánh cắp tiền từ nạn nhân. Tiền có thể được chuyển tiếp đến các địa chỉ khác như trong Hình 1 bên dưới. Điều sau đây sẽ xảy ra:
1. Nạn nhân yêu cầu đóng băng số tiền bị đánh cắp. Nạn nhân gửi yêu cầu đóng băng hợp đồng quản trị, cùng với bằng chứng liên quan và một số tiền. Giao dịch được đề cập phải gần đây (với khoảng thời gian cố định có thể đảo ngược).
2. Thẩm phán chấp nhận hoặc từ chối yêu cầu đóng băng. Một nhóm thẩm phán phi tập trung bỏ phiếu về việc có nên đóng băng tài sản hay không. Thời gian nghị án nhiều nhất là một hoặc hai ngày. Nếu họ từ chối yêu cầu, quá trình sẽ dừng lại và nạn nhân sẽ mất tiền. Nếu họ chấp nhận yêu cầu, hợp đồng quản trị sẽ đóng băng hợp đồng ERC-20R/ERC-721R.
3. Thực hiện đóng băng. Đối với NFT, nó chỉ ngăn không cho NFT được chuyển. Đối với ERC-20R, nó sẽ theo dõi các khoản tiền bị đánh cắp và cấm chuyển các khoản tiền này. Xin lưu ý rằng miễn là số dư của chủ sở hữu tài khoản cao hơn số tiền bị phong tỏa, họ vẫn có thể thực hiện giao dịch với người khác.
4. Bản án. Sau đó, cả hai bên có thể gửi bằng chứng cho một nhóm thẩm phán phi tập trung. Cuối cùng, thẩm phán đưa ra quyết định và sau đó hướng dẫn hợp đồng quản trị gọi chức năng đảo ngược hoặc từ chốiReverse trên hợp đồng ERC-20R hoặc ERC-721R bị ảnh hưởng. Nếu rejectReverse được gọi, trạng thái đóng băng đối với nội dung đang tranh chấp sẽ được dỡ bỏ. Thử nghiệm có thể kéo dài, có thể kéo dài vài tuần.
5. Đảo chiều (nếu có). Chức năng đảo ngược sẽ gửi lại tài sản bị đóng băng cho nạn nhân.
Hình 1: Sơ đồ ví dụ về giao dịch
Theo dõi tiền bị đánh cắp
Khi tài sản bị đánh cắp, chúng hiếm khi chỉ ở một nơi. Những kẻ tấn công thường chuyển nó từ tài khoản này sang tài khoản khác. Trong trường hợp này, kẻ tấn công thậm chí có thể giám sát mempool và di chuyển tài sản trong giao dịch chạy trước khi chúng thấy yêu cầu đóng băng được gửi đến. Giải pháp của chúng tôi để tránh điều này là thực hiện đóng băng toàn bộ chuỗi (và tính toán của nó) trong một giao dịch duy nhất, vì vậy kẻ tấn công không thể "chạy qua" quá trình đóng băng.
Nhưng chúng tôi không thể vô hiệu hóa mọi tài khoản chạm vào những nội dung này, vậy làm cách nào để quyết định tài khoản nào sẽ bị đóng băng? May mắn thay, trong trường hợp của NFT, việc đóng băng rất đơn giản: chỉ cần tra cứu ai hiện đang sở hữu NFT và đóng băng tài khoản đó. Tuy nhiên, tính chất có thể phân chia của tiền tệ khiến việc đóng băng ERC-20 trở nên phức tạp hơn. Những khoản tiền đó có thể được chia thành nhiều tài khoản, được chuyển đến các máy trộn ẩn danh như Tornado hoặc đổi lấy một loại tiền kỹ thuật số khác. Nếu nó đi qua nhiều tài khoản, thì ít nhất một số tài khoản có liên quan đến tin tặc. Nhưng một số tài khoản có thể vô tội hoặc người bán cung cấp dịch vụ hợp pháp để đổi lấy thanh toán. Không phải lúc nào cũng có thể xác định chính xác lỗi của từng tài khoản. Do đó, chúng tôi cung cấp quy trình đóng băng mặc định để theo dõi và khóa các khoản tiền bị đánh cắp. Thuật toán của chúng tôi đảm bảo:
1. Giả sử không có việc tiêu hủy thì sẽ có đủ số tài sản bị phong tỏa để bù đắp cho số tiền bị mất cắp. (Tài sản bị tiêu hủy sẽ được trừ vào số tiền trả lại)
2. Tiền trong tài khoản chỉ bị đóng băng nếu có giao dịch trực tiếp với kẻ trộm
3. Đối với biểu đồ giao dịch, độ phức tạp thời gian chạy của thuật toán là hợp lý
Chúng tôi thảo luận thêm chi tiết về thuật toán trong bài báo .
Hệ thống tư pháp phi tập trung
Phần mơ hồ hơn của câu đố liên quan đến "nhóm thẩm phán phi tập trung". Những thẩm phán này là ai? Làm thế nào để họ bỏ phiếu? Họ được khen thưởng như thế nào?
Những điều này cuối cùng phụ thuộc vào quản trị viên, người đang tạo ra phiên bản ERC-20R/ERC-721R. Trong bài báo của mình, chúng tôi khám phá cách ngăn chặn các thẩm phán không trung thực và hối lộ, cơ chế khen thưởng, v.v. Chúng tôi nhấn mạnh rằng các thẩm phán không thể thêm các giao dịch hoặc tự ý sửa đổi giá trị số dư của một người.