본 게시물은 멋쟁이사자처럼 '[블록체인] 나만의 NFT 생성부터 판매까지' 강의를 듣고 개인 공부용으로 작성되었음을 알립니다.

블록은 크게 거래정보와 이전블록에 대한 정보를 가지고 있다.

기존의 IT는 중앙집권화된 서버가 존재하고 서버로부터 데이터를 받아서 사용자가 사용하는 구조이다. 하지만 블록체인은 누구나 노드를 운영할 수 있는 개인과 개인의 결제 시스템을 만들수 있다.
노드라는 블록체인을 운영하는 컴퓨터가 서로 나눠가지면서 하나의 블록체인 네트워크를 형성하고 있다.
탈중앙화, 보안성, 투명성, 확장성
51% attack: 수학적으로 51% 네트워크 파워를 차지하면 블록체인 데이터를 조작할 수 있다는 이론이지만 현실적으로는 어렵다. 네트워크를 차지함으로써 얻을 수 있는 가치가 없음.
탈중앙화 : 노드를 운영할 수 있으면 누구나 참여할 수 있다. 소수의 누군가가 악의적인 행동을 펼칠수 없다.
투명성 : 누구나 노드를 운영할 수 있다는 것은 누구나 블록을 볼 수 있다는 의미이다.
확장성 : 데이터 뿐만 아니라 기술 자체도 오픈소스로 공개되어 있다. 누구나 참여자가 될 수 있으나 경험에 따라 더 좋은 블록체인을 만들어 낼 수 있다.


머클루트 해시값이라고 한다.
블록에는 머클루루트의 이외에도 블록체인의 소프트웨어 버전, 연결성을 지니기 위한 이전 블록 해시값, 그리고 체글을 위한 블록 생성 시간, 난이도, 논스 값을 가지고 있습니다.
채굴은 마이닝이라고도 부르는데, 생성된 블록을 검증해 나가는 과정을 채굴이라고 부릅니다.

일명 Nonce 찾기라고 부르는데, 우리가 생성한 블록에는 소프트웨어 버전, 이전 블록, 해시, 블록 생성시간, 난이도, 논스, 머클루루트 해시값 등 다양한 값이 내포되어 있습니다. 이러한 데이터들을 해시 함수로 돌리면 랜덤한 값이 출력이 될 것입니다.
해시 값은 Input 값의 극히 일부만 변경되더라도 결과 값이 달라지게 됩니다. 이러한 특징을 활용해서 특정한 논스 값을 찾을 것입니다.
예를 들어 난이도가 4인 블록이 있다면 우리는 해시 결과값으로 앞에 네 자리가 0인 논스 값을 찾는 것입니다. Nonce를 1번부터 넣고 순차적으로 해시 함수를 돌리게 되면 언젠가는 앞에 자리가 0인 논스 값을 찾을 수 있게 되는 것입니다.
비트코인에서는 이러한 채굴 행위를 통해서 생성되는 블록의 시간을 10분으로 맞춰 두었습니다. 블록이 생성될 때마다 비트코인에서는 난이도 조정에 들어가게 됩니다.
블록 생성 시간이 10분이 넘게 걸렸을 경우는 난이도를 낮추고 반대로 10분 이하일 경우에는 난이도를 상승시키는 것입니다.
이렇게 생성된 블록은 블록체인에 안착이 되고 다른 노드들에게 전파됨으로써 블록체인의 생태계는 유지되는 것입니다. 이러한 검증 방식을 Proof of Work (pow)라고 부릅니다.

Proof of Stake(Pos)는 지분 증명 방식입니다. 블록을 검증하는 방식을 지분을 통해 결정하는 것입니다.
라고 생각할 수 있는데 POW는 네트워크 지분과 통화가 분리되어 있고 POS는 네트워크 지분이랑 통화가 모두 가상 화폐로 이루어지게 된다.
네트워크 지분이랑 통화가 같다는 의미는 기존의 자본주의 체제랑 크게 다르지 않다는 말이다.
소수의 사용자가 토큰을 독점하게 되면 POW에서 말한 51%의 공격처럼 네트워크를 망칠 수 있는 여지가 있다.


