Bitcoin Forum
September 30, 2020, 03:45:14 PM *
News: Latest Bitcoin Core release: 0.20.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1] 2 »  All
  Print  
Author Topic: [TUTORIAL] Tudo sobre a Segwit  (Read 361 times)
wilwxk
Sr. Member
****
Offline Offline

Activity: 476
Merit: 314


View Profile
March 31, 2018, 11:28:25 PM
Last edit: April 15, 2018, 12:55:56 AM by wilwxk
Merited by u9y42 (4), bitmover (4), alexrossi (2), girino (1), sabotag3x (1), Loganota (1), alegotardo (1), Forsyth Jones (1), caneca (1)
 #1

Esse tutorial tem o intuito de dar desde as informações mais básicas até algumas mais técnicas.




O que é a Segwit ?

     Explicação simples: É uma "atualização" que teve na rede do bitcoin, abrindo portas para transações mais leves, rápidas e baratas e também possibilitando a implementação de protocolos como a lightning network.
     Explicação mais técnica: É um soft-fork que muda o conceito de tamanho dos blocos, colocando o conceito de 'weight unit' (explicado depois). Possibilitando uma solução temporária para o problema de escalabilidade e o problema da maleabilidade nas transações (explicado depois).



Transações mais rápidas e baratas ?
     A resposta para isso é depende, a criação de transações mais "baratas" só é possível com os novos tipos de endereço (veja abaixo), e mesmo assim, a velocidade para que a sua transação seja confirmada depende de outros fatores, como os mineradores e a mempool (basicamente as transações dos outros que não foram confirmadas).



Novos formatos de endereços

     Atualmente existem 3 formatos:

          Legacy (P2PKH): São os formatos antigos, elas começam com o dígito '1' e se você usar eles você continua como antes, pagando como antes, nada muda pra você (tirando o fato de você estar ultrapassado - então por favor use os novos formatos).
          ex de endereço: 1BvBMSEYstWetqTFn5Au4m4GFg7xJaNVN2

          P2SH (nested Segwit): São os melhores para o momento, começam com o digito '3' (lembram as carteiras multisig), com elas você tem a mesma compatibilidade das Legacy, mas com a vantagem de criar transações witness. A economia de taxa gira por volta de 27%. Para usar esse formato nas carteiras, saiba que a maioria já adotou este como padrão - tirando a carteira Electrum, mas para isso existe esse ótimo tutorial em português ensinando.
          ex de endereço: 3J98t1WpEZ73CNmQviecrnyiWrnqRhWNLy

           Bech32: Teoricamente são muito melhores que os dois mencionados acima, ela começa com "bc1", os endereços delas tem a vantagem de serem bem legíveis ao ser humano (só tem letra minúscula), o que evita erros de digitação e também permitem o autocompletar das carteiras e um QRcode menor para endereços desse tipo. E o principal: fazem transações witness com uma economia nas taxas bem maior, por volta de 38%. O problema ? quase nenhum software/serviço reconhece isso como um endereço bitcoin, o que traz um grave problema de compatibilidade. (se você deseja usar esse tipo, a carteira Electrum já oferece isso).
          ex de endereço: bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq



Por que incentivar o uso ?
     Se você já estiver usando um endereço segwit (P2SH ou bech32), e e você estiver enviando um dinheiro que você recebeu de um outro endereço segwit (segwit->você->outro), então voce terá uma taxa de transação menor do que alguém que está usando um endereço segwit gastando um dinheiro que veio de um endereço legacy (legacy->você->outro). Novamente, se você estiver usando um endereço legacy nada vai mudar, mas se todo mundo usar apenas segwit, as vantagens vão ser maiores.
     Para ver a adoção da segwit na rede do bitcoin existem diversos sites como este, que possui gráficos para ajudar na visualização.



Se você leu até aqui você já tem todas as informações essenciais sobre Segwit, continue a ler somente se você tem curiosidades técnicas sobre como a segwit realmente funciona



