trabajo de grado identidad digital basada en blockchain en

38
Trabajo de Grado Identidad Digital basada en Blockchain en Instituciones Educativas Susan Paola Joven Vásquez Universidad de Los Andes Facultad de Ingeniería Departamento de Ingeniería de Sistemas y Computación Bogotá, 2020

Upload: others

Post on 25-Jul-2022

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Trabajo de Grado Identidad Digital basada en Blockchain en

TrabajodeGrado

IdentidadDigitalbasadaenBlockchainenInstitucionesEducativas

SusanPaolaJovenVásquez

UniversidaddeLosAndes

FacultaddeIngeniería

DepartamentodeIngenieríadeSistemasyComputación

Bogotá,2020

Page 2: Trabajo de Grado Identidad Digital basada en Blockchain en

2

TrabajodeGrado

IdentidadDigitalbasadaenBlockchainenInstitucionesEducativas

SusanPaolaJovenVásquez

Asesora

SandraJulietaRuedaRodríguez,Ph.D.

ProfesoraAsociada

UniversidaddeLosAndes

FacultaddeIngeniería

DepartamentodeIngenieríadeSistemasyComputación

Bogotá,2020

Page 3: Trabajo de Grado Identidad Digital basada en Blockchain en

3

TABLADECONTENIDOResumen.........................................................................................................................................51 Introducción..........................................................................................................................6

2 Descripcióndelproblema................................................................................................82.1 IdentidadDigital.......................................................................................................................82.2 Unmodelodeserviciodeidentidaddigital.....................................................................92.3 IdentidadesdigitalesdinámicasyautosoberanasbasadasenlatecnologíaBlockchain............................................................................................................................................102.4 Problema..................................................................................................................................11

3 Propuestadesolución.....................................................................................................123.1 Requerimientosfuncionalesycasosdeuso.................................................................133.2 Marcoteórico..........................................................................................................................153.3 Diseñodelledger...................................................................................................................19

4 Implementación................................................................................................................204.1 FrameworksyHerramientas............................................................................................204.2 Operaciones............................................................................................................................224.3 EjecucióndelPrototipo.......................................................................................................284.3.1 ConfiguracióndelAmbiente......................................................................................................294.3.2 Manualparapruebadelprototipo..........................................................................................29

4.4 AnálisisdeResultados.........................................................................................................304.4.1 Tiemposderespuesta...................................................................................................................304.4.2 Manejodeidentidaddigital.......................................................................................................31

5 TrabajoRelacionado.......................................................................................................33

6 Conclusionesytrabajofuturo......................................................................................37

7 Trabajoscitados................................................................................................................38

Page 4: Trabajo de Grado Identidad Digital basada en Blockchain en

4

INDICEDEFIGURASFigura1.EvolucióndelatecnologíaBlockchain._______________________________________________________________7Figura2.Interaccióndelosactoresconelledgerdistribuido ________________________________________________12Figura3.Casodeusoparaestudianteyprofesor______________________________________________________________14Figura4.Casodeusoparaempleadoeinvitado_______________________________________________________________14Figura5.Elementosalmacenadosenelledger________________________________________________________________19

Page 5: Trabajo de Grado Identidad Digital basada en Blockchain en

5

RESUMENLa publicación que dio origen a bitcoin y a la tecnología blockchain en 2008 se concentraespecialmenteenlacreacióndeunsistemafinancieroquenorequieralamediacióndeunterceroconfiable para regular todas las transacciones. Sin embargo, varios investigadores tanto a nivelacadémicocomoempresarialhandesarrolladoideasyproductosbasadosenlamismatecnología,blockchain,peroenotroscontextoscomosalud,educaciónycomercio.

Uno de los campos de aplicación de la tecnología Blockchain es en la administración de laidentidaddigitalyunodelosaspectosfundamentalesdeesta,laautenticación.Enelcasodeunaentidadeducativauniversitaria,comolaUniversidaddelosAndes,laidentificaciónfísicaserealizapormediodecarnés,paraelaccesoalcampus,ylaidentificacióndigitalatravésdecredencialesusuario/contraseña,paraelaccesoaplataformasvirtualescomoBlackboard,BrightSpace,etc.Lafaltadeunaidentificaciónúnicaquepermitaalosmiembrosdelauniversidadidentificarse,físicaydigitalmente,deformasegurayconfiablepuedeconducirarobosdeidentidaddelosmiembrosdelainstitución.

Estetrabajoproponeundiseñoquepermitecrearunaidentidaddigitalbasadaenblockchainparalosmiembrosdeunaentidaduniversitaria,comolaUniversidaddelosAndes.Elsistemadiseñadopermitetantoelingresoalcampusdelauniversidad,comoelingresoalasdiferentesplataformasvirtuales de la misma. La construcción de esta identidad digital se realiza haciendo uso de latecnología Blockchain y de sus características de descentralización, integridad de los datos yconfianza.

Comopartedeltrabajoseimplementóunprototipodelsistemadeidentidaddigitalconbaseendos herramientas desarrolladas por el consorcioHyperledger®, el cual es alojado por The LinuxFoundation, Fabric e Indy. Hyperledger es una comunidad de código abierto concentrada en eldesarrollodeframeworks, libreríasyherramientasparaeldesarrollodeaplicacionesbasadasenblockchain.HyperledgerIndyesunmóduloqueseenfocaespecialmenteenofrecersoporteparalaconstruccióndeidentidadesdigitales.

Elprototipoimplementadopermitelainteraccióndelosactoresdelsistema(emisor,propietario,verificador)conun ledgerdistribuidohaciendousodeDIDs (identificadoresdescentralizados), laverificacióndelaentidadquehaemitidolacredencialpormediodelasfirmasdigitales,elusodeCredentialSchemasyCredentialDefinitionsqueposibilitaverificarlaintegridaddelascredencialesemitidas y la protección de la privacidad de los usuarios ya que no se publican sus datospersonalesenel ledgerdistribuido.Adicionalmentesedesarrollaronexperimentosparamedireltiempo de las operaciones ejecutadas por los usuarios y dichos tiempos varían entre 0.95segundos,paralasolicituddegeneracióndeunacredencial,y8.04segundos,paralasolicituddegeneraciónde lapruebadeposesióndeuna credencial. Estos tiempos son razonablesparaunaaplicación real considerando los contextos analizados y el ambiente en el que se ejecutaron laspruebas.

Page 6: Trabajo de Grado Identidad Digital basada en Blockchain en

6

1 INTRODUCCIÓN

Desdelapublicacióndelartículo“Bitcoin:APeertoPeerElectronicCash”enel2008porpartedeun autor bajo el seudónimo de Satoshi Nakamoto, la palabra Blockchain ha sido altamenteutilizada, especialmente en los campos tecnológicos y financieros (Nakamoto). En el artículomencionado, el autor propone la tecnología Blockchain como base para construir un sistemafinancieroquenorequieraunterceroconfiableparamediar lastransaccionesporqueelsistemaestá diseñado para ofrecer confianza entre participantes desconocidos. Desde entonces, latecnologíaBlockchainhasidoconsideradaunade lasmás innovadorasporofrecer laposibilidadde construir confianza digital, garantizar la integridad de la información y almacenar datos deforma descentralizada. A pesar de que obtuvo su popularidad con la implementación en lacriptomonedaBitcoin,Blockchainhasidopropuestaparasoportarintegridadytrazabilidaddelasoperacionesenotroscamposcomosalud,educaciónycomercio.

Algunas de las aplicaciones de la tecnología Blockchain en el mundo son mencionadas en elartículo“Blockchain:larevoluciónqueaúnnohacomenzado”publicadoel11defebrerode2020por BBC1. La empresa Maersk usa de la tecnología para el rastreo de los productos quetransportanalrededordelmundo,permitiendoquecualquierparteinteresada,yaseaunpuertooautoridad aduanera, pueda encontrar detalles sobre algún envío (Baraniuk, 2020). En Suecia, elsistema inmobiliariousaBlockchainpara rastreardocumentosdurante laventadeun inmueble,facilitandoelseguimientodelaventaavendedores,compradoresybancos(Baraniuk,2020).

AunquelatecnologíaBlockchainaúnnohalogradounarevolucióndigital,segúnelHypeCycledeTecnologías Emergentes publicado por Gartner en 2018 se espera que la tecnología alcance supuntodemadurezparael2023.Dentrode5o10añosseesperaqueestatecnologíaentreenlafasedeproductividadylasplataformasBlockchainyDApps(aplicacionesdescentralizadasbasadasen blockchain) sean escalables, interoperables y permitan un acercamiento a una webdescentralizada.

La figura 1 presenta una línea de tiempo con los hitos más importantes en la evolución de latecnología y el posible impacto que tendrá en el futuro cercano. Se espera que al alcanzar sumadurez, blockchain apoye desarrollos tecnológicos en contextos variados como medicina ycomerciosminoristas.

1https://www.bbc.com/news/business-51281233

Page 7: Trabajo de Grado Identidad Digital basada en Blockchain en

7

Figura1.Evolucióndelatecnologíablockchain.

Uno de los campos de aplicación de la tecnología Blockchain es en la administración de laidentidaddigitalyunodelosaspectosfundamentalesdeesta, laautenticación.Enlaactualidad,los usuarios que navegan y realizan transacciones por internet se identifican por medio deusuarios/identificadoresycontraseñas.Estaformadeidentificaciónnogarantizalaautenticaciónde identidad de los usuarios ya que las credenciales pueden ser robadas o inventadas. Por lotanto, las personas no tienen una forma de presentar credenciales verificables en línea queasegurenquesísonquienesdicenser.

Este documento explora el potencial de la tecnología blockchain para resolver el problemamencionado en un contexto particular, instituciones educativas. El resto del documento estáorganizado así: el capítulo 2 describe el problema de la identidad digital en institucioneseducativas,elcapítulo3presentaeldiseño,requerimientosfuncionalesycasosdeusodelsistemadeidentidaddigitalpropuestoparalaUniversidaddelosAndes,elcapítulo4describeoperacionesque el sistema lleva a cabo en la implementación realizada conHyperledger Indy, el capítulo 5muestralaspruebasrealizadasparaevaluarelsistemapropuestoyelcapítulo6exponealgunostrabajos relacionadoscon lasaplicacionesdeBlockchain.Finalmente,seconcluyeysediscuteeltrabajofuturoenelcapítulo7.

Page 8: Trabajo de Grado Identidad Digital basada en Blockchain en

8

2 DESCRIPCIÓNDELPROBLEMA

Establecer la identidad digital ha sido uno de los problemas que desde hace varios años haenfrentado la comunidad que usa Internet pues no existen credenciales que verifiquen que elusuarioqueestáinteractuandoenlaredrealmenteeslapersonaquediceser.Esdecir,cuandoseaccedeaunsitiowebserealizaelregistroconunperfilyconunosdatosquepodríanserfalsosyelsitiowebnopuedecomprobarestetipodeinformación.Debidoaesto,esdifícilconfiarenlasidentidadesqueproporcionan losusuariosyaquenoexisteundocumentodigital conelque sepuedaregistraroiniciarsesiónenunsitiowebquegaranticelaidentidaddeunusuario.LafaltadeestaidentidaddigitalocasionaquelaspersonastengandecenasdeusuariosycontraseñasconlosqueinteractúancondiferentessitiosyproveedoresenInternet.

