This allows a malicious coordinator to link inputs and outputs by providing each input with a unique RSA public key. Since the unblinded signatures are made by different keys, the server can learn the mapping from inputs to outputs.
// generate a secret bordereau. keep it private and register INPUT with blindedBordereau // bordereau will be provided with unblindedSignedBordereau to register POSTMIX with another // identity this.bordereau = ClientUtils.generateBordereau(); byte[] publicKey = WhirlpoolProtocol.decodeBytes(confirmInputMixStatusNotification.publicKey64); RSAKeyParameters serverPublicKey = ClientUtils.publicKeyUnserialize(publicKey); this.blindingParams = clientCryptoService.computeBlindingParams(serverPublicKey);