본문 바로가기

Blockchain

블록체인 시간복잡도 뇌피셜

이 글은 뇌피셜 덩어리입니다.
혹시라도 스쳐 지나가게 되신다면 저의 뇌피셜에 무수한 반박을 주시길 ( 진짜 모름 )

블록체인이 링크드리스트라면 ( 아직 이것도 모르겠음 커뮤니티에서 링크드리스트가 아니라 하고 일단 내가 보기엔 링크드리스트임 )
마지막 블록을 조회를 하게 될때의 시간복잡도는 O(N)이다.

시간복잡도 0(N)인 블록체인이 어떻게 보면 무한으로 추가가 되는데 이걸 조회를 하게 되면 엄청 느려지게 되는것이 아닌가?
에 대한 첫번째 뇌피셜 물음에 어떤사람이 블록체인은 링크드리스트로 구현된게 아니라  머클트리로 구현이 되어 있다 카더라 통신

그래서 머클트리를 구글링 좀 하니까 거래에 대한 검증을 하는 바이너리 트리를 구현한 것 같아 보였다.
ㅇㅋ 좋다 머클트리로 거래에 대한 검증을 하니까 시간복잡도는 O(logN) 으로 획기적으로 줄였다.

이제 다시 내 뇌로 돌아와 그림을 그렸다.

뇌가 그린 그림.jpeg

머클트리로 거래에대한 검증을 하는거 좋다 이말이야
근데 결국 저 위에 파란색은 링크드 리스트가 아닌가?
링크드 리스트라면 결국 마지막 블록을 조회하는데 O(N)
링크드 리스트가 아니라면 뭐임?

이제 마지막 뇌피셜까지 왔다
링크드 리스트라면 마지막 블록을 조회하는데 O(N)이 맞는거 같다.
그럼 느리네?
근데 마지막 블록을 조회해야 할 이유가 없음
마지막 블록을 조회해야 할 이유를 못찾겠음

결국 거래 트랜잭션은 머클트리의 형태로 저장되게 되고 그것만 검증이 되면 됨

뇌피셜 끝..

에서 마무리가 되어야 했으나
오피셜이 떳음

이더리움 기준
블록체인 링크드 리스트로 따로 관리하는건 없고 생성되는 대로 DB에 저장
메모리상 캐싱되는것만 따로 관리
결국 블록 검색 = 링크드리스트가 아닌 DB에서 쿼리