A place to cache linked articles (think custom and personal wayback machine)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

index.html 36KB

4 vuotta sitten
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675
  1. <!doctype html><!-- This is a valid HTML5 document. -->
  2. <!-- Screen readers, SEO, extensions and so on. -->
  3. <html lang=fr>
  4. <!-- Has to be within the first 1024 bytes, hence before the <title>
  5. See: https://www.w3.org/TR/2012/CR-html5-20121217/document-metadata.html#charset -->
  6. <meta charset=utf-8>
  7. <!-- Why no `X-UA-Compatible` meta: https://stackoverflow.com/a/6771584 -->
  8. <!-- The viewport meta is quite crowded and we are responsible for that.
  9. See: https://codepen.io/tigt/post/meta-viewport-for-2015 -->
  10. <meta name=viewport content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no">
  11. <!-- Required to make a valid HTML5 document. -->
  12. <title>La Blockchain et l’émergence des " distributed consensus engines " (archive) — David Larlet</title>
  13. <!-- Generated from https://realfavicongenerator.net/ such a mess. -->
  14. <link rel="apple-touch-icon" sizes="180x180" href="/static/david/icons/apple-touch-icon.png">
  15. <link rel="icon" type="image/png" sizes="32x32" href="/static/david/icons/favicon-32x32.png">
  16. <link rel="icon" type="image/png" sizes="16x16" href="/static/david/icons/favicon-16x16.png">
  17. <link rel="manifest" href="/manifest.json">
  18. <link rel="mask-icon" href="/static/david/icons/safari-pinned-tab.svg" color="#5bbad5">
  19. <link rel="shortcut icon" href="/static/david/icons/favicon.ico">
  20. <meta name="apple-mobile-web-app-title" content="David Larlet">
  21. <meta name="application-name" content="David Larlet">
  22. <meta name="msapplication-TileColor" content="#da532c">
  23. <meta name="msapplication-config" content="/static/david/icons/browserconfig.xml">
  24. <meta name="theme-color" content="#f0f0ea">
  25. <!-- That good ol' feed, subscribe :p. -->
  26. <link rel=alternate type="application/atom+xml" title=Feed href="/david/log/">
  27. <meta name="robots" content="noindex, nofollow">
  28. <meta content="origin-when-cross-origin" name="referrer">
  29. <!-- Canonical URL for SEO purposes -->
  30. <link rel="canonical" href="http://www.christian-faure.net/2015/09/13/la-blockchain-et-lemergence-des-distributed-consensus-engines/">
  31. <style>
  32. /* http://meyerweb.com/eric/tools/css/reset/ */
  33. html, body, div, span,
  34. h1, h2, h3, h4, h5, h6, p, blockquote, pre,
  35. a, abbr, address, big, cite, code,
  36. del, dfn, em, img, ins,
  37. small, strike, strong, tt, var,
  38. dl, dt, dd, ol, ul, li,
  39. fieldset, form, label, legend,
  40. table, caption, tbody, tfoot, thead, tr, th, td,
  41. article, aside, canvas, details, embed,
  42. figure, figcaption, footer, header, hgroup,
  43. menu, nav, output, ruby, section, summary,
  44. time, mark, audio, video {
  45. margin: 0;
  46. padding: 0;
  47. border: 0;
  48. font-size: 100%;
  49. font: inherit;
  50. vertical-align: baseline;
  51. }
  52. /* HTML5 display-role reset for older browsers */
  53. article, aside, details, figcaption, figure,
  54. footer, header, hgroup, menu, nav, section { display: block; }
  55. body { line-height: 1; }
  56. blockquote, q { quotes: none; }
  57. blockquote:before, blockquote:after,
  58. q:before, q:after {
  59. content: '';
  60. content: none;
  61. }
  62. table {
  63. border-collapse: collapse;
  64. border-spacing: 0;
  65. }
  66. /* http://practicaltypography.com/equity.html */
  67. /* https://calendar.perfplanet.com/2016/no-font-face-bulletproof-syntax/ */
  68. /* https://www.filamentgroup.com/lab/js-web-fonts.html */
  69. @font-face {
  70. font-family: 'EquityTextB';
  71. src: url('/static/david/css/fonts/Equity-Text-B-Regular-webfont.woff2') format('woff2'),
  72. url('/static/david/css/fonts/Equity-Text-B-Regular-webfont.woff') format('woff');
  73. font-weight: 300;
  74. font-style: normal;
  75. font-display: swap;
  76. }
  77. @font-face {
  78. font-family: 'EquityTextB';
  79. src: url('/static/david/css/fonts/Equity-Text-B-Italic-webfont.woff2') format('woff2'),
  80. url('/static/david/css/fonts/Equity-Text-B-Italic-webfont.woff') format('woff');
  81. font-weight: 300;
  82. font-style: italic;
  83. font-display: swap;
  84. }
  85. @font-face {
  86. font-family: 'EquityTextB';
  87. src: url('/static/david/css/fonts/Equity-Text-B-Bold-webfont.woff2') format('woff2'),
  88. url('/static/david/css/fonts/Equity-Text-B-Bold-webfont.woff') format('woff');
  89. font-weight: 700;
  90. font-style: normal;
  91. font-display: swap;
  92. }
  93. @font-face {
  94. font-family: 'ConcourseT3';
  95. src: url('/static/david/css/fonts/concourse_t3_regular-webfont-20190806.woff2') format('woff2'),
  96. url('/static/david/css/fonts/concourse_t3_regular-webfont-20190806.woff') format('woff');
  97. font-weight: 300;
  98. font-style: normal;
  99. font-display: swap;
  100. }
  101. /* http://practice.typekit.com/lesson/caring-about-opentype-features/ */
  102. body {
  103. /* http://www.cssfontstack.com/ Palatino 99% Win 86% Mac */
  104. font-family: "EquityTextB", Palatino, serif;
  105. background-color: #f0f0ea;
  106. color: #07486c;
  107. font-kerning: normal;
  108. -moz-osx-font-smoothing: grayscale;
  109. -webkit-font-smoothing: subpixel-antialiased;
  110. text-rendering: optimizeLegibility;
  111. font-variant-ligatures: common-ligatures contextual;
  112. font-feature-settings: "kern", "liga", "clig", "calt";
  113. }
  114. pre, code, kbd, samp, var, tt {
  115. font-family: 'TriplicateT4c', monospace;
  116. }
  117. em {
  118. font-style: italic;
  119. color: #323a45;
  120. }
  121. strong {
  122. font-weight: bold;
  123. color: black;
  124. }
  125. nav {
  126. background-color: #323a45;
  127. color: #f0f0ea;
  128. display: flex;
  129. justify-content: space-around;
  130. padding: 1rem .5rem;
  131. }
  132. nav:last-child {
  133. border-bottom: 1vh solid #2d7474;
  134. }
  135. nav a {
  136. color: #f0f0ea;
  137. }
  138. nav abbr {
  139. border-bottom: 1px dotted white;
  140. }
  141. h1 {
  142. border-top: 1vh solid #2d7474;
  143. border-bottom: .2vh dotted #2d7474;
  144. background-color: #e3e1e1;
  145. color: #323a45;
  146. text-align: center;
  147. padding: 5rem 0 4rem 0;
  148. width: 100%;
  149. font-family: 'ConcourseT3';
  150. display: flex;
  151. flex-direction: column;
  152. }
  153. h1.single {
  154. padding-bottom: 10rem;
  155. }
  156. h1 span {
  157. position: absolute;
  158. top: 1vh;
  159. left: 20%;
  160. line-height: 0;
  161. }
  162. h1 span a {
  163. line-height: 1.7;
  164. padding: 1rem 1.2rem .6rem 1.2rem;
  165. border-radius: 0 0 6% 6%;
  166. background: #2d7474;
  167. font-size: 1.3rem;
  168. color: white;
  169. text-decoration: none;
  170. }
  171. h2 {
  172. margin: 4rem 0 1rem;
  173. border-top: .2vh solid #2d7474;
  174. padding-top: 1vh;
  175. }
  176. h3 {
  177. text-align: center;
  178. margin: 3rem 0 .75em;
  179. }
  180. hr {
  181. height: .4rem;
  182. width: .4rem;
  183. border-radius: .4rem;
  184. background: #07486c;
  185. margin: 2.5rem auto;
  186. }
  187. time {
  188. display: bloc;
  189. margin-left: 0 !important;
  190. }
  191. ul, ol {
  192. margin: 2rem;
  193. }
  194. ul {
  195. list-style-type: square;
  196. }
  197. a {
  198. text-decoration-skip-ink: auto;
  199. text-decoration-thickness: 0.05em;
  200. text-underline-offset: 0.09em;
  201. }
  202. article {
  203. max-width: 50rem;
  204. display: flex;
  205. flex-direction: column;
  206. margin: 2rem auto;
  207. }
  208. article.single {
  209. border-top: .2vh dotted #2d7474;
  210. margin: -6rem auto 1rem auto;
  211. background: #f0f0ea;
  212. padding: 2rem;
  213. }
  214. article p:last-child {
  215. margin-bottom: 1rem;
  216. }
  217. p {
  218. padding: 0 .5rem;
  219. margin-left: 3rem;
  220. }
  221. p + p,
  222. figure + p {
  223. margin-top: 2rem;
  224. }
  225. blockquote {
  226. background-color: #e3e1e1;
  227. border-left: .5vw solid #2d7474;
  228. display: flex;
  229. flex-direction: column;
  230. align-items: center;
  231. padding: 1rem;
  232. margin: 1.5rem;
  233. }
  234. blockquote cite {
  235. font-style: italic;
  236. }
  237. blockquote p {
  238. margin-left: 0;
  239. }
  240. figure {
  241. border-top: .2vh solid #2d7474;
  242. background-color: #e3e1e1;
  243. text-align: center;
  244. padding: 1.5rem 0;
  245. margin: 1rem 0 0;
  246. font-size: 1.5rem;
  247. width: 100%;
  248. }
  249. figure img {
  250. max-width: 250px;
  251. max-height: 250px;
  252. border: .5vw solid #323a45;
  253. padding: 1px;
  254. }
  255. figcaption {
  256. padding: 1rem;
  257. line-height: 1.4;
  258. }
  259. aside {
  260. display: flex;
  261. flex-direction: column;
  262. background-color: #e3e1e1;
  263. padding: 1rem 0;
  264. border-bottom: .2vh solid #07486c;
  265. }
  266. aside p {
  267. max-width: 50rem;
  268. margin: 0 auto;
  269. }
  270. /* https://fvsch.com/code/css-locks/ */
  271. p, li, pre, code, kbd, samp, var, tt, time, details, figcaption {
  272. font-size: 1rem;
  273. line-height: calc( 1.5em + 0.2 * 1rem );
  274. }
  275. h1 {
  276. font-size: 1.9rem;
  277. line-height: calc( 1.2em + 0.2 * 1rem );
  278. }
  279. h2 {
  280. font-size: 1.6rem;
  281. line-height: calc( 1.3em + 0.2 * 1rem );
  282. }
  283. h3 {
  284. font-size: 1.35rem;
  285. line-height: calc( 1.4em + 0.2 * 1rem );
  286. }
  287. @media (min-width: 20em) {
  288. /* The (100vw - 20rem) / (50 - 20) part
  289. resolves to 0-1rem, depending on the
  290. viewport width (between 20em and 50em). */
  291. p, li, pre, code, kbd, samp, var, tt, time, details, figcaption {
  292. font-size: calc( 1rem + .6 * (100vw - 20rem) / (50 - 20) );
  293. line-height: calc( 1.5em + 0.2 * (100vw - 50rem) / (20 - 50) );
  294. margin-left: 0;
  295. }
  296. h1 {
  297. font-size: calc( 1.9rem + 1.5 * (100vw - 20rem) / (50 - 20) );
  298. line-height: calc( 1.2em + 0.2 * (100vw - 50rem) / (20 - 50) );
  299. }
  300. h2 {
  301. font-size: calc( 1.5rem + 1.5 * (100vw - 20rem) / (50 - 20) );
  302. line-height: calc( 1.3em + 0.2 * (100vw - 50rem) / (20 - 50) );
  303. }
  304. h3 {
  305. font-size: calc( 1.35rem + 1.5 * (100vw - 20rem) / (50 - 20) );
  306. line-height: calc( 1.4em + 0.2 * (100vw - 50rem) / (20 - 50) );
  307. }
  308. }
  309. @media (min-width: 50em) {
  310. /* The right part of the addition *must* be a
  311. rem value. In this example we *could* change
  312. the whole declaration to font-size:2.5rem,
  313. but if our baseline value was not expressed
  314. in rem we would have to use calc. */
  315. p, li, pre, code, kbd, samp, var, tt, time, details, figcaption {
  316. font-size: calc( 1rem + .6 * 1rem );
  317. line-height: 1.5em;
  318. }
  319. p, li, pre, details {
  320. margin-left: 3rem;
  321. }
  322. h1 {
  323. font-size: calc( 1.9rem + 1.5 * 1rem );
  324. line-height: 1.2em;
  325. }
  326. h2 {
  327. font-size: calc( 1.5rem + 1.5 * 1rem );
  328. line-height: 1.3em;
  329. }
  330. h3 {
  331. font-size: calc( 1.35rem + 1.5 * 1rem );
  332. line-height: 1.4em;
  333. }
  334. figure img {
  335. max-width: 500px;
  336. max-height: 500px;
  337. }
  338. }
  339. figure.unsquared {
  340. margin-bottom: 1.5rem;
  341. }
  342. figure.unsquared img {
  343. height: inherit;
  344. }
  345. @media print {
  346. body { font-size: 100%; }
  347. a:after { content: " (" attr(href) ")"; }
  348. a, a:link, a:visited, a:after {
  349. text-decoration: underline;
  350. text-shadow: none !important;
  351. background-image: none !important;
  352. background: white;
  353. color: black;
  354. }
  355. abbr[title] { border-bottom: 0; }
  356. abbr[title]:after { content: " (" attr(title) ")"; }
  357. img { page-break-inside: avoid; }
  358. @page { margin: 2cm .5cm; }
  359. h1, h2, h3 { page-break-after: avoid; }
  360. p3 { orphans: 3; widows: 3; }
  361. img {
  362. max-width: 250px !important;
  363. max-height: 250px !important;
  364. }
  365. nav, aside { display: none; }
  366. }
  367. ul.with_columns {
  368. column-count: 1;
  369. }
  370. @media (min-width: 20em) {
  371. ul.with_columns {
  372. column-count: 2;
  373. }
  374. }
  375. @media (min-width: 50em) {
  376. ul.with_columns {
  377. column-count: 3;
  378. }
  379. }
  380. ul.with_two_columns {
  381. column-count: 1;
  382. }
  383. @media (min-width: 20em) {
  384. ul.with_two_columns {
  385. column-count: 1;
  386. }
  387. }
  388. @media (min-width: 50em) {
  389. ul.with_two_columns {
  390. column-count: 2;
  391. }
  392. }
  393. .gallery {
  394. display: flex;
  395. flex-wrap: wrap;
  396. justify-content: space-around;
  397. }
  398. .gallery figure img {
  399. margin-left: 1rem;
  400. margin-right: 1rem;
  401. }
  402. .gallery figure figcaption {
  403. font-family: 'ConcourseT3'
  404. }
  405. footer {
  406. font-family: 'ConcourseT3';
  407. display: flex;
  408. flex-direction: column;
  409. border-top: 3px solid white;
  410. padding: 4rem 0;
  411. background-color: #07486c;
  412. color: white;
  413. }
  414. footer > * {
  415. max-width: 50rem;
  416. margin: 0 auto;
  417. }
  418. footer a {
  419. color: #f1c40f;
  420. }
  421. footer .avatar {
  422. width: 200px;
  423. height: 200px;
  424. border-radius: 50%;
  425. float: left;
  426. -webkit-shape-outside: circle();
  427. shape-outside: circle();
  428. margin-right: 2rem;
  429. padding: 2px 5px 5px 2px;
  430. background: white;
  431. border-left: 1px solid #f1c40f;
  432. border-top: 1px solid #f1c40f;
  433. border-right: 5px solid #f1c40f;
  434. border-bottom: 5px solid #f1c40f;
  435. }
  436. </style>
  437. <h1>
  438. <span><a id="jumper" href="#jumpto" title="Un peu perdu ?">?</a></span>
  439. La Blockchain et l’émergence des " distributed consensus engines " (archive)
  440. <time>Pour la pérennité des contenus liés. Non-indexé, retrait sur simple email.</time>
  441. </h1>
  442. <section>
  443. <article>
  444. <h3><a href="http://www.christian-faure.net/2015/09/13/la-blockchain-et-lemergence-des-distributed-consensus-engines/">Source originale du contenu</a></h3>
  445. <p>Je vais y aller <i>à la hache</i>. Mon propos ne sera pas chirurgical, précis ; il sera assez grossier.</p>
  446. <p><a href="http://www.christian-faure.net/wp-content/uploads/hache.jpg"><img class="aligncenter wp-image-3755" src="http://www.christian-faure.net/wp-content/uploads/hache-300x235.jpg" alt="hache"/></a></p>
  447. <p class="p5"><span class="s1">Grossier d’abord parce que je vais vous parler de choses qui sont <b>émergentes</b> et qui n’ont <b>pas encore de formes précises</b> mais produisent beaucoup de <b>protentions</b>, c’est à dire beaucoup<b> d’attente.</b></span></p>
  448. <p class="p5"><span class="s1">Tout le monde a entendu parler du <b>Bitcoin</b>, ce système de transfert d’argent, mais probablement peu a entendu parler de la <b>blockchain, </b>qui est la technologie sous-jacente au Bitcoin.</span></p>
  449. <p class="p5"><span class="s1"><br/>
  450. Le Bitcoin est à la croisée de différentes technologies parmi lesquelles : les protocoles Peer-to-peer, les mécanismes de cryptographie, les systèmes de gestion de version de code, les bases de données distribuées , etc.</span></p>
  451. <p class="p5"><span class="s1">Même si, en apparence, il n’y a rien de nouveau,<b> la blockchain est une réelle innovation</b> dont les conséquences ont encore du mal à être appréhendées. Ceux qui se sont intéressés à la blockchain <b>la comparent volontiers au web</b> de part l’ampleur des conséquences qu’elle pourrait avoir.</span></p>
  452. <p class="p5"><span class="s1">De fait, il y a beaucoup de <b>discours prophétiques</b> à son sujet ; c’est le temps des <i>prophéties</i> et des <i>prophètes</i> de la blockchain. </span></p>
  453. <p class="p5"><span class="s1"><b><img class="aligncenter wp-image-3758" src="http://www.christian-faure.net/wp-content/uploads/ismael2-1024x768.jpg" alt="ismael"/></b></span></p>
  454. <p class="p5"><span class="s1"><b>Salim Ismail</b>, qui est l’ambassadeur de l’<i>Université de la Singularité –</i> et qui passe son temps à cataloguer et à qualifier toutes les innovations technologiques – a déclaré,<span class="Apple-converted-space">  </span>en Juillet 2015 à Paris, lors de la <a href="http://www.usievents.com/fr">conférence USI</a> : <em>«  The blockchain is THE most disruptive technology I have EVER seen »</em>. Cela donne le ton.</span><span id="more-3754"/></p>
  455. <h2 class="p3"><span class="s1">In the beginning was Satoshi Nakamoto</span></h2>
  456. <p class="p5"><span class="s1">Le principe du bitcoin a été publié en 2008 et mise en oeuvre en 2009 par le mystérieux Satoshi Nakamoto. </span></p>
  457. <p class="p5"><a href="http://www.christian-faure.net/wp-content/uploads/nakamoto.jpg"><img class="aligncenter wp-image-3759" src="http://www.christian-faure.net/wp-content/uploads/nakamoto.jpg" alt="nakamoto"/></a></p>
  458. <p class="p5"><span class="s1">Il permet de surmonter un problème de taille qui est celui<b> du double paiement</b> dans les transactions financières (<i>double spend problem</i>) : comment s’assurer qu’un montant ne sera pas dépensé deux fois ? Comment ne pas se faire remettre un chèque en bois ? etc.</span></p>
  459. <p class="p5"><span class="s1">Traditionnellement il faut faire appel<b> à des tiers de confiance</b> que sont typiquement <b>les banques</b>. Mais, même avec un tiers, le risque de fraude est toujours présent, les systèmes bancaires centralisés facturent ce risque (et bien d’autres services encore), ce qui conduit à rendre très difficile des micros-paiements qui ne supportent pas les frais induits par les structures centralisées.</span></p>
  460. <p class="p5"><span class="s1">Satoshi Nakamoto précise, dans son papier fondateur sur le BitCoin, sont intention avec la création du Bitcoin :</span></p>
  461. <blockquote>
  462. <p class="p5"><span class="s1">« Un système de monnaie électronique entièrement en pair-à-pair permettrait d’effectuer des paiements en ligne directement d’un tiers à un autre <b>sans passer par une institution financière</b> »</span></p>
  463. </blockquote>
  464. <p class="p5"><span class="s1">Avec la blockchain, le fait qu’une transaction soit acceptée ou rejetée est le fruit d’un <b>consensus distribué </b>et non d’une <b>institution centralisée</b>.</span></p>
  465. <p class="p5"><span class="s1"><br/>
  466. La manière dont ce consensus distribué peut être réalisé renvoi aux travaux sur les systèmes informatiques distribués où l’on parle de « problème des généraux byzantins ». </span></p>
  467. <p class="p5"><a href="http://www.christian-faure.net/wp-content/uploads/byzantins.jpg"><img class="aligncenter size-full wp-image-3760" src="http://www.christian-faure.net/wp-content/uploads/byzantins.jpg" alt="byzantins"/></a></p>
  468. <p class="p5"><span class="s1">Ce problème classique de l’informatique distribué dans un environnement non sécurisé peut s’expliquer par la métaphore des généraux byzantins suivante : dans le schéma ci-dessus l’armée A fait le siège de l’armée B, A1 et A2 doivent attaquer ensemble pour gagner contre B. Pour cela ils doivent s’envoyer des messages : d’abord de A1 vers A2 pour proposer le moment et l’heure de l’attaque, mais A2 peut douter du message qu’il recevra de A1 (B en a eu connaissance, et peut-être l’a-t-il modifié, etc ). De même A1 attend le message de confirmation de A2 pour ne pas se retrouver à attaquer seul. Mais quand il reçoit ce message il peut lui aussi douter de son origine et de son contenu.</span></p>
  469. <p class="p5"><span class="s1">Résoudre ce genre de problème, c’est ce qu’on l’on fait quand on fait de la conception de logiciels distribués, tolérants aux pannes et aux erreurs (avec une logique que l’on qualifie de <i>Design for Failure</i>), et capables de se coordonner dans un environnement non fiable et asynchrone.</span></p>
  470. <p class="p5"><span class="s1"><b>Satoshi Nakamoto</b> (cf. <a href="http://www.bitcoin.fr/pages/Bitcoin-expliqu%C3%A9-par-son-inventeur"><span class="s2">Bitcoin expliqué par son fondateur</span></a>) donne les principes de sa solution pour opérer le bitcoin et résoudre les problèmes du double paiement et des généraux byzantins :</span></p>
  471. <blockquote>
  472. <p class="p5"><span class="s1">« nous proposons une solution au problème de double-dépense en utilisant un <b>serveur horodaté distribué en pair-à-pair</b> pour <b>générer des preuves informatiques</b> de <b>l’ordre chronologique des transactions</b>. Le système est sécurisé tant que des nœuds honnêtes contrôlent ensemble plus de puissance de calcul qu’un groupe de nœuds qui coopéreraient pour réaliser une attaque. »</span></p>
  473. </blockquote>
  474. <p class="p5"><span class="s1">Au coeur du Bitcoin, ce « serveur horodaté distribué en pair à pair » qui à la fois <b>est</b> <i>la blockchain</i> (en tant que technologie de stockage distribuée) et <b>produit</b> <i>la blockchain</i> (en tant que <b>livre de compte </b>ouvert, public et distribué où l’on peut lire l’<b>enchainement des transactions horodatées</b>, et ce depuis la toute première transaction).</span></p>
  475. <h2 class="p3"><span class="s1">Les <em>miners</em> de la blockchain</span></h2>
  476. <p class="p5"><a href="http://www.christian-faure.net/wp-content/uploads/miner.jpg"><img class="aligncenter wp-image-3761" src="http://www.christian-faure.net/wp-content/uploads/miner.jpg" alt="miner"/></a></p>
  477. <p class="p5"><span class="s1">Dans le réseau de pair à pair de la blockchain, les <i>miners </i>sont des noeuds du réseau qui, en « travaillant », produisent des <b>preuves de travail. </b>Preuves<b> </b>qui les autorisent à ajouter une transaction dans la chaîne (un block est créé toutes les dix minutes)</span></p>
  478. <p class="p5"><span class="s1">Après les <a href="http://www.christian-faure.net/2015/09/05/la-conteneurisation-du-monde/"><span class="s2">dockers</span></a>, voici les <i>miners.</i></span></p>
  479. <p class="p5"><span class="s1"><b>L’aspect novateur</b> de la résolution proposé par Satoshi Nakamoto c’est donc de faire <b>travailler les machines</b>, c’est à dire les CPUs, pour pouvoir ajouter un block à la blockchain. Chaque block est <b>le fruit d’un consensus machinique et algorithmique</b>.</span></p>
  480. <p class="p5"><span class="s1"> La puissance de calcul est au coeur du protocole et de l’économie du bitcoin : <b>l’intégrité</b> de la blockchain est garantie par le fait que la puissance de calcul nécessaire pour <b>falsifier</b> le réseau couterait plus cher qu’elle ne rapporterait et aussi parce que tout <i>miner</i> qui souhaiterait falsifier la blockchain se retrouverait <b>en compétition avec l’ensemble des autres miners.</b></span></p>
  481. <p class="p5"><span class="s1">La <b>preuve de travail</b> qui est demandée au <i>miners</i> est donc une <b>preuve de calcul via les technologies ce cryptage </b>(des message cryptés – des énigmes – sont proposés aux serveur en maîtrisant la complexité du cryptage pour que cela prenne environ 10 min ) ; c’est la clé de voute du Bitcoin.</span></p>
  482. <p class="p5"><a href="http://www.christian-faure.net/wp-content/uploads/proofofwork.jpg"><img class="aligncenter wp-image-3762" src="http://www.christian-faure.net/wp-content/uploads/proofofwork.jpg" alt="proofofwork"/></a></p>
  483. <h2 class="p3"><span class="s1">Les nouvelles protentions de la Blockchain</span></h2>
  484. <p class="p5"><span class="s1">La Blockchain créée de nouvelles attentes (c’est à dire des protentions qui polarisent les attentions).</span></p>
  485. <p class="p5"><span class="s1">Ce qu’apporte la blockchain, c’est l’avènement d’un réseau décentralisé non plus seulement de <b>transport</b> ou de <b>transfert</b>, mais de <b>transaction</b>. En ce sens, c’est un <b>système transactionnel sécurisé à très bas coût</b>. Ce que la blockchain peut apporter, c’est une <b>automatisation distribuée des transactions</b> qui peut rendre caduque toutes les formes d’organisations et d’institutions qui se posent en tiers de confiance ou de certification dans un <b>contexte transactionnel (propriété, bien, argent).</b></span></p>
  486. <p class="p5"><span class="s1">Du coup, cela place toute <b>l’économie traditionnelle de la transaction</b> en porte à faux. Et pas<span class="Apple-converted-space">  </span>seulement les industries qui se font « ubériser » , puisque cela peut aussi <i>ubériser</i> Uber ; tout comme <a href="http://booking.com"><span class="s2">booking.com</span></a>, Airbnb, Twitter, Paypal, c’est à dire que tous ceux qui ont <b>court-circuité les industries traditionnelles</b> se retrouvent eux-mêmes potentiellement sur la sellette. </span></p>
  487. <p class="p5"><span class="s1">Ce qui me fait dire que si le Web a permis <b>l’automatisation de la relation </b>( et de la mise en relation), la<span class="Apple-converted-space">  </span>Blockchain permet <b>l’automatisation de la transaction</b> en supprimant les tiers.</span></p>
  488. <p class="p5"><span class="s1">La blockchain apporte également un élément très important : on parle souvent de <b>transparence</b>, puisque l’ensemble des transactions sont publiques. Mais je préfère souligner le fait qu’il n’y a <b>pas d’asymétrie de l’information </b>(asymétrie illustré par le tableau de De la Tour)<b> ; </b>il n’y a pas un point de vue panoptique qui soit privilégié.</span></p>
  489. <p class="p5"><a href="http://www.christian-faure.net/wp-content/uploads/asymetrie.jpg"><img class="aligncenter wp-image-3763" src="http://www.christian-faure.net/wp-content/uploads/asymetrie-1024x742.jpg" alt="asymetrie"/></a></p>
  490. <p class="p5"><span class="s1">Ainsi, avec la blockchain, <b>tout le monde voit la même chose</b>, là où avec les géants du web plus personne ne voyait la même chose, à force de <i>profiling</i> : par exemple, plus aucun d’entre nous n’a la même page de résultat sur Google pour une recherche donnée.</span></p>
  491. <h2 class="p3"><span class="s1">La blockchain sans le Bitcoin</span></h2>
  492. <p class="p5"><span class="s1">De même que la blockchain du bitcoin a montré sa puissance en appliquant des protocoles de transaction distribués à la monnaie, de même <b>cette technologie peut être utilisée dans d’autres champs d’activité </b>que la transaction monétaire.</span></p>
  493. <p class="p5"><span class="s1">Exemples : systèmes de vote, gestion décentralisées des DNS (cf. le projet <a href="https://namecoin.info/"><span class="s2">Namecoin</span></a>).</span></p>
  494. <p class="p5"><span class="s1">Désormais la technologie blockchain peut être utilisée pour des transactions qui vont <b>au delà d’une simple transaction de paiement</b> et qui contiennent des instructions beaucoup plus complexes (des instructions conditionnelles et programmables), on parle alors de <b>contrats. </b>Contrats qui peuvent être publiés sur la blockchain pour qu’ils s’exécutent automatiquement sous certaines conditions, raison pour laquelle on utilise l’expression de <b>« Smart Contracts »</b>. </span></p>
  495. <p class="p5"><span class="s1">On est donc au <b>coeur des technologies de transfert</b>, surtout si l’on se réfère au Littré qui nous rappelle que « transfert » est un terme d’origine financière et juridique ; <b>on transfère des droits, des actions, des biens et des propriétés.</b></span></p>
  496. <h2 class="p3"><span class="s1">La blockchain n’est pas le web</span></h2>
  497. <p class="p5"><span class="s1">Par ailleurs, la blockchain est une nouvelle forme d’espace public, différente du Web. Si le web est un système de <b>publication décentralisé</b>, la blockchain est <b>un système de consensus distribué</b>. Du <i>web</i> à la <i>blockchain</i>, on passe d’une<b> infrastructure de publication </b>à une <b>infrastructure de certification.</b></span></p>
  498. <p class="p5"><span class="s1">La blockchain peut ainsi jouer un rôle similaire à un protocole de transfert et remplacer le Web, surtout quand ces transferts doivent donner lieu à des <b>transactions certifiantes et sécurisés</b>, ce que<b> ne sait pas faire le web</b> sans faire intervenir des organisations certifiantes centralisées.</span></p>
  499. <p class="p5"><span class="s1">Ainsi, la blockchain apporte une <b>infrastructure de confiance algorithmique distribuée. </b>En plus court : <i>consensus-as-a-service (consensus à la demande).</i></span><span class="s3"><i><br/>
  500. </i></span></p>
  501. <h2 class="p5"><span class="s1">Consensus et dissensus</span></h2>
  502. <p class="p5"><span class="s1">Ici, il ne faut pas confondre deux choses : d’une part la <b>topologie distribuée de la technologie blockchain</b> et, d’autre part, le <i>produit</i> de cette technologie qui est la <b>chaîne linéaire </b>des transactions (celle que l’on télécharge quand on se connecte la première fois – fichier d’environ 30 Go). </span></p>
  503. <p class="p5"><span class="s1">Or la <b>topologie linéaire d’une chaine</b> n’est précisément pas celle d’une <b>arborescence</b>. La blockchain n’est donc pas une technologie de <b>dissensus</b> mais de <b>consensus</b>, et tout ce qu’on appelle les <i>forks de la chaîne</i> – les <b>bifurcations</b> –  sont ici <b>systématiquement élaguées</b>.</span></p>
  504. <p class="p5"><span class="s1">Je dis çà pour bien préciser que <b>la blockchain </b>n’est pas un système herméneutique qui<span class="Apple-converted-space">  </span>enregistrerait l’ensemble des interprétations et arguments pour retracer un débat par exemple.</span></p>
  505. <p class="p5"><span class="s1">Ce n’est pas le GitHub des forks <b>et des dissensus </b>mais un système de <b>« consensus distribué ».</b> Mais il est possible que la Blockchain puisse,<span class="Apple-converted-space">  </span><b>en retour </b>(parce que tout çà, c’est systémique), permettre de poser la différemment question d’un système<span class="Apple-converted-space">  </span>herméneutique (qui outille le dissensus)..</span></p>
  506. <h2 class="p3"><span class="s1">L’explosion cambrienne de la Blockchain</span></h2>
  507. <p class="p5"><span class="s1">La blockchain se présente donc comme une<b> infrastructure de certification</b> dont toute application pourrait bénéficier nativement si elle s’appuie dessus. </span></p>
  508. <p class="p5"><a href="http://www.christian-faure.net/wp-content/uploads/ethereum.jpg"><img class="aligncenter wp-image-3764" src="http://www.christian-faure.net/wp-content/uploads/ethereum-1024x666.jpg" alt="ethereum"/></a></p>
  509. <p class="p5"><span class="s1">Des projets comme <b>Ethereum</b> ou <b>Eris</b> cherchent à proposer un environnement, un <i>framework</i>,<span class="Apple-converted-space">  </span>capable de faire tourner n’importe quelle application sur la base d’une blockchain. Là où çà se complique, c’est que Ethereum et Eris s’appuient sur <b>des blockchains différentes</b>. En effet Etherum repose sur une <b>blockchain publique</b> là où Eris repose sur une <b>blockchain privée. </b>Mais il y a aussi d’autres solutions alternatives comme <span class="s2"><a href="http://tendermint.com/">Tendermint</a><b> </b>(merci <a href="https://twitter.com/nicolasauret/status/642004251900821504">Nicolas Sauret</a>).</span></span></p>
  510. <p class="p5"><span class="s1">Aussi, si j’ai parlé de <strong>LA</strong> blockchain depuis le début de cette note, sachez pourtant qu’<b>il n’y a pas UNE blockchain mais de nombreuses</b>, et toutes avec des variantes. Il faut donc souligner qu’il y a une <b>explosion des blockchains</b>, ce qui contribue à la difficulté de cerner le sujet et ses enjeux.</span></p>
  511. <p class="p5"><span class="s1"><br/>
  512. Sachez que l’on parle aujourd’hui d’<b>explosion cambrienne de la blockchain.</b></span></p>
  513. <p class="p5"><span class="s1">Le fait que la technologie blockchain puisse <b>servir d’infrastructure a de nouvelles applications</b> amène à parler de DApps, pour « Distributed Applications » . Des premières initiatives existent, tels que :</span></p>
  514. <ul>
  515. <li class="p5"><span class="s1"><b>OpenBazaar</b> dont l’équivalent centralisé est <b>Craiglist</b></span></li>
  516. <li class="p5"><span class="s1"><a class="twitter-atreply pretty-link js-nav" dir="ltr" href="https://twitter.com/lazoozorg"><b>lazoozorg</b></a> dont l’équivalent centralisé est <b>Uber</b></span></li>
  517. <li class="p5"><span class="s1"><b>Twister</b> dont les équivalent centralisés sont <b>Twitter</b> ou Facebook</span></li>
  518. <li class="p5"><span class="s1"><b>Storj</b> dont l’équivalent centralisé est <b>Dropbox</b></span></li>
  519. <li class="p5"><span class="s1"><b>…</b></span></li>
  520. </ul>
  521. <p class="p5"><span class="s1">Dans une <b>logique prophétique,</b> nous pourrions rajouter la possibilité d’avoir des agents intelligents (au sens de l’intelligence artificielle) qui pourrait exécuter des tâches pré-spécifiées selon certains conditions ou évènements ajoutés à la blockchain.</span></p>
  522. <p class="p5"><span class="s1">Rajoutons à ce tableau que la blockchain pourrait jouer un rôle décisif dans l’interconnexion des objets : <b>l’internet des objets (IoT)</b> pourrait bien se révéler être la <b>Blockchain des Objets (BoT)</b>.</span></p>
  523. <p class="p5"><span class="s1">D’ailleurs pour Mélanie Swan, auteur de </span><span class="s4"><a href="http://www.amazon.com/Blockchain-Blueprint-Economy-Melanie-Swan/dp/1491920491">Blockchain, Blueprint for a new economy</a></span><span class="s1"><span class="Apple-converted-space">  </span>: </span></p>
  524. <blockquote>
  525. <p class="p5"><span class="s1">« The blockchain could be an Occam’s razor, the most efficient, direct and natural means of <b>coordinating all human and machine activity</b> ; it is a natural efficiency process. »</span></p>
  526. </blockquote>
  527. <p class="p5"><a href="http://www.christian-faure.net/wp-content/uploads/swan.jpg"><img class="aligncenter size-full wp-image-3765" src="http://www.christian-faure.net/wp-content/uploads/swan.jpg" alt="swan"/></a></p>
  528. </article>
  529. </section>
  530. <nav id="jumpto">
  531. <p>
  532. <a href="/david/blog/">Accueil du blog</a> |
  533. <a href="http://www.christian-faure.net/2015/09/13/la-blockchain-et-lemergence-des-distributed-consensus-engines/">Source originale</a> |
  534. <a href="/david/stream/2019/">Accueil du flux</a>
  535. </p>
  536. </nav>
  537. <footer>
  538. <div>
  539. <img src="/static/david/david-larlet-avatar.jpg" loading="lazy" class="avatar" width="200" height="200">
  540. <p>
  541. Bonjour/Hi!
  542. Je suis <a href="/david/" title="Profil public">David&nbsp;Larlet</a>, je vis actuellement à Montréal et j’alimente cet espace depuis 15 ans. <br>
  543. Si tu as apprécié cette lecture, n’hésite pas à poursuivre ton exploration. Par exemple via les <a href="/david/blog/" title="Expériences bienveillantes">réflexions bimestrielles</a>, la <a href="/david/stream/2019/" title="Pensées (dés)articulées">veille hebdomadaire</a> ou en t’abonnant au <a href="/david/log/" title="S’abonner aux publications via RSS">flux RSS</a> (<a href="/david/blog/2019/flux-rss/" title="Tiens c’est quoi un flux RSS ?">so 2005</a>).
  544. </p>
  545. <p>
  546. Je m’intéresse à la place que je peux avoir dans ce monde. En tant qu’humain, en tant que membre d’une famille et en tant qu’associé d’une coopérative. De temps en temps, je fais aussi des <a href="https://github.com/davidbgk" title="Principalement sur Github mais aussi ailleurs">trucs techniques</a>. Et encore plus rarement, <a href="/david/talks/" title="En ce moment je laisse plutôt la place aux autres">j’en parle</a>.
  547. </p>
  548. <p>
  549. Voici quelques articles choisis :
  550. <a href="/david/blog/2019/faire-equipe/" title="Accéder à l’article complet">Faire équipe</a>,
  551. <a href="/david/blog/2018/bivouac-automnal/" title="Accéder à l’article complet">Bivouac automnal</a>,
  552. <a href="/david/blog/2018/commodite-effondrement/" title="Accéder à l’article complet">Commodité et effondrement</a>,
  553. <a href="/david/blog/2017/donnees-communs/" title="Accéder à l’article complet">Des données aux communs</a>,
  554. <a href="/david/blog/2016/accompagner-enfant/" title="Accéder à l’article complet">Accompagner un enfant</a>,
  555. <a href="/david/blog/2016/senior-developer/" title="Accéder à l’article complet">Senior developer</a>,
  556. <a href="/david/blog/2016/illusion-sociale/" title="Accéder à l’article complet">L’illusion sociale</a>,
  557. <a href="/david/blog/2016/instantane-scopyleft/" title="Accéder à l’article complet">Instantané Scopyleft</a>,
  558. <a href="/david/blog/2016/enseigner-web/" title="Accéder à l’article complet">Enseigner le Web</a>,
  559. <a href="/david/blog/2016/simplicite-defaut/" title="Accéder à l’article complet">Simplicité par défaut</a>,
  560. <a href="/david/blog/2016/minimalisme-esthetique/" title="Accéder à l’article complet">Minimalisme et esthétique</a>,
  561. <a href="/david/blog/2014/un-web-omni-present/" title="Accéder à l’article complet">Un web omni-présent</a>,
  562. <a href="/david/blog/2014/manifeste-developpeur/" title="Accéder à l’article complet">Manifeste de développeur</a>,
  563. <a href="/david/blog/2013/confort-convivialite/" title="Accéder à l’article complet">Confort et convivialité</a>,
  564. <a href="/david/blog/2013/testament-numerique/" title="Accéder à l’article complet">Testament numérique</a>,
  565. et <a href="/david/blog/" title="Accéder aux archives">bien d’autres…</a>
  566. </p>
  567. <p>
  568. On peut <a href="mailto:david%40larlet.fr" title="Envoyer un courriel">échanger par courriel</a>. Si éventuellement tu souhaites que l’on travaille ensemble, tu devrais commencer par consulter le <a href="http://larlet.com">profil dédié à mon activité professionnelle</a> et/ou contacter directement <a href="http://scopyleft.fr/">scopyleft</a>, la <abbr title="Société coopérative et participative">SCOP</abbr> dont je fais partie depuis six ans. Je recommande au préalable de lire <a href="/david/blog/2018/cout-site/" title="Attention ce qui va suivre peut vous choquer">combien coûte un site</a> et pourquoi je suis plutôt favorable à une <a href="/david/pro/devis/" title="Discutons-en !">non-demande de devis</a>.
  569. </p>
  570. <p>
  571. Je ne traque pas ta navigation mais mon
  572. <abbr title="Alwaysdata, 62 rue Tiquetonne 75002 Paris, +33.184162340">hébergeur</abbr>
  573. conserve des logs d’accès.
  574. </p>
  575. </div>
  576. </footer>
  577. <script type="text/javascript">
  578. ;(_ => {
  579. const jumper = document.getElementById('jumper')
  580. jumper.addEventListener('click', e => {
  581. e.preventDefault()
  582. const anchor = e.target.getAttribute('href')
  583. const targetEl = document.getElementById(anchor.substring(1))
  584. targetEl.scrollIntoView({behavior: 'smooth'})
  585. })
  586. })()
  587. </script>