O que sao "weight units" ?
     Com a ativação da Segwit, a antiga unidade de medida bytes ficou obsoleta, e foi introduzida as unidades vbytes e weight units, a relação entre elas é de 1 weight unit = 4 vbytes, e em os novos tamanhos dos blocos ficou como 4 milhões de weight units por bloco.



O tamanho do bloco não aumentou ? isso não seria um hard-fork ?
     Não, porque a partir dessa mudança nos blocos, a forma de medir o tamanho das transações também mudou, e nas transações legacy (antigas) o que valia de byte também passou a valer em vbytes, ou seja, uma transação de 300 bytes vale agora 300 vbytes, que na verdade equivale a 300*4=1200 weight units, o que ocupa a mesma porcentagem de espaço nos blocos que antes (na prática, se você entendeu até aqui, 1 byte = 1 vbyte = 4 weight units, mas parece que o pessoal nao gosta de usar essa relação com os bytes). Agora, nas transações criadas usando a Segwit o negocio muda totalmente.



As transações "witness"
     Basicamente, quando voce cria uma transação usando a segwit, o tamanho da transação diminui, mas se você está pensando que é porque elas são totalmente medidas em weight units, você também está errado, o que esses novos endereços conseguem fazer é escrever algumas partes (especificamente relacionadas à assinatura) que normalmente seriam escritos em uma escala de vbytes em weight units, ou seja, partes da transação ficam 4x menor ! e é por isso que geralmente só vemos transações com uma economia de taxas não maior que 50%, mostrando também que é impossível vermos blocos com 4x mais transações (há referencias de que o ganho de capacidade dos blocos chega efetivamente somente aos +60% até +100%).

Nota: Para que o bloco aguente 4x o numero de transações, realmente teria que ser aplicado um hard-fork.



-uma transação legacy em vbytes e em weight units-


-uma transação com segwit em vbytes e em weight units, repare que as partes azuis sao as partes assinatura mencionadas acima-

O problema da maleabilidade das transações
     O problema da maleabilidade nas transações foi um problema que afetou a Mt.Gox em 2013, basicamente era possível alterar a txid de uma transação mesmo sem alterar os seus valores (origem, destinatario, valor) e mesmo assim tornar ela válida. Qual o problema disso ? a exchange criava uma transação com uma txid e o atacante adultera essa transação com um outro txid e também transmite ela, no fim se apenas a transação do atacante se confirmasse, a exchange acabava não descontando o saldo do atacante por olhar apenas a txid gerada por eles. Com a segwit isso acabou.



Parte mais técnica ainda
     Deixar as transações "mais leves" foi justamente o que desencadeou a solução da maleabilidade - para ser mais específico: tudo que a segwit faz é basicamente tirar a parte do ScriptSig (a parte que deixava maleavel, é possivel adicionar coisa inutil lá dentro) da parte principal da transação ( a parte que interfere no hash/txid) , e coloca numa região chamada "witness data", que é mais leve (por isso a economia de espaço mencionada acima), e isso acaba com o problema da maleabilidade etemporariamente do espaço. genial.


-antes e depois da segwit-



Lightning Network
     Com a solução do problema da maleabilidade, já que na lightning network você precisa gerar transações novas com base em transações antigas que não foram transimidas na blockchain, e se houvesse o problema de "dois txid iguais para mesma transação", isso não seria possível (parece que existia até uma solução sem a necessidade da segwit, mas isso tornava tudo muito mais complicado).
      Nota: Só vai ser possivel tirar proveito da LN no futuro quem estiver usando a segwit, endereços legacy simplesmente não funcionarão.



Schnorr Signatures
     Não vou entrar em muitos detalhes, mas ele é uma proposta que pode ser implementada assim como a segwit (mas depende dela), que diminuiria ainda mais o tamanho das transações (principalmente as multisig), além de oferecer mais segurança e privacidade aos usuários.
      Extra: A schnorr signature aperfeiçoa e muito o sistema chamado CoinJoin - e tem um experimento aqui no forum local (administrado por um moderador daqui) para todo mundo que quiser tentar.



