합의 (컴퓨터 과학)분산 컴퓨팅과 다중 에이전트 시스템에서 프로세스들이 사용할 값을 하나로 결정하는 문제를 합의 문제 (Consensus Problem)라고 한다. 합의 적용의 사례는 데이터 베이스로의 트랜젝션 전송, 리더 식별자 일치화, 상태 기계 접근법, 아토믹 브로드캐스트가 있다. 실생활에서의 사례로는 시간 동기화, 의사 결정, 페이지랭크, 스마트 그리드, 상태 추정, 무인 항공기의 제어, 부하분산 등이 있다. 정의합의 문제 (Consensus Problem)는 어떤 자료 값에 대해 여러 프로세스들 (또는 에이전트들) 간의 일치성을 요구한다. 하지만 몇몇 프로세스들은 고장나거나 다른 이유로 인해 믿을 수 없게 될 수 있으며, 따라서 합의 프로토콜은 장애 허용이거나 복원력이 있어야 한다. 장애를 허용하는 합의 프로토콜은 다음과 같은 속성을 지닌다.[1]
무결성에 대한 정의는 적용 방법에 따라서 적절하게 변형될 수 있다. 예를 들어, 일부 정상 프로세스가 제안했던 값과 동일한 값으로 결정하는 더 약한 무결성은 모든 정상 프로세스들의 제안 값을 필요로 하지 않는다. 무결성(Integrity)은 이 분야에서 유효성 (Validity)로 알려져있다.[1]
그 밖에도 메모리 사용량이나 메시지 크기 등이 성능 요인으로 포함된다. 합의 프로토콜비잔틴 장애를 허용하는 다항 시간 이진 합의 프로토콜의 예로는 Garay와 Berman에 의해 제안된 Phase King 알고리즘이 있다. 구글은 Chubby라고 불리는 분산 잠금 서비스 라이브러리를 구현했다. 비트코인은 P2P 네트워크에서 합의를 유지하기 위해 작업 증명을 사용하였다. 많은 P2P 온라인 실시간 전략 게임은 유저들 간에 게임 상태를 관리하기 위해 변형된 Lockstep 프로토콜을 합의 프로토콜로 사용한다. 같이 보기각주
|
Portal di Ensiklopedia Dunia