
블록체인(Blockchain): 신뢰를 코드로 대체하는 기술
비트코인은 블록체인의 일부입니다. 이중 지불 문제(Double Spending), 작업 증명(PoW)과 지분 증명(PoS)의 차이, 스마트 컨트랙트, 그리고 Web 3.0이 가져올 미래까지. 개발자 관점에서 본 블록체인의 모든 것.

비트코인은 블록체인의 일부입니다. 이중 지불 문제(Double Spending), 작업 증명(PoW)과 지분 증명(PoS)의 차이, 스마트 컨트랙트, 그리고 Web 3.0이 가져올 미래까지. 개발자 관점에서 본 블록체인의 모든 것.
프론트엔드 개발자가 알아야 할 4가지 저장소의 차이점과 보안 이슈(XSS, CSRF), 그리고 언제 무엇을 써야 하는지에 대한 명확한 기준.

Debug에선 잘 되는데 Release에서만 죽나요? 범인은 '난독화'입니다. R8의 원리, Mapping 파일 분석, 그리고 Reflection을 사용하는 라이브러리를 지켜내는 방법(@Keep)을 정리해봤습니다.

내 서버가 해킹당하지 않는 이유. 포트와 IP를 검사하는 '패킷 필터링'부터 AWS Security Group까지, 방화벽의 진화 과정.

종이 문서의 서명을 디지털화했습니다. 공개키로 검증, 개인키로 서명. 위조 불가능, 부인 방지. 블록체인과 HTTPS의 기술.

