class BLSPublicKey implements SimpleOffsetSerializable {

  public static BLSPublicKey fromSSZBytes(Bytes bytes) {
    checkArgument(
        bytes.size() == SSZ_BLS_PUBKEY_SIZE,
        "Expected " + SSZ_BLS_PUBKEY_SIZE + " bytes but received %s.",
        bytes.size());
    return SSZ.decode(
        bytes,
        reader -> new BLSPublicKey(Bytes48.wrap(reader.readFixedBytes(SSZ_BLS_PUBKEY_SIZE))));
  }

  public  BLSPublicKey(BLSSecretKey secretKey);
    BLSPublicKey(PublicKey publicKey);
    BLSPublicKey(Bytes48 bytesCompressed);
  private  BLSPublicKey(Supplier<PublicKey> publicKey, Supplier<Bytes48> bytesCompressed);

}