Technical Report · ECOSUS CO., LTD. · TR-2026-010 EN JP TH
TR-2026-010

gyotak-komon

Physical Authentication Engine — One-of-a-Kind from a Photo เอนจินยืนยันตัวตนเชิงกายภาพ — หนึ่งเดียวจากรูปภาพ

Identify a physical item from the unclonable grain/skin pattern in a single photo — no QR, no tag · Client-side · 2026-06 ระบุวัตถุจากลายเม็ด/ผิวที่ลอกเลียนไม่ได้ด้วยรูปเดียว — ไม่ต้องมี QR หรือแท็ก · ฝั่งไคลเอนต์ · มิ.ย. 2569
Implemented (client-side)ใช้งานได้แล้ว (ฝั่งไคลเอนต์)
Dateวันที่
June 2026
Layer
Physical PUFชั้น PUF กายภาพ
Statusสถานะ
Implemented · client-sideใช้งานได้ · ฝั่งไคลเอนต์
Classหมวดหมู่
Publicสาธารณะ
Abstract / 要旨 / บทคัดย่อ
This report documents the implemented physical-authentication engine behind gyotak-komon. A single photo of a physically unclonable surface — the bead/grain pattern of an EPS foam box, or the skin of produce such as durian — is turned into a feature fingerprint using ORB, and an item is identified by matching against a local ledger. The aim is QR/tag-free authenticity: the object itself is the label. The engine runs entirely client-side (offline, in-browser, stored in IndexedDB). This report covers what is implemented today; the on-chain layer (range proof + dual-mode privacy) is reported separately in TR-2026-009, and wiring the two together — plus a ship⇋receive two-point transport proof — is described here as designed-but-not-yet-implemented future work.
รายงานนี้บันทึกเอนจินยืนยันตัวตนเชิงกายภาพที่ใช้งานได้แล้วเบื้องหลัง gyotak-komon รูปภาพเดียวของพื้นผิวที่ลอกเลียนไม่ได้ — ลายเม็ดของกล่องโฟม EPS หรือผิวของผลผลิตเช่นทุเรียน — ถูกแปลงเป็นลายนิ้วมือคุณลักษณะด้วย ORB และระบุวัตถุโดยเทียบกับบัญชีในเครื่อง เป้าหมายคือความแท้จริงโดยไม่ใช้ QR/แท็ก — วัตถุเองคือป้าย เอนจินทำงานฝั่งไคลเอนต์ทั้งหมด (ออฟไลน์ ในเบราว์เซอร์ เก็บใน IndexedDB) รายงานนี้ครอบคลุมสิ่งที่ใช้งานได้วันนี้; ชั้นบนเชน (range proof + ความเป็นส่วนตัวสองโหมด) อยู่ใน TR-2026-009 การเชื่อมทั้งสองและการพิสูจน์การขนส่งสองจุด (ส่ง⇋รับ) เป็นงานที่ออกแบบแล้วแต่ยังไม่ทำ

0. Background & Motivation 0. ที่มาและแรงจูงใจ

Tags, stickers and QR codes can be peeled, copied, or re-applied — so they can be swapped. A physical object's own micro-texture cannot. EPS foam is made of fused beads whose surface arrangement is never reproducible; produce skins are similarly unique. KOMON treats that texture as a fingerprint, so a thing can prove it is itself with nothing to forge. The first target is logistics anti-swap (the box that arrives is the box that shipped); the broader goal is to bring photo-only provenance to primary industry — from foam boxes to produce such as durian. แท็ก สติกเกอร์ และ QR ลอก คัดลอก หรือติดใหม่ได้ — จึงสับเปลี่ยนได้ แต่พื้นผิวจุลภาคของวัตถุเองทำไม่ได้ โฟม EPS ทำจากเม็ดที่หลอมรวมซึ่งการเรียงตัวบนผิวไม่อาจสร้างซ้ำได้; ผิวผลผลิตก็มีหนึ่งเดียวเช่นกัน KOMON ใช้ลายนี้เป็นลายนิ้วมือ วัตถุจึงพิสูจน์ตัวเองได้โดยไม่มีอะไรให้ปลอม เป้าหมายแรกคือกันการสับเปลี่ยนในโลจิสติกส์ (กล่องที่มาถึง=กล่องที่ส่ง) เป้าหมายกว้างกว่าคือขยายการพิสูจน์แหล่งกำเนิดด้วยรูปสู่ภาคปฐมภูมิ — จากกล่องโฟมถึงผลผลิตเช่นทุเรียน

