Loading

Module 1: Mecânica de Bloco

Nota de Estudos
Study Reminders
Support
Text Version

Mecânicos De Blockchain Bitcoin

Set your study reminders

We will email you at these times to remind you to study.
  • Monday

    -

    7am

    +

    Tuesday

    -

    7am

    +

    Wednesday

    -

    7am

    +

    Thursday

    -

    7am

    +

    Friday

    -

    7am

    +

    Saturday

    -

    7am

    +

    Sunday

    -

    7am

    +

Introdução à Tecnologia de Blockchain e Aplicações Prof. Sandeep Shukla Department of Computer Science and Engineering Indian Institute of Technology-Kanpur  
Palestra No. 09 Blockchain Technology and Applications  
Bem-vindo de volta a outra sessão de tecnologia e aplicações blockchain. Nos últimos  
sessões aprendemos muito sobre o mecanismo de consenso do bitcoin. Mas não vimos o  
detalhes de transações e como as transações são validadas pelos diferentes participantes em  
o blockchain. E também não vimos a forma como os blocos são validados. Então, hoje, nós  
falará sobre a blockchain, mecânica de blockchain bitcoin.  
(Consulte O Tempo De Deslizamento: 00 :53)  
Então, a palestra de hoje é inteiramente tirada das palestras e do livro do Professor Arvind  
Narayanan da Universidade de Princeton. E é um livro muito interessante e se você está interessado  
no aprendizado de tudo sobre blockchain do Bitcoin e outras moedas alternativas de criptomoeda, então esta é uma  
muito bom livro, eu recomendaria isso para você.  
(Consulte O Tempo De Deslizamento: 01 :12)  
Mas estaremos tirando apenas partes selecionadas do livro que é necessário para você entender  
a mecânica básica do blockchain do Bitcoin. Por isso, o consenso que vimos nos permite  
para ter um anexado apenas ledger de transações. E o consenso é descentralizado.  
(Consulte O Tempo De Deslizamento: 01 :44)  
É um algoritmo distribuído, mas superamos a impossibilidade resulta na presença de  
adversários ou na presença de usuários mal-intencionados. Porque estamos usando probabilístico  
garantia e eventual consistência também estamos usando mecanismo de incentivo e incentivo  
mecanismo tem 2 finalidades. Um é o que eu faria ir e fazer a validação do seu  
transação? Assim, isso é resolvido dando incentivos.  
O outro problema, como discutimos é que pode haver adversários maliciosos como  
participantes porque esta é uma espécie de rede pseudo anônima e é muito fácil entrar  
a rede. Por isso, portanto, usamos algum mecanismo para incentivizar os usuários a se comportarem  
de acordo com regras. Então, uma coisa que você deve observar aqui é que o blockchain do Bitcoin é  
basicamente um blockchain para criação de moeda cripto e transações de moeda cripto.  
Então, se você tiver um blockchain e veremos muitos blockchains que não tiveram um   nativo  
criptomoeda moeda, e se eles não possuiram moeda nativa de cripto, tal mecanismo de incentivo  
não estaria disponível para nós e para lá, temos que nos preocupar com outras maneiras de resolver o  
problema de validar transações, validar blocos e também criar os blocos que faz  
não fazer o blockchain ir em todas as direções possíveis e manter a filial de consenso mais  
ramo mais longo. E, portanto, torne a integridade do blockchain intacta.  
(Consulte O Tempo De Deslizamento: 03 :30)  
Então, o que queremos dizer com a mecânica bitcoin. A mecânica bitcoin principalmente é sobre como as transações  
são feitas, quais são as estruturas de dados que são usadas para denotar uma transação e o que são  
seus propósitos? Por que precisamos desses tipos de aumento na estrutura de transações blockchain  
e também como as pessoas, os mineiros que são ou outros membros do participante outros  
Os participantes validam as transações e também olharemos para os blocos e validação de blocos.  
Então, primeiro nos deixe olhar para as transações de bitcoins.  
(Consulte O Tempo De Deslizamento: 04 :13)  
Então, primeira coisa que um pensaria ter sido usado para o ledger baseado em contas é aquele  
pode considerar uma transação baseada em conta e uma transação baseada em conta será parecida  
isso que suponhamos que eu tenha uma transação que cria 25 moedas e eu digo que a quem ela vai, e  
isto é afirmado pelos mineiros que criam esta moeda de 25. Mas, então, digamos que Alice transfere 17  
moedas para Bob e ciência assinam digitalmente a transação.  
E então transações Bob transita 8 moedas para Carol e assinadas por Bob, e então 5 moedas são  
dada por Carol, de volta a Alice. Agora quantas moedas agora Alice possui. Portanto, há 25 moedas  
no começo que Alice conseguiu, ela dá 17 para Bob, então ela tinha 8, e então a próxima  
transação não a envolve. Mas então a transação depois disso dá 5 moedas a ela para que ela  
tinha 8 e agora ela tem 5 a mais para que ela tenha 13.  
Mas, para saber que a Alice agora tem 13 temos que voltar para a para muito primeiro  
transação e trabalho nosso caminho para baixo a fim de ver onde Alice obteve uma infetada positiva e  
onde ela conseguiu um você conhece outflow. E então também podemos considerar estes como se estes forem os  
blocos. Por isso, agora, digamos que neste ponto, Alice quer transferir 15 moedas para David, portanto, todos os  
Os participantes precisam alterar a validade disso.  
E, para verificar a validade, eles podem ter que voltar para a primeira transação onde  
Alice aos 25 anos, então eles, descovem que próxima transação, Alice dá 17. Então ela tem 8, então próxima uma  
ela faz, não envolve ela, e a próxima, ela recebe 5, então ela tem 13. Então ela não pode  
dê 15 moedas para Alice. Portanto, é uma transação inválida. Então, para decidir isso, temos que ir  
através de todas as transações que aconteceram antes.  
E se você considerar cada uma dessa transação como um bloco, nós estamos basicamente indo todo o caminho para  
o bloco gênesis para saber se uma transação é válida. Agora, isso vai ser muito  
difícil. Agora, como vimos em nosso protótipo blockchain que realmente discutimos e demos  
tamanho sobre isso, na medida em que estávamos casando essa informação de equilíbrio. Então toda vez que validamos um  
transação, atualizamos o saldo e isso também é possível de fazer.  
Mas isso requer muito mais trabalho para cada participante porque todo participante precisa  
validar essas transações. Então, portanto, se eles tiverem que armazenar em cache todas essas informações, então elas  
têm que fazer muito trabalho. E depois há algumas outras complicações porque às vezes o  
blockchain irá divergir um pouco e depois eles convergem de volta para a cadeia de consenso principal.  
Então, portanto, essas coisas se tornam um pouco não deterministas.  
Então, essa não é uma solução muito boa para se fazer. No nosso exemplo, isso foi deixado para nos exercitar. Lá,  
éramos apenas uma parte que estava executando o programa inteiro, ela não foi replicada por toda a  
lugares. Portanto, não houve nenhum determinismo envolvido. Mas quando você tem, você sabe, 1000s de  
participantes envolvidos e cada um deles estão fazendo de forma independente toda essa validação de  
transações e também manter o controle da balança haveria alguma inconsistência  
rasteando-se e, portanto, poderia haver algum problema. Por isso, portanto, não é isso que bitcoin  
faz.  
(Consulte O Tempo De Deslizamento: 08 :11)  
Então, o que o bitcoin faz é, na verdade, um ledger baseado em transação. Por isso, eles só acompanham o  
transações não os saldos de contas. Então, a primeira transação por exemplo, esta é uma gênese  
transação e o que está acontecendo é que não há entrada para esta transação, mas sim a saída  
diz que dá 25 moedas para Alice. Agora, neste ponto, a próxima transação apenas Alice pode usar.  
Agora, o que Alice tem a fazer agora é que ela tem que se referir à transação que deu a ela os 25  
moedas.  
Então, as transações são numeradas assim, estes são IDs de transação. Então, ela se refere à transação  
ID 1 e, em seguida, neste caso há apenas há apenas 1 saída para que as saídas sejam e entradas  
basicamente podem ser pensados como Alice. Então, ela se refere à primeira entrada da saída de  
transação 1. Então isso significa que eu estou inpondo a partir da transação 1 e apenas maneira que eu posso inserir  
algo a partir da transação 1 é a partir das saídas da transação.  
Então o número de saída é 0, portanto, houve apenas uma saída aqui. Assim, os números de saída 0 são 25  
moedas indo para Alice. Então, e então ela diz o, minha saída tem 2 entradas. Então, esta é a entrada  
número 0 e este é o número de entrada um onde na entrada número 0. Dou 17 para Bob e  
dê 8 para mim mesmo para um endereço diferente. Lembrar o conceito de mudança de endereço. Então, Alice  
cria um endereço de mudança que é diferente de seu endereço original.  
E então ela dá esse dinheiro para si mesma porque senão houve um ataque de replay que nós  
discutido antes. Então, agora a próxima vez que houver uma transação. Então, neste caso Bob está fazendo  
a transação. Por isso, Bob se refere à transação número 2 e números de entrada 0 nas saídas  
da transação número 2, que basicamente deu a ele lhe deu 17 moedas. Portanto, fora dos 17  
moedas ele dá 8 para Carol e depois dá para uma de sua mudança aborda 7 moedas.  
Então, portanto, agora Bob deu um 8 casual e ele próprio de volta 7. Agora neste one Alice again  
mo quer fazer uma transação. Agora ela tem transação que conseguiu dinheiro na transação 2 ela  
não é mais possível usar transação um, pois a saída de transação 1 foi gasta. Então  
transação 2 é a única uma transação em que ela conseguiu dinheiro. Então, de si só só mas ela conseguiu  
dinheiro lá. Por isso, ela se refere à entrada número 1 das saídas da transação 2.  
Então, que isso é indexado com um, e lá ela dá 6 para David e depois para mudar de endereço.  
Então, essa é a maneira como o bitcoin faz essa transação mantém o controle das transações. E observe que  
neste caso, queremos ver se esta transação é válida, tudo o que precisamos fazer é olhar para o  
transações ela se refere como uma transação de origem essas transações é essa. E vemos que em  
aquela transação de origem na saída número 1, ela obteve 8.  
Então, é tudo o que precisamos verificar. Então agora você vê que nós não tínhamos que ir todo o caminho de volta para  
todas as transações, nós também temos que verificar se Alice usou este índice de transação 2 1  
em qualquer lugar entre esta transação e esta transação que também tem que ser verificada. So  
portanto, temos que apenas verificar uma fração das transações e não todas as transações todas  
o caminho até a transação de Gênesis.  
Então, esse é realmente o Gênesis, ele não é chamado de transação Genesis. Ele é chamado de coinbase  
transação. Portanto, transação de coinbase ou transações em que criamos algumas moedas, e aquelas  
As transações não exigia nenhum insumo, as moedas são criadas nessas transações. Assim, aqueles são  
chamadas transações baseadas em moedas. Eu estava chamando de transações intencionalmente Gênesis mas não é  
realmente uma transação de Gênesis. O bloco Gênesis é um conceito não transação Genesis.  
E o bloco Gênesis significa o primeiro bloco do blockchain em que o blockchain começou.  
Então, falaremos sobre isso depois. Mas o que nós também fazemos é que criamos ponteiros de hash para estes  
transações diferentes para que possamos rastrear facilmente novamente quando alguém se refere a uma transação,  
podemos rapidamente nos referir de volta à transação em que estamos interessados.  
(Consulte O Tempo De Deslizamento: 12 :45)  
Agora, outra coisa que podemos fazer com esse mecanismo é que suponhamos que eu tenha várias mudanças  
endereços em muitas transações. Eu tenho diferente número de pontos em um mesmo número de pontos,  
ele não importa. Recebi alguns pontos em várias correntes de endereços de mudança. Mas é muito  
difícil para mim acompanhar todos aqueles endereços de mudança e o quanto eu tenho em todos aqueles.  
Então, tempo para o tempo eu posso querer mesclar aqueles endereços de mudança, o conteúdo dessas alterações  
aborda em um único endereço para que seja o que é chamado de margem.  
E é isso que podemos fazer usando como a transação de entrada então uma a partir daqui e uma de  
aqui. Então, você vê que o Bob pode se consolidar então aqui Bob conseguiu 17 nesta transação e Bob  
obteve 2 nesta transação. Então ela ele deve idealmente ter 19. Então ele realmente pode criar isso por  
colocando em uma transação em que ele se refere à transação número 1, saída 0 e transação  
número 2, saída 1 e depois ela diz que dá 19 para mim.  
Lembre-se de requisitos nas transações de entrada, estas são chamadas de transações de entrada para  
esta transação e estas são esta é uma saída desta transação. Portanto, esta é uma entrada deste  
transação, é uma entrada dessa transação e esta é a saída. Assim, a saída pode ser pode ser também  
múltiplo e entrada pode ser também múltiplo. E é isso que estamos vendo aqui. Então agora podemos  
também fazem pagamentos conjuntos. Ou seja, se eu mesmo não tivesse moedas suficientes, e mas estou sob  
amigo juntos decidem que nós estaremos usando nossas moedas juntas para comprar algo, somos  
permitido fazer isso.  
Então a transação conjunta se parece com isso. Por isso, digamos que eu tenho 2 transações aqui. Carol tem 6  
Bob tem que e eles juntos decidem dar a David para que eles coloquem em uma transação conjunta.  
Mas lembre-se que eles têm que ambos assinar esta transação porque Bob ou Carol, eles mesmos  
por eles mesmos não tinham o direito de gastar ambas as saídas. Por isso, eles têm que fazer uma articulação  
assinando vamos ver como isso funciona em um pouco