Resumindo...
     O uso da segwit reduz drasticamente as taxas de transação, mas mesmo assim precisamos de soluções que resolvam de vez o problema da escalabilidade como a Lightning Network, enquanto devemos usar apenas os recursos que temos, e isso já ajuda a rede como um todo. Seria legal se vocês postarem todas os erros do artigo ou as duvidas sobre segwit nos comentários.


1601480714
Hero Member
*
Offline Offline

Posts: 1601480714

View Profile Personal Message (Offline)

Ignore
1601480714
Reply with quote  #2

1601480714
Report to moderator
AWARD-WINNING
CASINO
CRYPTO EXCLUSIVE
CLUBHOUSE
1500+
GAMES
2 MIN
CASH-OUTS
24/7
SUPPORT
100s OF
FREE SPINS
PLAY NOW
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
1601480714
Hero Member
*
Offline Offline

Posts: 1601480714

View Profile Personal Message (Offline)

Ignore
1601480714
Reply with quote  #2

1601480714
Report to moderator
1601480714
Hero Member
*
Offline Offline

Posts: 1601480714

View Profile Personal Message (Offline)

Ignore
1601480714
Reply with quote  #2

1601480714
Report to moderator
lhvleao
Full Member
***
Offline Offline

Activity: 476
Merit: 128


View Profile
April 01, 2018, 01:31:01 AM
 #2

Sensacional o post! Sempre tem aqueles perdidos que chegam em busca de conhecimento sobre o tema e esse post vai ser uma ótima orientação. O segwit foi uma excelente melhora que afeta nas transações de todos os usuários. Bom poder saber um pouco mais a fundo sobre o tema
arthurbonora
Hero Member
*****
Offline Offline

Activity: 1022
Merit: 529


View Profile WWW
April 02, 2018, 11:56:17 AM
 #3

Quote

Novos formatos de endereços

     Atualmente existem 3 formatos:

          Legacy (P2PKH): São os formatos antigos, elas começam com o dígito '1' e se você usar eles você continua como antes, pagando como antes, nada muda pra você (tirando o fato de você estar ultrapassado - então por favor use os novos formatos).
          ex de endereço: 1BvBMSEYstWetqTFn5Au4m4GFg7xJaNVN2

          P2SH (nested Segwit): São os melhores para o momento, começam com o digito '3' (lembram as carteiras multisig), com elas você tem a mesma compatibilidade das Legacy, mas com a vantagem de criar transações witness. A economia de taxa gira por volta de 27%. Para usar esse formato nas carteiras, saiba que a maioria já adotou este como padrão - tirando a carteira Electrum, mas para isso existe esse ótimo tutorial em português ensinando.
          ex de endereço: 3J98t1WpEZ73CNmQviecrnyiWrnqRhWNLy

           Bech32: Teoricamente são muito melhores que os dois mencionados acima, ela começa com "bc1", os endereços delas tem a vantagem de serem bem legíveis ao ser humano (só tem letra minúscula), o que evita erros de digitação e também permitem o autocompletar das carteiras e um QRcode menor para endereços desse tipo. E o principal: fazem transações witness com uma economia nas taxas bem maior, por volta de 38%. O problema ? quase nenhum software/serviço reconhece isso como um endereço bitcoin, o que traz um grave problema de compatibilidade. (se você deseja usar esse tipo, a carteira Electrum já oferece isso).
          ex de endereço: bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq



https://bitcointalk.org/index.php?topic=3213889.0


Excelente material, gostei especificamente dessa parte, pois em sabia que existia obech32
Paredao
Legendary
*
Offline Offline

Activity: 2030
Merit: 1124



View Profile
April 02, 2018, 05:39:17 PM
 #4

Muito bom saber dessas novas "facilidades". Pena que com a rede tão rápida não seja tão necessário usa-las por enquanto. Valeu a dica. Cool


