체인 알고리즘 편집하기

이동: 둘러보기, 검색

경고: 로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다. 로그인하거나 계정을 생성하면 편집자가 아이디(ID)으로 기록되고, 다른 장점도 있습니다.

편집을 되돌릴 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 저장해주세요.
최신판 당신의 편집
1번째 줄: 1번째 줄:
'''체인 알고리즘'''(chain algorithm)이란 다수의 거래기록을 암호화하여 체인(chain)처럼 연결함으로써 위변조를 방지하고 탈중앙 분산 저장 방식으로 데이터를 관리하는 [[알고리즘]]이다. [[블록체인]]은 가장 대표적인 체인 알고리즘이고 위변조 방지, 탈중앙 분산 저장 등 많은 장점을 가지고 있으나, [[트랜잭션]] 처리 속도가 느리고 다른 블록체인과 연결이 어렵다는 단점이 있다. 이를 개선하기 위해 [[라이트닝 네트워크]], [[플라즈마]], [[플라즈마캐시]], [[사이드체인]], [[더블체인]], [[인터체인]] 등이 출현했으나 여전히 일정한 한계를 가지고 있다. 한편 블록체인 자체를 벗어난 새로운 대안적 알고리즘으로 [[탱글]], [[해시그래프]] 등이 등장하고 있다.
+
'''체인 알고리즘'''(chain algorithm)이란 다수의 거래기록을 암호화하여 위변조를 방지하고 탈중앙 분산 저장 방식으로 데이터를 관리하는 [[알고리즘]]이다. [[블록체인]]은 가장 대표적인 체인 알고리즘이고 위변조 방지, 탈중앙 분산 저장 등 많은 장점을 가지고 있으나, 트랜잭션 처리 속도가 느리고 다른 블록체인과 연결이 어렵다는 단점이 있다. 이를 개선하기 위해 [[라이트닝 네트워크]], [[플라즈마]], [[플라즈마캐시]], [[사이드체인]], [[더블체인]], [[인터체인]] 등이 출현했으나 여전히 일정한 한계를 가지고 있다. 한편 블록체인 자체를 벗어난 새로운 대안적 알고리즘으로 [[탱글]], [[해시그래프]] 등이 등장하고 있다.
  
 
== 개요 ==
 
== 개요 ==
체인(chain)이란 이전 블록의 [[해시]]가 다음 블록의 한 구성요소가 되는 방식으로 여러 블록이 마치 쇠사슬처럼 서로 연결된 것을 말한다. 체인으로 연결된 데이터 구조는 [[연결리스트]](linked list) 방식과 유사하다. [[데이터베이스]]를 구성하는 여러 [[노드]]들이 시간 순서에 맞게 일렬로 늘어서서 체인으로 연결된 모양을 가지고 있다. 기존 연결리스트 [[자료구조]]에서는 이전 노드의 주소와 다음 노드의 주소를 표시한 [[포인터]]를 별도로 가지고 있었으나, 블록체인과 같은 자료구조에서는 [[해시]](hash) 자체가 각 노드를 연결하는 주소의 역할을 한다.
+
체인(chain)이란 이전 블록의 [[해시]]가 다음 블록의 한 구성요소가 되는 방식으로 여러 블록이 마치 쇠사슬처럼 서로 연결된 것을 말한다. 체인으로 연결된 데이터 구조는 [[연결 리스트]](linked list) 방식과 유사하다. [[데이터베이스]]를 구성하는 여러 [[노드]]들이 시간 순서에 맞게 일렬로 늘어서서 체인으로 연결된 모양을 가지고 있다. 기존 연결 리스트 [[자료구조]]에서는 이전 노드의 주소와 다음 노드의 주소를 별도로 가지고 있었으나, 블록체인과 같은 자료구조에서는 해시 자체가 각 노드를 연결하는 주소의 역할을 한다.
  
