Jump to content
과거의 기술자료(읽기 전용): https://tech.devgear.co.kr ×
과거의 기술자료(읽기 전용): https://tech.devgear.co.kr

블록체인, 알아야 할 모든 것


Recommended Posts

 

블록체인은 분산 거래장부(Distributed Ledger)를 표현하기 위한 용어이다. 블록체인은 분산성과 불변성을 갖춘 데이터 저장 시스템을 구축할 때 사용된다. 반드시 언급해야 하는 주요 특징은 아래와 같이 정리할 수 있다. 

불변성 - 블록체인 데이터 저장소 즉 거래장부(Ledger)에 한번 기록된 데이터는 영원히 변경되지 못한다. 예를 들어 관계형 데이터베이스는 보안 수준이 아무리 높아도 시스템에 있는 데이터를 액세스하고 수정하는 작업이 가능하다. 

하지만 블록체인 시스템에서는 데이터 비트 하나라도 변경되면 무조건 유효하지 않은 상태로 처리된다. 데이터는 다양한 시스템에 분산되어 있기 때문에 올바른 상태의 검증된 데이터가 제공될 수 있다. 

분산성 - 신뢰(Trust)의 핵심이다. 당신이 보고 있는 데이터가 블록체인 안에 들어있고, 유효한 상태라면 당신은 데이터가 정확하다고 믿을 수 있다. 이 신뢰가 바로 핵심이다. 신뢰는 블록 체인 시스템이 데이터 저장을 인터넷 상의 여러 호스트에 복제하기 때문에 성립된다. 예를 들어, 동일한 데이터를 가지고 있는 다른 호스트들이 해당 데이터 비트가 유효하다고 인정하는 한, 당신은 그 시스템에 저장된 그 데이터를 완전히 신뢰할 수 있다. 

블록체인에서 신뢰는 필수조건이다. 

  • 불변성 - 신뢰 
  • 분산 - 유효/무효 

 

블록체인을 사용함으로써 어떻게 신뢰 문제를 해소할 수 있을까? 

많은 산업 분야에서 신뢰 문제가 있다. 그 중 자동차 산업 역시 신뢰 또는 신뢰 부족이 문제를 일으킨다. 추적 정보를 잘 공유하지 않는 국가에서 중고차를 수입한다면, 자동차의 관리와 이력에 대한 데이터를 속이기가 더 쉬울 것이다. 예를 들어, 주행 거리 기록 사기는 차량의 가치에 심각한 영향을 미치는 문제이다. 차량의 총 주행 거리를 50,000마일이 아니라 5,000마일로 조작하면, 파악된 잠재 수명과 가치가 크게 달라지게 된다.

많은 국가에서, 차량 서비스 기록은 대부분 종이 서류로 되어 있다. 당연히 매우 쉽게 가짜를 만들 수 있다.

한번 상상해보자. 모든 서비스 업체를 하나의 블록체인에 밀어 넣고 측정된 모든 정보를 그 블록 체인에 보관한다면 어떻게 될까? 블록체인 데이터의 무결성과 불변성 특징으로 인해 기록 수정이 있으면 탐지될 것이다. 게다가, 보험 회사 등에서 사고 이력을 상세히 제공하게 되면 차량의 이력에 대해 훨씬 더 완전하게 파악할 수 있다. 지금은 사실 상 정직하지 않은 판매상이 속이는 것을 알아내기가 매우 어렵거나 심지어 불가능하다. 

 

금융 업계가 블록체인에 대한 신뢰 문제를 안고 있는 이유는 무엇일까? 

누군가에게 국제 송금을 하면 시간이 걸리고 비용도 많이든다. 이는 서로 다른 여러 규정이나 정책을 준수해야 하기 때문이다. 

송금인의 은행은 해당 기록을 업데이트 한 후 해당 국가의 주요 교환 협정 은행에 전송한다. 이 과정에서 기록은 여러 시스템을 거치면서 다양한 무역 금지 조치를 준수하고 있는지, 자금 세탁 용도는 아닌지 분석된다. 이 과정들을 통과하고 나면, 송금한 금액이 다른 나라의 교환 협정 은행으로 발송된다. 그리고 다시 한 번 기록을 업데이트한 후 수취인의 은행 계좌로 입금된다. 고도로 자동화된 지금도, 입금 완료까지는 며칠이 소요될 수 있다. 

비트코인이 전통적인 오프라인 금융 산업의 대안을 제시하는 곳이 바로 여기이다. 우리는 그저 컴퓨터를 사용하여 수취인의 비트코인 지갑 주소를 알려주고 자금을 보내기만 하면 된다. 중간에 거쳐야 할 대상이 없고 시간이 오래 걸릴 것도 않는다.

블록체인을 요약하자면: 

  • 모든 블록체인 데이터를 보관하는 데이터 저장소를 거래장부(Ledger)라고 부른다. 
  • 거래장부에 있는 각 기록을 거래(Transaction)라고 부른다. 
  • 거래는 시간이 찍힌 후, 블록 그룹에 저장된다. 
  • 어떤 것도 업데이트하거나 삭제할 수 없다. 쓰기는 한 번만 가능하고, 그 후에는 읽기 전용(read-only)이 된다. 
  • 거래장부는 암호화 알고리즘을 사용해 불변하도록 구현되어 있다. 
  • 중요한 점은 거래장부가 여러 노드에 의해 복제된다는 점이다. 바로 이 점이 블록체인이 분산 거래장부 기술(Distributed Ledger Technology)로 불리는 이유이다. 

 