█████                      ▐████
█████                      ▐████
█████                      ▐████
█████                      ▐████
█████▄█████▄▄        ████▌ ▐████▄█████▄▄    ████▄██▌  ████▌  ███▄   ▄███
██████████████       ████▌ ▐█████████████   ███████▌  ████▌  ███████████
█████▀   ▀█████      ████▌ ▐█████▀  ▀█████  █████▀    ████▌   ▀███████▀
█████                ████▌ ▐████      ████  ████▌     ████▌    ▐█████▌
█████      █████▄  ▄█████▌ ▐█████▄  ▄█████  ████▌     ████▌   ▄███████▄    ▄██▄
█████       █████████████▌ ▐█████████████   ████▌     ████▌  ███████████  ██████
█████        ▀▀█████▀████▌ ▐████▀█████▀▀    ████▌     ████▌  ███▀   ▀███   ▀██▀
                     ████▌
                     ████▌
                     ████▌
                     ████▌








▄████████████████████████████▄
██████████████████████████████

██████████████████████████████
██████████████████████████████
██████████████████████████████
██████████████████████████████
██████████████████████████████
██████████████████████████████
██████████████████████████████
▀████████████████████████████▀
.WALLET
cap_spock
Member
**
Offline Offline

Activity: 84
Merit: 27


View Profile
April 02, 2018, 08:14:05 PM
 #5

VOu dar um ctrl + d aqui pro dia que eu tiver merits pra dar.

Fantástico teu post. clap clap
starsplash
Newbie
*
Offline Offline

Activity: 51
Merit: 0


View Profile
April 02, 2018, 08:36:45 PM
 #6

Bem resumido, mas bem informativo! Parabéns!
Luizxind
Member
**
Offline Offline

Activity: 104
Merit: 10

Luizxind1


View Profile
April 03, 2018, 12:54:02 AM
 #7

Muito bem explicado o assunto, valeu pelas informações, as transações em bitcoins estão cada vez melhores, esse post me tirou algumas duvidas que eu tinha obrigado.  Wink

wilwxk
Sr. Member
****
Offline Offline

Activity: 476
Merit: 314


View Profile
April 03, 2018, 01:54:34 AM
 #8

Muito bom saber dessas novas "facilidades". Pena que com a rede tão rápida não seja tão necessário usa-las por enquanto. Valeu a dica. Cool

Então, mesmo que a rede atual esteja rápida, ainda é bom fazer essa transição (já aproveitando a situação atual), já que não muda em nada a forma de usar a carteira e o usuário consegue ainda mais vantagens e descontos nas taxas de transação.
-
Fiz algumas várias alterações no post desde que publiquei (desde as imagens até a Schnorr Signature), eu espero que já tenha colocado todo o necessário.
@#BitcoinCore, @girino, @bitmover e @Adriano usei vários posts seus como complemento para a criação deste, obrigado.
DeltaX_Slayer
Full Member
***
Offline Offline

Activity: 532
Merit: 152


View Profile
April 03, 2018, 03:36:10 AM
 #9

Parabéns pelo post. Não tenho merits no momento, mas fica meu Up!
Torcendo para que os endereços da electrum se tornem populares logo. Na primeira vez que criei, fiquei triste por saber que ninguém usava. Fui todo empolgado kkk
Forsyth Jones
Sr. Member
****
Offline Offline

Activity: 924
Merit: 398


I love Bitcoin!


View Profile WWW
April 03, 2018, 10:11:55 PM
 #10

Parabéns pelo post. Não tenho merits no momento, mas fica meu Up!
Torcendo para que os endereços da electrum se tornem populares logo. Na primeira vez que criei, fiquei triste por saber que ninguém usava. Fui todo empolgado kkk
Eu uso, aproveito ele como endereço de troco no bitcoin core
smagnun
Jr. Member
*
Offline Offline

Activity: 57
Merit: 4


