합의 알고리즘이란?
다수의 참여자들이 통일된 의사결정을 하기 위해 사용하는 알고리즘.
블록체인의 경우 통일된 의사결정을 내릴 수 있는 권위있는 중앙(Center)가 존재하지 않기 때문에, 이러한 상황에서 합리적이고 효율적인 의사결정을 내릴 수 있는 알고리즘이 필요함.
합의 알고리즘에서 고려해야 할 세 가지
1. Finality Problem (완결성 문제)
2. 51% Attack/BTF (51% 공격과 비잔틴 결함)
3. Transaction Cost (트랜잭션 수수료)
문제없는 노드 사이에서는 잘못된 합의가 이루어지지 않는다. 모든 정상적인 참여자는 같은 상태에 동의하여야 하고, 그 상태는 유효해야 한다.
문제없는 노드들은 반드시 합의를 한다. 시스템은 항상 살아 있어야 한다. 결국 어떤 상태에 동의해야 하고, 모든 참여자는 동의된 상태에 도달해야 한다.
그렇다면,
비동기 네트워크 내에서 Safety와 Liveness를 모두 완벽히 충족하는 합의 알고리즘이 있는가?
→ 없다 = FLP Impossibility (=FLP Theorem, Fischer, Lynch, and Paterson Impossibility)
💬 블록체인이 구동되는 네트워크는 '비동기 네트워크'다. 그렇다면 비동기 네트워크란?
네트워크는, 메시지 교환 시 발생하는 대기 시간 여부에 따라 세 가지로 나뉜다.
- 동기 네트워크(Synchronous Network): 어떤 메시지를 보내면, 정해진 시간 안에 반드시 응답이 도착하는 네트워크. 네트워크 사이에 데이터 통신이 ‘반드시’ 이루어져야 하는 경우 사용 (예: 비행기, 우주선의 통신)
- 비동기 네트워크(Asynchronous Network): 메시지가 수신 노드에 제대로 도착했는지 여부, 수신 노드가 응답하는데 걸리는 시간을 알 수 없는 네트워크. 특정 노드가 임의로 메시지를 전송하지 않거나 거짓 데이터를 전송하는 배신행위가 가능함. (예: 인터넷, 블록체인 네트워크)
- 부분 동기 네트워크(Partial synchronous Network): 노드와 노드 사이에 메시지가 도달하는 것은 보증하지만, 언제 도달할지는 알 수 없는 네트워크.
잘못된 합의가 이루어질 수 있지만 어떻게든 합의는 한다.
(=나카모토 합의, Nakamoto Consensus)
합의가 잘못된 가능성이 있다면 블록을 만들지 않는다.
블록체인의 기본 속성인 비가역성을 표현하는 말로, 거래는 절대 되돌려질 수 없고 수정될 수 없는 성질을 의미 (신용카드로 결제하면 바로 결제가 되는 것.)
확률적 완결성과 절대적 완결성 간의 절충에 대해서 생각해보자.
💬 CAP 정리
“Cheap, Fast, and Good: Pick Two”
분산 컴퓨터 시스템에서, Consistency(일관성), Availability(가용성), Partition Tolerance(파티션 허용) 세 가지 조건을 모두 만족하는 것이 불가능하다는 것을 증명한 정리.
- 일관성: 모든 클라이언트가 동시에 동일한 데이터를 볼 수 있음. 데이터가 하나의 노드에 기록될 때마다 이 데이터가 ‘성공’으로 간주되기 전에 시스템의 다른 모든 노드로 즉시 전달되거나 복제되어야 함.
- 가용성: 하나 이상의 노드가 작동 중지된 경우에도 데이터를 요청하는 클라이언트가 응답을 받음. 모든 작업 중인 노드는 예외 없이 모든 요청에 대해 유효한 응답을 리턴함.
- 파티션 허용: 파티션(= 분산 시스템 내 통신 단절 = 두 노드 간의 연결 유실) 시스템 내 노드 간에 다수의 통신 단절에도 불구하고 클러스터가 계속해서 작동해야 함.
CFT (Crash Fault Tolerance) : 분산시스템에서 노드가 비정상적인 충돌에 의해 문제가 생기더라도, 나머지 시스템에서 서비스를 할 수 있게 작동하는 작동방식
BFT (Byzantine Fault Tolerance): 더욱 복잡하고 악의적인 공격이 있을 수 있는 시스템에 적용된다. 비트코인의 경우 CFT, BFT 보다 높은 수준의 신뢰작업을 필요로 한다. 이것이 바로 PoW이다.
💬 비잔티움 장군 문제
배신자가 있는 상황에서는 여러 장군들이 받은 명령을 진실이라고 확정하기 어렵다는 것을 비유한 말. 분산 컴퓨터 시스템에서 일부 노드의 장애와 해킹 공격이 있으면 시스템을 안정적으로 운영하기 어렵다는 원리를 설명한다. (1982년 논문에서 처음 등장)
✔️ 처리절차
✔️ 장점
✔️ 단점
기존의 BFT: 동기식 네트워크에서만 합의가 가능
PBFT: 비동기 네트워크에서 합의를 이룰 수 있게 한 합의 알고리즘
✔️ 처리절차
✔️ 장점
✔️ 한계
✔️ 장점
https://www.breitengrad66.de/backups/small-sex-dolls-dynamic-design-how-flexibility-meets-personal-style/
https://lavozdelbecario.es/backups/choosing-the-right-material-for-your-small-sex-doll-silicone-vs-tpe-explained/
https://www.surrenales.com/backups/how-mini-sex-doll-aesthetics-are-changing-the-game-for-personalisation/
https://chrisfallows.com/backups/the-ultimate-showdown-mini-sex-dolls-vs-traditional-sex-toys-which-reigns-supreme/
https://graduatetacoma.org/WPPS-backups/smart-mini-sex-dolls-the-next-level-of-realistic-intimacy-is-closer-than-you-think/
https://www.theblackcabcoffeeco.com/backups/small-sex-dolls-and-emotional-attachment-how-to-keep-your-life-in-check/
https://home.gamer.com.tw/profile/index.php?&owner=minidolls
https://www.gaiaonline.com/profiles/minidolls/46988562/