[{"data":1,"prerenderedAt":238},["ShallowReactive",2],{"docs:vi:\u002Fdocs\u002Fduel\u002Fcontracts\u002Fsecurity":3},{"id":4,"title":5,"body":6,"cover":229,"description":230,"extension":231,"meta":232,"navigation":233,"path":234,"seo":235,"stem":236,"__hash__":237},"docs\u002Fvi\u002Fdocs\u002Fduel\u002Fcontracts\u002Fsecurity.md","Bảo mật",{"type":7,"value":8,"toc":219},"minimark",[9,13,18,35,39,102,122,126,152,156,182,185,199,203,213],[10,11,5],"h1",{"id":12},"bảo-mật",[14,15,17],"h2",{"id":16},"những-gì-có-giá-trị","Những gì có giá trị",[19,20,21,29],"ul",{},[22,23,24,28],"li",{},[25,26,27],"strong",{},"ETH và token của các pool",", nằm trong các vị thế mà không ai rút được. ETH của một phe chỉ rời pool của nó khi phe đó được bán vào pool: bởi một trader, hoặc bởi việc tái cân bằng của hook sau khi một giao dịch làm ba mức giá tách xa nhau.",[22,30,31,34],{},[25,32,33],{},"Các quỹ, phí người tạo và phí giao thức",", được hook giữ dưới dạng quyền đòi ETH trong PoolManager của Uniswap V4, hạch toán riêng cho từng trận đấu.",[14,36,38],{"id":37},"điều-gì-bảo-vệ-chúng","Điều gì bảo vệ chúng",[19,40,41,47,57,68,74,80,86,96],{},[22,42,43,46],{},[25,44,45],{},"Thanh khoản bị khóa."," Chỉ factory mới mở được các pool đã đăng ký hoặc thêm thanh khoản ra mắt cho chúng; việc rút và quyên góp đều bị hoàn tác.",[22,48,49,52,53,56],{},[25,50,51],{},"Bên nhận có giới hạn."," Một quỹ chỉ mua phe thắng của trận đấu của nó; phí người tạo chỉ đến tay người tạo trận đấu: ví đã khởi chạy nó hoặc một địa chỉ được chuyển giao vai trò và đã chấp nhận. Phí giao thức đến ",[25,54,55],{},"kho bạc hiện tại",", mà chủ sở hữu factory có thể thay đổi sau 48 giờ, kể cả đối với phí giao thức đã tích lũy.",[22,58,59,62,63,67],{},[25,60,61],{},"Quyền hạn có giới hạn của factory."," Token không có chủ sở hữu hay hàm mint, và hook không thể nâng cấp hay tạm dừng. Chủ sở hữu factory có thể tạm dừng các lần ra mắt mới, đề xuất điều khoản có giới hạn cho các trận đấu sau này hoặc thay đổi kho bạc sau thời gian chờ. Chủ sở hữu cũng có thể giảm ngay phần của giao thức trong phí swap của mọi trận đấu, xuống đến 0, hoặc tăng lại, không bao giờ vượt quá điều khoản của trận đấu: phần giao thức không lấy sẽ vào các quỹ. Chủ sở hữu có thể từ bỏ vai trò này vĩnh viễn (",[64,65,66],"code",{},"renounceOwnership","): khi đó điều khoản, kho bạc, phần giao thức lấy và trạng thái tạm dừng giữ nguyên, trừ một thay đổi đã được đề xuất, mà bất kỳ ai vẫn có thể áp dụng sau thời gian chờ.",[22,69,70,73],{},[25,71,72],{},"Chốt trước khi swap."," Lần swap đầu tiên sau khi kết thúc sẽ chốt mức trung bình đã xong trước khi giao dịch. Mức trần mua lại cao hơn khoảng 10% so với một mức tham chiếu được lưu với độ chính xác đến phần lẻ của tick: trung bình động hàm mũ 30 phút của các tick pool ETH, được chặn dưới bởi tick hiện tại để nó đi theo giá xuống ngay lập tức.",[22,75,76,79],{},[25,77,78],{},"Các vòng chỉ theo ETH."," Tỷ lệ và mức trung bình của vòng dùng hai pool ETH. Một lần chuyển A\u002FB không làm dịch chuyển giá tính bằng ETH nào thì không thay đổi tín hiệu hay hoạt động của một vòng lẽ ra yên ắng.",[22,81,82,85],{},[25,83,84],{},"Phí chỉ khi khớp hoàn toàn."," Các swap bị thu phí trước sẽ bị hoàn tác nếu không thể khớp hết số tiền yêu cầu. Phí gas mạng là riêng.",[22,87,88,91,92,95],{},[25,89,90],{},"Tái cân bằng được cô lập."," Chỉ các vòng lặp có lãi được giữ lại, giới hạn bởi ETH của pool phía bán. Một lần thử thất bại sẽ được hoàn tác và bỏ qua; nếu thiếu gas thì swap bị hoàn tác (",[64,93,94],{},"ArbitrageStarved","), để bên gọi không thể bỏ qua việc tái cân bằng bằng cách giữ lại gas. Điều này không bảo đảm giá khớp nhau hay bảo vệ khỏi mọi khoản lỗ giao dịch.",[22,97,98,101],{},[25,99,100],{},"Cùng một quy tắc trên mọi tuyến."," Hook thu phí, thuế và đốt token dù router là của Duel hay một router V4 khác.",[103,104,105,106,109,110,113,114,117,118,121],"p",{},"Factory bắt đầu với các lần ra mắt bị tạm dừng. Khi ",[64,107,108],{},"paused()"," là true, chỉ ",[64,111,112],{},"owner()"," mới có thể ra mắt trận đấu; các lệnh gọi khác bị hoàn tác với ",[64,115,116],{},"CreationPaused",". Chủ sở hữu mở các lần ra mắt bằng ",[64,119,120],{},"setPaused(false)",". Các trận đấu hiện có vẫn được giao dịch.",[14,123,125],{"id":124},"những-gì-trang-hiển-thị","Những gì trang hiển thị",[19,127,128,134,140,146],{},[22,129,130,133],{},[25,131,132],{},"Hình ảnh chỉ từ trang."," Các trang chỉ hiển thị hình ảnh của trận đấu từ chính địa chỉ của Duel, và chỉ những hình ảnh mà trang đã xử lý: một tệp JPEG, PNG hoặc WebP được đọc phần header trước (tối đa 1536 × 1536 pixel và 5 MB), được giải mã trong WebAssembly, thu vừa trong 1024 pixel rồi mã hóa lại thành WebP, không kèm siêu dữ liệu. Chính sách bảo mật của các trang không cho phép chúng tải hình ảnh từ bất kỳ nơi nào khác.",[22,135,136,139],{},[25,137,138],{},"Codec được tách riêng."," Hình ảnh được giải mã trong một Worker riêng, chỉ trang truy cập được và không lưu giữ gì: không khóa, không kho lưu trữ. Một lỗi trong codec chỉ chạm tới hình ảnh mà nó đọc. Trang kiểm tra phản hồi của Worker đó (một WebP tĩnh đúng kích thước mong đợi) trước khi giữ lại, và các bộ giải mã viết bằng C khởi động lại từ đầu cho mỗi hình ảnh.",[22,141,142,145],{},[25,143,144],{},"Trận đấu được khởi chạy trực tiếp từ hợp đồng."," Thông tin của chúng có thể trỏ đến bất kỳ địa chỉ nào. Trang không hiển thị hình ảnh https; nó tải một hình ảnh IPFS một lần, từ một gateway công khai (tối đa 5 MB và 10 giây), xử lý như một tệp tải lên và hiển thị bản sao của chính nó, hoặc chữ cái đầu của phe.",[22,147,148,151],{},[25,149,150],{},"Tải lên có giới hạn."," Trang chỉ nhận hình ảnh từ chính các trang của nó: mười hình mỗi phút từ một địa chỉ, và số lượng có hạn mỗi ngày. Một hình ảnh không được trận đấu nào dùng sẽ bị xóa sau một ngày.",[14,153,155],{"id":154},"cách-kiểm-tra","Cách kiểm tra",[19,157,158,164,170,176],{},[22,159,160,163],{},[25,161,162],{},"Kiểm thử tự động"," bao quát hành vi của hợp đồng, ứng dụng web và bot cảnh báo. Độ bao phủ là một chỉ số kiểm thử, không phải bằng chứng rằng mọi hành vi có thể xảy ra đều an toàn.",[22,165,166,169],{},[25,167,168],{},"Kiểm thử trên fork"," kiểm tra việc tích hợp với các hợp đồng Uniswap V4 đã triển khai trên Robinhood Chain, bao gồm Universal Router, Permit2 và V4 Quoter.",[22,171,172,175],{},[25,173,174],{},"Kiểm thử hồi quy"," giữ lại các trường hợp tìm thấy trong đợt rà soát nội bộ, bao gồm hạch toán phí, các trường hợp biên khi ra mắt, việc chốt vòng và các pool cạn kiệt.",[22,177,178,181],{},[25,179,180],{},"Kiểm thử bất biến"," kiểm tra hạch toán qua các chuỗi ngẫu nhiên gồm giao dịch, chốt vòng và nhận phí: quyền đòi ETH phải khớp với số tiền còn nợ, và không được để lại token trung gian trong hook, factory hay router. Vượt qua số lần chạy đã cấu hình không chứng minh được sự an toàn cho mọi chuỗi có thể xảy ra.",[103,183,184],{},"Đợt rà soát nội bộ đã tìm ra và sửa một tuyến đầu ra chính xác lách được thuế chống snipe, một tỷ lệ không đi theo một phe được mua riêng, các pool đã bán hết bị giá tham chiếu của việc mua lại đọc sai, và các liên kết không an toàn trong siêu dữ liệu của trận đấu.",[186,187,190],"callout",{"title":188,"type":189},"Chưa được kiểm toán độc lập","warning",[103,191,192,193,198],{},"Các hợp đồng đã qua rà soát nội bộ, chưa qua kiểm toán độc lập. Chúng không thể nâng cấp: một lỗi được phát hiện sau này sẽ không thể vá trong các trận đấu đang hoạt động. Hãy đọc ",[194,195,197],"a",{"href":196},"\u002Fdocs\u002Fduel\u002Frisks","Rủi ro",".",[14,200,202],{"id":201},"báo-cáo-lỗ-hổng","Báo cáo lỗ hổng",[103,204,205,206,212],{},"Nếu bạn nghĩ mình đã tìm ra một lỗ hổng, cảm ơn bạn đã dành thời gian báo cáo. Hãy nhắn riêng cho chúng tôi trên Telegram, tại ",[194,207,211],{"href":208,"rel":209},"https:\u002F\u002Ft.me\u002Fchatwithdivine",[210],"nofollow","@chatwithdivine",", về những gì bạn tìm thấy và, nếu có thể, cách tái hiện, và cho chúng tôi thời gian xem xét trước khi chia sẻ bất cứ điều gì công khai. Chúng tôi sẽ trả lời nhanh và thông báo cho bạn.",[103,214,215,216,198],{},"Chúng tôi không bao giờ nhắn trước: chỉ tin ",[194,217,211],{"href":208,"rel":218},[210],{"title":220,"searchDepth":221,"depth":222,"links":223},"",2,3,[224,225,226,227,228],{"id":16,"depth":221,"text":17},{"id":37,"depth":221,"text":38},{"id":124,"depth":221,"text":125},{"id":154,"depth":221,"text":155},{"id":201,"depth":221,"text":202},null,"Cách Duel bảo vệ tiền trong các pool, các quỹ và phí: thanh khoản bị khóa, quyền hạn có giới hạn của factory, quy tắc chốt vòng, kiểm thử tự động và một đợt rà soát nội bộ.","md",{},true,"\u002Fvi\u002Fdocs\u002Fduel\u002Fcontracts\u002Fsecurity",{"title":5,"description":230},"vi\u002Fdocs\u002Fduel\u002Fcontracts\u002Fsecurity","MNvZGrDxdgphx4hPxUHRhYpWBVV3NJa1EX0C1HOGbvc",1791231672981]