Publication
Implementação Funcional de Bulletproofs
datacite.subject.fos | Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e InformÔtica | por |
dc.contributor.advisor | Sousa, Simão Patricio Melo de | |
dc.contributor.author | Pascoal, José Carlos Ferrão | |
dc.date.accessioned | 2020-03-18T16:28:24Z | |
dc.date.available | 2020-03-18T16:28:24Z | |
dc.date.issued | 2019-11-13 | |
dc.date.submitted | 2019-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.abstract | Itā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.tid | 202375501 | |
dc.identifier.uri | http://hdl.handle.net/10400.6/10054 | |
dc.language.iso | por | por |
dc.subject | Blockchain | por |
dc.subject | Bulletproofs | por |
dc.subject | Coinjoin | por |
dc.subject | Confidential Transactions | por |
dc.subject | Criptomoedas | por |
dc.subject | Pedersen Commitments | por |
dc.subject | Privacidade | por |
dc.subject | Provas de Conhecimento Nulo | por |
dc.subject | Pseudo-Anonimato | por |
dc.subject | Range Proofs | por |
dc.title | Implementação Funcional de Bulletproofs | por |
dc.type | master thesis | |
dspace.entity.type | Publication | |
rcaap.rights | openAccess | por |
rcaap.type | masterThesis | por |
thesis.degree.name | 2º Ciclo em Engenharia InformÔtica | por |
Files
Original bundle
1 - 1 of 1