Zhongtang Luo1, Yanxue Jia1, Yaobin Shen2, Aniket Kate13
Purdue University1, Xiamen University2, Supra Research3
Oracles pull information from Web2 to Web3
doesn't want to reveal
wants to reveal only a decryption
process of
worried the user might use some other random
cannot trust the decryption process of
The oracle joins
[CCS'20] DECO: Liberating Web Data Using Decentralized Oracles for TLS
[IPSEC'23] DIDO: Data Provenance from Restricted TLS 1.3 Websites
[USENIX Sec'24] Lightweight Authentication of Web Data via Garble-Then-Prove
The user proves
[PETS'25] Janus: Fast Privacy-Preserving Data Provenance for TLS
[PETS'25] ORIGO: Proving Provenance of Sensitive Data with Constant Communication
The user use different keys to decrypt
Hard to find different keys that decrypt
One popular way to achieve key commitment
Add 128 bytes of 0s to the front of the plaintext
Hard to decrypt to the same plaintext (0s) with different keys
Major cipher suites such as AES-GCM, Chacha20-Poly1305, etc.
AES-GCM: $\underbrace{c_i}_{\text{ciphertext}}=\underbrace{m_i}_{\text{plaintext}}+\underbrace{E_k}_{\text{cipher}}(\underbrace{n}_{\text{nonce}}+\underbrace{i}_{\text{block index}})$
Since for two keys $k$ and $k'$
we
have
$c_i=c'_i$ and $m_i=m'_i$
for $0\le
i<b$
$E_k(n+i)=E_{k'}(n'+i)\ (0\le i< b)$
$E_k(n+i)=E_{k'}(n'+i)\ (0\le i< b)$
| $E_k$: | $\cdots$ | $\cdots$ | $\cdots$ | |||||
|
$0$
|
$n$
|
$n+b$
|
$2^{128}-1$
|
|||||
| $E_{k'}$: | $\cdots$ | $\cdots$ | $\cdots$ | |||||
|
$0$
|
$n'$
|
$n'+b$
|
$2^{128}-1$
|
HTTP/1.1 200 OK
Date: Wed, 24 Jul 2024 23:41:36 GMT
Expires: -1
Cache-Control: private, max-age=0
Content-Type: text/html; charset=UTF-8
...
HTTP/1.1 200 OK
date: Wed, 24 Jul 2024 23:47:49 GMT
perf: 7402827104
expiry: Tue, 31 Mar 1981 05:00:00 GMT
pragma: no-cache
...
HTTP/1.1 200 OK
Date: Wed, 24 Jul 2024 23:41:36 GMT
Expires: -1
Cache-Control: private, max-age=0
Content-Type: text/html; charset=UTF-8
...
HTTP/1.1 200 OK
date: Wed, 24 Jul 2024 23:47:49 GMT
perf: 7402827104
expiry: Tue, 31 Mar 1981 05:00:00 GMT
pragma: no-cache
...
HTTP/1.1 200 OK
Date: Wed, 24 Jul 2024 23:41:36 GMT
Expires: -1
Cache-Control: private, max-age=0
Content-Type: text/html; charset=UTF-8
...
HTTP/1.1 200 OK
date: Wed, 24 Jul 2024 23:47:49 GMT
perf: 7402827104
expiry: Tue, 31 Mar 1981 05:00:00 GMT
pragma: no-cache
...
| Work | Scenario | Record Type |
Resp. | Key-Related | Record | ||
|---|---|---|---|---|---|---|---|
| Size | Off. | On. | Off. | On. | |||
| (B) | (s) | (s) | (s) | (s) | |||
| ORIGO (Groth16) |
Circuit | Open (32 B) |
1429 | 22.47 | 1.08 | 10.55 | 0.61 |
| ORIGO (Plonk) |
Circuit | Open (32 B) |
1429 | 27.51 | 14.84 | 13.99 | 7.67 |
| Janus | LAN | Open (256 B) |
2048 | 3.94 | 4.79 | 1.13 | 2.08 |
| Xie et al. | LAN | — | 1024 | — | 0.61 | — | |
| DECO (512 B Query) |
LAN | — | — | 2.28 | 0.42 | — | |
| DECO (512 B Query) |
WAN (100 Mbps) |
— | — | 22.81 | 5.20 | — | |
| DECO (1 KB Query) |
LAN | — | — | 2.50 | 0.47 | — | |
| DECO (1 KB Query) |
WAN (100 Mbps) |
— | — | 24.59 | 7.42 | — | |
| DECO | Circuit | Binary Options |
— | — | — | — | 12.97 |
| DECO | Circuit | Age Proof |
— | — | — | — | 3.67 |
| DECO | Circuit | Price Dis- crimination |
— | — | — | — | 12.68 |
| Work | Scenario | Record Type |
Resp. | Key-Related | Record | ||
|---|---|---|---|---|---|---|---|
| Size | Off. | On. | Off. | On. | |||
| (B) | (s) | (s) | (s) | (s) | |||
| ORIGO (Groth16) |
Circuit | Open (32 B) |
1429 | 22.47 | 1.08 | 10.55 | 0.61 |
| ORIGO (Plonk) |
Circuit | Open (32 B) |
1429 | 27.51 | 14.84 | 13.99 | 7.67 |
| Janus | LAN | Open (256 B) |
2048 | 3.94 | 4.79 | 1.13 | 2.08 |
| Xie et al. | LAN | — | 1024 | — | 0.61 | — | |
| DECO (512 B Query) |
LAN | — | — | 2.28 | 0.42 | — | |
| DECO (512 B Query) |
WAN (100 Mbps) |
— | — | 22.81 | 5.20 | — | |
| DECO (1 KB Query) |
LAN | — | — | 2.50 | 0.47 | — | |
| DECO (1 KB Query) |
WAN (100 Mbps) |
— | — | 24.59 | 7.42 | — | |
| DECO | Circuit | Binary Options |
— | — | — | — | 12.97 |
| DECO | Circuit | Age Proof |
— | — | — | — | 3.67 |
| DECO | Circuit | Price Dis- crimination |
— | — | — | — | 12.68 |