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

279 lines
195 KiB
HTML
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!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 blockchain can learn from p2p file sharing","name":"Fat protocols aren't new: What blockchain can learn from p2p file sharing","articleId":"42d2c538db41","thumbnailUrl":"https://web.archive.org/web/20190309201603/https://cdn-images-1.medium.com/max/1918/1*WDf1MmV_gJgmfpi3ue4G4g.png","keywords":["Tag:Blockchain","Tag:Crypto","Tag:Crypto Tokens","Topic:Cryptocurrency","LockedPostSource:0","Elevated:false","LayerCake:3"],"author":{"@type":"Person","name":"John Backus","url":"https://web.archive.org/web/20190309201603/https://medium.com/@jbackus"},"creator":["John Backus"],"publisher":{"@type":"Organization","name":"Medium","url":"https://web.archive.org/web/20190309201603/https://medium.com/","logo":{"@type":"ImageObject","width":308,"height":60,"url":"https://web.archive.org/web/20190309201603/https://cdn-images-1.medium.com/max/616/1*OMF3fSqH8t4xBJ9-6oZDZw.png"}},"mainEntityOfPage":"https://web.archive.org/web/20190309201603/https://medium.com/@jbackus/fat-protocols-arent-new-42d2c538db41"}</script><meta name="parsely-link" content="https://medium.com/@jbackus/fat-protocols-arent-new-42d2c538db41"><link rel="stylesheet" href="Fat%20protocols%20aren't%20new%20%20What%20blockchain%20can%20learn%20from%20p2p%20file%20sharing_fichiers/main-branding-base.css"><script>!function(n,e){var t,o,i,c=[],f={passive:!0,capture:!0},r=new Date,a="pointerup",u="pointercancel";function p(n,c){t||(t=c,o=n,i=new Date,w(e),s())}function s(){o>=0&&o<i-r&&(c.forEach(function(n){n(o,t)}),c=[])}function l(t){if(t.cancelable){var o=(t.timeStamp>1e12?new Date:performance.now())-t.timeStamp;"pointerdown"==t.type?function(t,o){function i(){p(t,o),r()}function c(){r()}function r(){e(a,i,f),e(u,c,f)}n(a,i,f),n(u,c,f)}(o,t):p(o,t)}}function w(n){["click","mousedown","keydown","touchstart","pointerdown"].forEach(function(e){n(e,l,f)})}w(n),self.perfMetrics=self.perfMetrics||{},self.perfMetrics.onFirstInputDelay=function(n){c.push(n),s()}}(addEventListener,removeEventListener);</script><script>if (window.top !== window.self) window.top.location = window.self.location.href;var OB_startTime = new Date().getTime(); var OB_loadErrors = []; function _onerror(e) { OB_loadErrors.push(e) }; if (document.addEventListener) document.addEventListener("error", _onerror, true); else if (document.attachEvent) document.attachEvent("onerror", _onerror); function _asyncScript(u) {var d = document, f = d.getElementsByTagName("script")[0], s = d.createElement("script"); s.type = "text/javascript"; s.async = true; s.src = u; f.parentNode.insertBefore(s, f);}function _asyncStyles(u) {var d = document, f = d.getElementsByTagName("script")[0], s = d.createElement("link"); s.rel = "stylesheet"; s.href = u; f.parentNode.insertBefore(s, f); return s}(new Image()).src = "/_/stat?event=pixel.load&origin=" + encodeURIComponent(location.origin);</script><script>window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date; ga("create", "UA-24232453-2", "auto", {"allowLinker": true, "legacyCookieDomain": window.location.hostname}); ga("send", "pageview");</script><script async="" src="Fat%20protocols%20aren't%20new%20%20What%20blockchain%20can%20learn%20from%20p2p%20file%20sharing_fichiers/analytics_002.js"></script><script>(function () {var height = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight; var width = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; document.write("<style>section.section-image--fullBleed.is-backgrounded {padding-top: " + Math.round(1.1 * height) + "px;}section.section-image--fullScreen.is-backgrounded, section.section-image--coverFade.is-backgrounded {min-height: " + height + "px; padding-top: " + Math.round(0.5 * height) + "px;}.u-height100vh {height: " + height + "px !important;}.u-height110vh {height: " + Math.round(1.1 * height) + "px !important;}.u-minHeight100vh {min-height: " + height + "px !important;}.u-maxHeight100vh {max-height: " + height + "px !important;}section.section-image--coverFade {height: " + height + "px;}.section-aspectRatioViewportPlaceholder, .section-aspectRatioViewportCropPlaceholder {max-height: " + height + "px;}.section-aspectRatioViewportBottomSpacer, .section-aspectRatioViewportBottomPlaceholder {max-height: " + Math.round(0.5 * height) + "px;}.zoomable:before {top: " + (-1 * height) + "px; left: " + (-1 * width) + "px; padding: " + height + "px " + width + "px;}</style>");})()</script><style>section.section-image--fullBleed.is-backgrounded {padding-top: 837px;}section.section-image--fullScreen.is-backgrounded, section.section-image--coverFade.is-backgrounded {min-height: 761px; padding-top: 381px;}.u-height100vh {height: 761px !important;}.u-height110vh {height: 837px !important;}.u-minHeight100vh {min-height: 761px !important;}.u-maxHeight100vh {max-height: 761px !important;}section.section-image--coverFade {height: 761px;}.section-aspectRatioViewportPlaceholder, .section-aspectRatioViewportCropPlaceholder {max-height: 761px;}.section-aspectRatioViewportBottomSpacer, .section-aspectRatioViewportBottomPlaceholder {max-height: 381px;}.zoomable:before {top: -761px; left: -1600px; padding: 761px 1600px;}</style><!--[if lt IE 9]><script charset="UTF-8" src="https://cdn-static-1.medium.com/_/fp/js/shiv.RI2ePTZ5gFmMgLzG5bEVAA.js"></script><![endif]--><link rel="icon" href="https://web.archive.org/web/20190309201603im_/https://cdn-static-1.medium.com/_/fp/icons/favicon-rebrand-medium.3Y6xpZ-0FSdWDnPM3hSBIA.ico" class="js-favicon"><link rel="apple-touch-icon" sizes="152x152" href="https://web.archive.org/web/20190309201603im_/https://cdn-images-1.medium.com/fit/c/304/304/1*8I-HPL0bfoIzGied-dzOvA.png"><link rel="apple-touch-icon" sizes="120x120" href="https://web.archive.org/web/20190309201603im_/https://cdn-images-1.medium.com/fit/c/240/240/1*8I-HPL0bfoIzGied-dzOvA.png"><link rel="apple-touch-icon" sizes="76x76" href="https://web.archive.org/web/20190309201603im_/https://cdn-images-1.medium.com/fit/c/152/152/1*8I-HPL0bfoIzGied-dzOvA.png"><link rel="apple-touch-icon" sizes="60x60" href="https://web.archive.org/web/20190309201603im_/https://cdn-images-1.medium.com/fit/c/120/120/1*8I-HPL0bfoIzGied-dzOvA.png"><link rel="mask-icon" href="https://web.archive.org/web/20190309201603im_/https://cdn-static-1.medium.com/_/fp/icons/monogram-mask.KPLCSFEZviQN0jQ7veN2RQ.svg" color="#171717"><script src="Fat%20protocols%20aren't%20new%20%20What%20blockchain%20can%20learn%20from%20p2p%20file%20sharing_fichiers/a.json"></script><script src="Fat%20protocols%20aren't%20new%20%20What%20blockchain%20can%20learn%20from%20p2p%20file%20sharing_fichiers/a_004.json"></script><script src="Fat%20protocols%20aren't%20new%20%20What%20blockchain%20can%20learn%20from%20p2p%20file%20sharing_fichiers/a_002.json"></script><script type="text/javascript" async="" src="Fat%20protocols%20aren't%20new%20%20What%20blockchain%20can%20learn%20from%20p2p%20file%20sharing_fichiers/_r_002"></script><script src="Fat%20protocols%20aren't%20new%20%20What%20blockchain%20can%20learn%20from%20p2p%20file%20sharing_fichiers/a_005.json"></script><script type="text/javascript" async="" src="Fat%20protocols%20aren't%20new%20%20What%20blockchain%20can%20learn%20from%20p2p%20file%20sharing_fichiers/_r_003"></script><script type="text/javascript" async="" src="Fat%20protocols%20aren't%20new%20%20What%20blockchain%20can%20learn%20from%20p2p%20file%20sharing_fichiers/_r"></script><script src="Fat%20protocols%20aren't%20new%20%20What%20blockchain%20can%20learn%20from%20p2p%20file%20sharing_fichiers/a_003.json"></script><script src="Fat%20protocols%20aren't%20new%20%20What%20blockchain%20can%20learn%20from%20p2p%20file%20sharing_fichiers/a_007.json"></script><script src="Fat%20protocols%20aren't%20new%20%20What%20blockchain%20can%20learn%20from%20p2p%20file%20sharing_fichiers/a_009.json"></script><script src="Fat%20protocols%20aren't%20new%20%20What%20blockchain%20can%20learn%20from%20p2p%20file%20sharing_fichiers/a_008.json"></script><script src="Fat%20protocols%20aren't%20new%20%20What%20blockchain%20can%20learn%20from%20p2p%20file%20sharing_fichiers/a_006.json"></script><script src="https://srv-2020-03-26-13.pixel.parsely.com/start/?rand=1585229386502&amp;plid=97726599&amp;idsite=medium.com&amp;url=https%3A%2F%2Fweb.archive.org%2Fweb%2F20190309201603%2Fhttps%3A%2F%2Fmedium.com%2F%40jbackus%2Ffat-protocols-arent-new-42d2c538db41&amp;urlref=https%3A%2F%2Fforum.monnaie-libre.fr%2F&amp;screen=1600x900%7C1600x860%7C24&amp;data=%7B%7D&amp;sid=1&amp;surl=https%3A%2F%2Fweb.archive.org%2Fweb%2F20190309201603%2Fhttps%3A%2F%2Fmedium.com%2F%40jbackus%2Ffat-protocols-arent-new-42d2c538db41&amp;sref=https%3A%2F%2Fforum.monnaie-libre.fr%2F&amp;sts=1585228423137&amp;slts=0&amp;date=Thu+Mar+26+2020+14%3A29%3A46+GMT%2B0100+(heure+normale+d%E2%80%99Europe+centrale)&amp;action=heartbeat&amp;inc=5&amp;tt=41875&amp;pvid=21142480&amp;callback=parselyStartCallback"></script></head><body itemscope="" class="postShowScreen v-glyph v-glyph--m2 is-js" data-action-scope="_actionscope_0"><!-- BEGIN WAYBACK TOOLBAR INSERT -->
<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-2.389-4.75a2.81 2.81 0 0 0-2.323 1.387v9.555c0 .412 0 .506.281.759l1.537 1.442v.066h-6.97V21.098a.88.88 0 0 0-.281-.787l-1.546-1.639v-.065h6.98v3.334a5.002 5.002 0 0 1 5.002-3.587c2.323 0 3.896 1.292 4.562 3.747a5.433 5.433 0 0 1 5.245-3.747c3.11 0 4.872 2.295 4.872 6.632 0 2.07-.066 4.43-.094 6.913a.75.75 0 0 0 .318.759l1.537 1.443v.065h-7.017zm-87.671-2.043l2.07 1.977v.065H17.862v-.065l2.107-1.977a.796.796 0 0 0 .281-.759V18.728c0-.534 0-1.255.094-1.873l-7.082 17.564h-.084L5.843 18.26c-.16-.402-.206-.43-.31-.702v10.595c-.087.71.034 1.429.348 2.07l2.95 3.879v.065H1v-.065l2.95-3.888a3.69 3.69 0 0 0 .347-2.06v-11.71a2.267 2.267 0 0 0-.487-1.602l-2.089-2.708v-.065h7.494l6.277 13.686 5.527-13.686h7.335v.065l-2.061 2.296a.806.806 0 0 0-.319.786v16.15a.75.75 0 0 0 .319.759zm8.215-6.332v.065c0 4.01 2.07 5.62 4.497 5.62a5.105 5.105 0 0 0 4.777-2.894h.066c-.844 3.963-3.298 5.836-6.97 5.836-3.962 0-7.7-2.389-7.7-7.925 0-5.817 3.747-8.14 7.887-8.14 3.335 0 6.886 1.573 6.886 6.632v.806h-9.443zm0-.806h4.618v-.815c0-4.122-.852-5.218-2.136-5.218-1.555 0-2.5 1.64-2.5 6.033h.018z"></path></svg></span><span class="u-textScreenReader">Homepage</span></a></div><div class="u-xs-show js-metabarLogoLeft"><a href="https://web.archive.org/web/20190309201603/https://medium.com/" data-log-event="home" class="siteNav-logo u-fillTransparentBlackDarker u-flex0 u-flexCenter u-paddingTop0"><span class="svgIcon svgIcon--logoMonogram svgIcon--45px is-flushLeft u-flex0 u-flexCenter u-paddingTop0"><svg class="svgIcon-use" width="45" height="45"><path d="M5 40V5h35v35H5zm8.56-12.627c0 .555-.027.687-.318 1.03l-2.457 2.985v.396h6.974v-.396l-2.456-2.985c-.291-.343-.344-.502-.344-1.03V18.42l6.127 13.364h.714l5.256-13.364v10.644c0 .29 0 .342-.185.528l-1.848 1.796v.396h9.19v-.396l-1.822-1.796c-.184-.186-.21-.238-.21-.528V15.937c0-.291.026-.344.21-.528l1.823-1.797v-.396h-6.471l-4.622 11.542-5.203-11.542h-6.79v.396l2.14 2.64c.239.292.291.37.291.768v10.353z"></path></svg></span><span class="u-textScreenReader">Homepage</span></a></div><span class="svgIcon svgIcon--straightLine svgIcon--29px u-marginTop1 u-marginLeft10 u-xs-hide"><svg class="svgIcon-use" width="2" height="29"><path d="M1 29V1" stroke="#D5D5D5" stroke-width=".5" fill="none" stroke-linecap="round"></path></svg></span><a class="link link--noUnderline u-baseColor--link metabar-topic" href="https://web.archive.org/web/20190309201603/https://medium.com/topic/cryptocurrency">Cryptocurrency</a></div><div class="metabar-block u-flex0"><div class="buttonSet buttonSet--wide"><a class="button button--chromeless u-baseColor--buttonNormal u-xs-hide js-upgradeMembershipAction" href="https://web.archive.org/web/20190309201603/https://medium.com/membership?source=upgrade_membership---nav_full">Become a member</a><a class="button button--primary button--chromeless u-accentColor--buttonNormal is-inSiteNavBar u-xs-hide js-signInButton" href="https://web.archive.org/web/20190309201603/https://medium.com/m/signin?redirect=https%3A%2F%2Fmedium.com%2F%40jbackus%2Ffat-protocols-arent-new-42d2c538db41&amp;source=--------------------------nav_reg&amp;operation=login" data-action="sign-in-prompt" data-redirect="https://medium.com/@jbackus/fat-protocols-arent-new-42d2c538db41" data-action-source="--------------------------nav_reg">Sign in</a><a class="button button--primary button--withChrome u-accentColor--buttonNormal is-inSiteNavBar js-signUpButton" href="https://web.archive.org/web/20190309201603/https://medium.com/m/signin?redirect=https%3A%2F%2Fmedium.com%2F%40jbackus%2Ffat-protocols-arent-new-42d2c538db41&amp;source=--------------------------nav_reg&amp;operation=register" data-action="sign-up-prompt" data-redirect="https://medium.com/@jbackus/fat-protocols-arent-new-42d2c538db41" data-action-source="--------------------------nav_reg">Get started</a></div></div></div></div><div class="metabar metabar--spacer js-metabarSpacer u-height65 u-xs-height56"></div><main role="main"><article class=" u-minHeight100vhOffset65 u-overflowHidden postArticle postArticle--full is-withLeadingImage u-marginBottom40" lang="en"><div class="postArticle-content js-postField js-notesSource js-trackPostScrolls" data-post-id="42d2c538db41" data-source="post_page" data-tracking-context="postPage"><section name="cd8d" class="section section--body section--first"><div class="section-divider"><hr class="section-divider"></div><div class="section-content"><div class="section-inner sectionLayout--fullWidth"><figure name="5e1b" id="5e1b" class="graf graf--figure graf--layoutFillWidth graf--leading"><div class="aspectRatioPlaceholder is-locked"><div class="aspectRatioPlaceholder-fill" style="padding-bottom: 18.8%;"></div><img class="graf-image" data-image-id="1*mb0yxRTKW18JDylx41bmyQ.png" data-width="1920" data-height="360" src="Fat%20protocols%20aren't%20new%20%20What%20blockchain%20can%20learn%20from%20p2p%20file%20sharing_fichiers/1mb0yxRTKW18JDylx41bmyQ.png"></div></figure></div><div class="section-inner sectionLayout--insetColumn"><h1 name="9afd" id="9afd" class="graf graf--h3 graf-after--figure graf--title">Fat protocols arent new: What blockchain can learn from p2p file&nbsp;sharing</h1><div class="uiScale uiScale-ui--regular uiScale-caption--regular u-flexCenter u-marginVertical24 u-fontSize15 js-postMetaLockup"><div class="u-flex0"><a class="link u-baseColor--link avatar" href="https://web.archive.org/web/20190309201603/https://medium.com/@jbackus" data-action="show-user-card" data-action-source="post_header_lockup" data-action-value="846ca283a13c" data-action-type="hover" data-user-id="846ca283a13c" dir="auto"><img src="Fat%20protocols%20aren't%20new%20%20What%20blockchain%20can%20learn%20from%20p2p%20file%20sharing_fichiers/1auamU74zd-cx2KkWV2D1kQ_003.jpeg" class="avatar-image u-size50x50" alt="Go to the profile of John Backus"></a></div><div class="u-flex1 u-paddingLeft15 u-overflowHidden"><div class="u-paddingBottom3"><a class="ds-link ds-link--styleSubtle ui-captionStrong u-inlineBlock link link--darken link--darker" href="https://web.archive.org/web/20190309201603/https://medium.com/@jbackus" data-action="show-user-card" data-action-value="846ca283a13c" data-action-type="hover" data-user-id="846ca283a13c" dir="auto">John Backus</a><span class="followState js-followState" data-user-id="846ca283a13c"><button class="button button--smallest u-noUserSelect button--withChrome u-baseColor--buttonNormal button--withHover button--unblock js-unblockButton u-marginLeft10 u-xs-hide" data-action="sign-up-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-redirect="https://medium.com/@jbackus/fat-protocols-arent-new-42d2c538db41" data-action-source="post_header_lockup"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary button--smallest button--dark u-noUserSelect button--withChrome u-accentColor--buttonDark button--follow js-followButton u-marginLeft10 u-xs-hide" data-action="sign-up-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/846ca283a13c" data-action-source="post_header_lockup-846ca283a13c-------------------------follow_byline"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></span></div><div class="ui-caption u-noWrapWithEllipsis js-testPostMetaInlineSupplemental"><time datetime="2018-05-29T18:21:01.221Z">May 29, 2018</time><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="16 min read"></span></div></div></div><p name="bf68" id="bf68" class="graf graf--p graf-after--h3">Starting
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 class="u-flex1"><div class="multirecommend js-actionMultirecommend u-flexCenter" data-post-id="42d2c538db41" data-is-icon-29px="true" data-is-circle="true" data-has-recommend-list="true" data-source="post_actions_footer-----42d2c538db41---------------------clap_footer" data-clap-string-singular="clap" data-clap-string-plural="claps"><div class="u-relative u-foreground"><button class="button button--large button--circle button--withChrome u-baseColor--buttonNormal button--withIcon button--withSvgIcon clapButton js-actionMultirecommendButton clapButton--darker clapButton--largePill u-relative u-foreground u-xs-paddingLeft13 u-width60 u-height60 u-accentColor--textNormal u-accentColor--buttonNormal clap-onboarding" data-action="sign-up-prompt" data-sign-in-action="multivote" data-requires-token="true" data-redirect="https://medium.com/_/vote/p/42d2c538db41" data-action-source="post_actions_footer-----42d2c538db41---------------------clap_footer" aria-label="Clap"><span class="button-defaultState"><span class="svgIcon svgIcon--clap svgIcon--33px u-relative u-topNegative2 u-xs-top0"><svg class="svgIcon-use" width="33" height="33"><path d="M28.86 17.342l-3.64-6.402c-.292-.433-.712-.729-1.163-.8a1.124 1.124 0 0 0-.889.213c-.63.488-.742 1.181-.33 2.061l1.222 2.587 1.4 2.46c2.234 4.085 1.511 8.007-2.145 11.663-.26.26-.526.49-.797.707 1.42-.084 2.881-.683 4.292-2.094 3.822-3.823 3.565-7.876 2.05-10.395zm-6.252 11.075c3.352-3.35 3.998-6.775 1.978-10.469l-3.378-5.945c-.292-.432-.712-.728-1.163-.8a1.122 1.122 0 0 0-.89.213c-.63.49-.742 1.182-.33 2.061l1.72 3.638a.502.502 0 0 1-.806.568l-8.91-8.91a1.335 1.335 0 0 0-1.887 1.886l5.292 5.292a.5.5 0 0 1-.707.707l-5.292-5.292-1.492-1.492c-.503-.503-1.382-.505-1.887 0a1.337 1.337 0 0 0 0 1.886l1.493 1.492 5.292 5.292a.499.499 0 0 1-.353.854.5.5 0 0 1-.354-.147L5.642 13.96a1.338 1.338 0 0 0-1.887 0 1.338 1.338 0 0 0 0 1.887l2.23 2.228 3.322 3.324a.499.499 0 0 1-.353.853.502.502 0 0 1-.354-.146l-3.323-3.324a1.333 1.333 0 0 0-1.886 0 1.325 1.325 0 0 0-.39.943c0 .356.138.691.39.943l6.396 6.397c3.528 3.53 8.86 5.313 12.821 1.353zM12.73 9.26l5.68 5.68-.49-1.037c-.518-1.107-.426-2.13.224-2.89l-3.303-3.304a1.337 1.337 0 0 0-1.886 0 1.326 1.326 0 0 0-.39.944c0 .217.067.42.165.607zm14.787 19.184c-1.599 1.6-3.417 2.392-5.353 2.392-.349 0-.7-.03-1.058-.082a7.922 7.922 0 0 1-3.667.887c-3.049 0-6.115-1.626-8.359-3.87l-6.396-6.397A2.315 2.315 0 0 1 2 19.724a2.327 2.327 0 0 1 1.923-2.296l-.875-.875a2.339 2.339 0 0 1 0-3.3 2.33 2.33 0 0 1 1.24-.647l-.139-.139c-.91-.91-.91-2.39 0-3.3.884-.884 2.421-.882 3.301 0l.138.14a2.335 2.335 0 0 1 3.948-1.24l.093.092c.091-.423.291-.828.62-1.157a2.336 2.336 0 0 1 3.3 0l3.384 3.386a2.167 2.167 0 0 1 1.271-.173c.534.086 1.03.354 1.441.765.11-.549.415-1.034.911-1.418a2.12 2.12 0 0 1 1.661-.41c.727.117 1.385.565 1.853 1.262l3.652 6.423c1.704 2.832 2.025 7.377-2.205 11.607zM13.217.484l-1.917.882 2.37 2.837-.454-3.719zm8.487.877l-1.928-.86-.44 3.697 2.368-2.837zM16.5 3.293L15.478-.005h2.044L16.5 3.293z" fill-rule="evenodd"></path></svg></span></span><span class="button-activeState"><span class="svgIcon svgIcon--clapFilled svgIcon--33px u-relative u-topNegative2 u-xs-top0"><svg class="svgIcon-use" width="33" height="33"><g fill-rule="evenodd"><path d="M29.58 17.1l-3.854-6.78c-.365-.543-.876-.899-1.431-.989a1.491 1.491 0 0 0-1.16.281c-.42.327-.65.736-.7 1.207v.001l3.623 6.367c2.46 4.498 1.67 8.802-2.333 12.807-.265.265-.536.505-.81.728 1.973-.222 3.474-1.286 4.45-2.263 4.166-4.165 3.875-8.6 2.215-11.36zm-4.831.82l-3.581-6.3c-.296-.439-.725-.742-1.183-.815a1.105 1.105 0 0 0-.89.213c-.647.502-.755 1.188-.33 2.098l1.825 3.858a.601.601 0 0 1-.197.747.596.596 0 0 1-.77-.067L10.178 8.21c-.508-.506-1.393-.506-1.901 0a1.335 1.335 0 0 0-.393.95c0 .36.139.698.393.95v.001l5.61 5.61a.599.599 0 1 1-.848.847l-5.606-5.606c-.001 0-.002 0-.003-.002L5.848 9.375a1.349 1.349 0 0 0-1.902 0 1.348 1.348 0 0 0 0 1.901l1.582 1.582 5.61 5.61a.6.6 0 0 1-.848.848l-5.61-5.61c-.51-.508-1.393-.508-1.9 0a1.332 1.332 0 0 0-.394.95c0 .36.139.697.393.952l2.363 2.362c.002.001.002.002.002.003l3.52 3.52a.6.6 0 0 1-.848.847l-3.522-3.523h-.001a1.336 1.336 0 0 0-.95-.393 1.345 1.345 0 0 0-.949 2.295l6.779 6.78c3.715 3.713 9.327 5.598 13.49 1.434 3.527-3.528 4.21-7.13 2.086-11.015zM11.817 7.727c.06-.328.213-.64.466-.893.64-.64 1.755-.64 2.396 0l3.232 3.232c-.82.783-1.09 1.833-.764 2.992l-5.33-5.33z"></path><path d="M13.285.48l-1.916.881 2.37 2.837z"></path><path d="M21.719 1.361L19.79.501l-.44 3.697z"></path><path d="M16.502 3.298L15.481 0h2.043z"></path></g></svg></span></span></button><div class="clapUndo u-width60 u-round u-height32 u-absolute u-borderBox u-paddingRight5 u-transition--transform200Springu-backgroundGrayLighter js-clapUndo" style="top: 14px; padding: 2px;"><button class="button button--chromeless u-baseColor--buttonNormal button--withIcon button--withSvgIcon u-floatRight" data-action="multivote-undo" data-action-value="42d2c538db41"><span class="svgIcon svgIcon--removeThin svgIcon--29px"><svg class="svgIcon-use" width="29" height="29"><path d="M20.13 8.11l-5.61 5.61-5.609-5.61-.801.801 5.61 5.61-5.61 5.61.801.8 5.61-5.609 5.61 5.61.8-.801-5.609-5.61 5.61-5.61" fill-rule="evenodd"></path></svg></span></button></div></div><span class="u-relative u-background js-actionMultirecommendCount u-marginLeft16"><button class="button button--chromeless u-baseColor--buttonNormal js-multirecommendCountButton u-textColorDarker" data-action="show-recommends" data-action-value="42d2c538db41">2.4K claps</button><span class="u-xs-hide"></span></span></div></div><div class="buttonSet u-flex0"><a class="button button--dark button--chromeless u-baseColor--buttonDark button--withIcon button--withSvgIcon button--dark button--chromeless u-xs-hide u-marginRight12" href="https://web.archive.org/web/20190309201603/https://medium.com/p/42d2c538db41/share/twitter" title="Share on Twitter" aria-label="Share on Twitter" target="_blank" data-action-source="post_actions_footer"><span class="button-defaultState"><span class="svgIcon svgIcon--twitterFilled svgIcon--29px"><svg class="svgIcon-use" width="29" height="29"><path d="M22.053 7.54a4.474 4.474 0 0 0-3.31-1.455 4.526 4.526 0 0 0-4.526 4.524c0 .35.04.7.082 1.05a12.9 12.9 0 0 1-9.3-4.77c-.39.69-.61 1.46-.65 2.26.03 1.6.83 2.99 2.02 3.79-.72-.02-1.41-.22-2.02-.57-.01.02-.01.04 0 .08-.01 2.17 1.55 4 3.63 4.44-.39.08-.79.13-1.21.16-.28-.03-.57-.05-.81-.08.54 1.77 2.21 3.08 4.2 3.15a9.564 9.564 0 0 1-5.66 1.94c-.34-.03-.7-.06-1.05-.08 2 1.27 4.38 2.02 6.94 2.02 8.31 0 12.86-6.9 12.84-12.85.02-.24.01-.43 0-.65.89-.62 1.65-1.42 2.26-2.34-.82.38-1.69.62-2.59.72a4.37 4.37 0 0 0 1.94-2.51c-.84.53-1.81.9-2.83 1.13z"></path></svg></span></span></a><a class="button button--dark button--chromeless u-baseColor--buttonDark button--withIcon button--withSvgIcon u-xs-hide u-marginRight12 fbc-has-badge fbc-UID_1" href="https://web.archive.org/web/20190309201603/https://medium.com/p/42d2c538db41/share/facebook" title="Share on Facebook" aria-label="Share on Facebook" target="_blank" data-action-source="post_actions_footer"><span class="button-defaultState"><span class="svgIcon svgIcon--facebookSquare svgIcon--29px"><svg class="svgIcon-use" width="29" height="29"><path d="M23.209 5H5.792A.792.792 0 0 0 5 5.791V23.21c0 .437.354.791.792.791h9.303v-7.125H12.72v-2.968h2.375v-2.375c0-2.455 1.553-3.662 3.741-3.662 1.049 0 1.95.078 2.213.112v2.565h-1.517c-1.192 0-1.469.567-1.469 1.397v1.963h2.969l-.594 2.968h-2.375L18.11 24h5.099a.791.791 0 0 0 .791-.791V5.79a.791.791 0 0 0-.791-.79"></path></svg></span></span></a><button class="button button--large button--dark button--chromeless u-baseColor--buttonDark button--withIcon button--withSvgIcon u-xs-show u-marginRight10" title="Share this story on Twitter or Facebook" aria-label="Share this story on Twitter or Facebook" data-action="show-share-popover" data-action-source="post_actions_footer"><span class="svgIcon svgIcon--share svgIcon--29px"><svg class="svgIcon-use" width="29" height="29"><path d="M20.385 8H19a.5.5 0 1 0 .011 1h1.39c.43 0 .84.168 1.14.473.31.305.48.71.48 1.142v10.77c0 .43-.17.837-.47 1.142-.3.305-.71.473-1.14.473H8.62c-.43 0-.84-.168-1.144-.473a1.603 1.603 0 0 1-.473-1.142v-10.77c0-.43.17-.837.48-1.142A1.599 1.599 0 0 1 8.62 9H10a.502.502 0 0 0 0-1H8.615c-.67 0-1.338.255-1.85.766-.51.51-.765 1.18-.765 1.85v10.77c0 .668.255 1.337.766 1.848.51.51 1.18.766 1.85.766h11.77c.668 0 1.337-.255 1.848-.766.51-.51.766-1.18.766-1.85v-10.77c0-.668-.255-1.337-.766-1.848A2.61 2.61 0 0 0 20.384 8zm-8.67-2.508L14 3.207v8.362c0 .27.224.5.5.5s.5-.23.5-.5V3.2l2.285 2.285a.49.49 0 0 0 .704-.001.511.511 0 0 0 0-.708l-3.14-3.14a.504.504 0 0 0-.71 0L11 4.776a.501.501 0 0 0 .71.706" fill-rule="evenodd"></path></svg></span></button><button class="button button--large button--dark button--chromeless is-touchIconBlackPulse u-baseColor--buttonDark button--withIcon button--withSvgIcon" data-action="scroll-to-responses" data-action-source="post_actions_footer"><span class="svgIcon svgIcon--response svgIcon--29px"><svg class="svgIcon-use" width="29" height="29"><path d="M21.27 20.058c1.89-1.826 2.754-4.17 2.754-6.674C24.024 8.21 19.67 4 14.1 4 8.53 4 4 8.21 4 13.384c0 5.175 4.53 9.385 10.1 9.385 1.007 0 2-.14 2.95-.41.285.25.592.49.918.7 1.306.87 2.716 1.31 4.19 1.31.276-.01.494-.14.6-.36a.625.625 0 0 0-.052-.65c-.61-.84-1.042-1.71-1.282-2.58a5.417 5.417 0 0 1-.154-.75zm-3.85 1.324l-.083-.28-.388.12a9.72 9.72 0 0 1-2.85.424c-4.96 0-8.99-3.706-8.99-8.262 0-4.556 4.03-8.263 8.99-8.263 4.95 0 8.77 3.71 8.77 8.27 0 2.25-.75 4.35-2.5 5.92l-.24.21v.32c0 .07 0 .19.02.37.03.29.1.6.19.92.19.7.49 1.4.89 2.08-.93-.14-1.83-.49-2.67-1.06-.34-.22-.88-.48-1.16-.74z"></path></svg></span></button><button class="button button--chromeless u-baseColor--buttonNormal u-marginRight12" data-action="scroll-to-responses">10</button><button class="button button--large button--dark button--chromeless is-touchIconFadeInPulse u-baseColor--buttonDark button--withIcon button--withSvgIcon button--bookmark js-bookmarkButton" title="Bookmark this story to read later" aria-label="Bookmark this story to read later" data-action="sign-up-prompt" data-sign-in-action="add-to-bookmarks" data-requires-token="true" data-redirect="https://medium.com/_/bookmark/p/42d2c538db41" data-action-source="post_actions_footer"><span class="button-defaultState"><span class="svgIcon svgIcon--bookmark svgIcon--29px u-marginRight4"><svg class="svgIcon-use" width="29" height="29"><path d="M19.385 4h-9.77A2.623 2.623 0 0 0 7 6.615V23.01a1.022 1.022 0 0 0 1.595.847l5.905-4.004 5.905 4.004A1.022 1.022 0 0 0 22 23.011V6.62A2.625 2.625 0 0 0 19.385 4zM21 23l-5.91-3.955-.148-.107a.751.751 0 0 0-.884 0l-.147.107L8 23V6.615C8 5.725 8.725 5 9.615 5h9.77C20.275 5 21 5.725 21 6.615V23z" fill-rule="evenodd"></path></svg></span></span><span class="button-activeState"><span class="svgIcon svgIcon--bookmarkFilled svgIcon--29px u-marginRight4"><svg class="svgIcon-use" width="29" height="29"><path d="M19.385 4h-9.77A2.623 2.623 0 0 0 7 6.615V23.01a1.022 1.022 0 0 0 1.595.847l5.905-4.004 5.905 4.004A1.022 1.022 0 0 0 22 23.011V6.62A2.625 2.625 0 0 0 19.385 4z" fill-rule="evenodd"></path></svg></span></span></button><button class="button button--large button--dark button--chromeless is-touchIconBlackPulse u-baseColor--buttonDark button--withIcon button--withSvgIcon js-moreActionsButton" title="More actions" aria-label="More actions" data-action="more-actions"><span class="svgIcon svgIcon--more svgIcon--25px"><svg class="svgIcon-use" width="25" height="25" viewBox="-480.5 272.5 21 21"><path d="M-463 284.6c.9 0 1.6-.7 1.6-1.6s-.7-1.6-1.6-1.6-1.6.7-1.6 1.6.7 1.6 1.6 1.6zm0 .9c-1.4 0-2.5-1.1-2.5-2.5s1.1-2.5 2.5-2.5 2.5 1.1 2.5 2.5-1.1 2.5-2.5 2.5zm-7-.9c.9 0 1.6-.7 1.6-1.6s-.7-1.6-1.6-1.6-1.6.7-1.6 1.6.7 1.6 1.6 1.6zm0 .9c-1.4 0-2.5-1.1-2.5-2.5s1.1-2.5 2.5-2.5 2.5 1.1 2.5 2.5-1.1 2.5-2.5 2.5zm-7-.9c.9 0 1.6-.7 1.6-1.6s-.7-1.6-1.6-1.6-1.6.7-1.6 1.6.7 1.6 1.6 1.6zm0 .9c-1.4 0-2.5-1.1-2.5-2.5s1.1-2.5 2.5-2.5 2.5 1.1 2.5 2.5-1.1 2.5-2.5 2.5z"></path></svg></span></button></div></div></div></div><div class="u-maxWidth740 u-paddingTop20 u-marginTop20 u-borderTopLightest container u-paddingBottom20 u-xs-paddingBottom10 js-postAttributionFooterContainer"><div class="row js-postFooterInfo"><div class="col u-size12of12"><li class="uiScale uiScale-ui--small uiScale-caption--regular u-block u-paddingBottom18 js-cardUser"><div class="u-marginLeft20 u-floatRight"><span class="followState js-followState" data-user-id="846ca283a13c"><button class="button button--small u-noUserSelect button--withChrome u-baseColor--buttonNormal button--withHover button--unblock js-unblockButton" data-action="sign-up-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-redirect="https://medium.com/@jbackus/fat-protocols-arent-new-42d2c538db41" data-action-source="footer_card"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary button--small u-noUserSelect button--withChrome u-accentColor--buttonNormal button--follow js-followButton" data-action="sign-up-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/846ca283a13c" data-action-source="footer_card-846ca283a13c-------------------------follow_footer"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></span></div><div class="u-tableCell"><a class="link u-baseColor--link avatar" href="https://web.archive.org/web/20190309201603/https://medium.com/@jbackus?source=footer_card" title="Go to the profile of John Backus" aria-label="Go to the profile of John Backus" data-action-source="footer_card" data-user-id="846ca283a13c" dir="auto"><img src="Fat%20protocols%20aren't%20new%20%20What%20blockchain%20can%20learn%20from%20p2p%20file%20sharing_fichiers/1auamU74zd-cx2KkWV2D1kQ_002.jpeg" class="avatar-image avatar-image--small" alt="Go to the profile of John Backus"></a></div><div class="u-tableCell u-verticalAlignMiddle u-breakWord u-paddingLeft15"><h3 class="ui-h3 u-fontSize18 u-lineHeightTighter u-marginBottom4"><a class="link link--primary u-accentColor--hoverTextNormal" href="https://web.archive.org/web/20190309201603/https://medium.com/@jbackus" property="cc:attributionName" title="Go to the profile of John Backus" aria-label="Go to the profile of John Backus" rel="author cc:attributionUrl" data-user-id="846ca283a13c" dir="auto">John Backus</a></h3></div></li></div></div></div><div class="js-postFooterPlacements"></div><div class="u-padding0 u-clearfix u-backgroundGrayLightest u-print-hide supplementalPostContent js-responsesWrapper"></div><div class="supplementalPostContent js-heroPromo"></div></footer></article></main><aside class="u-marginAuto u-maxWidth1032 js-postLeftSidebar"><div class="u-foreground u-top0 u-transition--fadeOut300 u-fixed u-sm-hide js-postShareWidget"><ul><li class="u-marginVertical10"><div class="multirecommend js-actionMultirecommend u-flexCenter" data-post-id="42d2c538db41" data-is-icon-29px="true" data-has-recommend-list="true" data-source="post_share_widget-----42d2c538db41---------------------clap_sidebar"><div class="u-relative u-foreground"><button class="button button--primary button--large button--chromeless u-accentColor--buttonNormal button--withIcon button--withSvgIcon clapButton js-actionMultirecommendButton clapButton--darker" data-action="sign-up-prompt" data-sign-in-action="multivote" data-requires-token="true" data-redirect="https://medium.com/_/vote/p/42d2c538db41" data-action-source="post_share_widget-----42d2c538db41---------------------clap_sidebar" aria-label="Clap"><span class="button-defaultState"><span class="svgIcon svgIcon--clap svgIcon--29px"><svg class="svgIcon-use" width="29" height="29"><g fill-rule="evenodd"><path d="M13.739 1l.761 2.966L15.261 1z"></path><path d="M16.815 4.776l1.84-2.551-1.43-.471z"></path><path d="M10.378 2.224l1.84 2.551-.408-3.022z"></path><path d="M22.382 22.622c-1.04 1.04-2.115 1.507-3.166 1.608.168-.14.332-.29.492-.45 2.885-2.886 3.456-5.982 1.69-9.211l-1.101-1.937-.955-2.02c-.315-.676-.235-1.185.245-1.556a.836.836 0 0 1 .66-.16c.342.056.66.28.879.605l2.856 5.023c1.179 1.962 1.379 5.119-1.6 8.098m-13.29-.528l-5.02-5.02a1 1 0 0 1 .707-1.701c.255 0 .512.098.707.292l2.607 2.607a.442.442 0 0 0 .624-.624L6.11 15.04l-1.75-1.75a.998.998 0 1 1 1.41-1.413l4.154 4.156a.44.44 0 0 0 .624 0 .44.44 0 0 0 0-.624l-4.152-4.153-1.172-1.171a.998.998 0 0 1 0-1.41 1.018 1.018 0 0 1 1.41 0l1.172 1.17 4.153 4.152a.437.437 0 0 0 .624 0 .442.442 0 0 0 0-.624L8.43 9.222a.988.988 0 0 1-.291-.705.99.99 0 0 1 .29-.706 1 1 0 0 1 1.412 0l6.992 6.993a.443.443 0 0 0 .71-.501l-1.35-2.856c-.315-.676-.235-1.185.246-1.557a.85.85 0 0 1 .66-.16c.342.056.659.28.879.606L20.628 15c1.573 2.876 1.067 5.545-1.544 8.156-1.396 1.397-3.144 1.966-5.063 1.652-1.713-.286-3.463-1.248-4.928-2.714zM12.99 6.976l2.562 2.562c-.497.607-.563 1.414-.155 2.284l.265.562-4.257-4.257a.98.98 0 0 1-.117-.445c0-.267.104-.517.292-.706a1.023 1.023 0 0 1 1.41 0zm8.887 2.06c-.375-.557-.902-.916-1.486-1.011a1.738 1.738 0 0 0-1.342.332c-.376.29-.61.656-.712 1.065a2.1 2.1 0 0 0-1.095-.562 1.776 1.776 0 0 0-.992.128l-2.636-2.636a1.883 1.883 0 0 0-2.658 0 1.862 1.862 0 0 0-.478.847 1.886 1.886 0 0 0-2.671-.012 1.867 1.867 0 0 0-.503.909c-.754-.754-1.992-.754-2.703-.044a1.881 1.881 0 0 0 0 2.658c-.288.12-.605.288-.864.547a1.884 1.884 0 0 0 0 2.659l.624.622a1.879 1.879 0 0 0-.91 3.16l5.019 5.02c1.595 1.594 3.515 2.645 5.408 2.959a7.16 7.16 0 0 0 1.173.098c1.026 0 1.997-.24 2.892-.7.279.04.555.065.828.065 1.53 0 2.969-.628 4.236-1.894 3.338-3.338 3.083-6.928 1.738-9.166l-2.868-5.043z"></path></g></svg></span></span><span class="button-activeState"><span class="svgIcon svgIcon--clapFilled svgIcon--29px"><svg class="svgIcon-use" width="29" height="29"><g fill-rule="evenodd"><path d="M13.738 1l.762 2.966L15.262 1z"></path><path d="M18.634 2.224l-1.432-.47-.408 3.022z"></path><path d="M11.79 1.754l-1.431.47 1.84 2.552z"></path><path d="M24.472 14.307l-3.023-5.32c-.287-.426-.689-.705-1.123-.776a1.16 1.16 0 0 0-.911.221c-.297.231-.474.515-.535.84.017.022.036.04.053.063l2.843 5.001c1.95 3.564 1.328 6.973-1.843 10.144a8.46 8.46 0 0 1-.549.501c1.205-.156 2.328-.737 3.351-1.76 3.268-3.268 3.041-6.749 1.737-8.914"></path><path d="M14.58 10.887c-.156-.83.096-1.569.692-2.142L12.78 6.252c-.5-.504-1.378-.504-1.879 0-.178.18-.273.4-.329.63l4.008 4.005z"></path><path d="M17.812 10.04c-.218-.323-.539-.55-.88-.606a.814.814 0 0 0-.644.153c-.176.137-.713.553-.24 1.566l1.43 3.025a.539.539 0 1 1-.868.612L9.2 7.378a.986.986 0 1 0-1.395 1.395l4.401 4.403a.538.538 0 1 1-.762.762L7.046 9.54 5.802 8.295a.99.99 0 0 0-1.396 0 .981.981 0 0 0 0 1.394l1.241 1.241 4.402 4.403a.537.537 0 0 1 0 .761.535.535 0 0 1-.762 0L4.89 11.696a.992.992 0 0 0-1.399-.003.983.983 0 0 0 0 1.395l1.855 1.854 2.763 2.765a.538.538 0 0 1-.76.761l-2.765-2.764a.982.982 0 0 0-1.395 0 .989.989 0 0 0 0 1.395l5.32 5.32c3.371 3.372 6.64 4.977 10.49 1.126C21.74 20.8 22.271 18 20.62 14.982l-2.809-4.942z"></path></g></svg></span></span></button></div><span class="u-relative u-background js-actionMultirecommendCount u-marginLeft5"><button class="button button--chromeless u-baseColor--buttonNormal js-multirecommendCountButton" data-action="show-recommends" data-action-value="42d2c538db41">2.4K</button></span></div></li><li class="u-marginVertical10 u-marginLeft3"><button class="button button--large button--dark button--chromeless is-touchIconFadeInPulse u-baseColor--buttonDark button--withIcon button--withSvgIcon button--bookmark js-bookmarkButton" title="Bookmark this story to read later" aria-label="Bookmark this story to read later" data-action="sign-up-prompt" data-sign-in-action="add-to-bookmarks" data-requires-token="true" data-redirect="https://medium.com/_/bookmark/p/42d2c538db41" data-action-source="post_share_widget-----42d2c538db41---------------------bookmark_sidebar"><span class="button-defaultState"><span class="svgIcon svgIcon--bookmark svgIcon--29px"><svg class="svgIcon-use" width="29" height="29"><path d="M19.385 4h-9.77A2.623 2.623 0 0 0 7 6.615V23.01a1.022 1.022 0 0 0 1.595.847l5.905-4.004 5.905 4.004A1.022 1.022 0 0 0 22 23.011V6.62A2.625 2.625 0 0 0 19.385 4zM21 23l-5.91-3.955-.148-.107a.751.751 0 0 0-.884 0l-.147.107L8 23V6.615C8 5.725 8.725 5 9.615 5h9.77C20.275 5 21 5.725 21 6.615V23z" fill-rule="evenodd"></path></svg></span></span><span class="button-activeState"><span class="svgIcon svgIcon--bookmarkFilled svgIcon--29px"><svg class="svgIcon-use" width="29" height="29"><path d="M19.385 4h-9.77A2.623 2.623 0 0 0 7 6.615V23.01a1.022 1.022 0 0 0 1.595.847l5.905-4.004 5.905 4.004A1.022 1.022 0 0 0 22 23.011V6.62A2.625 2.625 0 0 0 19.385 4z" fill-rule="evenodd"></path></svg></span></span></button></li><li class="u-marginVertical10 u-marginLeft3"><a class="button button--dark button--chromeless u-baseColor--buttonDark button--withIcon button--withSvgIcon button--dark button--chromeless" href="https://web.archive.org/web/20190309201603/https://medium.com/p/42d2c538db41/share/twitter" title="Share on Twitter" aria-label="Share on Twitter" target="_blank" data-action-source="post_share_widget"><span class="button-defaultState"><span class="svgIcon svgIcon--twitterFilled svgIcon--29px"><svg class="svgIcon-use" width="29" height="29"><path d="M22.053 7.54a4.474 4.474 0 0 0-3.31-1.455 4.526 4.526 0 0 0-4.526 4.524c0 .35.04.7.082 1.05a12.9 12.9 0 0 1-9.3-4.77c-.39.69-.61 1.46-.65 2.26.03 1.6.83 2.99 2.02 3.79-.72-.02-1.41-.22-2.02-.57-.01.02-.01.04 0 .08-.01 2.17 1.55 4 3.63 4.44-.39.08-.79.13-1.21.16-.28-.03-.57-.05-.81-.08.54 1.77 2.21 3.08 4.2 3.15a9.564 9.564 0 0 1-5.66 1.94c-.34-.03-.7-.06-1.05-.08 2 1.27 4.38 2.02 6.94 2.02 8.31 0 12.86-6.9 12.84-12.85.02-.24.01-.43 0-.65.89-.62 1.65-1.42 2.26-2.34-.82.38-1.69.62-2.59.72a4.37 4.37 0 0 0 1.94-2.51c-.84.53-1.81.9-2.83 1.13z"></path></svg></span></span></a></li><li class="u-marginVertical10 u-marginLeft3"><a class="button button--dark button--chromeless u-baseColor--buttonDark button--withIcon button--withSvgIcon fbc-has-badge fbc-UID_2" href="https://web.archive.org/web/20190309201603/https://medium.com/p/42d2c538db41/share/facebook" title="Share on Facebook" aria-label="Share on Facebook" target="_blank" data-action-source="post_share_widget"><span class="button-defaultState"><span class="svgIcon svgIcon--facebookSquare svgIcon--29px"><svg class="svgIcon-use" width="29" height="29"><path d="M23.209 5H5.792A.792.792 0 0 0 5 5.791V23.21c0 .437.354.791.792.791h9.303v-7.125H12.72v-2.968h2.375v-2.375c0-2.455 1.553-3.662 3.741-3.662 1.049 0 1.95.078 2.213.112v2.565h-1.517c-1.192 0-1.469.567-1.469 1.397v1.963h2.969l-.594 2.968h-2.375L18.11 24h5.099a.791.791 0 0 0 .791-.791V5.79a.791.791 0 0 0-.791-.79"></path></svg></span></span></a></li></ul></div></aside><div class="u-fixed u-bottom0 u-width100pct u-backgroundWhite u-boxShadowTop u-borderBox u-paddingTop10 u-paddingBottom10 u-zIndexMetabar u-xs-paddingLeft10 u-xs-paddingRight10 js-stickyFooter"><div class="u-maxWidth700 u-marginAuto u-flexCenter"><div class="u-fontSize16 u-flex1 u-flexCenter"><div class="u-flex0 u-inlineBlock u-paddingRight20 u-xs-paddingRight10"><a class="link u-baseColor--link avatar u-inline" href="https://web.archive.org/web/20190309201603/https://medium.com/@jbackus" data-action="show-user-card" data-action-value="846ca283a13c" data-action-type="hover" data-user-id="846ca283a13c" dir="auto"><img src="Fat%20protocols%20aren't%20new%20%20What%20blockchain%20can%20learn%20from%20p2p%20file%20sharing_fichiers/1auamU74zd-cx2KkWV2D1kQ.jpeg" class="avatar-image avatar-image--smaller" alt="Go to the profile of John Backus"></a></div><div class="u-flex1 u-inlineBlock"><div class="u-xs-hide">Never miss a story from<strong> John Backus</strong>, when you sign up for Medium. <a class="link u-baseColor--link link--accent u-accentColor--textNormal u-accentColor--textDarken" href="https://web.archive.org/web/20190309201603/https://medium.com/@Medium/personalize-your-medium-experience-with-users-publications-tags-26a41ab1ee0c#.hx4zuv3mg" data-action-source="sticky_footer">Learn more</a></div><div class="u-xs-show">Never miss a story from<strong> John Backus</strong></div></div></div><div class="u-marginLeft50 u-xs-marginAuto"><span class="followState js-followState" data-user-id="846ca283a13c"><button class="button u-noUserSelect button--withChrome u-baseColor--buttonNormal button--withHover button--unblock js-unblockButton u-uiTextSemibold u-textUppercase u-fontSize12" data-action="sign-up-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-redirect="https://medium.com/@jbackus/fat-protocols-arent-new-42d2c538db41" data-action-source="sticky_footer"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary is-active u-noUserSelect button--withChrome u-accentColor--buttonNormal button--follow js-followButton u-uiTextSemibold u-textUppercase u-fontSize12" data-action="sign-up-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/846ca283a13c" data-action-source="sticky_footer-846ca283a13c-------------------------follow_metabar"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Get updates</span></button></span></div></div></div></div></div></div><div class="loadingBar"></div><script>// <![CDATA[
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_notification_duration":3,"browsable_stream_config_bucket":"curated-topics","enable_dedicated_series_tab_api_ios":true,"enable_post_import":true,"available_monthly_plan":"60e220181034","available_annual_plan":"2c754bcc2995","disable_ios_resume_reading_toast":true,"is_not_medium_subscriber":true,"glyph_font_set":"m2","enable_branding":true,"enable_branding_fonts":true,"enable_2019_march_meter_limit_update":true,"max_premium_content_per_user_under_metering":3,"enable_automated_mission_control_triggers":true,"enable_slot_machine_ui":true,"enable_top_stories_for_you":true,"enable_lite_profile":true,"enable_topic_lifecycle_email":true,"enable_marketing_emails":true,"enable_truncated_rss_for_tags_and_topics":true,"enable_parsely":true,"enable_branch_io":true,"enable_ios_post_stats":true,"enable_lite_topics":true,"enable_lite_stories":true,"redis_read_write_splitting":true,"enable_tipalti_onboarding":true,"enable_annual_renewal_reminder_email":true,"enable_janky_spam_rules":"users,posts","enable_new_collaborative_filtering_data":true,"android_rating_prompt_stories_read_threshold":2,"enable_smart_meter_with_incentive":true,"stripe_v3":true,"enable_google_one_tap":true,"enable_email_sign_in_captcha":true,"enable_primary_topic_for_mobile":true,"store_moc_depth_in_session":true,"enable_topic_expand_digest":true,"enable_february_meter_email_test":true,"enable_posts_sent_in_opened_email":true,"enable_fastrak_sticky_distro_option":true,"enable_post_page_paywall_alert":true},"xsrfToken":"","iosAppId":"828256236","supportEmail":"yourfriends@medium.com","fp":{"/icons/monogram-mask.svg":"https://web.archive.org/web/20190309201603/https://cdn-static-1.medium.com/_/fp/icons/monogram-mask.KPLCSFEZviQN0jQ7veN2RQ.svg","/icons/favicon-dev-editor.ico":"https://web.archive.org/web/20190309201603/https://cdn-static-1.medium.com/_/fp/icons/favicon-dev-editor.YKKRxBO8EMvIqhyCwIiJeQ.ico","/icons/favicon-hatch-editor.ico":"https://web.archive.org/web/20190309201603/https://cdn-static-1.medium.com/_/fp/icons/favicon-hatch-editor.BuEyHIqlyh2s_XEk4Rl32Q.ico","/icons/favicon-medium-editor.ico":"https://web.archive.org/web/20190309201603/https://cdn-static-1.medium.com/_/fp/icons/favicon-medium-editor.PiakrZWB7Yb80quUVQWM6g.ico"},"authBaseUrl":"https://web.archive.org/web/20190309201603/https://medium.com","imageUploadSizeMb":25,"isAuthDomainRequest":true,"algoliaApiEndpoint":"https://web.archive.org/web/20190309201603/https://mq57uuuqz2-dsn.algolia.net","algoliaAppId":"MQ57UUUQZ2","algoliaSearchOnlyApiKey":"394474ced050e3911ae2249ecc774921","iosAppStoreUrl":"https://web.archive.org/web/20190309201603/https://itunes.apple.com/app/medium-everyones-stories/id828256236?pt=698524&mt=8","iosAppLinkBaseUrl":"medium:","algoliaIndexPrefix":"medium_","androidPlayStoreUrl":"https://web.archive.org/web/20190309201603/https://play.google.com/store/apps/details?id=com.medium.reader","googleClientId":"216296035834-k1k6qe060s2tp2a2jam4ljdcms00sttg.apps.googleusercontent.com","androidPackage":"com.medium.reader","androidPlayStoreMarketScheme":"market://details?id=com.medium.reader","googleAuthUri":"https://web.archive.org/web/20190309201603/https://accounts.google.com/o/oauth2/auth","androidScheme":"medium","layoutData":{"useDynamicScripts":false,"googleAnalyticsTrackingCode":"UA-24232453-2","jsShivUrl":"https://web.archive.org/web/20190309201603/https://cdn-static-1.medium.com/_/fp/js/shiv.RI2ePTZ5gFmMgLzG5bEVAA.js","useDynamicCss":false,"faviconUrl":"https://web.archive.org/web/20190309201603/https://cdn-static-1.medium.com/_/fp/icons/favicon-rebrand-medium.3Y6xpZ-0FSdWDnPM3hSBIA.ico","faviconImageId":"1*8I-HPL0bfoIzGied-dzOvA.png","fontSets":[{"id":8,"url":"https://web.archive.org/web/20190309201603/https://glyph.medium.com/css/e/sr/latin/e/ssr/latin/e/ssb/latin/m2.css"},{"id":11,"url":"https://web.archive.org/web/20190309201603/https://glyph.medium.com/css/m2.css"},{"id":9,"url":"https://web.archive.org/web/20190309201603/https://glyph.medium.com/css/mkt.css"}],"editorFaviconUrl":"https://web.archive.org/web/20190309201603/https://cdn-static-1.medium.com/_/fp/icons/favicon-rebrand-medium-editor.3Y6xpZ-0FSdWDnPM3hSBIA.ico","glyphUrl":"https://web.archive.org/web/20190309201603/https://glyph.medium.com"},"authBaseUrlRev":"moc.muidem//:sptth","isDnt":false,"stripePublishableKey":"pk_live_7FReX44VnNIInZwrIIx6ghjl","archiveUploadSizeMb":100,"paymentData":{"currencies":{"1":{"label":"US Dollar","external":"usd"}},"countries":{"1":{"label":"United States of America","external":"US"}},"accountTypes":{"1":{"label":"Individual","external":"individual"},"2":{"label":"Company","external":"company"}}},"previewConfig2":{"weightThreshold":1,"weightImageParagraph":0.05,"raiseImage":true,"enforceHeaderHierarchy":true,"isImageInsetRight":true},"isAmp":false,"iosScheme":"medium","isSwBoot":false,"lightstep":{"accessToken":"ce5be895bef60919541332990ac9fef2","carrier":"{\"ot-tracer-spanid\":\"333d8bcc0c6c55ac\",\"ot-tracer-traceid\":\"191118a250bc27db\",\"ot-tracer-sampled\":\"true\"}","host":"collector-medium.lightstep.com"},"facebook":{"key":"542599432471018","namespace":"medium-com","scope":{"default":["public_profile","email"],"connect":["public_profile","email"],"login":["public_profile","email"],"share":["public_profile","email"]}},"editorsPicksTopicId":"3985d2a191c5","popularOnMediumTopicId":"9d34e48ecf94","memberContentTopicId":"13d7efd82fb2","audioContentTopicId":"3792abbd134","brandedSequenceId":"7d337ddf1941","isDoNotAuth":false,"goldfinchUrl":"https://web.archive.org/web/20190309201603/https://goldfinch.medium.com","buggle":{"url":"https://web.archive.org/web/20190309201603/https://buggle.medium.com","videoUrl":"https://web.archive.org/web/20190309201603/https://cdn-videos-1.medium.com","audioUrl":"https://web.archive.org/web/20190309201603/https://cdn-audio-1.medium.com"},"referrerType":5,"isMeteredOut":false,"meterConfig":{"maxUnlockCount":3,"windowLength":"MONTHLY"},"partnerProgramEmail":"partnerprogram@medium.com","userResearchPrompts":[{"promptId":"lo_post_page_4","type":0,"url":"www.calendly.com"},{"promptId":"lo_home_page","type":1,"url":"www.calendly.com"},{"promptId":"lo_profile_page","type":2,"url":"www.calendly.com"}],"recaptchaKey":"6LdAokEUAAAAAC7seICd4vtC8chDb3jIXDQulyUJ","signinWallCustomDomainCollectionIds":["3a8144eabfe3","336d898217ee","61061eb0c96b","138adf9c44c","819cc2aaeee0"],"countryCode":"US","bypassMeter":false,"branchKey":"key_live_ofxXr2qTrrU9NqURK8ZwEhknBxiI6KBm","paypal":{"clientMode":"production","oneYearGift":{"name":"Medium Membership (1 Year, Digital Gift Code)","description":"Unlimited access to the best and brightest stories on Medium. Gift codes can be redeemed at medium.com/redeem.","price":"50.00","currency":"USD","sku":"membership-gift-1-yr"}},"collectionConfig":{"mediumOwnedAndOperatedCollectionIds":["544c7006046e // Human Parts","bcc38c8f6edf // Matter","444d13b52878 // OneZero"]}}
// ]]></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-protocols","title":"","rel":"","anchorType":0},{"type":1,"start":0,"end":14}]},{"name":"e783","type":1,"text":"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 Gnutella network! There was also FrostWire, LimeWire Pirate Edition, and WireShare which were forks of Limewires client.","markups":[{"type":3,"start":223,"end":239,"href":"https://web.archive.org/web/20190309201603/https://en.wikipedia.org/wiki/Gnutella#Software","title":"","rel":"","anchorType":0}]},{"name":"9654","type":1,"text":"Im not going to do the same song and dance here listing a dozen clients for FastTrack and eDonkey, but I could. 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.","markups":[{"type":3,"start":104,"end":111,"href":"https://web.archive.org/web/20190309201603/https://en.wikipedia.org/wiki/Comparison_of_file-sharing_applications","title":"","rel":"","anchorType":0}]},{"name":"8a2c","type":13,"text":"Features","markups":[]},{"name":"80db","type":1,"text":"People didnt all just build near identical clients of course. Different companies competed to build clients to the Gnutella protocol that served different needs. BearShare 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.","markups":[{"type":3,"start":163,"end":172,"href":"https://web.archive.org/web/20190309201603/https://web.archive.org/web/20060506100842/http://www.bearshare.com:80/screens.htm","title":"","rel":"","anchorType":0}]},{"name":"d717","type":4,"text":"BearShare provided a full featured experience","markups":[],"layout":3,"metadata":{"id":"1*t6AtV08AHSICL9RqCupFWg.png","originalWidth":1440,"originalHeight":489}},{"name":"205a","type":13,"text":"Quality","markups":[]},{"name":"240a","type":1,"text":"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 eMule which many viewed as having a better user interface!","markups":[{"type":3,"start":207,"end":212,"href":"https://web.archive.org/web/20190309201603/https://www.emule-project.net/home/perl/general.cgi?l=1","title":"","rel":"","anchorType":0}]},{"name":"8256","type":4,"text":"Which would you rather use?","markups":[],"layout":3,"metadata":{"id":"1*F2ELrQYhN76if54q8nUU4Q.png","originalWidth":2437,"originalHeight":850}},{"name":"fdf2","type":13,"text":"Generalization","markups":[]},{"name":"7dd2","type":1,"text":"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.","markups":[]},{"name":"c974","type":1,"text":"Shareaza became popular by supporting every file sharing protocol under the sun:","markups":[{"type":3,"start":0,"end":8,"href":"https://web.archive.org/web/20190309201603/https://en.wikipedia.org/wiki/Shareaza","title":"","rel":"","anchorType":0}]},{"name":"a4be","type":6,"text":"Shareaza … 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","markups":[]},{"name":"6996","type":4,"text":"Shareaza searches everything","markups":[{"type":1,"start":18,"end":28}],"layout":1,"metadata":{"id":"0*kfMN1a1VEBRWGg3a.png","originalWidth":1152,"originalHeight":720}},{"name":"1949","type":13,"text":"Abstraction","markups":[]},{"name":"c95d","type":1,"text":"The giFT project 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:","markups":[{"type":3,"start":0,"end":16,"href":"https://web.archive.org/web/20190309201603/https://en.wikipedia.org/wiki/GiFT","title":"","rel":"","anchorType":0}]},{"name":"379b","type":4,"text":"Two totally different frontends (GiFTcurs and Apollon) using giFT on the backend","markups":[],"layout":3,"metadata":{"id":"1*7zWVwivbkOB-4RQZIeM00A.png","originalWidth":1526,"originalHeight":498}},{"name":"cb77","type":1,"text":"giFT supported most protocols and was compatible with Windows, Linux, and Mac.","markups":[]},{"name":"0f85","type":1,"text":"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 are not similar to third party Twitter clients; these clients can do anything the protocol supports and the protocol creators cant stop them.","markups":[{"type":2,"start":274,"end":282}]},{"name":"89d3","type":1,"text":"A potential takeaway here is that fat protocols split product/market fit into two distinct parts:","markups":[{"type":3,"start":54,"end":72,"href":"https://web.archive.org/web/20190309201603/https://en.wikipedia.org/wiki/Product/market_fit","title":"","rel":"","anchorType":0},{"type":1,"start":34,"end":96}]},{"name":"bc5b","type":10,"text":"Protocol/market fit: is the protocol powerful and general enough to let applications give users a good experience?","markups":[{"type":1,"start":0,"end":21}]},{"name":"6334","type":10,"text":"Application/consumer fit: does the application optimize how the end user wants to use the protocol?","markups":[{"type":1,"start":0,"end":25}]},{"name":"5f22","type":1,"text":"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.","markups":[]},{"name":"e6bb","type":1,"text":"Competitors dont have to totally reenvision the frontend, they can just subtract annoying things like ads; that is what Kazaa Lite, Frostwire, WireShare, 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 GreedyTorrent both help you lie to the network about how much youve uploaded.","markups":[{"type":3,"start":121,"end":131,"href":"https://web.archive.org/web/20190309201603/https://en.wikipedia.org/wiki/Kazaa_Lite","title":"","rel":"","anchorType":0},{"type":3,"start":133,"end":142,"href":"https://web.archive.org/web/20190309201603/https://en.wikipedia.org/wiki/FrostWire","title":"","rel":"","anchorType":0},{"type":3,"start":144,"end":153,"href":"https://web.archive.org/web/20190309201603/https://en.wikipedia.org/wiki/WireShare","title":"","rel":"","anchorType":0},{"type":3,"start":395,"end":408,"href":"https://web.archive.org/web/20190309201603/http://www.greedytorrent.com/","title":"","rel":"","anchorType":0}]},{"name":"2ab8","type":1,"text":"A core tenet of the Y Combinator playbook for startups is to talk to your users. 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.","markups":[{"type":3,"start":61,"end":79,"href":"https://web.archive.org/web/20190309201603/http://playbook.samaltman.com/#idea","title":"","rel":"","anchorType":0}]},{"name":"9090","type":3,"text":"Are thin applications less valuable?","markups":[]},{"name":"df8b","type":6,"text":"This relationship between protocols and applications is reversed in the blockchain application stack. Value concentrates at the shared protocol layer and only a fraction of that value is distributed along at the applications layer.","markups":[{"type":1,"start":102,"end":149},{"type":1,"start":161,"end":230}]},{"name":"66ba","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-protocols","title":"","rel":"noopener","anchorType":0},{"type":1,"start":0,"end":14}]},{"name":"6f38","type":1,"text":"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 quickly resulted in competitive forks of the apps without these nuisances. 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.","markups":[{"type":1,"start":269,"end":342}]},{"name":"021a","type":13,"text":"People dont care about protocols","markups":[]},{"name":"fb0c","type":1,"text":"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.","markups":[]},{"name":"eed6","type":1,"text":"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.","markups":[]},{"name":"9971","type":13,"text":"Parallel lean startups","markups":[]},{"name":"2cab","type":1,"text":"The lean startup methodology 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. Steve Blank formalizes startup iteration with this loop:","markups":[{"type":3,"start":4,"end":28,"href":"https://web.archive.org/web/20190309201603/http://theleanstartup.com/principles#eliminate_uncertainty","title":"","rel":"","anchorType":0},{"type":3,"start":226,"end":266,"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/","title":"","rel":"","anchorType":0}]},{"name":"7ae8","type":4,"text":"Lean startup iteration cycle","markups":[],"layout":1,"metadata":{"id":"0*d0KkuFuuGTBHYeH-.jpg","originalWidth":362,"originalHeight":334}},{"name":"cc4a","type":1,"text":"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 traditional companies may be inherently serial while finding application/consumer fit may be embarrassingly parallel.","markups":[{"type":3,"start":314,"end":331,"href":"https://web.archive.org/web/20190309201603/https://en.wikipedia.org/wiki/Parallel_algorithm#Parallelizability","title":"","rel":"","anchorType":0},{"type":3,"start":378,"end":401,"href":"https://web.archive.org/web/20190309201603/https://en.wikipedia.org/wiki/Embarrassingly_parallel","title":"","rel":"","anchorType":0},{"type":1,"start":285,"end":331},{"type":1,"start":338,"end":401}]},{"name":"aa75","type":13,"text":"Specialization","markups":[]},{"name":"a7ec","type":1,"text":"While fat protocols generalize over a concept like sharing files, thin applications can specialize as much as they want. BitTorrent is for anything, but PopcornTime specializes in streaming movies:","markups":[{"type":3,"start":153,"end":164,"href":"https://web.archive.org/web/20190309201603/https://popcorntime.sh/","title":"","rel":"","anchorType":0}]},{"name":"8f10","type":4,"text":"","markups":[],"layout":1,"metadata":{"id":"1*JfLme1gFhyw9sF6QCwFmvA.gif","originalWidth":800,"originalHeight":520}},{"name":"c789","type":1,"text":"The most private torrent community in the world exclusively shares copyrighted magic tricks. eDonkey network clients specialized around video because the eDonkey protocol was really good at dealing with big files.","markups":[{"type":3,"start":48,"end":91,"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","title":"","rel":"","anchorType":0}]},{"name":"c3cd","type":1,"text":"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.","markups":[]},{"name":"f8dc","type":3,"text":"Protocol improvements","markups":[]},{"name":"63a7","type":6,"text":"the evolution of these protocols will be governed by the decision of those who have adopted it to adopt a future version. This has the potential to provide a much more democratic process for changing protocols over time than the historic committee process.","markups":[{"type":1,"start":4,"end":32},{"type":1,"start":69,"end":94},{"type":1,"start":163,"end":219}]},{"name":"1ea0","type":6,"text":"Crypto Tokens and the Coming Age of Protocol Innovation by Albert Wenger","markups":[{"type":3,"start":0,"end":72,"href":"https://web.archive.org/web/20190309201603/https://continuations.com/post/148098927445/crypto-tokens-and-the-coming-age-of-protocol","title":"","rel":"noopener","anchorType":0},{"type":1,"start":0,"end":55}]},{"name":"2507","type":1,"text":"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.","markups":[]},{"name":"7715","type":13,"text":"eMule vs eDonkey","markups":[]},{"name":"4124","type":1,"text":"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.","markups":[]},{"name":"478a","type":1,"text":"To push the eDonkey universe closer to pure decentralization, the creators of the protocol released Overnet. Overnet was a proprietary protocol storing all file and peer information in distributed hash tables using a protocol called Kademlia.","markups":[{"type":3,"start":100,"end":107,"href":"https://web.archive.org/web/20190309201603/https://en.wikipedia.org/wiki/Overnet","title":"","rel":"","anchorType":0},{"type":3,"start":233,"end":241,"href":"https://web.archive.org/web/20190309201603/https://en.wikipedia.org/wiki/Kademlia","title":"","rel":"","anchorType":0}]},{"name":"b3b0","type":1,"text":"In response, the eMule community launched the Kad Network, 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.","markups":[{"type":3,"start":46,"end":57,"href":"https://web.archive.org/web/20190309201603/https://en.wikipedia.org/wiki/Kad_network","title":"","rel":"","anchorType":0}]},{"name":"f23e","type":1,"text":"Separate from the Kad network, eMule introduced a credit system to try to incentivize users to share more.","markups":[{"type":3,"start":31,"end":63,"href":"https://web.archive.org/web/20190309201603/https://en.wikipedia.org/wiki/EMule#Credit_system","title":"","rel":"","anchorType":0}]},{"name":"db17","type":13,"text":"Community development","markups":[]},{"name":"2c6c","type":1,"text":"Gnutella was created at AOL and it was never actually open sourced. AOL killed the Gnutella client 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.","markups":[{"type":3,"start":72,"end":98,"href":"https://web.archive.org/web/20190309201603/https://en.wikipedia.org/wiki/Gnutella#History","title":"","rel":"","anchorType":0}]},{"name":"86c0","type":1,"text":"The Gnutella protocol evolved. If you look at the draft for v0.6, Limewire and BearShare (“Free Peers”) contributed a lot of new features to the protocol and the community generally worked together to create the spec.","markups":[{"type":3,"start":46,"end":64,"href":"https://web.archive.org/web/20190309201603/http://rfc-gnutella.sourceforge.net/src/rfc-0_6-draft.html","title":"","rel":"","anchorType":0}]},{"name":"e130","type":1,"text":"When a lone developer created a new protocol, called it Gnutella2, and tried to push it on the Gnutella development community, people freaked out:","markups":[{"type":3,"start":127,"end":145,"href":"https://web.archive.org/web/20190309201603/https://groups.yahoo.com/neo/groups/the_gdf/conversations/topics/13930","title":"","rel":"","anchorType":0}]},{"name":"ee7a","type":4,"text":"Creator of BearShare flaming creators of Gnutella2","markups":[],"layout":1,"metadata":{"id":"1*99XUCx7eHmEEEKx2f7Rujw.png","originalWidth":1496,"originalHeight":533}},{"name":"c61d","type":1,"text":"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 “Mikes Protocol.” Not as many clients adopted Gnutella2.","markups":[{"type":3,"start":166,"end":184,"href":"https://web.archive.org/web/20190309201603/https://groups.yahoo.com/neo/groups/the_gdf/conversations/topics/11933","title":"","rel":"","anchorType":0}]},{"name":"00be","type":1,"text":"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 BitTorrent Enhancement Proposals (BEP) just like Bitcoin has Bitcoin Improvement Proposals (BIP).","markups":[{"type":3,"start":321,"end":353,"href":"https://web.archive.org/web/20190309201603/http://www.bittorrent.org/beps/bep_0000.html","title":"","rel":"","anchorType":0}]},{"name":"f161","type":1,"text":"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.","markups":[]},{"name":"2a20","type":1,"text":"eDonkeys protocols were proprietary which is likely why eMule didnt adopt Overnet. Gnutella2 was developed by the creator of Shareaza, the client which implemented every 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:","markups":[{"type":2,"start":166,"end":171}]},{"name":"ac1c","type":9,"text":"Protocols seem to evolve democratically in civil communities (Gnutella 0.6, BitTorrent)","markups":[]},{"name":"1cee","type":9,"text":"Protocols seem to fork when relationships feel adversarial (Gnutella2, Kad Network)","markups":[]},{"name":"495b","type":3,"text":"Incentivizing adoption","markups":[]},{"name":"aa3e","type":6,"text":"… an open network and a shared data layer alone are not enough of an incentive to promote adoption. The second component, the protocol token 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) fills that gap.","markups":[{"type":1,"start":0,"end":99},{"type":1,"start":122,"end":140},{"type":1,"start":334,"end":348}]},{"name":"162f","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-protocols","title":"","rel":"noopener","anchorType":0},{"type":1,"start":0,"end":14}]},{"name":"0217","type":1,"text":"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:","markups":[]},{"name":"04c4","type":9,"text":"What did adoption look like?","markups":[]},{"name":"e22f","type":9,"text":"Would a token have made sense?","markups":[]},{"name":"03fc","type":9,"text":"Did people talk about adding tokens?","markups":[]},{"name":"aff7","type":9,"text":"Did people actually try to add tokens to p2p protocols?","markups":[]},{"name":"135c","type":1,"text":"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.","markups":[]},{"name":"68b4","type":13,"text":"People LOVE free stuff","markups":[{"type":2,"start":7,"end":22}]},{"name":"afaf","type":1,"text":"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:","markups":[]},{"name":"ba24","type":4,"text":"P2P growth from 2003 to 2006","markups":[],"layout":1,"metadata":{"id":"1*-L0eIanZKH1AJSvZv9ZtiA.png","originalWidth":1926,"originalHeight":1118}},{"name":"161c","type":1,"text":"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.","markups":[]},{"name":"17fe","type":13,"text":"Free Riders","markups":[]},{"name":"1e89","type":1,"text":"A lot of file sharing systems have free rider problems. Most people download what they want and offer up nothing in return. From the widely cited paper “Free Riding on Gnutella”:","markups":[{"type":3,"start":35,"end":54,"href":"https://web.archive.org/web/20190309201603/https://en.wikipedia.org/wiki/Free-rider_problem","title":"","rel":"","anchorType":0},{"type":3,"start":152,"end":177,"href":"https://web.archive.org/web/20190309201603/http://www.hpl.hp.com/research/idl/papers/gnutella/gnutella.pdf","title":"","rel":"","anchorType":0}]},{"name":"b533","type":6,"text":"we found that nearly 70% of Gnutella users share no files, and nearly 50% of all responses are returned by the top 1% of sharing hosts.","markups":[{"type":1,"start":14,"end":57},{"type":1,"start":63,"end":134}]},{"name":"c9d8","type":1,"text":"So by default everyone wants to download but no one wants to share. This manifests in a few ways:","markups":[]},{"name":"afab","type":9,"text":"Most users dont share their own files with the network","markups":[]},{"name":"1e01","type":9,"text":"Among those that do share files, many of them dont share desirable files","markups":[{"type":2,"start":58,"end":68}]},{"name":"1722","type":9,"text":"Most users download a file and then close their client. Ideally, they would then help other users download files","markups":[]},{"name":"a316","type":13,"text":"Bad Files","markups":[]},{"name":"79e8","type":1,"text":"File sharing protocols had a major problem with people sharing bad files. From the widely cited paper “The EigenTrust Algorithm for Reputation Management in P2P Networks”:","markups":[{"type":3,"start":102,"end":170,"href":"https://web.archive.org/web/20190309201603/http://ilpubs.stanford.edu:8090/562/1/2002-56.pdf","title":"","rel":"","anchorType":0}]},{"name":"72cf","type":6,"text":"Attacks by anonymous malicious peers have been observed on todays popular peer-to-peer networks. For example, malicious users have used these networks to introduce viruses such as the VBS.Gnutella 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 .vbs files. Far more common have been inauthentic file attacks, wherein malicious peers respond to virtually any query providing “decoy files” that are tampered with or do not work","markups":[{"type":10,"start":185,"end":197},{"type":10,"start":342,"end":346},{"type":1,"start":111,"end":126},{"type":1,"start":155,"end":172},{"type":1,"start":380,"end":404}]},{"name":"14e1","type":1,"text":"The book “Peer-to-Peer Systems and Applications” cites this problem as a reason for Kazaa dropping in usage:","markups":[{"type":3,"start":9,"end":48,"href":"https://web.archive.org/web/20190309201603/https://www.springer.com/us/book/9783540291923","title":"","rel":"","anchorType":0},{"type":3,"start":73,"end":107,"href":"https://web.archive.org/web/20190309201603/https://goo.gl/jGzN74","title":"","rel":"","anchorType":0}]},{"name":"5a4d","type":6,"text":"in Kazaa, the amount of hardly identifiable corrupted content increased significantly due to the weakness of the used hashing algorithm (UUHASH). Thus users switched to applications like Gnutella or eDonkey, where the number of corrupted files was significantly smaller.","markups":[{"type":1,"start":10,"end":85},{"type":1,"start":151,"end":206}]},{"name":"a4ab","type":4,"text":"Drop in FastTrack (Kazaa) volume","markups":[],"layout":1,"metadata":{"id":"1*nkJzp-1z8u_GN83hsAZsOg.png","originalWidth":575,"originalHeight":559}},{"name":"9fc9","type":13,"text":"Bartering with Bandwidth","markups":[]},{"name":"8887","type":1,"text":"BitTorrent does a surprising amount of game theory under the hood. 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 “chokes” them. This tit-for-tat mechanism maximizes download speeds when a torrent is new and there are more downloaders than seeders.","markups":[{"type":3,"start":39,"end":65,"href":"https://web.archive.org/web/20190309201603/http://www.bittorrent.org/bittorrentecon.pdf#page=4","title":"","rel":"noopener","anchorType":0},{"type":3,"start":239,"end":247,"href":"https://web.archive.org/web/20190309201603/https://en.wikipedia.org/wiki/Glossary_of_BitTorrent_terms#Choked","title":"","rel":"noopener","anchorType":0},{"type":3,"start":281,"end":328,"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","title":"","rel":"noopener","anchorType":0}]},{"name":"686a","type":1,"text":"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.","markups":[]},{"name":"ae96","type":1,"text":"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.","markups":[]},{"name":"c03f","type":13,"text":"Kazaa participation level","markups":[]},{"name":"a855","type":1,"text":"Kazaa added a naive reputation system (“participation level”) based on how much you gave back to the network. If you shared more, your downloads were faster! They also let people give “integrity ratings” to files they downloaded which would also enhance the uploading users participation level. People figured out they could just modify their client and trick the network though, so it didnt last for long.","markups":[{"type":3,"start":20,"end":61,"href":"https://web.archive.org/web/20190309201603/https://web.archive.org/web/20040609210104/http://www.kazaa.com:80/us/help/glossary/participation_ratio.htm","title":"","rel":"","anchorType":0},{"type":3,"start":184,"end":203,"href":"https://web.archive.org/web/20190309201603/https://web.archive.org/web/20040630221840/http://www.kazaa.com:80/us/help/glossary/ratings.htm","title":"","rel":"","anchorType":0},{"type":3,"start":315,"end":372,"href":"https://web.archive.org/web/20190309201603/https://en.wikipedia.org/wiki/Kazaa_Lite#K++","title":"","rel":"","anchorType":0}]},{"name":"cf8f","type":13,"text":"Share or else","markups":[]},{"name":"4f7b","type":1,"text":"Private BitTorrent trackers usually enforce a seeding ratio and ban you if you dont uphold it:","markups":[]},{"name":"c293","type":4,"text":"Ratio rules for BitMeTV","markups":[{"type":3,"start":16,"end":23,"href":"https://web.archive.org/web/20190309201603/http://www.bitmetv.org/","title":"","rel":"","anchorType":0}],"layout":1,"metadata":{"id":"1*h_rldH4SVdhx7hWxfi8h5Q.png","originalWidth":1736,"originalHeight":380}},{"name":"847e","type":1,"text":"This works decently well as a mechanism and even encourages some users to buy seedboxes so they can get a good ratio.","markups":[{"type":3,"start":78,"end":87,"href":"https://web.archive.org/web/20190309201603/https://en.wikipedia.org/wiki/Seedbox","title":"","rel":"","anchorType":0}]},{"name":"a4b9","type":13,"text":"Decentralized trust","markups":[]},{"name":"1553","type":1,"text":"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.","markups":[]},{"name":"4c57","type":13,"text":"Credits","markups":[]},{"name":"1a89","type":1,"text":"Kazaa introduced “peer points” 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.","markups":[{"type":3,"start":17,"end":30,"href":"https://web.archive.org/web/20190309201603/https://youtu.be/QLQKzSE4atc","title":"","rel":"noopener","anchorType":0}]},{"name":"79fc","type":4,"text":"","markups":[],"layout":1,"metadata":{"id":"1*Z0h06_v3HZnNS-GDoYMQOg.png","originalWidth":316,"originalHeight":238}},{"name":"0fd0","type":1,"text":"eMule created a credit system 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.","markups":[{"type":3,"start":16,"end":29,"href":"https://web.archive.org/web/20190309201603/http://www.emule-project.net/home/perl/help.cgi?l=1&rm=show_topic&topic_id=134","title":"","rel":"noopener","anchorType":0}]},{"name":"de6f","type":1,"text":"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. Swift proposed a system for tracking upload and downloads among peers and only uploading to peers with positive ratios. In the theoretical Karma 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.","markups":[{"type":3,"start":180,"end":185,"href":"https://web.archive.org/web/20190309201603/https://ng.gnunet.org/sites/default/files/P2PEcon'04%20-%20SWIFT.pdf","title":"","rel":"","anchorType":0},{"type":3,"start":319,"end":324,"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","title":"","rel":"","anchorType":0}]},{"name":"e4c9","type":13,"text":"Tokens in theory","markups":[]},{"name":"456f","type":4,"text":"Categorization of “accounting options” for p2p networks","markups":[],"layout":1,"metadata":{"id":"1*4K_auTXt3YgaJrkjGaXl8w.png","originalWidth":900,"originalHeight":685}},{"name":"67b1","type":1,"text":"There is a large body of research around adding markets to p2p networks. If youre interested, read up on PPay, PeerMint, Karma, MMAPPS, and PeerMart.","markups":[{"type":3,"start":106,"end":110,"href":"https://web.archive.org/web/20190309201603/https://www.cs.cornell.edu/people/egs/714-spring05/ppay.pdf","title":"","rel":"noopener","anchorType":0},{"type":3,"start":112,"end":120,"href":"https://web.archive.org/web/20190309201603/https://sci-hub.tw/https://link.springer.com/chapter/10.1007/11422778_4#enumeration","title":"","rel":"noopener","anchorType":0},{"type":3,"start":122,"end":127,"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","title":"","rel":"noopener","anchorType":0},{"type":3,"start":129,"end":135,"href":"https://web.archive.org/web/20190309201603/https://cordis.europa.eu/project/rcn/61509_en.html","title":"","rel":"noopener","anchorType":0},{"type":3,"start":141,"end":149,"href":"https://web.archive.org/web/20190309201603/https://sci-hub.tw/https://ieeexplore.ieee.org/document/1494610/","title":"","rel":"noopener","anchorType":0}]},{"name":"4280","type":1,"text":"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.","markups":[]},{"name":"c3ee","type":13,"text":"Tokens in practice","markups":[]},{"name":"1d2f","type":1,"text":"In 2000, Jim McCoy, Zooko Wilcox (founder of Zcash), and Bram Cohen (eventual creator of BitTorrent) created a protocol called MojoNation. Quoting their old website:","markups":[{"type":3,"start":20,"end":32,"href":"https://web.archive.org/web/20190309201603/https://twitter.com/zooko","title":"","rel":"","anchorType":0},{"type":3,"start":57,"end":67,"href":"https://web.archive.org/web/20190309201603/https://twitter.com/bramcohen","title":"","rel":"","anchorType":0},{"type":3,"start":127,"end":137,"href":"https://web.archive.org/web/20190309201603/https://web.archive.org/web/20011128084421/http://mojonation.net:80/","title":"","rel":"","anchorType":0}]},{"name":"2752","type":6,"text":"Mojo Nation combines the flexibility of the marketplace with a secure “swarm distribution” mechanism to go far beyond any current filesharing system — providing high-speed downloads that run from multiple peers in parallel.","markups":[{"type":1,"start":25,"end":55},{"type":1,"start":70,"end":100}]},{"name":"6d3d","type":1,"text":"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 from his Defcon talk:","markups":[{"type":3,"start":192,"end":212,"href":"https://web.archive.org/web/20190309201603/https://www.youtube.com/watch?v=r76WIdqjw4s&t=13s","title":"","rel":"","anchorType":0}]},{"name":"52d1","type":6,"text":"In this system, you all end up paying. With MojoNation, we keep score. We say that we will create a currency, “digital coins”, that are denominated in computational resources. So every unit of this currency we call “Mojo” represents a floating basket of goods: CPU time, disk space, bandwidth; its merely a means for people to say “my particular resource is worth X, yours is worth Y, lets trade.”","markups":[{"type":1,"start":83,"end":174},{"type":1,"start":215,"end":292}]},{"name":"31ba","type":6,"text":"Mojo Nation: Building a next generation distributed data service","markups":[{"type":3,"start":0,"end":64,"href":"https://web.archive.org/web/20190309201603/https://www.youtube.com/watch?v=r76WIdqjw4s&t=20s","title":"","rel":"","anchorType":0},{"type":1,"start":0,"end":64}]},{"name":"8823","type":1,"text":"At the time of the Defcon talk, they even explicitly talked about being able to buy and sell Mojo with real money!","markups":[]},{"name":"b2a0","type":6,"text":"How do you get the real money in and out of the system? … we will perform that function and others can perform that function. A digital coin is a number, you can go sell it on eBay if you want it. Clear with PayPal, we dont care. We will be a market maker in the currency which means that if no one else will buy or sell your Mojo, we will.","markups":[{"type":1,"start":19,"end":54},{"type":1,"start":162,"end":180},{"type":1,"start":231,"end":272}]},{"name":"ff6c","type":6,"text":"Mojo Nation: Building a next generation distributed data service","markups":[{"type":3,"start":0,"end":64,"href":"https://web.archive.org/web/20190309201603/https://www.youtube.com/watch?v=r76WIdqjw4s&t=16m30s","title":"","rel":"","anchorType":0},{"type":1,"start":0,"end":64}]},{"name":"619e","type":1,"text":"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 Nick Szabo, Zooko, and (probably) Jim McCoy: comments on “Unenumerated: Nanobarter.” While the whole conversation is interesting, this comment stands out a bit:","markups":[{"type":3,"start":287,"end":297,"href":"https://web.archive.org/web/20190309201603/https://twitter.com/NickSzabo4?ref_src=twsrc%5Egoogle%7Ctwcamp%5Eserp%7Ctwgr%5Eauthor","title":"","rel":"","anchorType":0},{"type":3,"start":299,"end":304,"href":"https://web.archive.org/web/20190309201603/https://twitter.com/zooko","title":"","rel":"","anchorType":0},{"type":3,"start":332,"end":371,"href":"https://web.archive.org/web/20190309201603/http://unenumerated.blogspot.com/2007/06/nanobarter.html?showComment=1181708460000#c2518193502558600657","title":"","rel":"","anchorType":0},{"type":2,"start":331,"end":372}]},{"name":"ae55","type":6,"text":"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.","markups":[]},{"name":"65ac","type":1,"text":"Reading Zookos post-mortem 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.","markups":[{"type":3,"start":8,"end":27,"href":"https://web.archive.org/web/20190309201603/http://www.cs.kent.edu/~javed/class-FP2P10S/papers-2006/mojonation.pdf","title":"","rel":"","anchorType":0}]},{"name":"3815","type":1,"text":"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.","markups":[]},{"name":"efc9","type":1,"text":"The resolution of the file sharing wars, in terms of market mechanisms, seems like a case of “worse is better” 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.","markups":[{"type":3,"start":93,"end":110,"href":"https://web.archive.org/web/20190309201603/https://www.jwz.org/doc/worse-is-better.html","title":"","rel":"","anchorType":0}]},{"name":"eeaf","type":1,"text":"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 despite the market mechanisms not being solved.","markups":[{"type":1,"start":392,"end":399}]},{"name":"7cca","type":1,"text":"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. It is legitimately harder to add a full on marketplace to a technology compared to solving the incentive problem for a targeted use case.","markups":[{"type":1,"start":271,"end":296}]},{"name":"0690","type":1,"text":"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.","markups":[]},{"name":"8d73","type":1,"text":"If you liked this post, follow me on twitter. Ill be writing more on p2p and blockchain.","markups":[{"type":3,"start":24,"end":44,"href":"https://web.archive.org/web/20190309201603/https://twitter.com/backus","title":"","rel":"","anchorType":0},{"type":2,"start":0,"end":89}]},{"name":"4b9b","type":4,"text":"","markups":[],"layout":1,"metadata":{"id":"1*WDf1MmV_gJgmfpi3ue4G4g.png","originalWidth":959,"originalHeight":720,"isFeatured":true}},{"name":"c5af","type":1,"text":"Thanks to Alain Meier, Devon Zuegel, Brandon Arvanaghi, Ryan Hoover, Andy Bromberg, and Daniel Gollahon for reading early drafts of this post.","markups":[{"type":3,"start":10,"end":21,"href":"https://web.archive.org/web/20190309201603/https://twitter.com/alain","title":"","rel":"","anchorType":0},{"type":3,"start":23,"end":35,"href":"https://web.archive.org/web/20190309201603/https://twitter.com/devonzuegel","title":"","rel":"","anchorType":0},{"type":3,"start":37,"end":54,"href":"https://web.archive.org/web/20190309201603/https://twitter.com/arvanaghi","title":"","rel":"","anchorType":0},{"type":3,"start":56,"end":67,"href":"https://web.archive.org/web/20190309201603/https://twitter.com/rrhoover","title":"","rel":"","anchorType":0},{"type":3,"start":69,"end":82,"href":"https://web.archive.org/web/20190309201603/https://twitter.com/andy_bromberg","title":"","rel":"","anchorType":0},{"type":3,"start":88,"end":103,"href":"https://web.archive.org/web/20190309201603/https://twitter.com/danielgollahon","title":"","rel":"","anchorType":0},{"type":2,"start":0,"end":142}]}],"sections":[{"name":"cd8d","startIndex":0},{"name":"6e5e","startIndex":29},{"name":"b86a","startIndex":67},{"name":"d5f2","startIndex":131}]},"postDisplay":{"coverless":true},"metaDescription":"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."},"virtuals":{"allowNotes":true,"previewImage":{"imageId":"1*WDf1MmV_gJgmfpi3ue4G4g.png","filter":"","backgroundSize":"","originalWidth":959,"originalHeight":720,"strategy":"resample","height":0,"width":0},"wordCount":3833,"imageCount":14,"readingTime":15.914150943396226,"subtitle":"Limewire and Kazaa were backed by fat protocols. They can teach us a lot about competition and the value of crypto tokens","usersBySocialRecommends":[],"noIndex":false,"recommends":295,"socialRecommends":[],"isBookmarked":false,"tags":[{"slug":"blockchain","name":"Blockchain","postCount":306539,"metadata":{"postCount":306539,"coverImage":{"id":"1*1fBe9aeINWvqYzFttC_kIQ.png","originalWidth":3087,"originalHeight":1737,"isFeatured":true}},"type":"Tag"},{"slug":"crypto","name":"Crypto","postCount":45641,"metadata":{"postCount":45641,"coverImage":{"id":"1*W_3BxMaQ_WIVh53fm7BXlg.png","originalWidth":2000,"originalHeight":666,"isFeatured":true}},"type":"Tag"},{"slug":"crypto-tokens","name":"Crypto Tokens","postCount":670,"metadata":{"postCount":670,"coverImage":{"id":"1*ppJuJ1TcHgRNFDZky3WUGQ.jpeg","originalWidth":6000,"originalHeight":4000,"isFeatured":true}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":10,"links":{"entries":[{"url":"https://web.archive.org/web/20190309201603/http://theleanstartup.com/principles#eliminate_uncertainty","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20190309201603/http://www.businessinsider.com/inside-art-of-misdirection-ultra-exclusive-private-torrent-tracker-magical-pirates-invites-2016-11","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20190309201603/https://en.wikipedia.org/wiki/Product/market_fit","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20190309201603/https://en.wikipedia.org/wiki/Parallel_algorithm#Parallelizability","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20190309201603/https://en.wikipedia.org/wiki/Kazaa_Lite","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20190309201603/https://en.wikipedia.org/wiki/Comparison_of_file-sharing_applications","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20190309201603/https://en.wikipedia.org/wiki/Free-rider_problem","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20190309201603/https://en.wikipedia.org/wiki/Kademlia","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20190309201603/http://playbook.samaltman.com/#idea","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20190309201603/https://en.wikipedia.org/wiki/GiFT","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20190309201603/https://en.wikipedia.org/wiki/Overnet","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20190309201603/https://en.wikipedia.org/wiki/Glossary_of_BitTorrent_terms#Choked","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20190309201603/https://en.wikipedia.org/wiki/WireShare","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20190309201603/https://en.wikipedia.org/wiki/Kazaa_Lite#K++","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20190309201603/https://en.wikipedia.org/wiki/Embarrassingly_parallel","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20190309201603/https://en.wikipedia.org/wiki/Seedbox","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20190309201603/https://en.wikipedia.org/wiki/Kad_network","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20190309201603/https://en.wikipedia.org/wiki/FrostWire","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20190309201603/https://en.wikipedia.org/wiki/Shareaza","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20190309201603/https://en.wikipedia.org/wiki/EMule#Credit_system","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20190309201603/https://en.wikipedia.org/wiki/Gnutella#History","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20190309201603/https://en.wikipedia.org/wiki/Gnutella#Software","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20190309201603/http://unenumerated.blogspot.com/2007/06/nanobarter.html?showComment=1181708460000#c2518193502558600657","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20190309201603/http://www.cs.kent.edu/~javed/class-FP2P10S/papers-2006/mojonation.pdf","alts":[],"httpStatus":200},{"url":"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","alts":[],"httpStatus":429},{"url":"https://web.archive.org/web/20190309201603/http://www.greedytorrent.com/","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20190309201603/https://continuations.com/post/148098927445/crypto-tokens-and-the-coming-age-of-protocol","alts":[{"type":1,"url":"https://web.archive.org/web/20190309201603/https://cdn.ampproject.org/c/s/continuations.com/post/148098927445/crypto-tokens-and-the-coming-age-of-protocol/amp"},{"type":2,"url":"tumblr://x-callback-url/blog?blogName=continuations&postID=148098927445"},{"type":3,"url":"tumblr://x-callback-url/blog?blogName=continuations&postID=148098927445"}],"httpStatus":200},{"url":"https://web.archive.org/web/20190309201603/http://www.bitmetv.org/","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20190309201603/https://www.springer.com/us/book/9783540291923","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20190309201603/http://www.bittorrent.org/beps/bep_0000.html","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20190309201603/http://rfc-gnutella.sourceforge.net/src/rfc-0_6-draft.html","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20190309201603/https://www.cs.cornell.edu/people/egs/714-spring05/ppay.pdf","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20190309201603/http://www.bittorrent.org/bittorrentecon.pdf#page=4","alts":[],"httpStatus":200},{"url":"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/","alts":[{"type":1,"url":"https://web.archive.org/web/20190309201603/https://cdn.ampproject.org/c/s/steveblank.com/2015/05/06/build-measure-learn-throw-things-against-the-wall-and-see-if-they-work/amp/"}],"httpStatus":200},{"url":"https://web.archive.org/web/20190309201603/https://www.youtube.com/watch?v=r76WIdqjw4s&t=13s","alts":[{"type":2,"url":"vnd.youtube://www.youtube.com/watch?v=r76WIdqjw4s&feature=applinks"},{"type":3,"url":"vnd.youtube://www.youtube.com/watch?v=r76WIdqjw4s&feature=applinks"}],"httpStatus":200},{"url":"https://web.archive.org/web/20190309201603/https://www.youtube.com/watch?v=r76WIdqjw4s&t=16m30s","alts":[{"type":3,"url":"vnd.youtube://www.youtube.com/watch?v=r76WIdqjw4s&feature=applinks"},{"type":2,"url":"vnd.youtube://www.youtube.com/watch?v=r76WIdqjw4s&feature=applinks"}],"httpStatus":200},{"url":"https://web.archive.org/web/20190309201603/http://www.emule-project.net/home/perl/help.cgi?l=1&rm=show_topic&topic_id=134","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20190309201603/https://twitter.com/danielgollahon","alts":[{"type":2,"url":"twitter://user?screen_name=danielgollahon"},{"type":3,"url":"twitter://user?screen_name=danielgollahon"}],"httpStatus":200},{"url":"https://web.archive.org/web/20190309201603/https://www.jwz.org/doc/worse-is-better.html","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20190309201603/https://youtu.be/QLQKzSE4atc","alts":[{"type":2,"url":"vnd.youtube://www.youtube.com/watch?v=QLQKzSE4atc&feature=applinks"},{"type":3,"url":"vnd.youtube://www.youtube.com/watch?v=QLQKzSE4atc&feature=applinks"}],"httpStatus":200},{"url":"https://web.archive.org/web/20190309201603/https://twitter.com/backus","alts":[{"type":2,"url":"twitter://user?screen_name=backus"},{"type":3,"url":"twitter://user?screen_name=backus"}],"httpStatus":200},{"url":"https://web.archive.org/web/20190309201603/https://www.youtube.com/watch?v=r76WIdqjw4s&t=20s","alts":[{"type":2,"url":"vnd.youtube://www.youtube.com/watch?v=r76WIdqjw4s&feature=applinks"},{"type":3,"url":"vnd.youtube://www.youtube.com/watch?v=r76WIdqjw4s&feature=applinks"}],"httpStatus":200},{"url":"https://web.archive.org/web/20190309201603/https://twitter.com/bramcohen","alts":[{"type":2,"url":"twitter://user?screen_name=bramcohen"},{"type":3,"url":"twitter://user?screen_name=bramcohen"}],"httpStatus":200},{"url":"https://web.archive.org/web/20190309201603/https://twitter.com/devonzuegel","alts":[{"type":2,"url":"twitter://user?screen_name=devonzuegel"},{"type":3,"url":"twitter://user?screen_name=devonzuegel"}],"httpStatus":200},{"url":"https://web.archive.org/web/20190309201603/http://www.hpl.hp.com/research/idl/papers/gnutella/gnutella.pdf","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20190309201603/https://twitter.com/NickSzabo4?ref_src=twsrc%5Egoogle%7Ctwcamp%5Eserp%7Ctwgr%5Eauthor","alts":[{"type":2,"url":"twitter://user?screen_name=NickSzabo4"},{"type":3,"url":"twitter://user?screen_name=NickSzabo4"}],"httpStatus":200},{"url":"https://web.archive.org/web/20190309201603/https://twitter.com/rrhoover","alts":[{"type":2,"url":"twitter://user?screen_name=rrhoover"},{"type":3,"url":"twitter://user?screen_name=rrhoover"}],"httpStatus":200},{"url":"https://web.archive.org/web/20190309201603/https://twitter.com/andy_bromberg","alts":[{"type":2,"url":"twitter://user?screen_name=andy_bromberg"},{"type":3,"url":"twitter://user?screen_name=andy_bromberg"}],"httpStatus":200},{"url":"https://web.archive.org/web/20190309201603/https://ng.gnunet.org/sites/default/files/P2PEcon'04%20-%20SWIFT.pdf","alts":[],"httpStatus":404},{"url":"https://web.archive.org/web/20190309201603/https://twitter.com/zooko","alts":[{"type":2,"url":"twitter://user?screen_name=zooko"},{"type":3,"url":"twitter://user?screen_name=zooko"}],"httpStatus":200},{"url":"https://web.archive.org/web/20190309201603/https://goo.gl/jGzN74","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20190309201603/https://popcorntime.sh/","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20190309201603/https://twitter.com/alain","alts":[{"type":2,"url":"twitter://user?screen_name=alain"},{"type":3,"url":"twitter://user?screen_name=alain"}],"httpStatus":200},{"url":"https://web.archive.org/web/20190309201603/https://www.emule-project.net/home/perl/general.cgi?l=1","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20190309201603/https://cordis.europa.eu/project/rcn/61509_en.html","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20190309201603/http://www.usv.com/blog/fat-protocols","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20190309201603/https://twitter.com/arvanaghi","alts":[{"type":2,"url":"twitter://user?screen_name=arvanaghi"},{"type":3,"url":"twitter://user?screen_name=arvanaghi"}],"httpStatus":200},{"url":"https://web.archive.org/web/20190309201603/https://sci-hub.tw/https://ieeexplore.ieee.org/document/1494610/","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20190309201603/https://sci-hub.tw/https://link.springer.com/chapter/10.1007/11422778_4#enumeration","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20190309201603/http://ilpubs.stanford.edu:8090/562/1/2002-56.pdf","alts":[],"httpStatus":200},{"url":"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","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20190309201603/https://web.archive.org/web/20011128084421/http://mojonation.net:80/","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20190309201603/https://web.archive.org/web/20060506100842/http://www.bearshare.com:80/screens.htm","alts":[],"httpStatus":200},{"url":"https://web.archive.org/web/20190309201603/https://web.archive.org/web/20040609210104/http://www.kazaa.com:80/us/help/glossary/participation_ratio.htm","alts":[],"httpStatus":0},{"url":"https://web.archive.org/web/20190309201603/https://web.archive.org/web/20040630221840/http://www.kazaa.com:80/us/help/glossary/ratings.htm","alts":[],"httpStatus":0},{"url":"https://web.archive.org/web/20190309201603/https://groups.yahoo.com/neo/groups/the_gdf/conversations/topics/11933","alts":[],"httpStatus":0},{"url":"https://web.archive.org/web/20190309201603/https://groups.yahoo.com/neo/groups/the_gdf/conversations/topics/13930","alts":[],"httpStatus":0}],"version":"0.3","generatedAt":1530165120724},"isLockedPreviewOnly":false,"takeoverId":"","metaDescription":"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.","totalClapCount":2422,"sectionCount":4,"readingList":0,"topics":[{"topicId":"9213b0063bcc","slug":"cryptocurrency","createdAt":1487665088618,"deletedAt":0,"image":{"id":"1*iOXaisZyDdgXEPpwHaFrRQ@2x.jpeg","originalWidth":4739,"originalHeight":3159},"name":"Cryptocurrency","description":"An ode to the anti-banks.","relatedTopics":[],"visibility":1,"relatedTags":[],"type":"Topic"}]},"coverless":true,"slug":"fat-protocols-arent-new-what-blockchain-can-learn-from-p2p-file-sharing","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":false,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"fat-protocols-arent-new-42d2c538db41","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"1*WDf1MmV_gJgmfpi3ue4G4g.png","originalWidth":959,"originalHeight":720,"isFeatured":true}},{"name":"previewTitle","type":3,"text":"Fat protocols aren't new: What blockchain can learn from p2p file sharing","alignment":1},{"name":"previewSubtitle","type":13,"text":"Limewire and Kazaa were…","alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"Limewire and Kazaa were backed by fat protocols. They can teach us a lot about competition and the value of crypto tokens"},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"https://web.archive.org/web/20190309201603/https://medium.com/@jbackus/fat-protocols-arent-new-42d2c538db41","approvedHomeCollectionId":"","newsletterId":"","webCanonicalUrl":"https://web.archive.org/web/20190309201603/https://medium.com/@jbackus/fat-protocols-arent-new-42d2c538db41","mediumUrl":"https://web.archive.org/web/20190309201603/https://medium.com/@jbackus/fat-protocols-arent-new-42d2c538db41","migrationId":"","notifyFollowers":true,"notifyTwitter":false,"notifyFacebook":false,"responseHiddenOnParentPostAt":0,"isSeries":false,"isSubscriptionLocked":false,"seriesLastAppendedAt":0,"audioVersionDurationSec":0,"sequenceId":"","isNsfw":false,"isEligibleForRevenue":false,"isBlockedFromHightower":false,"deletedAt":0,"lockedPostSource":0,"hightowerMinimumGuaranteeStartsAt":0,"hightowerMinimumGuaranteeEndsAt":0,"featureLockRequestAcceptedAt":0,"mongerRequestType":1,"layerCake":3,"socialTitle":"","socialDek":"","editorialPreviewTitle":"","editorialPreviewDek":"","curationEligibleAt":0,"primaryTopic":{"topicId":"9213b0063bcc","slug":"cryptocurrency","createdAt":1487665088618,"deletedAt":0,"image":{"id":"1*iOXaisZyDdgXEPpwHaFrRQ@2x.jpeg","originalWidth":4739,"originalHeight":3159},"name":"Cryptocurrency","description":"An ode to the anti-banks.","relatedTopics":[],"visibility":1,"relatedTags":[],"type":"Topic"},"type":"Post"},"mentionedUsers":[],"collaborators":[],"collectionUserRelations":[],"mode":null,"references":{"User":{"846ca283a13c":{"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"}},"Social":{"846ca283a13c":{"userId":"lo_GwMGutI1mQQI","targetUserId":"846ca283a13c","type":"Social"}},"SocialStats":{"846ca283a13c":{"userId":"846ca283a13c","usersFollowedCount":153,"usersFollowedByCount":1296,"type":"SocialStats"}}}})
// ]]></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)
-->