Enelmundofísico,estaidentidadpuedecomprobarsecondocumentoscomopasaportes,cédulasde ciudadanía, certificados de nacimiento o carnés. En las instituciones educativas, como laUniversidad de los Andes, es común que las personas vinculadas a la institución usen un carnécomo medio de identificación físico, esto permite su ingreso al campus y a múltiples edificiosrelacionados.ParaingresaralasplataformasvirtualescomoSicua,correoelectrónicoyBanner,laspersonasusancredencialesdeusuario/contraseñaparaestablecersuidentidaddigital.Sibienlascredencialesusuario/contraseñason lasmismasparatodas lasplataformasy tienenasociadounconjunto propio de retos, el uso del carné para ingreso exclusivo de personas vinculadas a launiversidadpuedeverseafectadoporpérdidaorobodeeste.

Para entender mejor el problema asociado con la identidad digital, las secciones siguientespresentan:lasdefinicionesdealgunostérminosrelacionadosconlanaturalezadelaidentificaciónenunmundodigital,unaaproximaciónaloscomponentesdeunsistemadeidentidaddigital,unaposible integraciónde este con la tecnologíaBlockchain y la descripcióndel problemaqueestetrabajoestudia.

2.1 IdentidadDigital

SegúnCamp(2004),laidentificaciónesunelementonecesarioenunmundodigitalquefuncionapormediodetransacciones.Sinembargo,muchosdelossistemasdeidentificaciónactualesestánbasados en la identidad de papel y tienen grandes diferencias con la identificación digital queocurre en la red. Entre ellas se encuentran: la combinación de atributos de identidad,autenticación e identificadores para lograr una autenticación completa en los sistemas deidentidaddepapelylascaracterísticasdelascredencialesdepapel,lascualesdebenserlegiblespor los humanos, duraderas y auto evaluables (Camp, 2004). Por lo tanto, estos sistemas deidentificación de papel no pueden ser mapeados directamente en sistemas de identificacióndigitales.

Lossistemasde identificacióntradicionalesestánformadosporvarioscomponentes funcionales,loscualesnecesitandefinirseparaconocersu interacciónypoder implementarlosenunsistemadeidentificacióndigital.LasdefinicionespresentadasporCamp(2004)son:

• Identificador: aquel que distingue a una persona, lugar o cosa distinta dentro de uncontextoconunespaciodenombresespecíficos.Unidentificadorsoloessignificativoenel espacio de nombres especifico y solo cuando está asociado con la cosa que se está

Page 9: Trabajo de Grado Identidad Digital basada en Blockchain en

9

identificando. Por lo tanto, un identificador tiene: cosa identificada, identificador yespaciodenombres.Unindividuopuedetenervariosidentificadores.

• Atributo:esunacaracterísticaasociadaaunaentidad.• Identificador personal: conjunto de identificadores persistentes asociados con un

individuoquesebasanenatributosquesondifícilesoimposiblesdealterar,norequierendeautenticación.

• Identificación: es una asociación de un identificador personal con un individuo quepresentaatributos.Enlared,estaasociacióntieneencuentatantoalaspersonascomoalosdispositivosmóviles.

• Autenticación:eslapruebadeunatributo.• Autenticación de identidad: demuestra una asociación entre una entidad y un

identificador.• Autenticacióndeatributos:demuestraunaasociaciónentreunaentidadyunatributo.En

unsistemadeidentidadselograendospasos:autenticacióndeidentidadyautenticacióndelaasociacióndelatributoyelidentificador.

• Autorización:esladecisióndepermitirunaacciónparticularbasadaenunidentificadoroenunatributo.

• Identidad: es el conjunto de atributos temporales, permanentes o de larga duraciónasociadosconunaentidad.

• Anónimo:esunatributoautenticadoquenoestávinculadoaunidentificado,esdecir,unidentificador que no está asociado con algún identificador personal. Un identificadoranónimoidentificaunatributosolounavez.Cuandoseutilizamásdeunavezseconvierteenseudónimo.

• Seudónimo:unidentificadorasociadoconatributosoconjuntodetransacciones,perosinidentificadorpermanente.

El Instituto Nacional de Estándares y Tecnología de los Estados Unidos (NIST, por sus siglas eninglés)definelaidentidaddigitalcomo“larepresentaciónúnicadeunsujetoinvolucradoenunatransacción en línea, siendo una identidad única en el contexto de un servicio digital, pero nonecesariamenteidentificaalsujetoentodosloscontextos”.

2.2 Unmodelodeserviciodeidentidaddigital

Debido a los diferentes servicios que utilizan los usuarios en internet, surge la necesidad deadministrar eficientemente la identificación basada en identificadores (ID) e información deautenticación (claves) (Kang, Park, Chun, & Song, 2008). Los sitios web que proporcionan unservicio, tienen sus propios métodos de identificación para proporcionar el servicioexclusivamenteausuariosautorizados.Entrelosesquemasusadospodemosmencionar:

- Autenticación basada en ID/PW: requiere la emisión de una identificación única para elusuarioatravésdeunmétodoseparadodurantelasuscripción.

- Autenticaciónutilizandoelnombrerealdelusuarioyelnúmerodeidentificaciónnacional.- Autenticaciónutilizandoinformacióndecorreoelectrónicoyaregistrada.- Autenticación mediante un certificado público: se usa cuando se necesita una

autenticaciónapruebadefallasparalabancaelectrónicauotrosfinessimilares.- Autenticaciónatravésdeundispositivomóvil:utilizalosdatosdelacuentadeloperador

detelecomunicacionesmóvilesyelnúmeroúnicodelteléfonomóvil.- Autenticaciónmediantebiometría:huellaoirisdelusuario.

Page 10: Trabajo de Grado Identidad Digital basada en Blockchain en

10

- Autenticacióncompuesta:combinademétodosanteriores.

Kangetal.(2008)proponenunmodeloqueoperaenelentornowebyseestructuracomountipoweb/servidor. El lado del servidor consiste en el servidor web existente y el servidor web deidentidad. El lado del cliente consiste en el navegador web y el sistema de identidad digitalconectado. El modelo básico de servicio de identificación electrónica consiste en el usuario, elproveedor de servicio y el proveedor de servicios de gestión de identidad. A continuación, ladescripcióndeloscomponentesdelmodelo:

- Proveedordelserviciodeinternet.- Proveedordeserviciosdegestióndeidentidad:proporcionaycompartelainformacióndel

usuarioquesegeneraduranteelprocesodeprestacióndelserviciodeinternet,conotrosproveedoresdeservicios.

- Módulodegestiónde identidaddigital: la informaciónprocesadaatravésde internetsepuede transferir demanera segura, se clasifica y administra en una tarjeta de perfil deinformaciónpersonalyunatarjetadesitioparaevitarlasobreexposición.

- Tarjetadeperfildeinformaciónpersonal:contienesololainformaciónpersonalbásicadelusuario necesaria para suscribirse al servicio de Internet. El usuario puede añadirinformación.

- Tarjetade sitio: contiene losdatosdeautenticaciónpara iniciar sesiónenel serviciodeinternetsuscrito,unalistadeserviciosregistradoseinformacióngeneradaporelusuario.SeemiteunatarjetadesitioparacadasitiowebdeInternet.

- Usuario: sujeto que utiliza el servicio de internet a través del servicio de gestión deidentidad digital. El usuario puede usar el servicio a través del módulo de gestión deidentidaddigital. Estemódulo incluyeuna tarjetadeperfil de informaciónpersonal quecontiene los datos del usuario necesarios para la suscripción a un servicio de internet yunatarjetadesitioquecontienelosdatosdeautenticacióndeiniciodesesión.

2.3 IdentidadesdigitalesdinámicasyautosoberanasbasadasenlatecnologíaBlockchain

Amedidaquecrecelatecnologíaasociadaconpagoselectrónicos,aumentanlosfraudesyrobosde identidad. Por lo tanto, es necesario que los vendedores puedan realizar una verificaciónretrospectiva de las transacciones pasadas en cualquier momento posterior (Gulati & Huang,2019). Establecer identidades digitales dinámicas e integradas permiten tomar varios atributosqueseandiferentesyquevaríenconeltiempo.Ladinámicapermitereduciresfuerzosenverificarlas identidades en diferentes plataformas, mientras que la integración permite combinardiferentes datos en un bloque aumentando la eficiencia en la verificación. Las versiones deidentidadsevinculanentresicriptográficamenteporhashing(creacióndecódigosdehash)y,porlotanto,lacadenaimitaelconceptodeBlockchain(Gulati&Huang,2019).

La información de identidad es análoga a los datos relacionados con las transacciones en unacadenadebloques.Un individuopuedeposeermásdeuna cadenadebloquesde identidad, loqueleotorgalasoberaníaindividualsobrequéatributosseincluiránencadacadenadebloquesdeidentidadycuálesseexpondránparafinesdeverificación.

ElpasoinicialenelprocesopropuestoporGulati&Huang(2019)eslacreacióndelprimerbloquedondeelindividuohaceusodesusdatosbiométricos(huellasyescaneofacial)quesirvencomoelatributoconstantedelaidentidad.Elindividuocargalosatributosquesonvariables,cuandoestoscambiansecreaunnuevobloqueconlainformaciónmásrecienteyseagregaalbloqueanterior.Los bloques se vinculan a través de hash criptográfico. De esta forma, la identidad es auto

Page 11: Trabajo de Grado Identidad Digital basada en Blockchain en

11

soberanayaqueescreadaymantenidaporel individuoynoporelproveedorde identidad.Lasidentidadesdinámicasfacilitanlaverificaciónretrospectivayaquepermitenrastrearaunaversiónanteriordelaidentidaddelmismoindividuoatravésdelacadenadebloques.

La principal ventaja del esquema propuesto es que permite la verificación retrospectiva detransaccionespasadasqueinvolucranunaversiónanteriordelaidentidaddelusuario.Lacadenade bloques de transacciones debe asignarse a las cadenas de bloques de identidaddel usuario.Estosehacemanteniendounregistrodetodaslastransaccionesqueinvolucranlamismaversióndeidentidadpormediodelnúmerodesecuenciadelosbloques.

Larelaciónentrelosbloquesdetransaccionesylosbloquesdeidentidadsiguelaregladelordentemporal,siunbloquedeidentidadestuvoinvolucradoenunatransacción,cualquierbloquequesigaesebloqueen lamismacadenadebloquesde identidadnopuedeestar involucradoen lastransaccionesquetuvieronlugarantesdeesatransacción(Gulati&Huang,2019).Elordendelosbloquesenunacadenadebloquesesconsistenteconelordendeltiempocuandoseagreganalacadena de bloques. Además, un bloque de identidad se puede asignar amás de un bloque detransacción si la información de identidad almacenada en ese bloque sigue siendo válida en elmomento en el que ocurren esas transacciones, pero un bloque de transacción no se puedeasignaramásdeunbloquedeidentidadenlamismacadenadebloquesdeidentidad.

2.4 Problema

Actualmente, lamaneraenquelaspersonasse identificanestábasadaensistemasde identidadtradicionales los cuales no garantizan que los individuos realmente son las personas que estándiciendoser.Enelcasodeunaentidadeducativauniversitaria,comolaUniversidaddelosAndes,laidentificaciónfísicaserealizapormediodecarnéts,paraelaccesoalcampus,ylaidentificacióndigitala travésdecredencialesusuario/contraseña,paraelaccesoaplataformasvirtualescomoBlackboard, BrightSpace, etc. La falta de una identificación que permita a los miembros de launiversidadidentificarsefísicaydigitalmentedeformasegurayconfiablepuedeconducirarobosdeidentidaddelosmiembrosdelainstitución.

