{"protocol":"cairn/1","version":1,"requirements":["no internet","no DNS","no certificate authority","no GSM or any cellular radio","no clock synchronisation","no shared secret arranged in advance","no registry of who exists"],"identity":{"selfCertifying":true,"idExample":"4723ca05f5b2b1ffdd056076b05cf178","bytesInAddress":16,"note":"An identity IS its public key: the address is the first 16 hex of sha256(pubkey), so any node can confirm that a bundle's claimed origin really owns that address with a single signature check. Nothing to register, nothing to look up, no trust-on-first-use."},"roundTrip":{"totalBytes":438,"payloadBytes":256,"overheadBytes":182,"payloadExact":true,"signatureValid":true,"addressSelfConsistent":true,"tollPaid":true,"hashesToPay":346},"overheadForShortMessage":{"payloadBytes":48,"totalBytes":230,"overheadBytes":182},"tamperRejected":true,"toll":[{"bits":8,"samples":5,"meanHashesForTheSender":150,"minHashes":84,"maxHashes":280,"meanSenderMs":0.8,"expectedHashes":256,"verifierWork":"one hash"},{"bits":12,"samples":5,"meanHashesForTheSender":2712,"minHashes":117,"maxHashes":9517,"meanSenderMs":12,"expectedHashes":4096,"verifierWork":"one hash"},{"bits":16,"samples":5,"meanHashesForTheSender":98141,"minHashes":117,"maxHashes":233214,"meanSenderMs":322.9,"expectedHashes":65536,"verifierWork":"one hash"}],"verification":{"bundles":1000,"verified":1000,"ms":179.2,"perBundleUs":179.2,"note":"decode + Ed25519 verify + toll check, i.e. what a forwarding node does per bundle"},"sneakernet":{"dir":"$TMP/cairn-usb-V7Lut4","transcript":[{"step":"seal","detail":"230 bytes, toll 12 bits paid in 2373 hashes (6.2 ms)","ok":true},{"step":"drop on removable media","detail":"1 bundle on the medium ($TMP/cairn-usb-V7Lut4)","ok":true},{"step":"courier carries it","detail":"courier lifted 1; envelope reads c843afca21fe… -> 0b8aa98c2013…, 48 payload bytes. The courier can see the envelope, not the contents.","ok":true},{"step":"destination ingests","detail":"signature valid; address matches key: true; toll paid: true; delivered to bob: true","ok":true},{"step":"forgery: sign with your own key, claim the victim's","detail":"rejected — signature invalid","ok":true},{"step":"forgery: carry your own key under the victim's address","detail":"rejected — address does not match the public key","ok":true},{"step":"spam with no toll paid","detail":"rejected — toll unpaid (12 bits required, got 2)","ok":true},{"step":"tamper: flip one bit of the signature","detail":"rejected — signature invalid","ok":true}],"allRejected":true},"ms":1909,"honest":["Delivery is probabilistic and depends on two agents physically meeting. This is not a socket and never will be.","Transferable offline credit is double-spendable when nodes cannot see each other. The toll is WORK for exactly that reason: work cannot be faked or double-spent.","A forwarding node can read the payload. Forwarding is not confidentiality; wrap the payload if it matters.","No clocks are synchronised, so expiry is advisory and hops and copies are the real controls.","The transport capacities people quote for LoRa, BLE, ultrasonic and the rest are published datasheets, not measurements taken here. Only the protocol layer above is measured on this box."],"cachedAt":"2026-10-03T20:46:09.712Z","cacheSeconds":600}