View Profile
April 04, 2018, 09:16:33 AM
 #11

Wow, melhor explicação até agora, tirou várias dúvidas, muito obrigado
jpouza
Legendary
*
Offline Offline

Activity: 1582
Merit: 1011


View Profile
April 04, 2018, 10:03:49 AM
 #12

Excelente compilação para explicar sobre o Segregated Witness, lembro ainda na época do início da implementação em que muitos discordaram e diziam que blocos maiores seriam a solução para o problema da escalabildade (vide Bitcoin Cash), desde então parece que o número de haters do Segwit tem diminuído bastante.
micloop
Full Member
***
Offline Offline

Activity: 448
Merit: 114


View Profile WWW
April 04, 2018, 01:10:58 PM
 #13

Interessante, acabei de criar uma carteira com Segwit usando esse tuto em conjunto com o do Girino. Muito legal o post, parabéns.
Silenox
Full Member
***
Offline Offline

Activity: 546
Merit: 122


View Profile
April 04, 2018, 04:41:17 PM
 #14

Excelente tópico, informação nunca é demais e vai ajudar quem está chegando agora e não tem noção dessas melhorias e termos técnicos.
wilwxk
Sr. Member
****
Offline Offline

Activity: 476
Merit: 314


View Profile
April 14, 2018, 12:12:46 AM
 #15

Eu traduzi o post para ingles aqui, tem as mesmas coisas (na verdade se voce fala português é melhor ler daqui mesmo), mas se você quiser discutir algo mais técnico, provavelmente é lá que você deve ir.
micloop
Full Member
***
Offline Offline

Activity: 448
Merit: 114


View Profile WWW
April 14, 2018, 10:52:35 PM
 #16

Eu traduzi o post para ingles aqui, tem as mesmas coisas (na verdade se voce fala português é melhor ler daqui mesmo), mas se você quiser discutir algo mais técnico, provavelmente é lá que você deve ir.
Boa! Quem sabe você não garante uns merit points para distribuir aqui na aba local... De vez em quando eu posto coisas na gringa também para dar um garimpada por lá.
wilwxk
Sr. Member
****
Offline Offline

Activity: 476
Merit: 314


View Profile
April 14, 2018, 11:09:55 PM
 #17

Boa! Quem sabe você não garante uns merit points para distribuir aqui na aba local... De vez em quando eu posto coisas na gringa também para dar um garimpada por lá.

O ruim é que parece que colocaram na seção do Beginners and Help, mesmo achando que não tenha nenhum motivo para isso, contatei o moderador e não consegui nada, o que eu queria era poder colocar o post no Technical Support para o pessoal que entende mais poder opinar sobre (ninguem leva a serio o beginner and help). Mas mesmo assim eu deixo este post aberto para quem tiver curiosidade de discutir algumas questoes mais tecnicas e economicas sobre.
sabotag3x
Legendary
*
Offline Offline

Activity: 1470
Merit: 1193



View Profile
April 15, 2018, 12:24:17 AM
 #18

Acabei vendo esse post só ontem, muito bom, pode adicionar esse site também: http://segwit.party/charts/ , ele mostra a % de uso de endereços segwit..

Uma duvida, os endereços P2SH contam como sendo segwit nesse site? ou ele rastreia só os bc1?

███████████████████████████
██████████▄▄███▄▄██████████
████████▄█████████▄████████
██████▄█████████████▄██████
███████████████████████████
███████████████████████████
█████▄███████████████▄█████
███████████████████████████
█████▀███████████████▀█████
███████▀███████████▀███████
█████████▀███████▀█████████
███████████▀███▀███████████
███████████████████████████
.
.BITAMP..
   BITAMP BITCOIN WALLET   