Page 12: Trabajo de Grado Identidad Digital basada en Blockchain en

12

3 PROPUESTADESOLUCIÓNLapropuestadesoluciónsebasaenlacreacióndeunaidentidaddigitalparalosmiembrosdeunauniversidad, como la Universidad de los Andes, que les permita el ingreso al campus de launiversidadyalasdiferentesplataformasvirtualesdelamismacomoBlackboard.Estaidentidaddigital es portable y garantiza que una persona está vinculada a la universidad ya sea comoestudiante, profesor, empleado o invitado. La construcción de esta identidad digital se realizahaciendousodelatecnologíaBlockchainydesuscaracterísticasdedescentralización,integridaddelosdatosyconfianza.

LosesquemasdeidentidaddigitalbasadosenlatecnologíaBlockchainsebasanenlainteraccióndetresactoresprincipales:elemisordeidentidad,elpropietariodelaidentidadyelverificadordelaidentidad.

• Elemisoreslaentidadqueemitelascredencialespersonalesparalospropietariosyeselencargadodedar validezde los atributosde la credencial. Eneste caso, el emisor es laUniversidadde losAndes pues es la entidadquepuede certificar queunapersona estávinculadaalauniversidad.

• El propietario de la identidad es el encargado de almacenar las diferentes credencialescorrespondientes a los atributos que forman su identidad digital. Los estudiantes,maestros o empleados almacenan la credencial que emite la universidad en la quecertificaqueestánvinculadosalainstitución.

• Elverificadordeidentidadesaquelquerecibelacredencialypruebasuvalidezparatenercerteza que los atributos que presenta el propietario son verdaderos. En este caso, losverificadores son los servicios ofrecidos por la universidad solo a losmiembros de estacomolosonsicuayelaccesoalcampus.

Figura2.Interaccióndelosactoresconelledgerdistribuido

Page 13: Trabajo de Grado Identidad Digital basada en Blockchain en

13

Estos actores interactúan conun ledger distribuido en el quepublican susDIDs (identificadoresdescentralizados) loscualescontienen la llavepúblicadecadaunode losparticipantesy,por lotanto,permitenverificarlapropiedaddelascredenciales.EstainteracciónpuedeobservarseenlaFigura2.

• Cualquiermiembrodelauniversidad,enestecasounestudiante,debeidentificarsecomomiembro de la institución para acceder al campus o ingresar a sicua, portal dondeencuentralasmateriasqueestátomando.Paraagregarestacredencialcomounatributomásdesuidentidaddigitalsolicitaalauniversidadunacredencialquelocertifiquecomoestudiante.

• La verificación por parte de la universidad se realiza por medio del número deidentificación, por lo tanto, se asume que el estudiante cuenta con una credencialverificada por una entidad del gobierno que certifica su número de certificación. Launiversidadcompruebaqueelnúmerodeidentificaciónproporcionadoporelestudiantese encuentra vinculado a la institución y emite una credencial certificándolo. De igualforma,publicaelDIDdelaemisióndelcertificadoyunregistroderevocación,elcualhacereferenciaaltiempodevalidezdelcertificado,enelledgerdistribuido.

• Cuandoelestudianteobtiene lacredencialquevinculaa launiversidad lopresentaa losserviciosquelorequieren.Sicuarecibelacredencialyverifica,pormediodelDIDobtenidodelledger,quehasidoemitidoporlauniversidad.Alverificarlavalidezdelcertificado,sepermiteelaccesoalaplataforma.Deformasimilarocurreconelaccesoalcampus.

3.1 Requerimientosfuncionalesycasosdeuso

- El sistema permite a la universidad emitir credenciales que certifiquen que unapersonaestávinculadaalainstitución.

- Unapersonavinculadaa launiversidadpuedesolicitarunacredencialquecertifiquequehacepartedeesta.

- El sistema permite la verificación de credenciales que presentan las personas quequierenaccederasicuaoalcampus.

- Elsistemapermitealosparticipantesalmacenarsuscredencialeseidentificadoresenunabilleteradigital.

Casosdeuso:

• Elestudianteoprofesor ingresa losdatoscorrespondientes (númerode identificación)ysolicita su credencial a la Universidad de los Andes. Tras ser emita la credencial, elestudianteoprofesorlapresentaalosserviciosdigitales,comoSicua,ycampusparateneracceso a estos. La credencial es almacenada en una billetera digital que podría estaralmacenadaenundispositivomóvilcomoelcelular.

Page 14: Trabajo de Grado Identidad Digital basada en Blockchain en

14

Figura3.Casodeusoparaestudianteyprofesor

• El empleado o invitado ingresa los datos correspondientes (número de identificación) ysolicita su credencial a la Universidad de los Andes. Tras ser emita la credencial, elempleado o invitado la presenta al servicio de acceso al campus. La credencial esalmacenadaenunabilleteradigital.

Figura4.Casodeusoparaempleadoeinvitado

Page 15: Trabajo de Grado Identidad Digital basada en Blockchain en

15

Loscasosdeusosonmuysimilaresyunadelasdiferenciaseselservicioalqueelpropietariodelaidentidad presenta la credencial. Sin embargo, el factor más diferenciador se encuentra en eltiempoquetardaelemisordelacredencialenpresentarsurevocación.Porejemplo,lacredencialde estudiante o profesor tardará en revocarse al menos un semestre y posiblemente más,mientrasquelacredencialdeuninvitadopodríarevocarsedespuésdeunashorasdesuemisión.

Eltiempodevalidezparaunacredencialdeinvitadosedeterminadependiendodeltipodeeventoalqueasiste, launiversidaddebería llevarunregistrodeeventosyde laduracióndeestosparaemitircredencialesapropiadas.

3.2 Marcoteórico

Esta seccióndescribebrevemente los fundamentosde las tecnologíasusadapara la creacióndeblockchain.

• Bitcoin

La tecnologíaBlockchain tuvo suaugedepopularidadenel 2008 cuandoSatoshiNakamotopublicólapropuestadeunsistemafinancieroelectrónicollamadoBitcoin,elcualdioformaaunnuevoconceptodedinero.Estesistemapeer-to-peerenfrentóelproblemade loscostosrealizados por las instituciones financieras las cuales funcionan como intermediariosconfiables al momento de hacer una transacción. Bitcoin no requiere de ninguna entidadcentralquegenereconfianzaycontroleelsistema,sinembargo,silagenera.

ElsistemafinancieroBitcoinesunareddeparticipantesqueejecutantransaccionesdeformaprivada,esdecir,norevelansu identidadporqueusanseudónimospararealizar lasmismas.Sinembargo,todaslastransaccionessonconocidasportodoslosparticipantesyaqueestasseregistran en libros públicos. Además, son aseguradas para así evitar su modificación. Elfuncionamiento de este sistema financiero se logra gracias a la combinación de tecnologíasdisponiblescomoelhashcriptográfico, lacriptografíaasimétrica, lafirmadigital,redespeer-to-peer y mecanismos de consenso, dando forma a una nueva tecnología conocida comoBlockchain.

• Hashcriptográfico

Esunafuncióndecódigoderesumenlacualtomaunmensajedelongitudarbitrariaycalculaunnúmerodelongitudfija.Estafuncióncuentacontrespropiedadesfundamentales:esfácilcalcularlafuncióndehashdelmensaje,esdifícilcalcularelmensajedadalafuncióndehash,esdecir,noesfácilencontrarelinversodelafuncióndehash,yescomputacionalmentedifícilencontrardosmensajesquetenganlamismafuncióndehash.

El hash criptográfico es una de las herramientas más utilizadas para la protección deinformación debido a su propiedad de no reversión. Debido a que es una funciónunidireccional,unavezelmensajehasidoinsertadoenlafuncióndehashesmuydifícilutilizarel hash resultante para encontrar el mensaje original. De igual forma, su amplio uso en el

Page 16: Trabajo de Grado Identidad Digital basada en Blockchain en

16

campodeseguridadcibernéticasedebeaque lageneracióndehashdeunmensajeesunaoperacióncomputacionalmenteeficiente.

En la cadena de bloques de Bitcoin, el uso del hash criptográfico permite garantizar laintegridaddecadabloqueyporlotanto,delastransaccionesquetienecadauno.Cadabloquecalculasufuncióndehashyalmacenaladelbloqueanterior.Deestaforma,secrealacadenadebloquesyseestableceunarelaciónentreestos.Debidoaqueunpequeñocambioen losdatos insertadosen la funcióndehash cambia completamenteelhash resultante, sepuededescubrirdeformarápidacuandounatransacciónounbloquehansidoalterados.

• Criptografíaasimétrica

Esunmecanismoquepermite la verificacióndel emisordeunmensaje a travésdel usodellaves públicas y privadas. Cadaentidad involucradaposeeuna llave privadaque le permitecifrarelmensajeyunallavepúblicaquelepermitealreceptordescifrarelmensaje.Elemisoreselúnicoqueconocesullaveprivadamientrasquelallavepúblicaesconocidaporlosdemásparticipantes.Cuandoelreceptordescifraelmensajepuedeverificarqueelpropietariodelallaveprivadaesquiénenvíaelmensajeyaquelasdosllavesseencuentranrelacionadas.

• Firmadigital

Es un mecanismo que permite la autenticación de un mensaje o documento, es decir, elreceptor puede confirmar quién ha sido el emisor delmensaje y que el mismo no ha sidoalterado.Poseeunapropiedadbasadaenlacriptografíaasimétrica,enlaqueelfirmantetieneunallaveprivada,delacualsoloéltieneconocimiento,yunallavepública.Cuandosefirmaundocumento, se crea un hash para el documento el cual va a ser encriptado usando la llaveprivadadelemisor.Estehashencriptadosecombinaenunafirmadigitalconla llavepúblicadel firmante y se agrega al documento que se va a enviar. De esta forma, el receptordesencriptaelhashcon la llavepúblicadelemisory locomparaconelhashdeldocumentoquehacalculadolocalmente.Siloshashescoincidensignificaqueeldocumentorecibidonohasido alterado y que el firmante delmismo es el verdadero emisor. Las firmas digitales sonúnicas, infalsificables,verificablese innegablesgraciasa laspropiedadesmatemáticas de lasquehacenuso.

EnelfuncionamientodeBitcoin,lasfirmasdigitalessonlasquehacenválidaslastransaccionesque se agregan a los bloques. Cada participante debe firmar las transacciones que quiereañadir para que los demás participantes de la red se aseguren que él ha sido el verdaderoemisordelatransacción.

• Redespeer-to-peer

Esunareddecomputadorasonodosquenocuentanconunservidorcentralquecontrolelared, estas computadoras se encuentran conectadas entre sí, sin embargo, ninguna ejercecontrolsobrelaotra.Losnodoscompartenrecursosinlanecesidaddeunsistemacentralizadoquelosadministreycuentanconlosmismosprivilegios.EstetipodearquitecturadistribuidaeslaquelebrindaaBitcoinladescentralizaciónlacualesunodelosfactoresdiferenciadoresconlosotrossistemasfinancierosexistentes.

Page 17: Trabajo de Grado Identidad Digital basada en Blockchain en

17