블록체인과 그것을 개선한 다양한 체인들은 하나의 노드가 이전 노드의 [[해시]] 하나만 가지고 있다. 하지만 블록체인의 대안으로 출현한 [[탱글]](tangle)과 [[해시그래프]](hashgraph)의 경우 하나의 노드가 이전 노드 2개에 대한 해시를 가지고 있다. 탱글과 해시그래프는 연결리스트와 같은 구조가 아니라 여러 노드들이 서로 복잡하게 뒤얽혀 있는 모양을 가지고 있다. 탱글과 해시그래프는 기존 블록체인이 가지고 있었던 위변조 방지 및 탈중앙 분산 저장이라는 특징을 그대로 유지하면서도 [[트랜잭션]] 속도를 획기적으로 개선할 수 있는 새로운 대안으로 떠오르고 있다.
+
블록체인과 그것을 개선한 다양한 체인들은 하나의 노드가 이전 노드의 [[해시]](hash) 하나만 가지고 있다. 하지만 블록체인의 대안으로 출현한 [[탱글]](tangle)과 [[해시그래프]](hashgraph)의 경우 하나의 노드가 이전 노드 2개에 대한 해시를 가지고 있다. 탱글과 해시그래프는 연결 리스트와 같은 구조가 아니라 여러 노드들이 서로 복잡하게 뒤얽혀 있는 모양을 가지고 있다. 탱글과 해시그래프는 기존 블록체인이 가지고 있었던 위변조 방지 및 탈중앙 분산 저장이라는 특징을 그대로 유지하면서도 거래의 처리 속도를 획기적으로 개선할 수 있는 새로운 대안으로 떠오르고 있다.
  
 
== 블록체인과 그 대안 ==
 
== 블록체인과 그 대안 ==
11번째 줄: 11번째 줄:
  
 
블록체인은 여러 가지 장점에도 불구하고 중대한 단점을 가지고 있는데, 바로 "처리 속도가 매우 느리다"는 문제가 있다. 하나의 거래가 발생하면 즉시 처리하지 못하고 다수의 거래내역이 모여 하나의 블록을 구성할 때까지 기다려야 하며, 블록이 구성된 이후에도 [[네트워크]]에 분산된 여러 [[노드]]들이 검증하고 확인할 때까지 오랜 시간 기다려야 하는 문제가 있다. 예를 들어, [[비트코인]]의 경우 하나의 새로운 블록을 구성하려면 약 10분이 걸리고, 그 블록이 네트워크에서 확인을 받으려면 1시간 이상 기다려야 하는 경우도 자주 발생하고 있다. 그에 따라 비트코인 등 블록체인 기반의 암호화폐를 일상생활에서 결제수단으로 사용하는 것은 사실상 불가능하다. 비트코인 등 [[암호화폐]]를 가치의 저장수단으로 이용할 수는 있어도 일상생활에서 결제수단으로 사용하기 어려운 것은 블록체인이라는 알고리즘 자체의 한계 때문이다.
 
블록체인은 여러 가지 장점에도 불구하고 중대한 단점을 가지고 있는데, 바로 "처리 속도가 매우 느리다"는 문제가 있다. 하나의 거래가 발생하면 즉시 처리하지 못하고 다수의 거래내역이 모여 하나의 블록을 구성할 때까지 기다려야 하며, 블록이 구성된 이후에도 [[네트워크]]에 분산된 여러 [[노드]]들이 검증하고 확인할 때까지 오랜 시간 기다려야 하는 문제가 있다. 예를 들어, [[비트코인]]의 경우 하나의 새로운 블록을 구성하려면 약 10분이 걸리고, 그 블록이 네트워크에서 확인을 받으려면 1시간 이상 기다려야 하는 경우도 자주 발생하고 있다. 그에 따라 비트코인 등 블록체인 기반의 암호화폐를 일상생활에서 결제수단으로 사용하는 것은 사실상 불가능하다. 비트코인 등 [[암호화폐]]를 가치의 저장수단으로 이용할 수는 있어도 일상생활에서 결제수단으로 사용하기 어려운 것은 블록체인이라는 알고리즘 자체의 한계 때문이다.
 