우리가 친구에게 100만 원을 보낼 때, 사실 돈이 직접 날아가는 게 아닙니다. 은행의 데이터베이스(장부, Ledger)에서 내 잔고 숫자를 줄이고, 친구 잔고 숫자를 늘려주는 것이죠. "A가 B에게 100만 원 줌"이라는 기록을 은행이라는 신뢰할 수 있는 제3자(Trusted Third Party)가 관리해주기 때문에 가능한 일입니다.
그런데 만약 은행이 망하거나, 해킹당하거나, 장부를 조작하면 어떻게 될까요? 실제로 2008년 리먼 브라더스 사태로 촉발된 글로벌 금융 위기 때, 은행과 중앙 기관에 대한 신뢰는 바닥을 쳤습니다. 이때 익명의 개발자(혹은 그룹) 사토시 나카모토는 논문 하나를 발표하며 질문을 던졌습니다.
"중앙 서버(은행) 없이, 우리 모두가 똑같은 장부를 나눠 가지고 서로 검증하면 어떨까?"
이것이 블록체인의 핵심 아이디어, 분산 원장 기술(Distributed Ledger Technology)의 시작입니다. 블록체인은 단순히 가상 화폐가 아니라, "신뢰를 기술로(Code) 대체하는 혁명"입니다.
블록체인은 말 그대로 블록(Block)을 체인(Chain)처럼 연결한 것입니다.
은행 장부의 '페이지'라고 생각하면 됩니다. 일정 시간(비트코인은 10분) 동안 일어난 거래 내역들이 모여 하나의 블록을 만듭니다. 하지만 일반적인 장부와 다르게, 블록에는 아주 특별한 정보가 들어갑니다.
블록체인의 보안성은 해시 함수에서 나옵니다. 해시는 어떤 데이터를 넣든 고정된 길이의 문자열로 바꿔주는데, 데이터가 점 하나만 바뀌어도 결과가 완전히 달라집니다(눈사태 효과).
만약 해커가 100페이지 중 50페이지(50번 블록)의 거래 내역을 몰래 수정했다고 칩시다.
이 작업을 전 세계 네트워크의 51%가 눈치채기 전에 해야 합니다. 이는 물리적으로 거의 불가능합니다. 이것이 블록체인이 '해킹 불가능(Immutability)'하다고 불리는 이유입니다.
디지털 파일(mp3, jpg)은 복사가 쉽습니다. 1000원짜리 이미지를 친구에게 보내도 내 컴퓨터에 원본이 남아있습니다. 하지만 돈은 복사되면 안 됩니다. 내가 친구에게 1000원을 보냈으면 내 지갑에서는 사라져야 합니다. 이를 이중 지불 문제라고 합니다.
기존에는 은행(중앙 서버)이 이를 감시했습니다. 블록체인에서는 네트워크 참여자(Node) 모두가 감시자입니다. A가 B에게 1BTC를 보냈다는 사실을 모든 노드가 검증하고, 만약 A가 동시에 C에게도 1BTC를 보내려 하면, 네트워크 과반수가 "어? 아까 썼잖아!"라며 거절합니다.
그렇다면 누가 장부에 쓸 권한을 가질까요? 이 합의 방식에 따라 코인의 성격이 갈립니다.
비트코인은 단순히 "송금" 기능만 있는 계산기였습니다. 비탈릭 부테린이라는 천재 소년은 생각했습니다. "블록체인 위에 엑셀 매크로처럼 코드를 짤 수 있다면 어떨까?"
그래서 탄생한 것이 이더리움(Ethereum)입니다.
이더리움은 블록체인에 if-else 같은 로직을 저장하고 실행할 수 있습니다. 이것을 스마트 컨트랙트라고 합니다.
예를 들어: "만약(if) 내일 서울에 비가 오면, 내 지갑에서 1000원을 A에게 보낸다." 이 코드를 블록체인에 올리면, 누구도 이 약속을 깰 수 없고, 조건이 되면 자동으로(Automated) 실행됩니다.
이 기술 덕분에 NFT, DeFi(탈중앙화 금융), DAO(탈중앙화 자율 조직) 같은 다양한 응용 서비스가 가능해졌습니다.
코드를 공짜로 실행할 수는 없습니다. 네트워크를 유지하는 검증자(Validator)들에게 수고비로 가스비(Gas Fee)를 내야 합니다. 코드가 복잡할수록(CPU 연산이 많을수록), 네트워크가 붐빌수록 가스비는 비싸집니다.
블록체인은 만능이 아닙니다. 비탈릭 부테린은 블록체인이 가진 3가지 난제, 트릴레마(Trilemma)를 제시했습니다. 이 3가지를 동시에 만족하는 건 매우 어렵습니다.
비트코인과 이더리움은 탈중앙화와 보안성은 완벽하지만, 확장성이 떨어집니다. (비트코인 초당 7건 vs 비자카드 초당 2만 4천 건). 속도를 높이려고 노드 수를 줄이면(EOS, Solana 등), 중앙화에 가까워져서 "그럴 거면 그냥 DB 쓰지 왜?"라는 비판을 받습니다.
이 문제를 해결하기 위해 레이어 2가 등장했습니다. 가장 많이 쓰는 롤업(Rollup) 기술은, 수백 건의 거래를 밖에서 처리하고(Off-chain) 그 결과만 요약해서 메인 블록체인(On-chain)에 기록하는 방식입니다. 마치 모든 영수증을 모아서 하루 일과 끝날 때 장부에 한 줄 쓰는 것과 같습니다. (아비트럼, 옵티미즘, 폴리곤 등).
초기 인터넷(Web 1.0)은 '읽기'만 가능했습니다. 소셜 미디어 시대(Web 2.0)는 '읽기'와 '쓰기'가 가능했지만, 데이터의 소유권은 플랫폼 기업(구글, 페이스북)에게 있었습니다.
블록체인이 여는 세상(Web 3.0)은 '읽기', '쓰기', 그리고 '소유(Usage & Ownership)'의 시대입니다. 내가 만든 데이터, 내가 가진 아이템, 나의 신원 증명(DID)을 특정 기업의 서버가 아닌 블록체인에 기록하고, 내가 직접 소유합니다.
아직 투기(Speculation)와 거품이 껴있다는 비판도 많고, UX도 불편합니다. 하지만 그 기저에 있는 "신뢰를 기술로 대체하고, 개인에게 데이터 주권을 돌려준다"는 철학은 IT 역사상 가장 강력한 혁신 중 하나임이 분명합니다.
개발자라면 단순히 코인 가격만 볼 것이 아니라, 이 분산 시스템이 어떻게 합의하고 동기화하는지 그 아키텍처를 공부해보는 것을 추천합니다. 그곳에 분산 시스템의 정수가 담겨 있습니다.