Skip to content

Commit 405c9fc

Browse files
committed
Revise chapter 11 titles, fix typos
1 parent a69d882 commit 405c9fc

File tree

4 files changed

+27
-27
lines changed

4 files changed

+27
-27
lines changed

pt/11_0_Empowering_Timelock_with_Bitcoin_Scripts.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11

2-
# Capítulo 11: Expandindo o timelock com scripts do Bitcoin
2+
# Capítulo 11: Capacitando Timelock com Scripts do Bitcoin
33

44
O recurso ```nLockTime``` da seção [§8.1](08_1_Sending_a_Transaction_with_a_Locktime.md) foi apenas o começo dos Timelocks. Quando começamos a escrever scripts do Bitcoin, dois opcodes de timelocks ficam disponíveis.
55

6-
## Objetivos deste capítulo
6+
## Objetivos deste Capítulo
77

88
Depois de trabalhar neste capítulo, um desenvolvedor será capaz de:
99

@@ -18,6 +18,6 @@ Os objetivos secundários do capítulo incluem a capacidade de:
1818

1919
## Índice
2020

21-
* [Seção 1: Compreendendo as Opções de Timelocks](11_1_Understanding_Timelock_Options.md)
22-
* [Seção 2: Usando o CLTV nos Scripts](11_2_Using_CLTV_in_Scripts.md)
23-
* [Seção 3: Usando o CSV nos Scripts](11_3_Using_CSV_in_Scripts.md)
21+
* [Seção 1: Compreendendo As Opções de Timelock](11_1_Understanding_Timelock_Options.md)
22+
* [Seção 2: Usando CLTV em Scripts](11_2_Using_CLTV_in_Scripts.md)
23+
* [Seção 3: Usando CSV em Scripts](11_3_Using_CSV_in_Scripts.md)

pt/11_1_Understanding_Timelock_Options.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
# 11.1: Compreendendo as Opções de Timelocks
1+
# 11.1: Compreendendo As Opções de Timelock
22

33
Na seção [§8.1: Enviando uma transação com Locktime](08_1_Sending_a_Transaction_with_a_Locktime.md), o ```nLocktime``` ofereceu uma ótima opção inicial para bloquear as transações para que não pudessem ser gastas até algum ponto no futuro, com base no tempo (data/hora) ou na altura do bloco. Mas, essa não é a única maneira de colocar um timelock em uma transação.
44

5-
## Compreendendo as limitações do nLockTime
5+
## Compreendendo as Limitações do nLockTime
66

77
O ```nLockTime``` é uma maneira simples e poderosa de bloquear uma transação, mas possui algumas limitações:
88

@@ -13,7 +13,7 @@ O ```nLockTime``` é uma maneira simples e poderosa de bloquear uma transação,
1313

1414
O último item costumava ser o _dealbreaker_ para o ```nLockTime```. Isso evitou que uma transação fosse gasta, mas não impediu que os fundos fossem usados em uma transação diferente. Então, havia certos usos, mas todos dependiam de confiança.
1515

16-
## Compreendendo as possibilidades dos scripts de Timelock
16+
## Compreendendo as Possibilidades dos Scripts de Timelock
1717

1818
Nos últimos anos, o Bitcoin Core foi expandido para permitir a manipulação dos timelocks no nível do opcode com os _OP_CHECKLOCKTIMEVERIFY_ (CLTV) e _OP_CHECKSEQUENCEVERIFY_ (CSV). Ambos trabalham sob uma nova metodologia que fortalece ainda mais o Bitcoin.
1919

@@ -23,19 +23,19 @@ _Eles bloqueiam as saídas._ Por serem opcodes incluídos nas transações como
2323

2424
Aqui está um ponto importante sobre a utilização dos timelocks: _Eles são bloqueios de mão única._ Os bloqueios de tempo são projetados para desbloquear fundos em um determinado momento. Eles não podem bloquear novamente um fundo: Uma vez que um fundo bloqueado por tempo está disponível, ele ficará disponível para ser gasto.
2525

26-
### Compreendendo as possibilidades do CLTV
26+
### Compreendendo as Possibilidades do CLTV
2727

2828
O _OP_CHECKLOCKTIMEVERIFY_ ou CLTV é compativel com o clássico recurso ```nLockTime```, mas no novo paradigma baseado em opcode. Ele permite que uma UTXO se torne acessível em um determinado momento ou em uma determinada altura de bloco.
2929