La combinación de estas tecnologías hace de Bitcoin unamoneda electrónica formada por unacadenade firmasdigitales.De igual forma, lepermitengarantizarprivacidad yaqueapesardeque las transaccionessonpúblicas,noseconoce la identidaddelpropietariode la llavepública.Además,permite lavalidaciónde la transacciónpuessepuedeverificarqueelpropietariodelamonedacorrespondealpropietariodelallavequerealizólatransacción.También,permitellevaruncontroldegastoelcualaseguraqueunamonedanosehatransferidodosveces.

ElfuncionamientodeBitcoin,ensusprimerasversiones,seajustaalsiguienteprotocolo:

• Cualquier participante agrega una transacción al libro público, esta transacción estáfirmadadigitalmenteparagarantizarlealosdemásparticipantesqueélhasidoelemisor.Estatransacciónescomunicadaalosdemásparticipantesdelared.

• Losdemásparticipantesalmacenanlatransacciónenunnuevobloquedeformalocal.• Cuando el bloque alcanza el límite de transacciones, este queda a la espera de su

aseguramiento.Cualquierparticipantepuedeparticiparenelaseguramientodelbloqueelcual consiste en realizar operaciones de cómputo que resuelvan una prueba de trabajo(ProofofWork).Lapruebadetrabajoconsisteenencontrarunnúmerotalqueelhashdelbloquecomienceconunnúmerodefinidodeceros.

• El primer participante que logre encontrar el Proof of Work del bloque lo comunica atodoslosdemásnodos.Estosvalidanlastransaccionesqueseencuentranenelbloqueyloañadenasucadena,manifestandoasísuaceptación.

Blockchain

BlockchaineslatecnologíabasesobrelaquefuncionaBitcoin.Comosemencionóanteriormente,esunlibrocompartidoqueregistrabloquesdeinformacióngarantizandoqueelcontenidodelosbloques no puede ser modificado. Cada uno de los bloques de información está asegurado yunidos entre sí mediante principios criptográficos (hash criptográfico). Estos registros sonadministrados por un grupo de computadores distribuidos que no son propiedad de una solaentidad.Por lotanto, latecnologíaBlockchainesunaformaautomáticaysegurade intercambiodeinformaciónquepuedetenermuchasaplicacionesenotroscamposdiferentesalfinanciero.Sufuncionamientoes igual al descrito enBitcoin: la transacción se inicia cuandounade las partescreaunbloqueyesteesverificadopormuchoscomputadoresdistribuidosenunared,cuandoelbloqueestá verificadoes agregadoauna cadenaalmacenadaen la red comounnuevoyúnicoregistroconunahistoriaúnica.

Las principales ventajas de esta tecnología son la inmutabilidad de la información, el controldistribuidoylaconfianzaquegenera.

• Descentralización

Esun sistemadistribuidodonde la informaciónnoesalmacenadaporuna solaentidad sinoquetodoslosparticipantesdelsistemaoredtienenaccesoalamisma.Lacomunicaciónentrelosparticipantesserealizadeformadirectasinlaintervencióndeunaterceraperta.

• Transparencia

Todoslosparticipantesdelaredtienenaccesoaregistrosdelastransaccionesrealizadasporlosdemásmiembros.Estosregistroscontienenunhistorialúnicoquepermiteconocertodoslosmovimientosrealizadosenlared.Sinembargo,laprivacidaddelparticipantesemantiene

Page 18: Trabajo de Grado Identidad Digital basada en Blockchain en

18

protegidapuesnosetieneaccesoainformaciónpersonaldelmismosinoalastransaccionesrealizadasporladirecciónpúblicadecadaunodeellos.

• Inmutabilidad

UnavezunatransacciónesregistradaenlareddeBlockchainestanopuedesermodificadaomanipulada.Estosedebealafuncióncriptográficadehashutilizadaalmomentoderegistrarlas transacciones, específicamente, cuando se almacena el hash del bloque anterior. Estefactoreselquepermitequelascadenasdebloquesseanconfiablesytrazables.

Apesardeque la tecnologíaBlockchainobtuvopopularidadenel sector financiero,graciasasuimplementación en Bitcoin, sus aplicaciones se han extendido a otros campos como la salud,educacióny la industria.Enestoscampossehandescubiertoescenariosen losqueesnecesariounmecanismoauditable,transparenteyquegarantice la inmutabilidadde la informaciónyaseaporquesemanejandatoscríticosotransaccionesquerequierantrazabilidad.

Segúnelescenarioy losrequisitosquepresente, latecnologíaBlockchainsepuedeimplementarde formapúblicaoprivada. LaBlockchainpública suponeque cualquierusuariopuedeunirseodejarlared,sinnecesidaddeautenticaciónoautorización.Porelcontrario,laBlockchainprivadarequierequelosparticipantesseanconocidos,confiablesyesténsujetosalasreglasdefinidasenlared.

DebidoalosdiferentesescenariosenlosqueesfavorableelusodeBlockchain,hasidonecesariollevarestatecnologíaaaplicacionesqueofrezcanalgúntipodeservicioalosusuarios.EstetipodeaplicacionessonlasDAppsoaplicacionesdescentralizadas/distribuidas.

DApps

LasDAppsoaplicacionesdescentralizadassonaplicacionesdistribuidasytransparentesyaquesonimplementadas teniendo como base la tecnología Blockchain. Aunque el concepto de DApp esrelativamente nuevo, existe un grupo de características propias de este tipo de aplicaciones: lamayoríasonopensourceporloquesucódigoestádisponibleparaescrutinioycualquierdecisiónocambiodebetomarsecomoresultadodeunconsensorealizadoporlamayoríadelosusuarios;sondescentralizadasporloquelosregistrosdelaoperacióndelaaplicaciónsonalmacenadosenunacadenadebloquespúblicaydescentralizada.

• SmartContracts

LaconstruccióndeaplicacionesdescentralizadasserealizaatravésdelosSmartContracts,loscualessonprogramasqueseescribensobreBlockchainypermitendefinirsu interacción.Enestossedefine la lógicadelnegocioyal igualque losbloquesde lacadenason inmutables,unavezimplementadosnosepuedenmodificar.LosSmartContractssoloseejecutancuandosonllamadosysecumplentodaslasreglasqueestándefinidasenestos.

Existen varias plataformas de Blockchain que ofrecen herramientas con las que se puedendesarrollar aplicaciones descentralizadas. Algunas de estas plataformas son Ethereum,HyperledgerFabric,IBMBlockchain.

Page 19: Trabajo de Grado Identidad Digital basada en Blockchain en

19

3.3 Diseñodelledger

EnlaFigura2sepresentaron,deformaglobal, loscomponentesdelsistemade identidaddigitalpara losmiembrosde laUniversidadde losAndes.Además, semuestra la interacciónentre loscomponentes.Unodeloscomponentesmásimportanteseselledgeryaqueconesteinteractúantodoslosactoresdelsistema.Acontinuación,sepresentanloselementosqueseránalmacenadosenelledgerparasoportarelesquemadeautenticaciónpropuesto.

Lapublicacióndedatospersonalesenelledgerpúblicoydistribuidoponeenriesgolaprivacidadde los usuarios. Además, no es eficiente ya que la identidad es dinámica y algunos atributospueden cambiar con el tiempo. Por lo tanto, es importante tener en cuenta que los datospersonalesnosealmacenanenelledger.LaFigura5muestraloselementosqueseguardanenelledger,entreellosseencuentran:

- Los DIDs (identificadores descentralizados públicos) de los participantes (uniandes,estudiante,sicua,campus)

- Credential Schemas los cuales hacen referencia a la estructura de las credenciales, enestecasodelacredencialquelovinculacomomiembrodelauniversidad.

- CredentialDefinitionsquecontienenunainstanciadelCredentialSchemaylasclavesdeverificaciónpública.

- Registrosderevocaciónenlosqueelemisorinformasobrelavalidezdelacredencial.

Figura5.Elementosalmacenadosenelledger

Page 20: Trabajo de Grado Identidad Digital basada en Blockchain en

20

4 IMPLEMENTACIÓN

Estasecciónpresentaunadescripcióndelasherramientasutilizadasparaeldesarrollodelsistemade identidad digital propuesto para los miembros de la Universidad de los Andes. Además, sepresentanlasprincipalesoperacionesinvolucradasenlaimplementacióndelsistema.Finalmente,se miden los tiempos de respuesta de dichas operaciones y se realiza una reflexión sobre lafuncionalidaddeldiseñoeimplementacióndesarrollados.

4.1 FrameworksyHerramientas

Paralacreacióndela identidaddigitaldelosmiembrosdelaUniversidaddelosAndesseutilizóIndySDK,unadelasherramientasparaelclienteofrecidasporHyperledgerIndy.

• HyperledgerFabricEs una comunidad de código abierto, presentada almundo por Linux Foundation en el2016, centrada en el desarrollo de frameworks, librerías y herramientas paraimplementacionesdeBlockchainanivelempresarial2.Ofrecen una Blockchain autorizada, es decir, los participantes de la red ya se conocenentre sí y su enfoque principal es compartir datos con un mayor grado de seguridad.Debido a que no realizan Proof of Work, las Blockchain se concentran en registrarpromesas, intercambios, transacciones o datos que no van a desaparecer. HyperledgerFabrictieneunenfoquemodularparaeldesarrolloyalojamientodeproyectosqueenelcasodeidentidaddigitalcorrespondeaHyperledgerIndy.

o HyperledgerIndyProporciona herramientas, librerías y componentes reutilizables que permitenproporcionar identidades digitales basadas en Blockchain y otros librosdistribuidos para que sean interoperables entre dominios administrativos yaplicaciones.Susprincipalescaracterísticasson:

§ Libro distribuido especialmente diseñado para la identidaddescentralizada.

§ Resistentealacorrelaciónpordiseño§ UsodeDID(identificadoresdescentralizados)quesonglobalmenteúnicos

yresolublessinrequerirningunaautoridadderesolucióncentralizada.§ Uso del protocolo Zero Knowledge Proof (ZKP) el cual permite la

verificación de un dato específico dentro de un conjunto de datos sinrevelarningúntipodeinformaciónadicional.

2https://www.hyperledger.org/use/fabric

Page 21: Trabajo de Grado Identidad Digital basada en Blockchain en

21

• IndySDK

El Indy SDKproporciona un ledger distribuido para una identidad “self-sovereign”, es decir,unaidentidaddigitalportátildeporvidaquenodependedeningunaentidadcentral.ProveeelsoftwarerequeridoparaquelosclientesdelIndySDKpuedancrearunaidentidadprivadaysegura,atravésdeunalibreríaenCllamadalibindy.

o Libindy: Es el principal componente del Indy SDK ya que proporciona el códigobase para la construcción de aplicaciones amás alto nivel deHyperledger Indy.Ofrece diferentes wrappers para desarrollar aplicaciones Indy en diferenteslenguajes de programación. En este caso, se utilizó el wrapper disponible paraPython.

Indyhaceusodeunledgeropen-sourcedistribuidoelcualfuncionacomounabasededatosproporcionada cooperativamente por el pool de participantes, en lugar de una entidadcentral. La información seprotegemediantecriptografíay sealmacenaen las transaccionesrealizadasportodaslasmáquinasparticipantes.