1. Capture Protocol 1. โปรโตคอลการถ่ายภาพ

Parameterพารามิเตอร์ Valueค่า
Guide frameกรอบนำOn-screen reticle, ~5 cm square targetกรอบเรติเคิลบนจอ ~5 ซม.
Cameraกล้องRear camera (capture="environment")
Aspectอัตราส่วน4:3
Quality cueเกณฑ์คุณภาพ≥ 40 keypoints shows “✓”จุดสำคัญ ≥ 40 แสดง “✓”
Material presetsวัสดุgeneric (foam lid / printed / wood grain), eps (bead valley lines), durian (spike surface)generic, eps, durian
Image downscaleลดขนาดmax 1000 px (MAXDIM=1000)
A specific “photograph this exact spot on the box” instruction is not enforced; the guidance is to capture the same part at a similar distance. ไม่ได้บังคับ “ถ่ายจุดนี้บนกล่อง” อย่างเจาะจง คำแนะนำคือถ่ายส่วนเดิมที่ระยะใกล้เคียงกัน

2. Fingerprint Pipeline 2. ไปป์ไลน์ลายนิ้วมือ

Stageขั้น Processingการประมวลผล
Grayscaleเกรย์สเกลRGBA → gray
Contrastคอนทราสต์CLAHE, clipLimit 3.0, tile 8×8
FeaturesสกัดคุณลักษณะORB — nFeatures 1500, scaleFactor 1.2, nlevels 8, edgeThreshold 15, WTA_K 2, scoreType HARRIS_SCORE, patchSize 31, fastThreshold 7
Outputเอาต์พุตKeypoints + 32-byte binary descriptorsคีย์พอยต์ + descriptor 32 ไบต์
Photo hashแฮชรูปSHA-256 of the raw image (Web Crypto)
NOTEหมายเหตุthe per-item on-chain commitment komonCommit (Bytes<32>) is NOT generated yet: there is no descriptor→32-byte hash step in the current app. Today the app stores photoHash (SHA-256) and the raw ORB data locally; komonCommit generation is future work (see §6). komonCommit (Bytes<32>) สำหรับบนเชนยังไม่ถูกสร้าง: แอปปัจจุบันไม่มีขั้นตอน descriptor→hash 32 ไบต์ ตอนนี้เก็บ photoHash (SHA-256) และข้อมูล ORB ดิบในเครื่องเท่านั้น การสร้าง komonCommit เป็นงานในอนาคต (ดู §6)

3. Matching & Identity Decision 3. การจับคู่และตัดสินตัวตน

Two fingerprints are compared with a Brute-Force matcher (NORM_HAMMING), k-NN (k=2), Lowe’s ratio test (0.75), then RANSAC homography (reprojection threshold 6.0 px). The score is inliers / min(keypointsA, keypointsB). A query is matched 1-to-N against every registered item in the local ledger, and the highest-scoring item is returned. เปรียบเทียบลายนิ้วมือสองชุดด้วย Brute-Force matcher (NORM_HAMMING), k-NN (k=2), Lowe's ratio test (0.75) แล้ว RANSAC homography (เกณฑ์ 6.0 px) คะแนน = inliers / min(คีย์พอยต์A, คีย์พอยต์B) เทียบแบบ 1 ต่อ N กับทุกชิ้นในบัญชีในเครื่อง คืนชิ้นที่คะแนนสูงสุด

Parameterพารามิเตอร์ Valueค่า
Same-individual thresholdเกณฑ์เดียวกันscore ≥ 0.13 (all materials)(ทุกวัสดุ)
Min keypointsคีย์พอยต์ขั้นต่ำboth sides ≥ 8, else score 0ทั้งสองฝั่ง ≥ 8 ไม่งั้นคะแนน 0
The 0.13 threshold is a working experimental value applied uniformly across materials; it has not been tuned per material or validated on a large dataset. เกณฑ์ 0.13 เป็นค่าทดลองที่ใช้เท่ากันทุกวัสดุ ยังไม่ได้ปรับตามวัสดุหรือทดสอบกับชุดข้อมูลขนาดใหญ่

