<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.2.8 -->

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
]>

<?rfc toc="yes"?>
<?rfc sortrefs="yes"?>
<?rfc symrefs="yes"?>

<rfc ipr="trust200902" docName="draft-andersdotter-rrm-for-rrt-in-http3-00" category="info">

  <front>
    <title abbrev="rrm-for-rrt-in-http3">Randomized Response Mechanisms in RRT Measurements for HTTP/3</title>

    <author initials="A." surname="Andersdotter" fullname="Amelia Andersdotter">
      <organization>ARTICLE 19</organization>
      <address>
        <postal>
          <street>Free Word Centre, 60 Farringdon Road</street>
          <city>London EC1R 3GA</city>
          <country>United Kingdom</country>
        </postal>
        <email>amelia@article19.org</email>
      </address>
    </author>
       <author initials="S." surname="Sahib" fullname="Shivan Sahib">
      <organization>Salesforce</organization>
      <address>
        <email>shivankaulsahib@gmail.com</email>
      </address>
    </author>

    <date year="2019" month="November" day="3"/>

     <area>General</area>

    <workgroup>Internet Research Task Force</workgroup>
    
    <keyword>privacy</keyword>
    <keyword>randomized-response</keyword>
    <keyword>spin bit</keyword>
    <keyword>differential-privacy</keyword>
    <keyword>internet-draft</keyword>

    <abstract>

<t>The latency spin bit is an optional feature included in the <xref target="I-D-QUIC">QUIC transport protocol</xref>. It enables passive, on-path observations for estimation of latency. This document presents the results of an inquiry into the potential of using randomized response mechanisms (RRM) to reduce privacy loss in latency measurements. It concludes that RRM could be used to introduce choice for clients in preserving privacy in latency measurements. But the trade-offs, especially since the latency spin bit is already optional, do not favour RRM.</t>

    </abstract>


  </front>

  <middle>


<section anchor="introduction" title="Introduction">

<t>At the IETF104 convening of the Privacy Enhancements and Assessments Research Group (PEARG), a presentation on Differential Privacy (<xref target="AA-CL"/>) gave rise to the idea of trying to apply Randomized Response methods to the QUIC Spin Bit described in <xref target="TRAMMEL"/> and <xref target="KUEHLEWIND"/>. Now incorporated in <xref target="I-D-QUIC">Section 17.3.1</xref>, the latency spin bit has generated controversy from a privacy perspective, both in the Working Group meetings and on e-mailing lists. Controversies were re-ignited through the publication of a Human Rights Consideration in <xref target="TENOEVER-MARTINI"/>. Applying RRM is an attempt to address two problems: the privacy loss incurred through the spin bit, and considering the potential of using RRM to have more than one bit assisting in latency measurement as per previous proposals.
</t>

</section>

<section anchor="rrt" title="Randomized Response Mechanisms">

  <t>Randomized Response Mechanisms (RRM) rely on the ability to make sense of data with known errors and were originally developed to facilitate surveys on sensitive topics such as alcohol or drug abuse or political affiliation. The design allows a survey taker to provide, with some known probability P, a "false" answer ("yes" instead of "no", for example) to a survey question. It is meant to encourage truthful answers even in surveys where participants may otherwise feel compelled to give false answers.</t>

<t>Randomized response trials were originally created for binary environments: if a series of measurements have only two possible outcomes (0 or 1, yes or no, true or false, for instance), it is the idea that allowing individual respondents to answer "falsely" at a predictable rate will still preserve the ability to make inferences on the entire set of respondents. The latency spin bit, being a bit, is binary outcome variable. Each time it is measured, the idea is that it can either "truthfully" report its value as what it should be according to <xref target="TRAMMEL"/>, or it could, at some known rate or probability, report the opposite value.</t>
  
<t>RRMs are easily illustrated for binary response problems. Let's take as an example "Did you go to the last IETF meeting?" The answer to this question is either yes or no. Let us suppose that 25% of all responses are known to be false, and that 80% of all respondents answered yes. Then 60% of the respondents who answered yes can be assumed to have done so truthfully, while 5% of the respondents who answered no have done so falsely. 65% of the respondents can therefore be estimated to have actually attended the last IETF meeting.</t>

  <t>RRMs can also be applied to multiple choice questions. Estimation of true proportions becomes more difficult as the number of possible answers per question goes up. Further examples, including formulas and calculations, can be found in <xref target="DWORK"/> and <xref target="FOX"/>.</t>
  
</section>

