Repository logo
 
Publication

Implementação Funcional de Bulletproofs

datacite.subject.fosEngenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e InformÔticapor
dc.contributor.advisorSousa, Simão Patricio Melo de
dc.contributor.authorPascoal, José Carlos Ferrão
dc.date.accessioned2020-03-18T16:28:24Z
dc.date.available2020-03-18T16:28:24Z
dc.date.issued2019-11-13
dc.date.submitted2019-09-16
dc.description.abstractƉ devido Ć” tecnologia de blockchain apresentada pela Bitcoin que Ć© possĆ­vel criar moedas digitais geridas pelos seus utilizadores e nĆ£o por uma entidade central (como bancos ou governos). As criptomoedas oferecem mais uma forma de pagamento, as quais se destacam por nĆ£o existir a necessidade de confiar em instituiƧƵes mas sim no sistema, e em mais algumas caracterĆ­sticas, como o pseudo-anonimato. Para evitar que as moedas sejam gastas mais do que uma vez em vĆ”rias transaƧƵes (double spending), as transaƧƵes tĆŖm de ser anunciadas publicamente para que todos as possam verificar e concordar apenas com um Ćŗnico histórico de transaƧƵes. O sistema tradicional bancĆ”rio alcanƧa um nĆ­vel de privacidade ao limitar o acesso Ć s trasaƧƵes. Um participante apenas tem acesso Ć  suas transaƧƵes enquanto que o banco tem acesso a todas. Como todas as transaƧƵes sĆ£o publicas, a privacidade numa blockchain depende apenas da propriedade do pseudo-anonimato. O pĆŗblico apenas consegue observar que um endereƧo enviou moedas a outro, nĆ£o revelando informaƧƵes sobre qualquer entidade. Mas caso sejam transacionadas moedas, a entidade que as vai receber necessita de anunciar um dos seus endereƧos. Desta forma, o remetente da transacção consegue estabelecer uma ligação entre o endereƧo anunciado e a entidade, e a partir daĆ­ pode descobrir outros endereƧos da entidade e quantas moedas possuĆ­ nos endereƧos descobertos. AtravĆ©s de provas de conhecimento nulo Ć© possĆ­vel alcanƧar uma maior privacidade nas criptomoedas. Ɖ o caso das Bulletproofs, as quais permitem realizar de uma forma mais eficiente confidential transactions. Numa confidential transaction, a quantidade transferida Ć© ā€œescondidaā€ atravĆ©s de Pedersen Commitments, os quais mantĆŖm a propriedade algĆ©brica da soma. Assim Ć© possĆ­vel verificar que a quantidade de moedas como input e output de uma transação estĆ£o equilibradas. Ɖ tambĆ©m necessĆ”rio verificar que um Pedersen Commitments de um valor estĆ” em um determinado intervalo para prevenir valores negativos ou overflows. Para tal Ć© necessĆ”rio uma range proof. As Bulletproofs permitem range proofs mais eficientes, as quais apenas crescem logaritmicamente com o tamanho do intervalo e o nĆŗmero de outputs. EntĆ£o Ć© preferĆ­vel ter mĆŗltiplos outputs numa Ćŗnica range proof. Esta caracterĆ­stica permite o CoinJoin (mĆŗltiplos outputs de vĆ”rias transaƧƵes em apenas uma transação), melhorando a privacidade.por
dc.description.abstractIt’s because of the blockchain technology presented by Bitcoin that it’s possible to create digital currencies (cryptocurrencies) managed by its users and not by a central entity (such as banks or governments). These type of coins gives another form of payment, which stands out because there is no need to rely on institutions but only in the system, and some other features, such as pseudo-anonymity. To prevent the currencies from being spent more than once on multiple transactions (double spending), the transactions must be publicly announced, in this way, everyone can verify and agree on only one transaction history. The traditional banking system achieves a level of privacy by limiting access to transactions. A participant only has access to their transactions while the bank has access to all of them. Since all transactions are public, privacy in a blockchain depends only on the property of pseudo-anonymity. The public can only observe that one address sent currencies to another, not revealing information about any entity. But in a transaction, the recipient needs to announce one of their addresses. In this way, the sender of the transaction can establish a connection between the announced address and the entity, and from there can discover other entity addresses and how many currencies it has in the discovered addresses. Through zero-knowledge proofs, it’s possible to achieve greater privacy in cryptocurrencies. The Bulletproofs are zero-knowledge proofs which allow efficient confidential transactions. In a confidential transaction, the amount transferred is ā€œhiddenā€ through Pedersen Commitments, which maintain the algebraic property of the sum. So it’s possible to verify that the number of currencies as input and output of a transaction are balanced. But it’s also necessary to verify that a Pedersen Commitments of one value is in a certain range to prevent negative values or overflows. For this, it requires a range proof. Bulletproofs enable more efficient range proofs, which only grow logarithmically with the range size and the number of outputs. So it’s better to have multiple outputs in a single range proof. This feature allows CoinJoin (multiple outputs of multiple transactions in one transaction), improving privacy.eng
dc.identifier.tid202375501
dc.identifier.urihttp://hdl.handle.net/10400.6/10054
dc.language.isoporpor
dc.subjectBlockchainpor
dc.subjectBulletproofspor
dc.subjectCoinjoinpor
dc.subjectConfidential Transactionspor
dc.subjectCriptomoedaspor
dc.subjectPedersen Commitmentspor
dc.subjectPrivacidadepor
dc.subjectProvas de Conhecimento Nulopor
dc.subjectPseudo-Anonimatopor
dc.subjectRange Proofspor
dc.titleImplementação Funcional de Bulletproofspor
dc.typemaster thesis
dspace.entity.typePublication
rcaap.rightsopenAccesspor
rcaap.typemasterThesispor
thesis.degree.name2º Ciclo em Engenharia InformÔticapor

Files

Original bundle
Now showing 1 - 1 of 1
No Thumbnail Available
Name:
7203_15258.pdf
Size:
1.1 MB
Format:
Adobe Portable Document Format