4. Identifier & Storage 4. ตัวระบุและการจัดเก็บ

Each registered item gets an ID of the form KMN-XXXXXXXX (8 chars from a 31-symbol alphabet excluding 0/1/I/O — about 318 ≈ 8.5×1011 combinations; generated with Math.random, no UUID). All data — IDs, ORB descriptors, photo hashes, optional GPS — is stored locally in IndexedDB. The engine runs fully offline; nothing is sent to a server or a chain. แต่ละชิ้นได้ ID รูปแบบ KMN-XXXXXXXX (8 ตัวจากอักษร 31 ตัว ตัด 0/1/I/O — ราว 318 ≈ 8.5×1011 แบบ; สร้างด้วย Math.random ไม่ใช้ UUID) ข้อมูลทั้งหมด — ID, descriptor ORB, แฮชรูป, GPS (ถ้ามี) — เก็บใน IndexedDB ในเครื่อง ทำงานออฟไลน์เต็มรูปแบบ ไม่ส่งไปเซิร์ฟเวอร์หรือเชน

5. Intended Use 5. การใช้งานที่ตั้งใจ

6. Scope & Limitations 6. ขอบเขตและข้อจำกัด

7. Design Philosophy 7. ปรัชญาการออกแบบ

"The object is its own label. If a thing's own surface is unforgeable, you don't need a tag to trust it — you need a photo. KOMON turns that idea into a tool a phone can run, with no chain and no account required to start."
"วัตถุคือป้ายของตัวมันเอง ถ้าพื้นผิวของสิ่งของปลอมไม่ได้ คุณไม่ต้องมีแท็กเพื่อเชื่อ — คุณต้องการแค่รูป KOMON เปลี่ยนแนวคิดนี้เป็นเครื่องมือที่โทรศัพท์รันได้ โดยไม่ต้องมีเชนหรือบัญชีเพื่อเริ่ม"

8. GYOTAK Protocol Layers 8. GYOTAK Protocol Layers

Layer 1
gyotak-catch
Provenance ZKP (origin commitment)ZKP พิสูจน์แหล่งกำเนิด
✓ Mainnet
Layer 1+
gyotak-komon (on-chain)
Region range proof + dual-mode privacyRange proof + ความเป็นส่วนตัวสองโหมด
✓ Preprod (TR-2026-009)
Layer 1+
gyotak-komon (physical)
Photo-only PUF authentication engine (this report)เอนจิน PUF ด้วยรูปอย่างเดียว (รายงานนี้)
Implemented · client-sideใช้งานได้ · ฝั่งไคลเอนต์
Layer 2
gyotak-temp-log
Storage temp + quick-freeze ZKPZKP อุณหภูมิ
✓ Preprod → Mainnet
Layer 3
gyotak-ratio-log
Formula ratio compliance ZKPZKP สัดส่วนสูตร
✓ Preprod
Settlement
gyotak-x402
AI-agent round-trip settlementการชำระเงินไป-กลับ
✓ Preprod · Cardano
Layer 4+
gyotak-transit
Transport route verificationการยืนยันเส้นทาง
Plannedวางแผน

9. Archive Metadata 9. Metadata

Fieldฟิลด์ Valueค่า
Document IDECOSUS-TR-2026-010
Prior Reportรายงานก่อน TR-2026-009 · gyotak-komon (on-chain range proof)
Relatedที่เกี่ยวข้อง Teaching repo (Apache-2.0)Repo สอน (Apache-2.0) · github.com/ecosus-co/gyotak-compact-teaching
Authorผู้เขียน Takuya Ogura, Chairman, ECOSUS CO., LTD.
Organizationองค์กร ECOSUS CO., LTD. · 0205562030631 · Pranburi, Thailand
Report dateวันที่ June 2026
LayerPhysical PUF authentication (client-side)ยืนยัน PUF กายภาพ (ฝั่งไคลเอนต์)
Licenseใบอนุญาต CC BY 4.0