Curso Registro Propiedad. Parte 3 · E le c c i one s 2 0 1 7 T O T A L : 1 30 m i llone s P e r s...
Transcript of Curso Registro Propiedad. Parte 3 · E le c c i one s 2 0 1 7 T O T A L : 1 30 m i llone s P e r s...
Jose M. Calabuig
jmcalabu.blogs.upv.es [email protected]
Blockchain en las administraciones públicas
València, 7 de junio de 2018
TRANSPARENCIA
NUEVOS RETOS
Voto electrónico con
Elecciones 2017
TOTAL: 130 millones
Personal: 55 millones
Envíos: 50 millones
Logística: 12,5 millones
Dispositivos: 13 millones
La votación electrónica basada
en Blockchain permitiría a los
votantes tener más confianza
en el conteo automático
de los votos, permitiéndoles
tener una copia del
registro de votación.
Los votos son:
registrados,
administrados,
contados y verificados
por una autoridad central
En países como Dinamarca ya se ha utilizado esta tecnología para las elecciones internas del
Partido Alianza Liberal (Crytocoins News)
En una encuesta de votantes estadounidenses publicada en diciembre, Edelman Intelligence
encontró que el 35% está preocupado por la exactitud de la tecnología de votación utilizada, y el
69% apoyaría iniciativas para mejorar la tecnología de votación.
Se han utilizado para las elecciones internas de los partidos políticos y los votos de los accionistas en
Estonia. (Parlamento Europeo Research Service)
Taller de pruebaGANACHE
emulador de
blockchain
DApp
SOLIDITY
(Ethereum)
Desplegarlo
en el BlockChain
Conectarlo con
una web
Esquema de la dApp VotoUPV
Navegador
Terminal consola Nodejs
Web3js
html/CSS/Javascript
Web3js
EVM-Ethereum Virtual Machine
Bloque 1
Bloque 2
Bloque 3
Bloque 4
BlockChain virtual
Llamada a
procedimiento
remoto (RPC)
VotoUPV dApp
Instalación
jmcalabu.blogs.upv.es Grupo MadPhy
Taller TechFest 2018
Solidity contract: VotoUPV.sol
Solidity contract VotoUPV.sol
nombreCandidatos
bytes[]listaCandidatos
bytes[]
candidato
bytes32
votosRecibidos uint8
totalV
otosPara
uint8
votoParaCandidato
uint8
+1
Vo
toU
PV
candidato
Valido
bool
Arrancamos node en otro terminal
Cargamos el código en la variable de cadena: code
Compilamos con solc.compile almacenando el resultado en
compiledCode
La librería solcpermite compilar
el código
web3js es una librería
que permite interactuar
con blockchain vía RPC.
Así podremos desplegar
el contrato e interactuar
con blockchain
Si escribimos en el terminal compiledCode
veremos dos campos importantes:
compiledCode.contracts[':VotoUPV'].bytecode
compiledCode.contracts[':VotoUPV'].interface
bytecode es el número de código
en el que se desplegará en
el blockchain
interface es la plantilla del
contrato (llamado abi) que informaal usuario de las variablesdisponibles en el contrato
Compilando web3js +
Desplegando
VotoUPVContract es el nuevo objeto que sedespliega en el blockchain
mediante VotoUPVContract.new
El despliegue se
almacena en
deployedContract y tiene tres
parámetros
data
es el
byteCode
from es el propietario
en nuestro caso
sólo usamos la
primera
gas el dinero que
cuesta interactuar
en la red
contractInstance utiliza la dirección
deployedContract.address para interactuar
en el blockchain
Probando desde el terminal
Cada vez votamos por un candidato obtenemos una identificación de la transacción:
0xdedc7ae544c3dde74ab5a0b07422c5a51b5240603d31074f5b75c0ebc786bf53
Este identificador de transacción es la prueba de que se ha producido esta transacción y puede
consultarlo en cualquier momento en el futuro.
Esta transacción es inmutable
Probando desde la web
index.html
llama a
index.js
que interactúa
con el blockchain
Probando desde la web
Probando desde la web