I would like to discuss a wallet design built around three components: Lindell 2-of-2 MPC signing, QR-only initialization, and encrypted NFC communication between a computer and a phone.
The goal is to keep the convenience of a desktop wallet while ensuring that compromising either device alone does not provide unilateral signing authority.
Lindell 2-of-2 MPC as the signing foundation
The computer and phone each hold a private share of one joint signing key. Neither device holds the complete private key.
Using a reviewed implementation of Lindell’s two-party ECDSA protocol, both devices interact to compute a signature without revealing their shares or reconstructing the complete private key.
For Ethereum, the implementation would use secp256k1 and produce one ordinary ECDSA signature under the joint public key. The wallet can therefore use a normal Ethereum address without requiring an on-chain multisignature contract.
The 2-of-2 requirement comes from the signing protocol itself: obtaining the computer’s share alone is insufficient, and obtaining the phone’s share alone is also insufficient. Both devices must participate in signing the same transaction.
Initialize entirely through QR codes
Initialization takes place before connecting the NFC reader.
Each device generates its own secret contribution, and the two devices carry out the required key-generation exchanges through bidirectional QR codes. They agree on the joint public key and derive the wallet address independently.
The user checks the wallet address and pairing fingerprint on both screens.
During the same setup, the devices establish separate communication identities for their future encrypted channel. These communication keys are distinct from the MPC signing shares.
The NFC reader therefore takes no part in generating the signing key or establishing initial device trust. No signing share is stored in the reader.
Carry the signing protocol over NFC
After setup, the computer uses an NFC reader to exchange authenticated, encrypted messages with the phone.
A routine transaction follows this process:
-
The computer constructs the complete transaction, displays it for local approval, and sends it to the phone over NFC.
-
The phone independently decodes the actual transaction, including the chain, recipient, asset, amount, fees, and any contract action or spending permission.
-
The user reviews and approves the transaction on the phone.
-
The computer and phone run the interactive Lindell signing protocol, carrying the required MPC messages over NFC.
-
The resulting ECDSA signature is verified and used by the computer to broadcast the transaction.
The user can first transfer the request, review it on the phone, and then hold the phone near the reader while the interactive signing exchange completes.
Both devices bind their participation to the exact transaction that was approved. The phone must not rely solely on descriptions, labels, or simulations supplied by the computer.
NFC is the communication interface; the cryptographic signing takes place on the two devices. The reader remains an untrusted message carrier. Authenticated encryption and replay protection prevent it from silently replacing legitimate protocol messages with different ones.
Renew communication trust through QR
Communication keys can be renewed periodically using another bidirectional QR exchange, entirely outside the NFC channel.
This renews the communication pairing without changing the MPC signing shares or wallet address. A reader cannot introduce a replacement device or silently change the trusted peer.
The phone can remain disconnected from the Internet and perform local transaction decoding and policy checks. Alternatively, it can operate online and independently query blockchain state or simulate transactions.
The intended security benefit
If the computer is compromised, an attacker can prepare malicious transactions and control the computer’s side of the protocol. However, they still need the phone to participate. An honest phone can display the actual request and reject it.
Likewise, a compromised phone alone lacks the computer’s signing share. Each device must retain its own approval boundary.
This depends on correct protocol implementation and meaningful transaction review. Strict 2-of-2 also requires backups that preserve the separation between the shares.
The combination is the proposal: QR establishes trust, NFC carries the encrypted signing interaction, and Lindell 2-of-2 MPC ensures that neither device can sign alone.
I would welcome feedback on the security model and practical implementation of this workflow.