블록체인을 구성하는 하나의 블록(block)은 최대 크기가 정해져 있어서 확장성(scalability) 문제가 생기고 있다. 초기에 블록체인 사용자 수가 많지 않았을 당시에는 블록 사이즈 제한이 큰 문제가 되지 않았다. 하지만 블록체인 사용자 수가 폭발적으로 증가하면서, 하나의 블록 안에 담을 수 있는 데이터의 최대 한도를 초과하는 경우가 발생하고 있다. 예를 들어 [[비트코인]]의 경우 블록 하나의 최대 크기가 2MB로 제한되어 있기 때문에, 하나의 블록당 대략 2천 건 정도의 [[트랜잭션]]을 기록하면 더 이상 기록할 공간이 부족한 문제가 발생한다. 이 경우 해당 트랜잭션은 블록에 기록되지 못하고 뒤로 밀리게 된다. 물론 더 높은 수수료를 지급하면 순서에 상관없이 맨 앞으로 이동하여 블록에 먼저 기록될 수 있으나, 이로 인해 수수료 인플레이션이 발생할 수 있다. 비트코인의 경우 2017년 8월 1일자로 사용자의 디지털 서명 부분을 블록에 기록하지 않고 제외함으로써 한 블록당 더 많은 해시 데이터를 저장할 수 있도록 [[세그윗]](SegWit)이라는 일시적 조치를 취함으로써 잠시 숨을 돌리기는 하였으나, 근본적인 문제는 여전히 해결되지 않고 남아 있다. 블록 자체의 사이즈를 4MB 또는 8MB로 계속 증가시키자는 제안도 있으나 그로 인해 미사용 공간을 낭비하게 되고, 전체 블록체인이 무겁고 느려지는 문제가 생길 수 있다.
 
  
 
=== 블록체인의 개선 ===
 
=== 블록체인의 개선 ===
블록체인의 느린 속도와 확장성 문제를 해결하기 위해 일부 기능을 개선한 새로운 [[알고리즘]]이 출현하고 있다. [[라이트닝 네트워크]](lightning network)는 기존 블록체인의 느린 속도를 해결하고 번개처럼 빠른 속도를 구현하기 위해, 개별 거래를 별도의 채널에서 처리한 후 그 결과만 블록체인에 기록하는 방식으로 작동하는 알고리즘이다. 이와 유사한 방식으로 [[플라즈마]](plasma) 알고리즘이 개발되었다. 모든 거래내역을 메인체인(main chain)에서 처리하지 않고 별도의 차일드체인(child chain)에서 처리한 후 결과만 메인체인에 전달하는 방식으로 작동하는 알고리즘이다. 플라즈마를 개량하여 [[플라즈마캐시]](plasma cash) 알고리즘이 등장했다. 기존처럼 모든 사용자가 모든 블록을 다운로드해서 검증하지 않고, 개별 사용자가 관심을 가진 특정 코인이 포함된 블록만 추적함으로써 처리 속도를 향상시킨 알고리즘이다. 이런 새로운 알고리즘의 등장으로 기존 블록체인의 느린 속도 문제를 개선하고 좀 더 빠른 속도를 기대할 수 있게 되었다.
+
블록체인의 속도 문제를 해결하기 위해 일부 기능을 개선한 새로운 [[알고리즘]]이 출현하고 있다. [[라이트닝 네트워크]](lightning network)는 기존 블록체인의 느린 속도를 해결하고 번개처럼 빠른 속도를 구현하기 위해, 개별 거래를 별도의 채널에서 처리한 후 그 결과만 블록체인에 기록하는 방식으로 작동하는 알고리즘이다. 이와 유사한 방식으로 [[플라즈마]](plasma) 알고리즘이 개발되었다. 모든 거래내역을 메인체인(main chain)에서 처리하지 않고 별도의 차일드체인(child chain)에서 처리한 후 결과만 메인체인에 전달하는 방식으로 작동하는 알고리즘이다. 플라즈마를 개량하여 [[플라즈마캐시]](plasma cash) 알고리즘이 등장했다. 기존처럼 모든 사용자가 모든 블록을 다운로드해서 검증하지 않고, 개별 사용자가 관심을 가진 특정 코인이 포함된 블록만 추적함으로써 처리 속도를 향상시킨 알고리즘이다. 이런 새로운 알고리즘의 등장으로 기존 블록체인의 느린 속도 문제를 개선하고 좀 더 빠른 속도를 기대할 수 있게 되었다.
  
