블록체인(block chain), 스마트 컨트랙(smart contract)

이나원·2022년 4월 1일
0

블록체인

목록 보기
4/6

블록체인(block chain)

블록체인은 데이터베이스로, 데이터가 블록에 있고, 블록들이 해시를 통해 연결 되어있다.

  • 블록체인이 바로 비트코인, 이더리움 등등을 돌아가게 하는 기반이다.

  • 블록체인은 말그대로 블록들이 모여있는 체인이다. 여기서 블록이라는 것을 개발자의 시점에서 본다면 데이터베이스를 이야기 할 수 있다. 즉, 블록체인은 데이터베이스인 것!

  • 블록체인은 append = 더하기만 가능하다. 블록체인은 삭제, 편집이 안되고, 오직 추가만 가능한 데이터베이스 이다.

  • 또, 블록체인은 decentralization = 탈중앙화가 가능하다. 탈중앙화라는 것은 특정 개인이 데이터베이스를 관리할 수 없다는 뜻이다.

  • 모두가 데이터베이스의 복제본을 가지고 있기 때문에 분산된 데이터 베이스라고 할 수 있고, 이러한 특징 때문에 크립토를 감시하거나 통제하기가 힘들다.

  • 너무 많은 사람들이 비트코인 노드를 돌리고 있고, 그 모두가 정확하게 동일한 데이터베이스 복제본을 가지고 있기 때문에, 그 모두가 컴퓨터를 몽땅 꺼야지 비트코인이 죽을 수 있는 것이다. => 즉, 이런 일은 불가능하다는 것

  • 때문에 암호화폐들이 정부의 감시나 통제에 대응할 수 있는 것이다.

  • 블록에 대해 자세히 살펴보면, 블록은 정보를 데이터베이스에 추가하는 방법이다. 데이터를 그냥 적어서 추가하는 것이 아니라, 블록이라는 것으로 추가한다.

  • 비트코인의 경우 10분마다 블록이 생성된다. 블록에는 중요한 정보들이 많은데, 예를 들어 블록의 해시, 이전 블록의 해시, 데이터가 있다.

  • 여기서 데이터라 함은, 비트코인의 경우 트랜잭션 = 거래내역 들이다. 누가 얼마를 가지고 있고, 누가 누구에게 얼마를 보냈고 등등의 내용들이 데이터 부분에 저장되어있는 것이다.

  • 해시는 수학 함수로, 한 개의 인풋을 받으면 아웃풋을 준다. 해시의 핵심은 결정론적이며, 일방향 함수이라는 점이다.

  • 결정론적이라는 말은, 어떤 인풋에 대한 아웃풋은 항상 같은 것으로 정해져있다는 의미이다.

  • 일방향 함수라는 말은, 인풋을 통해 아웃풋을 얻을 수 있지만, 반대로 아웃풋을 가지고 인풋을 얻을 수는 없다는 의미이다.

  • 이것이 블록들이 서로 연결된 방법이고, 이것이 블록의 체인을 만드는 것이다.

  • 블록을 블록체인에 추가 하고 싶다면, 데이터(결제 내역)을 모아서 넣고, 이전 블록의 해시도 모아서 넣고, 데이터이전 블록의 해시를 합쳐서 다시 해시하면 나만의 블록의 해시가 생기게 된다. 이렇게 해서 블록체인에 블록을 추가할 수 있다.

  • 이전 블록의 해시를 이용해서 다시 해시하는 작업을 거치기 때문에 체인이 결성되는 것이고, 덕분에 누구도 블록체인 변경을 할 수 없는 것이다.


스마트 컨트랙 (smart contract)

  • 비트코인은 그냥 비트코인을 주고 받는 것외에는 다른 사람들과 교류할 수 없다.

  • 스마트 컨트랙을 통해면 다른 사람들과 교류할 수 있고, 코드로 소통할 수 있다.

  • 이를 통해서 탈중앙화 앱(dApp)을 만들 수 있다. 개발자가 코딩을해서 그걸 공유 네트워크에 올릴 수 있다는 것이다.

  • 내 코드를 공유 네트워크(주인이 없는 백엔드)에 올리면, 그곳에 영원히 있게 되고, 사람들은 볼 수 있지만 변경할 수는 없다는 특징이 있다. 공유 네트워크가 블록체인의 안정성을 구축한채 나의 코드를 실행하고, 검증한다.

  • 어떤 것을 만들 수 있냐면, 예를 들어 자신만의 은행 계좌를 만들 수 있다. 2가지 방침이 있는 스마트 컨트랙을 쓸 수 있다.

  • 첫째로, 돈을 저축하고 기기에 보관한다. 둘째로, 일정 시간이 흐른 뒤 나에게 돌려준다. 이걸 스마트 컨트랙을 통해 할 수 있고, 블록체인에 올리면 아무도 수정 못하기 때문에 잘 보관될 것이고, 차곡차곡 스마트 컨트랙을 통해 저축할 수 있는 것이다. 일정 시간이 흐르면 코드가 집행되고 돈이 나에게 돌아오는 것이다.

  • 에어비앤비도 예시로 들 수 있는데, 결국 방 주인과 나의 거래라는 점 때문이다. 에어비앤비라는 중개인 대신에 스마트 컨트랙에 돈을 보내면 IoT 기술을 이용해 문을 열어준다던지 할 수 있는 것이다.

  • 이런 것들이 바로 스마트 컨트랙이 할 수 있는 일이다. 우리의 코드를 탈중앙화된 네트워크에 올릴 수 있고, 아무도 수정할 수 없다.

  • 스마트 컨트랙에도 단점이 존재하는데, 바로 원하는 소스를 다 활용할 수 없다는 것이다.

  • 결국 해당 블록체인 네트워크 위에서만 실행 가능하고, 신뢰 기반이 아닌 특수한 네트워크, 환경을 요구한다는 것이다. 누군가 조작할 수 있는 인풋은 허용할 수 없다는 의미이다.

  • 이를 보완할 수 있는 것이 oracle 오라클이라고 스마트 컨트랙에게 인풋을 제공하는 역할을 한다. 오라클은 신뢰 기반의 데이터를 특수 네트워크에 가져온다는 것이다.

  • 결론적으로, 스마트 컨트랙은 우리의 코드를 가져다가 모두가 공유, 검증, 실행하지만 수정은 할 수 없는 백엔드에 올리는 것이다. 덕분에 중개인이 필요없어지는 것이다.

  • 규칙을 빠짐없이 실행할 스마트 컨트랙을 만들고, 정부나 단체에 조종당할 염려없이, 네트워크에 의하여 빈틈없이 실행될 것이다. 스마트 컨트랙을 지원하는 블록체인은 정말 많다.

profile
프론트엔드 개발자로 재직 하면서 겪은 개발 과정을 기록하는 곳입니다 🙌

0개의 댓글