From 22b4fdf485e0e6992fd19daa67a5de2af9901b6b Mon Sep 17 00:00:00 2001 From: "Benjamin \"Russ\" Hamilton" Date: Thu, 13 Feb 2025 14:03:45 -0500 Subject: [PATCH] [spec] Add B&A k-anonymity fields (#1360) * Add B&A k-anonymity fields * Fix typo in server aucthion ghost winner * Address comments * Address comments * Reference non-k-anonymous winning bid to the non-k-anon leading bid --- spec.bs | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/spec.bs b/spec.bs index 332c0e7dd..f257df33f 100644 --- a/spec.bs +++ b/spec.bs @@ -3674,6 +3674,13 @@ A server auction response is a [=struct=] that contains auction resul : selected buyer and seller reporting id :: Null or a [=string=], initially null. When not null, this will be verified with the winning bid's [=generated bid/ad=]'s [=interest group ad/selectable buyer and seller reporting IDs=]. + : winner join candidate + :: Null or [=server auction join candidate=]. When not null, contains the + k-anonymity hashes corresponding to the winning bid and indicates which + k-anonymity hashes were used for k-anonymity enforcement on the server. + : ghost winner + :: Null or [=server auction ghost winner=]. When not null, contains information + about the non-k-anonymous winner of a server auction. : error :: Null or [=string=]. When not null, contains an error message from the auction executed on the trusted auction server. May be used to provide @@ -3706,6 +3713,58 @@ A server auction response is a [=struct=] that contains auction resul :: A [=map=] whose [=map/keys=] are [=origins=] and whose [=map/values=] are [=lists=] of [=urls=]. +server auction join candidate is a [=struct=] with the following [=struct/items=]: +
+ : ad render url hash + :: A [=SHA-256=] hash of the [=k-anonymity key=] for the ad in the winning bid, + as calculated using [=compute the key hash of ad=]. + : ad component render url hashes + :: A [=list=] of [=SHA-256=] hashes of [=k-anonymity keys=] for each of the ad + components in the winning bid, as calculated using + [=compute the key hash of component ad=]. + : reporting id hash + :: A [=SHA-256=] hash of the [=k-anonymity key=] for the reporting ID in the + winning bid, as calculated using [=compute the key hash of reporting ID=]. +
+ +server auction ghost winner is a [=struct=] with the following [=struct/items=]: +
+ : candidate + :: [=server auction join candidate=] associated with this winner. + : interest group owner + :: An [=origin=]. The [=leading bid info/leading non-k-anon-enforced bid=]'s [=generated bid/interest group=]'s [=interest group/owner=]. + : interest group name + :: A [=string=]. The [=leading bid info/leading non-k-anon-enforced bid=]'s [=generated bid/interest group=]'s [=interest group/name=]. + : ghost winner bid info + :: Null or a [=server auction ghost winner bid info=], initially null. Contains information needed for + ghost winners in component auctions. +
+ +A server auction ghost winner bid info is a [=struct=] with the following [=struct/items=]: +
+ : ad render url + :: A [=URL=]. The [=leading bid info/leading non-k-anon-enforced bid=]'s + [=generated bid/ad descriptor=]'s [=ad descriptor/url=] from the auction. + : ad components + :: A [=list=] of [=URLs=]. A list of the [=leading bid info/leading non-k-anon-enforced bid=]'s + [=generated bid/ad component descriptors=]'s [=ad descriptor/urls=] from the + server auction. + : modified bid + :: [=bid with currency=]. Contains the [=leading bid info/leading non-k-anon-enforced bid=]'s [=generated bid/modified bid=] + when not null, otherwise the [=leading bid info/leading non-k-anon-enforced bid=]'s [=generated bid/bid=]. + : ad metadata + :: Null or a JSON [=string=], initially null. Contains the component auction's [=leading bid info/leading non-k-anon-enforced bid=]'s [=generated bid/ad=]. + : buyer reporting id + :: Null or a [=string=], initially null. When not null, this will be verified with the [=leading bid info/leading non-k-anon-enforced bid=]'s + [=generated bid/ad=]'s [=interest group ad/buyer reporting ID=]. + : buyer and seller reporting id + :: Null or a [=string=], initially null. When not null, this will be verified with the [=leading bid info/leading non-k-anon-enforced bid=]'s + [=generated bid/ad=]'s [=interest group ad/buyer and seller reporting ID=]. + : selected buyer and seller reporting id + :: Null or a [=string=], initially null. When not null, this will be verified with the [=leading bid info/leading non-k-anon-enforced bid=]'s + [=generated bid/ad=]'s [=interest group ad/selectable buyer and seller reporting IDs=]. +
+ A server auction reporting info is a [=struct=] with the following [=struct/items=]:
: reporting url