<section anchor="asb" title="Application to latency spin bit">

<t>As described in <xref target="TRAMMEL"/>, the latency spin bit is a mechanism for measuring round-trip-times (RTT) in the QUIC protocol. The investigation in this document relies on <xref target="TRAMMEL"/> for its understanding of the basic operation of the latency spin bit, and in particular the following paragraphs and figures from the document are quoted to facilitate the description of RRM below:</t>

<t>[Begin quote] Initially, during connection establishment, no packets with a spin bit are in flight, as shown in <xref target="illus0"/>.</t>

<figure title="Initial state, no spin bit between client and server" anchor="illus0"><artwork><![CDATA[
+--------+   -  -  -  -  -   +--------+
|        |     -------->     |        |
| Client |                   | Server |
|        |     <--------     |        |
+--------+   -  -  -  -  -   +--------+
]]></artwork></figure>

<t>Either the server, the client, or both can begin sending packets with short
headers after connection establishment, as shown in <xref target="illus1"/>; here, no spin
edges are yet in transit.</t>

<figure title="Client and server begin sending packets with spin 0" anchor="illus1"><artwork><![CDATA[
+--------+   0  0  -  -  -   +--------+
|        |     -------->     |        |
| Client |                   | Server |
|        |     <--------     |        |
+--------+   -  -  0  0  0   +--------+
]]></artwork></figure>

<t>Once the server’s first 0-marked packet arrives at the client, the client sets
its spin value to 1, and begins sending packets with the spin bit set, as
shown in <xref target="illus2"/>. The spin edge is now in transit toward the server.</t>

<figure title="The bit begins spinning" anchor="illus2"><artwork><![CDATA[
+--------+   1  0  0  0  0   +--------+
|        |     -------->     |        |
| Client |                   | Server |
|        |     <--------     |        |
+--------+   0  0  0  0  0   +--------+
]]></artwork></figure>

<t>Five ticks later, this packet arrives at the server, which takes its spin
value from it and reflects that value back on the next packet it sends, as
shown in <xref target="illus3"/>. The spin edge is now in transit toward the client.</t>

<figure title="Server reflects the spin edge" anchor="illus3"><artwork><![CDATA[
+--------+   1  1  1  1  1   +--------+
|        |     -------->     |        |
| Client |                   | Server |
|        |     <--------     |        |
+--------+   0  0  0  0  1   +--------+
]]></artwork></figure>

<t>Five ticks later, the 1-marked packet arrives at the client, which inverts its
spin value and sends the inverted value on the next packet it sends, as shown
in <xref target="illus4"/>.</t>

<figure title="Client inverts the spin edge" anchor="illus4"><artwork><![CDATA[
      obs. points  X  Y
+--------+   0  1  1  1  1   +--------+
|        |     -------->     |        |
| Client |                   | Server |
|        |     <--------     |        |
+--------+   1  1  1  1  1   +--------+
                      Y
]]></artwork></figure>

<t>[End quote]</t>

<t> In each iteration going from <xref target="illus3" /> to <xref target="illus4" /> a sequence of 0s or 1s the length of which is k0 for iteration 0, k1 for iteration 1, and so forth, can be observed (by on-path observers X or Y in <xref target="illus4" />). The length of each sequence equals the amount of ticks required to pass from the client back to the client. After observation n lengths of such sequences, (k[0], ..., k[n]), an average can be taken over k[j]. This average can be multiplied by the amount of time per tick (a quantity which is assumed to be known) to get a value for the round-trip time (RTT).</t>

<t>Applying randomized response mechanisms (RRMs) perturbs the observed sequence lengths (k[0], ..., k[n]). The perturbation will have the effect of lengthening, shortening, or making more arbitrary the lengths of the sequences, thereby increasing the variance, or disable the possibility, of an estimator of the true RTT value.</t>

<t>The server or the client is assumed to behave as described in <xref target="illus3" /> and <xref target="illus4" />, unless specifically stated otherwise. That means the assumed default behaviour is that a "truly" reflecting server that receives a bit set to v=0 always reflects a bit with v=0. In an RRM application, a server which "falsely" reflects a bit receives a bit set to v=0 and reflects a bit set to v=1. Similarly, the assumed default behaviour of a client is that it "truly" inverts a bit, so that receiving a bit set to v=0 causes it to transmit a bit set to v=1. In an RRM application, the client may "falsely" transmit a bit set to v=0 even when it has received a bit set to v=0. The receiving of a spin edge is assumed to be a trigger event for a reflection or an inversion. The server and the client are assumed to have an internal spin value that determines the spin bit that goes out. Every time a spin edge comes in (a trigger), this internal spin value is changed, changing also the outgoing spin value.</t>

