• Aucun résultat trouvé

Sandrine Delouille * , Isabelle Boisseau **

2. De l'intervention de l'ORM : le rôle d'une expertise régionale

Com as definições de EVCSm,m e da versão estendida de uma funcionalidade, a redução

da computação segura e justa à reconstrução justa de um segredo dividido torna-se intuitiva. Como antecipamos de maneira introdutória, vamos dividir a computação segura e justa de uma funcionalidade f em duas etapas, de acordo com a definição a seguir.

Definição 6.99 (Computação segura e justa através da reconstrução justa). Seja f uma m- funcionalidade (tradicional) e z a saída de f para seus participantes quando computada sobre uma entrada qualquer. A computação segura e justa de f pode ser conduzida nas duas etapas a seguir:

E1. (Divisão de z em pedaços.) Os m participantes se engajam na computação segura (com tolerância ao aborto) de ˆf. Ao final desta etapa, de acordo com a Definição 6.98, para todo i∈ {1,··· ,m}, Pirecebe(Etiquetas, Pedaçosi).

E2. (Reconstrução de z.) Os m participantes se engajam em uma computação multilateral monetariamente justa para reconstrução de z. A entrada de cada participante nessa computação é seu pedaço de z recebido na etapa E1. Como a computação deve ser monetariamente justa, os participantes lidarão com moedas nesta etapa.

Como ˆf é uma funcionalidade tradicional, a etapa E1 da Definição 6.99 pode ser condu- zida de acordo com o resultado estabelecido pelo Teorema 4.89. Ressaltamos que, nessa etapa, todo aborto é considerado prematuro, isto é, não pode causar a quebra da justiça (tradicional) de f . De fato, um aborto na etapa E1 pode apenas quebrar a justiça de ˆf, fazendo com que alguns participantes recebam seus pedaços de z e outros não. No entanto, devido às propriedades do EVCSm,m utilizado em ˆf, esses pedaços não são suficientes para reconstruir a saída z. Por-

tanto, a justiça de f fica trivialmente protegida porque, ao final de E1, nenhum subconjunto de participantes pode reconstruir z.

Por outro lado, um aborto na etapa E2 pode, de fato, quebrar a justiça tradicional de f . Por isso ela precisa ser conduzida de maneira monetariamente justa.

A Definição 6.99 estabelece a redução que nos propomos a apresentar: uma funcionali- dade f pode ser computada de maneira segura e justa desde que a etapa E2 também o possa. Por isso, tudo o que precisamos fazer para computar f de maneira justa é resolver o problema da

reconstrução justa de um segredo. Apresentaremos, nos próximos capítulos, duas estratégias de resolução deste problema tendo o Bitcoin como plataforma.

118 7 RECONSTRUÇÃO JUSTA ATRAVÉS DA CONSTRUÇÃO ESCADA

Como discutimos no Capítulo 6, a computação justa de uma funcionalidade f qualquer se reduz a reconstrução justa de um segredo dividido. Neste capítulo apresentaremos uma estratégia para condução de reconstrução justa, a chamada construção escada. Discutiremos também sua correção e segurança e apresentaremos uma implementação baseada no Bitcoin.

7.1 Visão Geral

Como discutido no capítulo anterior, na etapa E2 de reconstrução da Definição 6.99, cada participante Pide uma m-funcionalidade f possui o elemento Pedaçosie a lista Etiquetas,

resultantes da aplicação do algoritmo Divide de um EVCSm,m à saída de f . O objetivo dessa

etapa é que cada participante consiga toda a lista Pedaços.

A construção escada é a proposta para reconstrução justa apresentada em BENTOV e KUMARESAN (2014). A unidade básica desse protocolo é a funcionalidade especial fcr para

crédito-ou-reembolso (claim-or-refund). Ela viabiliza o depósito, ou transferência, condicional de moedas entre dois participantes. Para reivindicar o depósito, o destinatário deve fornecer uma entrada que satisfaça um circuito lógico ϕ especificado pelo remetente. Nesse caso dizemos que o depósito foi creditado ou reivindicado. Se isso não acontecer antes de uma rodada τ, especificada pelo remetente, o depósito é reembolsado e o remetente recebe suas moedas de volta.

Representamos graficamente uma chamada à fcr para realizar uma transferência de c

moedas de Pipara Pj, com uma rodada limite τ e um circuito ϕ como:

 Pi−→ϕ

c,τ Pj

 .

A construção escada faz diversas chamadas à funcionalidade fcr, divididas em duas

