Join Nostr
2026-10-13 10:29:06 UTC

notemilo on Nostr: ชวนช่วยรีวิวโค้ด: Pico Signer ...

ชวนช่วยรีวิวโค้ด: Pico Signer

ผมทำเครื่องเซ็น Bitcoin แบบ air-gapped เองบน Raspberry Pi Pico 2 (MicroPython + libsecp256k1)

- ไม่มีวิทยุ ไม่มี WiFi/Bluetooth
- ไม่เก็บ seed: อยู่ในแรมอย่างเดียว ปิดเครื่อง = หาย
- seed ใหม่สร้างจากลูกเต๋าเท่านั้น ไม่ใช้ตัวสุ่มของชิป
- รับส่งทุกอย่างผ่าน QR · USB data ปิดตั้งแต่เปิดเครื่อง
- single-sig BIP84 · เซ็น PSBT ผ่าน BBQr

ยังไม่เคยมี audit จริง เคยให้ AI หลายตัวช่วยรีวิว เจอช่องโหว่จริง 1 จุด (ซ่อนเงินทอนด้วย derivation ปลอม) แก้แล้วพร้อมเทส
แต่ยังไม่เคยมีคนจริงมาดูเลย จุดที่อยากให้ช่วยดูที่สุด:

- psbt.py: มีทางทำให้หน้าจอโชว์ไม่ตรงกับสิ่งที่เซ็นจริงไหม (ซ่อน output / เงินทอน / ค่าธรรมเนียม)
- tx.py: อ่านธุรกรรมแปลก ๆ แล้วเห็นไม่ตรงกับ node
- dice.py / seedqr.py: แปลงเต๋าเป็นคำมี bias ไหม
- C bridge ที่ต่อไป libsecp256k1

โค้ด + คู่มือรีวิว (SECURITY_REVIEW.md มีคำถามเฉพาะ 8 ข้อ)
https://github.com/notemilo/pico-signer

เจอช่องโหว่ รบกวนแจ้งแบบส่วนตัวที่ GitHub → Security → Report a vulnerability (อย่าเพิ่งเปิด issue สาธารณะ)
เรื่องเล็กแค่ไหนก็ยินดีครับ ขอบคุณครับ

Looking for code reviewers: Pico Signer

A DIY air-gapped Bitcoin signer on a Raspberry Pi Pico 2 (MicroPython + libsecp256k1).

- No radio: no WiFi, no Bluetooth
- Stateless: seed lives in RAM only, gone at power-off
- New seeds from dice only, never the chip's RNG
- All data in/out via QR · USB data off from power-on
- Single-sig BIP84 · signs PSBTs over BBQr

Never professionally audited. Several AI reviews found one real bug (hidden change via a fake derivation), now fixed with a regression test. No human has reviewed it yet. Highest-value areas:

- psbt.py: can the review screen show something different from what actually gets signed? (hidden outputs / change / fee)
- tx.py: can an odd transaction parse differently than a node would?
- dice.py / seedqr.py: any bias from dice to mnemonic?
- the C bridge to libsecp256k1

Code + review guide (SECURITY_REVIEW.md has 8 specific questions):
https://github.com/notemilo/pico-signer

Please report vulnerabilities privately: GitHub → Security → Report a vulnerability (not a public issue).
Findings of any size are welcome. Thank you!

#bitcoin #selfcustody #opensource #nostr