<t>An additional assumption is that the server and client behave independently of one another. This means that the server has no information on whether the client has omitted an inversion, and the client has no information on whether the server has omitted a reflection. Omissions are therefore independent events.</t>

<t>We have looked at two ways of perturbing measurements:</t>

<t><list>
  <t>1. RRMs are applied so that edge transitions do not occur with probability P or Q for server and client respectively.</t>
  <t>2. RRMs are applied so that that each bit transmitted, whether or not an inversion is occurring, has a probability P of being the "wrong" value.</t>
</list>
</t>

<t>They will be dealt with in turn, identifying pitfalls and potential ways of addressing those pitfalls. The goal is to have better privacy-protecting properties while continuing to allow utility of the on-path observations in latency measurements.</t>

<section anchor="reflection" title="RRM at edge transition">

  <t>The omission of a reflection or inversion creates difficulties. Namely, let's say the client omits the inversion in <xref target="illus4" />. Now there is no longer a spin edge so there is nothing to activate future reflections/inversions.</t>

  <t>A possible work-around is to do random re-sets of the spin bit, i.e., starting the process fresh from <xref target="illus1" />. Observers X and Y in <xref target="illus4" /> would then get a series of measurements (k0, ..., kn), some of which were far too large, but would, over time, be able to deduce RTT from the smaller measurements. The expected proportion of large and small measurements in the whole set of measurements could be determined from the probabilities that a edge transition does not happen and the probability that the spin bit is re-initiated.</t>

  <t>Another possible work-around is having an additional bit to indicate a spin edge, assigned by the server to the bit which is (not) reflected in <xref target="illus3" />, or by the client to the bit which is (not) inverted in <xref target="illus4" />. In this case there would not be a point in applying RRM since the placement of the spin edge would no longer be obfuscated.</t>

  <t>If the ordinary spin edge is obfuscated by through omission of edge transition, and the edge-identifying bit is also, with some probability, not correctly identifying an edge, the utility of having two latency bits again goes up at no additional loss of privacy.</t>
  
<section anchor="example1" title="No reset and no edge identifying bit">
    
<t>The bit starts spinning with value v=1 in <xref target="illus2" />. At the point of reflection (see <xref target="illus3" />), it does not reflect with probability P. At the point of inversion (see <xref target="illus4" />), it does not invert with probability Q. We consider P and Q respectively to be the probability that the server or client does not behave in the way specified.</t> 

	<t>Let -> be the operation that a bit changes value. A correct reflection will be denoted R: a->a. A correct inversion is denoted I:a->b. Prefixing R or I with a ! denotes that edge transition was not done correctly. The variables a and b assume the values 0 or 1 and are never equal. P(R: a->a) = 1-P and P(I: a->b) = 1-Q, while P(!R: a->b) = P and P(!I: a->a) = Q. An expression like R(v: 1->1) -> !I(v: 1->1) means that a bit whose initial value is 1 is correctly reflected, and then incorrectly inverted. We can abbreviate this to [1->1->1]. R must follow I and vice versa, so we will have a chain of events R->I->R->I-> etc.</t>

	<t>In order for a reflection or an inversion to occur, there must be a trigger. The spin edge is the trigger. But in the event of [1->1->1] the spin edge has disappeared! Once the bit spins back to the reflection, it will have the same value as when it started. In fact, regardless of the starting value, any R->I event that results in [1->1] or [0->0] leads to a loop.</t> 
	
	<t>We can define the following events:</t>
	
	<t><list>
	  <t>A: [1->1]. 
	  </t>
	  <t>B: [0->0]. 
	  </t>
	  <t>C: [0->1]. 
	  </t>
	  <t>D: [1->0]. 
	  </t>
        </list></t>
	
	<t>Event A can occur as a result of (!R, !I) for starting point v=0, or as a result of (R, !I) for starting point v=1 or v=0. Event B can occur as a result of (!R, !I) for starting point v=1, or as a result of (R, !I) for starting point v=1 or v=0. Event C occurs as a result of (!R, I) for starting point v=1, or (R, I) for starting point v=0. Event D occurs as a result of (!R, I) for starting point v=0 or (R, I) for starting point v=0. The starting point v can be taken as the final digit in each event, meaning that for the event following C, the starting point would be v=1, and for the event following D, the starting point would be v=0.</t>