3030
O CLTV foi detalhado pela primeira vez no [BIP 65](https://github.com/bitcoin/bips/blob/master/bip-0065.mediawiki).
3131

32-
### Compreendendo as possibilidades do CSV
32+
### Compreendendo as Possibilidades do CSV
3333

3434
O _OP_CHECKSEQUENCEVERIFY_ ou CSV depende de um novo tipo de "locktime relativo", que é definido no campo _nSequence_ da transação. Como de costume, ele pode ser definido como uma data/hora ou uma altura de bloco. Se for definido como um tempo "n", então uma transação bloqueada em um tempo relativo pode ser gasta "n x 512" segundos depois que a UTXO foi minerada, e se for definido como um bloco "n", então uma transação bloqueada em tempo relativo pode ser gasta em "n" blocos depois que a UTXO foi minerada.
3535

3636
O uso do ```nSequence``` para um bloqueio de tempo relativo foi detalhado primeiramente no [BIP 68](https://github.com/bitcoin/bips/blob/master/bip-0068.mediawiki), e o opcode CSV foi adicionado no [BIP 112](https://github.com/bitcoin/bips/blob/master/bip-0112.mediawiki).
3737

38-
## Resumo: Compreendendo as Opções de Timelocks
38+
## Resumo: Compreendendo As Opções de Timelock
3939

4040
Agora possuímos quatro opções de Timelocks:
4141

@@ -46,4 +46,4 @@ Agora possuímos quatro opções de Timelocks:
4646

4747
## O Que Vem Depois?
4848

49-
Vamos continuar "Aumentando o poder do timelock com scripts do Bitcoin" na seção [§11.2: Usando o CLTV nos Scripts](11_2_Using_CLTV_in_Scripts.md).
49+
Vamos continuar "Aumentando o poder do timelock com scripts do Bitcoin" na seção [§11.2: Usando CLTV em Scripts](11_2_Using_CLTV_in_Scripts.md).

pt/11_2_Using_CLTV_in_Scripts.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# 11.2: Usando o CLTV nos Scripts
1+
# 11.2: Usando CLTV em Scripts
22

33
O ```OP_CHECKLOCKTIMEVERIFY``` (ou CLTV) é o complemento natural para o ```nLockTime```. Ele muda a ideia de bloquear transações por um tempo absoluto ou altura de bloco para o âmbito dos opcodes, permitindo o bloqueio das UTXOs individuais.
44

@@ -21,7 +21,7 @@ O ```OP_CHECKLOCKTIMEVERIFY``` funciona dentro do mesmo paradigma de altura de b
2121

2222
Como o CLTV é apenas parte de um script (e presumivelmente parte de uma transação P2SH), uma transação CLTV não é mantida fora da mempool como uma transação ```nLockTime```. Logo, assim que for verificado, ele vai para a blockchain e os fundos são considerados gastos. O truque é que todas as saídas que foram bloqueadas com o CLTV não estão disponíveis para _serem gastas_ até que o CLTV permita.
2323

24-
### Compreendendo um CLTV de tempo absoluto
24+
### Compreendendo um CLTV de Tempo Absoluto
2525

2626
É assim que o ```OP_CHECKLOCKTIMEVERIFY``` seria utilizado para verificar o locktime de 24 de maio de 2017:
2727
```
@@ -36,7 +36,7 @@ Ou assim:
3636
<AbsoluteTime> OP_CHECKLOCKTIMEVERIFY
3737
```
3838

39-
### Compreendendo um CLTV de altura de bloco absoluta
39+
### Compreendendo um CLTV de Altura de Bloco Absoluta
4040

4141
É assim que o ```OPCHECKLOCKTIMEVERIFY``` compararia a uma altura de bloqueio alcançada no dia 24 de maio de 2017:
4242
```
@@ -47,7 +47,7 @@ Mas geralmente vamos abstrair assim:
4747
<AbsoluteBlockHeight> OP_CHECKLOCKTIMEVERIFY
4848
```
4949

50-
### Entendendo como o CLTV realmente funciona
50+
### Entendendo como o CLTV Realmente Funciona
5151

5252
A explicação acima é suficiente para usar e entender o CLTV. No entanto, o [BIP 65](https://github.com/bitcoin/bips/blob/master/bip-0065.mediawiki) apresenta todos os seguintes detalhes.
5353

@@ -71,7 +71,7 @@ O seguinte script de bloqueio simples pode ser usado para transformar uma saída
7171
<NextYear> OP_CHECKLOCKTIMEVERIFY OP_DROP OP_DUP OP_HASH160 <pubKeyHash> OP_EQUALVERIFY OP_CHECKSIG
7272
```
7373

74-
### Codificando um script CLTV
74+
### Codificando um Script CLTV
7575

7676
Obviamente, como acontece com quaisquer scripts Bitcoin complexos, este script CLTV seria realmente codificado em um script P2SH, conforme explicado na seção [§10.1: Entendendo a Fundação do P2SH](10_1_Understanding_the_Foundation_of_P2SH.md) e na [§10.2: Construindo a Estrutura de P2SH](10_2_Building_the_Structure_of_P2SH.md).
7777

@@ -116,7 +116,7 @@ No caso do exemplo acima, o script de desbloqueio abaixo seria suficiente, desde
116116
<signature> <pubKey>
117117
```
118118

119-
### Executando um script CLTV
119+
### Executando um Script CLTV
120120

121121
Para executar o Script, primeiro devemos concatenar os scripts de desbloqueio e bloqueio:
122122
```
@@ -142,12 +142,12 @@ Stack: [ <signature> <pubKey> ]
142142
```
143143
Finalmente, o restante do script é executado, que é uma verificação normal de uma assinatura e chave pública.
144144

145-
## Resumo: Usando o CLTV nos Scripts
145+
## Resumo: Usando CLTV em Scripts
146146

147147
O ```OP-CHECKLOCKTIMEVERIFY``` é um opcode simples que olha para um único argumento, o interpreta como uma altura de bloco ou timestamp UNIX, e só permite que a UTXO seja desbloqueada se àquela altura de bloco ou timestamp UNIX estiver no passado. Definir o ```nLockTime``` na transação de gastos é o que permite ao Bitcoin fazer este cálculo.
148148

149149
> :fire: ***Qual é o poder do CLTV?*** Já vimos que os tempos de bloqueio simples eram uma das bases dos Contratos Inteligentes. O CLTV dá o próximo passo. Agora podemos garantir que uma UTXO não possa ser gasta antes de um certo tempo _e_ podemos garantir que ela também não será gasta. Em sua forma mais simples, isso poderia ser usado para criar um fundo que alguém só poderia ter acesso aos 18 anos ou um fundo de aposentadoria que só poderia ser acessado quando fizesse 50 anos. No entanto, o verdadeiro poder vem quando combinado com condicionais, onde apenas o CLTV apenas é ativado em certas situações.
150150
151151
## O Que Vem Depois?
152152

153-
Vamos continuar "Aumentando o poder do timelock com scripts do Bitcoin" na seção [§11.3: Usando o CSV nos Scripts](11_3_Using_CSV_in_Scripts.md).
153+
Vamos continuar "Capacitando Timelock com Scripts no Bitcoin" na seção [§11.3: Usando CSV em Scripts](11_3_Using_CSV_in_Scripts.md).

pt/11_3_Using_CSV_in_Scripts.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# 11.3: Usando o CSV nos Scripts
1+
# 11.3: Usando CSV em Scripts
22

33
O ```nLockTime``` e o ```OP_CHECKLOCKTIMEVERIFY``` (ou CLTV) são apenas um lado da equação do timelock. Do outro lado estão o ```nSequence``` e o ```OP_CHECKSEQUENCEVERIFY```, que podem ser usados ​​para verificar tempos relativos ao invés de tempos absolutos.
44

@@ -55,7 +55,7 @@ $ echo $relativevalue
5555
```
5656
Se convertermos de volta, teremos o valor de 4224679 = 10000000111011010100111. O 23º dígito é definido como "1", enquanto os primeiros 2 bytes, 0111011010100111, são convertidos em 76A7 em hexadecimal ou 30375 em decimal. Multiplicando isso por 512, teremos 15,55 milhões de segundos, o que de fato é 180 dias.
5757

58-
## Criando uma transação com um timelock relativo
58+
## Criando uma Transação com um Timelock Relativo
5959

6060
Então desejamos criar uma transação simples com um timelock relativo? Tudo que precisamos fazer é emitir uma transação onde o ```nSequence``` de uma entrada é definido como mostramos acima: Com o ```nSequence``` para essa entrada definido de forma que os primeiros dois bytes definam o timelock, o 23º bit define o tipo do timelock, e o 32º bit é definido como sendo falso.
6161

@@ -87,7 +87,7 @@ Neste caso, usaremos uma abreviatura:
8787

8888
> :warning: **ATENÇÃO:** Lembre-se de que um timelock relativo é um intervalo de tempo desde a mineração da UTXO usada como uma entrada. _Não_ é um intervalo de tempo após a criação da transação. Se usarmos uma UTXO que já foi confirmada cem vezes, e colocarmos um timelock relativo de 100 blocos nela, ela será elegível para mineração imediatamente. Os timelocks relativos têm alguns usos muito específicos, mas provavelmente não se aplicam se nosso único objetivo for determinar algum tempo definido no futuro.
8989
90-
### Entendendo como o CSV realmente funciona
90+
### Entendendo como o CSV Realmente Funciona
9191

9292
O CSV tem muitas das mesmas sutilezas de uso que CLTV:
9393

@@ -99,7 +99,7 @@ O CSV tem muitas das mesmas sutilezas de uso que CLTV:
9999

100100
Assim como no CLTV, quando estiver usando uma UTXO com um CSV em condições de bloqueio, devemos definir o ```nSequence``` para habilitar a transação. Normalmente, o configuraremos com o valor exato no script de bloqueio.
101101

102-
## Escrevendo um script CSV
102+
## Escrevendo um Script CSV
103103

104104
Assim como o ```OP_CHECKLOCKTIMEVERIFY```, o ```OP_CHECKSEQUENCEVERIFY``` inclui um ```OP_VERIFY``` implícito e deixa os argumentos na pilha, exigindo um ```OP_DROP``` quando finalizar tudo.
105105

@@ -108,7 +108,7 @@ Um script que bloquearia fundos por até seis meses após a mineração e que ex
108108
<+6Months> OP_CHECKSEQUENCEVERIFY OP_DROP OP_DUP OP_HASH160 <pubKeyHash> OP_EQUALVERIFY OP_CHECKSIG
109109
```
110110

111-
### Codificando um script CSV
111+
### Codificando um Script CSV
112112

113113
Ao codificar um script CSV, precisamos tomar cuidado ao codificar o valor inteiro para o timelock relativo. Deve ser passado como um número inteiro de 3 bytes, o que significa que iremos ignorar o maior byte, o que pode desativar o timelock relativo. Como é um número inteiro, precisamos nos certificar de convertê-lo para little-endian.
114114

@@ -137,12 +137,12 @@ Hexcode: 03a77640
137137

138138
Para gastar uma UTXO bloqueado com um script CSV, devemos definir o ```nSequence``` dessa entrada para um valor maior que o requerido no script, mas menor que o tempo entre a UTXO e o bloco atual. Isso mesmo, isso significa que precisamos saber o requisito exato no script de bloqueio. Mas temos uma cópia do ```redeemScript```, então se não conhecermos os requisitos, podemos desserializá-lo e, em seguida, definir o ```nSequence``` como sendo o número que é mostrado lá.
139139

140-
## Resumo: Usando o CSV nos Scripts
140+
## Resumo: Usando CSV em Scripts
141141

142142
O ```nSequence``` e o CSV oferecem uma alternativa para o ```nLockTime``` e o CLTV onde bloqueamos uma transação com base em um tempo relativo desde que a entrada foi extraída, ao invés de basear o bloqueio em um tempo definido no futuro. Eles funcionam quase de forma idêntica, exceto pelo fato de que o valor do ```nSequence``` é codificado de forma ligeiramente diferente do valor do ```nLockTime```, com bits específicos significando coisas específicas.
143143

144144
> :fire: ***Qual é o poder do CSV?*** O CSV não é apenas uma maneira preguiçosa de bloquear uma transação, quando não queremos calcular um tempo no futuro. Ele é um paradigma totalmente diferente, um bloqueio que usaríamos se fosse importante criar uma duração mínima específica entre o momento em que uma transação é minerada e o momento em que os fundos podem ser gastos. O uso mais óbvio é (mais uma vez) para uma conta de garantia, quando desejamos um tempo preciso entre a entrada dos fundos e a saída. No entanto, ele tem possibilidades muito mais poderosas em transações fora da rede, incluindo canais de pagamento. Esses aplicativos são, por definição, construídos em transações que não são realmente colocadas na blockchain, o que significa que, se forem posteriormente colocados em um bloco, um período de tempo pode ser muito útil. Os [Hashed Timelock Contracts](https://en.bitcoin.it/wiki/Hashed_Timelock_Contracts) foram uma dessas implementações, dando a base para a rede de pagamento Lightning. Eles serão discutidos na seção [§13.3: Expandindo os Scripts do Bitcoin](13_3_Empowering_Bitcoin_with_Scripts.md).
145145

146146
## O Que Vem Depois?
147147

148-
Vamos avançar "Criando Scripts do Bitcoin" no capítulo [12: Expandindo os Scripts do Bitcoin](12_0_Expanding_Bitcoin_Scripts.md).
148+
Vamos avançar em "Programando no Bitcoin" com o [Capítulo 12: Expandindo os Scripts do Bitcoin](12_0_Expanding_Bitcoin_Scripts.md).

0 commit comments

Comments
 (0)