HyperledgerIndytrabajaconSovrin,unafundacióninternacionalsinfinesdelucroestablecidaen2016creadaparaproporcionarunserviciopúblicoglobalpara la identidaddigitaldepersonasyorganizaciones3. Sovrin contribuye al código base de Hyperledger Indy y ha desarrollado un“Marco de Confianza” para regular la participación de instituciones confiables, las cualesdenominan Stewards en la red de Sovrin. Por lo tanto, los únicos nodos válidos que puedenparticiparenelledgerdeIndysonlosStewards.

LastransaccionesquealmacenaellegderdeIndyrecibenelnombredeIdentityRecordsyhacenreferencia a información pública DIDs, llaves públicas, Credential Schemas y CredentialDeifinitions. Un DID es un identificador descentralizado que funciona como llave en el ledger.Hyperledger Indy maneja dos tipos de DID: verinym, es la identidad legal del dueño de laidentidad,ypseudonym,unDIDocultoparamantener laprivacidad.UnCredentialSchemaes laestructurabasesemánticaquedescribelalistadeatributosquepuedecontenerunacredencialenparticular.Unacredencialesinformaciónsobreunaidentidadqueseafirmaqueesverdadera.UnCredential Definition define las claves que el emisor usa para firmar una credencial. De igualforma, el registro de revocación define la vigencia de una credencial. Uno de los tipos derevocaciónofrecidosporHyperledgerIndyutilizaacumuladorescriptográficos.

Hyperledger IndyofreceunaAPI organizadapor el tipodeoperaciónque sequiera realizar.Deformageneralseencuentraclasificadaen:

o Pool:encargadadelaconfiguraciónyconexióndelosparticipantesalpooldenodos.o Ledger:encargadadelaescrituraylecturadeIdentityRecordsenelledgerdistribuido.o Wallet: encargada de la creación y manejo de la billetera digital para el

almacenamientodellavesycredenciales.o Anoncreds:encargadade lacreaciónymanejode lasCredentialSchemas,Credential

Definitionsyregistrosderevocación.o Did:encargadadelacreaciónymanejodeidentificadoresdescentralizados.

3https://sovrin.org/

Page 22: Trabajo de Grado Identidad Digital basada en Blockchain en

22

o Blob_storage: encargada del almacenamiento de los acumuladores crioptográficosutilizadosenlosregistrosderevocación.

4.2 Operaciones

Lasoperacionesinvolucradasenlaimplementacióndelaidentidaddigitalsonlassiguientes:

• TrustAnchor

Para que un participante pueda leer y escribir en el ledger, debe obtener el rol de TrustAnchor. Un Trust Anchor es una persona u organización que el ledger ya conoce. Paraconvertirse en Trust Anchor es necesario contactar a algún participante que ya cuente coneste rol en el ledger. Por definición todos los Stewards son Trust Anchors. Para estaimplementación, el ledger tiene configurado un Steward el cual proporcionará el rol a losdemásparticipantes,enestecaso,uniandes,estudiante,sicuayportería.

• IndyNodesPool

Paraquelosparticipantespuedaninteractuarconelledger,hayqueconfigurarelIndyNodesPoolparaqueestos seconecten.Paraestaconfiguración, Libindyproporciona la rutadeunarchivodondeestándefinidoslosnodosquevanarealizarlaconexión.Estasehacepormediode laAPIpool,en laque secreay conectan losnodosalelementopool.A continuación, sepresentaelfragmentodecódigoquerealizalaconfiguracióndelpoolparalosnodosyhaceelllamadodelasfuncionesñaracrearyabrirelpooldesdeelAPIpool.