<t>With this information, and the probabilities determined above, we can create a transition matrix in the Markovian sense.</t>
	
<figure title="RRM transition matrix, no reset and no edge-id bit" anchor="illus6"><artwork><![CDATA[

+----+-----------+-----------+-----------+-----------+
|    |     A     |     B     |     C     |     D     |
+----+-----------+-----------+-----------+-----------+
| A  |     1     |     0     |     0     |     0     |
+----+-----------+-----------+-----------+-----------+
| B  |     0     |     1     |     0     |     0     |
+----+-----------+-----------+-----------+-----------+
| C  |  (1-P)Q   |     Q     |   P(1-Q)  | (1-P)(1-Q)|
+----+-----------+-----------+-----------+-----------+
| D  |     Q     |  (1-P)Q   |(1-P)(1-Q) |  P(1-Q)   |
+----+-----------+-----------+-----------+-----------+
]]></artwork></figure>

<t>It should be quite clear from this matrix that events A and B act as sinks. Because ending in a sink removes all possibility of future measurements, we could hope to avoid this situation. The easiest way is setting Q=0, which would imply there is always a correct inversion. For any Q > 0, this process will eventually end up in a sink.</t>

  </section>

    <section anchor="example2" title="Reset and no edge identifying bit ">
    
<t>The possible outcomes are as in <xref target="example1" />, and the problem to be resolved is that the spin edge eventually disappears with probability 1.</t>
	
<t>Introducing the probability R of a random re-set of the spin bit at every m:th bit transmission can "re-initiate" the edge by taking the entire system back into the situation described in <xref target="illus3" /> (with the modification that it is not assumed that the starting point must be v=1; the starting point could also be reset to v=0). It is assumed that a re-set occurs on the client-side, and not on the server-side.</t>

<t>The true number of ticks in a round-trip time is C. If R>0 and m >> C, the process will be reset every period of km ticks, where k is an integer whose distribution is geometric with parameter R. After km ticks, an on-path observer may pick up a sequence that can be used as a basis for measuring the round-trip time.</t>

<t>In <xref target="illus7" /> the situation where m=2 is illustrated.</t>
	
<figure title="RRM TM, Reset at m=2, no edge-id bit" anchor="illus7"><artwork><![CDATA[

+---+----------+--------+----------+--------+----------+----------+
|   |   A,m0   |  A,m1  |   B,m0   |   B,m1 |    C     |     D    |
+---+----------+--------+----------+--------+----------+----------+
|A,0|     0    |   1    |    0     |    0   |    0     |     0    |
+---+----------+--------+----------+--------+----------+----------+
|A,1|    1-R   |   0    |    0     |    0   |    R     |     0    |
+---+----------+--------+----------+--------+----------+----------+
|B,0|     0    |   0    |    0     |    1   |    0     |     0    |
+---+----------+--------+----------+--------+----------+----------+
|B,1|     0    |   0    |   1-R    |    0   |    R     |     0    |
+---+----------+--------+----------+--------+----------+----------+
| C |  (1-P)Q  |   0    |    Q     |    0   |  P(1-Q)  |(1-P)(1-Q)|
+---+----------+--------+----------+--------+----------+----------+
| D |     Q    |   0    |  (1-P)Q  |    0   |(1-P)(1-Q)|  P(1-Q)  |
+---+----------+--------+----------+--------+----------+----------+
]]></artwork></figure>

<t>If m (or km | k ~ Ge(R)) is too small, there will never be any sound measurements since the process will always start over before a measurement appears. Using a reset function is therefore especially burdensome for an on-path observer in cases where latencies are a priori expected to be large.</t>

    </section>

        <section anchor="example3" title="An edge identifying bit ">
    
<t>The possible outcomes are as in <xref target="example1" />, and the problem to be resolved is that the spin edge eventually disappears with probability 1.</t>
	
<t>Introducing an edge identifying bit, which may or may not hold a true value with probability S, could help mitigate this problem. This could effectively be seen as a recursive RRM: because the original RRM risks removing the utility of the spin bit entirely, another bit to which RRM is applied is added.</t>

