A utilização de técnicas de criptografia destina-se a tornar mais seguras as
comunicações na presença de terceiros. Os sistemas de cryptocurrency
consistem na existência de uma moeda que possa ser transacionada online,
sem quaisquer restrições e intervenções por parte de qualquer autoridade.
Estes sistemas recorrem a criptografia para garantir a integridade dos dados
das transações efetuadas e dos saldos de cada utilizador.
A utilização de técnicas de criptografia destina-se a tornar mais seguras as
comunicações na presença de terceiros. Os sistemas de cryptocurrency
consistem na existência de uma moeda que possa ser transacionada online,
sem quaisquer restrições e intervenções por parte de qualquer autoridade.
Estes sistemas recorrem a criptografia para garantir a integridade dos dados
das transações efetuadas e dos saldos de cada utilizador.
A utilização de técnicas de criptografia destina-se a tornar mais seguras as
comunicações na presença de terceiros. Os sistemas de cryptocurrency
consistem na existência de uma moeda que possa ser transacionada online,
sem quaisquer restrições e intervenções por parte de qualquer autoridade.
Estes sistemas recorrem a criptografia para garantir a integridade dos dados
das transações efetuadas e dos saldos de cada utilizador.
Mestrado em Engenharia de Computao e Instrumentao Mdica
Instituto Politcnico do Porto
ISEP CRIPTOGRAFIA EM TRANSAES DIGITAIS, CRYPTOCURRENCY
Da Costa, A. A. [1], Benevides, D. M. [1]
[1] Instituto Politcnico de Porto, Instituto Superior de Engenharia do Porto, Departamento de Fsica, Curso de Mestrado em Engenharia de Computao e Instrumentao Mdica 1090248@isep.ipp.pt ; 1100863@isep.ipp.pt
Resumo
A utilizao de tcnicas de criptografia destina-se a tornar mais seguras as comunicaes na presena de terceiros. Os sistemas de cryptocurrency consistem na existncia de uma moeda que possa ser transacionada online, sem quaisquer restries e intervenes por parte de qualquer autoridade. Estes sistemas recorrem a criptografia para garantir a integridade dos dados das transaes efetuadas e dos saldos de cada utilizador.
A cryptocurrency um meio digital de gesto de transaes monetrias. tipicamente caracterizado pela sua descentralizao virtual, tendo em conta que no depende de nenhuma figura de autoridade central (como um banco) para gerir o produto e o fluxo monetrio. De forma a prevenir abusos e para fundamentar um regime de transaes fivel, este sistema incorpora princpios criptogrficos para criar uma economia distribuda, segura e descentralizada. (PIASECKI, 2012) Ao longo do tempo foram criadas diversas especificaes de cryptocurrencies em que a maior parte destas so derivaes da primeira implementao, o Bitcoin (BITCOIN COMMUNITY, 2014). Criado e publicado em 2009 pelo programador de pseudnimo Satoshi Nakamoto (NAKAMOTO, 2009), este um sistema de pagamento e gesto monetria P2P (peer-to-peer). Neste protocolo, as funcionalidades criao e movimentao de fundos so baseadas num projecto criptogrfico de cdigo aberto em que todas as interaes so digitalmente assinadas. (PIASECKI, 2012) Qualquer circulao de fundos verificada, marcada temporalmente e registada em bases de dados partilhadas com o pblico, chamadas de pools. Os operadores que realizam estas operaes, denominados miners, so recompensados atravs das taxas de transao ou com novos fundos que foram produzidos. (PIASECKI, 2012)
2. FUNDAMENTOS TERICOS
2.1 A criptografia
Mestrado em Engenharia de Computao e Instrumentao Mdica Instituto Politcnico do Porto ISEP A criptografia a disciplina e o estudo das tcnicas que se destinam a tornar as comunicaes mais seguras na presena de terceiros. Uma encriptao normalmente feita atravs da aplicao de uma cifra governada por uma ou mais chaves, ao texto original. As cryptocurrencies seguem esta filosofia: Cada utilizador possui uma chave privada e uma chave pblica que so anlogas a uma carteira. Quando requerida uma transao, esta assinada pela chave privada do utilizador. Cada transao uma vinculao a uma anterior que creditou o utilizador, implicando assim que o dinheiro no pode ser criado do nada. Em adio, a mesma moeda no pode ser utilizada duas vezes. Cada transao difundida atravs da rede P2P, onde aqui validada. (PIASECKI, 2012)
2.2 Endereos
Como referido anteriormente, cada utilizador possuidor de uma carteira. Esta contem um par ou mais, de chaves pblicas e privadas. Estas so assinadas digitalmente com recurso ao ECDSA (Elliptic Curve Digital Signature Algorithm). Os endereos so identificados por 27-34 caracteres alfanumricos, com alguns variantes dependendo do protocolo. No Bitcoin, por exemplo, o endereo principia sempre por 1 ou 3, enquanto no protocolo Litecoin (LITECOIN COMMUNITY, 2014) o endereo principia com o caracter L, como em LSvxooYrbWeMnK4QBVFb1Bw4xgE8tD8Nit. A chave pblica pode ser vista como um elemento identificativo de cada utilizador, podendo ser utilizada efetuar transaes, desde envio e recebimento de unidades monetrias. Em contrapartida as chaves privadas so necessrias para que um utilizador possa aceder aos prprios fundos. Estas chaves so tipicamente armazenadas no ficheiro que constitui a sua carteira. O propsito chave tambm expresso quando h a necessidade de validar transaes ou quando so enviados fundos para o utilizador. Se por contingncia o acesso ao endereo privado for perdido, por exemplo, devido a uma avaria ou perda do disco rgido onde que a carteira se encontrava gravado, quaisquer fundos associados sero perdidos para sempre (METRO NEWSPAPPER, 2013). (PIASECKI, 2012)
2.3 Transaes
Uma transao definida como uma movimentao de fundos entre endereos distintos. Esta viso anloga de uma transferncia bancria. Quando criada uma nova transao em que owner 1 transfere uma quantia para owner 2, o interveniente owner 1 cede a quantia definida ao adicionar a chave pblica de owner 2 e simultaneamente assina digitalmente esta quantia com a sua prpria chave privada. Esta operao necessria para verificar se o remetente tem realmente fundos suficientes para concluir esta operao. de seguida feito um broadcast desta operao rede P2P, atravs das pools. Os diversos peers que participam na rede so responsveis por validar as assinaturas digitais e a quantidade de fundos requeridos entre as transaes. Se a quantidade de dinheiro exceder a quantidade reivindicada, a transao definida como invlida, sendo por isso descartada pela rede. Se a quantidade recebida for inferior enviada, a diferena reconhecida como uma taxa de transao que ser reclamada pelo miner que participou na criao do bloco, que contem a transao relevante (como iremos ver na seco seguinte). (PIASECKI, 2012)
Mestrado em Engenharia de Computao e Instrumentao Mdica Instituto Politcnico do Porto ISEP
Figura 1: Cada transao contem a chave pblica de quem ir receber os fundos e a assinatura digital de quem envia, especificada numa transao anterior. (PIASECKI, 2012)
2.4 Blocos e cadeia de blocos
Designam-se por blocos os mtodos que so responsveis por registar permanentemente todos os dados e eventos relevantes que ocorreram na rede, desde o bloco anterior. Cada um deles tambm composto por um header que possui informao pertinente para se poder estabelecer uma trama de comunicao com a rede e os seus peers. Este contem informao como: A verso do protocolo, o hash criptogrfico do bloco anterior, o hash criptogrfico da base de todas as transaes ocorridas no bloco em questo (Merkle root hash), um registo no tempo de quando que o bloco foi criado e o nonce gerado na ronda de criao do bloco. (PIASECKI, 2012)
Mestrado em Engenharia de Computao e Instrumentao Mdica Instituto Politcnico do Porto ISEP Figura 2: As diferentes transaes (tx) so concatenadas num root hash de uma rvore de Merkle. O bloco possui tambm o seu hash, e o do bloco anterior. (PIASECKI, 2012)
Um nonce no mais do que um nmero arbitrrio gerado aleatoriamente, que utilizado uma nica vez, ou seja, apenas para este bloco. Tem como objectivo adicionar sal, para tornar o resultado do hash criptogrfico correspondente a este bloco, mais robusto. Cada bloco uma referncia a um bloco que foi registado na rede anteriormente. Por essa razo, todos os blocos juntos formam uma cadeia, desde o actual at abiognese da rede: o primeiro bloco codificado plo criador do protocolo da cryptocurrency em questo. Em termos de validade de um bloco, este s considerado quando todas as transaes a que lhe dizem respeito tambm so vlidas, quando o bloco anterior vlido, e quando o valor do hash do header menor que um valor alvo definido pla rede. Este valor definido para que sejam criado novos blocos, em mdia, a cada dez minutos. (PIASECKI, 2012)
2.5 Mining
O processo de criao de novos blocos denominado mining. Aps a sua concepo, todo o seu header submetido a um processo de obteno do seu hash. Se o seu valor for menor que o valor alvo j anteriormente referido, feito um broadcast deste bloco na rede e adicionado cadeia de blocos. Seno, cabe aos miners mudarem o valor dos componentes do header, como o nonce, o registo temporal e o Merkle root hash. Este processo feito fazendo alteraes coinbase de forma a processar um novo hash. A coinbase define-se como a primeira transao realizada no bloco. O seu valor definido pela soma de todas as taxas de transao includas no bloco, bem como uma recompensa para os miners que participaram na resoluo do hash. Como se pode imaginar, este processo criptogrfico para obteno de novos hashes requere grandes recursos e grande poder de processamento. (PIASECKI, 2012)
3. EXEMPLO PRTICO DE UMA TRANSAO DE CRYPTOCURRENCY
O Roberto, um comerciante online, decide comear a aceitar cryptocurrency como forma de pagamento. (ROMERO e PALACIO, 2013) A Alice, uma compradora, possui coins e pretende adquirir mercadoria do Roberto.
3.1. Carteiras e endereos
Tanto o Roberto como a Alice possuem carteiras de cryptocurrency nos seus computadores. (ROMERO e PALACIO, 2013) Carteiras so arquivos que fornecem acesso a vrios endereos de cryptocurrency. (ROMERO e PALACIO, 2013) Um endereo consiste numa sequncia formada por caracteres alfanumricos, como, por exemplo, 1HULMwZEPkjEPeCH43BeKJL1ybLCWrfDpN. (ROMERO e PALACIO, 2013) Cada endereo tem o seu prprio saldo. (ROMERO e PALACIO, 2013) tentador pensar em endereos como contas bancrias, mas eles trabalham de forma um pouco diferente. Utilizadores de cryptocurrency podem criar tantos endereos quantos quiserem, sendo at, na verdade, incentivados a criar um novo para cada transao, com o objetivo de aumentar a privacidade. Enquanto ningum souber qual o endereo da Alice, o seu anonimato est protegido. (ROMERO e PALACIO, 2013)
3.2. Criar um novo endereo Mestrado em Engenharia de Computao e Instrumentao Mdica Instituto Politcnico do Porto ISEP
O Roberto cria um novo endereo para que a Alice possa submeter o seu pagamento. Quando o Roberto cria um novo endereo, o que ele est a fazer na realidade a gerar um par de chaves criptogrficas, composto por uma chave privada e uma chave pblica. Ao assinar uma mensagem com uma chave privada, que s o Roberto conhece, essa mensagem pode ser verificada usando a chave pblica correspondente, que conhecida por qualquer um. O novo endereo do Roberto representa uma chave pblica nica cuja correspondente chave privada armazenada na sua carteira. A chave pblica permite a qualquer um verificar que a mensagem assinada com a chave privada vlida. (ROMERO e PALACIO, 2013)
3.3. Submeter um pagamento
A Alice reporta ao seu cliente de cryptocurrency a sua inteno de transferir a quantia relativa compra para o endereo do Roberto. (ROMERO e PALACIO, 2013) A carteira da Alice detm a chave privada para cada um dos seus endereos. O cliente de cryptocurrency assina o seu pedido de transao com a chave privada do endereo a partir do qual as moedas virtuais esto a ser transferidas. (ROMERO e PALACIO, 2013) Qualquer pessoa na rede pode agora usar a chave pblica para verificar se o pedido de transao realmente proveniente do proprietrio legtimo da conta. (ROMERO e PALACIO, 2013)
3.4 Verificao da transao
O Gabriel, o Gonalo e o Gustavo so miners. (ROMERO e PALACIO, 2013) Os seus computadores agrupam as transaes dos ltimos 10 minutos num novo bloco de transaes. (ROMERO e PALACIO, 2013) Os computadores dos miners so configurados para calcular as funes criptogrficas de hash. (ROMERO e PALACIO, 2013) As funes criptogrficas de hash transformam um conjunto de dados numa sequncia alfanumrica com um tamanho fixo, chamado de valor hash. Mesmo pequenas mudanas nos dados originais alteram drasticamente o valor hash resultante. altamente improvvel prever qual o conjunto de dados inicial criar um valor de hash especfico. (ROMERO e PALACIO, 2013) Para criar diferentes valores de hash a partir dos mesmos dados recorre-se a nonces. Um nonce um simples nmero aleatrio que adicionado aos dados antes da execuo da funo de hash. Alteraes no nonce resultam em valores de hash totalmente diferentes. (ROMERO e PALACIO, 2013) Os computadores miners calculam novos valores hash com base numa combinao do valor de hash anterior, o bloco da transao em curso, e um nonce. Assim, cada novo valor de hash contm informaes sobre todas as transaes de anteriores. (ROMERO e PALACIO, 2013) A criao de hashes computacionalmente trivial, mas o sistema requer que o novo valor de hash tenha uma forma particular. Especificamente, deve comear com um determinado nmero de zeros. (ROMERO e PALACIO, 2013) Os miners no tm como prever qual o nonce que iro produzir um valor de hash com o nmero necessrio de zeros esquerda, pelo que so forados a gerar muitos hashes com diferentes valores aleatrios obterem um que cumpra o padro. (ROMERO e PALACIO, 2013) Cada bloco contm uma transao denominada por coinbase, que inclui um 50 novas moedas virtuais que so pagas ao miner vencedor o Gabriel, neste caso. Um novo endereo Mestrado em Engenharia de Computao e Instrumentao Mdica Instituto Politcnico do Porto ISEP criado na carteira do Gabriel com um saldo equivalente ao nmero de moedas virtuais recm-cunhadas. (ROMERO e PALACIO, 2013)
3.5 Transao verificada
Como o passar do tempo, a transferncia da Alice para o Roberto fica ocultada sob outras transaes mais recentes. Para algum modificar os detalhes, teria de refazer no s o trabalho realizado pelo Gabriel, porque quaisquer mudanas requerem um nonce vencedor completamente diferente, como tambm o realizado por todos os miners subsequentes. Tal faanha altamente improvvel. (ROMERO e PALACIO, 2013)
4. CONCLUSO
Numa era de globalizao, qualquer ideia que tenha uma certa credibilidade pode tornar- se viral com a ajuda preciosa da tecnologia. (COELHO, 2013) A ideia de existir uma moeda que seja transacionada online, sem restries e sem interveno de qualquer autoridade, revelou-se interessante para a comunidade virtual, apresentando potencial para singrar neste meio. isto mesmo que tem vindo a acontecer desde 2009 com a criao do Bitcoin, pela ideia de Satoshi Nakamoto. So cada vez mais as pessoas e empresas a aderir a esta e outras moedas virtuais. (COELHO, 2013) A criptografia, revela-se de elevadssima importncia para a implementao destas ideias dado que no s protege a integridade da informao contra erros pontuais como tambm impede que esta seja corrompida intencionalmente em possveis ataques a sistemas de cryptocurrency.
METRO NEWSPAPPER. Man loses 4m Bitcoin fortune after chucking out digital wallet hard drive. Metro, 2013. Disponivel em: <http://metro.co.uk/2013/11/28/man-loses-4m- bitcoin-fortune-after-chucking-out-digital-wallet-hard-drive-4205600/>. Acesso em: 8 jan. 2014.
NAKAMOTO, S. Bitcoin: A Peer-to-Peer Electronic Cash System. Bitcoin, 2009. Disponivel em: <http://bitcoin.org/bitcoin.pdf>. Acesso em: 8 jan. 2014.
PIASECKI, P. Design and security analysis of Bitcoin infrastructure using application deployed on Google Apps Engine. Politechnika Gdaska. Gdnsk, p. 89. 2012. Disponivel em: < https://dl.dropboxusercontent.com/u/3658181/PiotrPiasecki-BitcoinMasterThesis.pdf>. Acesso em: 8 jan. 2014. Mestrado em Engenharia de Computao e Instrumentao Mdica Instituto Politcnico do Porto ISEP
ROMERO, J. J.; PALACIO, B. How Bitcoin works. Spectrum IEEE, 2013. Disponivel em: <http://spectrum.ieee.org/img/06Bitcoin-1338412974774.jpg>. Acesso em: 8 jan. 2014.