한편 새로 만든 암호화폐의 경우 도입 초기에는 네트워크에 참여하는 사용자 수가 현저히 적기 때문에 데이터 위변조 공격에 취약한 문제가 생길 수 있다. 이른바 [[51% 공격]]을 방어하기 위해, 신생 코인의 경우 자체로 독립적인 블록체인을 가지는 것보다는 이미 많은 사용자들이 참여하고 있는 기존 블록체인에 자신의 거래내역만 추가하는 방식이 더 유리할 수 있다. 이러한 체인을 [[사이드체인]](side chain)이라고 한다. 사이드체인은 [[플랫폼]] 코인에 해당하는 [[이더리움]], [[큐텀]], [[넴]], [[엘프]], [[에이치닥]] 등 메인체인 옆에 나란히 붙어서, 기존 메인체인의 노드에 자신의 노드를 추가하는 방식으로 작동한다.
+
한편 새로 만든 암호화폐의 경우 도입 초기에는 네트워크에 참여하는 사용자 수가 현저히 적기 때문에 데이터 위변조 공격에 취약한 문제가 생길 수 있다. 이른바 [[51% 공격]]을 방어하기 위해, 신생 코인의 경우 자체로 독립적인 블록체인을 가지는 것보다는 이미 많은 사용자들이 참여하고 있는 기존 블록체인에 자신의 거래내역만 추가하는 방식이 더 유리할 수 있다. 이러한 체인을 [[사이드체인]](side chain)이라고 한다. 사이드체인은 [[플랫폼]] 코인에 해당하는 [[이더리움]], [[넴]], [[엘프]] 등 메인체인 옆에 나란히 붙어서, 기존 메인체인의 노드에 자신의 노드를 추가하는 방식으로 작동한다.
  
 
=== 다른 블록체인과 연결 ===
 
=== 다른 블록체인과 연결 ===
블록체인 기술이 널리 확산되면서 다양한 암호화폐가 출현하고 각자의 독립적인 체인을 구축하였으나, 다른 체인과 데이터 전달이 되지 않는 불편함이 존재한다. 이를 해결하기 위해 더블체인과 인터체인 등 다른 블록체인과 연결하기 위한 알고리즘이 개발되었다. [[더블체인]](double chain)이란 퍼블릭 블록체인과 프라이빗 블록체인을 연결한 체인이다. 예를 들어, 보안이 중요한 가정용 [[사물인터넷]](IoT) 기기는 프라이빗 블록체인(private blockchain)을 이용하고, 자동화된 결제를 위해 퍼블릭 블록체인(public blockchain)에 연결하는 방식이다. [[인터체인]](interchain)이란 다른 [[블록체인]]들을 서로 연결하기 위한 체인이다. 인터체인을 사용하면 A라는 암호화폐로만 구매할 수 있는 제품이나 서비스를 인터체인으로 연결된 B라는 다른 암호화폐로도 구매할 수 있다. 인터체인을 구현하기 위한 암호화폐에는 [[아이콘]](ICON)과 [[아이온]](AION) 등이 있다.
+
블록체인 기술이 널리 확산되면서 다양한 암호화폐가 출현하고 각자의 독립적인 체인을 구축하였으나, 다른 체인과 데이터 전달이 되지 않는 불편함이 존재한다. 이를 해결하기 위해 더블체인과 인터체인 등 다른 블록체인과 연결하기 위한 알고리즘이 개발되었다. [[더블체인]](double chain)이란 퍼블릭 블록체인과 프라이빗 블록체인을 연결한 체인이다. 예를 들어, 보안이 중요한 가정용 [[사물인터넷]](IoT) 기기는 프라이빗 블록체인(private blockchain)을 이용하고, 자동화된 결제를 위해 퍼블릭 블록체인(public blockchain)에 연결하는 방식이다. [[인터체인]](interchain)이란 다른 [[블록체인]]들을 서로 연결하기 위한 체인이다. 인터체인을 사용하면 A라는 암호화폐로만 구매할 수 있는 제품이나 서비스를 인터체인으로 연결된 B라는 다른 암호화폐로도 구매할 수 있다. 인터체인을 구현하기 위한 암호화폐에는 [[아이콘]](Icon)있다.
  
 
=== 블록체인의 대안 ===
 