<t>Logically, adding another identifying bit increases the possible set of states of the Markovian chains described in <xref target="example1" /> and <xref target="example2" />. In fact, the systems would still possess similar short-comings, but with different probabilities. The exception is if the identifying bit is always on with probability S=1. In this case, the privacy-enhancing properties sought in <xref target="example1" /> and <xref target="example2" /> would be lost, since the main goal of RRM in both of those cases is to perturb the measurements (k0, ...., kn) used to estimate round-trip times.</t>

    </section>

      <section anchor="discussion1" title="Discussion">
    
	<t>In <xref target="example1" /> we saw that applying RRM at reflection and inversion could create a situation where the spin edge disappears. There are two parameters, P and Q, which are set by the client and server respectively.</t>

	<t>We could reduce the risk of the spin edge disappearing by setting the probability of a wrongful inversion to Q=0. However, inversion is an activity undertaken by the client and Q is a parameter under the clients control. Since the client is the entity assumed, in most cases, to be the most likely actor to be a human, natural person (in either case, more likely than the server), this solution would remove power from the client. Forcibly setting Q=0 would violate the assumptions of user control in <xref target="RFC6973">Section 7.2</xref>.</t>

	<t>In <xref target="example2" /> we considered whether it was possible to reset a latency spin bit whose edge has disappeared. Effectively, resetting would improve an on-path observers chances of making measurements, but it also introduces a delay for the acquisition of useful measurements.</t>

<t>We assume that the client will set Q>0 and that this is under the client's control, and have three additional parameters: P, m and R. Both m and R can be under the client's control. We found that km | k~Ge(R) has an impact on the ability to measure latency when latency is large. In practice, an average human, natural person is probably not going to choose parameters Q, m and R (even though they could be made available at settings in an interface). Setting of these parameters will instead likely be under the control of the entity that produces latency spin bit capable software.</t>

<t>In  <xref target="example3" /> we conclude that adding an edge-identifying bit is not a remedy to any of the issues with the methods in  <xref target="example1" /> or  <xref target="example2" />. It introduces the possibility of yet another client-controlled parameter S, but the obfuscating effects derived from S could instead be obtained by regulating previously suggested parameters Q, m or R.</t>

</section>
	
</section>

<section anchor="eachbit" title="RRM at each bit">

  <t>Let us say any bit transmitted from either the client or the server is "off" in relation to what it proposed in the Spin Bit model with some probability Q. If Q = 0.5, the spinning bits will come across as a random 0s and 1s and it will be difficult to estimate any edge. However, if Q is less than 0.5, the spin edge can be estimated for instance by computing an average number of 0s or 1s in the past m ticks. For all averages above some cut-off rate, a measurement counter could be incremented by one. Eventually one would end up with a series (k'0, ..., k'n) that roughly corresponds to (k0, ..., kn) above.</t>

  <section anchor="example4" title="Client perturbation">
    
<t>The bit spins in the foreseen way. Every time a bit is transmitted, there is a probability Q that it holds a different value than it should. In <xref target="illus4" /> , either measurements station X or both stations Y observe a passing bit, as well as bits passing before or after that bit (if any). After observing 2k+1 bits (b[-k], ..., b[0], ..., b[k]) the true value of bit b[0] is estimated, for instance based on whether the majority of b[i] were v=0 or v=1. The estimated value is then used to increment a sequence counter.</t>

<t>The estimator follows a binomial distribution (drawing with replacement), and the risk of misidentifying a bit is equal to the risk of having (k+1) v=1 bits in the 2k observations where b[0] "should" be attributed to v=0. This risk depends on Q and k.</t>

<t>Setting k too large creates a risk of having estimator sequences that are longer than the round-trip time (RTT) to be measured. If Q is reasonably small, estimation will still eventually be possible after a sufficient amount of measurements. One option is to keep Q variable and determined by the client, introducing the possibility of choice in RTT measurements.</t>

<t>Make the following assumptions:</t>

<t><list>
  <t>1. the "real" round-trip time is 6+7=13, where 6 is the number of ticks between the client and server, and 7 is the number of ticks between server and client.</t>
  <t>2. the server always reflects exactly the value of the bit it receives, and</t>
  <t>3. the client always inverts the value of the bit it receives, meaning that all spin edges are always preserved.</t>
</list></t>

<t>Four RTTs of the spin bit according to specification would now give rise to the following data, available to an on-path observer: 0000000000000111111111111100000000000001111111111111. To estimate the time of a RTT, we could compute 13*4/4 = 13 time units.</t>

<t>Set Q=0.2. Now the four RTTs may instead be measured as 1001000000100111111001111100000010010110111011010111. With this sequence, we would instead estimate (1+2+1+6+1+2+6+2+5+6+1+2+ 1+1+2+1+3+1+2+1+1+1+3)/23 = 2.26. That is clearly not satisfactory if the target round-trip time estimation is 13.</t>

