You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
There is a need to verify headers received in MsgSubmitMisbehaviour. The verification for these headers is a bit more relaxed in order to catch FLA attacks. In particular the "header in the future" check for the header should be skipped from validate_against_trusted().
and also does all the checks from validate_against_trusted() except the header in the future one. Code is hard to follow as the checks are spread across multiple functions and also one needs to dive into the library to understand what it is being checked and where.
This PR reorganizes the code around client update/ misbehaviour. New code will temporarily call the same verify() API for both update and misbehaviour headers but we need to eventually provide the new API.
Intuitively this should also be needed for the light client detector in tendermint-rs for header verification from witnesses.
Definition of "done"
new verify_misbehaviour_header API implementation and documentation available
The text was updated successfully, but these errors were encountered:
Description
Currently ibc-rs uses the
verify()
function to verify headers received inMsgUpdateClient
tendermint-rs/light-client-verifier/src/verifier.rs
Lines 260 to 273 in db9cb21
There is a need to verify headers received in
MsgSubmitMisbehaviour
. The verification for these headers is a bit more relaxed in order to catch FLA attacks. In particular the "header in the future" check for the header should be skipped fromvalidate_against_trusted()
.tendermint-rs/light-client-verifier/src/verifier.rs
Lines 165 to 170 in db9cb21
Currently the ibc-rs makes explicitly these calls from
verify()
:and also does all the checks from
validate_against_trusted()
except the header in the future one. Code is hard to follow as the checks are spread across multiple functions and also one needs to dive into the library to understand what it is being checked and where.This PR reorganizes the code around client update/ misbehaviour. New code will temporarily call the same
verify()
API for both update and misbehaviour headers but we need to eventually provide the new API.Intuitively this should also be needed for the light client detector in
tendermint-rs
for header verification from witnesses.Definition of "done"
verify_misbehaviour_header
API implementation and documentation availableThe text was updated successfully, but these errors were encountered: