Dé­cryp­tage

Le ni­veau de sé­cu­ri­té de la blo­ck­chain re­pose no­tam­ment sur le chaî­nage des blocs. Le bit­coin, mas­si­ve­ment uti­li­sée, en est la première illus­tra­tion. Reste des ques­tions à ré­gler, no­tam­ment en termes de sca­la­bi­li­té.

IT for Business - - LA UNE - Sté­phane Dar­get

• Dans les ar­canes du bit­coin

Àl’heure où le SHA-1 a été cas­sé (voir IT For Bu­si­ness d’avril 2017), des ques­tions pour­raient se po­ser sur le ni­veau de sécurisation of­fert par la blo­ck­chain. Le bit­coin en est l’exemple le plus connu. Pour la cas­ser, la puis­sance de cal­cul né­ces­saire est co­los­sale. Un constat qui tient à son ar­chi­tec­ture. Illus­tra­tion.

Le bit­coin contient des en­sembles de don­nées re­grou­pés dans des blocs. Chaque bloc contient un lien vers le bloc pré­cé­dem­ment for­mé. Des règles de consen­sus per­met­tront fi­na­le­ment de for­mer une chaîne. Première d’entre elles, un bloc ne pour­ra avoir qu’un unique suc­ces­seur. Un bloc est sys­té­ma­ti­que­ment com­po­sé d’un en­tête sui­vi d’une table des tran­sac­tions. Dans le cas du bit­coin, l’en­tête contient prin­ci­pa­le­ment la date de créa­tion du bloc, le hash du bloc pré­cé­dent, le hash des tran­sac­tions, ain­si que la « preuve de tra­vail ». Une fonc­tion de hash per­met de trans­for­mer un en­semble de bits de taille plus ou moins im­por­tante en un nombre de di­men­sion li­mi­tée. Dans le cas pré­sent, l’al­go­rithme SHA256 est uti­li­sé et le nombre gé­né­ré est sto­cké sur 256 bits (32 oc­tets). Pour rap­pel, on sup­pose que si 2 hash sont iden­tiques, alors les en­sembles de bits ini­tiaux sont iden­tiques. Par ailleurs, il est simple de cal­cu­ler un hash, mais im­pos­sible de re­trou­ver à par­tir d’un hash l’en­semble des bits d’ori­gine. La « preuve de tra­vail » est un cal­cul vo­lon­tai­re­ment très consom­ma­teur de temps et de puis­sance de cal­cul, dont le ré­sul­tat est simple à vé­ri­fier. Il est éga­le­ment ba­sé sur des cal­culs de hash. Il per­met en par­ti­cu­lier que l’in­ter­valle de temps né­ces­saire pour la gé­né­ra­tion d’un bloc soit de 10 mi­nutes en­vi­ron.

En­suite, la table des tran­sac­tions liste l’en­semble des échanges de bit­coins : pour chaque échange est pré­ci­sé l’adresse du ou des émet­teurs et celle du ou des bé­né­fi­ciaires, mais aus­si un en­semble de com­mandes en par­ties op­tion­nelles, per­met- tant de vé­ri­fier la va­li­di­té du bé­né­fi­ciaire, la ver­sion cryp­to­gra­phique uti­li­sée, et même une chaîne de 40 ca­rac­tères, dite « OP_ RETURN » choi­sie par l’ini­tia­teur de la tran­sac­tion. Cette der­nière contient par exemple des hash de PDF cor­res­pon­dant à des di­plômes.

150 blocs de plus par jour

En rai­son de la taille maxi­male li­mi­tée à 1 Mo, un bloc contien­dra entre 1 600 et 2 100 tran­sac­tions. Il faut ac­tuel­le­ment comp­ter en­vi­ron 14 mi­nutes entre le mo­ment où l’on ini­tie une nou­velle tran­sac­tion et où elle est prise en compte dé­fi­ni­ti­ve­ment dans la chaîne pu­blique. En­vi­ron, 300 000 tran­sac­tions ont lieu chaque jour pour un mon­tant to­tal dé­pas­sant les 2 000 bit­coins (soit plus de 2 mil­lions d’eu­ros). Au to­tal la chaîne est au­jourd’hui com­po­sée en­vi­ron de 500 000 blocs (150 nou­veaux blocs par jour).

Plusieurs dif­fi­cul­tés at­tendent la com­mu­nau­té Bit­coin. La première pour­rait être la taille de la chaîne qui ne fait que croître. Mais, il n’est pas né­ces­saire de dis­po­ser de l’in­té­gra­li­té de la chaîne pour faire fonc­tion­ner le sys­tème (ou le « mi­ner ») et le coût de stockage de­vient de plus en plus faible. Si le nombre de tran­sac­tions aug­mente très sen­si­ble­ment, il va fal­loir soit aug­men­ter la taille des blocs — ou ré­duire la taille d’une tran­sac­tion au sein d’un bloc —, soit ré­duire le temps moyen entre chaque bloc. Ces chan­ge­ments sont in­trin­sè­que­ment pos­sibles car la blo­ck­chain Bit­coin im­plé­mente deux ou­tils per­met­tant de la faire évo­luer. Les « soft forks » sont des types de règles de consen­sus dites de « dur­cis­se­ment ». Elles n’al­tèrent pas la com­pa­ti­bi­li­té du pro­to­cole avec les an­ciennes règles. À l’in­verse, les « hard forks » sont des mo­di­fi­ca­tions qui rendent les nou­velles règles in­com­pa­tibles avec les pré­cé­dentes. C’est par exemple le cas de l’aug­men­ta­tion de la taille maxi­male des blocs. Pour qu’une hard fork soit ac­ti­vée, il faut que 75 % des mi­neurs l’adoptent. En rai­son des pro­blèmes d’en­gor­ge­ment du ré­seau, les plus gros mi­neurs font pres­sion afin que l’éco­sys­tème adopte Bit­coin Un­li­mi­ted, qui re­tire toute li­mite de taille. Ce qui se­rait désa­van­ta­geux pour les pe­tits grou­pe­ments de mi­neurs, qui ris­que­raient de dis­pa­raître. La pos­si­bi­li­té d’at­taque par ma­jo­ri­té se­rait for­te­ment aug­men­tée. Rap­pel : si 51% des mi­neurs af­firment qu’un bloc est va­lide, il le de­vient de fait. Et plus le sys­tème est cen­tra­li­sé, plus sa fia­bi­li­té baisse. Le dé­bat est ou­vert. •

Newspapers in French

Newspapers from France

© PressReader. All rights reserved.