Easy to use, client-side, &
open-source Bitcoin wallet
███████████████████████████
████████▄▄▄▀▀▀▀▀▄▄▄████████
████▄▀▀▀   ▄▄█▄▄   ▀▀▀▄████
█████ ▀▄▄▀▀     ▀▀▄▄▀ █████
█████  █    ███    █  █████
█████  █   ▄███▄   █  █████
█████  █  ███████  █  █████
████▀▄ ▀▄ ███████ ▄▀ ▄▀████
█████▀▄ ▀▄       ▄▀ ▄▀█████
██████▀▄  ▀▄▄ ▄▄▀  ▄▀██████
████████▀▄   █   ▄▀████████
██████████▀▀▄▄▄▀▀██████████
███████████████████████████
███████████████████████████
███████████████████████████
███████████████████████████
████▄▀▀▀▄  ▄███▄  ▄▀▀▀▄████
█████   █ ▐█████▌ █   █████
███▄▄▀ ▀▄  ▀███▀  ▄▀ ▀▄▄███
██      ▄██▀▀▀██▄      ███
██     ███▄███ ███     ███
███▄▄▄▄ █████▄▄████ ▄▄▄▄███
██████████████████████████
███████████████████████████
███████████████████████████
███████████████████████████
███████████████████████████
█████████████████▄▄▄▄█▄████
███████████████████████▀███
█████▀▀▀▀██▀▀▀▀▀▄▄████████
███████▄▀  ▄█▄█▄  ▀▄███████
██████▄▀   █    █  ▀▄██████
███████    █▀▀▀▀▄   ███████
██████▀▄   █    █  ▄▀██████
███████▀▄  ▀█▀█▀  ▄▀███████
████████▀▀▄▄▄▄▄██▄▄▄▄█████
███▄███████████████████████
████▀█▀▀▀▀█████████████████
███████████████████████████
|SECURE
ANONYMOUS
INSTANT
wilwxk
Sr. Member
****
Offline Offline

Activity: 476
Merit: 314


View Profile
April 15, 2018, 01:09:42 AM
 #19

Acabei vendo esse post só ontem, muito bom, pode adicionar esse site também: http://segwit.party/charts/ , ele mostra a % de uso de endereços segwit..

Uma duvida, os endereços P2SH contam como sendo segwit nesse site? ou ele rastreia só os bc1?

Obrigado, adicionei o link acima. Provavelmente "rastreiam" as transções todas as transações que têm "traços" de dados witness, mas a verdade é que existem muito pouco (pouco mesmo) de transações feitas em endereços bech32, e pelo que eu vi, no link que você mencionou usa como fonte a Trezor, que está usando os do tipo P2SH, e na minha opinião, não veremos o uso do bech32 logo, mesmo com todas as vantagens que oferece.

Para os que querem saber da diferença entre endereços bech32 e P2SH, o porquê de um ser melhor que o outro, eis a explicação:
Os endereços do tipo P2SH foram feitos para ser um tipo de endereço "facil", fazendo com que ela funcione desde como um endereço mutiseg até mesmo para a criação de transações segwit. Para que isso aconteça, existe um script que é "embutido" (na verdade é apenas um hash deste script e alguns bytes adicionais) nas transações para tornar elas mais fáceis de serem processadas pelos nós, ao caso que os endereços do tipo bech32 não (fazendo com que economize algum espaço na transação).
Quem quiser uma explicação mais profundo sobre. (está em inglês). Outro problema do bech32 é que alguns o consideram como um formato experimental (como a electrum), o que significa que ainda é possivel que façam alterações sobre este formato de endereço (teoricamente isso não afetaria os fundos, mas tornaria estes endereços como estranhos diante algumas carteiras).
Forsyth Jones
Sr. Member
****
Offline Offline

Activity: 924
Merit: 398


I love Bitcoin!


View Profile WWW
April 15, 2018, 04:42:33 AM
 #20

Então, estou usando mais o bech32 do que os p2sh-segwit, faz tempo que não uso os endereços legacy, a única desvantagem do bech 32 é que ele ainda não se tornou compatível com 90% das carteiras/serviços e também ele é muito grande.  Roll Eyes
Pages: [1] 2 »  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!