<t>Divide the RTT measurements into moving windows with k=2 (i.e., each window contains (b[-2], b[-1], b[0], b[1], b[2])) to arrive at [(10010), (00100), (01000), (10000), (00000), (00000), (00001), (00010), (00100), etc]. Each window estimates b[0], so the "true" value of bit 2 will be estimated by (10010), the true value of bit three from (00100), and so forth.</t>

<t>Applying the procedure we are left with 000000000011111111111111000000000011111111111111, or (10+14+14+10)/4=12. This is much better precision if the target round-trip time estimation is 13.</t> 

  </section>

<section anchor="example5" title="Client and server perturbation">

  <t>Now let us consider the case where both the client and server randomize each transmitted bit, with probabilities Q and P respectively. Using the same assumptions as in <xref target="example4" /> and the same target RTT of 13, and letting Q=0.2 and P=0.1, we may end up measuring 0000000000000111111111011100000001010001111010011111 and throw the method of moving windows for k=2 arriving at 000000000001111111111111000000000000011111001111 leaving us with sequences of length (11, 13, 13, 5, 2, 4).</t>

  <t>As previously mentioned, the risk of a bit being misidentified is related to P, Q and k. Because a misidentified bit always make sequences appear to be of shorter length, the sequences that measure greater length should be taken as the RTT estimate. In this event that we choose to only use that half of the esimated sequences with the greatest length as a basis for the latency calculations, we would have (11+13+13)/3=12.3 as the estimator for the RTT.</t>
  
</section>

<section anchor="discussion2" title="Discussion">

  <t>In the introduction to this section, we observed that setting Q=0.5 would make any pattern recognition among the bits extremely difficult for the most advanced of filters. We proceeded to discuss the case Q=0.2 and a potential filter for this case in <xref target="example4" />. If Q is taken to be a parameter under client control, of course the client could set Q so that latency measurements are made impossible. On the other hand, such client control already exists, since the latency spin bit is optional. (see <xref target="RFC6973">Sec. 7.2</xref> and <xref target="I-D-QUIC">Section 17.3.1</xref>). </t>

  <t>In <xref target="example5"/> we introduced the possiblity of yet another parameter P, to be set by the server for determining server-side RRM application. The moving windows filtering method applied to make sense of on-path observations remains the same.</t>

  <t>The filtering methods applied in this section consistently under-estimate the true latency. More accurate latency measurements may be achieved by having a larger number of sequences observed.</t>
  
</section>

</section>
  
</section>

<section anchor="simulation" title="Simulation">

<t>TODO</t>
  
</section>

<section anchor="conclusion" title="Conclusion">

  <t>The spin bit is associated with an IP address which creates linkability (see <xref target="RFC6973"/> and <xref target="RFC8280"/>). The privacy concern associated with a spin bit is, additionally, that latency measurements will enable inferrence of the location or distance of the device associated with that particular IP address.</t>

  <t>In <xref target="example1" />, it was seen Randomized response mechanisms (RRM) would either cause the utility of the spin bit to disappear entirely (by rendering any measurement futile) or cause the primary privacy-reducing inferrence to remain a problem, as long as a sufficiently large amount sequential measurements were done. Each measurement would continue to be tied to fixed identifier, which necessarily implies privacy loss. Interestingly, <xref target="example1" /> also highlights fundamental trade-offs between privacy-preserving mechanisms and measurement utility: by setting Q=0, we were able to avoid ending up in a sink, which would improve the possibility of measurement, but in doing so removed all agency from the client to falsify its responses.</t>

<t>In <xref target="example4" /> we saw that setting Q=0.5 could obfuscate the spin edge from an on-path observer. Since the latency spin bit is an optional feature, an easier method of accomplishing such obfuscation would be to simply to turn the spin bit off. Setting Q &lt; 0.5 would instead let the client make it easier or more difficult for the on-path observer to correctly estimate latency. In <xref target="example4" /> and <xref target="example5" /> we particularly conclude that under-estimation of latency is the most likely outcome of this RRM.</t>
  
<t>It is not clear that RRM would ultimately bring any particular privacy benefit beyond what is already guaranteed in the present specification of the spin bit in <xref target="I-D-QUIC">Section 17.3.1</xref>.</t>

</section>

  </middle>

  <back>

<references title='Informative References'>

  <reference  anchor="RFC6973" target='https://www.rfc-editor.org/info/rfc6973'>