pool_ = { 'name': 'pool1'} pool_['genesis_txn_path'] = get_pool_genesis_txn_path(pool_['name']) pool_['config'] = json.dumps({"genesis_txn": str(pool_['genesis_txn_path'])} try: await pool.create_pool_ledger_config(pool_['name'], pool_['config']) except IndyError as ex: if ex.error_code == ErrorCode.PoolLedgerConfigAlreadyExistsError: pass pool_['handle'] = await pool.open_pool_ledger(pool_['name'], None)

• VerinymparaUniandes,Estudiante,SicuayPortería

LosparticipantesobtienensusDIDsylosalmacenanensusbilíterasdigitalesatravésdelúnicoStewardquesecomunicaconelledger.ElStewardrecibelainformacióndelosparticipantesylaenvíaalledger.Apartirdeesemomento,Uniandes,Sicua,EstudianteyPorteriayapuedenleeryescribirenelledger.EstaoperaciónsehacepormediodelaAPIWallet.Acontinuación,se presenta el fragmento de código que asigna algunos datos básicos de uniandes para lacreación de su billetera digital. Esto se hace a través del steward, encargado de realizar elllamado a la función que crea las billeteras digitales mediante la API wallet. Después decreada, la billetera digital se asigna al nuevo participante, en este caso, uniandes. Estefragmentodecódigoserepiteparalasbilleterasdigitalesdesicua,estudianteyportería.

Page 23: Trabajo de Grado Identidad Digital basada en Blockchain en

23

uniandes = { 'name': 'Uniandes', 'wallet_config': json.dumps({'id': 'uniandes_wallet'}), 'wallet_credentials': json.dumps({'key': 'uniandes_wallet_key'}), 'pool': pool_['handle'], 'role': 'TRUST_ANCHOR' } await getting_verinym(steward, uniandes) async def getting_verinym(from_, to): await create_wallet(to) async def create_wallet(identity): try: await wallet.create_wallet(wallet_config("create", identity['wallet_config']), wallet_credentials("create", identity['wallet_credentials'])) except IndyError as ex: if ex.error_code == ErrorCode.PoolLedgerConfigAlreadyExistsError: pass identity['wallet'] = await wallet.open_wallet(

wallet_config("open",identity['wallet_config']), wallet_credentials("open", identity['wallet_credentials']))

• CredentialSchema

Para ofrecer una credencial al Estudiante que certifique su vinculación a la universidad,Uniandesdebepublicarenel ledger laestructurade lacredencial,a laquese leasignaráelnombredeUniandinoparaestecasoespecífico,ycuentaconlosatributos:nombre,apellido,númerodeidentificación,códigoyrol.LacredencialUniandinoeslaquepresentaEstudianteaSicua y Portería para identificarse como miembro de la universidad y tener acceso. EstaoperaciónsehacepormediodelasAPIsLedgeryAnoncreds.Acontinuación,sepresentaunfragmento de código en el que se crea el esquema de la credencial que va a emitir launiversidad, se define su nombre, versión y atributos. Posteriormente, uniandes publica elesquemacreadoenelledgeratravésdelAPIanoncreds.

Page 24: Trabajo de Grado Identidad Digital basada en Blockchain en

24

uniandino = { 'name': 'Uniandino', 'version': '0.1', 'attributes': ['first_name', 'last_name', 'status', 'id', 'code'] } (uniandes['uniandino_schema_id'], uniandes['uniandino_schema']) = \

await anoncreds.issuer_create_schema(uniandes['did'], uniandino['name'], uniandino['version'], json.dumps(uniandino['attributes']))

uniandino_schema_id = uniandes['uniandino_schema_id'] await send_schema(uniandes['pool'], uniandes['wallet'], uniandes['did'], uniandes['uniandino_schema'])

• CredentialDefinition

Uniandes solicita al ledger el Credential Schema de Uniandino para crear la CredentialDefinitionparaestacredencial,esdecir,parafirmarelCredentialSchemaquemásadelantevaa utilizar para generar Uniandino. Esta operación se realiza pormedio de las APIs Ledger yAnoncreds.Acontinuación,sepresentaunfragmentodecódigoenelqueuniandesrecuperadel ledger el esquema de la credencial y define el tipo de firma, en este caso la únicasoportadaCL(Camenisch-Lysyanskaya),ysilacredencialpuedeserrevocada.Finalmente,seenvíaalledgerladefinicióndelacredencialreciéncreada.

(uniandes['uniandino_schema_id'], uniandes['uniandino_schema']) = \ await get_schema(uniandes['pool'], uniandes['did'], uniandino_schema_id) uniandino_cred_def = { 'tag': 'TAG1', 'type': 'CL', 'config': {"support_revocation": True} } (uniandes['uniandino_cred_def_id'], uniandes['uniandino_cred_def']) = \

await anoncreds.issuer_create_and_store_credential_def(uniandes['wallet'], uniandes['did'], uniandes['uniandino_schema'], uniandino_cred_def['tag'],

uniandino_cred_def['type'], json.dumps(uniandino_cred_def['config'])) await send_cred_def(uniandes['pool'], uniandes['wallet'], uniandes['did'], uniandes['uniandino_cred_def'])

• Registroderevocación

UniandescreaunregistroderevocaciónparaelCredentialSchemadeUniandinoylopublicaenelledger,manifestandodeestamaneraquecualquiercredencialUniandinoesrevocabley,porlotanto,necesitalaverificaciónderevocaciónparacomprobarsuvalidez.EstaoperaciónderealizapormediodelaAPIAnoncredsyLedger.Acontinuación,sepresentaunfragmento

Page 25: Trabajo de Grado Identidad Digital basada en Blockchain en

25

de código en el que uniandes crea el registro de revocación en el que se indica el tipo derevocación, en este caso, acumuladores criptográficos. Posteriormente, se crea y se publicaunasolicitudparaagregarelregistroderevocaciónaunadefinicióndecredencialexistente.

uniandes['tails_writer_config'] = json.dumps({'base_dir':"/tmp/indy_acme_tails", 'uri_pattern': ''}) tails_writer = await

blob_storage.open_writer('default',uniandes['tails_writer_config']) (uniandes['revoc_reg_id'], uniandes['revoc_reg_def'], uniandes['revoc_reg_entry']) = await anoncreds.issuer_create_and_store_revoc_reg(

uniandes['wallet'],uniandes['did'],'CL_ACCUM','TAG1', uniandes['uniandino_cred_def_id'], json.dumps({'max_cred_num': 5, 'issuance_type': 'ISSUANCE_ON_DEMAND'}),tails_writer)

uniandes['revoc_reg_def_request'] = await ledger.build_revoc_reg_def_request(uniandes['did'], uniandes['revoc_reg_def']) await ledger.sign_and_submit_request(uniandes['pool'], uniandes['wallet'], uniandes['did'], uniandes['revoc_reg_def_request']) uniandes['revoc_reg_entry_request'] = \ await ledger.build_revoc_reg_entry_request(uniandes['did'],uniandes['revoc_reg_id'], 'CL_ACCUM',uniandes['revoc_reg_entry']) await ledger.sign_and_submit_request(uniandes['pool'], uniandes['wallet'], uniandes['did'], uniandes['revoc_reg_entry_request'])

• EstudiantesolicitalacredencialUniandino

Para obtener la credencial Uniandino, Estudiante obtiene el Credential Definition delCredentialSchemadeUniandinoyrealizalasolicitudaUniandes.Estasolicitudserealizapormedio de la API Anoncreds. A continuación, se presenta un fragmento de código en el queestudianterecuperadelledgerelCredentialSchemaycreaunasolicitudparalacredencial.

(user['uniandes_uniandino_cred_def_id'], user['uniandes_uniandino_cred_def']) = \ await get_cred_def(user['pool'], user['did'], uniandino_cred_offer_object['cred_def_id'])

(user['uniandino_cred_request'], user['uniandino_cred_request_metadata']) = \ await anoncreds.prover_create_credential_req(user['wallet'], user['did'], user['uniandino_cred_offer'], user['uniandes_uniandino_cred_def'], user['master_secret_id'])

Page 26: Trabajo de Grado Identidad Digital basada en Blockchain en

26

• UniandesemiteyenvíalacredencialUniandinoparaEstudiante

Uniandesobtiene losatributosdefinidosenelCredentialSchemadeUniandinoyprepara lainformaciónparaemitir lacredencial.EstaoperaciónsehaceutilizandolaAPIdeAnoncreds.Cuandoestálistalacredenciallaenvíaaestudiante.Cuandoestelarecibe,solicitaalledgerladefinición del registro de revocación y lo almacena en su billetera junto al credencial. Acontinuación,sepresentaunfragmentodecódigoenelqueuniandescrealacredencialquelefuesolicitadaporestudiante.Estelarecibeylaalmacenaensubilleteradigital.

uniandes['blob_storage_reader_cfg_handle'] = await blob_storage.open_reader('default', uniandes['tails_writer_config']) uniandes['uniandino_cred'], uniandes['uniandino_cred_rev_id'], uniandes['susan_cert_rev_reg_delta'] = \

await anoncreds.issuer_create_credential(uniandes['wallet'], uniandes['uniandino_cred_offer'],uniandes['uniandino_cred_request'], uniandes['uniandino_cred_values'], uniandes['revoc_reg_id'], uniandes['blob_storage_reader_cfg_handle'])

user['uniandino_cred'] = uniandes['uniandino_cred'] uniandino_cred_object = json.loads(user['uniandino_cred']) await anoncreds.prover_store_credential(user['wallet'], None, user['uniandino_cred_request_metadata'], user['uniandino_cred'], user['uniandes_uniandino_cred_def'], user['uniandes_revoc_reg_def_json'])

• PorteríacreaunasolicitudaEstudiante

Una solicitud de prueba es realizada por Portería hacia Estudiante ya que necesita verificarquelapersonaestávinculadaalauniversidadparapermitirleelacceso.Estasolicitudcuentaconciertosatributosverificablesyenalgunoscasos,concondicionesquedebencumpliresosatributos.Losatributosde lasolicituddePorteríasonnombre,apellido,códigoynúmerodeidentificación, de los cuales código y número de identificación requieren verificación de unemisor,eneste caso,Uniandesynodebenestar revocados.A continuación, sepresentaunfragmentodecódigoenelquelaporteríarealiza lasolicituddeunacredencialpara,enestecaso, permitir el acceso al campus. En la solicitud define los atributos que requierenverificación.

Page 27: Trabajo de Grado Identidad Digital basada en Blockchain en

27

nonce = await anoncreds.generate_nonce() entry['uniandino_proof_request'] = json.dumps({ 'nonce': nonce, 'name': 'Uniandino', 'version': '0.1', 'self_attested_attributes': {}, 'requested_attributes': { 'attr1_referent': { 'name': 'first_name' }, 'attr2_referent': { 'name': 'last_name' }, 'attr3_referent': { 'name': 'id', 'restrictions': [{'cred_def_id': uniandes['uniandino_cred_def_id']}] }, 'attr4_referent': { 'name': 'status', 'restrictions': [{'cred_def_id': uniandes['uniandino_cred_def_id']}] } }, 'requested_predicates':{}, 'non_revoked': {'to': int(time.time())} })

• EstudiantecreaunapruebadeUniandino

Estudiante revisa en su billetera digital cuáles de las credenciales que tiene almacenadastienenatributosqueleestásolicitandoPortería.Creaunapruebaconlosatributosnecesariosyelestadodelregistroderevocacióndecadaunoellosparacomprobarquesonválidosynohansidorevocados.Acontinuación,sepresentaunfragmentodecódigoenelqueestudianteprepara la respuestaa lasolicituddeportería.Paraestocompleta losatributosnecesariosyaquellosquenecesitanverificación,haceunareferenciaalosestadosderevocación.

Page 28: Trabajo de Grado Identidad Digital basada en Blockchain en

28

user['uniandino_requested_creds'] = json.dumps({ 'self_attested_attributes': { 'attr1_referent': 'Susan', 'attr2_referent': 'Joven' }, 'requested_attributes': { 'attr3_referent': {'cred_id': cred_for_attr3['referent'], 'revealed': True, 'timestamp': timestamp_for_attr3}, 'attr4_referent': {'cred_id': cred_for_attr4['referent'], 'revealed': True, 'timestamp': timestamp_for_attr4} }, 'requested_predicates':{} }) user['uniandino_proof'] = \

await anoncreds.prover_create_proof(user['wallet'], user['uniandino_proof_request'], user['uniandino_requested_creds'], user['master_secret_id'],

user['schemas_for_uniandino'], user['cred_defs_for_uniandino'], user['revoc_states_for_uniandino'])

• PorteríavalidalosatributosrecibidosporEstudiante

PorteríaobtieneelCredentialSchema,CredentialDefinitionyregistroderevocacióndecadaunodelosidentificadoresyatributosquefueronenviadosporEstudianteyverificasuvalidez.Dependiendodeestaverificaciónya sepuede tomar ladecisióndedaronegarelaccesoalcampus.Acontinuación,sepresentaunfragmentodecódigoenelqueporteríaverificacadaunodelosatributosquefueronpresentadosporestudiante.Estolohacesolicitandoalledgerlosestadosderevocacióndelosatributosnecesarios.

entry['schemas_for_uniandino'], entry['cred_defs_for_uniandino'], \ entry['revoc_ref_defs_for_uniandino'], entry['revoc_regs_for_uniandino'] = \ await verifier_get_entities_from_ledger(entry['pool'], entry['did'], uniandino_proof_object['identifiers'], entry['name'], requested_timestamp)

4.3 EjecucióndelPrototipo

Elcódigodelprototipocompletoseencuentradisponibleenelrepositorio4deGitHub.

4https://github.com/SusanJoven/digital-identity

Page 29: Trabajo de Grado Identidad Digital basada en Blockchain en

29

Acontinuación,sepresentaelconjuntodeinstruccionesparaconfigurarelambientenecesarioyejecutarelprototipo.

4.3.1 ConfiguracióndelAmbiente

Paradescargar,construiryejecutarelprototiposerequierelainstalaciónpreviadepython3.7yseguirlassiguientesinstrucciones:

• InstalarelSDKdeHyperledgerIndysiguiendolospasosdisponiblesenelrepositorio:https://github.com/hyperledger/indy-sdk#installing-the-sdk

• ParaconstruirlaredvirtualdenodosesnecesarioinstalarDockerDesktop:https://docs.docker.com/desktop/#download-and-install

• Clonarelcódigodelprototipodisponibleenelrepositorioconelsiguientecomando:git clone https://github.com/SusanJoven/digital-identity.git

• Debidoaqueenelrepositoriodelpasoanteriornoseencuentranlaslibreríasrequeridas,esnecesariomoverlacarpetalibindyalacarpetaconelcódigodelpasoanterior.

• Enlacarpetadigital-identityesnecesarioconstruirelmismosiguiendolospasosdisponiblesenelrepositorio:https://github.com/hyperledger/indy-sdk#how-to-build-indy-sdk-from-source

• Abrirlacarpetaenalgúneditordecódigo.• Inicializarelpooldenodoslocalesconloscomandosdisponiblesen:

https://github.com/hyperledger/indy-sdk/blob/master/README.md#1-starting-the-test-pool-on-localhost

• Paraejecutarelcódigo,dentrodelacarpetadigital-identity,seescribeelsiguientecomando:python3 –m src,.main.

4.3.2 Manualparapruebadelprototipo

Cuandoseejecutaelcódigo,losmensajesyresultadosseevidencianenlaconsoladeleditor.Paraprobarelprototiposedebenseguirlassiguientesinstrucciones:

• Elprototipo iniciacon lacreaciónyconexiónde losnodosysepuedeevidenciarcon losmensajesmostradosenlaconsola.

• Secrean lasbilleterasdigitalesdeuniandes, sicuayentry,esteúltimohace referenciaaportería.

• Para la configuración del usuario, el prototipo solicita algunos datos los cuales debeningresarsedelasiguientemanera:o Name:“Susan”o Lastname:”Joven”o Paraeltipodeusuariosemuestrancuatroopciones:

Ø Siseeligelaopción1(student)sesolicitan:v Númerodeidentificación:54321v Servicioalquedeseaacceder:1parasicuay2paracampus.

Ø Siseeligelaopción2(teacher)sesolicitan:

Page 30: Trabajo de Grado Identidad Digital basada en Blockchain en

30

v Númerodeidentificación:54321v Servicioalquedeseaacceder:1parasicuay2paracampus.

Ø Siseeligelaopción3(employee)sesolicitan:v Númerodeidentificación:54321

Ø Siseeligelaopción4(invited)sesolicitan:v Númerodeidentificación:54321v Eventoalqueasiste:1paraevento1y2paraevento2.

• Lapruebade los registrosderevocaciónse realizaconelusuario tipo invitado,segúneltipo de evento que elija el tiempo de revocación varía. Para el evento 1 el tiempo derevocaciónesde15segundos,por lo tanto,si intentaejecutarunavezmáselprototipocon el tipo de usuario invitado asistente al evento 1, se muestra en la consola que lacredencialnoesválida.

4.4 AnálisisdeResultados

4.4.1 Tiemposderespuesta

ParalaimplementacióndelcódigoserealizólaInstalacióndelSDKdeHyperledgerIndy5disponibleparaMacOS.Deigualforma,sesiguiólaMacOSBuildGuide6disponibletambiénenelrepositoriodeHyperledgerIndy.LapruebadelcódigoserealizóconunaredvirtualdenodosIndy.Paraesto,seinicializóungrupodenodoslocalesconDockerDesktopMac(v.2.3.0.2)enunMacBookAirconmacOSMojave (v. 10.14.6) yprocesador1,6GHz Intel Core i5. El pooldenodos se inicializóenlocalhostenlospuertos9701-97087.ElsistemadeidentidadsedesarrollóenPython(v.3.7.7)yseutilizaronloswrappers8disponiblesparaPythonenelrepositoriodeHyperledgerIndy.EleditordecódigoutilizadofueVisualStudioCode (1.46.1). Para correr el código es necesario inicializar los nodos locales y posteriormente,correrelarchivomain.pylocalizadoenlacarpetasrc.Semidieronlostiemposderespuestadelasprincipalesoperacionesrealizadasporelledgerylosparticipantes.Lostiemposobtenidos(ensegundos)sonlossiguientes:

- CreacióndeIndyNodesPoolyconfiguracióndelosparticipantes:0.3355seg.Debidoaqueeslaprimeraoperación,estamedidasetomódesdequeiniciaelcódigohastaantesquelosparticipantesadquierenelrolTrustAnchorindicadodeformaclaraenelcódigo.

- Asignación de DIDs a los participantes (steward, uniandes, estudiante, sicua, campus) ycreación de las billeteras digitales para cada uno de ellos: 11.8621 seg. Estamedida setomódesdeelmomentoenqueseindiciaquelosparticipantesadquierenelroldeTrust

5https://github.com/hyperledger/indy-sdk 6https://github.com/hyperledger/indy-sdk/blob/master/docs/build-guides/mac-build.md 7https://github.com/hyperledger/indy-sdk#1-starting-the-test-pool-on-localhost 8https://github.com/hyperledger/indy-sdk/tree/master/wrappers/python

Page 31: Trabajo de Grado Identidad Digital basada en Blockchain en

31

Anchor hasta antes que comienza la configuración de Credential Schemas, indicado deformaclaraenelcódigo.

- CreacióndelCredential Schemaporuniandes ypublicacióndeestaenel ledger: 1.4313seg. Estamedida se tomó desde que uniandes comienza la configuración de CredentialSchemashastaantesdelacreacióndeCredentialDefinition.

- Creación del Credential Definition, esto incluye la obtención del Credential Schema delledger,elalmacenamientodelaCredentialDefinitionenlabilleteradigitalylapublicacióndelCredentialDefinitionenelledger:5.9764seg.Estamedidasetomódesdeeliniciodela configuración de Credential Definition hasta antes de la creación del registro derevocación.

- Creacióndel registrode revocaciónporuniandesypublicaciónenel ledger:6.0437seg.Esta medida se tomó desde que uniandes empieza a crear el registro de revocación,indicadodeformaclaraenelcódigohastaantesquesesolicitalacredencial.

- Solicituddelacredencialauniandesporpartedeestudiante:0.9500seg.Estamedidasetomódesdedondeseindicalacreacióndelasolicituddelacredencialhastaqueserealizaelenvíodeesta.

- Creacióndelacredencialporpartedeuniandes:2.0366seg.Estamedidasetomódesdeelmomentoquese indicaqueuniandescrea lacredencialparaestudiantehastaantesqueesteadquiereladefinicióndelregistroderevocacióndelledger.

- Almacenamiento de la credencial por parte de estudiante: 4.45441 seg. Estamedida setomó desde donde se indica que el estudiante consulta en el ledger la definición delregistroderevocaciónhastaquealmacenalacredencialrecibidaenlabilleteradigital.

- Sicuasolicita lacredencialaestudianteparapermitirelaccesoasuservicio:2.4883seg.Estamedida se tomódonde se indica enel códigoque inicia la pruebade la credencialhasta antes que se indica que el estudiante ha empezado a crear la prueba de lacredencial.

- El estudiante crea la prueba de la credencial: 8.0481 seg. Esta medida se tomó desdedonde el estudiante solicita los estados de revocación de la credencial que ya tienealmacenadaensubilleteradigitalhastadondeseindicaqueloshaenviadoasicua.

- Sicua verifica la credencial recibida por el estudiante: 2.5140 seg .Estamedida se tomódesdedonde se indica en el código que sicua accede al Credential Schema y CredentialDefinition que se encuentran en el ledger hasta que verifica cada una de ellas, lo cualcorrespondealapartefinaldelcódigo.

Los tiempos de respuesta obtenidos de las operaciones realizadas por el sistema de identidaddigital evidencian que las operaciones que más requieren tiempo son las relacionadas con lacreaciónde identificadores,CredentialSchemasoregistrosderevocación.Estopodríadeberseaqueestasoperacionesrequieren lacreacióndefirmasy llaves,procesosquerequierenuncostocomputacional. Por el contrario, las operaciones relacionadas con consulta y publicación en elledgermuestranunostiemposderespuestabajos.

4.4.2 Manejodeidentidaddigital

Unodelosfactoresmásimportantesenlafuncionalidaddeunaidentidaddigitaleslaconfianzaenque la identidad es verdadera. La tecnología de Blockchain ofrece esta confianza y garantiza la

Page 32: Trabajo de Grado Identidad Digital basada en Blockchain en

32

integridaddecualquiertipodeinformación.Elusodeunledgerpúblicoydistribuidopermitequetodos los participantes (el emisor, propietario y verificador de la identidad) de una red puedanverificarestaintegridad,ademásdelorigendelainformación.

Elemisordelaidentidad,enestecasolasinstitucioneseducativas,sonlasentidadesqueemitencredenciales las cuales van firmadas digitalmente. El emisor publica las llaves necesarias en elledger para que el verificador de la identidad, en este caso cualquier servicio ofrecido por lasinstituciones educativas, pueda comprobar la entidad que la ha emitido. Además, el verificadortambién puede acceder al formato de cada credencial en el ledger para confirmar que estácompuestaporlosatributosdefinidosporelemisor.

El propietario de la identidad, en este caso los miembros de las instituciones educativasalmacenansuscredencialesy laspresentana losverificadores.Accedenal ledgerespecialmentepor los registros de revocación, los cuales les dan validez a las credenciales que poseen. Por lotanto,lainteraccióndelostresparticipantesmencionadosconelledgerpúblicogeneraunsistemaconfiableyseguroqueofreceunaidentidaddigitalasusparticipantes.

Page 33: Trabajo de Grado Identidad Digital basada en Blockchain en

33

5 TRABAJORELACIONADO

Esta sección presenta algunas aplicaciones basadas en la tecnología Blockchain y usadas encampos como la educación, ciudades inteligentes, comercio e industria. Estas aplicacionesaprovechan las propiedades deBlockchain para ofrecer integridaddedatos, descentralización yprivacidadyconfianzaalosusuarios.

TickEth,unsistemadeventasdeentradasconstruidoenEthereum

TickEth(Corsi,Lagorio,&Ribaudo,2019)esunsistemadeventasdetiquetesquepermiterealizarlaventayreventadeestosdeformacontrolada.Tambiénofreceunprocesodereembolsosimpley automático que evita los fraudes y garantiza la privacidad del usuario. Este sistema es unasolución descentralizada la cual tiene sus bases en la plataforma Ethereum y en el uso de loscontratosinteligentesparasufuncionamiento.

ElusodeBlockchainpermiteverificarlalegalidaddelosvendedoresdetiquetesy,porlotanto,delos mismos tiquetes. De igual forma, evita la falsificación de tiquetes, tiquetes repetidos, lospreciosdesbordadosenlareventadetiquetesypermitequelosprincipalesvendedoresautoricenaquellosusuariosquepuedenrevenderlostiquetes(Corsi,Lagorio,&Ribaudo,2019).Conelfindegarantizarloanteriormentemencionado,elsistemarequieredelregistrodesususuarios,elpagodelostiquetesylaentradaalevento.

Sinembargo,paraproveerlaprivacidaddelusuarioenelprocesodecomprayventadetiqueteses necesario que el usuario cambie de cuenta en la plataforma de Etherum cuando existanperíodosmuylargosenlosquenorealiceningunacompra.Estefactorpuedesermolestoparaelusuariocuyointervalodetiempoentredoscomprasnoescortoyporlotanto,suprivacidadnovaaestargarantizada.

UnanuevasolucióndeverificaciónderegistroseducativosbasadaenBlockchain

Las instituciones de educación superior son la autoridad en los registros académicos de losestudiantes.Debido apreocupacionesde seguridad, las institucioneshanusadounamanerademanejar y autenticar los registros obsoleta e inadecuada, son entregados en sobres sellados ydirectamentealaterceraparteinteresada(Han,yotros,2018).Además,fotocopiasoregistrosnoselladossonconsideradosnooficialesynotienenvalidez.

La soluciónbasadaenBlockchaincreauna redseguraydistribuidadondecada individuopuedetenerlacustodiadesuspropioscertificadoseducativosypuedecompartirlosfácilmenteconotraspartesinteresadas(Han,yotros,2018).Estasoluciónpermiteladescentralizacióndecertificadosydocumentos educativos requeridos para cualquier proceso de admisión, ya sea educativo olaboral. Por lo tanto, evita la pérdida de tiempo y dinero que conlleva la realización de estostrámitesporpartedelaspersonasquelorequieren(Han,yotros,2018).

Para la implementación de esta solución es necesario el registro por parte de los usuarios loscualesharánpartedeunnodoproveedorounnodoindividual.Elnodoproveedorpodráagregarnuevos certificados yel nodo individualpodráacceder aellos.Solo las instituciones certificadaspuedenaccederyactualizarlosdatosenelsistemabajolasreglasdefinidas(Han,yotros,2018).

Page 34: Trabajo de Grado Identidad Digital basada en Blockchain en

34

BlockchainenunainfraestructuraSmartPowerGrid

Un sistema de Smart PowerGrid posee una gran cantidad de datos sensibles de los usuarios ydispositivos conectados a la Grid. Estos datos críticos pueden sufrir alteraciones debido a lapresencia de varios participantes durante su transmisión, almacenamiento o procesamiento. LaparticipacióndeunterceroenunSmartgridcentralizadoreducelatransparenciaentodalared.Porestemotivo,requieremedidasdeseguridadcomoinmutabilidaddelosdatosyverificabilidadde los registros (Vashistha & Barbhuiya, 2019). Es importante que el sistema funcione de unaformadescentralizadayaquehaymúltiplesfuentesdepoderenunaGridquesondeundominioadministrativodiferente.

El sistemapropuestoporVashistha&Barbhuiya (2019)permiteel intercambioy recoleccióndedatos en una red de dispositivos descentralizada, peer-to-peer y que no requiere de confianzaparasucorrectofuncionamiento.Además,considerafactoresdeseguridadcomoinmutabilidaddelosdatosemitidospor lossensores IoT,verificabilidadde losregistrosyprivacidad(Vashistha&Barbhuiya,2019).ElusodelatecnologíadeBlockchainpermitealmacenarlosdatosenformadehashes generados por algoritmos criptográficos que aseguran a los mismos. De esta forma, latecnologíaBlockchainpermiteunalmacenamientoinmutableyapruebademanipulacionesdelosdatosemitidosporlosdispositivos.

Apesardequeelusode la tecnologíaBlockchainpermite laprotecciónde losdatosdurantesutransmisiónyalmacenamiento,enelpapernohacenreferenciaaltipodedispositivosconlosquelareddescentralizadafuncionaríaycómopodríaafectarlaimplementacióndelatecnologíaalosmismosencuantoabatería,tamaño,etc.

AplicacionesdeBlockchainenciudadesinteligentes

Una ciudad inteligente es un sistema que conecta grupos de dispositivos que producen ycomparten grandes cantidades de información. Debido a esto, debe haber una estructuraorganizacional que controle estosmovimientos (Melhem, AlZoubi, &Mardini, 2019). El sistemaestábasadoenIoTparaconectarytransferirlosdatossobrelasredes.

ElprincipalobjetivodeaplicarestatecnologíaenelcampodelasSmartCitieseslaintegraciónycomunicaciónentreciudadanosygobiernos.Además,poderenlazardispositivosyserviciosunosconotros(Melhem,AlZoubi,&Mardini,2019).Unadelasrazonesdelarápidaadopcióndeestatecnología en Smart Cities es el incremento de la demanda de aplicaciones y servicios mástransparentesporpartedelosciudadanos.Sinembargo,unadesventajadeBlockchainenIoTeselaltocostocomputacionalylalimitacióndelosrecursosenlossistemas.

Ademásdelaidentidaddigital,otradelasaplicacionesdelBlockchainenlasSmartCitiesesenelenvíodeinformaciónprivadaentrelosciudadanosyelgobierno,elalmacenamientodedatos,lainteracciónentreciudadanoygobierno,vehículosautónomosyaplicacionesfinancieras(Melhem,AlZoubi,&Mardini,2019).LaimplementacióndeBlockchainenelsistemadeSmartCityrequieredeunacuerdototalentrelaspartesquevanaaceptarelusodelatecnología.Sinembargo,hayquepriorizarcualdetodaslasimplementacionesadoptaryaquelacombinacióndetodasgeneraunsistemamuycomplejo(Melhem,AlZoubi,&Mardini,2019).

Page 35: Trabajo de Grado Identidad Digital basada en Blockchain en

35

BlockchainenParqueInteligente:diseñodelesquemadelaaplicación

Un Smart Park es una nueva forma de parque soportada por la generación de una nuevatecnologíade información (IoT ,CloudComputing,Bigdata)ybajoelentornode innovacióndelconocimiento, producción, vida y nuevo entorno ecológico de parque. En el paper Zeng, Yuan,Zhang&Liu(2019)proponenunaaplicaciónparacrearunasolucióninnovadoraydebajocostode Smart Park. Las características de Blockchain como descentralización, autonomía einmutabilidadhantraídonuevasideasparaeldesarrollodeunnuevoestilodevidayunmodeloeconómico de Smart Park. Este modelo ahorra los gastos operativos del parque y realiza laoperación entre el operador del parque y las empresas (Zeng, Yuan, Zhang, & Liu, 2019). ConBlockchain todos los participantes construyen y cooperan un nuevo modelo de operación ydesarrollan un ecosistema de parque abierto y autónomo. Todos los participantes puedencompartirlosbeneficios(Zeng,Yuan,Zhang,&Liu,2019).

El desarrollo de este nuevo modelo enfrenta los problemas de la gran inversión inicial en laconstrucción,altoscostosoperativos,privacidad,manipulacióndedatos,entreotros(Zeng,Yuan,Zhang,&Liu,2019).Losparquesactualestienenunmododeoperacióncentralizadoelcualtieneuncostodeconstrucciónalto,toleranciaafallosbajaypocaflexibilidad.Cuandolaplataformadeoperacióncentralizadafallaoesatacadahayunampliorangodeimpactosygrandespérdidas.

ElBlockchainsirveparacambiarelmododeoperacióndelparquetradicional.Adoptaelmododeoperación “divide y vencerás”, constituye un cluster de bloques de cadena para todos losnegocios,cadacadenatienesupropiaorganización,ycolaborandoentreellaspuedenresponderrápidamentea lasnecesidadesde losusuarios (Zeng,Yuan,Zhang,&Liu,2019).De igual forma,acabaconlainformaciónaisladaenlosdiferentessistemas.

UsodeBlockchainensistemascríticosdeseguridad

Lasindustriasestánsiendomanejadasporalgúnsoftwaredesdeaplicacioneswebhastasistemasembebidosqueconducensistemascibernéticoscomplejosycríticospara la seguridad, como losvehículos autónomos. Las compañías necesitan actualizar frecuentemente sus portafolios paraadoptarnuevasideasymantenersecompetitivos(Berger,Penzenstadler,&Drogehorn,2018).Lascompañías que desarrollan productos que contienen componentes críticos de seguridad estánlidiandolaresponsabilidadygarantíaporsuseguridad.

Un sistema físico cibernético (CPS) es un sistema donde la computación se une con procesosfísicosendiferentescontextos.LafiabilidadylasinterfacesentreCPSsonalgocriticodediseñaradecuadamente(Berger,Penzenstadler,&Drogehorn,2018).UnejemplodeCPSsonlosvehículossin conductor en los que se puede implementar la tecnología Blockchain en la documentaciónextremoaextremodeldesarrollodelosartefactos.Porejemplo,cambiarunaunidaddesoftwarepuede requerir cambiarun cambioen la cadenadebloquesde todas lasunidadesdel softwarepresentes en el sistema distribuido. Además, la integridad de la comunicación entre las partestambiénpuedebeneficiarseconelusodeBlockchain,vehículo-infraestructuraovehículo-vehículo(Berger,Penzenstadler,&Drogehorn,2018).

OtroejemplodeCPSesunsistemadeenergíainteligente,cuyosdesafíosmásimportantesestánrelacionados con la privacidad y la seguridad. Se hace necesario diseñar esquemas fuertes deencriptacióndedatosysolucionesdeseguridadycontarconlaaceptaciónylaconfianzadetodaslaspartes involucradas (Berger, Penzenstadler,&Drogehorn,2018). El usodeBlockchainpuederealizarseenelcomerciodecertificadosdeemisión.

Page 36: Trabajo de Grado Identidad Digital basada en Blockchain en

36

OtrocasodeCPSes laautomatizacióndelhogar,enelqueesnecesariorealizarunseguimientodel uso correcto ymantenimiento de los objetos de valor asegurados (los detectores de humo,sistemasdecontroldecalefacciónosimilares).ElBlockchainpuedeserusadoparamonitorearlastransacciones y mensajes intercambiados entre los diferentes componentes inteligentes delsistema. De esta forma, se puedemonitorear si los usuarios han sido advertidos sobre estadoscríticos o han sido informados para tomar acciones específicas para evitar algún daño severo(Berger,Penzenstadler,&Drogehorn,2018).

Blockchaincomounhabilitadordevalor:puentedeactivosfinancieroseintangibles

LatecnologíaBlockchainseconcibióparabrindarunasoluciónuniversalyfortalecerlademocraciadigital: garantizar la confianza digital, distribuir el poder entre los miembros, minimizar elmonopolio electrónico y todo a través de la forma innovadora de digitalizar y realizartransaccionesde"valor"(Taghiyeva,Wang,&Ta’eed,2019).Sinembargo,seconsideróqueesteúltimorepresentabasoloactivosfinancieros(dineroybienes),descuidandoelvalorcreadoporlosintangibles(sentimientoyestímulos),elvalornofinanciero(Taghiyeva,Wang,&Ta’eed,2019).

ElInternetdevaloresunconceptodevalordetransacciónonline.Abarcalatransferenciadevalorentremaquinas,personas,etc.SurgiógraciasalcrecimientodetecnologíascomoBlockchain.Losmecanismos de consenso y protocolos existentes se enfocan principalmente en los activosfinancieros y fueron construidos en torno a la transacción del valor financiero. El problemaplanteado en el artículo es la falta de adaptación de la tecnología Blockchain que permita latransferenciadevalornofinanciero(Taghiyeva,Wang,&Ta’eed,2019).

La soluciónplanteadaconsisteenadaptar la tecnologíadeBlockchain conel finqueel valornofinanciero,ademásdelvalorfinanciero,puedantransmitirse(Taghiyeva,Wang,&Ta’eed,2019).Elvalortotaleslasumadelosdosvalores:financieroynofinanciero.Todoslosobjetos,entidades,individuostienensupropiosvaloresfinancierosynofinancieros.Elvalorfinancieroesevaluadoatravés de la razón precio/ganancia mientras que el valor no financiero (emociones humanas ysentimientos) requiere de una fórmula que permita su captura y traducción a un número(Taghiyeva,Wang, & Ta’eed, 2019). A pesar de que la propuesta es innovadora, el artículo nomencionaenquécontextossepodríaimplementarnisusaplicacionesenlavidareal.

Page 37: Trabajo de Grado Identidad Digital basada en Blockchain en

37

6 CONCLUSIONESYTRABAJOFUTURO

El esquema de identidad digital propuesto brinda a losmiembros de una institución educativa,como la Universidad de los Andes, una identidad digital confiable y auto soberana con la quepueden tener acceso al campus y a plataformas digitales. La funcionalidad de este esquema sedebealusodelatecnologíaBlockchainyasuspropiedadesdedescentralización,inmutabilidadytrazabilidad. El ledger público y distribuido almacena los identificadores descentralizados de losparticipantes juntocon las llavespúblicasy losesquemasde lascredenciales.Deestaforma,losusuarios se asegurandeque las credenciales han sido emitidas por la entidad correspondiente.Además,seprotegelaprivacidaddelosusuariosyaquenosepublicansusdatospersonalesenelledger.

Eldiseñodelsistemadeidentidaddigitalpropuestopodríautilizarseenunmecanismodevotacióndigitalenelqueesdegranrelevanciallevarelcontroldelaspersonasquehanvotadoyevitarelusoindebidodelaidentidadconfineselectorales.Larevocacióndelascredencialesfacilitaríaestecontrolypermitiríaunregistrodevotosseguro.

Laspropiedadesqueofrece latecnologíaBlockchainseajustana lascaracterísticasquerequiereun sistema de identidad digital. Las firmas digitales permiten la verificación del origen de lascredencialesemitidas,elhashcriptográficogarantizaqueestasnohansidomodificadasdesdesuemisión y el uso de identificados para la interacción con el ledger protege la privacidad de losparticipantes.

Laimplementacióndelsistemadeidentidaddigitalserealizóutilizandolasherramientasylibreríasofrecidas por Hyperledger Indy. Sin embargo, no implementa un canal seguro de comunicaciónentrelosparticipantesquelespermitaelintercambiodemensajes.Unobjetivoafuturoesrealizarla integración de este canal seguro, ofrecido por el proyecto Hyperledger Aries, y acoplarlo alsistemadeidentidaddigitalpropuesto.

Otroobjetivoafuturoeseldesarrollodeunaaplicaciónmóvilparalauniversidaddesdelaquelosusuariospodránsolicitar su identidaddigital.Bajoesta solicitud,elusuarioestaríaaccediendoaunaconexiónautomáticaconlauniversidad.Elusodeunaaplicaciónpermitiríaalosmiembrosdelauniversidadtenerunaidentidaddigitalportableydeaccesorápidofacilitandocualquierprocesodeidentificaciónquelainstituciónrequiera.

Page 38: Trabajo de Grado Identidad Digital basada en Blockchain en

38

7 TRABAJOSCITADOSNakamoto,S.(s.f.).Bitcoin:APeer-to-PeerElectronicCashSsytem.

Baraniuk, C. (2020). Recuperado el 12 de Marzo de 2020, de BBC News:https://www.bbc.com/news/business-51281233

Camp,L.J.(2004).DigitalIdentity.IEEETechnologyandSocietyMagazine,23(3),34-41.

Kang,Y.,Park,H.,Chun,K.,&Song,J.(2008).ADigitalIdentityManagementServiceModel.FifthInternationalConferenceonInformationTechcnology:NewGenerations.

Gulati,H.,&Huang,C.-T.(2019).ASelf-SovereignDynaminDigitalIdentitiesbasedonBlockchainTechnology.SoutheastCon.

Berger, C., Penzenstadler, B., & Drogehorn, O. (2018). On Using Blockchains for Safety-CriticalSystems.ACM/IEEE4thInternationalWorkshoponSoftwareEngineeringforSmartCyber-PhysicalSystems.

Corsi, P., Lagorio,G.,& Ribaudo,M. (2019). TickEth, a Ticketing Systembuilt on Ethereum.The34thACM/SIGAPPSymposiumonAppliedComputing(SAC'19).

Vashistha,M.,&Barbhuiya,F.A.(2019).BlockchaininSmartPowerGridInfrastructure.BSCI´19.

Taghiyeva,M.,Wang, Y., & Ta’eed, O. (2019). Blockchain as a Value Enabler: Bridging FinancialAssetsandIntangibles.BSCI´19.

Zeng,J.,Yuan,Y.,Zhang,J.,&Liu,Y.(2019).BlockchaininSmartPark:ApplicationSchemeDesign.IECC´19:2019InternationalElectronicsCommunicationConference.

Melhem,A.,AlZoubi,O.,&Mardini,W.(2019).ApplicationssofBlockchain inSmartCities.DATA´19:Proceedingsof theSecond InternationalConferenceonDataScience,E-learningandInformationSystems.

Han, M., Wu, D., Li, Z., Xie, Y., He, J., & Baba, A. (2018). A Novel Blockchain-based EducationRecordsVerificationSolution.SIGITE´18.