<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8">
<meta name="generator" content="pdf2htmlEX">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<link rel="stylesheet" href="https://static.pudn.com/base/css/base.min.css">
<link rel="stylesheet" href="https://static.pudn.com/base/css/fancy.min.css">
<link rel="stylesheet" href="https://static.pudn.com/prod/directory_preview_static/6251548a6caf5961923ea8ee/raw.css">
<script src="https://static.pudn.com/base/js/compatibility.min.js"></script>
<script src="https://static.pudn.com/base/js/pdf2htmlEX.min.js"></script>
<script>
try{
pdf2htmlEX.defaultViewer = new pdf2htmlEX.Viewer({});
}catch(e){}
</script>
<title></title>
</head>
<body>
<div id="sidebar" style="display: none">
<div id="outline">
</div>
</div>
<div id="pf1" class="pf w0 h0" data-page-no="1"><div class="pc pc1 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="https://static.pudn.com/prod/directory_preview_static/6251548a6caf5961923ea8ee/bg1.jpg"><div class="t m0 x1 h2 y1 ff1 fs0 fc0 sc0 ls0 ws0">Hyperledger<span class="_ _0"> </span>Fabric:<span class="_ _0"> </span>A<span class="_ _1"> </span>Distributed<span class="_ _0"> </span>Operating<span class="_ _1"> </span>System<span class="_ _0"> </span>for</div><div class="t m0 x2 h2 y2 ff1 fs0 fc0 sc0 ls0 ws0">Permissioned<span class="_ _0"> </span>Blockchains</div><div class="t m0 x3 h3 y3 ff2 fs1 fc0 sc0 ls0 ws0">Elli<span class="_"> </span>Androulaki</div><div class="t m0 x4 h3 y4 ff2 fs1 fc0 sc0 ls0 ws0">Artem<span class="_"> </span>Barger</div><div class="t m0 x5 h3 y5 ff2 fs1 fc0 sc0 ls0 ws0">Vita<span class="_"> </span>Bortnikov</div><div class="t m0 x6 h4 y6 ff2 fs2 fc0 sc0 ls0 ws0">IBM</div><div class="t m0 x7 h3 y3 ff2 fs1 fc0 sc0 ls0 ws0">Christian<span class="_"> </span>Cachin</div><div class="t m0 x8 h3 y4 ff2 fs1 fc0 sc0 ls0 ws0">Konstantinos<span class="_"> </span>Christidis</div><div class="t m0 x9 h3 y5 ff2 fs1 fc0 sc0 ls0 ws0">Angelo<span class="_"> </span>De<span class="_"> </span>Caro</div><div class="t m0 xa h3 y7 ff2 fs1 fc0 sc0 ls0 ws0">David<span class="_"> </span>Enyeart</div><div class="t m0 xb h4 y8 ff2 fs2 fc0 sc0 ls0 ws0">IBM</div><div class="t m0 xc h3 y3 ff2 fs1 fc0 sc0 ls0 ws0">Christopher<span class="_"> </span>Ferris</div><div class="t m0 xd h3 y4 ff2 fs1 fc0 sc0 ls0 ws0">Gennady<span class="_"> </span>Laventman</div><div class="t m0 xe h3 y5 ff2 fs1 fc0 sc0 ls0 ws0">Y<span class="_ _2"></span>acov<span class="_"> </span>Manevich</div><div class="t m0 xf h4 y6 ff2 fs2 fc0 sc0 ls0 ws0">IBM</div><div class="t m0 x10 h3 y9 ff2 fs1 fc0 sc0 ls0 ws0">Srinivasan<span class="_"> </span>Muralidharan</div><div class="t m0 x11 h5 ya ff3 fs3 fc0 sc0 ls0 ws0">∗</div><div class="t m0 x12 h4 yb ff2 fs2 fc0 sc0 ls0 ws0">State<span class="_"> </span>Street<span class="_"> </span>Corp.</div><div class="t m0 x13 h3 y9 ff2 fs1 fc0 sc0 ls0 ws0">Chet<span class="_"> </span>Murthy</div><div class="t m0 x14 h5 ya ff3 fs3 fc0 sc0 ls0 ws0">∗</div><div class="t m0 x15 h3 y9 ff2 fs1 fc0 sc0 ls0 ws0">Binh<span class="_"> </span>Nguyen</div><div class="t m0 x16 h5 ya ff3 fs3 fc0 sc0 ls0 ws0">∗</div><div class="t m0 x17 h4 yb ff2 fs2 fc0 sc0 ls0 ws0">State<span class="_"> </span>Street<span class="_"> </span>Corp.</div><div class="t m0 x18 h3 yc ff2 fs1 fc0 sc0 ls0 ws0">Manish<span class="_"> </span>Sethi</div><div class="t m0 x19 h3 yd ff2 fs1 fc0 sc0 ls0 ws0">Gari<span class="_"> </span>Singh</div><div class="t m0 x1a h3 ye ff2 fs1 fc0 sc0 ls0 ws0">Keith<span class="_"> </span>Smith</div><div class="t m0 x1b h3 yf ff2 fs1 fc0 sc0 ls0 ws0">Alessandro<span class="_"> </span>Sorniotti</div><div class="t m0 x1c h4 y10 ff2 fs2 fc0 sc0 ls0 ws0">IBM</div><div class="t m0 x1d h3 yc ff2 fs1 fc0 sc0 ls0 ws0">Chrysoula<span class="_"> </span>Stathakop<span class="_ _3"></span>oulou</div><div class="t m0 x1e h3 yd ff2 fs1 fc0 sc0 ls0 ws0">Marko<span class="_"> </span>V<span class="_ _4"></span>ukolić</div><div class="t m0 x1f h3 ye ff2 fs1 fc0 sc0 ls0 ws0">Sharon<span class="_"> </span>W<span class="_ _5"></span>eed<span class="_"> </span>Co<span class="_ _3"></span>cco</div><div class="t m0 x20 h3 yf ff2 fs1 fc0 sc0 ls0 ws0">Jason<span class="_"> </span>Y<span class="_ _5"></span>ellick</div><div class="t m0 x21 h4 y10 ff2 fs2 fc0 sc0 ls0 ws0">IBM</div><div class="t m0 x22 h6 y11 ff4 fs4 fc0 sc0 ls0 ws0">ABSTRA<span class="_ _4"></span>CT</div><div class="t m1 x22 h7 y12 ff2 fs5 fc0 sc0 ls0 ws0">Fabric<span class="_ _6"> </span>is<span class="_ _6"> </span>a<span class="_ _6"> </span>modular<span class="_ _6"> </span>and<span class="_ _6"> </span>extensible<span class="_ _6"> </span>open-source<span class="_ _6"> </span>system<span class="_ _6"> </span>for<span class="_ _6"> </span>deploying</div><div class="t m1 x22 h7 y13 ff2 fs5 fc0 sc0 ls0 ws0">and<span class="_ _6"> </span>operating<span class="_ _6"> </span>permissioned<span class="_ _6"> </span>blockchains<span class="_ _6"> </span>and<span class="_ _6"> </span>one<span class="_ _6"> </span>of<span class="_ _6"> </span>the<span class="_ _6"> </span>Hyperledger</div><div class="t m0 x22 h7 y14 ff2 fs5 fc0 sc0 ls0 ws0">projects<span class="_"> </span>hosted<span class="_"> </span>by<span class="_"> </span>the<span class="_"> </span>Linux<span class="_"> </span>Foundation<span class="_"> </span>(ww<span class="_ _3"></span>w<span class="_ _2"></span>.hyp<span class="_ _3"></span>erledger<span class="_ _4"></span>.org).</div><div class="t m1 x23 h7 y15 ff2 fs5 fc0 sc0 ls0 ws0">Fabric<span class="_"> </span>is<span class="_"> </span>the<span class="_"> </span>rst<span class="_"> </span>truly<span class="_"> </span><span class="fc1 sc0">e</span><span class="fc1 sc0">xtensible</span><span class="_"> </span>blockchain<span class="_"> </span>system<span class="_"> </span>for<span class="_"> </span>running</div><div class="t m2 x22 h7 y16 ff2 fs5 fc0 sc0 ls0 ws0">distributed<span class="_"> </span>applications.<span class="_"> </span>It<span class="_"> </span>supports<span class="_"> </span>modular<span class="_"> </span>consensus<span class="_"> </span>protocols,</div><div class="t m3 x22 h7 y17 ff2 fs5 fc0 sc0 ls0 ws0">which<span class="_"> </span>allows<span class="_"> </span>the<span class="_"> </span>system<span class="_"> </span>to<span class="_"> </span>be<span class="_"> </span>t<span class="fc1 sc0">ailor</span><span class="fc1 sc0">e</span><span class="fc1 sc0">d</span><span class="_"> </span>to<span class="_"> </span>particular<span class="_"> </span>use<span class="_"> </span>cases<span class="_"> </span>and</div><div class="t m4 x22 h7 y18 ff2 fs5 fc0 sc0 ls0 ws0">trust<span class="_"> </span>mo<span class="_ _3"></span>dels.<span class="_"> </span>Fabric<span class="_ _7"> </span>is<span class="_"> </span>also<span class="_ _7"> </span>the<span class="_"> </span>rst<span class="_ _7"> </span>blockchain<span class="_ _7"> </span>system<span class="_"> </span>that<span class="_"> </span>runs</div><div class="t m5 x22 h7 y19 ff2 fs5 fc0 sc0 ls0 ws0">distributed<span class="_"> </span>applications<span class="_"> </span>written<span class="_"> </span>in<span class="_"> </span>standard,<span class="_"> </span>g<span class="fc1 sc0">eneral-purp</span><span class="fc1 sc0">ose</span><span class="_"> </span>pro-</div><div class="t m4 x22 h7 y1a ff2 fs5 fc0 sc0 ls0 ws0">gramming<span class="_ _7"> </span>languages,<span class="_ _7"> </span>without<span class="_"> </span>systemic<span class="_ _7"> </span>dependency<span class="_ _7"> </span>on<span class="_ _7"> </span>a<span class="_ _7"> </span>native</div><div class="t m4 x22 h7 y1b ff2 fs5 fc0 sc0 ls0 ws0">cryptocurrency<span class="_ _4"></span>.<span class="_ _7"> </span>This<span class="_ _8"> </span>stands<span class="_ _7"> </span>in<span class="_ _8"> </span>sharp<span class="_ _8"> </span>contrast<span class="_ _7"> </span>to<span class="_ _8"> </span>existing<span class="_ _8"> </span>block-</div><div class="t m4 x22 h7 y1c ff2 fs5 fc0 sc0 ls0 ws0">chain<span class="_ _8"> </span>platforms<span class="_ _9"> </span>that<span class="_ _8"> </span>require<span class="_ _8"> </span>“smart-contracts”<span class="_ _9"> </span>to<span class="_ _8"> </span>b<span class="_ _3"></span>e<span class="_ _8"> </span>written<span class="_ _9"> </span>in</div><div class="t m6 x22 h7 y1d ff2 fs5 fc0 sc0 ls0 ws0">domain-specic<span class="_"> </span>languages<span class="_"> </span>or<span class="_ _7"> </span>r<span class="_ _4"></span>ely<span class="_"> </span>on<span class="_"> </span>a<span class="_"> </span>cr<span class="_ _3"></span>yptocurrency<span class="_ _2"></span>.<span class="_ _7"> </span>Fabric<span class="_"> </span>real-</div><div class="t m1 x22 h7 y1e ff2 fs5 fc0 sc0 ls0 ws0">izes<span class="_ _6"> </span>the<span class="_"> </span>permissioned<span class="_ _6"> </span>model<span class="_"> </span>using<span class="_ _6"> </span>a<span class="_ _6"> </span>p<span class="_ _3"></span>ortable<span class="_ _a"> </span>notion<span class="_ _6"> </span>of<span class="_"> </span>membership,</div><div class="t m7 x22 h7 y1f ff2 fs5 fc0 sc0 ls0 ws0">which<span class="_"> </span>may<span class="_"> </span>be<span class="_"> </span>integrated<span class="_"> </span>with<span class="_"> </span>industr<span class="_ _3"></span>y-standard<span class="_"> </span>identity<span class="_"> </span>manage-</div><div class="t m1 x22 h7 y20 ff2 fs5 fc0 sc0 ls0 ws0">ment.<span class="_ _6"> </span>T<span class="_ _4"></span>o<span class="_ _6"> </span>support<span class="_ _6"> </span>such<span class="_ _a"> </span>exibility<span class="_ _2"></span>,<span class="_ _a"> </span>Fabric<span class="_ _6"> </span>introduces<span class="_ _a"> </span>an<span class="_ _6"> </span>entirely<span class="_ _6"> </span>novel</div><div class="t m1 x22 h7 y21 ff2 fs5 fc0 sc0 ls0 ws0">blockchain<span class="_ _a"> </span>design<span class="_"> </span>and<span class="_ _6"> </span>revamps<span class="_ _a"> </span>the<span class="_ _a"> </span>way<span class="_"> </span>blockchains<span class="_ _6"> </span>cope<span class="_"> </span>with<span class="_ _6"> </span>non-</div><div class="t m0 x22 h7 y22 ff2 fs5 fc0 sc0 ls0 ws0">determinism,<span class="_"> </span>resource<span class="_"> </span>exhaustion,<span class="_"> </span>and<span class="_"> </span>performance<span class="_"> </span>attacks.</div><div class="t m4 x23 h7 y23 ff2 fs5 fc0 sc0 ls0 ws0">This<span class="_ _7"> </span>paper<span class="_ _7"> </span>describes<span class="_ _8"> </span>Fabric,<span class="_ _7"> </span>its<span class="_ _7"> </span>architecture,<span class="_ _7"> </span>the<span class="_ _7"> </span>rationale<span class="_ _7"> </span>be-</div><div class="t m8 x22 h7 y24 ff2 fs5 fc0 sc0 ls0 ws0">hind<span class="_"> </span>various<span class="_"> </span>design<span class="_"> </span>decisions,<span class="_"> </span>its<span class="_"> </span>most<span class="_ _7"> </span>prominent<span class="_"> </span>implementation</div><div class="t m2 x22 h7 y25 ff2 fs5 fc0 sc0 ls0 ws0">aspects,<span class="_"> </span>as<span class="_"> </span>well<span class="_"> </span>as<span class="_"> </span>its<span class="_"> </span>distributed<span class="_"> </span>application<span class="_"> </span>programming<span class="_"> </span>model.</div><div class="t m4 x22 h7 y26 ff2 fs5 fc0 sc0 ls0 ws0">W<span class="_ _2"></span>e<span class="_ _7"> </span>further<span class="_ _7"> </span>evaluate<span class="_ _7"> </span>Fabric<span class="_ _7"> </span>by<span class="_ _7"> </span>implementing<span class="_ _7"> </span>and<span class="_ _7"> </span>benchmarking</div><div class="t m9 x22 h7 y27 ff2 fs5 fc0 sc0 ls0 ws0">a<span class="_"> </span>Bitcoin-inspired<span class="_"> </span>digital<span class="_"> </span>currency<span class="_ _2"></span>.<span class="_"> </span>W<span class="_ _2"></span>e<span class="_"> </span>show<span class="_"> </span>that<span class="_ _a"> </span>Fabric<span class="_"> </span>achieves</div><div class="t ma x22 h7 y28 ff2 fs5 fc0 sc0 ls0 ws0">end-to-end<span class="_"> </span>throughput<span class="_"> </span>of<span class="_"> </span>more<span class="_"> </span>than<span class="_"> </span>3500<span class="_"> </span>transactions<span class="_"> </span>per<span class="_"> </span>second</div><div class="t m4 x22 h7 y29 ff2 fs5 fc0 sc0 ls0 ws0">in<span class="_ _8"> </span>certain<span class="_ _8"> </span>popular<span class="_ _8"> </span>deployment<span class="_ _8"> </span>congurations,<span class="_ _9"> </span>with<span class="_ _8"> </span>sub-second</div><div class="t m0 x22 h7 y2a ff2 fs5 fc0 sc0 ls0 ws0">latency<span class="_ _2"></span>,<span class="_"> </span>scaling<span class="_"> </span>well<span class="_"> </span>to<span class="_"> </span>over<span class="_"> </span>100<span class="_"> </span>peers.</div><div class="t m0 x24 h8 y2b ff3 fs6 fc0 sc0 ls0 ws0">∗</div><div class="t m0 x25 h9 y2c ff2 fs7 fc0 sc0 ls0 ws0">W<span class="_ _2"></span>ork<span class="_"> </span>done<span class="_"> </span>at<span class="_"> </span>IBM.</div><div class="t m4 x22 h9 y2d ff2 fs7 fc0 sc0 ls0 ws0">Permission<span class="_"> </span>to<span class="_"> </span>make<span class="_"> </span>digital<span class="_"> </span>or<span class="_"> </span>hard<span class="_"> </span>copies<span class="_"> </span>of<span class="_"> </span>part<span class="_"> </span>or<span class="_"> </span>all<span class="_"> </span>of<span class="_"> </span>this<span class="_"> </span>work<span class="_"> </span>for<span class="_"> </span>personal<span class="_"> </span>or</div><div class="t mb x22 h9 y2e ff2 fs7 fc0 sc0 ls0 ws0">classroom<span class="_"> </span>use<span class="_"> </span>is<span class="_"> </span>granted<span class="_"> </span>without<span class="_"> </span>fee<span class="_ _a"> </span>provided<span class="_"> </span>that<span class="_"> </span>copies<span class="_"> </span>are<span class="_"> </span>not<span class="_"> </span>made<span class="_"> </span>or<span class="_"> </span>distribute<span class="_ _3"></span>d</div><div class="t m1 x22 h9 y2f ff2 fs7 fc0 sc0 ls0 ws0">for<span class="_"> </span>prot<span class="_ _6"> </span>or<span class="_ _6"> </span>commer<span class="_ _4"></span>cial<span class="_"> </span>advantage<span class="_ _6"> </span>and<span class="_ _6"> </span>that<span class="_ _6"> </span>copies<span class="_ _6"> </span>bear<span class="_ _6"> </span>this<span class="_ _6"> </span>notice<span class="_ _6"> </span>and<span class="_ _6"> </span>the<span class="_ _6"> </span>full<span class="_ _6"> </span>citation</div><div class="t m1 x22 h9 y30 ff2 fs7 fc0 sc0 ls0 ws0">on<span class="_"> </span>the<span class="_ _6"> </span>rst<span class="_ _6"> </span>page<span class="_ _4"></span>.<span class="_"> </span>Cop<span class="_ _4"></span>yrights<span class="_"> </span>for<span class="_ _6"> </span>thir<span class="_ _4"></span>d-party<span class="_"> </span>components<span class="_ _6"> </span>of<span class="_ _6"> </span>this<span class="_ _6"> </span>work<span class="_ _6"> </span>must<span class="_ _b"> </span>be<span class="_"> </span>honored.</div><div class="t m0 x22 h9 y31 ff2 fs7 fc0 sc0 ls0 ws0">For<span class="_"> </span>all<span class="_"> </span>other<span class="_"> </span>uses,<span class="_"> </span>contact<span class="_"> </span>the<span class="_"> </span>owner<span class="_ _3"></span>/author(s).</div><div class="t m0 x22 ha y32 ff5 fs7 fc0 sc0 ls0 ws0">EuroSys<span class="_ _6"> </span>’18,<span class="_ _a"> </span>A<span class="_ _4"></span>pril<span class="_ _6"> </span>23–26,<span class="_ _a"> </span>2018,<span class="_ _a"> </span>Porto,<span class="_ _6"> </span>Portugal</div><div class="t m0 x22 h9 y33 ff3 fs7 fc0 sc0 ls0 ws0">©<span class="_ _6"> </span><span class="ff2">2018<span class="_"> </span>Copyright<span class="_"> </span>held<span class="_"> </span>by<span class="_"> </span>the<span class="_"> </span>owner/author(s).</span></div><div class="t m0 x22 h9 y34 ff2 fs7 fc0 sc0 ls0 ws0">ACM<span class="_"> </span>ISBN<span class="_"> </span>978-1-4503-5584-1/18/04.</div><div class="t m0 x22 h9 y35 ff2 fs7 fc0 sc0 ls0 ws0">https://doi.org/10.1145/3190508.3190538</div><div class="t m0 x26 hb y11 ff4 fs8 fc0 sc0 ls0 ws0">A<span class="_ _4"></span>CM<span class="_ _a"> </span>Reference<span class="_ _c"> </span>Format:</div><div class="t m1 x26 hc y36 ff2 fs8 fc0 sc0 ls0 ws0">Elli<span class="_"> </span>Androulaki,<span class="_"> </span>Artem<span class="_"> </span>Barger,<span class="_"> </span>Vita<span class="_"> </span>Bortnikov<span class="_ _2"></span>,<span class="_"> </span>Christian<span class="_"> </span>Cachin,<span class="_"> </span>Konstanti-</div><div class="t m4 x26 hc y37 ff2 fs8 fc0 sc0 ls0 ws0">nos<span class="_"> </span>Christidis,<span class="_ _d"> </span>Angelo<span class="_"> </span>De<span class="_ _d"> </span>Caro,<span class="_"> </span>David<span class="_ _c"> </span>Enyeart,<span class="_ _c"> </span>Christopher<span class="_ _d"> </span>Ferris,<span class="_"> </span>Gen-</div><div class="t mc x26 hc y38 ff2 fs8 fc0 sc0 ls0 ws0">nady<span class="_"> </span>Laventman,<span class="_"> </span>Y<span class="_ _2"></span>acov<span class="_"> </span>Manevich,<span class="_"> </span>Srinivasan<span class="_"> </span>Muralidharan,<span class="_"> </span>Chet<span class="_"> </span>Murthy,</div><div class="t md x26 hc y39 ff2 fs8 fc0 sc0 ls0 ws0">Binh<span class="_"> </span>Nguyen,<span class="_"> </span>Manish<span class="_"> </span>Sethi,<span class="_"> </span>Gari<span class="_"> </span>Singh,<span class="_"> </span>Keith<span class="_"> </span>Smith,<span class="_"> </span>Alessandro<span class="_"> </span>Sorniotti,</div><div class="t m4 x26 hc y3a ff2 fs8 fc0 sc0 ls0 ws0">Chrysoula<span class="_ _c"> </span>Stathakop<span class="_ _3"></span>oulou,<span class="_ _c"> </span>Marko<span class="_ _d"> </span>Vukolić,<span class="_"> </span>Sharon<span class="_"> </span>W<span class="_ _4"></span>eed<span class="_"> </span>Co<span class="_ _3"></span>cco,<span class="_ _c"> </span>and<span class="_ _d"> </span>Ja-</div><div class="t me x26 hc y3b ff2 fs8 fc0 sc0 ls0 ws0">son<span class="_"> </span>Y<span class="_ _2"></span>ellick.<span class="_"> </span>2018.<span class="_"> </span>Hyperle<span class="_ _3"></span>dger<span class="_"> </span>Fabric:<span class="_"> </span>A<span class="_"> </span>Distributed<span class="_"> </span>Operating<span class="_"> </span>System<span class="_"> </span>for</div><div class="t mf x26 hc y3c ff2 fs8 fc0 sc0 ls0 ws0">Permissioned<span class="_"> </span>Blockchains<span class="_"> </span>.<span class="_"> </span>In<span class="_"> </span><span class="ff5">EuroSys<span class="_ _6"> </span>’18:<span class="_ _c"> </span>Thirteenth<span class="_ _c"> </span>EuroSys<span class="_ _a"> </span>Conference</span></div><div class="t m10 x26 hc y3d ff5 fs8 fc0 sc0 ls0 ws0">2018,<span class="_ _a"> </span>April<span class="_ _a"> </span>23–26,<span class="_ _a"> </span>2018,<span class="_ _c"> </span>Porto,<span class="_ _a"> </span>Portugal<span class="_ _e"></span>.<span class="_ _a"> </span><span class="ff2">ACM,<span class="_"> </span>New<span class="_"> </span>Y<span class="_ _2"></span>ork,<span class="_"> </span>N<span class="_ _3"></span>Y<span class="_ _4"></span>,<span class="_"> </span>USA,<span class="_"> </span>15<span class="_"> </span>pages.</span></div><div class="t m0 x26 hc y3e ff2 fs8 fc0 sc0 ls0 ws0">https://doi.org/10.1145/3190508.3190538</div><div class="t m0 x26 h6 y3f ff4 fs4 fc0 sc0 ls0 ws0">1<span class="_ _f"> </span>IN<span class="_ _3"></span>TRODUCTION</div><div class="t m0 x26 h7 y40 ff2 fs5 fc0 sc0 ls0 ws0">A<span class="_"> </span>blockchain<span class="_"> </span>can<span class="_"> </span>be<span class="_"> </span>dened<span class="_"> </span>as<span class="_"> </span>an<span class="_"> </span>immutable<span class="_ _d"> </span><span class="ff5">ledger<span class="_ _8"> </span></span>for<span class="_"> </span>recording</div><div class="t m11 x26 h7 y41 ff5 fs5 fc0 sc0 ls0 ws0">transactions<span class="ff2">,<span class="_"> </span>maintained<span class="_"> </span>within<span class="_"> </span>a<span class="_"> </span>distributed<span class="_"> </span>network<span class="_"> </span>of<span class="_"> </span>mutually</span></div><div class="t m4 x26 h7 y42 ff2 fs5 fc0 sc0 ls0 ws0">untrusting<span class="_"> </span><span class="ff5">pe<span class="_ _3"></span>ers</span>.<span class="_"> </span>Every<span class="_ _7"> </span>peer<span class="_"> </span>maintains<span class="_ _7"> </span>a<span class="_"> </span>copy<span class="_"> </span>of<span class="_ _d"> </span>the<span class="_ _d"> </span>le<span class="_ _3"></span>dger<span class="_ _2"></span>.<span class="_ _7"> </span>The</div><div class="t m12 x26 h7 y43 ff2 fs5 fc0 sc0 ls0 ws0">peers<span class="_"> </span>execute<span class="_"> </span>a<span class="_"> </span><span class="ff5">consensus<span class="_ _c"> </span>protocol<span class="_ _7"> </span></span>to<span class="_"> </span>validate<span class="_"> </span>transactions,<span class="_"> </span>group</div><div class="t m4 x26 h7 y44 ff2 fs5 fc0 sc0 ls0 ws0">them<span class="_ _8"> </span>into<span class="_ _9"> </span>blocks,<span class="_ _8"> </span>and<span class="_ _9"> </span>build<span class="_ _8"> </span>a<span class="_ _9"> </span>hash<span class="_ _8"> </span>chain<span class="_ _9"> </span>over<span class="_ _8"> </span>the<span class="_ _8"> </span>blocks.<span class="_ _9"> </span>This</div><div class="t m13 x26 h7 y45 ff2 fs5 fc0 sc0 ls0 ws0">process<span class="_"> </span>forms<span class="_"> </span>the<span class="_"> </span>ledger<span class="_"> </span>by<span class="_"> </span>ordering<span class="_"> </span>the<span class="_"> </span>transactions,<span class="_"> </span>as<span class="_"> </span>is<span class="_"> </span>neces-</div><div class="t m4 x26 h7 y46 ff2 fs5 fc0 sc0 ls0 ws0">sary<span class="_"> </span>for<span class="_ _d"> </span>consistency<span class="_ _4"></span>.<span class="_"> </span>Blockchains<span class="_"> </span>have<span class="_"> </span>emerged<span class="_"> </span>with<span class="_ _d"> </span>Bitcoin<span class="_ _d"> </span>[</div><div class="t m0 x27 h7 y46 ff2 fs5 fc0 sc0 ls0 ws0">3</div><div class="t m4 x28 h7 y46 ff2 fs5 fc0 sc0 ls0 ws0">]</div><div class="t m0 x26 h7 y47 ff2 fs5 fc0 sc0 ls0 ws0">and<span class="_"> </span>are<span class="_"> </span>widely<span class="_"> </span>regarded<span class="_"> </span>as<span class="_"> </span>a<span class="_"> </span>promising<span class="_"> </span>technology<span class="_"> </span>to<span class="_"> </span>run<span class="_"> </span>trusted</div><div class="t m0 x26 h7 y48 ff2 fs5 fc0 sc0 ls0 ws0">exchanges<span class="_"> </span>in<span class="_"> </span>the<span class="_"> </span>digital<span class="_"> </span>world.</div><div class="t m14 x29 h7 y49 ff2 fs5 fc0 sc0 ls0 ws0">In<span class="_"> </span>a<span class="_"> </span><span class="ff5">public<span class="_ _d"> </span></span>or<span class="_"> </span><span class="ff5">permissionless<span class="_ _d"> </span></span>blo<span class="_ _3"></span>ckchain<span class="_"> </span>anyone<span class="_"> </span>can<span class="_"> </span>participate</div><div class="t m15 x26 h7 y4a ff2 fs5 fc0 sc0 ls0 ws0">without<span class="_"> </span>a<span class="_"> </span>specic<span class="_"> </span>identity<span class="_ _2"></span>.<span class="_"> </span>Public<span class="_"> </span>blo<span class="_ _3"></span>ckchains<span class="_"> </span>typically<span class="_"> </span>involve<span class="_"> </span>a</div><div class="t md x26 h7 y4b ff2 fs5 fc0 sc0 ls0 ws0">native<span class="_"> </span>cryptocurrency<span class="_"> </span>and<span class="_"> </span>often<span class="_"> </span>use<span class="_"> </span>consensus<span class="_"> </span>based<span class="_"> </span>on<span class="_"> </span>“proof<span class="_"> </span>of</div><div class="t m12 x26 h7 y4c ff2 fs5 fc0 sc0 ls0 ws0">work”<span class="_"> </span>(Po<span class="_ _2"></span>W)<span class="_"> </span>and<span class="_"> </span>economic<span class="_"> </span>incentives.<span class="_"> </span><span class="ff5">Permissioned<span class="_ _7"> </span></span>blockchains,</div><div class="t m16 x26 h7 y4d ff2 fs5 fc0 sc0 ls0 ws0">on<span class="_"> </span>the<span class="_"> </span>other<span class="_"> </span>hand,<span class="_"> </span>run<span class="_"> </span>a<span class="_"> </span>blockchain<span class="_"> </span>among<span class="_ _a"> </span>a<span class="_"> </span>set<span class="_"> </span>of<span class="_"> </span>known,<span class="_"> </span>iden-</div><div class="t m4 x26 h7 y4e ff2 fs5 fc0 sc0 ls0 ws0">tied<span class="_"> </span>participants.<span class="_"> </span>A<span class="_"> </span>permissioned<span class="_"> </span>blockchain<span class="_"> </span>provides<span class="_"> </span>a<span class="_"> </span>way<span class="_"> </span>to</div><div class="t ma x26 h7 y4f ff2 fs5 fc0 sc0 ls0 ws0">secure<span class="_"> </span>the<span class="_"> </span>interactions<span class="_"> </span>among<span class="_"> </span>a<span class="_"> </span>group<span class="_"> </span>of<span class="_"> </span>entities<span class="_"> </span>that<span class="_"> </span>have<span class="_"> </span>a<span class="_"> </span>com-</div><div class="t m1 x26 h7 y50 ff2 fs5 fc0 sc0 ls0 ws0">mon<span class="_ _a"> </span>goal<span class="_ _a"> </span>but<span class="_ _a"> </span>which<span class="_"> </span>do<span class="_ _6"> </span>not<span class="_ _a"> </span>fully<span class="_"> </span>trust<span class="_ _6"> </span>each<span class="_ _a"> </span>other<span class="_ _4"></span>,<span class="_ _6"> </span>such<span class="_"> </span>as<span class="_ _6"> </span>businesses</div><div class="t m1 x26 h7 y51 ff2 fs5 fc0 sc0 ls0 ws0">that<span class="_"> </span>exchange<span class="_"> </span>funds,<span class="_"> </span>goods,<span class="_"> </span>or<span class="_"> </span>information.<span class="_"> </span>By<span class="_"> </span>relying<span class="_"> </span>on<span class="_"> </span>the<span class="_"> </span>iden-</div><div class="t m4 x26 h7 y52 ff2 fs5 fc0 sc0 ls0 ws0">tities<span class="_"> </span>of<span class="_"> </span>the<span class="_"> </span>pe<span class="_ _3"></span>ers,<span class="_"> </span>a<span class="_"> </span>permissioned<span class="_ _d"> </span>blockchain<span class="_ _d"> </span>can<span class="_"> </span>use<span class="_"> </span>traditional</div><div class="t m0 x26 h7 y53 ff2 fs5 fc0 sc0 ls0 ws0">Byzantine-fault<span class="_"> </span>tolerant<span class="_"> </span>(BFT)<span class="_"> </span>consensus.</div><div class="t m17 x29 h7 y54 ff2 fs5 fc0 sc0 ls0 ws0">Blockchains<span class="_"> </span>may<span class="_"> </span>execute<span class="_"> </span>arbitrary<span class="_ _4"></span>,<span class="_"> </span>pr<span class="_ _4"></span>ogrammable<span class="_"> </span>transaction</div><div class="t m1 x26 h7 y55 ff2 fs5 fc0 sc0 ls0 ws0">logic<span class="_"> </span>in<span class="_ _a"> </span>the<span class="_"> </span>form<span class="_"> </span>of<span class="_ _a"> </span><span class="ff5">smart<span class="_ _c"> </span>contracts</span>,<span class="_"> </span>as<span class="_"> </span>exemplied<span class="_ _a"> </span>by<span class="_"> </span>Ethereum<span class="_"> </span>[</div><div class="t m0 x27 h7 y55 ff2 fs5 fc0 sc0 ls0 ws0">5</div><div class="t m1 x28 h7 y55 ff2 fs5 fc0 sc0 ls0 ws0">].</div><div class="t m18 x26 h7 y56 ff2 fs5 fc0 sc0 ls0 ws0">The<span class="_"> </span>scripts<span class="_"> </span>in<span class="_"> </span>Bitcoin<span class="_"> </span>wer<span class="_ _4"></span>e<span class="_"> </span>a<span class="_"> </span>predecessor<span class="_"> </span>of<span class="_"> </span>the<span class="_"> </span>concept.<span class="_"> </span>A<span class="_"> </span>smart</div><div class="t m4 x26 h7 y57 ff2 fs5 fc0 sc0 ls0 ws0">contract<span class="_ _8"> </span>functions<span class="_ _8"> </span>as<span class="_ _8"> </span>a<span class="_ _8"> </span><span class="ff5">trusted<span class="_ _8"> </span>distributed<span class="_ _8"> </span>application<span class="_ _9"> </span></span>and<span class="_ _8"> </span>gains</div><div class="t m4 x26 h7 y58 ff2 fs5 fc0 sc0 ls0 ws0">its<span class="_ _8"> </span>se<span class="_ _3"></span>curity<span class="_ _8"> </span>from<span class="_ _9"> </span>the<span class="_ _9"> </span>blockchain<span class="_ _8"> </span>and<span class="_ _9"> </span>the<span class="_ _9"> </span>underlying<span class="_ _9"> </span>consensus</div><a class="l" rel='nofollow' onclick='return false;'><div class="d m19"></div></a><a class="l" rel='nofollow' onclick='return false;'><div class="d m19"></div></a><a class="l" rel='nofollow' onclick='return false;'><div class="d m19"></div></a><a class="l" rel='nofollow' onclick='return false;'><div class="d m19"></div></a><a class="l" rel='nofollow' onclick='return false;'><div class="d m19"></div></a><a class="l" rel='nofollow' onclick='return false;'><div class="d m19"></div></a></div><div class="pi" data-data='{"ctm":[1.568627,0.000000,0.000000,1.568627,0.000000,0.000000]}'></div></div>
</body>
</html>
<div id="pf2" class="pf w0 h0" data-page-no="2"><div class="pc pc2 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="https://static.pudn.com/prod/directory_preview_static/6251548a6caf5961923ea8ee/bg2.jpg"><div class="t m0 x22 hd y59 ff6 fs5 fc0 sc0 ls0 ws0">EuroSys<span class="_"> </span>’18,<span class="_"> </span>April<span class="_"> </span>23–26,<span class="_"> </span>2018,<span class="_"> </span>Porto,<span class="_"> </span>Portugal<span class="_ _10"> </span>E.<span class="_"> </span>Androulaki<span class="_"> </span>et<span class="_"> </span>al.</div><div class="t m1a x22 h7 y5a ff2 fs5 fc0 sc0 ls0 ws0">among<span class="_"> </span>the<span class="_"> </span>peers.<span class="_"> </span>This<span class="_"> </span>closely<span class="_ _d"> </span>resembles<span class="_"> </span>the<span class="_"> </span>well-known<span class="_"> </span>approach</div><div class="t m4 x22 h7 y5b ff2 fs5 fc0 sc0 ls0 ws0">of<span class="_ _7"> </span>building<span class="_ _7"> </span>resilient<span class="_ _7"> </span>applications<span class="_ _7"> </span>with<span class="_ _7"> </span><span class="fc1 sc0">state-machine</span><span class="_ _8"> </span><span class="fc1 sc0">r</span><span class="fc1 sc0">eplication</span></div><div class="t m1 x22 h7 y5c ff2 fs5 fc0 sc0 ls0 ws0">(SMR)<span class="_ _a"> </span>[</div><div class="t m0 x2a h7 y5c ff2 fs5 fc0 sc0 ls0 ws0">48</div><div class="t m1 x2b h7 y5c ff2 fs5 fc0 sc0 ls0 ws0">].<span class="_ _a"> </span>Howev<span class="_ _4"></span>er<span class="_ _2"></span>,<span class="_"> </span>blockchains<span class="_ _6"> </span>depart<span class="_ _a"> </span>from<span class="_ _a"> </span>traditional<span class="_ _a"> </span>SMR<span class="_ _a"> </span>with</div><div class="t m4 x22 h7 y5d ff2 fs5 fc0 sc0 ls0 ws0">Byzantine<span class="_ _7"> </span>faults<span class="_ _7"> </span>in<span class="_ _7"> </span>imp<span class="_ _3"></span>ortant<span class="_ _7"> </span>ways:<span class="_ _7"> </span>(1)<span class="_ _7"> </span>not<span class="_ _8"> </span>only<span class="_ _7"> </span>one,<span class="_ _7"> </span>but<span class="_ _7"> </span><span class="fc1 sc0">many</span></div><div class="t me x22 h7 y5e ff2 fs5 fc0 sc0 ls0 ws0">distributed<span class="_"> </span>applications<span class="_"> </span>run<span class="_"> </span>concurrently;<span class="_"> </span>(2)<span class="_"> </span>applications<span class="_"> </span>may<span class="_"> </span>be</div><div class="t m1 x22 h7 y5f ff2 fs5 fc0 sc0 ls0 ws0">deployed<span class="_ _6"> </span><span class="fc1 sc0">dynamically</span><span class="_ _6"> </span>and<span class="_ _a"> </span>by<span class="_ _a"> </span>anyone;<span class="_ _6"> </span>and<span class="_ _a"> </span>(3)<span class="_ _6"> </span>the<span class="_ _a"> </span>application<span class="_ _6"> </span>co<span class="_ _3"></span>de<span class="_ _6"> </span>is</div><div class="t m1 x22 h7 y60 ff2 fs5 fc0 sc0 ls0 ws0"><span class="fc1 sc0">untruste</span><span class="fc1 sc0">d,</span><span class="_"> </span>potentially<span class="_"> </span>e<span class="_ _4"></span>ven<span class="_"> </span>malicious.<span class="_ _a"> </span>These<span class="_"> </span>dierences<span class="_ _a"> </span>necessitate</div><div class="t m0 x22 h7 y61 ff2 fs5 fc0 sc0 ls0 ws0">new<span class="_"> </span>designs.</div><div class="t m5 x23 h7 y62 ff2 fs5 fc0 sc0 ls0 ws0">Many<span class="_"> </span>existing<span class="_"> </span>smart-contract<span class="_"> </span>blockchains<span class="_"> </span>follow<span class="_"> </span>the<span class="_"> </span>blueprint</div><div class="t m1b x22 h7 y63 ff2 fs5 fc0 sc0 ls0 ws0">of<span class="_"> </span>SMR<span class="_"> </span><span class="fc1 sc0">[</span></div><div class="t m0 x2c h7 y63 ff2 fs5 fc0 sc0 ls0 ws0"><span class="fc1 sc0">48</span></div><div class="t m1b x2d h7 y63 ff2 fs5 fc0 sc0 ls0 ws0">]<span class="_"> </span>and<span class="_"> </span>implement<span class="_"> </span>so-called<span class="_"> </span><span class="ff5"><span class="fc1 sc0">activ</span><span class="fc1 sc0">e</span><span class="_ _d"> </span></span><span class="fc1 sc0">r</span><span class="fc1 sc0">eplication</span><span class="_"> </span>[</div><div class="t m0 x2e h7 y63 ff2 fs5 fc0 sc0 ls0 ws0">27</div><div class="t m1b x9 h7 y63 ff2 fs5 fc0 sc0 ls0 ws0">]:<span class="_"> </span>a<span class="_"> </span>pro-</div><div class="t m1c x22 h7 y64 ff2 fs5 fc0 sc0 ls0 ws0">tocol<span class="_"> </span>for<span class="_"> </span><span class="ff5">consensus<span class="_ _7"> </span></span>or<span class="_"> </span><span class="ff5">atomic<span class="_ _c"> </span>broadcast<span class="_ _7"> </span></span>rst<span class="_"> </span>orders<span class="_"> </span>the<span class="_"> </span>transactions</div><div class="t m17 x22 h7 y65 ff2 fs5 fc0 sc0 ls0 ws0">and<span class="_"> </span>propagates<span class="_"> </span>them<span class="_"> </span>to<span class="_"> </span>all<span class="_"> </span>peers;<span class="_"> </span>and<span class="_"> </span>second,<span class="_"> </span>each<span class="_"> </span>peer<span class="_"> </span>executes</div><div class="t m9 x22 h7 y66 ff2 fs5 fc0 sc0 ls0 ws0">the<span class="_"> </span>transactions<span class="_"> </span>sequentially<span class="_ _2"></span>.<span class="_"> </span>W<span class="_ _2"></span>e<span class="_"> </span>call<span class="_"> </span>this<span class="_"> </span>the<span class="_"> </span><span class="ff5"><span class="fc1 sc0">or</span><span class="fc1 sc0">der-e</span><span class="fc1 sc0">xe</span><span class="fc1 sc0">cute</span><span class="_ _c"> </span>archi-</span></div><div class="t m4 x22 h7 y67 ff5 fs5 fc0 sc0 ls0 ws0">tecture<span class="ff2">;<span class="_ _7"> </span>it<span class="_ _7"> </span>requires<span class="_ _7"> </span>all<span class="_ _7"> </span>peers<span class="_ _7"> </span>to<span class="_ _7"> </span>execute<span class="_ _7"> </span>every<span class="_ _d"> </span>transaction<span class="_ _7"> </span>and<span class="_ _7"> </span>all</span></div><div class="t m1 x22 h7 y68 ff2 fs5 fc0 sc0 ls0 ws0">transactions<span class="_ _a"> </span>to<span class="_ _a"> </span>be<span class="_ _a"> </span><span class="fc1 sc0">deterministic</span>.<span class="_"> </span>The<span class="_ _6"> </span>order-execute<span class="_ _a"> </span>architecture<span class="_ _6"> </span>can</div><div class="t mb x22 h7 y69 ff2 fs5 fc0 sc0 ls0 ws0">be<span class="_"> </span>found<span class="_"> </span>in<span class="_"> </span>virtually<span class="_"> </span>all<span class="_"> </span>existing<span class="_"> </span>blockchain<span class="_ _d"> </span>systems,<span class="_"> </span>ranging<span class="_"> </span>from</div><div class="t m1d x22 h7 y6a ff2 fs5 fc0 sc0 ls0 ws0">public<span class="_"> </span>ones<span class="_"> </span>such<span class="_"> </span>as<span class="_"> </span>Ethereum<span class="_"> </span>(with<span class="_"> </span>Po<span class="_ _2"></span>W<span class="_ _4"></span>-based<span class="_"> </span>consensus)<span class="_"> </span>to<span class="_"> </span>per-</div><div class="t m1 x22 h7 y6b ff2 fs5 fc0 sc0 ls0 ws0">missioned<span class="_ _a"> </span>ones<span class="_"> </span>(<span class="_ _4"></span>with<span class="_ _a"> </span>BFT<span class="_ _2"></span>-typ<span class="_ _3"></span>e<span class="_ _a"> </span>consensus)<span class="_"> </span>such<span class="_ _6"> </span>as<span class="_"> </span>T<span class="_ _2"></span>endermint<span class="_ _a"> </span>[</div><div class="t m0 x2f h7 y6b ff2 fs5 fc0 sc0 ls0 ws0">14</div><div class="t m1 x30 h7 y6b ff2 fs5 fc0 sc0 ls0 ws0">],</div><div class="t m11 x22 h7 y6c ff2 fs5 fc0 sc0 ls0 ws0">Chain<span class="_"> </span>[</div><div class="t m0 x31 h7 y6c ff2 fs5 fc0 sc0 ls0 ws0">4</div><div class="t m11 x2c h7 y6c ff2 fs5 fc0 sc0 ls0 ws0">]<span class="_"> </span>and<span class="_"> </span>Quorum<span class="_"> </span>[</div><div class="t m0 x32 h7 y6c ff2 fs5 fc0 sc0 ls0 ws0">13</div><div class="t m11 x33 h7 y6c ff2 fs5 fc0 sc0 ls0 ws0">].<span class="_"> </span>Although<span class="_"> </span>the<span class="_"> </span>order-execute<span class="_"> </span>design<span class="_"> </span>is</div><div class="t m4 x22 h7 y6d ff2 fs5 fc0 sc0 ls0 ws0">not<span class="_ _7"> </span>immediately<span class="_ _7"> </span>apparent<span class="_ _d"> </span>in<span class="_ _7"> </span>all<span class="_ _7"> </span>systems,<span class="_ _7"> </span>because<span class="_ _7"> </span>the<span class="_ _7"> </span>additional</div><div class="t m1e x22 h7 y6e ff2 fs5 fc0 sc0 ls0 ws0">transaction<span class="_"> </span>validation<span class="_"> </span>step<span class="_"> </span>may<span class="_"> </span>blur<span class="_"> </span>it,<span class="_"> </span>its<span class="_"> </span>limitations<span class="_"> </span>are<span class="_"> </span>inherent</div><div class="t m1c x22 h7 y6f ff2 fs5 fc0 sc0 ls0 ws0">in<span class="_"> </span>all:<span class="_"> </span>every<span class="_"> </span>peer<span class="_ _d"> </span>executes<span class="_"> </span>every<span class="_"> </span>transaction<span class="_ _d"> </span>and<span class="_"> </span>transactions<span class="_"> </span>must</div><div class="t m0 x22 h7 y70 ff2 fs5 fc0 sc0 ls0 ws0">be<span class="_"> </span>deterministic.</div><div class="t m4 x23 h7 y71 ff2 fs5 fc0 sc0 ls0 ws0">Prior<span class="_ _d"> </span>p<span class="_ _3"></span>ermissioned<span class="_ _7"> </span>blockchains<span class="_ _d"> </span>suer<span class="_ _7"> </span>from<span class="_ _d"> </span>many<span class="_ _7"> </span>limitations,</div><div class="t m10 x22 h7 y72 ff2 fs5 fc0 sc0 ls0 ws0">which<span class="_"> </span>often<span class="_"> </span>stem<span class="_"> </span>from<span class="_"> </span>their<span class="_"> </span>permissionless<span class="_"> </span>relatives<span class="_"> </span>or<span class="_"> </span>from<span class="_"> </span>using</div><div class="t m0 x22 h7 y73 ff2 fs5 fc0 sc0 ls0 ws0">the<span class="_"> </span>order-execute<span class="_"> </span>architecture.<span class="_"> </span>In<span class="_"> </span>particular:</div><div class="t m0 x25 he y74 ff7 fs5 fc0 sc0 ls0 ws0">•</div><div class="t m4 x34 h7 y74 ff2 fs5 fc0 sc0 ls0 ws0">Consensus<span class="_ _7"> </span>is<span class="_ _7"> </span><span class="ff5">hard-code<span class="_ _3"></span>d<span class="_ _9"> </span></span>within<span class="_ _7"> </span>the<span class="_ _8"> </span>platform,<span class="_ _7"> </span>which<span class="_ _7"> </span>con-</div><div class="t me x34 h7 y75 ff2 fs5 fc0 sc0 ls0 ws0">tradicts<span class="_"> </span>the<span class="_"> </span>well-established<span class="_"> </span>understanding<span class="_"> </span>that<span class="_"> </span>there<span class="_"> </span>is<span class="_"> </span>no</div><div class="t m0 x35 h7 y76 ff2 fs5 fc0 sc0 ls0 ws0">“one-size-ts-all”<span class="_"> </span>(BFT)<span class="_"> </span>consensus<span class="_"> </span>pr<span class="_ _4"></span>otocol<span class="_"> </span>[52];</div><div class="t m0 x25 he y77 ff7 fs5 fc0 sc0 ls0 ws0">•</div><div class="t m16 x34 h7 y77 ff2 fs5 fc0 sc0 ls0 ws0">The<span class="_"> </span><span class="ff5">trust<span class="_ _c"> </span>model<span class="_ _7"> </span></span>of<span class="_"> </span>transaction<span class="_"> </span>validation<span class="_"> </span>is<span class="_"> </span>determined<span class="_"> </span>by</div><div class="t m1 x34 h7 y78 ff2 fs5 fc0 sc0 ls0 ws0">the<span class="_"> </span>consensus<span class="_ _6"> </span>protocol<span class="_"> </span>and<span class="_ _a"> </span>cannot<span class="_"> </span>be<span class="_ _a"> </span>adapted<span class="_"> </span>to<span class="_"> </span>the<span class="_ _6"> </span>require-</div><div class="t m0 x34 h7 y79 ff2 fs5 fc0 sc0 ls0 ws0">ments<span class="_"> </span>of<span class="_"> </span>the<span class="_"> </span>smart<span class="_"> </span>contract;</div><div class="t m0 x25 he y7a ff7 fs5 fc0 sc0 ls0 ws0">•</div><div class="t m1f x34 h7 y7a ff2 fs5 fc0 sc0 ls0 ws0">Smart<span class="_"> </span>contracts<span class="_"> </span>must<span class="_"> </span>be<span class="_"> </span>written<span class="_"> </span>in<span class="_"> </span>a<span class="_"> </span><span class="ff5">xe<span class="_ _3"></span>d,<span class="_ _c"> </span>non-standard,<span class="_ _c"> </span>or</span></div><div class="t me x34 h7 y7b ff5 fs5 fc0 sc0 ls0 ws0">domain-specic<span class="_ _d"> </span>language<span class="ff2">,<span class="_"> </span>which<span class="_"> </span>hinders<span class="_"> </span>wide-spread<span class="_"> </span>adop-</span></div><div class="t m0 x34 h7 y7c ff2 fs5 fc0 sc0 ls0 ws0">tion<span class="_"> </span>and<span class="_"> </span>may<span class="_"> </span>lead<span class="_"> </span>to<span class="_"> </span>programming<span class="_"> </span>errors;</div><div class="t m0 x25 he y7d ff7 fs5 fc0 sc0 ls0 ws0">•</div><div class="t m1 x34 h7 y7d ff2 fs5 fc0 sc0 ls0 ws0">The<span class="_ _a"> </span><span class="ff5">sequential<span class="_ _c"> </span>execution<span class="_ _c"> </span></span>of<span class="_ _a"> </span>all<span class="_"> </span>transactions<span class="_ _a"> </span>by<span class="_"> </span>all<span class="_ _6"> </span>p<span class="_ _3"></span>eers<span class="_"> </span><span class="ff5">limits</span></div><div class="t m9 x34 h7 y7e ff5 fs5 fc0 sc0 ls0 ws0">performance<span class="ff2">,<span class="_"> </span>and<span class="_"> </span>complex<span class="_"> </span>measures<span class="_"> </span>ar<span class="_ _4"></span>e<span class="_"> </span>needed<span class="_"> </span>to<span class="_"> </span>prevent</span></div><div class="t m4 x34 h7 y7f ff2 fs5 fc0 sc0 ls0 ws0">denial-of-service<span class="_ _8"> </span>attacks<span class="_ _7"> </span>against<span class="_ _7"> </span>the<span class="_ _8"> </span>platform<span class="_ _7"> </span>originating</div><div class="t m4 x34 h7 y80 ff2 fs5 fc0 sc0 ls0 ws0">from<span class="_"> </span>untrusted<span class="_ _7"> </span>contracts<span class="_"> </span>(such<span class="_ _d"> </span>as<span class="_ _7"> </span>accounting<span class="_"> </span>for<span class="_ _7"> </span>runtime</div><div class="t m0 x34 h7 y81 ff2 fs5 fc0 sc0 ls0 ws0">with<span class="_"> </span>“gas”<span class="_"> </span>in<span class="_"> </span>Ethereum);</div><div class="t m0 x25 he y82 ff7 fs5 fc0 sc0 ls0 ws0">•</div><div class="t m6 x34 h7 y82 ff2 fs5 fc0 sc0 ls0 ws0">Transactions<span class="_"> </span>must<span class="_"> </span>be<span class="_"> </span><span class="ff5">deterministic</span>,<span class="_"> </span>which<span class="_"> </span>can<span class="_"> </span>be<span class="_"> </span>dicult<span class="_"> </span>to</div><div class="t m0 x34 h7 y83 ff2 fs5 fc0 sc0 ls0 ws0">ensure<span class="_"> </span>programmatically;</div><div class="t m0 x25 he y84 ff7 fs5 fc0 sc0 ls0 ws0">•</div><div class="t m1 x34 h7 y84 ff2 fs5 fc0 sc0 ls0 ws0">Every<span class="_"> </span>smart<span class="_ _6"> </span>contract<span class="_"> </span>runs<span class="_ _6"> </span>on<span class="_"> </span><span class="ff5">all<span class="_ _c"> </span></span>pe<span class="_ _3"></span>ers,<span class="_ _a"> </span>which<span class="_"> </span>is<span class="_ _a"> </span>at<span class="_ _a"> </span>odds<span class="_"> </span>with</div><div class="t m17 x34 h7 y85 ff5 fs5 fc0 sc0 ls0 ws0"><span class="fc1 sc0">condentiality</span><span class="ff2"><span class="fc1 sc0">,</span><span class="_"> </span>and<span class="_"> </span>prohibits<span class="_"> </span>the<span class="_"> </span>dissemination<span class="_ _a"> </span>of<span class="_"> </span>contract</span></div><div class="t m0 x34 h7 y86 ff2 fs5 fc0 sc0 ls0 ws0">code<span class="_"> </span>and<span class="_"> </span>state<span class="_"> </span>to<span class="_"> </span>a<span class="_"> </span>subset<span class="_"> </span>of<span class="_"> </span>peers.</div><div class="t m4 x23 h7 y87 ff2 fs5 fc0 sc0 ls0 ws0">In<span class="_"> </span>this<span class="_ _7"> </span>paper<span class="_ _d"> </span>we<span class="_ _d"> </span>describe<span class="_ _7"> </span><span class="ff5">Hyperledger<span class="_ _d"> </span>Fabric<span class="_ _8"> </span></span>or<span class="_"> </span>simply<span class="_ _7"> </span><span class="ff5">Fabric</span>,</div><div class="t mc x22 h7 y88 ff2 fs5 fc0 sc0 ls0 ws0">an<span class="_"> </span>open-source<span class="_"> </span>[</div><div class="t m0 x36 h7 y88 ff2 fs5 fc0 sc0 ls0 ws0">8</div><div class="t mc x37 h7 y88 ff2 fs5 fc0 sc0 ls0 ws0">]<span class="_"> </span>blockchain<span class="_"> </span>platform<span class="_"> </span>that<span class="_"> </span>overcomes<span class="_"> </span>these<span class="_"> </span>limi-</div><div class="t m20 x22 h7 y89 ff2 fs5 fc0 sc0 ls0 ws0">tations.<span class="_"> </span>Fabric<span class="_"> </span>is<span class="_"> </span>one<span class="_"> </span>of<span class="_"> </span>the<span class="_"> </span>projects<span class="_"> </span>of<span class="_"> </span>Hyperledger<span class="_"> </span>[</div><div class="t m0 x8 h7 y89 ff2 fs5 fc0 sc0 ls0 ws0">7</div><div class="t m20 x38 h7 y89 ff2 fs5 fc0 sc0 ls0 ws0">]<span class="_"> </span>under<span class="_"> </span>the</div><div class="t m8 x22 h7 y8a ff2 fs5 fc0 sc0 ls0 ws0">auspices<span class="_"> </span>of<span class="_"> </span>the<span class="_"> </span>Linux<span class="_"> </span>Foundation<span class="_"> </span>[</div><div class="t m0 x39 h7 y8a ff2 fs5 fc0 sc0 ls0 ws0">11</div><div class="t m8 x3a h7 y8a ff2 fs5 fc0 sc0 ls0 ws0">].<span class="_"> </span>Fabric<span class="_"> </span>is<span class="_"> </span>used<span class="_"> </span>in<span class="_"> </span>more<span class="_"> </span>than</div><div class="t m21 x22 h7 y8b ff2 fs5 fc0 sc0 ls0 ws0">400<span class="_"> </span>prototypes,<span class="_"> </span>proofs-of-concept,<span class="_"> </span>and<span class="_"> </span>in<span class="_"> </span>production<span class="_"> </span>distributed-</div><div class="t m1 x22 h7 y8c ff2 fs5 fc0 sc0 ls0 ws0">ledger<span class="_"> </span>systems,<span class="_"> </span>across<span class="_"> </span>dierent<span class="_"> </span>industries<span class="_"> </span>and<span class="_"> </span>use<span class="_ _d"> </span>cases.<span class="_"> </span>These<span class="_ _d"> </span>use</div><div class="t m4 x22 h7 y8d ff2 fs5 fc0 sc0 ls0 ws0">cases<span class="_"> </span>include<span class="_ _7"> </span>but<span class="_"> </span>are<span class="_ _d"> </span>not<span class="_ _7"> </span>limited<span class="_"> </span>to<span class="_ _7"> </span>areas<span class="_"> </span>such<span class="_ _d"> </span>as<span class="_ _7"> </span>dispute<span class="_"> </span>resolu-</div><div class="t m1b x22 h7 y8e ff2 fs5 fc0 sc0 ls0 ws0">tion,<span class="_"> </span>trade<span class="_"> </span>logistics,<span class="_"> </span>FX<span class="_"> </span>netting,<span class="_"> </span>food<span class="_"> </span>safety<span class="_ _4"></span>,<span class="_"> </span>contract<span class="_"> </span>management,</div><div class="t m4 x22 h7 y8f ff2 fs5 fc0 sc0 ls0 ws0">diamond<span class="_ _7"> </span>provenance,<span class="_ _7"> </span>rewards<span class="_ _d"> </span>p<span class="_ _3"></span>oint<span class="_ _7"> </span>management,<span class="_ _8"> </span>low<span class="_ _7"> </span>liquidity</div><div class="t m1a x22 h7 y90 ff2 fs5 fc0 sc0 ls0 ws0">securities<span class="_"> </span>trading<span class="_"> </span>and<span class="_"> </span>settlement,<span class="_"> </span>identity<span class="_"> </span>management,<span class="_"> </span>and<span class="_"> </span>settle-</div><div class="t m0 x22 h7 y91 ff2 fs5 fc0 sc0 ls0 ws0">ment<span class="_"> </span>through<span class="_"> </span>digital<span class="_"> </span>currency<span class="_ _2"></span>.</div><div class="t m4 x29 h7 y5a ff2 fs5 fc0 sc0 ls0 ws0">Fabric<span class="_ _d"> </span>introduces<span class="_ _7"> </span>a<span class="_"> </span>new<span class="_ _7"> </span>blockchain<span class="_ _d"> </span>architecture<span class="_ _d"> </span>aiming<span class="_ _7"> </span>at<span class="_ _d"> </span>re-</div><div class="t m4 x26 h7 y5b ff2 fs5 fc0 sc0 ls0 ws0">siliency<span class="_ _2"></span>,<span class="_ _11"> </span>exibility<span class="_ _2"></span>,<span class="_ _11"> </span>scalability<span class="_ _2"></span>,<span class="_ _11"> </span>and<span class="_ _9"> </span>condentiality<span class="_ _4"></span>.<span class="_ _11"> </span>Designed<span class="_ _9"> </span>as</div><div class="t m4 x26 h7 y5c ff2 fs5 fc0 sc0 ls0 ws0">a<span class="_ _9"> </span>modular<span class="_ _11"> </span>and<span class="_ _8"> </span>extensible<span class="_ _11"> </span>general-purpose<span class="_ _9"> </span>permissioned<span class="_ _9"> </span>blo<span class="_ _3"></span>ck-</div><div class="t m4 x26 h7 y5d ff2 fs5 fc0 sc0 ls0 ws0">chain,<span class="_ _8"> </span>Fabric<span class="_ _9"> </span>is<span class="_ _9"> </span>the<span class="_ _9"> </span>rst<span class="_ _9"> </span>blockchain<span class="_ _9"> </span>system<span class="_ _8"> </span>to<span class="_ _9"> </span>support<span class="_ _9"> </span>the<span class="_ _9"> </span>exe-</div><div class="t m1c x26 h7 y5e ff2 fs5 fc0 sc0 ls0 ws0">cution<span class="_"> </span>of<span class="_"> </span>distributed<span class="_"> </span>applications<span class="_"> </span>written<span class="_"> </span>in<span class="_"> </span><span class="ff5">standard<span class="_ _d"> </span>programming</span></div><div class="t m4 x26 h7 y5f ff5 fs5 fc0 sc0 ls0 ws0">languages<span class="ff2">,<span class="_"> </span>in<span class="_"> </span>a<span class="_"> </span>way<span class="_"> </span>that<span class="_"> </span>allo<span class="_ _4"></span>ws<span class="_"> </span>them<span class="_"> </span>to<span class="_"> </span>be<span class="_"> </span>executed<span class="_"> </span>consistently</span></div><div class="t m4 x26 h7 y60 ff2 fs5 fc0 sc0 ls0 ws0">across<span class="_ _8"> </span>many<span class="_ _8"> </span>nodes,<span class="_ _8"> </span>giving<span class="_ _8"> </span>impression<span class="_ _8"> </span>of<span class="_ _9"> </span>execution<span class="_ _8"> </span>on<span class="_ _8"> </span>a<span class="_ _8"> </span>single</div><div class="t m4 x26 h7 y61 ff2 fs5 fc0 sc0 ls0 ws0">globally-distributed<span class="_"> </span>blockchain<span class="_"> </span>computer<span class="_ _4"></span>.<span class="_"> </span>This<span class="_"> </span>makes<span class="_"> </span>Fabric<span class="_"> </span>the</div><div class="t m1 x26 h7 y62 ff2 fs5 fc0 sc0 ls0 ws0">rst<span class="_"> </span><span class="ff5">distributed<span class="_ _c"> </span>op<span class="_ _3"></span>erating<span class="_ _c"> </span>system<span class="_ _d"> </span></span>[</div><div class="t m0 x3b h7 y62 ff2 fs5 fc0 sc0 ls0 ws0">54</div><div class="t m1 x3c h7 y62 ff2 fs5 fc0 sc0 ls0 ws0">]<span class="_"> </span>for<span class="_"> </span>permissioned<span class="_"> </span>blo<span class="_ _3"></span>ckchains.</div><div class="t mb x29 h7 y63 ff2 fs5 fc0 sc0 ls0 ws0">The<span class="_"> </span>architecture<span class="_"> </span>of<span class="_"> </span>Fabric<span class="_"> </span>follows<span class="_"> </span>a<span class="_"> </span>novel<span class="_"> </span><span class="ff5"><span class="fc1 sc0">e</span><span class="fc1 sc0">xe</span><span class="fc1 sc0">cute-or</span><span class="fc1 sc0">der-validate</span></span></div><div class="t m4 x26 h7 y64 ff2 fs5 fc0 sc0 ls0 ws0">paradigm<span class="_ _8"> </span>for<span class="_ _8"> </span>distribute<span class="_ _3"></span>d<span class="_ _8"> </span>execution<span class="_ _8"> </span>of<span class="_ _9"> </span>untrusted<span class="_ _8"> </span>code<span class="_ _9"> </span>in<span class="_ _8"> </span>an<span class="_ _9"> </span>un-</div><div class="t m4 x26 h7 y65 ff2 fs5 fc0 sc0 ls0 ws0">trusted<span class="_"> </span>environment.<span class="_"> </span>It<span class="_"> </span>separates<span class="_ _d"> </span>the<span class="_"> </span>transaction<span class="_ _d"> </span>ow<span class="_"> </span>into<span class="_"> </span>three</div><div class="t m1c x26 h7 y66 ff2 fs5 fc0 sc0 ls0 ws0">steps,<span class="_"> </span>which<span class="_"> </span>may<span class="_"> </span>be<span class="_"> </span>run<span class="_ _d"> </span>on<span class="_"> </span>dierent<span class="_"> </span>entities<span class="_"> </span>in<span class="_"> </span>the<span class="_"> </span>system:<span class="_"> </span>(1)<span class="_ _d"> </span><span class="ff5">exe-</span></div><div class="t m1 x26 h7 y67 ff5 fs5 fc0 sc0 ls0 ws0">cuting<span class="_ _d"> </span><span class="ff2">a<span class="_"> </span>transaction<span class="_ _6"> </span>and<span class="_"> </span>checking<span class="_"> </span>its<span class="_ _a"> </span>correctness,<span class="_"> </span>ther<span class="_ _4"></span>eby<span class="_"> </span><span class="ff5">endorsing</span></span></div><div class="t m22 x26 h7 y68 ff2 fs5 fc0 sc0 ls0 ws0">it<span class="_"> </span>(corresponding<span class="_"> </span>to<span class="_"> </span>“transaction<span class="_"> </span>validation”<span class="_"> </span>in<span class="_"> </span>other<span class="_"> </span>blockchains);</div><div class="t m4 x26 h7 y69 ff2 fs5 fc0 sc0 ls0 ws0">(2)<span class="_ _7"> </span><span class="ff5">ordering<span class="_ _8"> </span></span>through<span class="_ _8"> </span>a<span class="_ _7"> </span>consensus<span class="_ _7"> </span>protocol,<span class="_ _8"> </span>irrespective<span class="_ _7"> </span>of<span class="_ _8"> </span>trans-</div><div class="t m4 x26 h7 y6a ff2 fs5 fc0 sc0 ls0 ws0">action<span class="_ _7"> </span>semantics;<span class="_ _8"> </span>and<span class="_ _7"> </span>(3)<span class="_ _8"> </span>transaction<span class="_ _8"> </span><span class="ff5">validation<span class="_ _7"> </span></span>p<span class="_ _3"></span>er<span class="_ _7"> </span>application-</div><div class="t m1 x26 h7 y6b ff2 fs5 fc0 sc0 ls0 ws0">specic<span class="_"> </span>trust<span class="_"> </span>assumptions,<span class="_"> </span>which<span class="_"> </span>also<span class="_"> </span>pr<span class="_ _4"></span>events<span class="_"> </span>race<span class="_ _a"> </span>conditions<span class="_"> </span>due</div><div class="t m0 x26 h7 y6c ff2 fs5 fc0 sc0 ls0 ws0">to<span class="_"> </span>concurrency<span class="_ _2"></span>.</div><div class="t m14 x29 h7 y6d ff2 fs5 fc0 sc0 ls0 ws0">This<span class="_"> </span>design<span class="_"> </span>departs<span class="_"> </span>radically<span class="_"> </span>from<span class="_"> </span>the<span class="_"> </span>or<span class="_ _4"></span>der-execute<span class="_"> </span>paradigm</div><div class="t m4 x26 h7 y6e ff2 fs5 fc0 sc0 ls0 ws0">in<span class="_ _7"> </span>that<span class="_ _7"> </span>Fabric<span class="_ _7"> </span>typically<span class="_ _7"> </span>executes<span class="_ _7"> </span>transactions<span class="_ _8"> </span><span class="fc1 sc0">b</span><span class="fc1 sc0">efor</span><span class="fc1 sc0">e</span><span class="_ _7"> </span>reaching<span class="_ _7"> </span>-</div><div class="t m4 x26 h7 y6f ff2 fs5 fc0 sc0 ls0 ws0">nal<span class="_ _8"> </span>agreement<span class="_ _9"> </span>on<span class="_ _8"> </span>their<span class="_ _8"> </span>order<span class="_ _4"></span>.<span class="_ _8"> </span>It<span class="_ _8"> </span>combines<span class="_ _9"> </span>the<span class="_ _8"> </span>two<span class="_ _8"> </span>well-known</div><div class="t m0 x26 h7 y70 ff2 fs5 fc0 sc0 ls0 ws0">approaches<span class="_"> </span>to<span class="_"> </span>replication,<span class="_"> </span><span class="ff5">passive<span class="_ _c"> </span></span>and<span class="_"> </span><span class="ff5">active</span>,<span class="_"> </span>as<span class="_"> </span>follows.</div><div class="t m23 x29 h7 y71 ff2 fs5 fc0 sc0 ls0 ws0">First,<span class="_"> </span>Fabric<span class="_"> </span>uses<span class="_"> </span><span class="ff5">passive<span class="_ _c"> </span></span>or<span class="_"> </span><span class="ff5"><span class="fc1 sc0">primar</span><span class="_ _3"></span><span class="fc1 sc0">y-backup</span><span class="_ _c"> </span>replication<span class="_ _c"> </span></span>[</div><div class="t m0 x3d h7 y71 ff2 fs5 fc0 sc0 ls0 ws0">21</div><div class="t m23 x3e h7 y71 ff2 fs5 fc0 sc0 ls0 ws0">,</div><div class="t m0 x3f h7 y71 ff2 fs5 fc0 sc0 ls0 ws0">27</div><div class="t m23 x28 h7 y71 ff2 fs5 fc0 sc0 ls0 ws0">]</div><div class="t m1 x26 h7 y72 ff2 fs5 fc0 sc0 ls0 ws0">as<span class="_"> </span>often<span class="_"> </span>found<span class="_"> </span>in<span class="_"> </span>distributed<span class="_"> </span>databases,<span class="_"> </span>but<span class="_"> </span>with<span class="_"> </span>middle<span class="_ _4"></span>ware-based</div><div class="t m4 x26 h7 y73 ff2 fs5 fc0 sc0 ls0 ws0">asymmetric<span class="_ _8"> </span>update<span class="_ _8"> </span>processing<span class="_ _8"> </span>[</div><div class="t m0 x40 h7 y73 ff2 fs5 fc0 sc0 ls0 ws0">40</div><div class="t m4 x41 h7 y73 ff2 fs5 fc0 sc0 ls0 ws0">,</div><div class="t m0 x42 h7 y73 ff2 fs5 fc0 sc0 ls0 ws0">41</div><div class="t m4 x43 h7 y73 ff2 fs5 fc0 sc0 ls0 ws0">]<span class="_ _8"> </span>and<span class="_ _7"> </span>p<span class="_ _3"></span>orted<span class="_ _8"> </span>to<span class="_ _8"> </span>untrusted</div><div class="t m10 x26 h7 y92 ff2 fs5 fc0 sc0 ls0 ws0">environments<span class="_"> </span>with<span class="_"> </span>Byzantine<span class="_"> </span>faults.<span class="_"> </span>In<span class="_"> </span>Fabric,<span class="_"> </span>every<span class="_ _d"> </span>transaction<span class="_"> </span>is</div><div class="t m1 x26 h7 y93 ff2 fs5 fc0 sc0 ls0 ws0">executed<span class="_"> </span>(endorsed)<span class="_"> </span>only<span class="_"> </span>by<span class="_"> </span>a<span class="_"> </span>subset<span class="_"> </span>of<span class="_"> </span>the<span class="_"> </span>peers,<span class="_"> </span>which<span class="_"> </span>allows<span class="_"> </span>for</div><div class="t m24 x26 h7 y94 ff2 fs5 fc0 sc0 ls0 ws0">parallel<span class="_"> </span>execution<span class="_"> </span>and<span class="_"> </span>addresses<span class="_"> </span>potential<span class="_"> </span>non-determinism,<span class="_"> </span>draw-</div><div class="t m1 x26 h7 y95 ff2 fs5 fc0 sc0 ls0 ws0">ing<span class="_ _6"> </span>on<span class="_ _a"> </span>“execute-verify”<span class="_ _b"> </span>BFT<span class="_ _a"> </span>replication<span class="_ _6"> </span>[</div><div class="t m0 x43 h7 y95 ff2 fs5 fc0 sc0 ls0 ws0">37</div><div class="t m1 x44 h7 y95 ff2 fs5 fc0 sc0 ls0 ws0">].<span class="_ _6"> </span>A<span class="_ _a"> </span>exible<span class="_ _6"> </span>endorsement</div><div class="t m8 x26 h7 y96 ff2 fs5 fc0 sc0 ls0 ws0">policy<span class="_"> </span>species<span class="_"> </span>which<span class="_ _d"> </span>pe<span class="_ _3"></span>ers,<span class="_"> </span>or<span class="_"> </span>how<span class="_"> </span>many<span class="_"> </span>of<span class="_"> </span>them,<span class="_"> </span>need<span class="_"> </span>to<span class="_"> </span>vouch</div><div class="t m0 x26 h7 y97 ff2 fs5 fc0 sc0 ls0 ws0">for<span class="_"> </span>the<span class="_"> </span>correct<span class="_"> </span>execution<span class="_"> </span>of<span class="_"> </span>a<span class="_"> </span>given<span class="_"> </span>smart<span class="_"> </span>contract.</div><div class="t mf x29 h7 y98 ff2 fs5 fc0 sc0 ls0 ws0">Second,<span class="_"> </span>Fabric<span class="_"> </span>incorporates<span class="_"> </span><span class="ff5">active<span class="_ _c"> </span>replication<span class="_ _c"> </span></span>in<span class="_"> </span>the<span class="_"> </span>sense<span class="_"> </span>that</div><div class="t m9 x26 h7 y99 ff2 fs5 fc0 sc0 ls0 ws0">the<span class="_"> </span>transaction’s<span class="_"> </span>eects<span class="_"> </span>on<span class="_"> </span>the<span class="_"> </span>ledger<span class="_"> </span>state<span class="_"> </span>are<span class="_"> </span>only<span class="_"> </span>written<span class="_"> </span>after</div><div class="t m1 x26 h7 y9a ff2 fs5 fc0 sc0 ls0 ws0">reaching<span class="_"> </span>consensus<span class="_ _a"> </span>on<span class="_"> </span>a<span class="_"> </span>total<span class="_ _a"> </span>order<span class="_"> </span>among<span class="_ _a"> </span>them,<span class="_"> </span>in<span class="_"> </span>the<span class="_ _a"> </span>determinis-</div><div class="t m0 x26 h7 y9b ff2 fs5 fc0 sc0 ls0 ws0">tic<span class="_"> </span>validation<span class="_"> </span>step<span class="_"> </span>executed<span class="_"> </span>by<span class="_"> </span>each<span class="_"> </span>peer<span class="_"> </span>individually<span class="_ _4"></span>.<span class="_"> </span>This<span class="_"> </span>allows</div><div class="t m13 x26 h7 y9c ff2 fs5 fc0 sc0 ls0 ws0">Fabric<span class="_"> </span>to<span class="_"> </span>respect<span class="_"> </span>application-specic<span class="_"> </span>trust<span class="_"> </span>assumptions<span class="_"> </span>according</div><div class="t m4 x26 h7 y9d ff2 fs5 fc0 sc0 ls0 ws0">to<span class="_ _7"> </span>the<span class="_ _d"> </span>transaction<span class="_ _7"> </span>endorsement.<span class="_ _7"> </span>Moreover<span class="_ _2"></span>,<span class="_ _7"> </span>the<span class="_ _7"> </span>ordering<span class="_ _7"> </span>of<span class="_ _d"> </span>state</div><div class="t m4 x26 h7 y9e ff2 fs5 fc0 sc0 ls0 ws0">updates<span class="_"> </span>is<span class="_"> </span>delegate<span class="_ _3"></span>d<span class="_"> </span>to<span class="_"> </span>a<span class="_"> </span>mo<span class="_ _3"></span>dular<span class="_"> </span>component<span class="_"> </span>for<span class="_ _d"> </span>consensus<span class="_"> </span>(i.e.,</div><div class="t m1f x26 h7 y9f ff2 fs5 fc0 sc0 ls0 ws0">atomic<span class="_"> </span>broadcast),<span class="_"> </span>which<span class="_"> </span>is<span class="_"> </span>stateless<span class="_"> </span>and<span class="_"> </span>logically<span class="_"> </span>decoupled<span class="_"> </span>from</div><div class="t m0 x26 h7 ya0 ff2 fs5 fc0 sc0 ls0 ws0">the<span class="_"> </span>peers<span class="_"> </span>that<span class="_"> </span>execute<span class="_"> </span>transactions<span class="_"> </span>and<span class="_"> </span>maintain<span class="_"> </span>the<span class="_"> </span>ledger<span class="_ _4"></span>.<span class="_"> </span>Since</div><div class="t m4 x26 h7 ya1 ff2 fs5 fc0 sc0 ls0 ws0">consensus<span class="_ _7"> </span>is<span class="_ _7"> </span>modular<span class="_ _4"></span>,<span class="_ _7"> </span>its<span class="_ _7"> </span>implementation<span class="_ _7"> </span>can<span class="_ _7"> </span>b<span class="_ _3"></span>e<span class="_ _7"> </span>tailored<span class="_ _7"> </span>to<span class="_ _7"> </span>the</div><div class="t mb x26 h7 ya2 ff2 fs5 fc0 sc0 ls0 ws0">trust<span class="_"> </span>assumption<span class="_"> </span>of<span class="_"> </span>a<span class="_"> </span>particular<span class="_"> </span>deployment.<span class="_"> </span>Although<span class="_"> </span>it<span class="_"> </span>is<span class="_ _d"> </span>readily</div><div class="t m25 x26 h7 ya3 ff2 fs5 fc0 sc0 ls0 ws0">possible<span class="_"> </span>to<span class="_"> </span>use<span class="_"> </span>the<span class="_"> </span>blockchain<span class="_ _d"> </span>peers<span class="_ _d"> </span>also<span class="_"> </span>for<span class="_"> </span>implementing<span class="_"> </span>consen-</div><div class="t m1d x26 h7 ya4 ff2 fs5 fc0 sc0 ls0 ws0">sus,<span class="_"> </span>the<span class="_"> </span>separation<span class="_"> </span>of<span class="_"> </span>the<span class="_"> </span>two<span class="_"> </span>roles<span class="_"> </span>adds<span class="_"> </span>exibility<span class="_"> </span>and<span class="_"> </span>allo<span class="_ _4"></span>ws<span class="_"> </span>one</div><div class="t m1 x26 h7 ya5 ff2 fs5 fc0 sc0 ls0 ws0">to<span class="_"> </span>rely<span class="_"> </span>on<span class="_"> </span>well-established<span class="_"> </span>toolkits<span class="_"> </span>for<span class="_"> </span>CFT<span class="_"> </span>(crash<span class="_"> </span>fault-tolerant)<span class="_"> </span>or</div><div class="t m0 x26 h7 ya6 ff2 fs5 fc0 sc0 ls0 ws0">BFT<span class="_"> </span>ordering.</div><div class="t m1e x29 h7 ya7 ff2 fs5 fc0 sc0 ls0 ws0">Overall,<span class="_"> </span>this<span class="_"> </span><span class="ff5">hybrid<span class="_ _c"> </span>replication<span class="_ _d"> </span></span>design,<span class="_"> </span>which<span class="_"> </span>mixes<span class="_"> </span>passive<span class="_"> </span>and</div><div class="t m4 x26 h7 ya8 ff2 fs5 fc0 sc0 ls0 ws0">active<span class="_"> </span>replication<span class="_ _d"> </span>in<span class="_ _7"> </span>the<span class="_"> </span>Byzantine<span class="_ _7"> </span>model,<span class="_ _d"> </span>and<span class="_ _7"> </span>the<span class="_"> </span><span class="ff5">execute-order-</span></div><div class="t m9 x26 h7 ya9 ff5 fs5 fc0 sc0 ls0 ws0">validate<span class="_ _d"> </span><span class="ff2">paradigm,<span class="_"> </span>represent<span class="_"> </span>the<span class="_"> </span>main<span class="_"> </span>inno<span class="_ _4"></span>vation<span class="_"> </span>in<span class="_"> </span>Fabric<span class="_"> </span>archi-</span></div><div class="t m6 x26 h7 yaa ff2 fs5 fc0 sc0 ls0 ws0">tecture.<span class="_"> </span>They<span class="_"> </span>resolve<span class="_"> </span>the<span class="_"> </span>issues<span class="_"> </span>mentioned<span class="_"> </span>before<span class="_"> </span>and<span class="_"> </span>make<span class="_"> </span>Fabric</div><div class="t mb x26 h7 yab ff2 fs5 fc0 sc0 ls0 ws0">a<span class="_"> </span>scalable<span class="_"> </span>system<span class="_"> </span>for<span class="_"> </span>permissioned<span class="_ _d"> </span>blockchains<span class="_"> </span>supp<span class="_ _3"></span>orting<span class="_"> </span>exible</div><div class="t m0 x26 h7 yac ff2 fs5 fc0 sc0 ls0 ws0">trust<span class="_"> </span>assumptions.</div><div class="t m1 x29 h7 yad ff2 fs5 fc0 sc0 ls0 ws0">T<span class="_ _2"></span>o<span class="_ _a"> </span>implement<span class="_ _a"> </span>this<span class="_ _6"> </span>architecture,<span class="_ _a"> </span>Fabric<span class="_ _6"> </span>contains<span class="_"> </span>modular<span class="_ _6"> </span>building</div><div class="t m0 x26 h7 yae ff2 fs5 fc0 sc0 ls0 ws0">blocks<span class="_"> </span>for<span class="_"> </span>each<span class="_"> </span>of<span class="_"> </span>the<span class="_"> </span>following<span class="_"> </span>components:</div><a class="l" rel='nofollow' onclick='return false;'><div class="d m19"></div></a><a class="l" rel='nofollow' onclick='return false;'><div class="d m19"></div></a><a class="l" rel='nofollow' onclick='return false;'><div class="d m19"></div></a><a class="l" rel='nofollow' onclick='return false;'><div class="d m19"></div></a><a class="l" rel='nofollow' onclick='return false;'><div class="d m19"></div></a><a class="l" rel='nofollow' onclick='return false;'><div class="d m19"></div></a><a class="l" rel='nofollow' onclick='return false;'><div class="d m19"></div></a><a class="l" rel='nofollow' onclick='return false;'><div class="d m19"></div></a><a class="l" rel='nofollow' onclick='return false;'><div class="d m19"></div></a><a class="l" rel='nofollow' onclick='return false;'><div class="d m19"></div></a><a class="l" rel='nofollow' onclick='return false;'><div class="d m19"></div></a><a class="l" rel='nofollow' onclick='return false;'><div class="d m19"></div></a><a class="l" rel='nofollow' onclick='return false;'><div class="d m19"></div></a><a class="l" rel='nofollow' onclick='return false;'><div class="d m19"></div></a><a class="l" rel='nofollow' onclick='return false;'><div class="d m19"></div></a><a class="l" rel='nofollow' onclick='return false;'><div class="d m19"></div></a></div><div class="pi" data-data='{"ctm":[1.568627,0.000000,0.000000,1.568627,0.000000,0.000000]}'></div></div>
<div id="pf3" class="pf w0 h0" data-page-no="3"><div class="pc pc3 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="https://static.pudn.com/prod/directory_preview_static/6251548a6caf5961923ea8ee/bg3.jpg"><div class="t m0 x22 hd y59 ff6 fs5 fc0 sc0 ls0 ws0">Hyperledger<span class="_"> </span>Fabric:<span class="_ _7"> </span>A<span class="_"> </span>Distributed<span class="_"> </span>Operating<span class="_"> </span>System<span class="_"> </span>for<span class="_"> </span>Permissioned<span class="_"> </span>Blo<span class="_ _3"></span>ckchains<span class="_ _12"> </span>EuroSys<span class="_"> </span>’18,<span class="_"> </span>April<span class="_"> </span>23–26,<span class="_"> </span>2018,<span class="_"> </span>Porto,<span class="_"> </span>Portugal</div><div class="t m0 x25 he y5a ff7 fs5 fc0 sc0 ls0 ws0">•</div><div class="t m4 x34 h7 y5a ff2 fs5 fc0 sc0 ls0 ws0">An<span class="_"> </span><span class="ff5">ordering<span class="_ _d"> </span>service<span class="_ _7"> </span></span>atomically<span class="_ _d"> </span>broadcasts<span class="_ _d"> </span>state<span class="_ _d"> </span>updates<span class="_ _d"> </span>to</div><div class="t m1 x34 h7 y5b ff2 fs5 fc0 sc0 ls0 ws0">peers<span class="_"> </span>and<span class="_"> </span>establishes<span class="_"> </span>consensus<span class="_ _a"> </span>on<span class="_"> </span>the<span class="_"> </span>order<span class="_ _a"> </span>of<span class="_"> </span>transactions.</div><div class="t m0 x25 he y5c ff7 fs5 fc0 sc0 ls0 ws0">•</div><div class="t mc x34 h7 y5c ff2 fs5 fc0 sc0 ls0 ws0">A<span class="_"> </span><span class="ff5">membership<span class="_ _d"> </span>service<span class="_ _d"> </span>provider<span class="_ _7"> </span></span>is<span class="_"> </span>responsible<span class="_"> </span>for<span class="_"> </span>associating</div><div class="t m1c x34 h7 y5d ff2 fs5 fc0 sc0 ls0 ws0">peers<span class="_"> </span>with<span class="_"> </span>cr<span class="_ _3"></span>yptographic<span class="_"> </span>identities.<span class="_"> </span>It<span class="_"> </span>maintains<span class="_ _d"> </span>the<span class="_"> </span>p<span class="_ _3"></span>ermis-</div><div class="t m0 x34 h7 y5e ff2 fs5 fc0 sc0 ls0 ws0">sioned<span class="_"> </span>nature<span class="_"> </span>of<span class="_"> </span>Fabric.</div><div class="t m0 x25 he y5f ff7 fs5 fc0 sc0 ls0 ws0">•</div><div class="t m1 x34 h7 y5f ff2 fs5 fc0 sc0 ls0 ws0">An<span class="_ _b"> </span>optional<span class="_ _6"> </span><span class="ff5">p<span class="_"> </span>e<span class="_ _3"></span>er-to-peer<span class="_ _6"> </span>gossip<span class="_ _6"> </span>service<span class="_ _a"> </span></span>disseminates<span class="_ _6"> </span>the<span class="_ _6"> </span>blocks</div><div class="t m0 x34 h7 y60 ff2 fs5 fc0 sc0 ls0 ws0">output<span class="_"> </span>by<span class="_"> </span>ordering<span class="_"> </span>service<span class="_"> </span>to<span class="_"> </span>all<span class="_"> </span>peers.</div><div class="t m0 x25 he y61 ff7 fs5 fc0 sc0 ls0 ws0">•</div><div class="t m1 x34 h7 y61 ff5 fs5 fc0 sc0 ls0 ws0">Smart<span class="_ _6"> </span>contracts<span class="_ _c"> </span><span class="ff2">in<span class="_ _6"> </span>Fabric<span class="_ _a"> </span>run<span class="_ _a"> </span>within<span class="_ _6"> </span>a<span class="_ _a"> </span>container<span class="_ _a"> </span>environment</span></div><div class="t m1a x34 h7 y62 ff2 fs5 fc0 sc0 ls0 ws0">for<span class="_"> </span>isolation.<span class="_"> </span>They<span class="_"> </span>can<span class="_"> </span>be<span class="_"> </span>written<span class="_"> </span>in<span class="_"> </span>standard<span class="_"> </span>programming</div><div class="t m0 x34 h7 y63 ff2 fs5 fc0 sc0 ls0 ws0">languages<span class="_"> </span>but<span class="_"> </span>do<span class="_"> </span>not<span class="_"> </span>have<span class="_"> </span>direct<span class="_"> </span>access<span class="_"> </span>to<span class="_"> </span>the<span class="_"> </span>ledger<span class="_"> </span>state.</div><div class="t m0 x25 he y64 ff7 fs5 fc0 sc0 ls0 ws0">•</div><div class="t m4 x34 h7 y64 ff2 fs5 fc0 sc0 ls0 ws0">Each<span class="_ _7"> </span>peer<span class="_ _8"> </span>locally<span class="_ _7"> </span>maintains<span class="_ _8"> </span>the<span class="_ _7"> </span><span class="ff5">ledger<span class="_ _11"> </span></span>in<span class="_ _d"> </span>the<span class="_ _8"> </span>form<span class="_ _7"> </span>of<span class="_ _8"> </span>the</div><div class="t m1 x34 h7 y65 ff2 fs5 fc0 sc0 ls0 ws0">append-only<span class="_ _a"> </span>blockchain<span class="_ _a"> </span>and<span class="_ _a"> </span>as<span class="_ _a"> </span>a<span class="_ _a"> </span>snapshot<span class="_ _a"> </span>of<span class="_ _a"> </span>the<span class="_ _a"> </span>most<span class="_ _a"> </span>recent</div><div class="t m0 x34 h7 y66 ff2 fs5 fc0 sc0 ls0 ws0">state<span class="_"> </span>in<span class="_"> </span>a<span class="_"> </span>key-value<span class="_"> </span>store.</div><div class="t m24 x23 h7 yaf ff2 fs5 fc0 sc0 ls0 ws0">The<span class="_"> </span>remainder<span class="_"> </span>of<span class="_"> </span>this<span class="_"> </span>paper<span class="_"> </span>describes<span class="_ _d"> </span>the<span class="_"> </span>architecture<span class="_"> </span>of<span class="_"> </span>Fabric</div><div class="t m21 x22 h7 yb0 ff2 fs5 fc0 sc0 ls0 ws0">and<span class="_"> </span>our<span class="_"> </span>experience<span class="_"> </span>with<span class="_"> </span>it.<span class="_"> </span>Section<span class="_"> </span>2<span class="_"> </span>summarizes<span class="_ _a"> </span>the<span class="_"> </span>state<span class="_"> </span>of<span class="_"> </span>the</div><div class="t m6 x22 h7 yb1 ff2 fs5 fc0 sc0 ls0 ws0">art<span class="_"> </span>and<span class="_"> </span>explains<span class="_"> </span>the<span class="_"> </span>rationale<span class="_"> </span>behind<span class="_"> </span>various<span class="_"> </span>design<span class="_ _d"> </span>decisions.<span class="_"> </span>Se<span class="_ _3"></span>c-</div><div class="t m26 x22 h7 yb2 ff2 fs5 fc0 sc0 ls0 ws0">tion<span class="_"> </span>3<span class="_"> </span>introduces<span class="_"> </span>the<span class="_"> </span>architecture<span class="_"> </span>and<span class="_"> </span>the<span class="_ _a"> </span>execute-order-validate</div><div class="t me x22 h7 yb3 ff2 fs5 fc0 sc0 ls0 ws0">approach<span class="_"> </span>of<span class="_"> </span>Fabric<span class="_"> </span>in<span class="_"> </span>detail,<span class="_"> </span>illustrating<span class="_"> </span>the<span class="_"> </span>transaction<span class="_"> </span>execution</div><div class="t m1 x22 h7 yb4 ff2 fs5 fc0 sc0 ls0 ws0">ow<span class="_ _2"></span>.<span class="_"> </span>In<span class="_"> </span>Section<span class="_"> </span>4,<span class="_"> </span>the<span class="_"> </span>key<span class="_"> </span>components<span class="_"> </span>of<span class="_"> </span>Fabric<span class="_"> </span>are<span class="_"> </span>dened,<span class="_"> </span>in<span class="_"> </span>par-</div><div class="t m10 x22 h7 yb5 ff2 fs5 fc0 sc0 ls0 ws0">ticular<span class="_ _2"></span>,<span class="_"> </span>the<span class="_"> </span>ordering<span class="_"> </span>ser<span class="_ _3"></span>vice,<span class="_"> </span>membership<span class="_"> </span>ser<span class="_ _3"></span>vice,<span class="_"> </span>peer-to-peer<span class="_"> </span>gos-</div><div class="t m20 x22 h7 yb6 ff2 fs5 fc0 sc0 ls0 ws0">sip,<span class="_"> </span>ledger<span class="_"> </span>database,<span class="_"> </span>and<span class="_"> </span>smart-contract<span class="_"> </span>API.<span class="_"> </span>Results<span class="_"> </span>and<span class="_ _a"> </span>insights</div><div class="t m1 x22 h7 yb7 ff2 fs5 fc0 sc0 ls0 ws0">gained<span class="_ _6"> </span>in<span class="_ _6"> </span>a<span class="_ _a"> </span>performance<span class="_ _6"> </span>evaluation<span class="_ _6"> </span>of<span class="_ _a"> </span>Fabric<span class="_ _6"> </span>with<span class="_ _6"> </span>a<span class="_ _6"> </span>Bitcoin-inspired</div><div class="t m14 x22 h7 yb8 ff2 fs5 fc0 sc0 ls0 ws0">cryptocurrency<span class="_ _4"></span>,<span class="_"> </span>deploy<span class="_ _4"></span>ed<span class="_"> </span>in<span class="_"> </span>a<span class="_"> </span>cluster<span class="_"> </span>and<span class="_"> </span>W<span class="_ _5"></span>AN<span class="_"> </span>environments<span class="_"> </span>on</div><div class="t m1 x22 h7 yb9 ff2 fs5 fc0 sc0 ls0 ws0">commodity<span class="_ _6"> </span>public<span class="_ _6"> </span>cloud<span class="_ _6"> </span>VMs,<span class="_ _6"> </span>are<span class="_ _6"> </span>given<span class="_ _6"> </span>in<span class="_ _6"> </span>Se<span class="_ _3"></span>ction<span class="_ _6"> </span>5.<span class="_ _6"> </span>They<span class="_ _6"> </span>show<span class="_ _6"> </span>that</div><div class="t m1 x22 h7 yba ff2 fs5 fc0 sc0 ls0 ws0">Fabric<span class="_"> </span>achieves,<span class="_"> </span>in<span class="_"> </span>popular<span class="_"> </span>deployment<span class="_"> </span>congurations,<span class="_"> </span>throughput</div><div class="t m6 x22 h7 ybb ff2 fs5 fc0 sc0 ls0 ws0">of<span class="_"> </span>more<span class="_"> </span>than<span class="_"> </span>3500<span class="_"> </span>tps,<span class="_"> </span>achieving<span class="_"> </span>nality<span class="_"> </span>[</div><div class="t m0 x45 h7 ybb ff2 fs5 fc0 sc0 ls0 ws0">57</div><div class="t m6 x46 h7 ybb ff2 fs5 fc0 sc0 ls0 ws0">]<span class="_"> </span>with<span class="_"> </span>latency<span class="_"> </span>of<span class="_"> </span>a<span class="_"> </span>few</div><div class="t m4 x22 h7 ybc ff2 fs5 fc0 sc0 ls0 ws0">hundred<span class="_ _7"> </span>ms<span class="_ _7"> </span>and<span class="_ _7"> </span>scaling<span class="_ _7"> </span>well<span class="_ _7"> </span>to<span class="_ _7"> </span>over<span class="_ _7"> </span>100<span class="_ _7"> </span>pe<span class="_ _3"></span>ers.<span class="_ _7"> </span>In<span class="_ _7"> </span>Section<span class="_ _7"> </span>6<span class="_ _8"> </span>we</div><div class="t mc x22 h7 ybd ff2 fs5 fc0 sc0 ls0 ws0">discuss<span class="_"> </span>a<span class="_"> </span>few<span class="_"> </span>real<span class="_"> </span>production<span class="_"> </span>use<span class="_"> </span>cases<span class="_"> </span>of<span class="_"> </span>Fabric.<span class="_"> </span>Finally<span class="_ _4"></span>,<span class="_"> </span>Section<span class="_"> </span>7</div><div class="t m0 x22 h7 ybe ff2 fs5 fc0 sc0 ls0 ws0">discusses<span class="_"> </span>related<span class="_"> </span>work.</div><div class="t m0 x22 h6 ybf ff4 fs4 fc0 sc0 ls0 ws0">2<span class="_ _f"> </span>BA<span class="_ _4"></span>CK<span class="_ _4"></span>GROUND</div><div class="t m0 x22 h6 yc0 ff4 fs4 fc0 sc0 ls0 ws0">2.1<span class="_ _f"> </span>Order-Execute<span class="_ _7"> </span>Architecture<span class="_ _7"> </span>for</div><div class="t m0 x34 h6 yc1 ff4 fs4 fc0 sc0 ls0 ws0">Blockchains</div><div class="t m21 x22 h7 yc2 ff2 fs5 fc0 sc0 ls0 ws0">All<span class="_"> </span>previous<span class="_"> </span>blockchain<span class="_"> </span>systems,<span class="_ _a"> </span>permissione<span class="_ _3"></span>d<span class="_"> </span>or<span class="_"> </span>not,<span class="_"> </span>follow<span class="_"> </span>the</div><div class="t m4 x22 h7 yc3 ff2 fs5 fc0 sc0 ls0 ws0">order-execute<span class="_ _7"> </span>architecture.<span class="_ _7"> </span>This<span class="_ _8"> </span>means<span class="_ _7"> </span>that<span class="_ _8"> </span>the<span class="_ _8"> </span>blockchain<span class="_ _7"> </span>net-</div><div class="t m1 x22 h7 yc4 ff2 fs5 fc0 sc0 ls0 ws0">work<span class="_ _a"> </span>orders<span class="_"> </span>transactions<span class="_ _6"> </span>rst,<span class="_"> </span>using<span class="_ _a"> </span>a<span class="_"> </span>consensus<span class="_ _a"> </span>protocol,<span class="_ _a"> </span>and<span class="_"> </span>then</div><div class="t m0 x22 h7 yc5 ff2 fs5 fc0 sc0 ls0 ws0">executes<span class="_"> </span>them<span class="_"> </span>in<span class="_"> </span>the<span class="_"> </span>same<span class="_"> </span>order<span class="_"> </span>on<span class="_"> </span>all<span class="_"> </span>peers<span class="_"> </span>sequentially<span class="_ _4"></span>.</div><div class="t m0 x7 hf yc6 ff2 fs9 fc0 sc0 ls0 ws0">1</div><div class="t m4 x23 h7 yc7 ff2 fs5 fc0 sc0 ls0 ws0">For<span class="_ _7"> </span>instance,<span class="_"> </span>a<span class="_ _7"> </span>Po<span class="_ _4"></span>W<span class="_ _4"></span>-based<span class="_ _d"> </span>permissionless<span class="_ _7"> </span>blockchain<span class="_ _7"> </span>such<span class="_ _7"> </span>as</div><div class="t m4 x22 h7 yc8 ff2 fs5 fc0 sc0 ls0 ws0">Ethereum<span class="_ _7"> </span>combines<span class="_ _7"> </span>consensus<span class="_ _7"> </span>and<span class="_ _7"> </span>execution<span class="_ _7"> </span>of<span class="_ _7"> </span>transactions<span class="_ _7"> </span>as</div><div class="t m1 x22 h7 yc9 ff2 fs5 fc0 sc0 ls0 ws0">follows:<span class="_ _6"> </span>(1)<span class="_ _a"> </span>every<span class="_ _a"> </span>peer<span class="_"> </span>(i.e<span class="_ _4"></span>.,<span class="_ _6"> </span>a<span class="_ _a"> </span>node<span class="_ _a"> </span>that<span class="_ _a"> </span>participates<span class="_ _a"> </span>in<span class="_ _a"> </span>consensus)<span class="_ _a"> </span>as-</div><div class="t mc x22 h7 yca ff2 fs5 fc0 sc0 ls0 ws0">sembles<span class="_"> </span>a<span class="_"> </span>block<span class="_"> </span>containing<span class="_"> </span>valid<span class="_"> </span>transactions<span class="_"> </span>(to<span class="_"> </span>establish<span class="_ _d"> </span>validity<span class="_ _4"></span>,</div><div class="t m1 x22 h7 ycb ff2 fs5 fc0 sc0 ls0 ws0">this<span class="_"> </span>peer<span class="_"> </span>already<span class="_"> </span>pre-e<span class="_ _4"></span>xecutes<span class="_"> </span>those<span class="_"> </span>transactions);<span class="_"> </span>(2)<span class="_"> </span>the<span class="_ _a"> </span>pe<span class="_ _3"></span>er<span class="_"> </span>tries</div><div class="t m4 x22 h7 ycc ff2 fs5 fc0 sc0 ls0 ws0">to<span class="_"> </span>solve<span class="_"> </span>a<span class="_"> </span>Po<span class="_ _4"></span>W<span class="_"> </span>puzzle<span class="_"> </span>[</div><div class="t m0 x47 h7 ycc ff2 fs5 fc0 sc0 ls0 ws0">44</div><div class="t m4 x48 h7 ycc ff2 fs5 fc0 sc0 ls0 ws0">];<span class="_"> </span>(3)<span class="_"> </span>if<span class="_"> </span>the<span class="_"> </span>peer<span class="_ _d"> </span>is<span class="_"> </span>lucky<span class="_"> </span>and<span class="_"> </span>solves<span class="_"> </span>the</div><div class="t mc x22 h7 ycd ff2 fs5 fc0 sc0 ls0 ws0">puzzle,<span class="_"> </span>it<span class="_"> </span>disseminates<span class="_"> </span>the<span class="_"> </span>block<span class="_"> </span>to<span class="_"> </span>the<span class="_"> </span>network<span class="_"> </span>via<span class="_"> </span>a<span class="_"> </span>gossip<span class="_"> </span>proto-</div><div class="t m25 x22 h7 yce ff2 fs5 fc0 sc0 ls0 ws0">col;<span class="_"> </span>and<span class="_"> </span>(4)<span class="_"> </span>every<span class="_"> </span>pe<span class="_ _3"></span>er<span class="_"> </span>receiving<span class="_"> </span>the<span class="_"> </span>block<span class="_"> </span>validates<span class="_ _d"> </span>the<span class="_"> </span>solution<span class="_"> </span>to</div><div class="t m8 x22 h7 ycf ff2 fs5 fc0 sc0 ls0 ws0">the<span class="_"> </span>puzzle<span class="_"> </span><span class="ff5">and<span class="_ _7"> </span></span>all<span class="_"> </span>transactions<span class="_"> </span>in<span class="_"> </span>the<span class="_"> </span>blo<span class="_ _3"></span>ck.<span class="_"> </span>Eectively<span class="_ _2"></span>,<span class="_"> </span>every<span class="_ _d"> </span>peer</div><div class="t m23 x22 h7 yd0 ff2 fs5 fc0 sc0 ls0 ws0">thereby<span class="_"> </span>repeats<span class="_"> </span>the<span class="_"> </span>execution<span class="_"> </span>of<span class="_"> </span>the<span class="_"> </span>lucky<span class="_"> </span>peer<span class="_"> </span>from<span class="_"> </span>its<span class="_"> </span>rst<span class="_"> </span>step<span class="_ _4"></span>.</div><div class="t m4 x22 h7 yd1 ff2 fs5 fc0 sc0 ls0 ws0">Moreover<span class="_ _2"></span>,<span class="_"> </span>all<span class="_"> </span>peers<span class="_ _d"> </span>execute<span class="_"> </span>the<span class="_"> </span>transactions<span class="_"> </span><span class="ff5">se<span class="_"> </span>quentially<span class="_ _7"> </span></span>(within</div><div class="t m4 x22 h7 yd2 ff2 fs5 fc0 sc0 ls0 ws0">one<span class="_ _7"> </span>blo<span class="_ _3"></span>ck<span class="_ _8"> </span>and<span class="_ _8"> </span>across<span class="_ _7"> </span>blocks).<span class="_ _8"> </span>The<span class="_ _8"> </span>order-execute<span class="_ _8"> </span>architecture<span class="_ _7"> </span>is</div><div class="t m0 x22 h7 yd3 ff2 fs5 fc0 sc0 ls0 ws0">illustrated<span class="_"> </span>by<span class="_"> </span>Fig.<span class="_"> </span>1.</div><div class="t m1 x23 h7 yd4 ff2 fs5 fc0 sc0 ls0 ws0">Existing<span class="_ _6"> </span>permissione<span class="_ _3"></span>d<span class="_ _6"> </span>blockchains<span class="_ _a"> </span>such<span class="_ _6"> </span>as<span class="_ _a"> </span>T<span class="_ _2"></span>endermint,<span class="_ _a"> </span>Chain,<span class="_ _6"> </span>or</div><div class="t m1 x22 h7 yd5 ff2 fs5 fc0 sc0 ls0 ws0">Quorum<span class="_ _6"> </span>typically<span class="_ _a"> </span>use<span class="_ _a"> </span>BFT<span class="_ _6"> </span>consensus<span class="_ _a"> </span>[</div><div class="t m0 x49 h7 yd5 ff2 fs5 fc0 sc0 ls0 ws0">24</div><div class="t m1 x19 h7 yd5 ff2 fs5 fc0 sc0 ls0 ws0">],<span class="_ _6"> </span>provided<span class="_ _a"> </span>by<span class="_ _6"> </span>PBFT<span class="_ _a"> </span>[</div><div class="t m0 x4a h7 yd5 ff2 fs5 fc0 sc0 ls0 ws0">26</div><div class="t m1 x2f h7 yd5 ff2 fs5 fc0 sc0 ls0 ws0">]<span class="_ _6"> </span>or</div><div class="t m7 x22 h7 yd6 ff2 fs5 fc0 sc0 ls0 ws0">other<span class="_"> </span>protocols<span class="_"> </span>for<span class="_"> </span>atomic<span class="_"> </span>broadcast.<span class="_"> </span>Nevertheless,<span class="_"> </span>they<span class="_"> </span>all<span class="_"> </span>follo<span class="_ _4"></span>w</div><div class="t m0 x4b h8 yd7 ff2 fs6 fc0 sc0 ls0 ws0">1</div><div class="t m4 x25 h9 yd8 ff2 fs7 fc0 sc0 ls0 ws0">In<span class="_"> </span>many<span class="_ _c"> </span>blockchains<span class="_"> </span>with<span class="_ _c"> </span>a<span class="_"> </span>hard-coded<span class="_ _c"> </span>primary<span class="_ _a"> </span>application,<span class="_ _c"> </span>such<span class="_"> </span>as<span class="_ _c"> </span>Bitcoin,</div><div class="t m4 x22 h9 yd9 ff2 fs7 fc0 sc0 ls0 ws0">this<span class="_ _c"> </span>transaction<span class="_ _c"> </span>execution<span class="_ _c"> </span>is<span class="_ _c"> </span>called<span class="_ _c"> </span>“transaction<span class="_ _c"> </span>validation.<span class="_ _2"></span>”<span class="_ _c"> </span>Here<span class="_ _a"> </span>we<span class="_ _c"> </span>call<span class="_ _c"> </span>this<span class="_ _c"> </span>step</div><div class="t m0 x22 h9 yda ff5 fs7 fc0 sc0 ls0 ws0">transaction<span class="_ _6"> </span>execution<span class="_ _a"> </span><span class="ff2">to<span class="_"> </span>harmonize<span class="_"> </span>the<span class="_"> </span>terminology<span class="_ _4"></span>.</span></div><div class="c x4c ydb w2 h10"><div class="t m0 x6 h11 ydc ff8 fsa fc0 sc0 ls0 ws0"><span class="fc1 sc0">Up</span><span class="fc1 sc0">d</span><span class="fc1 sc0">at</span><span class="fc1 sc0">e</span><span class="fc1 sc0"> </span><span class="fc1 sc0">s</span><span class="fc1 sc0">t</span><span class="fc1 sc0">at</span><span class="fc1 sc0">e</span><span class="_ _13"></span><span class="fc1 sc0">O</span><span class="fc1 sc0">r</span><span class="fc1 sc0">d</span><span class="fc1 sc0">e</span><span class="fc1 sc0">r</span><span class="_ _14"> </span><span class="fc1 sc0">Ex</span><span class="fc1 sc0">e</span><span class="fc1 sc0">cu</span><span class="fc1 sc0">t</span><span class="fc1 sc0">e</span></div><div class="t m0 x4b h12 ydd ff9 fsb fc0 sc0 ls0 ws0"><span class="fc1 sc0">●</span></div><div class="t m0 x4d h13 yde ff8 fsc fc0 sc0 ls0 ws0"><span class="fc1 sc0">D</span><span class="fc1 sc0">e</span><span class="fc1 sc0">t</span><span class="fc1 sc0">e</span><span class="fc1 sc0">r</span><span class="fc1 sc0">m</span><span class="fc1 sc0">i</span><span class="fc1 sc0">nis</span><span class="fc1 sc0">t</span><span class="fc1 sc0">i</span><span class="fc1 sc0">c</span><span class="fc1 sc0"> </span><span class="fc1 sc0">(</span><span class="fc1 sc0">!)</span></div><div class="t m0 x4d h13 ydf ff8 fsc fc0 sc0 ls0 ws0"><span class="fc1 sc0">e</span><span class="fc1 sc0">x</span><span class="fc1 sc0">e</span><span class="_ _4"></span><span class="fc1 sc0">c</span><span class="fc1 sc0">ut</span><span class="fc1 sc0">ion</span></div><div class="t m0 x4e h12 ydd ff9 fsb fc0 sc0 ls0 ws0"><span class="fc1 sc0">●</span></div><div class="t m0 x4f h13 yde ff8 fsc fc0 sc0 ls0 ws0"><span class="fc1 sc0">P</span><span class="fc1 sc0">e</span><span class="fc1 sc0">r</span><span class="fc1 sc0">s</span><span class="fc1 sc0">i</span><span class="fc1 sc0">s</span><span class="fc1 sc0">t</span><span class="fc1 sc0"> </span><span class="fc1 sc0">s</span><span class="fc1 sc0">t</span><span class="fc1 sc0">a</span><span class="fc1 sc0">t</span><span class="fc1 sc0">e</span><span class="fc1 sc0"> </span><span class="fc1 sc0">o</span><span class="fc1 sc0">n</span><span class="fc1 sc0"> </span></div><div class="t m0 x4f h13 ydf ff8 fsc fc0 sc0 ls0 ws0"><span class="fc1 sc0">a</span><span class="fc1 sc0">l</span><span class="fc1 sc0">l </span><span class="fc1 sc0">p</span><span class="fc1 sc0">e</span><span class="fc1 sc0">e</span><span class="fc1 sc0">r</span><span class="fc1 sc0">s</span></div><div class="t m0 x50 h12 ydd ff9 fsb fc0 sc0 ls0 ws0"><span class="fc1 sc0">●</span></div><div class="t m0 x51 h13 yde ff8 fsc fc0 sc0 ls0 ws0"><span class="fc1 sc0">C</span><span class="fc1 sc0">ons</span><span class="fc1 sc0">e</span><span class="fc1 sc0">ns</span><span class="fc1 sc0">us</span><span class="fc1 sc0"> </span><span class="fc1 sc0">or</span><span class="fc1 sc0"> </span></div><div class="t m0 x51 h13 ydf ff8 fsc fc0 sc0 ls0 ws0"><span class="fc1 sc0">a</span><span class="fc1 sc0">t</span><span class="fc1 sc0">om</span><span class="fc1 sc0">i</span><span class="fc1 sc0">c</span><span class="fc1 sc0"> </span><span class="fc1 sc0">b</span><span class="fc1 sc0">r</span><span class="fc1 sc0">o</span><span class="fc1 sc0">a</span><span class="fc1 sc0">d</span><span class="fc1 sc0">c</span><span class="fc1 sc0">a</span><span class="fc1 sc0">s</span><span class="fc1 sc0">t</span></div></div><div class="t m0 x52 h14 ye0 ff4 fs5 fc0 sc0 ls0 ws0">Figure<span class="_ _c"> </span>1:<span class="_ _c"> </span>Order-execute<span class="_ _c"> </span>architecture<span class="_ _d"> </span>in<span class="_ _c"> </span>replicated<span class="_ _c"> </span>ser<span class="_ _3"></span>vices.</div><div class="t m4 x26 h7 ye1 ff2 fs5 fc0 sc0 ls0 ws0">the<span class="_"> </span>same<span class="_ _d"> </span>order-execute<span class="_ _d"> </span>approach<span class="_ _d"> </span>and<span class="_ _7"> </span>implement<span class="_"> </span>classical<span class="_ _d"> </span><span class="ff5">active</span></div><div class="t m0 x26 h7 ye2 ff2 fs5 fc0 sc0 ls0 ws0">SMR<span class="_"> </span>[27,<span class="_"> </span>48].</div><div class="t m0 x26 h6 ye3 ff4 fs4 fc0 sc0 ls0 ws0">2.2<span class="_ _f"> </span>Limitations<span class="_ _7"> </span>of<span class="_ _7"> </span>Order-Execute</div><div class="t m1 x26 h7 ye4 ff2 fs5 fc0 sc0 ls0 ws0">The<span class="_ _a"> </span>order-execute<span class="_ _6"> </span>architecture<span class="_"> </span>is<span class="_ _6"> </span>conceptually<span class="_ _a"> </span>simple<span class="_ _a"> </span>and<span class="_ _a"> </span>therefore</div><div class="t m1b x26 h7 ye5 ff2 fs5 fc0 sc0 ls0 ws0">also<span class="_"> </span>widely<span class="_"> </span>used.<span class="_"> </span>However<span class="_ _2"></span>,<span class="_"> </span>it<span class="_"> </span>has<span class="_"> </span>several<span class="_"> </span>drawbacks<span class="_"> </span>when<span class="_"> </span>used<span class="_"> </span>in</div><div class="t m27 x26 h7 ye6 ff2 fs5 fc0 sc0 ls0 ws0">a<span class="_"> </span>general-purpose<span class="_"> </span>permissioned<span class="_"> </span>blo<span class="_ _3"></span>ckchain.<span class="_"> </span>W<span class="_ _2"></span>e<span class="_"> </span>discuss<span class="_"> </span>the<span class="_"> </span>three</div><div class="t m0 x26 h7 ye7 ff2 fs5 fc0 sc0 ls0 ws0">most<span class="_"> </span>signicant<span class="_"> </span>ones<span class="_"> </span>next.</div><div class="t m10 x29 h7 ye8 ff5 fs5 fc0 sc0 ls0 ws0">Sequential<span class="_ _c"> </span>execution.<span class="_ _11"> </span><span class="ff2">Executing<span class="_"> </span>the<span class="_"> </span>transactions<span class="_"> </span>se<span class="_ _3"></span>quentially<span class="_"> </span>on</span></div><div class="t m4 x26 h7 ye9 ff2 fs5 fc0 sc0 ls0 ws0">all<span class="_ _d"> </span>pe<span class="_ _3"></span>ers<span class="_ _d"> </span>limits<span class="_ _7"> </span>the<span class="_ _d"> </span>ee<span class="_ _3"></span>ctive<span class="_"> </span>throughput<span class="_ _7"> </span>that<span class="_ _d"> </span>can<span class="_ _7"> </span>be<span class="_ _7"> </span>achieved<span class="_"> </span>by</div><div class="t m6 x26 h7 yea ff2 fs5 fc0 sc0 ls0 ws0">the<span class="_"> </span>blockchain.<span class="_"> </span>In<span class="_"> </span>particular<span class="_ _4"></span>,<span class="_"> </span>since<span class="_"> </span>the<span class="_"> </span>throughput<span class="_"> </span>is<span class="_"> </span>inversely<span class="_"> </span>pro-</div><div class="t m1 x26 h7 yeb ff2 fs5 fc0 sc0 ls0 ws0">portional<span class="_"> </span>to<span class="_"> </span>the<span class="_"> </span>execution<span class="_ _d"> </span>latency<span class="_ _4"></span>,<span class="_"> </span>this<span class="_"> </span>may<span class="_"> </span>become<span class="_ _d"> </span>a<span class="_"> </span>performance</div><div class="t m1 x26 h7 yec ff2 fs5 fc0 sc0 ls0 ws0">bottleneck<span class="_"> </span>for<span class="_"> </span>all<span class="_"> </span>but<span class="_"> </span>the<span class="_"> </span>simplest<span class="_"> </span>smart<span class="_"> </span>contracts.<span class="_"> </span>Mor<span class="_ _4"></span>eover<span class="_ _2"></span>,<span class="_"> </span>recall</div><div class="t m1 x26 h7 yed ff2 fs5 fc0 sc0 ls0 ws0">that<span class="_ _a"> </span>in<span class="_ _6"> </span>contrast<span class="_"> </span>to<span class="_ _6"> </span>traditional<span class="_ _a"> </span>SMR,<span class="_ _a"> </span>the<span class="_ _a"> </span>blockchain<span class="_ _a"> </span>forms<span class="_ _a"> </span>a<span class="_ _a"> </span>universal</div><div class="t m7 x26 h7 yee ff2 fs5 fc0 sc0 ls0 ws0">computing<span class="_"> </span>engine<span class="_"> </span>and<span class="_"> </span>its<span class="_"> </span>payload<span class="_"> </span>applications<span class="_"> </span>might<span class="_"> </span>be<span class="_ _d"> </span>deployed</div><div class="t m23 x26 h7 yef ff2 fs5 fc0 sc0 ls0 ws0">by<span class="_"> </span>an<span class="_"> </span>adversary<span class="_ _2"></span>.<span class="_"> </span>A<span class="_"> </span>denial-of-ser<span class="_ _3"></span>vice<span class="_"> </span>(DoS)<span class="_"> </span>attack,<span class="_"> </span>which<span class="_"> </span>severely</div><div class="t m4 x26 h7 yf0 ff2 fs5 fc0 sc0 ls0 ws0">reduces<span class="_ _7"> </span>the<span class="_ _8"> </span>performance<span class="_ _8"> </span>of<span class="_ _7"> </span>such<span class="_ _8"> </span>a<span class="_ _7"> </span>blo<span class="_ _3"></span>ckchain,<span class="_ _7"> </span>could<span class="_ _8"> </span>simply<span class="_ _7"> </span>in-</div><div class="t m3 x26 h7 yf1 ff2 fs5 fc0 sc0 ls0 ws0">troduce<span class="_"> </span>smart<span class="_"> </span>contracts<span class="_"> </span>that<span class="_"> </span>take<span class="_"> </span>a<span class="_"> </span>very<span class="_"> </span>long<span class="_"> </span>time<span class="_"> </span>to<span class="_"> </span>execute.<span class="_"> </span>For</div><div class="t m22 x26 h7 yf2 ff2 fs5 fc0 sc0 ls0 ws0">example,<span class="_"> </span>a<span class="_"> </span>smart<span class="_"> </span>contract<span class="_"> </span>that<span class="_"> </span>executes<span class="_"> </span>an<span class="_"> </span>innite<span class="_"> </span>loop<span class="_"> </span>has<span class="_"> </span>a<span class="_ _d"> </span>fatal</div><div class="t m4 x26 h7 yf3 ff2 fs5 fc0 sc0 ls0 ws0">eect,<span class="_ _7"> </span>but<span class="_ _7"> </span>cannot<span class="_ _d"> </span>b<span class="_ _3"></span>e<span class="_ _7"> </span>detected<span class="_ _7"> </span>automatically<span class="_ _7"> </span>because<span class="_ _7"> </span>the<span class="_ _7"> </span>halting</div><div class="t m0 x26 h7 yf4 ff2 fs5 fc0 sc0 ls0 ws0">problem<span class="_"> </span>is<span class="_"> </span>unsolvable.</div><div class="t m1 x29 h7 yf5 ff2 fs5 fc0 sc0 ls0 ws0">T<span class="_ _2"></span>o<span class="_"> </span>cope<span class="_ _a"> </span>with<span class="_"> </span>this<span class="_ _a"> </span>issue,<span class="_"> </span>public<span class="_ _6"> </span>programmable<span class="_"> </span>blockchains<span class="_ _a"> </span>with<span class="_"> </span>a</div><div class="t m1d x26 h7 yf6 ff2 fs5 fc0 sc0 ls0 ws0">cryptocurrency<span class="_"> </span>account<span class="_"> </span>for<span class="_"> </span>the<span class="_"> </span>execution<span class="_"> </span>cost.<span class="_"> </span>Ethereum<span class="_"> </span>[</div><div class="t m0 x53 h7 yf6 ff2 fs5 fc0 sc0 ls0 ws0">58</div><div class="t m1d x54 h7 yf6 ff2 fs5 fc0 sc0 ls0 ws0">],<span class="_"> </span>for</div><div class="t m8 x26 h7 yf7 ff2 fs5 fc0 sc0 ls0 ws0">example,<span class="_"> </span>introduces<span class="_"> </span>the<span class="_"> </span>concept<span class="_"> </span>of<span class="_"> </span><span class="ff5">gas<span class="_ _d"> </span></span>consumed<span class="_"> </span>by<span class="_"> </span>a<span class="_"> </span>transaction</div><div class="t m4 x26 h7 yf8 ff2 fs5 fc0 sc0 ls0 ws0">execution,<span class="_"> </span>which<span class="_"> </span>is<span class="_"> </span>converted<span class="_"> </span>at<span class="_"> </span>a<span class="_"> </span><span class="ff5">gas<span class="_ _d"> </span>price<span class="_ _d"> </span></span>to<span class="_ _d"> </span>a<span class="_"> </span>cost<span class="_"> </span>in<span class="_"> </span>the<span class="_ _d"> </span>cr<span class="_ _3"></span>yp-</div><div class="t m1 x26 h7 yf9 ff2 fs5 fc0 sc0 ls0 ws0">tocurrency<span class="_"> </span>and<span class="_"> </span>billed<span class="_"> </span>to<span class="_ _a"> </span>the<span class="_"> </span>submitter<span class="_"> </span>of<span class="_"> </span>the<span class="_"> </span>transaction.<span class="_ _a"> </span>Ethereum</div><div class="t m4 x26 h7 yfa ff2 fs5 fc0 sc0 ls0 ws0">goes<span class="_ _7"> </span>a<span class="_ _d"> </span>long<span class="_ _7"> </span>way<span class="_ _d"> </span>to<span class="_ _7"> </span>support<span class="_ _7"> </span>this<span class="_ _d"> </span>concept,<span class="_ _7"> </span>assigns<span class="_ _7"> </span>a<span class="_ _d"> </span>cost<span class="_ _7"> </span>to<span class="_ _d"> </span>every</div><div class="t m1 x26 h7 yfb ff2 fs5 fc0 sc0 ls0 ws0">low-level<span class="_ _a"> </span>computation<span class="_"> </span>step<span class="_ _4"></span>,<span class="_"> </span>intr<span class="_ _4"></span>oducing<span class="_"> </span>its<span class="_ _a"> </span>own<span class="_"> </span>VM<span class="_ _a"> </span>for<span class="_"> </span>contr<span class="_ _4"></span>olling</div><div class="t m1e x26 h7 yfc ff2 fs5 fc0 sc0 ls0 ws0">execution.<span class="_"> </span>Although<span class="_"> </span>this<span class="_"> </span>appears<span class="_"> </span>to<span class="_"> </span>be<span class="_ _d"> </span>a<span class="_"> </span>viable<span class="_"> </span>solution<span class="_"> </span>for<span class="_"> </span>public</div><div class="t m4 x26 h7 yfd ff2 fs5 fc0 sc0 ls0 ws0">blockchains,<span class="_ _7"> </span>it<span class="_ _8"> </span>is<span class="_ _8"> </span>not<span class="_ _7"> </span>ade<span class="_ _3"></span>quate<span class="_ _7"> </span>in<span class="_ _8"> </span>the<span class="_ _8"> </span>permissioned<span class="_ _8"> </span>model<span class="_ _7"> </span>for<span class="_ _8"> </span>a</div><div class="t m0 x26 h7 yfe ff2 fs5 fc0 sc0 ls0 ws0">general-purpose<span class="_"> </span>system<span class="_"> </span>without<span class="_"> </span>a<span class="_"> </span>native<span class="_"> </span>cryptocurrency<span class="_ _4"></span>.</div><div class="t m16 x29 h7 yff ff2 fs5 fc0 sc0 ls0 ws0">The<span class="_"> </span>distributed-systems<span class="_"> </span>literature<span class="_"> </span>proposes<span class="_"> </span>many<span class="_"> </span>ways<span class="_"> </span>to<span class="_"> </span>im-</div><div class="t m22 x26 h7 y100 ff2 fs5 fc0 sc0 ls0 ws0">prove<span class="_"> </span>performance<span class="_"> </span>compared<span class="_"> </span>to<span class="_"> </span>sequential<span class="_"> </span>execution,<span class="_"> </span>for<span class="_"> </span>instance</div><div class="t m16 x26 h7 y101 ff2 fs5 fc0 sc0 ls0 ws0">through<span class="_"> </span>parallel<span class="_"> </span>execution<span class="_"> </span>of<span class="_ _a"> </span>unrelated<span class="_"> </span>operations<span class="_"> </span>[</div><div class="t m0 x55 h7 y101 ff2 fs5 fc0 sc0 ls0 ws0">46</div><div class="t m16 x56 h7 y101 ff2 fs5 fc0 sc0 ls0 ws0">].<span class="_"> </span>Unfortu-</div><div class="t m4 x26 h7 y102 ff2 fs5 fc0 sc0 ls0 ws0">nately<span class="_ _2"></span>,<span class="_ _7"> </span>such<span class="_"> </span>techniques<span class="_ _7"> </span>are<span class="_"> </span>still<span class="_ _d"> </span>to<span class="_ _d"> </span>b<span class="_ _3"></span>e<span class="_ _d"> </span>applied<span class="_ _7"> </span>successfully<span class="_"> </span>in<span class="_ _d"> </span>the</div><div class="t m1e x26 h7 y103 ff2 fs5 fc0 sc0 ls0 ws0">blockchain<span class="_"> </span>context<span class="_"> </span>of<span class="_"> </span>smart<span class="_"> </span>contracts.<span class="_"> </span>For<span class="_"> </span>instance,<span class="_"> </span>one<span class="_"> </span>challenge</div><div class="t m1f x26 h7 y104 ff2 fs5 fc0 sc0 ls0 ws0">is<span class="_"> </span>the<span class="_"> </span>requirement<span class="_"> </span>for<span class="_"> </span>deterministically<span class="_"> </span>inferring<span class="_"> </span>all<span class="_"> </span>dependencies</div><div class="t m1 x26 h7 y105 ff2 fs5 fc0 sc0 ls0 ws0">across<span class="_ _6"> </span>smart<span class="_"> </span>contracts,<span class="_ _6"> </span>which<span class="_ _a"> </span>is<span class="_ _a"> </span>particularly<span class="_"> </span>challenging<span class="_ _6"> </span>when<span class="_ _a"> </span>com-</div><div class="t m1a x26 h7 y106 ff2 fs5 fc0 sc0 ls0 ws0">bined<span class="_"> </span>with<span class="_"> </span>possible<span class="_"> </span>condentiality<span class="_ _d"> </span>constraints.<span class="_"> </span>Furthermore,<span class="_"> </span>these</div><div class="t m1 x26 h7 y107 ff2 fs5 fc0 sc0 ls0 ws0">techniques<span class="_ _a"> </span>are<span class="_ _a"> </span>of<span class="_ _a"> </span>no<span class="_"> </span>help<span class="_ _6"> </span>against<span class="_ _a"> </span>DoS<span class="_"> </span>attacks<span class="_ _6"> </span>by<span class="_ _a"> </span>contract<span class="_"> </span>code<span class="_ _6"> </span>from</div><div class="t m0 x26 h7 y108 ff2 fs5 fc0 sc0 ls0 ws0">untrusted<span class="_"> </span>developers.</div><div class="t m1 x29 h7 y109 ff5 fs5 fc0 sc0 ls0 ws0">Non-deterministic<span class="_ _a"> </span>code.<span class="_ _11"> </span><span class="ff2">Another<span class="_ _a"> </span>important<span class="_"> </span>problem<span class="_ _a"> </span>for<span class="_"> </span>an<span class="_ _a"> </span>order-</span></div><div class="t m1 x26 h7 y10a ff2 fs5 fc0 sc0 ls0 ws0">execute<span class="_ _a"> </span>architecture<span class="_ _6"> </span>are<span class="_"> </span>non-deterministic<span class="_ _6"> </span>transactions.<span class="_ _a"> </span>Operations</div><div class="t m9 x26 h7 y10b ff2 fs5 fc0 sc0 ls0 ws0">executed<span class="_"> </span>after<span class="_"> </span>consensus<span class="_"> </span>in<span class="_"> </span>active<span class="_"> </span>SMR<span class="_"> </span>must<span class="_ _a"> </span>be<span class="_"> </span>deterministic,<span class="_"> </span>or</div><div class="t m4 x26 h7 y10c ff2 fs5 fc0 sc0 ls0 ws0">the<span class="_"> </span>distributed<span class="_ _d"> </span>le<span class="_ _3"></span>dger<span class="_"> </span>“forks”<span class="_ _d"> </span>and<span class="_ _d"> </span>violates<span class="_ _d"> </span>the<span class="_ _7"> </span>basic<span class="_"> </span>premise<span class="_"> </span>of<span class="_ _d"> </span>a</div><div class="t m4 x26 h7 y10d ff2 fs5 fc0 sc0 ls0 ws0">blockchain,<span class="_"> </span>that<span class="_ _d"> </span>all<span class="_ _d"> </span>p<span class="_ _3"></span>eers<span class="_"> </span>hold<span class="_ _d"> </span>the<span class="_ _7"> </span>same<span class="_"> </span>state.<span class="_"> </span>This<span class="_ _d"> </span>is<span class="_ _d"> </span>usually<span class="_ _d"> </span>ad-</div><div class="t m1 x26 h7 y10e ff2 fs5 fc0 sc0 ls0 ws0">dressed<span class="_"> </span>by<span class="_"> </span>programming<span class="_"> </span>blockchains<span class="_"> </span>in<span class="_ _a"> </span>domain-spe<span class="_ _3"></span>cic<span class="_"> </span>languages</div><a class="l" rel='nofollow' onclick='return false;'><div class="d m19"></div></a><a class="l" rel='nofollow' onclick='return false;'><div class="d m19"></div></a><a class="l" rel='nofollow' onclick='return false;'><div class="d m19"></div></a><a class="l" rel='nofollow' onclick='return false;'><div class="d m19"></div></a><a class="l" rel='nofollow' onclick='return false;'><div class="d m19"></div></a><a class="l" rel='nofollow' onclick='return false;'><div class="d m19"></div></a><a class="l" rel='nofollow' onclick='return false;'><div class="d m19"></div></a><a class="l" rel='nofollow' onclick='return false;'><div class="d m19"></div></a><a class="l" rel='nofollow' onclick='return false;'><div class="d m19"></div></a><a class="l" rel='nofollow' onclick='return false;'><div class="d m19"></div></a><a class="l" rel='nofollow' onclick='return false;'><div class="d m19"></div></a><a class="l" rel='nofollow' onclick='return false;'><div class="d m19"></div></a><a class="l" rel='nofollow' onclick='return false;'><div class="d m19"></div></a><a class="l" rel='nofollow' onclick='return false;'><div class="d m19"></div></a><a class="l" rel='nofollow' onclick='return false;'><div class="d m19"></div></a><a class="l" rel='nofollow' onclick='return false;'><div class="d m19"></div></a></div><div class="pi" data-data='{"ctm":[1.568627,0.000000,0.000000,1.568627,0.000000,0.000000]}'></div></div>