<front>
<title>Privacy Considerations for Internet Protocols</title>
<author initials='A.' surname='Cooper' fullname='A. Cooper'><organization /></author>
<author initials='H.' surname='Tschofenig' fullname='H. Tschofenig'><organization /></author>
<author initials='B.' surname='Aboba' fullname='B. Aboba'><organization /></author>
<author initials='J.' surname='Petersen' fullname='J. Petersen'><organization /></author>
<author initials='J.' surname='Morris' fullname='J. Morris'><organization /></author>
<author initials='M.' surname='Hansen' fullname='M. Hansen'><organization /></author>
<author initials='R.' surname='Smith' fullname='R. Smith'><organization /></author>
<date year='2013' month='July' />
<abstract><t> This document offers guidance for developing privacy considerations for inclusion in protocol specifications.  It aims to make designers, implementers, and users of Internet protocols aware of privacy-related design choices.  It suggests that whether any individual RFC warrants a specific privacy considerations section will depend on the document's content.
</t></abstract>
</front>
<seriesInfo name='RFC' value='6973'/>
<seriesInfo name='DOI' value='10.17487/RFC6973'/>
  </reference>

  <reference  anchor="RFC8280" target='https://www.rfc-editor.org/info/rfc8280'>
<front>
<title>Human Rights Considerations for Internet Protocols</title>
<author initials='N.' surname='Ten Oever' fullname='N. Ten Oever'><organization /></author>
<author initials='C.' surname='Cath' fullname='C. Cath'><organization /></author>
<date year='2017' month='October' />
<abstract><t> This document aims to propose guidelines for human rights considerations, similar to the work done on the guidelines for privacy considerations (RFC 6973). The other parts of this document explain the background of the guidelines and how they were developed.
</t></abstract>
</front>
<seriesInfo name='RFC' value='8280'/>
<seriesInfo name='DOI' value='10.17487/RFC8280'/>
</reference>

  <reference  anchor="I-D-QUIC" target='https://tools.ietf.org/html/draft-ietf-quic-transport-23'>
<front>
<title>QUIC: A UDP-Based Multiplexed and Secure Transport</title>
<author initials='J.' surname='Iyengar' fullname='J. Iyengar'><organization /></author>
<author initials='M.' surname='Thomson' fullname='M. Thomson'><organization /></author>
<date year='2019' month='September' />
<abstract><t> This document defines the core of the QUIC transport protocol. Accompanying documents describe QUIC's loss detection and congestion control and the use of TLS for key negotiation.
</t></abstract>
</front>
</reference>

  <reference  anchor="AA-CL" target='https://datatracker.ietf.org/meeting/104/materials/slides-104-pearg-amelia-christoffer-differential-privacy-00'>
    <front>
      <title>Differential Privacy (PEARG, IETF104)</title>
      <author initials='A.' surname='Andersdotter' fullname='A. Andersdotter'><organization /></author>
      <author initials='C.' surname='Långström' fullname='C. Långström'><organization /></author>
      <date year='2019' month='March' />
    </front>
  </reference>

    <reference  anchor="DWORK" target='https://www.cis.upenn.edu/~aaroth/Papers/privacybook.pdf'>
    <front>
      <title>The Algorithmic Foundations of Differential Privacy</title>
      <author initials='A.' surname='Roth' fullname='A. Roth'><organization /></author>
      <author initials='C.' surname='Dwork' fullname='C. Dwork'><organization /></author>
      <date year='2014' />
      <!-- <seriesInfo name='DOI' value='10.1561/0400000042' /> -->
    </front>
    </reference>

      <reference  anchor="FOX">
    <front>
      <title>Randomized Response and Related Methods: Surveying Sensitive Data</title>
      <author initials='J.A.' surname='Fox' fullname='J.A. Fox'><organization /></author>
      <date year='2017' month='February' />
      <!-- <seriesInfo name='DOI' value='10.4135/9781506300122'/> -->
    </front>
  </reference>

<reference anchor="KUEHLEWIND" target="https://tools.ietf.org/html/draft-ietf-quic-spin-exp-01">
  <front>
    <title>The QUIC Latency Spin Bit (draft-ietf-quic-spin-exp-01)</title>
    <author initials='M.' surname='Kuehlewind' fullname='M. Kuehlewind'><organization /></author>
    <author initials='B.' surname='Trammel' fullname='B. Trammel'><organization /></author>
    <date year="2018" month='October'/>
  </front>
</reference>

