Questão de Segurança da Informação — Blockchain e Smart Contracts (Contratos Inteligentes) — CESPE / CEBRASPE 2025
Segurança da Informação›Blockchain e Smart Contracts (Contratos Inteligentes)
Código
ce418091
Banca
CESPE / CEBRASPE
Órgão
PC DF
Ano
2025
Cargo
GAAPC ( )
No que se refere a UX (user experience), blockchain, design de software e gerenciador de transições distribuídas, julgue o item a seguir.
Nas transações distribuídas, o processo two-phasecommit verifica a prontidão dos gerenciadores de recursos antes de confirmar ou reverter uma transação em caso de falha.
CCerto
EErrado
Revelar gabarito e comentário▾
GabaritoC — Certo
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
Two-Phase Commit (2PC) em transações distribuídas
✅ CERTO. O item está correto: o protocolo two-phase commit (2PC) é exatamente o mecanismo que, em transações distribuídas, coordena os gerenciadores de recursos locais em duas fases — primeiro verificando se todos estão prontos para confirmar (fase de preparação) e, somente se todos responderem positivamente, confirmando a transação; caso algum falhe ou não responda, a transação é revertida (rollback) em todos os participantes. Essa é a essência do 2PC, amplamente descrita na literatura de sistemas distribuídos e bancos de dados.
O two-phase commit é um protocolo de atomicidade usado para garantir que uma transação distribuída — que envolve múltiplos nós, bancos de dados ou gerenciadores de recursos — seja tratada como uma unidade indivisível: ou todos os participantes confirmam (commit) ou todos revertem (rollback). O nome vem das duas fases que o coordenador executa:
Fase de preparação (votação): o coordenador envia uma mensagem de prepare a todos os participantes (gerenciadores de recursos) e aguarda suas respostas. Cada participante executa as operações locais da transação, registra as informações necessárias em um log (para permitir recuperação) e responde com "sim" (pronto para confirmar) ou "não" (não é possível confirmar).
Fase de decisão (commit/abort): se todos os participantes responderem "sim", o coordenador envia a ordem de commit para todos; se qualquer um responder "não" ou não responder dentro de um tempo limite, o coordenador envia a ordem de abort (rollback) para todos.
O objetivo central é evitar o problema da inconsistência parcial: sem o 2PC, um nó poderia confirmar a transação enquanto outro falhasse, deixando os dados em estado divergente. O 2PC garante que, mesmo em caso de falha de um participante, a decisão final seja uniforme — todos confirmam ou todos revertem.
Um exemplo concreto: imagine uma transferência bancária entre duas contas em bancos diferentes (sistemas distribuídos). O coordenador (o sistema que orquestra a transferência) pergunta ao banco A e ao banco B se ambos conseguem debitar e creditar os valores. Se ambos responderem "sim", o coordenador ordena o commit nos dois; se o banco B falhar (por exemplo, saldo insuficiente), o coordenador ordena o abort nos dois, e nenhuma alteração é efetivada. Assim, a transação é atômica.
A pegadinha que a banca poderia explorar é confundir o 2PC com outros protocolos de consenso ou com o conceito de blockchain, que é um sistema distribuído sem um coordenador central — no blockchain, a validação é feita por consenso entre os nós (ex.: Proof of Work, Proof of Stake), não por um coordenador que pergunta a prontidão. Mas a questão fala especificamente de "transações distribuídas" e "gerenciadores de recursos", que é o contexto clássico do 2PC em bancos de dados distribuídos.
Guarde a distinção: o 2PC é um protocolo de atomicidade para transações distribuídas com um coordenador; o blockchain usa consenso distribuído sem coordenador central. A questão cobra exatamente a definição do 2PC, e a afirmação está correta.
1Coordenador envia prepare
2Participantes votam sim/não
3Todos sim → commit
4Algum não → rollback
LEVEL · soulevel.com.br
Item — ✅ CERTO
A afirmação descreve com precisão o funcionamento do two-phase commit: ele verifica a prontidão dos gerenciadores de recursos (fase de preparação) antes de confirmar (commit) ou reverter (rollback) a transação em caso de falha. Não há erro conceitual — o termo "prontidão" corresponde à resposta de "sim" ou "não" que cada participante dá ao coordenador. Portanto, o item está certo.