在 substrate 中,宝贝配置中的模棱两可处理系统和 KeyOwnerProof/Identification/ProofSystem 是什么?

In substrate, what is the equivocation handling system and KeyOwnerProof/Identification/ProofSystem in babe config?

        // The proof of key ownership, used for validating equivocation reports.
        /// The proof must include the session index and validator count of the
        /// session at which the equivocation occurred.
        type KeyOwnerProof: Parameter + GetSessionNumber + GetValidatorCount;

        /// The identification of a key owner, used when reporting equivocations.
        type KeyOwnerIdentification: Parameter;

        /// A system for proving ownership of keys, i.e. that a given key was part
        /// of a validator set, needed for validating equivocation reports.
        type KeyOwnerProofSystem: KeyOwnerProofSystem<
            (KeyTypeId, AuthorityId),
            Proof = Self::KeyOwnerProof,
            IdentificationTuple = Self::KeyOwnerIdentification,
        >;

        /// The equivocation handling subsystem, defines methods to report an
        /// offence (after the equivocation has been validated) and for submitting a
        /// transaction to report an equivocation (from an offchain context).
        /// NOTE: when enabling equivocation handling (i.e. this type isn't set to
        /// `()`) you must use this pallet's `ValidateUnsigned` in the runtime
        /// definition.
        type HandleEquivocation: HandleEquivocation<Self>;

这些类型是什么意思,它们有什么用?我想一个更好的问题是这些类型属于什么 equivocation reports

模棱两可的报告表明有人检测到 Babe 当局在同一高度建造了两个街区。所以,如果有人检测到一个 Babe 权威在同一高度建造了两个街区,它就会发出这样一个模棱两可的报告。这取决于如何处理它。例如,Polkadot 将削减违规权限。