블럭체인 기술력에 있어서 알고리즘과 연관성이 있다고 하는데 알고리즘이 무엇인지 궁금합니다.
블럭체인과 알고리즘은 연관성이 있다고 하는데 블럭체인은 이해를 합니다.
그런데 알고리즘에 대해서는 이해가 부족합니다.
알고리즘이 어떤 기술력을 뜻하는 것인지 또한 알고리즘이 어떤 분야에 응용을 하고 있는지 궁금합니다.
답변주시면 감사하겠습니다.
안녕하세요.블록체인과 알고리즘에 대하여 답변드리겠습니다.
▣ 블록체인의 합의 시스템 - 알고리즘(Algorithm)
알고리즘은 어떤 일을 처리함에 있어 정해진 규칙이나 절차를 말합니다. 블록체인에서는 동등한 권한을 가진 BP노드간 데이터를 검증하고 블록을 생성하기 위한 합의 방법을 말하거나 채굴시 사용되는 데이터 암호화 기법을 말합니다.
블록생성 및 보상을 위한 대표적인 합의 알고리즘
작업증명 (PoW : Proof of Work)
① 주어진 수학문제를 가장 빨리 해독한 노드에게 보상이 주어지는 방식으로 채굴(마이닝)통해 보상을 받을 수 있게 됩니다.
② 이 때 강력한 연산력을 필요하기 때문에 우수한 성능의 채굴장비를 사용하는것이 유리하며 많은 해시파워를 보유한 노드가 더 많은 코인을 획득하게 되는 구조입니다.
③ 따라서 전력을 많이 필요로 하며 속도가 느린 단점이 존재합니다.
지분증명(PoS : Proof of Stake)
① 코인의 스테이킹 시기와 임의 추출과 노드의 상태등 복합적인 요소를 기준으로 난수에 의해
노드를 선출하여 블록을 생성할 노드를 선정하게 됩니다.
② 해시파워가 PoW 방식보다 많이 필요하지 않아 경제적 이점이 있습니다.
③ 그러나 보다 많은 코인을 스테이킹하고 확보한 노드가 블록생성 우선권을 가질 수 있으므로
시스템 중앙화(장악)의 우려가 있을 수 있습니다.
위임지분증명(DPoS : Delegated Proof of Stake)
① 블록을 생성할 수 있는 권한을 특정 소수의 노드에게 위임는 방식이며 투표를 통해 노드를
선출하게 됩니다.
② PoW 및 PoS검증보다 빠른 편이나 소수의 노드에 의한 중앙화의 우려가 있으며, 특히 투표권에 따른 해택을 제공할 수 있으므로 큰 자본을 가진 노드가 유리할 수 있는 문제가 생길 수 있습니다.
데이터를 검증하기 위한 대표적인 합의 알고리즘
비잔티 장애 허용 (BFT : Byzantine Fault Tolerance)
① 블록체인 네트워크에서 블록을 생산하는 블록생산자(BP노드)들간에 합의를 도출할 때 과연 신뢰있는 BP노드와 신뢰하지 않는 BP노드를 구분하고 어느정도 선에서 합의를 이룰 것인가에 대한 기준을 제시하기 위해 사용합니다.
채굴시 사용하는 암호화 알고리즘
SHA-256 : 비트코인, 비트코인캐시, 디지바이트 등
이더해시(Ethash) : 이더리움 및 이더리움 클래식
스크립트(Scrypt) : 라이트코인, 버지, 바이텀, 도지코인 등
X11 : 대시 등
블레이크2B(Blake2B) : 시아코인
이퀴해시(Equihash) : 비트코인골드, 지캐시, 코모도 등
감사합니다.
넓은 의미에서 알고리즘이라는 것은 어떠한 문제를 해결하거나 의도한 작업을 수행하기 위해 각종 명령어를 활용 구성하거나 특정한 개념의 과정을 규정하고 그 방법을 구체화시키고 정련한 순서화된 절차를 의미합니다.
이러한 알고리즘이 블록체인과 관련해서는 주로 합의 알고리즘으로 활용되는데, 이때 합의 알고리즘이란 블록을 생성할 노드를 무작위로 공정하게 선정하고 유효한 거래 내역을 블록에 기록하며 코인을 보상으로 지급하는 핵심적인 작업이 이루어지는 일련의 방법, 절차를 규정해 놓은 것이라고 할 수 있습니다.
구체적으로 살펴보면, 비트코인의 블록체인의 경우에 POW 합의 알고리즘을 채택하여 마이닝 노드로 하여금 작업을 하게 만듭니다. 그리고 그러한 작업에 본인이 가진 전기, 시간, 컴퓨팅 기기 등의 각종 자원을 투입하도록 합니다.
또한 비트코인은 POW 방식에 따른 연산으로 공정하게 블록 생성자를 선정하고 나머지 노드들이 블록 생성자가 찾아낸 해시 값을 검증한 다음에 블록을 생성하게 됩니다.
그렇기 때문에 잘못된 해시 값을 연산했거나 의도적으로 해시 값을 조작하는 경우 다른 노드들의 검증을 통과하지 못하기 때문에 악의적인 의도를 가지고 블록을 생성할 수 없게 됩니다. 따라서 거래의 신뢰성과 보안성이 높아진다고 할 수 있습니다.
또한 이러한 블록 생성 시간은 평균적으로 10분이라는 비교적 긴 시간 동안에 이루어지기 때문에 많은 자원 소비하게 되고 정직하게 연산을 하고 채굴 보상을 받으려는 신뢰할 수 있는 노드가 아니라면 참여하기 힘든 구조로 되어 있습니다. 이것 역시도 블록체인의 보안성을 높일 수 있는 하나의 방법이 됩니다.
이처럼 각종 자원을 투입하여 연산을 하고, 신뢰할 수 있는 거래를 할 수 있도록 하며, 거래 내역이 위변조되지 않고 저장되는 블록체인 네트워크에 기여를 하고 어렵게 받은 채굴 보상으로서, 비트코인이 경제적 가치를 가지게 될 수 있다는 점에서도 블록체인에서 합의 알고리즘이 중요하다고 말씀드릴 수 있겠습니다.
답변이 도움이 되길 바랍니다.