<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.6.17 (Ruby 3.0.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-teigen-ippm-app-quality-metric-reqs-00" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.15.3 -->
  <front>
    <title abbrev="app-quality-metric-reqs">Requirements for a Network Quality Framework Useful for Applications, Users, and Operators</title>
    <seriesInfo name="Internet-Draft" value="draft-teigen-ippm-app-quality-metric-reqs-00"/>
    <author fullname="Bjørn Ivar Teigen">
      <organization>Domos</organization>
      <address>
        <postal>
          <street>Gaustadalléen 21</street>
          <code>0349</code>
          <country>NORWAY</country>
        </postal>
        <email>bjorn@domos.no</email>
      </address>
    </author>
    <author fullname="Magnus Olden">
      <organization>Domos</organization>
      <address>
        <postal>
          <street>Gaustadalléen 21</street>
          <code>0349</code>
          <country>NORWAY</country>
        </postal>
        <email>magnus@domos.no</email>
      </address>
    </author>
    <date year="2023" month="January" day="24"/>
    <area>Transport</area>
    <workgroup>IP Performance Measurement</workgroup>
    <keyword>Latency</keyword>
    <keyword>Metric</keyword>
    <keyword>RPM</keyword>
    <keyword>Quality Attenuation</keyword>
    <abstract>
      <t>This document describes the features and attributes a network quality framework must have to be useful for different stakeholders.
The stakeholders included are developers of Applications, End-Users, and Network Operators and Vendors.
At a high level, End-Users need an understandable network metric.
Application developers need a network metric that allows them to evaluate how well their application is likely to perform given the measured network performance.
Network Operators and Vendors need a metric that facilitates troubleshooting and optimization of their networks.
Existing network quality metrics and frameworks typically address the needs of one or two of these stakeholders, but we have yet to find one that bridges the needs of all three.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://domoslabs.github.io/AppQualityMetricID/draft-teigen-ippm-app-quality-metric-reqs.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-teigen-ippm-app-quality-metric-reqs/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        IP Performance Measurement Working Group mailing list (<eref target="mailto:ippm@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/ippm/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/ippm/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/domoslabs/AppQualityMetricID"/>.</t>
    </note>
  </front>
  <middle>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>This document aims to describe the features a network performance framework must have to be understandable to end-users, useful for application developers, and actionable for network operators. The motivation for targeting users, application developers, and operators all at once is this: solutions exist for many of the problems causing high and unstable latency in the Internet, but the incentives to deploy them are relatively weak. Creating a unifying framework for network quality can help make these incentives stronger. Stronger incentives can be achieved by reaching end-users and application developers while simultaneously measuring something operators and vendors can work to optimize.</t>
      <t>Bandwidth is necessary but not sufficient for high-quality modern network experiences. Idle latency, working latency, jitter, and unmitigated packet loss are major causes of poor application outcomes. The impact of latency is widely recognized in network engineering circles <xref target="BITAG"/>. Unfortunately, it is complicated to benchmark the quality of network transport. Most end-users are unable to relate to metrics other than Mbps, which they have long been conditioned to think of as the only dimension of network quality.</t>
      <t>Real Time Response under load tests<xref target="RRUL"/> and Responsiveness <xref target="RPM"/> make huge strides in making a better network quality metric that is far closer to application outcomes than bandwidth is, and the latter is successful at being relatively relatable/understandable to end-users.</t>
      <t>As pointed out in <xref target="RPM"/>, "Our networks remain unresponsive, not from a lack of technical solutions, but rather a lack of awareness of the problem." The lack of awareness means a lack of incentives for operators to invest in improving network quality (beyond increasing the throughput). While Open Source solutions exist, vendors rarely implement them. And it all boils down to the lack of a universally accepted network quality framework that captures how well applications are likely to work.</t>
      <t>A recent IAB workshop on measuring internet quality for end users identified this important point: Users mostly care about application performance (as opposed to network performance). Among the conclusions is the statement, "A really meaningful metric for users is whether their application will work properly or fail because of a lack of a network with sufficient characteristics" <xref target="RFC9318"/>. One of the requirements we set out here is, therefore, to be able to answer this question: "Will an application work properly?". An answer to this question requires a couple of things; First, we must acknowledge that the internet is stochastic (from the point-of-view of any given client), and we can never answer this question with certainty. Second, different applications have different needs and adapt differently to varying network conditions. Any framework aiming to answer this question must be able to cater to the needs of different applications.</t>
    </section>
    <section anchor="design-goal">
      <name>Design Goal</name>
      <t>The overall goal is to describe the requirements for an objective network quality framework and metric that is useful for end-users, application developers, and network operators/vendors alike.</t>
    </section>
    <section anchor="requirements">
      <name>Requirements,</name>
      <t>This section describes the three main requirements and the motivation for each.</t>
      <t>In general, all stakeholders ultimately care about the success of applications running over the network. Application success depends not just on bandwidth but also on the delay of the network links and computational steps involved in making the application function.</t>
      <t>These delays in turn depend on how the application places load on the network, how the network is affected by environmental conditions and the behavior of other users sharing the network resources.</t>
      <t>Different applications have different needs from the network, and they put different patterns of load on the network. To provide an answer to whether or not applications will work well or fail, a network quality framework must therefore be able to compare measurements of network performance to many different application requirements.</t>
      <t>Flexibility in describing application requirements and the ability to capture the delay characteristics of the network in enough detail to compute how likely application success is with satisfactory accuracy and precision are necessary conditions.</t>
      <t>How can operators take action when measurements show that applications fail too often? We can answer this question if the measured metric(s) support spatial composition <xref target="RFC6049"/>, <xref target="RFC6390"/>. Spatial composition gives us the ability to divide results into sub-results, each measuring the performance of a required sub-milestone that must be reached in time for the application to succeed.</t>
      <t>To summarise, the framework and "meaningful metric" we're looking for should have the following properties:</t>
      <ol spacing="normal" type="1"><li>Capture the information necessary to compute the probability that applications will work well. (Useful for End-users and Application developers)</li>
        <li>Compare meaningfully to different application requirements.</li>
        <li>Compose. So that operators can quantify the contributions of different sub-outcomes and sub-paths of the network. (Useful for Operators and Vendors)</li>
      </ol>
      <section anchor="requirements-for-end-users">
        <name>Requirements for end-users</name>
        <t>The quality framework should facilitate a metric that is objective, relatable, and relatively understandable for an end-user. We are looking for a middle ground between objective QoS metrics (Throughput, packet loss, jitter, average latency) and subjective but understandable QoE metrics (MOS, 5-star ratings). The ideal framework should be objective, like QoS metrics, and understandable, like QoE metrics.</t>
        <t>If these requirements are met, the end-user can understand if a network can reliably deliver what they care about: the outcomes of applications. Examples are how quickly a web page loads, the smoothness of a video conference, or whether or not a video game has any lag.</t>
      </section>
      <section anchor="requirements-from-application-and-platform-developers">
        <name>Requirements from Application and Platform Developers</name>
        <t>The framework needs to give developers the ability to describe the network requirements of their applications. The format for specifying network requirements must include all relevant dimensions of network quality so that different applications which are sensitive to different network quality dimensions can all evaluate the network accurately. We can only expect some developers to have network expertise, so to make it easy for developers to use the framework, developers must be able to specify network requirements approximately. Therefore, it must be possible to describe both simple and complex network requirements. The framework also needs to be flexible so that it can be used with different kinds of traffic and that extreme network requirements which far exceed the needs of today's applications can also be articulated.</t>
        <t>If these requirements are met, developers of applications or platforms can state or test their network requirements and evaluate if the network is sufficient for a great application outcome. Both the application developers with networking expertise and those without can use the framework.</t>
      </section>
      <section anchor="requirements-for-network-operators-and-network-solution-vendors">
        <name>Requirements for Network Operators and Network Solution Vendors</name>
        <t>From an operator perspective, the key is to have a framework that lets operators find the network quality bottlenecks and objectively compare different networks and technologies. The framework must support mathematically sound compositionality ('addition' and 'subtraction') to achieve this. Why? Network operators rarely manage network traffic end-to-end. If a test is purely end-to-end, the ability to find bottlenecks may be gone. If, however, we could measure end-to-end (e.g., a-b-c-d-e) and not-end-to-end (e.g., b-c-d-e) and subtract, we can isolate the areas outside the influence of the network operator. In other words, we could get the network quality of a-b and b-c-d-e separately. Compositionality is essential for fault detection and accountability.</t>
        <t>By having mathematically correct composition, a network operator can measure two segments separately, perhaps even with different approaches, and add them together to understand the end-to-end network quality.</t>
        <t>For another example where spatial composition is useful, we can look at a typical web page load sequence. If we measure web page load times and find they are too often too slow, we may then separately measure DNS resolution time, TCP round-trip time, and the time it takes to establish TLS connections to get a better idea of where the problem is. A network quality framework should support this kind of analysis to be maximally useful for operators.
The quality framework must be applicable in both lab testing and monitoring of production networks. It must be useful on different time scales, and it can't have a dependency on network technology or OSI layer.</t>
        <t>If these requirements are met, a network operator can monitor and test their network and understand where the true bottlenecks are, regardless of network technology.</t>
      </section>
    </section>
    <section anchor="discussion-of-other-performance-metrics">
      <name>Discussion of other performance metrics</name>
      <t>Many network performance metrics and frameworks for reasoning about them have been proposed, used, and abused throughout the years. We present a brief description of some of the most relevant metrics.</t>
      <t>For each of the metrics below, we discuss whether or not they meet each of the three criteria set out in the requirements.</t>
      <section anchor="average-peak-throughput">
        <name>Average Peak Throughput</name>
        <t>Throughput is related to user-observable application outcomes because there must be <em>enough</em> bandwidth available. Adding extra bandwidth above a certain threshold will, at best, receive diminishing returns (and any returns are often due to reduced latency). It is not possible to compute the probability of application success or failure based on throughput alone for most applications.
Throughput can be compared to a variety of application requirements, but since there is no direct correlation between throughput and application performance, it is not possible to conclude that an application will work well even if we know that enough throughput is available.</t>
        <t>Throughput cannot be composed.</t>
      </section>
      <section anchor="average-latency">
        <name>Average Latency</name>
        <t>Average latency relates to user-observable application outcomes in the sense that the average latency must be low enough to support a good experience. However, it is not possible to conclude that a general application will work well based on the fact that the average latency is good enough <xref target="BITAG"/>.</t>
        <t>Average latency can be composed. If the average latency of links a-b and b-c is known, then the average latency of the composition a-b-c is the sum of a-b and b-c.</t>
      </section>
      <section anchor="th-percentile-of-latency">
        <name>99th Percentile of Latency</name>
        <t>The 99th percentile of latency relates to user-observable application outcomes because it captures some information about how bad the tail latency is. If an application can handle 1% of packets being too late, for instance by maintaining a playback buffer, then the 99th percentile can be a good metric for measuring application performance. It does not work as well for applications that are very sensitive to overly delayed packets because the 99th percentile disregards all information about the delays of the worst 1% of packets.</t>
        <t>It is not possible to compose 99th-percentile values.</t>
      </section>
      <section anchor="variance-of-latency">
        <name>Variance of latency</name>
        <t>Network latency is not necessarily normally distributed, and so it can be difficult to extrapolate from a measure of the variance of latency to how well specific applications will work.</t>
        <t>The variance of latency can be composed. If the variance of links a-b and b-c is known, then the variance of the composition a-b-c is the sum of the variances a-b and b-c.</t>
      </section>
      <section anchor="jitter">
        <name>Jitter</name>
        <t>Jitter measures the difference in delay between subsequent packets. Some applications are very sensitive to this because of time-outs that cause later-than-usual packets to be discarded. For some applications, jitter can be useful in assessing application performance, especially when it is combined with other latency metrics. Jitter does not contain enough information to compute the probability that a wide range of applications will work well.</t>
        <t>Jitter cannot be composed.</t>
      </section>
      <section anchor="trimmed-mean-of-latency">
        <name>Trimmed Mean of Latency</name>
        <t>The trimmed mean of latency is the average computed after the worst x percent of samples have been removed. Trimmed means are typically used in cases where there is a know rate of measurement errors that should be filtered out before computing results.</t>
        <t>In the case where the trimmed mean simply removes measurement errors, the result can be composed in the same way as the average latency. In cases where the trimmed mean removes real measurements, the trimming operation introduces errors that may compound when composed.</t>
      </section>
      <section anchor="round-trips-per-minute">
        <name>Round-trips Per Minute</name>
        <t>Round-trips per minute <xref target="RPM"/> is a metric and test procedure specifically designed to measure delays as experienced by application-layer protocol procedures such as HTTP GET, establishing a TLS connection, and DNS lookups. It, therefore, measures something very close to the user-perceived application performance of HTTP-based applications. RPM loads the network before conducting latency measurements and is, therefore, a measure of loaded latency (also known as working latency) well-suited to detecting bufferbloat <xref target="Bufferbloat"/>.</t>
        <t>RPM is not composable.</t>
      </section>
      <section anchor="quality-attenuation">
        <name>Quality Attenuation</name>
        <t>Quality Attenuation is a network performance metric that combines latency and packet loss into a single variable <xref target="TR-452.1"/>.</t>
        <t>Quality Attenuation relates to user-observable outcomes in the sense that user-observable outcomes can be measured using the Quality Attenuation metric directly, or the quality attenuation value describing the time-to-completion of a user-observable outcome can be computed if we know the quality attenuation of each sub-goal required to reach the desired outcome <xref target="Haeri22"/>.</t>
        <t>Quality Attenuation is composable because the convolution of quality attenuation values allows us to compute the time it takes to reach specific outcomes given the quality attenuation of each sub-goal <xref target="Haeri22"/>.</t>
      </section>
      <section anchor="summary-of-performance-metrics">
        <name>Summary of performance metrics</name>
        <t>This table summarizes the properties of each of the metrics we have surveyed.</t>
        <t>The column "Capture probability of general applications working well" records whether each metric can, in principle, capture the information necessary to compute the probability that a general application will work well. We assume measurements capture the properties of the end-to-end network path that the application is using.</t>
        <table>
          <thead>
            <tr>
              <th align="left">Metric</th>
              <th align="left">Capture probability of general applications working well</th>
              <th align="left">Easy to articulate Application requirements</th>
              <th align="left">Composable</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">Average latency</td>
              <td align="left">Yes for some applications</td>
              <td align="left">Yes</td>
              <td align="left">Yes</td>
            </tr>
            <tr>
              <td align="left">Variance of latency</td>
              <td align="left">No</td>
              <td align="left">No</td>
              <td align="left">Yes</td>
            </tr>
            <tr>
              <td align="left">Jitter</td>
              <td align="left">No</td>
              <td align="left">Yes</td>
              <td align="left">No</td>
            </tr>
            <tr>
              <td align="left">Average Peak Throughput</td>
              <td align="left">Yes for some applications</td>
              <td align="left">Yes</td>
              <td align="left">No</td>
            </tr>
            <tr>
              <td align="left">99th Percentile of Latency</td>
              <td align="left">No</td>
              <td align="left">No</td>
              <td align="left">No</td>
            </tr>
            <tr>
              <td align="left">Trimmed mean of latency</td>
              <td align="left">Yes for some applications</td>
              <td align="left">Yes</td>
              <td align="left">No</td>
            </tr>
            <tr>
              <td align="left">Round Trips Per Minute</td>
              <td align="left">Yes for some applications</td>
              <td align="left">Yes</td>
              <td align="left">No</td>
            </tr>
            <tr>
              <td align="left">Quality Attenuation</td>
              <td align="left">Yes</td>
              <td align="left">No</td>
              <td align="left">Yes</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
    <section anchor="conclusion">
      <name>Conclusion</name>
      <t>We describe requirements for a framework which is useful for end-users, network operators, vendors, and applications. Our brief survey of existing performance metrics concludes that none of the metrics we looked at meet all of the requirements at once. This clearly presents an opportunity. For instance, RPM does a great job of improving the visibility of network quality issues beyond throughput but is inherently about end-to-end tests and is not designed to help network operators monitor, test, and understand their networks from within. Quality Attenuation <xref target="TR-452.1"/>, on the other hand, is a great tool for understanding the performance of a network from within but is challenging to use and understand for end-users or application developers.</t>
      <t>The requirements described here may be impossible to meet entirely in practice. Still, aiming for a framework and metrics that meet the requirements is a worthwhile goal. A solution that meets all of these requirements may help improve the Internet by strengthening incentives to deploy solutions that materially affect the quality of user experiences.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>TODO Security</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner">
              <organization/>
            </author>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification.  These words are often capitalized. This document defines these words as they should be interpreted in IETF documents.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba">
              <organization/>
            </author>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol  specifications.  This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the  defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="RFC6049">
          <front>
            <title>Spatial Composition of Metrics</title>
            <author fullname="A. Morton" initials="A." surname="Morton">
              <organization/>
            </author>
            <author fullname="E. Stephan" initials="E." surname="Stephan">
              <organization/>
            </author>
            <date month="January" year="2011"/>
            <abstract>
              <t>This memo utilizes IP performance metrics that are applicable to both complete paths and sub-paths, and it defines relationships to compose a complete path metric from the sub-path metrics with some accuracy with regard to the actual metrics.  This is called "spatial composition" in RFC 2330.  The memo refers to the framework for metric composition, and provides background and motivation for combining metrics to derive others.  The descriptions of several composed metrics and statistics follow.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6049"/>
          <seriesInfo name="DOI" value="10.17487/RFC6049"/>
        </reference>
        <reference anchor="RFC6390">
          <front>
            <title>Guidelines for Considering New Performance Metric Development</title>
            <author fullname="A. Clark" initials="A." surname="Clark">
              <organization/>
            </author>
            <author fullname="B. Claise" initials="B." surname="Claise">
              <organization/>
            </author>
            <date month="October" year="2011"/>
            <abstract>
              <t>This document describes a framework and a process for developing Performance Metrics of protocols and applications transported over IETF-specified protocols.  These metrics can be used to characterize traffic on live networks and services.  This memo documents an  Internet Best Current Practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="170"/>
          <seriesInfo name="RFC" value="6390"/>
          <seriesInfo name="DOI" value="10.17487/RFC6390"/>
        </reference>
        <reference anchor="RFC9318">
          <front>
            <title>IAB Workshop Report: Measuring Network Quality for End-Users</title>
            <author fullname="W. Hardaker" initials="W." surname="Hardaker">
              <organization/>
            </author>
            <author fullname="O. Shapira" initials="O." surname="Shapira">
              <organization/>
            </author>
            <date month="October" year="2022"/>
            <abstract>
              <t>The Measuring Network Quality for End-Users workshop was held virtually by the Internet Architecture Board (IAB) on September 14-16, 2021. This report summarizes the workshop, the topics discussed, and some preliminary conclusions drawn at the end of the workshop.</t>
              <t>Note that this document is a report on the proceedings of the workshop.  The views and positions documented in this report are those of the workshop participants and do not necessarily reflect IAB views and positions.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9318"/>
          <seriesInfo name="DOI" value="10.17487/RFC9318"/>
        </reference>
        <reference anchor="TR-452.1" target="https://www.broadband-forum.org/download/TR-452.1.pdf">
          <front>
            <title>TR-452.1: Quality Attenuation Measurement Architecture and Requirements</title>
            <author>
              <organization>Broadband Forum</organization>
            </author>
            <date year="2020" month="September"/>
          </front>
        </reference>
        <reference anchor="BITAG" target="https://www.bitag.org/documents/BITAG_latency_explained.pdf">
          <front>
            <title>Latency Explained</title>
            <author>
              <organization>BITAG</organization>
            </author>
            <date year="2022" month="October"/>
          </front>
        </reference>
        <reference anchor="RPM" target="https://datatracker.ietf.org/doc/html/draft-ietf-ippm-responsiveness">
          <front>
            <title>Responsiveness under Working Conditions</title>
            <author>
              <organization/>
            </author>
            <date year="2022" month="July"/>
          </front>
        </reference>
        <reference anchor="RRUL" target="https://www.bufferbloat.net/projects/bloat/wiki/RRUL_Spec/">
          <front>
            <title>Real-time response under load test specification</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="Bufferbloat" target="https://queue.acm.org/detail.cfm?id=2071893">
          <front>
            <title>Bufferbloat: Dark buffers in the Internet</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="Haeri22" target="https://www.mdpi.com/2073-431X/11/3/45">
          <front>
            <title>Mind Your Outcomes: The &amp;#916;QSD Paradigm for Quality-Centric Systems Development and Its Application to a Blockchain Case Study</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
      </references>
    </references>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors would like to acknowledge Gavin Young, Kevin Smith, Peter Thompson, Brendan Black, Gino Dion, Mayur Sarode, Greg Mirsky, Olav Nedrelid, Karl Magnus Kalvik, Knut Joar Stroemmen, Hans Petter Dalsklev, Jakub Kozlowski, Wim De Ketelaere and Ian Wheelock for their comments, reviews, and contributions.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
Za8XgnYts7UFTwQ89Mk74sYmx9ccNVExq0uR71Ho4ixs7Hs5axHq+yas7Y1i
DOiaHlKffaF+NyGzfDKI1Ww6OZIAJQ/Y1kx8+uZGckHObnHmkbo9uVKC1MdA
riv30PNHAlA4OEb2Yre01NxTs1C3r2+IBnMrFBaS6aot5BFdU/Ysx4LylKId
OP5AEsfhcG+IJAVwJx0ZzHBH2cak3hkvIwICilmQX22bF/ZERw3ssP6EzhzB
tqCELJqKdfHdKssiTzGVZC1n3IFr7GgbVtR5iz4cEXRPjVgKCw1O38ulxQuf
Vt4H+NbueKPaeVs7LZWTy5tzkLZByPWT3nyfatmNOB+w5bu7QU1waGwh7/qb
UiLGeVQiyDMdbNvSLB5VnaYmro2vK1tFClMiLlgaXDBM2JWI29Pyw0Om6Swk
m9zknZeWo1L1Zs6C1TBphEmcQZgKQHPFSZ+s3uiIbS5vKZ/aiCFhx4+eOfy4
8o1KAo2dWWZlrkX6bdD3wuXOm3FuA1Pt9TOxPOlHTqLWS62rzus2aw8imAaM
mpKWa3TppTCAYI5drHylozvVRtaD9iPNlG0nSBw8L8fFFP9fixrsLKj7ip3k
VRtZ/4VNP/4iyMlHa3biYx7oN1CBQDF4v3DEtBCZd6Um2aBhQUGSQCNbi2dh
jBVWCfBYEYK5sfV55twR0sth5pvmAWXfmsKkdg0TUFPs0OcMRElTW0oII4R9
OaouDG7rGTYFTVM6jShKkuZuWBtlzOVJAxPFo1t9Co7ARQsOqCW2HXMdQea2
lw7P2LYBmFRS1K6siS2BR87BljZzwzqJS7qE1PUaiAI98/0r2+xxca3N2eV7
SrySnhePnIofYynThTg2Q111xK+VkkGPK1zfMYa625Vpf/nkuJsPctJsPlqa
nfIwrA5qrb0sUyPlUNtmF0XjkhCuFEUSNDZN1CsPIz+Klb6s9iGOBiKmmcmr
9lOLBS1BltK2T2mwxa5A+ITHyrqTrSlZybHVsxY7ch0ebj6yEGPPezY/2iIj
Qc1Nn0G97CFSe8zPnsE8XOlS+lFsrdyfOJ24fL3qfP3nCoA3Z2nQ/SG2PUxl
W6fCLNk0clCIdYqW4TYS6aqEtAFiV1j58O8FL0hC07j+IuI0TjASG5GyfZGq
PN1IXZb20HZCIeLeTNkYYfvNA2b3ueBbB+3pBy0abRlij8qLRUwKbSXVQgBj
5a7XMmqcyMLc4Kg33XwUK7k2LQlwkgT7bTzGFs1wgBY92IbQbaY3JbAmXw7y
oI0dlhIH7TXpDPi57DhYlqkI7dzkb2FrfU3GnWjT5xyoFKf2JY0Uu5SbSJm0
yxnXuu6QhSmCLBChH5Mv0kksDnBlQz7X6OXRuNvcepsYSRD4fiR/52FPzcRW
pnfOsk/VO2M/RsfDFz5GucN3zLaqfyGZ/YH9x7PDTuBhc6xtLTWTaN36MoTS
NmKqGiFQN9TbrY6tbTmVGCLoPCIoZ5HGCbd9Tr6VY7YPjmuDoKERZxtrELlB
bMlIwjzTX9qXLIJsIIMB7CNCOG3MB7RxhLiKxyzSJZXTpqF0yhs+NtS1ALrx
UA50Ona2yszSVNSWh0MF+8mynPTEqjLK53orF9gr0w38Ae5z3LdlulyC9gsd
5X1zXrnvlu67QOtCp+KIBXCZVa5lxNqCd96iCDB3dY0W/QMwwTLhoG6Ddaxs
tNcFJBhIabXZQ9xEPBZWRRbFlJLtnIWFbKXLUordZFhbMpqlGUh0faBT235g
ybfQVYrEtqVGVIhXbsIoK+CHZKo3bhNmx9ojB/85Z1/LG3zDEsw91Ccyu/y0
5JF6O+9S4ZdnK2CnkD9qx7ZN5ZIBcRcf8FLII2YkhLraBpZ5T06um+SDIQBQ
F2mOMx+Ej1e0E/K4aSaWM3Ier4lpIdCA/bVkaNxNMbHX0vZlkba3vs7DRCZA
cdJ5E8j8WEJuzloVcZG100v/8IIvv7q9vVIvz25HbWbEOvFuesS6CeZfmBSq
V5I26LQkNmawbdcXMybNzr7HTfCNSH7KvqV93aAQWNI1tgiyW94C92yVr5Mr
bAQ2l/xG25HfbeGQ9EW3lbLjzzhxG3YhUGM5QryJoItus/9DsSNjU6cuGHUZ
Rjaut1fvCGbbvwTScgupt3WUJBdMQJZ2XUTfdeE03XfbJiySO+trmv1Ia0xw
EUF6QCJGZPPMeTyikPfv/U1RIXfX+h/ArB8IVPYOdTag6Yupm07sXYu7Pdqw
kVlV12DiE2VRMFZgU9jU5LOCTJvaOprPj0T76AtNlFjzTpi4e13MJ4kQ9k5I
d2bTOSPhfWQvO4hmO6MrK71/765U7uW8u6ZhhaYDVCH8a58axfJ7uWH8Hbza
9B3qVrrUUtpAuObA2tt3H7X57rYg5zfS7yPR1q6Emu0EtbejXGvQ7xzCapt5
mmV6uSp/Fw6itNYb22Ek7MnqZa6Gvvmnly/ZEdC2Gk9FH8pFG8J+n/pyDVMi
jBCRESV+haAlTlfsqYj/8i6jjwizbQ+LAZd6vYHh8l2m7SkcsMUnCNG7FzBF
I5kV/cH/XMC+/35Qfy6H8eoZq/A0Sk39t9Ni0ckYy1KtKvww+GH8E//95IC/
3qud8SBN9fMYW1z7xt1h2cLlezndefXj/+uMJ2k7wsnu+DfFz5j+L3l1izQH
0f9a8+9b6qPGB0uFB9rLVXfn/3860B5p+3NR2+N/3n8//0B7pN3uCZya8X87
rglgJ4EdHN+b/29D2i4g8BfMv2+pjxrf0dDBJ/zVDXcXa/BWtz1L21dPggKm
7Q7ae6tk6+ZIc8Nu1C8DICLgLUVb8LIeX3CBv4S/qxrnc9kuvsuL9hJWgCEY
6DD6qGxZi7m+XTe13IVwtqIQmmU6YkLRleKMbadZyVVbFuUl8+IzpyMJZiTv
4fuHviumcq2xubAoqajUpK0b7dedU/h+yQrLRcagVDG15Yo0X/i7TDY/Gbh+
ufrqoiKJR8JIUy6Ebx2FL8SO5OV+N2m3KuuaJJn8SfPJTikOY42RLxbYRBEz
0SMb6VjmVEVhRaVdb2+juqc7IMAzJF7gLOV69Nx3+PU20RFHtfcXCByw7IiD
l//E3ttz3Tq8H9mmeG2ZFKbZXhYlaGTDEYXoprJlRHuPrK827bUsn5rQrmem
Q4OwDC9UC3uznhCcHQtt44R/1wRi3S/Ik3QRASuMFkg2v+003ciPYuVzJlnt
jdEdv1HQXpR1mRSpA8v9Vrkr1IkgQIY0E4fX7Z2BWXNqf3voVM/S3P3OjxwA
u9KkmUgNL76+ueUvzPFf9eZSPl+fffX1+fXZKT/fvDp+/br5MHAjbl5dfv36
tP3UvnlyeXFx9ubUvoynqvNoMLw4/mZodWB4eXV7fvnm+PXQBr6dn80o/U9e
yJVIGAfJCZpBKy145/nJ1f/81+FTqMTfXb84eXx4+OzHH90fnx3+6in+YPLJ
/ShF7hKtksvYDCCgMDySq8WBAvqnVZTRWtprK7lII7j5i38lZ/7tSP3TNF4d
Pv1n94Ab7jz0POs8FJ5tP9l62TJxx6MdyzTc7DzvcbpL7/E3nb8934OH0rxx
o+O6pFz5nz6LvMhcnl4238rQ8+M3x9vDOkfIZvC8sCNtdyCFU345haUuznLc
3IEVBRq8P7K/a6iTXw9nOA09/NHKq/1NLcY+zL1K6730GbZXaF+yE40/opTP
R+pLzT9uljBiIwAT4uHbBeIew7Tcc+hgAifznDeRR+plCiJPJWF3EW3gGG+i
skjgaV6Weg5EU5q7zUhdZtFavdEJ2/JhYr+Ey/K/kfdllK1TTPQlsI/6ooBM
3VTlH/8AzIYpXzEJfWXbo06xo7tMr0fqi+iunqovi98xqXCXjtTblP3voLvS
WaTdr6Cdg8i3C635q03+ShA8BeJfl5QtNW8BOw/fuZ5CRv8fYCdrEDFTAAA=

-->

</rfc>