<reference  anchor="TENOEVER-MARTINI" target='https://tools.ietf.org/html/draft-martini-hrpc-quichr-00'>
<front>
  <title>QUIC Human Rights Review (draft-martini-hrpc-quichr-00)</title>
  <author initials='B.' surname='Martini' fullname='B. Martini'><organization /></author>
  <author initials='N.' surname='Ten Oever' fullname='N. Ten Oever'><organization /></author>
<date year='2018' month='October' />
</front>
</reference>

<reference  anchor="TRAMMEL" target='https://www.ietf.org/archive/id/draft-trammell-quic-spin-03.txt'>
<front>
<title>Adding Explicit Passive Measurability of Two-Way Latency to the QUIC Transport Protocol (draft-trammell-quic-spin-03)</title>
<author initials='B.' surname='Trammel' fullname='B. Trammel'><organization /></author>
<author initials='M.' surname='Boucadair' fullname='P. De Vaere'><organization /></author>
<author initials='R.' surname='Even' fullname='R. Even'><organization /></author>
<author initials='G.' surname='Fioccola' fullname='G. Fioccola'><organization /></author>
<author initials='T.' surname='Fossati' fullname='T. Fossati'><organization /></author>
<author initials='M.' surname='Ihlar' fullname='M. Ihlar'><organization /></author>
<author initials='A.' surname='Morton' fullname='A. Morton'><organization /></author>
<author initials='E.' surname='Stephan' fullname='E. Stephan'><organization /></author>
<date year='2018' month='May' />
</front>
</reference>

    </references>

  </back>

<!-- ##markdown-source:
H4sIAByHrloAA5Va7W4bR5b9309RyGAQCWBTomTZFvMjK0uyrVnLUUQFQXax
WBS7i2RFzW6mq1s0YxjY19jX2yfZc25Vf5CiJ57BJKH649b9vufe23EcR5Wt
MjNWP60qW+Q6UxOT1KWtNurGqY9FpS7ycC/S02lpnsaqCI/GLjwapUWS6yWo
pKWeVXFV6uXSZFn87Mk4L6oo1ZUZRwn+PS/KzVjZfFZEkV2VY1WVtatOjo/P
j0+iR7NZF2U6Vjd5ZcrcVPEVqUeRq3Se/rfOihwnboyLVnas/rMqkoFyRVmV
Zubwa7Pkj/+KIl1Xi6IcR0rF+EfhODdWb4bqIXApFz37b0qr8+0bRTkfq+uH
9+o/IECykGtmqW0Gvk01+7dG1mG453C+qcbql9w+mdLZSle4pJ0z6qU8kEAN
Y/X6+PykTzIp6ryiMiZrW/1pygwiRlFelEtdgdAY+oGW2r+UuvhkMueK/Px8
LAQ6Kfm/OPw3SDsZts/LjWDzh4VRb7Qz8T1sod7qLNPJRuFkZSunbparzMJK
sKBTOFtVePzKzmY2qTP4RzGjZWAwPKCuTGUSPqoObK4uLm/V5eVEjc7Pzw/9
ibqcUy2LqlqNj47W6/Ww1DaNYaZV4Wy9HELRR7x0fn50d3F3fT85algertKZ
EBHHEaL488MmWZin0ek3iH8/DE9/VTvviiydmnK+/4HboZokC72ype6r7827
uy5aIPWdLiuLCLoyq6zYLE1eqZhRRL1N/qiN+dOoX+GgC7nyj9om5kdR1+Tm
3eVPt7fq5Hh0+lxdDvpKinxmSpMnxg2dnSfF0iss/D7im0crvYLHtddWo1ej
HdXxMfz5zmY6Hb36Bs39NvQP7797MVSXxcLkX7373pR/frtanz3wXh6os6Xe
ctuLEno09F78+M1UP6qfcnV/9+83//c//+v62qcntwaioj9eTSZUwqv9WqZX
5qlzO17JS3xJfsT8Fa/KYi6Bf6RLE69NXJGZeIMkVa4erYvTlosYXLT572jb
GK/i0QhXLhd1Pv8mezwM/cNf9fMn5K97+7tb298f4ytjf9//5BXpFLNZjuz5
tQc+mCf7FdMie97q+fwr78Lwt9ZlxZPZf/9yqH612U4u+iVP4bzM7DafS4Dc
F5lhkrk3c8sUWjoG2dXHyeT6smflfyle7DI5ElOGWMHfMMLMokadnT4PlmAf
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
7YCBa/ENwQgXNH4p8P91ueQlZTEAAA==

-->

</rfc>

