F 2 corpo finito com dois elementos
7.3 Construção Escada no Modelo f cr híbrido
apenas c têm como objetivo atualizar os participantes sobre a criação ou reivindicação de algum depósito.
Por fim, ressaltamos que, ao fazer um depósito, o participante transfere o controle das moedas para fcr. Elas permanecem congeladas até que o depósito seja creditado ou reembolsado.
7.3 Construção Escada no Modelo fcr-híbrido
A Figura 7.1 esquematiza como o protocolo que chamamos de construção escada utiliza a funcionalidade fcr como uma “caixa preta”. Nessa seção vamos formalizar esse esquema,
definindo a construção escada no modelo modelo fcr-híbrido, isto é, com acesso oracular à fcr.
Definição 7.101 (Construção escada no modelo fcr-híbrido - BENTOV e KUMARESAN (2014)).
Seja {P1,··· ,Pm} um conjunto de participantes, (Divide,Reconstr´oi,Verifica) um EVCSm,m
como implementado na Definição 6.97 e (Etiquetas, Pedaços) o resultado da aplicação do algoritmo Divide a algum segredo z a ser reconstruído. Para todo i∈ {1,··· ,m}, assumimos que o participante Pipossui a lista Etiquetas e o valor Pedaçosi. Também assumimos que q é um
valor predefinido, utilizado como multa por aborto. As rodadas τ1,··· ,τmsão tais que τi< τi+1
para todo i∈ {1,··· ,m − 1} (ou seja, a rodada τicomeça antes da rodada τi+1).
Definições auxiliares: Definimos ϕ(et,·) como o circuito que é satisfeito por uma entrada p se e somente se Verifica(et, p) = 1. Isto é, ϕ(et,·) é satisfeito pelo pedaço p cor- respondente à etiqueta et. Definimos, para todo i∈ {1,··· ,m}, ϕiesc def= ϕ(Etiquetas1,·) ∧ ϕ(Etiquetas2,·) ∧ ··· ∧ ϕ(Etiquetasi,·) e ϕcob def= ϕesc
m .
Definimos a construção escada como a seguir.
E1. (Depósitos-cobertura.) Nesta etapa os depósitos-cobertura são feitos. Isto é, para todo i∈ {1,··· ,m − 1}, Pi faz o depósito Pi ϕ cob −−→q,τ m Pm
. O protocolo só continua se todos os m− 1 depósitos-cobertura forem feitos.
Mais precisamente, para todo i∈ {1,··· ,m − 1}, o participante Pifaz o seguinte: Envia(dep´osito, i, m, ϕcob, τm, valor(q)) para fcr.
Se a mensagem(dep´osito, e, m, ϕcob, τm, q) não foi recebida de fcr para algum
e∈ {1,··· ,m − 1}, então Pi suspende a execução e espera até a rodada τm+
1 pela mensagem (reembolso, i, m, ϕcob, τ
m, valor(q)) de fcr. Nesse caso, Pi
define sua saída como⊥.
E2. (Depósitos-escada.) Nesta etapa os depósitos-escada são realizados. O participante Pi+1
só faz seu depósito-escada Pi+1 ϕ esc i −−−→ i·q,τi Pi
se todos os depósitos “acima”, isto é, aqueles dos participantes Pi+2,··· ,Pm, tiverem sido feitos.
Para isso, cada participante Pi+1, para i= m−1 até 1, envia (dep´osito,i+1,i,ϕiesc, τi, valor(i·
q)) para fcrsomente se a mensagem(dep´osito, e + 1, e, ϕeesc, τe, e· q) foi recebida de fcr
E3. (Crédito dos depósitos-escada.) Nesta etapa os depósitos-escada são reivindicados na ordem inversa da que são feitos. Dividimos as ações em dois casos:
Ação de P1: Na rodada τ1o participante P1envia a mensagem(cr´edito, 2, 1, ϕ1esc, τ1, q,W1=
{Pedaços1}) para fcr. Ele então espera receber a mensagem(cr´edito, 2, 1, ϕ1esc, τ1, valor(q))
de fcr.
Ação de Pi+1, para todo i∈ {1,··· ,m−1}: Pi+1espera a rodada τipara que seu depósito-
escada Pi+1 ϕ esc i −−−→ i·q,τi Pi
seja reivindicado. Ou seja, espera receber a mensagem(cr´edito, i + 1, i, ϕiesc, τi, i· q,Wi) de fcr.
Se essa mensagem for recebida e i + 1 6= m, Pi+1 reivindica o depósito
Pi+2 ϕ esc i+1 −−−−−−−→ (i+1)·q,τi+1 Pi+1 . Para isso,
- Pi+1cria o conjunto Wi+1= Wi∪ {Pedaçosi+1},
- Pi+1envia a mensagem(cr´edito, i+2, i+1, ϕi+1esc, τi+1, (i+1)·q,Wi+1)
para fcr,
- Pi+1 espera receber de fcr a mensagem
(cr´edito, i + 2, i + 1, ϕesc
i+1, τi+1, valor((i + 1)· q),Wi+1).
Se essa mensagem não for recebida, Pi+1 suspende a execução e espera a
rodada τi+ 1 para ter seu depósito-escada reembolsado. Ou seja, Pi+1 espera
a mensagem (reembolso, i + 1, i, ϕesc
i , τi, valor(i· q)) de fcr. Além disso, se
i+ 16= m, Pi+1deve também ter seu depósito-cobertura reembolsado. Para isso,
Pi+1 espera a rodada τm+ 1 para receber de fcr a mensagem(reembolso, i +
1, m, ϕcob, τ
m, valor(q)). Finalmente, Pi+1 define sua saída como⊥.
E4. (Crédito dos depósitos-cobertura.) Nesta etapa o participante Pmreivindica os depósitos-
cobertura.
Para isso, na rodada τm, para todo i∈ {1,··· ,m − 1}, o participante Pmreivindica o depó-
sito Pi ϕ cob −−→q,τ m Pm
enviando(cr´edito, i, m, ϕcob, τ
m, q,Wm= Pedaços) para fcr e recebendo
de volta a mensagem(cr´edito, i, m, ϕcob, τ
m, valor(q),Wm). Então Pmutiliza o algoritmo
Reconstr´oisobre Wm= Pedaços e reconstrói o valor z.
E5. (Coleta dos pedaços.) Nesta etapa os participantes utilizam as informações da etapa anterior para reconstruir o valor z.
Para todo i∈ {1,··· ,m − 1}, o participante Piespera a rodada τm para receber de fcr a
mensagem(cr´edito, s, m, ϕcob, τ
m, q,Wm) para algum s∈ {1,··· ,m − 1}. Então Piutiliza
Wm= Pedaços para reconstruir z. Caso nenhuma dessas mensagens seja recebida, Pi
aguarda até a rodada τm+ 1 para ter seu depósito-cobertura reembolsado através da
mensagem(reembolso, i, m, ϕcob, τ
7.3. CONSTRUÇÃO ESCADA NO MODELO FCR-HÍBRIDO 124
Nós demos uma visão geral, na Figura 7.1, de como os depósitos escada e cobertura são feitos. Prosseguimos com uma descrição mais detalhada baseada na Definição 7.101.
Podemos ver o crédito dos depósitos-cobertura como o objetivo final da construção escada. De fato, é a reivindicação desses depósitos que permite a reconstrução do segredo z. Por essa razão, os depósitos-cobertura devem ser os primeiros a serem feitos, já na etapa E1. Se algum participante não realizar seu depósito-cobertura, a execução deve ser interrompida e os depósitos já feitos, reembolsados.
Os depósitos-escada são feitos na etapa E2. Com exceção de P1 e Pm, todo parti-
cipante Pi está envolvido em dois depósitos-escada consecutivos, isto é,
Pi+1 ϕiesc −−−→ i·q,τi Pi e Pi ϕ esc i−1 −−−−−−−→ (i−1)·q,τi−1 Pi−1
. Como veremos a seguir, é fundamental para a justiça da construção escada que o participante Pi faça seu depósito escada somente se o depósito logo acima, do
qual ele é o destinatário, tiver sido feito. Isso se justifica pelo fato de que é esse depósito que torna seu saldo temporariamente positivo (+q). Devido a isso, os depósitos-escada são feitos de “cima” para “baixo”, começando com
Pm−−−−−−−−−−−−−→Pedaços1,···,Pedaçosm−1
(m−1)·q,τm−1 Pm−1
realizado por Pm. Isso
permite a cada participante verificar se o depósito do qual ele é destinatário já foi realizado. Essa verificação só é possível porque a funcionalidade fcrfaz o broadcast dos eventos que atualizam
seu estado.
Na etapa E3, os depósitos-escada são creditados de “baixo” para “cima”. Cada partici- pante Pi+1, com i∈ {1,··· ,m − 1} espera seu depósito-escada
Pi+1 Pedaços1,···,Pedaçosi −−−−−−−−−−−−→ i·q,τi Pi ser creditado. Somente assim ele conseguirá reunir os elementos de Pedaços necessários para reivin- dicar o depósito-escada logo acima, do qual ele é o destinatário. Ressaltamos que apenas através da reivindicação do depósito Pi+1 Pedaços1,···,Pedaçosi −−−−−−−−−−−−→ i·q,τi Pi
o valor Pedaçosise torna conhecido. O valor Pedaçosm, por sua vez, só se torna conhecido nos depósitos-cobertura.
Ainda na etapa E3, se algum participante abortar, não reivindicando um depósito-escada e, portanto, impedindo os depósitos acima de serem creditados, a execução é interrompida. Nesse caso, os depósitos acima do ponto de aborto, i.e., os depósitos ainda não creditados, são reembolsados. Além disso, os depósitos-cobertura também são reembolsados, na rodada τm+ 1.
No entanto, nem todo aborto impossibilita a continuação da etapa E3. Considere o exemplo em que os participantes Pi+1 e Pifazem parte de um conluio. Nesse caso, podemos
admitir que ambos conhecem os valores Pedaçosi+1 e Pedaçosi. Dessa forma, mesmo que Pi
aborte e não reivindique o depósito Pi+1 ϕ esc i −−−→ i·q,τi Pi
, os depósitos acima dele, em particular o Pi+2 ϕi+1esc −−−−→ i·q,τi+1 Pi+1
, ainda podem ser creditados. De fato, o depósito Pi+1 ϕiesc −−−→ i·q,τi Pi nem precisa ser feito.
Após o crédito dos depósitos-escada e se não houve aborto, o participante Pm possui
todos os elementos da lista Pedaços. Com isso, ele é o primeiro participante capaz de usar o algoritmo Reconstr´oi para obter a saída do protocolo. Além disso, com a lista Pedaços completa,
Pmé também capaz de reivindicar os depósitos-cobertura, na etapa E4. Como fcrfaz o broadcast
das operações de crédito, Pm só precisa reivindicar um depósito cobertura para que todos os
demais participantes recebam a lista Pedaços. Isso está registrado na etapa E5. No entanto, a estratégia de reivindicar apenas alguns depósitos-cobertura resulta em um prejuízo financeiro para Pm.
Finalmente, o caso em que Pm faz parte de um conluio desonesto é o único em que
a justiça (tradicional) do protocolo pode ser quebrada. Ou seja, Pm pode abortar logo após
reconstruir a saída. Nesse caso, todos os depósitos-cobertura são reembolsados e os demais participantes acabam com um saldo positivo de q moedas2.
Ao final do protocolo, se todos os participantes agirem honestamente, nenhuma penali- dade é paga. Ou seja, todo investimento feito nos depósitos escada e cobertura são recuperados. Além disso, todos conseguem obter a saída a partir do algoritmo Reconstr´oi. No entanto, caso ocorra um aborto, todo participante que reivindicou depósitos-escada, revelando seu pedaço do segredo, recebe q moedas como compensação. Isso implica que, quando o aborto ocorre após a saída ter sido descoberta por algum conluio, todos os participantes honestos recebem essa compensação. Essas características fazem a construção escada ser monetariamente justa.
Analisamos formalmente a justiça da construção escada no lema a seguir e no corolário subsequente.
Lema 7.102 (Estado final da construção escada). Para todo i∈ {1,··· ,m}, se Pié honesto, então,
no final da construção escada (i.e., após a rodada τm) temos que:
(i) O depósito-escada
Pi+1−−−−−−−−−−−−→Pedaços1,···,Pedaçosi
i·q,τi
Pi
foi reivindicado, assim como o depósito logo abaixo Pi−−−−−−−−−−−−−→Pedaços1,···,Pedaçosi−1 (i−1)·q,τi−1 Pi−1 , se i6= 1, ou
(ii) Nenhum depósito-cobertura foi creditado e, para todo j∈ {i + 1,··· ,m − 1}, o depósito- escada Pj+1−−−−−−−−−−−−→Pedaços1,···,Pedaçosj j·q,τj Pj
também não foi creditado (ou seja, os depósitos- escada acima de
Pi+1−−−−−−−−−−−−→Pedaços1,···,Pedaçosi
i·q,τi
Pi
).
Demonstração. Para i = 1, como P1 é honesto por hipótese, ele reivindica o depósito
depositP2P1qτ1Pedaços1e a propriedade (i) se verifica no final da execução. Para i6= 1, vamos
considerar os casos em que o depósito-escada
Pi−−−−−−−−−−−−−→Pedaços1,···,Pedaçosi−1
(i−1)·q,τi−1
Pi−1
, que nesse caso existe, foi ou não reivindicado.
Se Pi−1reivindicou esse depósito, então o conjunto{Pedaços1,··· ,Pedaçosi−1} foi publi-
cado e, em particular, é conhecido por Pi. Portanto, tudo o que Piprecisa para montar o
conjunto{Pedaços1,··· ,Pedaçosi} e reivindicar o depósito
Pi+1−−−−−−−−−−−−→Pedaços1,···,Pedaçosi
i·q,τi
Pi
é
7.3. CONSTRUÇÃO ESCADA NO MODELO FCR-HÍBRIDO 126
o valor Pedaçosi, o qual ele possui. Como Pié honesto, ele segue o protocolo e reivindica
esse depósito. Com isso, no fim da execução, temos que a propriedade (i) se verifica.
Se Pi−1nãoreivindicou esse depósito, Pinão pode reivindicar
Pi+1−−−−−−−−−−−−→Pedaços1,···,Pedaçosi
i·q,τi
Pi porque não conhece todo o conjunto{Pedaços1,··· ,Pedaçosi−1}. Nesse caso, nenhum
participante aprende o valor Pedaçosi. Sem o conhecimento de Pedaçosi, nenhum depósito- cobertura pode ser reivindicado. Além disso, nem o depósito
Pi+1−−−−−−−−−−−−→Pedaços1,···,Pedaçosi
i·q,τi
Pi
, nem qualquer outro acima dele pode ser reivindicado. Nesse caso, ao fim da execução, temos que a propriedade (ii) se verifica.
Com o lema anterior, podemos estabelecer também o seguinte corolário.
Corolário 7.103 (Justiça da construção escada). Ao final da execução da construção escada: (i) Todos os participantes honestos recebem todos os elementos de Pedaços sem pagar
nenhuma penalidade, ou
(ii) Os participantes honestos que não revelaram seus pedaços têm seus investimentos reem- bolsados. Além disso, cada participante honesto que revelou seu pedaço é compensado com q moedas,
concluindo que a construção escada é monetariamente justa . Demonstração. Vamos analisar os dois casos:
(i) Um participante honesto Pisó pode receber todos os elementos de Pedaços se os depósitos-
cobertura e, consequentemente, os escada, forem creditados. Nesse caso, se i6= m, seu saldo final será valor(i· q) (valor recebido no depósito-escada reivindicado) - valor((i − 1)· q) (valor pago no seu depósito-escada) - q (valor pago no depósito-cobertura) = 0. Se i= m, seu saldo final será valor((m− 1) · q) (valor recebido nos (m − 1) depósitos- cobertura) - valor((m− 1) · q) (valor pago no seu depósito-escada) = 0.
(ii) Se o participante honesto Pi, não revelou seu pedaço (Pedaçosi), então, pelo Lema 7.102,
nem os depósitos-escada envolvendo Pinem os depósitos-cobertura foram creditados. Por
isso todo o investimento feito por Pi é reembolsado. Por outro lado, se Pi, com i6= m,
revelou seu pedaço3, então seu saldo final será valor(i· q) (valor recebido no depósito- escada reivindicado) - valor((i− 1) · q) (valor pago no seu depósito-escada) + (q-q) (valor investido e reembolsado no seu depósito-cobertura4) = q.
3Se i= m, teríamos que propriedade (i) se verificaria, pois se P
mrevela seu pedaço então todos os pedaços são
revelados.
4O depósito-cobertura precisar ser reembolsado, pois se não o fosse, a lista Pedaços seria revelada e a propriedade
O Corolário 7.103 estabelece que a construção escada é monetariamente justa. Uma das exigências da Definição 5.95 é que uma compensação seja paga aos participantes honestos caso a justiça tradicional seja quebrada, ou seja, caso um conluio desonesto obtenha a saída do protocolo e aborte. A construção escada vai um pouco além. Participantes honestos podem ser compensados na ocorrência de qualquer aborto, mesmo que ninguém reconstrua a saída e, portanto, a justiça (tradicional) não seja quebrada. No entanto, a construção escada só garante que todos os participantes honestos sejam compensados se a justiça (tradicional) for, de fato, quebrada.
Abordaremos a segurança dessa construção mais adiante.