I. Introduction
Computing systems have been becoming more and more critical, so they have to operate correctly even in presence of faults. There are several classes of faults, ranging from accidental crash faults to arbitrary faults, often called Byzantine [1]. The latter is the class that is more generic so the one that should be considered in the design of critical systems. In other words, to ensure that these systems stay reliable and available it is necessary to develop Byzantine fault tolerance (BFT) mechanisms.