astroport/doc/Fat protocols aren't new W...

279 lines
195 KiB
HTML
Raw Normal View History

2020-03-27 04:04:10 +01:00
<!DOCTYPE html>
<html xmlns:cc="http://creativecommons.org/ns#"><head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# medium-com: http://ogp.me/ns/fb/medium-com#"><script async="" src="Fat%20protocols%20aren't%20new%20%20What%20blockchain%20can%20learn%20from%20p2p%20file%20sharing_fichiers/branch-latest.js"></script><script src="Fat%20protocols%20aren't%20new%20%20What%20blockchain%20can%20learn%20from%20p2p%20file%20sharing_fichiers/analytics.js" type="text/javascript"></script>
<script type="text/javascript">window.addEventListener('DOMContentLoaded',function(){var v=archive_analytics.values;v.service='wb';v.server_name='wwwb-app104.us.archive.org';v.server_ms=923;archive_analytics.send_pageview({});});</script><script type="text/javascript" src="Fat%20protocols%20aren't%20new%20%20What%20blockchain%20can%20learn%20from%20p2p%20file%20sharing_fichiers/ait-client-rewrite.js" charset="utf-8"></script>
<script type="text/javascript">
WB_wombat_Init("https://web.archive.org/web/", "20190309201603", "medium.com");
</script>
<script type="text/javascript" src="Fat%20protocols%20aren't%20new%20%20What%20blockchain%20can%20learn%20from%20p2p%20file%20sharing_fichiers/wbhack.js" charset="utf-8"></script>
<script type="text/javascript">
__wbhack.init('https://web.archive.org/web');
</script>
<link rel="stylesheet" type="text/css" href="Fat%20protocols%20aren't%20new%20%20What%20blockchain%20can%20learn%20from%20p2p%20file%20sharing_fichiers/banner-styles.css">
<link rel="stylesheet" type="text/css" href="Fat%20protocols%20aren't%20new%20%20What%20blockchain%20can%20learn%20from%20p2p%20file%20sharing_fichiers/iconochive.css">
<!-- End Wayback Rewrite JS Include -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=contain"><title>Fat protocols aren't new: What blockchain can learn from p2p file sharing</title><link rel="canonical" href="https://web.archive.org/web/20190309201603/https://medium.com/@jbackus/fat-protocols-arent-new-42d2c538db41"><meta name="title" content="Fat protocols aren't new: What blockchain can learn from p2p file sharing"><meta name="referrer" content="unsafe-url"><meta name="description" content="Limewire and Kazaa were backed by fat protocols. They can teach us a lot about competition, the value of the frontend app vs. the protocol, and the value of crypto tokens."><meta name="theme-color" content="#000000"><meta property="og:title" content="Fat protocols aren't new: What blockchain can learn from p2p file sharing"><meta property="twitter:title" content="Fat protocols aren't new: What blockchain can learn from p2p file sharing"><meta property="og:url" content="https://web.archive.org/web/20190309201603/https://medium.com/@jbackus/fat-protocols-arent-new-42d2c538db41"><meta property="og:image" content="https://web.archive.org/web/20190309201603im_/https://cdn-images-1.medium.com/max/1200/1*WDf1MmV_gJgmfpi3ue4G4g.png"><meta property="fb:app_id" content="542599432471018"><meta property="og:description" content="Limewire and Kazaa were backed by fat protocols. They can teach us a lot about competition and the value of crypto tokens"><meta name="twitter:description" content="Limewire and Kazaa were backed by fat protocols. They can teach us a lot about competition and the value of crypto tokens"><meta name="twitter:image:src" content="https://cdn-images-1.medium.com/max/1200/1*WDf1MmV_gJgmfpi3ue4G4g.png"><link rel="publisher" href="https://plus.google.com/103654360130207659246"><link rel="author" href="https://medium.com/@jbackus"><meta property="author" content="John Backus"><meta property="og:type" content="article"><meta name="twitter:card" content="summary_large_image"><meta property="article:publisher" content="https://www.facebook.com/medium"><meta property="article:author" content="https://medium.com/@jbackus"><meta name="robots" content="index, follow"><meta property="article:published_time" content="2018-05-29T18:21:01.221Z"><meta name="twitter:creator" content="@backus"><meta name="twitter:site" content="@Medium"><meta property="og:site_name" content="Medium"><meta name="twitter:label1" value="Reading time"><meta name="twitter:data1" value="16 min read"><meta name="twitter:app:name:iphone" content="Medium"><meta name="twitter:app:id:iphone" content="828256236"><meta name="twitter:app:url:iphone" content="medium://p/42d2c538db41"><meta property="al:ios:app_name" content="Medium"><meta property="al:ios:app_store_id" content="828256236"><meta property="al:android:package" content="com.medium.reader"><meta property="al:android:app_name" content="Medium"><meta property="al:ios:url" content="medium://p/42d2c538db41"><meta property="al:android:url" content="medium://p/42d2c538db41"><meta property="al:web:url" content="https://medium.com/@jbackus/fat-protocols-arent-new-42d2c538db41"><link rel="search" type="application/opensearchdescription+xml" title="Medium" href="https://web.archive.org/web/20190309201603/https://medium.com/osd.xml"><link rel="alternate" href="https://web.archive.org/web/20190309201603/android-app://com.medium.reader/https/medium.com/p/42d2c538db41"><script type="application/ld+json">{"@context":"https://web.archive.org/web/20190309201603/http://schema.org","@type":"NewsArticle","image":{"@type":"ImageObject","width":959,"height":720,"url":"https://web.archive.org/web/20190309201603/https://cdn-images-1.medium.com/max/1918/1*WDf1MmV_gJgmfpi3ue4G4g.png"},"url":"https://web.archive.org/web/20190309201603/https://medium.com/@jbackus/fat-protocols-arent-new-42d2c538db41","dateCreated":"2018-05-29T18:21:01.221Z","datePublished":"2018-05-29T18:21:01.221Z","dateModified":"2018-07-27T17:32:35.036Z","headline":"Fat protocols aren't new: What blockch
<script type="text/javascript" src="Fat%20protocols%20aren't%20new%20%20What%20blockchain%20can%20learn%20from%20p2p%20file%20sharing_fichiers/timestamp.js" charset="utf-8"></script>
<script type="text/javascript" src="Fat%20protocols%20aren't%20new%20%20What%20blockchain%20can%20learn%20from%20p2p%20file%20sharing_fichiers/graph-calc.js" charset="utf-8"></script>
<script type="text/javascript" src="Fat%20protocols%20aren't%20new%20%20What%20blockchain%20can%20learn%20from%20p2p%20file%20sharing_fichiers/auto-complete.js" charset="utf-8"></script>
<script type="text/javascript" src="Fat%20protocols%20aren't%20new%20%20What%20blockchain%20can%20learn%20from%20p2p%20file%20sharing_fichiers/toolbar.js" charset="utf-8"></script>
<style type="text/css">
body {
margin-top:0 !important;
padding-top:0 !important;
/*min-width:800px !important;*/
}
.wb-autocomplete-suggestions {
text-align: left; cursor: default; border: 1px solid #ccc; border-top: 0; background: #fff; box-shadow: -1px 1px 3px rgba(0,0,0,.1);
position: absolute; display: none; z-index: 2147483647; max-height: 254px; overflow: hidden; overflow-y: auto; box-sizing: border-box;
}
.wb-autocomplete-suggestion { position: relative; padding: 0 .6em; line-height: 23px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: 1.02em; color: #333; }
.wb-autocomplete-suggestion b { font-weight: bold; }
.wb-autocomplete-suggestion.selected { background: #f0f0f0; }
</style>
<div id="wm-ipp-base" style="display: block; direction: ltr;" lang="en">
</div><div id="donato" style="position:relative;width:100%;">
<div id="donato-base">
<iframe id="donato-if" src="Fat%20protocols%20aren't%20new%20%20What%20blockchain%20can%20learn%20from%20p2p%20file%20sharing_fichiers/donate.html" scrolling="no" style="width:100%; height:100%" frameborder="0">
</iframe>
</div>
</div><script type="text/javascript">
__wm.bt(625,27,25,2,"web","https://medium.com/@jbackus/fat-protocols-arent-new-42d2c538db41","2019-03-09",1996,"/_static/",['css/banner-styles.css','css/iconochive.css']);
__wm.checkScreenShot("https://medium.com/@jbackus/fat-protocols-arent-new-42d2c538db41", '20190309201603');
</script><div class="wb-autocomplete-suggestions "></div>
<!-- END WAYBACK TOOLBAR INSERT --><script>document.body.className = document.body.className.replace(/(^|\s)is-noJs(\s|$)/, "$1is-js$2")</script><div class="site-main surface-container" id="container"><div class="butterBar butterBar--error" data-action-scope="_actionscope_1"></div><div class="surface"><div id="prerendered" class="screenContent" data-used="true"><canvas class="canvas-renderer"></canvas><div class="container u-maxWidth740 u-xs-margin0 notesPositionContainer js-notesPositionContainer"></div><div class="metabar u-clearfix js-metabar u-boxShadow4px12pxBlackLightest u-fixed u-backgroundTransparentWhiteDarkest u-xs-sizeFullViewportWidth"><div class="branch-journeys-top"></div><div class="js-metabarMiddle metabar-inner u-marginAuto u-maxWidth1032 u-flexCenter u-justifyContentSpaceBetween u-height65 u-xs-height56 u-paddingHorizontal20"><div class="metabar-block u-flex1 u-flexCenter"><div class="u-xs-hide js-metabarLogoLeft"><a href="https://web.archive.org/web/20190309201603/https://medium.com/" data-log-event="home" class="siteNav-logo u-fillTransparentBlackDarker u-flex0"><span class="svgIcon svgIcon--logoWordmark svgIcon--112x22px u-xs-hide u-flex"><svg class="svgIcon-use" height="22" width="112" viewBox="0 0 111.5 22"><path d="M56.3 19.5c0 .4 0 .5.3.7l1.5 1.4v.1h-6.5V19c-.7 1.8-2.4 3-4.3 3-3.3 0-5.8-2.6-5.8-7.5 0-4.5 2.6-7.6 6.3-7.6 1.6-.1 3.1.8 3.8 2.4V3.2c0-.3-.1-.6-.3-.7l-1.4-1.4V1l6.5-.8v19.3zm-4.8-.8V9.5c-.5-.6-1.2-.9-1.9-.9-1.6 0-3.1 1.4-3.1 5.7 0 4 1.3 5.4 3 5.4.8.1 1.6-.3 2-1zm9.1 3.1V9.4c0-.3-.1-.6-.3-.7l-1.4-1.5v-.1h6.5v12.5c0 .4 0 .5.3.7l1.4 1.4v.1h-6.5zm-.2-19.2C60.4 1.2 61.5 0 63 0c1.4 0 2.6 1.2 2.6 2.6S64.4 5.3 63 5.3c-1.5 0-2.6-1.2-2.6-2.7zm22.5 16.9c0 .4 0 .5.3.7l1.5 1.4v.1h-6.5v-3.2c-.6 2-2.4 3.4-4.5 3.4-2.9 0-4.4-2.1-4.4-6.2 0-1.9 0-4.1.1-6.5 0-.3-.1-.5-.3-.7L67.7 7v.1H74v8c0 2.6.4 4.4 2 4.4.9-.1 1.7-.6 2.1-1.3V9.5c0-.3-.1-.6-.3-.7l-1.4-1.5v-.2h6.5v12.4zm22 2.3c0-.5.1-6.5.1-7.9 0-2.6-.4-4.5-2.2-4.5-.9 0-1.8.5-2.3 1.3.2.8.3 1.7.3 2.5 0 1.8-.1 4.2-.1 6.5 0 .3.1.5.3.7l1.5 1.4v.1H96c0-.4.1-6.5.1-7.9 0-2.7-.4-4.5-2.2-4.5-.9 0-1.7.5-2.2 1.3v9c0 .4 0 .5.3.7l1.4 1.4v.1h-6.5V9.5c0-.3-.1-.6-.3-.7l-1.4-1.5v-.2h6.5v3.1c.6-2.1 2.5-3.5 4.6-3.4 2.2 0 3.6 1.2 4.2 3.5.7-2.1 2.7-3.6 4.9-3.5 2.9 0 4.5 2.2 4.5 6.2 0 1.9-.1 4.2-.1 6.5-.1.3.1.6.3.7l1.4 1.4v.1h-6.6zm-81.4-2l1.9 1.9v.1h-9.8v-.1l2-1.9c.2-.2.3-.4.3-.7V7.3c0-.5 0-1.2.1-1.8L11.4 22h-.1L4.5 6.8c-.1-.4-.2-.4-.3-.6v10c-.1.7 0 1.3.3 1.9l2.7 3.6v.1H0v-.1L2.7 18c.3-.6.4-1.3.3-1.9v-11c0-.5-.1-1.1-.5-1.5L.7 1.1V1h7l5.8 12.9L18.6 1h6.8v.1l-1.9 2.2c-.2.2-.3.5-.3.7v15.2c0 .2.1.5.3.6zm7.6-5.9c0 3.8 1.9 5.3 4.2 5.3 1.9.1 3.6-1 4.4-2.7h.1c-.8 3.7-3.1 5.5-6.5 5.5-3.7 0-7.2-2.2-7.2-7.4 0-5.5 3.5-7.6 7.3-7.6 3.1 0 6.4 1.5 6.4 6.2v.8h-8.7zm0-.8h4.3v-.8c0-3.9-.8-4.9-2-4.9-1.4.1-2.3 1.6-2.3 5.7z"></path></svg></span><span class="svgIcon svgIcon--logoWordmark svgIcon--122x45px u-xs-show u-flex"><svg class="svgIcon-use" width="122" height="45"><path d="M61.6 31.806c0 .412 0 .505.28.758l1.574 1.537v.065h-6.979v-2.95a4.852 4.852 0 0 1-4.627 3.203c-3.588 0-6.192-2.81-6.192-7.981 0-4.843 2.81-8.075 6.754-8.075a4.122 4.122 0 0 1 4.056 2.51v-6.51a.806.806 0 0 0-.319-.787l-1.499-1.443v-.065l6.951-.815v20.553zm-5.125-.937v-9.714a2.614 2.614 0 0 0-2.08-.975c-1.695 0-3.334 1.537-3.334 6.099 0 4.271 1.414 5.78 3.175 5.78a2.81 2.81 0 0 0 2.24-1.19zm9.752 3.297V21.051a.88.88 0 0 0-.281-.786L64.4 18.672v-.065h6.98v13.302c0 .412 0 .505.28.758l1.536 1.443v.066l-6.97-.01zm-.253-20.356a2.81 2.81 0 1 1 5.62 0 2.81 2.81 0 0 1-5.62 0zm24.234 17.967c0 .413 0 .534.281.787l1.574 1.537v.065h-7.017v-3.363a5.077 5.077 0 0 1-4.805 3.616c-3.11 0-4.778-2.267-4.778-6.557 0-2.07 0-4.337.066-6.885a.796.796 0 0 0-.281-.76l-1.546-1.545v-.065h6.923v8.552c0 2.81.412 4.684 2.173 4.684a2.81 2.81 0 0 0 2.267-1.415v-9.367a.88.88 0 0 0-.28-.787l-1.556-1.602v-.065h6.979v13.17zm23.756 2.39c0-.507.094-6.952.094-8.432 0-2.81-.44-4.75-2.417-4.75a3.138 3.138 0 0 0-2.482 1.35c.198.876.292 1.772.28 2.67 0 1.948-.065 4.43-.093 6.913a.796.796 0 0 0 .281.759l1.574 1.442v.066h-7.045c0-.468.094-6.95.094-8.431 0-2.857-.44-4.75-
in 1999, we saw an explosion of p2p file sharing technology. We had
Gnutella (the protocol behind Limewire), FastTrack (Kazaa), eDonkey, and
BitTorrent. <strong class="markup--strong markup--p-strong">Limewire, Kazaa, and eDonkey all died, but the protocols they helped create lived on!</strong></p><p name="b973" id="b973" class="graf graf--p graf-after--p">People have speculated on what a future with <a href="https://web.archive.org/web/20190309201603/http://www.usv.com/blog/fat-protocols" data-href="http://www.usv.com/blog/fat-protocols" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank">fat protocols</a> will look like. File sharing protocols arent exactly the same, but they have a lot of similarities we can learn from.</p><p name="19b5" id="19b5" class="graf graf--p graf-after--p">Looking at the p2p ecosystem, a few things are clear:</p><ul class="postList"><li name="9ca1" id="9ca1" class="graf graf--li graf-after--p"><strong class="markup--strong markup--li-strong">Fat protocol ecosystems have way more variety and experimentation</strong> when network effects dont stop people from creating new clients</li><li name="0957" id="0957" class="graf graf--li graf-after--li"><strong class="markup--strong markup--li-strong">Protocols live on</strong> and evolve regardless of whether the original creators are working on them or not</li><li name="360f" id="360f" class="graf graf--li graf-after--li">The <strong class="markup--strong markup--li-strong">application layer seems to capture little value for the protocol creator</strong>,<strong class="markup--strong markup--li-strong"> </strong>but third party competition to build on top of the protocol may be a powerful force for finding product/market fit</li><li name="0d0b" id="0d0b" class="graf graf--li graf-after--li">While people werent able to figure out how to integrate a token into p2p file sharing technologies back in the day, <strong class="markup--strong markup--li-strong">it does seem like a properly calibrated token marketplace would have solved a lot of problems</strong> and accelerated p2ps breakneck adoption even more.</li></ul><h3 name="5bf3" id="5bf3" class="graf graf--h3 graf-after--li">Vibrant and competitive ecosystems</h3><blockquote name="68ef" id="68ef" class="graf graf--blockquote graf-after--h3"><strong class="markup--strong markup--blockquote-strong">… by replicating and storing user data across an open and decentralized network </strong>rather than individual applications controlling access to disparate silos of information, we <strong class="markup--strong markup--blockquote-strong">reduce the barriers to entry</strong> for new players and create a <strong class="markup--strong markup--blockquote-strong">more vibrant and competitive ecosystem</strong> of products and services on top.</blockquote><blockquote name="689b" id="689b" class="graf graf--blockquote graf-after--blockquote"><a href="https://web.archive.org/web/20190309201603/http://www.usv.com/blog/fat-protocols" data-href="http://www.usv.com/blog/fat-protocols" class="markup--anchor markup--blockquote-anchor" rel="nofollow noopener" target="_blank"><strong class="markup--strong markup--blockquote-strong">Fat Protocols </strong>from Union Square Ventures</a></blockquote><p name="e783" id="e783" class="graf graf--p graf-after--blockquote">What
file sharing application did you use before BitTorrent? Was it
LimeWire, BearShare, Shareaza, giFT, Morpheus, Phex, or Acquisition? All
of those were separate applications made by different teams that all
connected to <a href="https://web.archive.org/web/20190309201603/https://en.wikipedia.org/wiki/Gnutella#Software" data-href="https://en.wikipedia.org/wiki/Gnutella#Software" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank">Gnutella network</a>! There was also FrostWire, LimeWire Pirate Edition, and WireShare which were forks of Limewires client.</p><p name="9654" id="9654" class="graf graf--p graf-after--p">Im not going to do the same song and dance here listing a dozen clients for FastTrack and eDonkey, but <a href="https://web.archive.org/web/20190309201603/https://en.wikipedia.org/wiki/Comparison_of_file-sharing_applications" data-href="https://en.wikipedia.org/wiki/Comparison_of_file-sharing_applications" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank">I could</a>.
Every protocol had tons of clients. In fact, Limewire wasnt the
creator of the Gnutella protocol, their app was just really popular
because they added a lot of features.</p><h4 name="8a2c" id="8a2c" class="graf graf--h4 graf-after--p">Features</h4><p name="80db" id="80db" class="graf graf--p graf-after--h4">People
didnt all just build near identical clients of course. Different
companies competed to build clients to the Gnutella protocol that served
different needs. <a href="https://web.archive.org/web/20190309201603/https://web.archive.org/web/20060506100842/http://www.bearshare.com:80/screens.htm" data-href="https://web.archive.org/web/20060506100842/http://www.bearshare.com:80/screens.htm" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank">BearShare</a>
seemed to focus on building a good client. It had a straightforward
search, a “theater” to preview movies and music while they downloaded,
and plenty of other features like a place to chat with other users.</p></div><div class="section-inner sectionLayout--outsetColumn"><figure name="d717" id="d717" class="graf graf--figure graf--layoutOutsetCenter graf-after--p"><div class="aspectRatioPlaceholder is-locked" style="max-width: 1032px; max-height: 350px;"><div class="aspectRatioPlaceholder-fill" style="padding-bottom: 34%;"></div><img class="graf-image" data-image-id="1*t6AtV08AHSICL9RqCupFWg.png" data-width="1440" data-height="489" data-action="zoom" data-action-value="1*t6AtV08AHSICL9RqCupFWg.png" src="Fat%20protocols%20aren't%20new%20%20What%20blockchain%20can%20learn%20from%20p2p%20file%20sharing_fichiers/1t6AtV08AHSICL9RqCupFWg.png"></div><figcaption class="imageCaption">BearShare provided a full featured experience</figcaption></figure></div><div class="section-inner sectionLayout--insetColumn"><h4 name="205a" id="205a" class="graf graf--h4 graf-after--figure">Quality</h4><p name="240a" id="240a" class="graf graf--p graf-after--h4">The
eDonkey company developed their own network (“eDonkey2000 Network”) and
a corresponding client. Even though they developed the protocol, they
had to compete with a very popular open source client called <a href="https://web.archive.org/web/20190309201603/https://www.emule-project.net/home/perl/general.cgi?l=1" data-href="https://www.emule-project.net/home/perl/general.cgi?l=1" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank">eMule</a> which many viewed as having a better user interface!</p></div><div class="section-inner sectionLayout--outsetColumn"><figure name="8256" id="8256" class="graf graf--figure graf--layoutOutsetCenter graf-after--p"><div class="aspectRatioPlaceholder is-locked" style="max-width: 1032px; max-height: 360px;"><div class="aspectRatioPlaceholder-fill" style="padding-bottom: 34.9%;"></div><img class="graf-image" data-image-id="1*F2ELrQYhN76if54q8nUU4Q.png" data-width="2437" data-height="850" data-action="zoom" data-action-value="1*F2ELrQYhN76if54q8nUU4Q.png" src="Fat%20protocols%20aren't%20new%20%20What%20blockchain%20can%20learn%20from%20p2p%20file%20sharing_fichiers/1F2ELrQYhN76if54q8nUU4Q.png"></div><figcaption class="imageCaption">Which would you rather&nbsp;use?</figcaption></figure></div><div class="section-inner sectionLayout--insetColumn"><h4 name="fdf2" id="fdf2" class="graf graf--h4 graf-after--figure">Generalization</h4><p name="7dd2" id="7dd2" class="graf graf--p graf-after--h4">Some
people tried improving the user experience via better interfaces.
Others tried to provide access to as much content as possible by
creating clients that used multiple networks.</p><p name="c974" id="c974" class="graf graf--p graf-after--p"><a href="https://web.archive.org/web/20190309201603/https://en.wikipedia.org/wiki/Shareaza" data-href="https://en.wikipedia.org/wiki/Shareaza" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank">Shareaza</a> became popular by supporting every file sharing protocol under the sun:</p><blockquote name="a4be" id="a4be" class="graf graf--blockquote graf-after--p">Shareaza&nbsp;
supports the Gnutella, Gnutella2, eDonkey, BitTorrent, FTP, HTTP and
HTTPS network protocols and handles magnet links, ed2k links, and the
now deprecated gnutella and Piolet links</blockquote><figure name="6996" id="6996" class="graf graf--figure graf-after--blockquote"><div class="aspectRatioPlaceholder is-locked" style="max-width: 700px; max-height: 438px;"><div class="aspectRatioPlaceholder-fill" style="padding-bottom: 62.5%;"></div><img class="graf-image" data-image-id="0*kfMN1a1VEBRWGg3a.png" data-width="1152" data-height="720" data-action="zoom" data-action-value="0*kfMN1a1VEBRWGg3a.png" src="Fat%20protocols%20aren't%20new%20%20What%20blockchain%20can%20learn%20from%20p2p%20file%20sharing_fichiers/0kfMN1a1VEBRWGg3a.png"></div><figcaption class="imageCaption">Shareaza searches <strong class="markup--strong markup--figure-strong">everything</strong></figcaption></figure><h4 name="1949" id="1949" class="graf graf--h4 graf-after--figure">Abstraction</h4><p name="c95d" id="c95d" class="graf graf--p graf-after--h4"><a href="https://web.archive.org/web/20190309201603/https://en.wikipedia.org/wiki/GiFT" data-href="https://en.wikipedia.org/wiki/GiFT" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank">The giFT project</a>
was similar to Shareaza in trying to implement every protocol, but it
aimed to be a file sharing backend that others could build user
interfaces for:</p></div><div class="section-inner sectionLayout--outsetColumn"><figure name="379b" id="379b" class="graf graf--figure graf--layoutOutsetCenter graf-after--p"><div class="aspectRatioPlaceholder is-locked" style="max-width: 1032px; max-height: 337px;"><div class="aspectRatioPlaceholder-fill" style="padding-bottom: 32.6%;"></div><img class="graf-image" data-image-id="1*7zWVwivbkOB-4RQZIeM00A.png" data-width="1526" data-height="498" data-action="zoom" data-action-value="1*7zWVwivbkOB-4RQZIeM00A.png" src="Fat%20protocols%20aren't%20new%20%20What%20blockchain%20can%20learn%20from%20p2p%20file%20sharing_fichiers/17zWVwivbkOB-4RQZIeM00A.png"></div><figcaption class="imageCaption">Two totally different frontends (GiFTcurs and Apollon) using giFT on the&nbsp;backend</figcaption></figure></div><div class="section-inner sectionLayout--insetColumn"><p name="cb77" id="cb77" class="graf graf--p graf-after--figure graf--trailing">giFT supported most protocols and was compatible with Windows, Linux, and Mac.</p></div></div></section><section name="6e5e" class="section section--body"><div class="section-divider"><hr class="section-divider"></div><div class="section-content"><div class="section-inner sectionLayout--insetColumn"><p name="0f85" id="0f85" class="graf graf--p graf--leading">There
were hundreds of third party applications for interfacing with the fat
protocols of the file sharing world. Both open source communities and
independent for-profit companies leaped on the opportunity of providing
what they thought end users wanted. These applications <em class="markup--em markup--p-em">are not </em>similar
to third party Twitter clients; these clients can do anything the
protocol supports and the protocol creators cant stop them.</p><p name="89d3" id="89d3" class="graf graf--p graf-after--p">A potential takeaway here is that <strong class="markup--strong markup--p-strong">fat protocols split </strong><a href="https://web.archive.org/web/20190309201603/https://en.wikipedia.org/wiki/Product/market_fit" data-href="https://en.wikipedia.org/wiki/Product/market_fit" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank"><strong class="markup--strong markup--p-strong">product/market fit</strong></a><strong class="markup--strong markup--p-strong"> into two distinct parts</strong>:</p><ol class="postList"><li name="bc5b" id="bc5b" class="graf graf--li graf-after--p"><strong class="markup--strong markup--li-strong">Protocol/market fit: </strong>is the protocol powerful and general enough to let applications give users a good experience?</li><li name="6334" id="6334" class="graf graf--li graf-after--li"><strong class="markup--strong markup--li-strong">Application/consumer fit:</strong> does the application optimize how the end user wants to use the protocol?</li></ol><p name="5f22" id="5f22" class="graf graf--p graf-after--li">You
cant just ship a protocol and call it a day. eDonkeys client
popularized their network and Limewire popularized Gnutella. Once the
protocol has network effects though, it is anyones ballgame to build a
better interface and steal away users of the original frontend.</p><p name="e6bb" id="e6bb" class="graf graf--p graf-after--p">Competitors dont have to totally reenvision the frontend, they can just subtract annoying things like ads; that is what <a href="https://web.archive.org/web/20190309201603/https://en.wikipedia.org/wiki/Kazaa_Lite" data-href="https://en.wikipedia.org/wiki/Kazaa_Lite" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank">Kazaa Lite</a>, <a href="https://web.archive.org/web/20190309201603/https://en.wikipedia.org/wiki/FrostWire" data-href="https://en.wikipedia.org/wiki/FrostWire" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank">Frostwire</a>, <a href="https://web.archive.org/web/20190309201603/https://en.wikipedia.org/wiki/WireShare" data-href="https://en.wikipedia.org/wiki/WireShare" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank">WireShare</a>,
and many others did. The incentives for app/consumer fit and
protocol/market fit are different. If the protocol doesnt protect
against prisoners dilemma incentive issues, applications can
differentiate by acting selfishly. Kazaa Lite and <a href="https://web.archive.org/web/20190309201603/http://www.greedytorrent.com/" data-href="http://www.greedytorrent.com/" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank">GreedyTorrent</a> both help you lie to the network about how much youve uploaded.</p><p name="2ab8" id="2ab8" class="graf graf--p graf-after--p">A core tenet of the Y Combinator playbook for startups is to <a href="https://web.archive.org/web/20190309201603/http://playbook.samaltman.com/#idea" data-href="http://playbook.samaltman.com/#idea" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank">talk to your users</a>.
If youre interested in building a third party app on top of a fat
protocol, the lesson might be to also talk to competing apps users to
figure out what needs arent being served. In a similar vein, protocol
developers should talk to app developers and learn what they think end
users want.</p><h3 name="9090" id="9090" class="graf graf--h3 graf-after--p">Are thin applications less valuable?</h3><blockquote name="df8b" id="df8b" class="graf graf--blockquote graf-after--h3">This relationship between protocols and applications is reversed in the blockchain application stack. <strong class="markup--strong markup--blockquote-strong">Value concentrates at the shared protocol layer</strong> and only a <strong class="markup--strong markup--blockquote-strong">fraction of that value is distributed along at the applications layer</strong>.</blockquote><blockquote name="66ba" id="66ba" class="graf graf--blockquote graf-after--blockquote"><a href="https://web.archive.org/web/20190309201603/http://www.usv.com/blog/fat-protocols" data-href="http://www.usv.com/blog/fat-protocols" class="markup--anchor markup--blockquote-anchor" rel="noopener nofollow" target="_blank"><strong class="markup--strong markup--blockquote-strong">Fat Protocols </strong>from Union Square Ventures</a></blockquote><p name="6f38" id="6f38" class="graf graf--p graf-after--blockquote">It
was very hard for the creators of fat protocols to monetize through
their thin applications. Limewire, Kazaa, and eDonkey attempted to
monetize their clients by installing toolbars, collecting user data, and
displaying ads. Maybe these brought in some money, but it <strong class="markup--strong markup--p-strong">quickly resulted in competitive forks of the apps without these nuisances</strong>.
If someone visits your website today with an ad blocker, you can still
ask them to pay at least. If a user starts using a different frontend,
you lose the ability to communicate with them entirely.</p><h4 name="021a" id="021a" class="graf graf--h4 graf-after--p">People dont care about protocols</h4><p name="fb0c" id="fb0c" class="graf graf--p graf-after--h4">It
might be hard for protocol creators to capture value through their own
thin clients. Third party clients not created by the protocol creators
do seem to provide value with time. FrostWire was originally a fork of
Limewire but years later when BitTorrent became the clear p2p winner,
they added BitTorrent support. Morpheus, Acquisition, MLDonkey, and many
others did the same.</p><p name="eed6" id="eed6" class="graf graf--p graf-after--p">Application
developers just care about giving their users a good experience, they
arent loyal to a particular fat protocol. If a previously popular
protocol is overthrown by a new one, a third party application developer
might update to the new protocol with minimal impact to the end user.</p><h4 name="9971" id="9971" class="graf graf--h4 graf-after--p">Parallel lean&nbsp;startups</h4><p name="2cab" id="2cab" class="graf graf--p graf-after--h4">The <a href="https://web.archive.org/web/20190309201603/http://theleanstartup.com/principles#eliminate_uncertainty" data-href="http://theleanstartup.com/principles#eliminate_uncertainty" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank">lean startup methodology</a>
says that “every startup is a grand experiment that attempts to answer a
question.” The key insight is that startups are all about iterating and
trying out ideas until you find product market fit. <a href="https://web.archive.org/web/20190309201603/https://steveblank.com/2015/05/06/build-measure-learn-throw-things-against-the-wall-and-see-if-they-work/" data-href="https://steveblank.com/2015/05/06/build-measure-learn-throw-things-against-the-wall-and-see-if-they-work/" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank">Steve Blank formalizes startup iteration</a> with this loop:</p><figure name="7ae8" id="7ae8" class="graf graf--figure graf-after--p"><div class="aspectRatioPlaceholder is-locked" style="max-width: 362px; max-height: 334px;"><div class="aspectRatioPlaceholder-fill" style="padding-bottom: 92.30000000000001%;"></div><img class="graf-image" data-image-id="0*d0KkuFuuGTBHYeH-.jpg" data-width="362" data-height="334" src="Fat%20protocols%20aren't%20new%20%20What%20blockchain%20can%20learn%20from%20p2p%20file%20sharing_fichiers/0d0KkuFuuGTBHYeH-.jpg"></div><figcaption class="imageCaption">Lean startup iteration cycle</figcaption></figure><p name="cc4a" id="cc4a" class="graf graf--p graf-after--figure">Remember,
there were dozens of applications for each popular p2p fat protocol
each trying their own approach. Different teams with different ideas
about what people wanted, each iterating on their own designs and trying
to find application/consumer fit. Finding product/market fit for <strong class="markup--strong markup--p-strong">traditional companies may be </strong><a href="https://web.archive.org/web/20190309201603/https://en.wikipedia.org/wiki/Parallel_algorithm#Parallelizability" data-href="https://en.wikipedia.org/wiki/Parallel_algorithm#Parallelizability" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank"><strong class="markup--strong markup--p-strong">inherently serial</strong></a> while <strong class="markup--strong markup--p-strong">finding application/consumer fit may be </strong><a href="https://web.archive.org/web/20190309201603/https://en.wikipedia.org/wiki/Embarrassingly_parallel" data-href="https://en.wikipedia.org/wiki/Embarrassingly_parallel" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank"><strong class="markup--strong markup--p-strong">embarrassingly parallel</strong></a>.</p><h4 name="aa75" id="aa75" class="graf graf--h4 graf-after--p">Specialization</h4><p name="a7ec" id="a7ec" class="graf graf--p graf-after--h4">While
fat protocols generalize over a concept like sharing files, thin
applications can specialize as much as they want. BitTorrent is for
anything, but <a href="https://web.archive.org/web/20190309201603/https://popcorntime.sh/" data-href="https://popcorntime.sh/" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank">PopcornTime</a> specializes in streaming movies:</p><figure name="8f10" id="8f10" class="graf graf--figure graf-after--p"><div class="aspectRatioPlaceholder is-locked" style="max-width: 700px; max-height: 455px;"><div class="aspectRatioPlaceholder-fill" style="padding-bottom: 65%;"></div><img class="graf-image" data-image-id="1*JfLme1gFhyw9sF6QCwFmvA.gif" data-width="800" data-height="520" data-action="zoom" data-action-value="1*JfLme1gFhyw9sF6QCwFmvA.gif" src="Fat%20protocols%20aren't%20new%20%20What%20blockchain%20can%20learn%20from%20p2p%20file%20sharing_fichiers/1JfLme1gFhyw9sF6QCwFmvA.gif"></div></figure><p name="c789" id="c789" class="graf graf--p graf-after--figure">The most private torrent community in the world <a href="https://web.archive.org/web/20190309201603/http://www.businessinsider.com/inside-art-of-misdirection-ultra-exclusive-private-torrent-tracker-magical-pirates-invites-2016-11" data-href="http://www.businessinsider.com/inside-art-of-misdirection-ultra-exclusive-private-torrent-tracker-magical-pirates-invites-2016-11" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank">exclusively shares copyrighted magic tricks</a>. eDonkey network clients specialized around video because the eDonkey protocol was really good at dealing with big files.</p><p name="c3cd" id="c3cd" class="graf graf--p graf-after--p">We
shouldnt just think of thin applications as a vicious competition to
build the best frontend for a protocol. If the fat protocol is
sufficiently general, application developers can create an entirely
different user experience by focusing on a particular use case.</p><h3 name="f8dc" id="f8dc" class="graf graf--h3 graf-after--p">Protocol improvements</h3><blockquote name="63a7" id="63a7" class="graf graf--blockquote graf-after--h3">the <strong class="markup--strong markup--blockquote-strong">evolution of these protocols</strong> will be governed by the decision of <strong class="markup--strong markup--blockquote-strong">those who have adopted it</strong> to adopt a future version. This has the potential to provide a much <strong class="markup--strong markup--blockquote-strong">more democratic process for changing protocols over time</strong> than the historic committee process.</blockquote><blockquote name="1ea0" id="1ea0" class="graf graf--blockquote graf-after--blockquote"><a href="https://web.archive.org/web/20190309201603/https://continuations.com/post/148098927445/crypto-tokens-and-the-coming-age-of-protocol" data-href="https://continuations.com/post/148098927445/crypto-tokens-and-the-coming-age-of-protocol" class="markup--anchor markup--blockquote-anchor" rel="noopener nofollow" target="_blank"><strong class="markup--strong markup--blockquote-strong">Crypto Tokens and the Coming Age of Protocol Innovation</strong> by Albert Wenger</a></blockquote><p name="2507" id="2507" class="graf graf--p graf-after--blockquote">There
were a lot of competing protocols in the p2p space and they all evolved
with time. While there werent token holders for these protocols, I
think we can still learn a lot from protocol evolution in the p2p space.</p><h4 name="7715" id="7715" class="graf graf--h4 graf-after--p">eMule vs&nbsp;eDonkey</h4><p name="4124" id="4124" class="graf graf--p graf-after--h4">As
I mentioned in the previous section, the open source eMule client gave
eDonkey quite the run for its money. eMule actually went even further
and basically forked the protocol.</p><p name="478a" id="478a" class="graf graf--p graf-after--p">To push the eDonkey universe closer to pure decentralization, the creators of the protocol released <a href="https://web.archive.org/web/20190309201603/https://en.wikipedia.org/wiki/Overnet" data-href="https://en.wikipedia.org/wiki/Overnet" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank">Overnet</a>. Overnet was a proprietary protocol storing all file and peer information in distributed hash tables using a protocol called <a href="https://web.archive.org/web/20190309201603/https://en.wikipedia.org/wiki/Kademlia" data-href="https://en.wikipedia.org/wiki/Kademlia" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank">Kademlia</a>.</p><p name="b3b0" id="b3b0" class="graf graf--p graf-after--p">In response, the eMule community launched the <a href="https://web.archive.org/web/20190309201603/https://en.wikipedia.org/wiki/Kad_network" data-href="https://en.wikipedia.org/wiki/Kad_network" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank">Kad Network</a>,
an open source protocol built on distributed hash tables using
Kademlia! Since eMule was very popular, the Kad network may have
actually been more popular than Overnet.</p><p name="f23e" id="f23e" class="graf graf--p graf-after--p">Separate from the Kad network, <a href="https://web.archive.org/web/20190309201603/https://en.wikipedia.org/wiki/EMule#Credit_system" data-href="https://en.wikipedia.org/wiki/EMule#Credit_system" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank">eMule introduced a credit system</a> to try to incentivize users to share more.</p><h4 name="db17" id="db17" class="graf graf--h4 graf-after--p">Community development</h4><p name="2c6c" id="2c6c" class="graf graf--p graf-after--h4">Gnutella was created at AOL and it was never actually open sourced. AOL <a href="https://web.archive.org/web/20190309201603/https://en.wikipedia.org/wiki/Gnutella#History" data-href="https://en.wikipedia.org/wiki/Gnutella#History" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank">killed the Gnutella client</a>
almost immediately after the creators released it. Still, people shared
the Gnutella client and reverse engineered the protocol. Every
successful application built on top (Limewire, BearShare, Morpheus) was
building on a protocol they didnt originally create.</p><p name="86c0" id="86c0" class="graf graf--p graf-after--p">The Gnutella protocol evolved. If you look at <a href="https://web.archive.org/web/20190309201603/http://rfc-gnutella.sourceforge.net/src/rfc-0_6-draft.html" data-href="http://rfc-gnutella.sourceforge.net/src/rfc-0_6-draft.html" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank">the draft for v0.6</a>,
Limewire and BearShare (“Free Peers”) contributed a lot of new features
to the protocol and the community generally worked together to create
the spec.</p><p name="e130" id="e130" class="graf graf--p graf-after--p">When a lone developer created a new protocol, called it Gnutella2, and tried to push it on the Gnutella development community, <a href="https://web.archive.org/web/20190309201603/https://groups.yahoo.com/neo/groups/the_gdf/conversations/topics/13930" data-href="https://groups.yahoo.com/neo/groups/the_gdf/conversations/topics/13930" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank">people freaked out</a>:</p><figure name="ee7a" id="ee7a" class="graf graf--figure graf-after--p"><div class="aspectRatioPlaceholder is-locked" style="max-width: 700px; max-height: 249px;"><div class="aspectRatioPlaceholder-fill" style="padding-bottom: 35.6%;"></div><img class="graf-image" data-image-id="1*99XUCx7eHmEEEKx2f7Rujw.png" data-width="1496" data-height="533" data-action="zoom" data-action-value="1*99XUCx7eHmEEEKx2f7Rujw.png" src="Fat%20protocols%20aren't%20new%20%20What%20blockchain%20can%20learn%20from%20p2p%20file%20sharing_fichiers/199XUCx7eHmEEEKx2f7Rujw.png"></div><figcaption class="imageCaption">Creator of BearShare flaming creators of Gnutella2</figcaption></figure><p name="c61d" id="c61d" class="graf graf--p graf-after--figure graf--trailing">One
of the creators of BearShare said he would block Gnutella2 traffic and
encouraged others to do so. Most of the community pushed back and said
it should be called <a href="https://web.archive.org/web/20190309201603/https://groups.yahoo.com/neo/groups/the_gdf/conversations/topics/11933" data-href="https://groups.yahoo.com/neo/groups/the_gdf/conversations/topics/11933" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank">“Mikes Protocol.”</a> Not as many clients adopted Gnutella2.</p></div></div></section><section name="b86a" class="section section--body"><div class="section-divider"><hr class="section-divider"></div><div class="section-content"><div class="section-inner sectionLayout--insetColumn"><p name="00be" id="00be" class="graf graf--p graf--leading">Looking
at the history of file sharing fat protocols, I see committee-like
cooperation among the Gnutella developers who worked to develop 0.6. The
eMule community essentially forked eDonkeys protocol. People never
fully reverse engineered FastTrack so Im not sure if any third parties
ever extended it. BitTorrent has <a href="https://web.archive.org/web/20190309201603/http://www.bittorrent.org/beps/bep_0000.html" data-href="http://www.bittorrent.org/beps/bep_0000.html" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank">BitTorrent Enhancement Proposals</a> (BEP) just like Bitcoin has Bitcoin Improvement Proposals (BIP).</p><p name="f161" id="f161" class="graf graf--p graf-after--p">The
Gnutella community makes it fairly clear that, when a lot of developers
are building businesses or large open source projects on top of a
protocol, they want to think carefully about protocol improvements for
the sake of backwards compatibility and also enhancing their own apps.</p><p name="2a20" id="2a20" class="graf graf--p graf-after--p">eDonkeys
protocols were proprietary which is likely why eMule didnt adopt
Overnet. Gnutella2 was developed by the creator of Shareaza, the client
which implemented <em class="markup--em markup--p-em">every</em>
protocol. His lack of interest in peer review and desire to push
Gnutella2 on everyone else bred resentment. The main lesson here seems
to be straightforward:</p><ul class="postList"><li name="ac1c" id="ac1c" class="graf graf--li graf-after--p">Protocols seem to evolve democratically in civil communities (Gnutella 0.6, BitTorrent)</li><li name="1cee" id="1cee" class="graf graf--li graf-after--li">Protocols seem to fork when relationships feel adversarial (Gnutella2, Kad Network)</li></ul><h3 name="495b" id="495b" class="graf graf--h3 graf-after--li">Incentivizing adoption</h3><blockquote name="aa3e" id="aa3e" class="graf graf--blockquote graf-after--h3"><strong class="markup--strong markup--blockquote-strong">… an open network and a shared data layer alone are not enough of an incentive to promote adoption.</strong> The second component, <strong class="markup--strong markup--blockquote-strong">the protocol token</strong>
which is used to access the service provided by the network
(transactions in the case of Bitcoin, computing power in the case of
Ethereum, file storage in the case of Sia and Storj, and so on) <strong class="markup--strong markup--blockquote-strong">fills that gap</strong>.</blockquote><blockquote name="162f" id="162f" class="graf graf--blockquote graf-after--blockquote"><a href="https://web.archive.org/web/20190309201603/http://www.usv.com/blog/fat-protocols" data-href="http://www.usv.com/blog/fat-protocols" class="markup--anchor markup--blockquote-anchor" rel="noopener nofollow" target="_blank"><strong class="markup--strong markup--blockquote-strong">Fat Protocols </strong>from Union Square Ventures</a></blockquote><p name="0217" id="0217" class="graf graf--p graf-after--blockquote">I
want to stay within the scope of what p2p protocols tell us in this
post, so I cant answer the direct question of “do tokens promote
adoption?” since there wasnt a mainstream p2p token. Instead, well
have to answer similar questions:</p><ul class="postList"><li name="04c4" id="04c4" class="graf graf--li graf-after--p">What did adoption look like?</li><li name="e22f" id="e22f" class="graf graf--li graf-after--li">Would a token have made sense?</li><li name="03fc" id="03fc" class="graf graf--li graf-after--li">Did people talk about adding tokens?</li><li name="aff7" id="aff7" class="graf graf--li graf-after--li">Did people actually try to add tokens to p2p protocols?</li></ul><p name="135c" id="135c" class="graf graf--p graf-after--li">To
address token related questions, we need to understand the dynamics of
p2p protocols so we can understand if a token economy would make sense.</p><h4 name="68b4" id="68b4" class="graf graf--h4 graf-after--p">People <em class="markup--em markup--h4-em">LOVE free&nbsp;stuff</em></h4><p name="afaf" id="afaf" class="graf graf--p graf-after--h4">This
is a boring but important point. Obviously, I think we all know that
people enthusiastically adopted the fat protocols of file sharing. All
networks saw huge growth despite wide spread legal threats:</p><figure name="ba24" id="ba24" class="graf graf--figure graf-after--p"><div class="aspectRatioPlaceholder is-locked" style="max-width: 700px; max-height: 406px;"><div class="aspectRatioPlaceholder-fill" style="padding-bottom: 57.99999999999999%;"></div><img class="graf-image" data-image-id="1*-L0eIanZKH1AJSvZv9ZtiA.png" data-width="1926" data-height="1118" data-action="zoom" data-action-value="1*-L0eIanZKH1AJSvZv9ZtiA.png" src="Fat%20protocols%20aren't%20new%20%20What%20blockchain%20can%20learn%20from%20p2p%20file%20sharing_fichiers/1-L0eIanZKH1AJSvZv9ZtiA.png"></div><figcaption class="imageCaption">P2P growth from 2003 to&nbsp;2006</figcaption></figure><p name="161c" id="161c" class="graf graf--p graf-after--figure">I
called this a boring point because, well, who doesnt want free stuff?
The important and only kind of pedantic takeaway is that people will
happily adopt fat protocols if it is worth it.</p><h4 name="17fe" id="17fe" class="graf graf--h4 graf-after--p">Free Riders</h4><p name="1e89" id="1e89" class="graf graf--p graf-after--h4">A lot of file sharing systems have <a href="https://web.archive.org/web/20190309201603/https://en.wikipedia.org/wiki/Free-rider_problem" data-href="https://en.wikipedia.org/wiki/Free-rider_problem" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank">free rider problems</a>. Most people download what they want and offer up nothing in return. From the widely cited paper <a href="https://web.archive.org/web/20190309201603/http://www.hpl.hp.com/research/idl/papers/gnutella/gnutella.pdf" data-href="http://www.hpl.hp.com/research/idl/papers/gnutella/gnutella.pdf" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank">“Free Riding on Gnutella”</a>:</p><blockquote name="b533" id="b533" class="graf graf--blockquote graf-after--p">we found that <strong class="markup--strong markup--blockquote-strong">nearly 70% of Gnutella users share no files</strong>, and <strong class="markup--strong markup--blockquote-strong">nearly 50% of all responses are returned by the top 1% of sharing hosts</strong>.</blockquote><p name="c9d8" id="c9d8" class="graf graf--p graf-after--blockquote">So by default everyone wants to download but no one wants to share. This manifests in a few ways:</p><ul class="postList"><li name="afab" id="afab" class="graf graf--li graf-after--p">Most users dont share their own files with the network</li><li name="1e01" id="1e01" class="graf graf--li graf-after--li">Among those that do share files, many of them dont share <em class="markup--em markup--li-em">desirable </em>files</li><li name="1722" id="1722" class="graf graf--li graf-after--li">Most users download a file and then close their client. Ideally, they would then help other users download files</li></ul><h4 name="a316" id="a316" class="graf graf--h4 graf-after--li">Bad Files</h4><p name="79e8" id="79e8" class="graf graf--p graf-after--h4">File sharing protocols had a major problem with people sharing bad files. From the widely cited paper <a href="https://web.archive.org/web/20190309201603/http://ilpubs.stanford.edu:8090/562/1/2002-56.pdf" data-href="http://ilpubs.stanford.edu:8090/562/1/2002-56.pdf" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank">“The EigenTrust Algorithm for Reputation Management in P2P Networks”</a>:</p><blockquote name="72cf" id="72cf" class="graf graf--blockquote graf-after--p">Attacks by anonymous malicious peers have been observed on todays popular peer-to-peer networks. For example, <strong class="markup--strong markup--blockquote-strong">malicious users</strong> have used these networks to <strong class="markup--strong markup--blockquote-strong">introduce viruses</strong> such as the <code class="markup--code markup--blockquote-code">VBS.Gnutella</code>
worm, which spreads by making a copy of itself in a peers Gnutella
program directory, then modifying the Gnutella.ini file to allow sharing
of&nbsp;<code class="markup--code markup--blockquote-code">.vbs</code> files. Far more common have been <strong class="markup--strong markup--blockquote-strong">inauthentic file attacks</strong>, wherein malicious peers respond to virtually any query providing “decoy files” that are tampered with or do not work</blockquote><p name="14e1" id="14e1" class="graf graf--p graf-after--blockquote">The book <a href="https://web.archive.org/web/20190309201603/https://www.springer.com/us/book/9783540291923" data-href="https://www.springer.com/us/book/9783540291923" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank">“Peer-to-Peer Systems and Applications”</a> cites this problem as a <a href="https://web.archive.org/web/20190309201603/https://goo.gl/jGzN74" data-href="https://goo.gl/jGzN74" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank">reason for Kazaa dropping in usage</a>:</p><blockquote name="5a4d" id="5a4d" class="graf graf--blockquote graf-after--p">in Kazaa, <strong class="markup--strong markup--blockquote-strong">the amount of hardly identifiable corrupted content increased significantly</strong> due to the weakness of the used hashing algorithm (UUHASH). Thus <strong class="markup--strong markup--blockquote-strong">users switched to applications like Gnutella or eDonkey</strong>, where the number of corrupted files was significantly smaller.</blockquote><figure name="a4ab" id="a4ab" class="graf graf--figure graf-after--blockquote"><div class="aspectRatioPlaceholder is-locked" style="max-width: 575px; max-height: 559px;"><div class="aspectRatioPlaceholder-fill" style="padding-bottom: 97.2%;"></div><img class="graf-image" data-image-id="1*nkJzp-1z8u_GN83hsAZsOg.png" data-width="575" data-height="559" src="Fat%20protocols%20aren't%20new%20%20What%20blockchain%20can%20learn%20from%20p2p%20file%20sharing_fichiers/1nkJzp-1z8u_GN83hsAZsOg.png"></div><figcaption class="imageCaption">Drop in FastTrack (Kazaa)&nbsp;volume</figcaption></figure><h4 name="9fc9" id="9fc9" class="graf graf--h4 graf-after--figure">Bartering with Bandwidth</h4><p name="8887" id="8887" class="graf graf--p graf-after--h4">BitTorrent does a surprising amount of <a href="https://web.archive.org/web/20190309201603/http://www.bittorrent.org/bittorrentecon.pdf#page=4" data-href="http://www.bittorrent.org/bittorrentecon.pdf#page=4" class="markup--anchor markup--p-anchor" rel="noopener nofollow" target="_blank">game theory under the hood</a>.
At a high level, your torrent client keeps track of who is uploading to
you and tries to upload back. If a peer seems to only be downloading
and not uploading, your client <a href="https://web.archive.org/web/20190309201603/https://en.wikipedia.org/wiki/Glossary_of_BitTorrent_terms#Choked" data-href="https://en.wikipedia.org/wiki/Glossary_of_BitTorrent_terms#Choked" class="markup--anchor markup--p-anchor" rel="noopener nofollow" target="_blank">“chokes”</a> them. This tit-for-tat mechanism <a href="https://web.archive.org/web/20190309201603/https://www.quora.com/Did-the-tit-for-tat-aspect-of-BitTorrent-ever-end-up-being-significant/answer/Bram-Cohen" data-href="https://www.quora.com/Did-the-tit-for-tat-aspect-of-BitTorrent-ever-end-up-being-significant/answer/Bram-Cohen" class="markup--anchor markup--p-anchor" rel="noopener nofollow" target="_blank">maximizes download speeds when a torrent is new</a> and there are more downloaders than seeders.</p><p name="686a" id="686a" class="graf graf--p graf-after--p">BitTorrent
does seem to be much faster than eDonkey which also downloads from
multiple peers and starts uploading once it receives pieces of a file.
BitTorrent does many things to maximize download speed that other
protocols dont, but I think it is safe to say that the basic market
mechanisms it introduces contribute to this speedup.</p><p name="ae96" id="ae96" class="graf graf--p graf-after--p">Optimizing
how fast people can download a file right after it is shared is only a
narrow chunk of the entire problem though. Ideally, a market would also
incentivize seeding after download. There are also other market needs
too though like file storage and sharing rare and desirable content.</p><h4 name="c03f" id="c03f" class="graf graf--h4 graf-after--p">Kazaa participation level</h4><p name="a855" id="a855" class="graf graf--p graf-after--h4">Kazaa added a naive <a href="https://web.archive.org/web/20190309201603/https://web.archive.org/web/20040609210104/http://www.kazaa.com:80/us/help/glossary/participation_ratio.htm" data-href="https://web.archive.org/web/20040609210104/http://www.kazaa.com:80/us/help/glossary/participation_ratio.htm" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank">reputation system (“participation level”)</a> based on how much you gave back to the network. If you shared more, your downloads were faster! They also let people give <a href="https://web.archive.org/web/20190309201603/https://web.archive.org/web/20040630221840/http://www.kazaa.com:80/us/help/glossary/ratings.htm" data-href="https://web.archive.org/web/20040630221840/http://www.kazaa.com:80/us/help/glossary/ratings.htm" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank">“integrity ratings”</a> to files they downloaded which would also enhance the uploading users participation level. People figured out <a href="https://web.archive.org/web/20190309201603/https://en.wikipedia.org/wiki/Kazaa_Lite#K++" data-href="https://en.wikipedia.org/wiki/Kazaa_Lite#K++" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank">they could just modify their client and trick the network</a> though, so it didnt last for long.</p><h4 name="cf8f" id="cf8f" class="graf graf--h4 graf-after--p">Share or&nbsp;else</h4><p name="4f7b" id="4f7b" class="graf graf--p graf-after--h4">Private BitTorrent trackers usually enforce a seeding ratio and ban you if you dont uphold it:</p><figure name="c293" id="c293" class="graf graf--figure graf-after--p"><div class="aspectRatioPlaceholder is-locked" style="max-width: 700px; max-height: 153px;"><div class="aspectRatioPlaceholder-fill" style="padding-bottom: 21.9%;"></div><img class="graf-image" data-image-id="1*h_rldH4SVdhx7hWxfi8h5Q.png" data-width="1736" data-height="380" data-action="zoom" data-action-value="1*h_rldH4SVdhx7hWxfi8h5Q.png" src="Fat%20protocols%20aren't%20new%20%20What%20blockchain%20can%20learn%20from%20p2p%20file%20sharing_fichiers/1h_rldH4SVdhx7hWxfi8h5Q.png"></div><figcaption class="imageCaption">Ratio rules for&nbsp;<a href="https://web.archive.org/web/20190309201603/http://www.bitmetv.org/" data-href="http://www.bitmetv.org/" class="markup--anchor markup--figure-anchor" rel="nofollow noopener" target="_blank">BitMeTV</a></figcaption></figure><p name="847e" id="847e" class="graf graf--p graf-after--figure">This works decently well as a mechanism and even encourages some users to buy <a href="https://web.archive.org/web/20190309201603/https://en.wikipedia.org/wiki/Seedbox" data-href="https://en.wikipedia.org/wiki/Seedbox" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank">seedboxes</a> so they can get a good ratio.</p><h4 name="a4b9" id="a4b9" class="graf graf--h4 graf-after--p">Decentralized trust</h4><p name="1553" id="1553" class="graf graf--p graf-after--h4">EigenTrust
tried to address the bad file problem by layering a trust algorithm on
top of the protocol. Basically, if Alice transfers a file to Bob, Bob
can rate that transaction. If Bob trusts Alices files then he also
likely trusts her ratings of others. This transitive trust property
helps filter out a lot of malicious content in the network.</p><h4 name="4c57" id="4c57" class="graf graf--h4 graf-after--p">Credits</h4><p name="1a89" id="1a89" class="graf graf--p graf-after--h4">Kazaa introduced <a href="https://web.archive.org/web/20190309201603/https://youtu.be/QLQKzSE4atc" data-href="https://youtu.be/QLQKzSE4atc" class="markup--anchor markup--p-anchor" rel="noopener nofollow" target="_blank">“peer points”</a> that you earned if you shared content on the network. If you received a lot of peer points, you can trade them in for prizes.</p><figure name="79fc" id="79fc" class="graf graf--figure graf-after--p"><div class="aspectRatioPlaceholder is-locked" style="max-width: 316px; max-height: 238px;"><div class="aspectRatioPlaceholder-fill" style="padding-bottom: 75.3%;"></div><img class="graf-image" data-image-id="1*Z0h06_v3HZnNS-GDoYMQOg.png" data-width="316" data-height="238" src="Fat%20protocols%20aren't%20new%20%20What%20blockchain%20can%20learn%20from%20p2p%20file%20sharing_fichiers/1Z0h06_v3HZnNS-GDoYMQOg.png"></div></figure><p name="0fd0" id="0fd0" class="graf graf--p graf-after--figure">eMule created a <a href="https://web.archive.org/web/20190309201603/http://www.emule-project.net/home/perl/help.cgi?l=1&amp;rm=show_topic&amp;topic_id=134" data-href="http://www.emule-project.net/home/perl/help.cgi?l=1&amp;rm=show_topic&amp;topic_id=134" class="markup--anchor markup--p-anchor" rel="noopener nofollow" target="_blank">credit system</a>
that rewarded sharing content with another user. If Alice uploads a lot
of content to Bob, they both keep a record of that and then Bob will
let Alice jump to the top of his download queue if he has a file she
wants.</p><p name="de6f" id="de6f" class="graf graf--p graf-after--p">Kazaas
peer points and eMules credit system were actually used in real life
p2p with some success. Researchers also proposed better systems that
never made it to a real network. <a href="https://web.archive.org/web/20190309201603/https://ng.gnunet.org/sites/default/files/P2PEcon%2704%20-%20SWIFT.pdf" data-href="https://ng.gnunet.org/sites/default/files/P2PEcon'04%20-%20SWIFT.pdf" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank">Swift</a>
proposed a system for tracking upload and downloads among peers and
only uploading to peers with positive ratios. In the theoretical <a href="https://web.archive.org/web/20190309201603/http://kayapo.tribler.org/trac/raw-attachment/wiki/ExistingReputationSystems/KARMA,%20A%20Secure%20Economic%20Framework%20for%20Peer-to-Peer%20Resource%20Sharing.pdf" data-href="http://kayapo.tribler.org/trac/raw-attachment/wiki/ExistingReputationSystems/KARMA,%20A%20Secure%20Economic%20Framework%20for%20Peer-to-Peer%20Resource%20Sharing.pdf" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank">Karma</a>
network, a users upload/download ratio would be stored and updated by
64 random other peers in the network so that it can be reused for all
global transactions.</p><h4 name="e4c9" id="e4c9" class="graf graf--h4 graf-after--p">Tokens in&nbsp;theory</h4><figure name="456f" id="456f" class="graf graf--figure graf-after--h4"><div class="aspectRatioPlaceholder is-locked" style="max-width: 700px; max-height: 533px;"><div class="aspectRatioPlaceholder-fill" style="padding-bottom: 76.1%;"></div><img class="graf-image" data-image-id="1*4K_auTXt3YgaJrkjGaXl8w.png" data-width="900" data-height="685" data-action="zoom" data-action-value="1*4K_auTXt3YgaJrkjGaXl8w.png" src="Fat%20protocols%20aren't%20new%20%20What%20blockchain%20can%20learn%20from%20p2p%20file%20sharing_fichiers/14K_auTXt3YgaJrkjGaXl8w.png"></div><figcaption class="imageCaption">Categorization of “accounting options” for p2p&nbsp;networks</figcaption></figure><p name="67b1" id="67b1" class="graf graf--p graf-after--figure">There is a large body of research around adding markets to p2p networks. If youre interested, read up on <a href="https://web.archive.org/web/20190309201603/https://www.cs.cornell.edu/people/egs/714-spring05/ppay.pdf" data-href="https://www.cs.cornell.edu/people/egs/714-spring05/ppay.pdf" class="markup--anchor markup--p-anchor" rel="noopener nofollow" target="_blank">PPay</a>, <a href="https://web.archive.org/web/20190309201603/https://sci-hub.tw/https://link.springer.com/chapter/10.1007/11422778_4#enumeration" data-href="https://sci-hub.tw/https://link.springer.com/chapter/10.1007/11422778_4#enumeration" class="markup--anchor markup--p-anchor" rel="noopener nofollow" target="_blank">PeerMint</a>, <a href="https://web.archive.org/web/20190309201603/http://kayapo.tribler.org/trac/raw-attachment/wiki/ExistingReputationSystems/KARMA,%20A%20Secure%20Economic%20Framework%20for%20Peer-to-Peer%20Resource%20Sharing.pdf" data-href="http://kayapo.tribler.org/trac/raw-attachment/wiki/ExistingReputationSystems/KARMA,%20A%20Secure%20Economic%20Framework%20for%20Peer-to-Peer%20Resource%20Sharing.pdf" class="markup--anchor markup--p-anchor" rel="noopener nofollow" target="_blank">Karma</a>, <a href="https://web.archive.org/web/20190309201603/https://cordis.europa.eu/project/rcn/61509_en.html" data-href="https://cordis.europa.eu/project/rcn/61509_en.html" class="markup--anchor markup--p-anchor" rel="noopener nofollow" target="_blank">MMAPPS</a>, and <a href="https://web.archive.org/web/20190309201603/https://sci-hub.tw/https://ieeexplore.ieee.org/document/1494610/" data-href="https://sci-hub.tw/https://ieeexplore.ieee.org/document/1494610/" class="markup--anchor markup--p-anchor" rel="noopener nofollow" target="_blank">PeerMart</a>.</p><p name="4280" id="4280" class="graf graf--p graf-after--p">The
general theme of the different approaches is to provide a “secure
enough” token which can be used for in-network micro-payments. A
micropayment can be for different services like bandwidth, storage,
forwarding requests for peers, caching information, etc. In other words,
the tokens are supposed to be a generalized in-network currency that
users can spend and receive in order to align incentives.</p><h4 name="c3ee" id="c3ee" class="graf graf--h4 graf-after--p">Tokens in&nbsp;practice</h4><p name="1d2f" id="1d2f" class="graf graf--p graf-after--h4">In 2000, Jim McCoy, <a href="https://web.archive.org/web/20190309201603/https://twitter.com/zooko" data-href="https://twitter.com/zooko" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank">Zooko Wilcox</a> (founder of Zcash), and <a href="https://web.archive.org/web/20190309201603/https://twitter.com/bramcohen" data-href="https://twitter.com/bramcohen" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank">Bram Cohen</a> (eventual creator of BitTorrent) created a protocol called <a href="https://web.archive.org/web/20190309201603/https://web.archive.org/web/20011128084421/http://mojonation.net:80/" data-href="https://web.archive.org/web/20011128084421/http://mojonation.net:80/" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank">MojoNation</a>. Quoting their old website:</p><blockquote name="2752" id="2752" class="graf graf--blockquote graf-after--p">Mojo Nation combines the <strong class="markup--strong markup--blockquote-strong">flexibility of the marketplace</strong> with a secure <strong class="markup--strong markup--blockquote-strong">“swarm distribution” mechanism</strong> to go far beyond any current filesharing systemproviding high-speed downloads that run from multiple peers in parallel.</blockquote><p name="6d3d" id="6d3d" class="graf graf--p graf-after--blockquote">Sounds
like BitTorrent with a token. What does the token represent? Is it a
generalized currency like some of the theoretical technologies mentioned
in the previous section? Quoting Jim McCoy <a href="https://web.archive.org/web/20190309201603/https://www.youtube.com/watch?v=r76WIdqjw4s&amp;t=13s" data-href="https://www.youtube.com/watch?v=r76WIdqjw4s&amp;t=13s" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank">from his Defcon talk</a>:</p><blockquote name="52d1" id="52d1" class="graf graf--blockquote graf-after--p">In this system, you all end up paying. With MojoNation, we keep score. We say that <strong class="markup--strong markup--blockquote-strong">we will create a currency, “digital coins”, that are denominated in computational resources</strong>. So every unit of this currency we call <strong class="markup--strong markup--blockquote-strong">“Mojo” represents a floating basket of goods: CPU time, disk space, bandwidth</strong>; its merely a means for people to say “my particular resource is worth X, yours is worth Y, lets trade.”</blockquote><blockquote name="31ba" id="31ba" class="graf graf--blockquote graf-after--blockquote"><a href="https://web.archive.org/web/20190309201603/https://www.youtube.com/watch?v=r76WIdqjw4s&amp;t=20s" data-href="https://www.youtube.com/watch?v=r76WIdqjw4s&amp;t=20s" class="markup--anchor markup--blockquote-anchor" rel="nofollow noopener" target="_blank"><strong class="markup--strong markup--blockquote-strong">Mojo Nation: Building a next generation distributed data service</strong></a></blockquote><p name="8823" id="8823" class="graf graf--p graf-after--blockquote">At the time of the Defcon talk, they even explicitly talked about being able to buy and sell Mojo with real money!</p><blockquote name="b2a0" id="b2a0" class="graf graf--blockquote graf-after--p">How do you get the <strong class="markup--strong markup--blockquote-strong">real money in and out of the system</strong>?&nbsp;… we will perform that function and others can perform that function. A digital coin is a number, you can <strong class="markup--strong markup--blockquote-strong">go sell it on eBay</strong> if you want it. Clear with PayPal, we dont care. <strong class="markup--strong markup--blockquote-strong">We will be a market maker in the currency</strong> which means that if no one else will buy or sell your Mojo, we will.</blockquote><blockquote name="ff6c" id="ff6c" class="graf graf--blockquote graf-after--blockquote"><a href="https://web.archive.org/web/20190309201603/https://www.youtube.com/watch?v=r76WIdqjw4s&amp;t=16m30s" data-href="https://www.youtube.com/watch?v=r76WIdqjw4s&amp;t=16m30s" class="markup--anchor markup--blockquote-anchor" rel="nofollow noopener" target="_blank"><strong class="markup--strong markup--blockquote-strong">Mojo Nation: Building a next generation distributed data service</strong></a></blockquote><p name="619e" id="619e" class="graf graf--p graf-after--blockquote">MojoNation
didnt end up being big like the protocols we were discussing earlier.
Peter Thiels quote “Most businesses fail for more than one reason. So
when a business fails, you often dont learn anything” comes to mind.
Still, it is worth reading a later discussion from 2007 between <a href="https://web.archive.org/web/20190309201603/https://twitter.com/NickSzabo4?ref_src=twsrc%5Egoogle%7Ctwcamp%5Eserp%7Ctwgr%5Eauthor" data-href="https://twitter.com/NickSzabo4?ref_src=twsrc%5Egoogle%7Ctwcamp%5Eserp%7Ctwgr%5Eauthor" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank">Nick Szabo</a>, <a href="https://web.archive.org/web/20190309201603/https://twitter.com/zooko" data-href="https://twitter.com/zooko" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank">Zooko</a>, and (probably) Jim McCoy:<em class="markup--em markup--p-em"> </em><a href="https://web.archive.org/web/20190309201603/http://unenumerated.blogspot.com/2007/06/nanobarter.html?showComment=1181708460000#c2518193502558600657" data-href="http://unenumerated.blogspot.com/2007/06/nanobarter.html?showComment=1181708460000#c2518193502558600657" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank"><em class="markup--em markup--p-em">comments on “Unenumerated: Nanobarter.”</em></a><em class="markup--em markup--p-em"> </em>While the whole conversation is interesting, this comment stands out a bit:</p><blockquote name="ae55" id="ae55" class="graf graf--blockquote graf-after--p">The
smartest thing Bram did when stripping down MojoNation to create
BitTorrent was conforming the digital resource mechanism to the actual
behavior of the users.</blockquote><p name="65ac" id="65ac" class="graf graf--p graf-after--blockquote graf--trailing">Reading <a href="https://web.archive.org/web/20190309201603/http://www.cs.kent.edu/~javed/class-FP2P10S/papers-2006/mojonation.pdf" data-href="http://www.cs.kent.edu/~javed/class-FP2P10S/papers-2006/mojonation.pdf" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank">Zookos post-mortem</a>
on why MojoNation didnt work out, he cites a few technical issues that
MojoNation wasnt able to solve that limited the adoption of the
network. It seems like the main conclusion is just that MojoNation tried
to boil the ocean; the product was a full token marketplace,
distributed file storage, a swarming file transfer like BitTorrent, and a
lot more decentralized infrastructure to stitch it all together. This
was likely just too much to solve in 2000.</p></div></div></section><section name="d5f2" class="section section--body section--last"><div class="section-divider"><hr class="section-divider"></div><div class="section-content"><div class="section-inner sectionLayout--insetColumn"><p name="3815" id="3815" class="graf graf--p graf--leading">Gnutella
had a free rider problem. Kazaa had a corrupted file problem. Every
network wanted to better incentivize uploading. These tragedy of the
commons problems seem like exactly what you would expect in a market
that doesnt allocate resources appropriately. People experimented with
tit-for-tat game theory, issuing p2p credits specifically tied to
upload, and a full blown token marketplace.</p><p name="efc9" id="efc9" class="graf graf--p graf-after--p">The resolution of the file sharing wars, in terms of market mechanisms, seems like a case of <a href="https://web.archive.org/web/20190309201603/https://www.jwz.org/doc/worse-is-better.html" data-href="https://www.jwz.org/doc/worse-is-better.html" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank">“worse is better”</a>
to me. I think BitTorrent ended up winning for legal reasons, not
because it had the right amount of market dynamics, but Ill save that
for another blog post. BitTorrents tit-for-tat strategy is very smart,
but it seems like a lot of other market dynamics just werent solved
during this period.</p><p name="eeaf" id="eeaf" class="graf graf--p graf-after--p">File
sharing protocols took off because everyone loves free stuff. Imagine
if you could earn tokens for sharing a pre-released song from a popular
artist. Consider how much better these networks would have been if
people had to share some of their bandwidth and hard drive space in
order to get their hands on a song or movie they cant get elsewhere. I
think file sharing protocols took off <strong class="markup--strong markup--p-strong">despite</strong> the market mechanisms not being solved.</p><p name="7cca" id="7cca" class="graf graf--p graf-after--p">All
of these market mechanics didnt happen by accident. It seems like fat
protocols involving any kind of resource allocation would benefit from
adding an in-network currency. The fact that BitTorrent rose from the
ashes of MojoNation shouldnt be taken lightly either. <strong class="markup--strong markup--p-strong">It is legitimately harder</strong> to add a full on marketplace to a technology compared to solving the incentive problem for a targeted use case.</p><p name="0690" id="0690" class="graf graf--p graf-after--p">Keep
in mind that all of these experiments were happening ~15 years ago.
Almost every research paper trying to solve these problems noted it
wasnt fully secure and had issues when it came to the Byzantine
generals problem. Weve made a lot of progress since then; the full
potential many people saw at the time might be possible today.</p><p name="8d73" id="8d73" class="graf graf--p graf-after--p"><em class="markup--em markup--p-em">If you liked this post, </em><a href="https://web.archive.org/web/20190309201603/https://twitter.com/backus" data-href="https://twitter.com/backus" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank"><em class="markup--em markup--p-em">follow me on twitter</em></a><em class="markup--em markup--p-em">. Ill be writing more on p2p and blockchain.</em></p><figure name="4b9b" id="4b9b" class="graf graf--figure graf-after--p"><div class="aspectRatioPlaceholder is-locked" style="max-width: 700px; max-height: 526px;"><div class="aspectRatioPlaceholder-fill" style="padding-bottom: 75.1%;"></div><img class="graf-image" data-image-id="1*WDf1MmV_gJgmfpi3ue4G4g.png" data-width="959" data-height="720" data-is-featured="true" data-action="zoom" data-action-value="1*WDf1MmV_gJgmfpi3ue4G4g.png" src="Fat%20protocols%20aren't%20new%20%20What%20blockchain%20can%20learn%20from%20p2p%20file%20sharing_fichiers/1WDf1MmV_gJgmfpi3ue4G4g.png"></div></figure><p name="c5af" id="c5af" class="graf graf--p graf-after--figure graf--trailing"><em class="markup--em markup--p-em">Thanks to </em><a href="https://web.archive.org/web/20190309201603/https://twitter.com/alain" data-href="https://twitter.com/alain" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank"><em class="markup--em markup--p-em">Alain Meier</em></a><em class="markup--em markup--p-em">, </em><a href="https://web.archive.org/web/20190309201603/https://twitter.com/devonzuegel" data-href="https://twitter.com/devonzuegel" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank"><em class="markup--em markup--p-em">Devon Zuegel</em></a><em class="markup--em markup--p-em">, </em><a href="https://web.archive.org/web/20190309201603/https://twitter.com/arvanaghi" data-href="https://twitter.com/arvanaghi" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank"><em class="markup--em markup--p-em">Brandon Arvanaghi</em></a><em class="markup--em markup--p-em">, </em><a href="https://web.archive.org/web/20190309201603/https://twitter.com/rrhoover" data-href="https://twitter.com/rrhoover" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank"><em class="markup--em markup--p-em">Ryan Hoover</em></a><em class="markup--em markup--p-em">, </em><a href="https://web.archive.org/web/20190309201603/https://twitter.com/andy_bromberg" data-href="https://twitter.com/andy_bromberg" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank"><em class="markup--em markup--p-em">Andy Bromberg</em></a><em class="markup--em markup--p-em">, and </em><a href="https://web.archive.org/web/20190309201603/https://twitter.com/danielgollahon" data-href="https://twitter.com/danielgollahon" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank"><em class="markup--em markup--p-em">Daniel Gollahon</em></a><em class="markup--em markup--p-em"> for reading early drafts of this post.</em></p></div></div></section></div><footer class="u-paddingTop10"><div class="container u-maxWidth740"><div class="row"><div class="col u-size12of12"></div></div><div class="row"><div class="col u-size12of12 js-postTags"><div class="u-paddingBottom10"><ul class="tags tags--postTags tags--borderless"><li><a class="link u-baseColor--link" href="https://web.archive.org/web/20190309201603/https://medium.com/tag/blockchain?source=post" data-action-source="post">Blockchain</a></li><li><a class="link u-baseColor--link" href="https://web.archive.org/web/20190309201603/https://medium.com/tag/crypto?source=post" data-action-source="post">Crypto</a></li><li><a class="link u-baseColor--link" href="https://web.archive.org/web/20190309201603/https://medium.com/tag/crypto-tokens?source=post" data-action-source="post">Crypto Tokens</a></li></ul></div></div></div><div class="postActions js-postActionsFooter "><div class="u-flexCenter"><div cl
window["obvInit"] = function (opt_embedded) {window["obvInit"]["embedded"] = opt_embedded; window["obvInit"]["ready"] = true;}
// ]]></script><script>// <![CDATA[
var GLOBALS = {"audioUrl":"https://web.archive.org/web/20190309201603/https://d1fcbxp97j4nb2.cloudfront.net","baseUrl":"https://web.archive.org/web/20190309201603/https://medium.com","buildLabel":"36824-957babf","currentUser":{"userId":"lo_e28a3fb3facd","isVerified":false,"subscriberEmail":"","hasPastMemberships":false,"isEnrolledInHightower":false,"isEligibleForHightower":false,"hightowerLastLockedAt":0,"isWriterProgramEnrolled":false,"isWriterProgramInvited":false,"isWriterProgramOptedOut":false,"writerProgramVersion":0,"writerProgramEnrolledAt":0,"friendLinkOnboarding":0,"hasAdditionalUnlocks":false,"hasApiAccess":false,"isQuarantined":false,"writerProgramDistributionSettingOptedIn":false},"currentUserHasUnverifiedEmail":false,"isAuthenticated":false,"isCurrentUserVerified":false,"miroUrl":"https://web.archive.org/web/20190309201603/https://cdn-images-1.medium.com","moduleUrls":{"base":"https://web.archive.org/web/20190309201603/https://cdn-static-1.medium.com/_/fp/gen-js/main-base.bundle.y6d9LMegamSk_eil17ADEQ.js","common-async":"https://web.archive.org/web/20190309201603/https://cdn-static-1.medium.com/_/fp/gen-js/main-common-async.bundle.9xUxysHJRCZtfZp8gBjFmg.js","hightower":"https://web.archive.org/web/20190309201603/https://cdn-static-1.medium.com/_/fp/gen-js/main-hightower.bundle.WOdgPU2mWhUAoas5q-4icw.js","home-screens":"https://web.archive.org/web/20190309201603/https://cdn-static-1.medium.com/_/fp/gen-js/main-home-screens.bundle.hMWT5_UZnGXFD2vHGIpEiA.js","misc-screens":"https://web.archive.org/web/20190309201603/https://cdn-static-1.medium.com/_/fp/gen-js/main-misc-screens.bundle.jWZ294Y0lF8I843TMD2p0A.js","notes":"https://web.archive.org/web/20190309201603/https://cdn-static-1.medium.com/_/fp/gen-js/main-notes.bundle.NVJkmkTE49O5qKky0Vtm5g.js","payments":"https://web.archive.org/web/20190309201603/https://cdn-static-1.medium.com/_/fp/gen-js/main-payments.bundle.kK0fgT4GHLUiVdz_BOOn8g.js","posters":"https://web.archive.org/web/20190309201603/https://cdn-static-1.medium.com/_/fp/gen-js/main-posters.bundle.vnRUTOM53VBq2CqBn3Z1fw.js","power-readers":"https://web.archive.org/web/20190309201603/https://cdn-static-1.medium.com/_/fp/gen-js/main-power-readers.bundle.0vQ9FEku_Kd8AVrtkLRYsA.js","pubs":"https://web.archive.org/web/20190309201603/https://cdn-static-1.medium.com/_/fp/gen-js/main-pubs.bundle.r5JB0_xJldL1RHBG32_5HQ.js","stats":"https://web.archive.org/web/20190309201603/https://cdn-static-1.medium.com/_/fp/gen-js/main-stats.bundle.BbDkMUsaPHy3TE_9hBB2tA.js"},"previewConfig":{"weightThreshold":1,"weightImageParagraph":0.51,"weightIframeParagraph":0.8,"weightTextParagraph":0.08,"weightEmptyParagraph":0,"weightP":0.003,"weightH":0.005,"weightBq":0.003,"minPTextLength":60,"truncateBoundaryChars":20,"detectTitle":true,"detectTitleLevThreshold":0.15},"productName":"Medium","supportsEdit":false,"termsUrl":"//web.archive.org/web/20190309201603/https://medium.com/policy/9db0094a1e0f","textshotHost":"textshot.medium.com","transactionId":"1552162563653:db287dc2117d","useragent":{"browser":"python requests","family":"","os":"","version":2.21,"supportsDesktopEdit":false,"supportsInteract":false,"supportsView":true,"isMobile":false,"isTablet":false,"isNative":false,"supportsFileAPI":false,"isTier1":false,"clientVersion":"","unknownParagraphsBad":false,"clientChannel":"","supportsRealScrollEvents":false,"supportsVhUnits":false,"ruinsViewportSections":false,"supportsHtml5Video":false,"supportsMagicUnderlines":false,"isWebView":false,"isFacebookWebView":false,"supportsProgressiveMedia":false,"supportsPromotedPosts":true,"isBot":false,"isNativeIphone":false,"supportsCssVariables":false,"supportsVideoSections":true,"emojiSupportLevel":1,"isSearchBot":false,"isSyndicationBot":false,"isNativeAndroid":false,"supportsScrollableMetabar":false},"variants":{"allow_access":true,"allow_signup":true,"allow_test_auth":"disallow","signin_services":"twitter,facebook,google,email,google-fastidv,google-one-tap","signup_services":"twitter,facebook,google,email,google-fastidv,google-one-tap","google_sign_in_android":true,"reengagement_noti
// ]]></script><script charset="UTF-8" src="Fat%20protocols%20aren't%20new%20%20What%20blockchain%20can%20learn%20from%20p2p%20file%20sharing_fichiers/main-base.js" async=""></script><script>// <![CDATA[
window["obvInit"]({"value":{"id":"42d2c538db41","versionId":"cc646fdf4a3b","creatorId":"846ca283a13c","creator":{"userId":"846ca283a13c","name":"John Backus","username":"jbackus","createdAt":1367133785488,"imageId":"1*auamU74zd-cx2KkWV2D1kQ.jpeg","backgroundImageId":"","bio":"","twitterScreenName":"backus","socialStats":{"userId":"846ca283a13c","usersFollowedCount":153,"usersFollowedByCount":1296,"type":"SocialStats"},"social":{"userId":"lo_GwMGutI1mQQI","targetUserId":"846ca283a13c","type":"Social"},"facebookAccountId":"","allowNotes":1,"mediumMemberAt":0,"isNsfw":false,"isWriterProgramEnrolled":true,"isQuarantined":false,"type":"User"},"homeCollectionId":"","title":"Fat protocols aren't new: What blockchain can learn from p2p file sharing","detectedLanguage":"en","latestVersion":"cc646fdf4a3b","latestPublishedVersion":"cc646fdf4a3b","hasUnpublishedEdits":false,"latestRev":3305,"createdAt":1527118196447,"updatedAt":1532712755036,"acceptedAt":0,"firstPublishedAt":1527618061221,"latestPublishedAt":1530165108872,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"Limewire and Kazaa were backed by fat protocols. They can teach us a lot about competition and the value of crypto tokens","bodyModel":{"paragraphs":[{"name":"5e1b","type":4,"text":"","markups":[],"layout":5,"metadata":{"id":"1*mb0yxRTKW18JDylx41bmyQ.png","originalWidth":1920,"originalHeight":360}},{"name":"9afd","type":3,"text":"Fat protocols arent new: What blockchain can learn from p2p file sharing","markups":[]},{"name":"bf68","type":1,"text":"Starting in 1999, we saw an explosion of p2p file sharing technology. We had Gnutella (the protocol behind Limewire), FastTrack (Kazaa), eDonkey, and BitTorrent. Limewire, Kazaa, and eDonkey all died, but the protocols they helped create lived on!","markups":[{"type":1,"start":162,"end":247}]},{"name":"b973","type":1,"text":"People have speculated on what a future with fat protocols will look like. File sharing protocols arent exactly the same, but they have a lot of similarities we can learn from.","markups":[{"type":3,"start":45,"end":58,"href":"https://web.archive.org/web/20190309201603/http://www.usv.com/blog/fat-protocols","title":"","rel":"","anchorType":0}]},{"name":"19b5","type":1,"text":"Looking at the p2p ecosystem, a few things are clear:","markups":[]},{"name":"9ca1","type":9,"text":"Fat protocol ecosystems have way more variety and experimentation when network effects dont stop people from creating new clients","markups":[{"type":1,"start":0,"end":65}]},{"name":"0957","type":9,"text":"Protocols live on and evolve regardless of whether the original creators are working on them or not","markups":[{"type":1,"start":0,"end":17}]},{"name":"360f","type":9,"text":"The application layer seems to capture little value for the protocol creator, but third party competition to build on top of the protocol may be a powerful force for finding product/market fit","markups":[{"type":1,"start":4,"end":76},{"type":1,"start":77,"end":78}]},{"name":"0d0b","type":9,"text":"While people werent able to figure out how to integrate a token into p2p file sharing technologies back in the day, it does seem like a properly calibrated token marketplace would have solved a lot of problems and accelerated p2ps breakneck adoption even more.","markups":[{"type":1,"start":117,"end":210}]},{"name":"5bf3","type":3,"text":"Vibrant and competitive ecosystems","markups":[]},{"name":"68ef","type":6,"text":"… by replicating and storing user data across an open and decentralized network rather than individual applications controlling access to disparate silos of information, we reduce the barriers to entry for new players and create a more vibrant and competitive ecosystem of products and services on top.","markups":[{"type":1,"start":0,"end":80},{"type":1,"start":173,"end":201},{"type":1,"start":231,"end":269}]},{"name":"689b","type":6,"text":"Fat Protocols from Union Square Ventures","markups":[{"type":3,"start":0,"end":40,"href":"https://web.archive.org/web/20190309201603/http://www.usv.com/blog/fat-protoco
// ]]></script><script id="parsely-cfg" src="Fat%20protocols%20aren't%20new%20%20What%20blockchain%20can%20learn%20from%20p2p%20file%20sharing_fichiers/p.js"></script><script type="text/javascript">(function(b,r,a,n,c,h,_,s,d,k){if(!b[n]||!b[n]._q){for(;s<_.length;)c(h,_[s++]);d=r.createElement(a);d.async=1;d.src="https://web.archive.org/web/20190309201603/https://cdn.branch.io/branch-latest.min.js";k=r.getElementsByTagName(a)[0];k.parentNode.insertBefore(d,k);b[n]=h}})(window,document,"script","branch",function(b,r){b[r]=function(){b._q.push([r,arguments])}},{_q:[],_v:1},"addListener applyCode autoAppIndex banner closeBanner closeJourney creditHistory credits data deepview deepviewCta first getCode init link logout redeem referrals removeListener sendSMS setBranchViewData setIdentity track validateCode trackCommerceEvent logEvent".split(" "), 0); branch.init('key_live_ofxXr2qTrrU9NqURK8ZwEhknBxiI6KBm', {'no_journeys': true, 'disable_exit_animation': true, 'disable_entry_animation': true, 'tracking_disabled': false }, function(err, data) {});</script>
<div class="surface-scrollOverlay"></div><script charset="UTF-8" src="Fat%20protocols%20aren't%20new%20%20What%20blockchain%20can%20learn%20from%20p2p%20file%20sharing_fichiers/main-common-async.js"></script><div class="fbc-badge js-fbc-UID_1 fbc-badge-small fbc-badge-share" style="z-index: 2; left: 986.967px; top: 22002.7px;"><div class="fbc-badge-fence"></div><div class="fbc-badge-tooltip">Facebook Container a désactivé ce bouton et a empêché Facebook de suivre votre visite sur cette page.</div><div class="fbc-badge-prompt"></div></div><div class="fbc-badge js-fbc-UID_2 fbc-badge-small fbc-badge-disabled fbc-badge-share"><div class="fbc-badge-fence"></div><div class="fbc-badge-tooltip">Facebook Container a désactivé ce bouton et a empêché Facebook de suivre votre visite sur cette page.</div><div class="fbc-badge-prompt"></div></div></body></html>
<!--
FILE ARCHIVED ON 20:16:03 Mar 09, 2019 AND RETRIEVED FROM THE
INTERNET ARCHIVE ON 13:13:26 Mar 26, 2020.
JAVASCRIPT APPENDED BY WAYBACK MACHINE, COPYRIGHT INTERNET ARCHIVE.
ALL OTHER CONTENT MAY ALSO BE PROTECTED BY COPYRIGHT (17 U.S.C.
SECTION 108(a)(3)).
-->
<!--
playback timings (ms):
load_resource: 175.789
RedisCDXSource: 83.297
LoadShardBlock: 311.356 (3)
captures_list: 487.677
PetaboxLoader3.resolve: 125.196
CDXLines.iter: 14.208 (3)
exclusion.robots: 0.266
esindex: 0.02
exclusion.robots.policy: 0.253
PetaboxLoader3.datanode: 107.222 (4)
-->