블록체인은 어떻게 무결성을 달성하고 유지하는가? 

블록체인은 대용량 데이터 파일 하나를 가져와 해시 함수를 이용해 고유한 “다이제스트(Digest)”를 계산한다. 그런 다음 해시 값과 함께 그 대용량 데이터 파일을 수신 상대방에게 전송한다. 수신자 시스템은 전송 과정에 해당 파일의 내용이 변경되지 않았는지 확인하기 위해 받은 해시를 다시 계산한다. 

여러 표준 해시 함수 구현이 활용되는데, 예를 들어 SHA256은 256비트 해시 값을 생성한다. 즉 2의 256제곱 개의 조합을 만든다.

더 나아가, 블록체인은 데이터 암호화 및 복호화에 사용되는 암호화 시스템인 공개 키(Public Key) 암호화를 활용한다. 먼저, 특수 키 쌍인 “공개(public)” 키와 “개인(private)” 키를 생성한다. 이 키 값들은 두 개의 큰 소수를 사용하는 수학 방정식을 바탕으로 생성된다. 일단 암호화가 되고 나면, 필수 키 쌍이 있어야만 암호 해독이 가능하다. 전송단 양 끝에 공개 키(Public Key)가 있는데, 이는 데이터 암호화에 사용된다. 사용자만 가지고 있는 개인 키(Private Key)는 다른 사람에게 임의로 전송하거나 만들어 낼 수 없는 키이며, 발송자의 개인 키는 수신자의 공개 키(Public Key)와 함께 사용되어 데이터를 암호화한다. 수신을 받는 쪽(Receiving end)은 발송자의 공개 키와 수신자의 개인 키를 사용하여 데이터를 해독한다. 이처럼 해시 값 트랜젝션과 결합되면 안전성은  엄청나게 높아진다. 

공개 키 암호화는 호스트 간의 보안 연결을 구축을 위해 사용되며, 코드 서명의 용도로 사용되기도 한다. 

 

블록체인의 데이터 구조 

블록체인 시스템에서, 데이터는 트랜젝션(Transaction) 블록에 저장된다. 사실상 타임스탬프가 찍힌 트랜젝션의 거대한 로그이며, 이 로그는 복수개의 피어 호스트로 복제된다. 

블록체인 네트워크가 신뢰성과 유효성을 모두 확보하려면, 노드 대부분이 손상되지 않아야 한다. 노드 중 51%가 손상되면, 네트워크가 해킹될 수 있고 무결성을 잃게된다. 블록체인은 문제가 발생한다면, 노드에서 발생할 것이라고 생각할 수 있지만, 여전히 안정성은 유지된다. 

  • 블록체인의 각 블록은 트랜젝션을 나타낸다. 
  • 사용자가 잘못된 해시 값을 포함하고 있는 블록을 추가하려고 하면, 여러 피어들이 해당 블록을 거부할 것이고 그 결과 블록체인에 포함되지 못한다. 

 

블록체인에 대해 어디에서 더 배울 수 있을까?

다음의 키워드에 관련된 흥미롭고 유용한 기술자료들이 많이 있다: 

  • Blockchain.com API 
  • Cryptography (암호화) 
  • Bitcoin (비트코인) 
  • 델파이와 Ethereum (이더리움) 
  • 스마트 계약 (Smart Contact)을 연동하기 
  • 등등 

 

What You Need To Make Charts With Blockchain.com API

 

Quick Dive Into Delphi And The BlockChain, Cryptography, BitCoin, and More

 

 

Delphi and the Blockchain: More than just Bitcoin and Cryptocurrency

 

 

11 Tutorials For Working With Ethereum From Delphi

검색 엔진에서 다음 키워드를 검색해보면, 블록체인에 대한 더 많은 정보를 얻을 수 있다:

  • 비트코인 채굴(Bitcoin mining)
  • Hyperledger Fabric concepts (개념)

 

블록체인, 암호 화폐에 대해 다룬 더 많은 기술자료들이 엠바카데로 블로그에 있다: https://blogs.embarcadero.com/?s=blockchain

 

 

이 댓글 링크
다른 사이트에 공유하기

이 토의에 참여하세요

지금 바로 의견을 남길 수 있습니다. 그리고 나서 가입해도 됩니다. 이미 회원이라면, 지금 로그인하고 본인 계정으로 의견을 남기세요.

Guest
이 토픽(기고/질문)에 답하기

×   서식있는 텍스트로 붙여넣기.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   이전에 작성한 콘텐츠가 복원되었습니다..   편집창 비우기

×   You cannot paste images directly. Upload or insert images from URL.

 공유하기

×
×
  • Create New...

중요한 정보

이용약관 개인정보보호정책 이용규칙 이 사이트가 더 잘 작동하기 위해 방문자의 컴퓨터에 쿠키가 배치됩니다. 쿠키 설정 변경에서 원하는 설정을 할 수 있습니다. 변경하지 않으면 쿠키를 허용하는 것으로 이해합니다.