=== 블록체인의 대안 ===
28번째 줄: 26번째 줄:
  
 
== 종류 ==
 
== 종류 ==
{{:체인 알고리즘 종류}}
+
* '''[[블록체인]]'''(blockchain) : 다수의 거래 기록을 묶어 블록을 구성하고, [[해시]]를 이용하여 여러 블록을 체인처럼 연결한 뒤, 다수의 사람들이 복사하여 분산 저장하는 [[알고리즘]]이다. [[비트코인]]의 창시자인 [[사토시 나카모토]]가 처음 개발했다.
 +
* '''[[라이트닝 네트워크]]'''<!--라이트닝네트워크-->(lightning network) : 기존 [[블록체인]]의 느린 속도를 해결하고 번개처럼 빠른 속도를 구현하기 위해, 개별 거래를 별도의 채널에서 처리한 후 그 결과만 블록체인에 기록하는 방식으로 작동하는 [[알고리즘]]이다.
 +
* '''[[플라즈마]]'''(plasma) : 모든 거래내역을 메인체인에서 처리하는 블록체인과 달리, 메인체인(또는 루트체인)에 나뭇가지처럼 이어진 차일드체인에서 사전에 수집된 정보들을 처리한 후 결과만 루트체인에 전달함으로써 처리 속도를 향상시킨 [[알고리즘]]이다. [[비탈릭 부테린]]과 [[조셉 푼]]이 공동 개발했다.
 +
* '''[[플라즈마캐시]]'''<!--플라즈마 캐시-->(plasma cash) : 모든 사용자가 모든 거래내역을 복사하여 관리하던 기존의 [[블록체인]]이나 [[플라즈마]] 알고리즘과 달리, 개별 사용자가 관심을 가진 특정 코인이 포함된 블록만 추적함으로써 처리 속도를 향상시킨 [[알고리즘]]이다. 이더리움을 창시한 [[비탈릭 부테린]]과 [[댄 로빈슨]], [[칼 플로어쉬]] 등이 공동 개발하고 있다.
 +
* '''[[사이드체인]]'''<!--사이드 체인-->(sidechain) : [[플랫폼]] 코인에 해당하는 [[이더리움]], [[넴]], [[엘프]] 등의 메인체인 옆에 나란히 붙어서 작동하는 체인을 말한다.<ref>유성민 칼럼니스트, 〈[http://www.sciencetimes.co.kr/?news=%EB%8C%80%EC%95%88-%EC%B2%B4%EC%9D%B8%EA%B3%BC-%EC%82%AC%EC%9D%B4%EB%93%9C-%EC%B2%B4%EC%9D%B8%EC%9D%80-%EB%AD%98%EA%B9%8C 대안 체인과 사이드 체인은 뭘까]〉, 《사이언스타임즈》, 2018-03-20</ref> 사이드체인만의 독립된 노드를 구성하지 않고, 기존 메인체인의 노드에 사이드체인의 노드가 추가되는 방식으로 작동한다.
 +
* '''[[더블체인]]'''<!--더블 체인-->(double chain) : 퍼블릭 블록체인과 프라이빗 블록체인을 연결한 체인이다. 예를 들어, 보안이 중요한 가정용 [[사물인터넷]](IoT) 기기는 프라이빗 블록체인을 이용하고, 자동화된 결제를 위해 퍼블릭 블록체인에 연결하는 방식이다. [[㈜더블체인]]<!--더블체인-->의 [[전삼구]] 대표가 제안한 개념이다.<ref>성지은 기자, 〈[http://news.inews24.com/php/news_view.php?g_serial=1083307&g_menu=020830&rrf=nv 이제는 더블체인…"퍼블릭-프라이빗 블록체인 연결"]〉, 《아이뉴스24》, 2018-03-19</ref>
 +
* '''[[인터체인]]'''<!--인터 체인-->(interchain) : 다른 [[블록체인]]들을 서로 연결하기 위한 체인이다. 인터체인을 사용하면 A라는 암호화폐로만 구매할 수 있는 제품이나 서비스를 인터체인으로 연결된 B라는 다른 암호화폐로도 구매할 수 있다. 인터체인 방식의 [[암호화폐]]는 한국의 [[㈜더루프]]<!--더루프-->가 개발한 [[아이콘]] 등이 있다.
 +
* '''[[탱글]]'''(tangle) : 기존 [[블록체인]]의 한계를 극복하고자 블록 자체를 없애고, 새로 발생한 거래가 이전에 발생한 2개의 거래를 확인해 주는 방식으로 작동하는 [[알고리즘]]이다. [[사물인터넷]](IoT) 시대의 [[M2M]]<ref>[[M2M]]이란 Machine to Machine의 약자로서, [[사물인터넷]](IoT) 시대를 맞이하여 기계와 기계가 인터넷을 통해 서로 정보를 주고받는 것을 말한다.</ref> 코인인 [[아이오타]](IOTA)에 사용된 알고리즘이다.
 +
* '''[[해시그래프]]'''<!--해시 그래프-->(hashgraph) : 기존 [[블록체인]]의 한계를 극복하고자 [[연결 리스트]] 방식이 아니라, 하나의 [[노드]]가 다른 불특정 노드에게 [[가십]](gossip)을 전달하는 방식으로 작동하는 [[알고리즘]]이다. 기존 블록체인의 장점인 위변조 방지 기능과 탈중앙 의사결정구조를 유지하면서도, 1초에 수십만 건 이상의 [[트랜잭션]]을 처리할 수 있다. [[리몬 베어드]](Leemon Baird)가 개발했다.
 +
 
 
{{각주}}
 
{{각주}}
  
 
== 같이 보기 ==
 
== 같이 보기 ==
 +
* [[알고리즘]]
 
* [[암호 알고리즘]]
 
* [[암호 알고리즘]]
 
* [[합의 알고리즘]]
 
* [[합의 알고리즘]]
39번째 줄: 47번째 줄:
 
* [[암호화폐]]
 
* [[암호화폐]]
  
{{알고리즘|좋은글}}
+
[[분류:알고리즘]]
 
 
[[분류:체인 알고리즘]]
 

해시넷에서의 모든 기여는 다른 기여자가 편집, 수정, 삭제할 수 있다는 점을 유의해 주세요. 만약 여기에 동의하지 않는다면, 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다 (자세한 사항은 해시넷:저작권 문서를 보세요). 저작권이 있는 내용을 허가 없이 저장하지 마세요!

취소 | 편집 도움말 (새 창에서 열림)