etapas: a dos depósitos-escada (ladder deposits) e a dos depósitos-cobertura (roof deposits). Se mé a quantidade total de participantes, então m−1 depósitos-escada e m −1 depósitos-cobertura são realizados.

Nos depósitos-escada, para todo i∈ {1,··· ,m − 1}, o participante Pi+1utiliza fcrpara

transferir i· q moedas para Pisob a condição de Pisatisfazer o circuito ϕi+1,icom o conjunto

{Pedaços1,··· ,Pedaçosi} até a rodada τi. O valor q é uma multa por aborto preestabelecida. O

objetivo desses depósitos é possibilitar a revelação gradual dos elementos de Pedaços de modo que, no final da rodada τm−1, o participante Pmpossua todos esses elementos.

Os depósitos-cobertura, por sua vez, devem ser creditados na rodada τm. Neles, para

todo i∈ {1,··· ,m − 1}, o participante Pi utiliza fcr para transferir q moedas para Pm sob a

condição do circuito ϕmser satisfeito. Esse circuito, por sua vez, só é satisfeito pelo conjunto de

participantes recebem a lista Pedaços completa e conseguem, portanto, reconstruir a saída. Por outro lado, se Pmnão reivindicá-los, nenhum participante (honesto) consegue reconstruí-la.

De maneira semelhante ao que já havíamos definido, representamos graficamente uma chamada à fcrem que Pitransfere q moedas para Pjsob a condição de Pj apresentar o conjunto

{Pedaços1,··· ,Pedaçosj} até a rodada τ como

 Pi Pedaços1,···,Pedaçosj −−−−−−−−−−−−→q,τ Pj  ,

e usamos essa notação para esquematizar os depósitos escada e cobertura na Figura 7.1. Nela, os depósitos são enumerados de acordo com a ordem em que são feitos. A ordem dos depósitos- cobertura, no entanto, não é muito importante.

Como esquematizamos na Figura 7.1, cada depósito-escada tem a forma



Pi+1−−−−−−−−−−−−→Pedaços1,···,Pedaçosi

i·q,τi

Pi 

. Para reivindicá-lo, o participante Pi precisa (i) do seu próprio pe-

daço (Pedaçosi) e (ii) do conjunto{Pedaços1,··· ,Pedaçosi−1}. A única maneira honesta de obter

(ii) é através do depósito-escada imediatamente “abaixo”, isto é,  Pi−−−−−−−−−−−−−→Pedaços1,···,Pedaçosi−1 (i−1)·q,τi−1 Pi−1  . Por essa razão, um depósito-escada só pode ser creditado quando o logo abaixo dele também o for. Aplicando essa dependência repetidamente, concluímos que um depósito-escada só pode ser creditado quando todos os abaixo dele também o forem.

Quando Pi reivindica



Pi+1−−−−−−−−−−−−→Pedaços1,···,Pedaçosi

i·q,τi

Pi 

, ele fica temporariamente com um saldo positivo de q moedas1. Se a reconstrução continuar de maneira honesta, esse saldo é perdido no depósito-cobertura  Pi−−−−−−−−−−−−→Pedaços1,···,Pedaçosm q,τm Pm 

e Pi termina a execução com saldo

zerado. No entanto, se algum depósito “acima” de 

Pi+1−−−−−−−−−−−−→Pedaços1,···,Pedaçosi

i·q,τi

Pi 

não for creditado, significando que houve um aborto, então Pitermina a execução com esse mesmo saldo positivo,

pois os depósitos-cobertura são reembolsados. Portanto, a noção de justiça da construção escada é compensar, no caso da ocorrência de um aborto, todos os participantes que publicaram seu pedaço do segredo através da reivindicação de um depósito-escada. Isso acontece mesmo que o adversário não tenha conseguido reconstruir a saída e, portanto, não tenha quebrado a justiça tradicional.

Outro ponto relevante da construção escada é que, se Pmfor honesto, ou todos recebem o

valor reconstruído ou ninguém recebe. Nesse caso, a decisão do adversário de abortar ou não é independenteda saída do protocolo.

1Justificativa: se i= 1, P

1 recebe q moedas no depósito

 P2 Pedaços1 −−−−−→q,τ 1 P1 

e não tem qualquer gasto. Se i6= 1, Pi gasta (i− 1) moedas no depósito

 Pi Pedaços1,···,Pedaçosi−1 −−−−−−−−−−−−−→ (i−1)·q,τi−1 Pi−1 

e recebe i· q moedas no depósito  Pi+1 Pedaços1,···,Pedaçosi −−−−−−−−−−−−→ i·q,τi Pi