비트코인에서는 가장 많이 블록을 생성한, 즉 가장 블록 길이가 긴 것을 정식 블록으로 인정하기로 하였습니다.
만일 악의적인 노드 운영자가 longest 체인(가장 긴 체인)을 만들어 낸다면 블록체인 생태계에 문제가 생기는 것이고, 이 때문에 51% 공격도 가능하다.
롱기스트 체인 이외에 노드에서 생성된 블록들은 고아 블록이라고 한다. 고아 블록에 생성되는 트랜잭션의 대부분은 롱기스트 체인이 만들어지는 과정에서 거의 다 포함이 된다.
이때 블록 생성이 빠르게 진행된다면 고아 블록의 생성 확률과 유실되는 트랜잭션 수가 증가하므로 비트코인의 채굴 속도는 느려지게 된다.
비트코인에서 말한 개인대 개인 전자 화폐 시스템과는 전혀 다른 내용으로 차세대 스마트 컨트랙트와 탈중앙화된 어플리케이션 플랫폼
비트코인은 블록체인이란 기술을 대표하는 기술이지만 시용적인 측면에서는 많은 한계점을 가지고 있었습니다. 그러한 부분들을 개선해서 나온 2세대 블록체인 이더리움이 출현하게 되었다.
단순한 결제 시스템을 넘어서 플랫폼적인 성격을 특징을 띄고 있다.

블록체인 기술을 활용해 제3의 인증기관 없이 개인 간 계약이 이루어질 수 있도록 하는 기술

한쪽은 돈을 지불해야 하고, 한쪽은 집을 제공해야 하는 상황입니다. 기존의 계약은 중계인을 거쳐서 진행했었습니다.
하지만 스마트 컨트랙트는 코드에 계약 내용이 명시되어 있고, 해당 내용은 한번 저장이 되면 수정 불가능한 블록체인에 기록되기 때문에 계약 중계인 없이도 계약을 체결할수 있게 만들어 줍니다.
튜링 완전하다: 어떠한 컴퓨터를 질문을 통해 사람인지 컴퓨터인지 구분을 해 낸다면 튜링 완전하다고 부릅니다
즉 내가 누군가에게 보내긴 하지만 특정한 조건을 부여해서 그 조건이 달성되었을 때만 전송을 할 수 있다는 의미이다.

스마트 컨트랙트의 서비스를 이용하기 위해서는 Dapp이라 불리는 탈중앙화된 어플리케이션이 있어야 합니다.
Dapp을 알기 위해서는 기존의 it 서비스의 생태계에 대해서 살펴볼 필요성이 있습니다.
기존의 it 서비스의 형태는 중앙화된 서버에서 데이터를 받아 서비스 제공자인 ISP가 뿌려주는 형태였습니다. 이와 비교해서 Dapp은 서비스를 블록체인으로부터 제공을 받게 됩니다.
즉 블록체인으로부터 서비스를 제공받는 어플리케이션들을 Dapp이라고 지칭하게 되는 것입니다. Dapp의 가장 특징은 서비스에도 블록체인 특징이 반영되어 있다는 점입니다.

Dapp의 특징을 잘 나타낼 수 있는 서비스로 DeFi(Decentralized Finance)가 있습니다. DeFi는 한글로 직역하면 탈중앙화 금융이라고 수 있습니다.
이와 반대되는 개념은 Centralized Finance, CeFi라고 부르게 됩니다. 기존의 금융 기관들입니다.
가상 화폐는 탈중앙화 되어 있더라도 그 돈을 중앙화된 기간이 운용을 한다면 기존의 금융 체계에서 발생한 문제가 똑같이 발생할 수 있습니다. DeFi는 이러한 문제점을 해결하기 위해서 등장했습니다. DeFi는 말 그대로 코드로 돌아가는 은행이라고 봐도 무방합니다.

저와 개발자가 와이튜브라는 동영상 플랫폼 서비스를 개발했다고 가정해 보겠습니다.
열심히 개발을 진행했고 콘텐츠 제공자들이 콘텐츠를 올려주고 사용자들이 이용해서 결국엔 큰 회사에 매각될 수 있었습니다.
이때 기존의 체계에서는 저와 개발자들에게는 충분한 보상이 주어지지만 이 플랫폼 서비스를 성공시켰다고 볼 있는 콘텐츠 제공자들과 사용자들에 보상은 없다시피 하거나 회사의 손에 달려 있었습니다.
만약 이러한 서비스를 다오로 구축했다면 스마트 컨트랙트의 콘텐츠 제공자와 사용자들에 대한 보상에 관한 내용을 만들어 두어 모두가 성공할 있게 만드는 구조인 것입니다.
이렇게만 이야기를 들으면 다오가 굉장히 좋게만 느껴지지만 다오는 하나의 딜레마를 가지고 있습니다. 특정한 누군가가 토큰을 독점한다면 기존의 자본주의 체제랑 다르지 않게 된다.
이 점과 반대로 개발자, 콘텐츠 제공자, 사용자가 모두 공평하게 토큰을 나눠 있다면 책임 소재가 불분명해진다는것이 딜레마이다.