Install gate
- Package
- Version code
- Signing schemes
- Size
- Content digest D
- Certificate hash C
- Note
- App is registered
- Signer matches
- Release is not revoked
- Version is not below the floor
- At least k builders agree on D
Release this APK
Do these in order once an APK is loaded. Each button sends a real transaction to the contract.
-
Developer registers the appBuilders B1, B2, B3. Threshold k = 2.
-
Builders vote for this buildEach builder sends digest D once for this version.
-
Check the APKRuns the five checks above with a free read-only call.
Attack lab
Each attack runs against the APK you loaded and shows what the gate decides.
- Build server hackedB3 is compromised and votes for a backdoored build. The file carries the real certificate.
- Signing key stolenThe attacker injects code and signs with the real key. No builder voted for it.
- Repackaged appInjected code, re-signed with the attacker's own key (certificate swap is simulated).
- DowngradeThe developer raises the minimum version above this one.
- Revoked releaseThe developer revokes this version, then a user tries to install it. Run this last.
- Outsider tries to voteAn account that is not a builder sends a vote.
Ledger
| Block | From | Action | Gas | Result |
|---|