Skip to content

Build low-risk ESP32-C3 permission proof #7

Description

@zoahdev

Objective

Build a deliberately low-risk physical proof that a lightweight paper barrier moves only after a valid, single-use KGP capability and that every allow/deny result produces independently verifiable evidence.

Current status

The pre-hardware permission boundary and evidence contract are merged on main:

Physical status remains NOT RUN. No GPIO, serial port, servo movement, physical PASS, functional-safety claim, or certification claim is being made. Procurement, assembly, filming, and physical execution remain founder actions.

Safety boundary

  • Budget target: ¥100–170; hard cap ¥200.
  • Allowed actuator: one SG90-class micro servo moving only a lightweight paper barrier.
  • Default and failure state: locked/no movement.
  • Do not connect door locks, vehicles, drones, alarms, industrial equipment, high-power motors, dangerous tools, access control, or third-party systems.
  • The proof is not a functional-safety controller or safety certification.

Proposed hardware

  • ESP32-C3 SuperMini
  • SG90 micro servo
  • SSD1306 OLED
  • momentary button
  • breadboard and jumper wires
  • local decoupling capacitor and a suitable low-voltage supply

Purchase remains a founder action; no hardware should be ordered until the wiring and power plan are reviewed.

Trust boundary

  1. Host evaluates policy and verifies/atomically consumes the KGP capability.
  2. A device command is bound to the exact device, action, parameters, boot challenge, and monotonic counter.
  3. The device persists replay state before actuating.
  4. Any malformed message, bad authenticator, stale boot challenge, wrong counter, host disconnect, reboot, or serial corruption leaves the servo in the locked position.
  5. The device returns a result that is bound into a signed KGP receipt on the host.

The repository must document that host compromise, firmware extraction, missing secure boot, and a demo pre-shared device key remain outside the proof.

Acceptance

  • 20 no-grant attempts: 0 movements.
  • 20 valid single-use grants: exactly 1 movement each.
  • 20 replay attempts: all denied.
  • Modified device, action, or parameters: denied.
  • Wrong issuer: denied.
  • Capability older than 10 seconds: denied.
  • Concurrent attempts: exactly one winner.
  • Replay after restart: denied.
  • Host disconnect or corrupted serial input: locked/no movement.
  • Allow and deny receipts verify independently.
  • 100 continuous cycles without abnormal reset or overheating.

Deliverables

  • reviewed wiring/power diagram and BOM;
  • versioned serial protocol and threat model;
  • ESP32-C3 firmware with fail-closed state machine;
  • host bridge using the KGP gate and persistent replay store;
  • hardware-in-the-loop runner that emits Schema-valid evidence;
  • video shot list showing the grant, one action, replay denial, restart denial, and receipt verification without implying certification.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requesthelp wantedExtra attention is needed

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions