content

엘프라는 이름의 혁명 – Parallel Processing (병렬 처리 알고리즘)

엘프라는 이름의 혁명– Parallel Processing (병렬 처리 알고리즘)​“비트코인은 오래되었다.느리며,비싸고,실질적인 가치가 없다”.여러분들은 이러한BTC트랜잭션의 사용에 반대하는 주장을 종종 들어 보셨을 것이라 생각합니다.실제로,이러한 주장은 종종 블록체인 기술 전체를 부정하는데 인용되기도 합니다.하지만 이게 정말로 사실일까요?이런 부정적인 견해들 뒤에 분명히 사실적 근거가 존재하지만,과장 또는 논점에서 벗어났거나 기술적 발전에 뒤쳐진 점이 없지않아 있습니다.비트코인 네트워크상에서 실행하는 블록체인의 확장성이 떨어지는 것은 틀림없고 이점을 해결해야 하는 것은 사실입니다.라이트닝 네트워크를 통해 이 문제를 해결하려고 시도하지만,이는 구형 자동차에 현대식 최고급 엔진을 넣는 것과 비슷한 예제입니다.실제로 이 방법으론 확장성의 문제를 완전히 해결하지 못하는 여러 이유가 존재합니다.이번 글에서는 이러한 문제점들을 다른 플랫폼들과 근본적으로 다른 방식으로 해결하고 있는 엘프(aelf)의 한 부분인 병렬처리 알고리즘에 대해 파헤쳐보도록 하겠습니다.엘프가 적용하는 병렬처리는 자칫 잘못 사용하게 되면 블록체인 네트워크를 손상시킬 수도 있는 리스크를 가지고 있는 기술이지만,올바르게 사용된다면 현재 블록체인의 한계를 대폭 제거할 수 있는 혁신적인 솔루션이 될 수도 있습니다.기존 블록체인의 전산속도 성능 개선을 위한 두가지 방법이 현존합니다.첫째,최신 하드웨어를탑재하고있는 더 크고 강력한 노드를 설립하거나,이미 존재하는 하드웨어 구성 요소를 업그레이드 하여 노드의 성능을 향상시킬 수 있습니다.둘째,전산의 효율성을 높이거나 처리 과정을 간소화시키는 것 입니다.엘프는 이 두가지 측면 모두에 초점을 맞추고 있습니다.첫번째 포인트는 클라우드 컴퓨팅을 통해 완성되고 있으며,두번째 포인트는 이제부터 본격적으로 논의될 병렬 처리 알고리즘을 통해 적용되고 있습니다.Parallel Processing (병렬 처리)란?말 그대로 트랜잭션 처리가 동시에,병렬로 수행되는 것을 의미합니다.하지만 블록체인에 이 개념을 적용하는 것은 매우 어려운 일입니다.블록 생성을 위해 코드를 다시 작성해야 할 뿐만 아니라 노드를 재구성하고 트랜잭션 의존성도 해결해야 합니다.(이 글에서 코딩에 대해서는 논의하지 않겠지만,만약 병렬처리 관련 코드에 대해 더 깊이 알아보고 싶다면 엘프GitHub을 추천 드립니다.)노드선정은 네트워크 디자인의 관점에서,또한 참여하는 유저의 입장에서 매우 신중하게 고려해야하는 사항입니다.여러분은 아마 엘프와 관련된‘클라우드 컴퓨팅’이라는 문구를 본 적이 있을 겁니다.이것은 현존하는 블록체인 플랫폼들의 기준인‘One node = One computer’의 경우에 생기는 확장성과 노드 하나의 성능의 명백한 한계 대신,하나의 노드가 컴퓨터의‘클러스터’로 구성됨으로써 이 한계점이 없어지게 되는 것을 뜻합니다.하나의 노드가 무한적으로 커질 수 있게 되는 클라우드 노드가 바로 병렬 처리를 위한 기반이 됩니다.이러한 클라우드 노드라는 특별한 환경을 다른 블록체인들처럼 일차원적으로 사용하게 된다면,이 거대한 컴퓨터의 집합체가 트랙잭션들을 하나하나씩 순차적으로 처리하게 되며 모든 컴퓨터들이 효율적으로 쓰여지지 못하게 됩니다.예를 들자면 요즘 모든 컴퓨터에 사용되는4코어, 6코어 프로세서 환경에서 워드를 켜서 문서작업을 하다가 저장하고 워드를 닫고 인터넷을 사용하여 음악을 듣다가 브라우저를 닫고 다시 워드를 켜서 문서 작업을 하는것과 비슷합니다.동시에 여러 작업을 하지 않고 한 순간에 하나의 작업만 하는 것이죠.여러 코어가 있음으로 인하여 전혀 속도에 문제가 되지 않고 여러 작업들을 동시에 할 수 있기 때문에,요즘은 음악을 들으면서 동시에 문서 작업을 해도(즉,병렬 작업)하나의 작업이 느려 지지 않습니다.이것이 바로 자원의 분할을 통한 동시 다발적 트랜잭션 처리인Parallel Processing이 시스템의 전반적인 효율성을 향상시킬 수 있는 이유입니다.다음 포인트의 핵심은 트랜잭션 의존성의 문제입니다.스마트 계약이‘10 ELF로 당근2개를 사고 나머지ELF로 모두 오이를 산다’라고 쓰여 있다면,두번째 트랜잭션,즉‘남은ELF로 오이를 산다’는 첫번째 트랜잭션이 반드시 마쳐진 후에 처리가 돼야하는 의존성이 생깁니다.기존의 블록체인의 경우 모든 트랜잭션을 순차적으로 처리하기 문제가 되지 않지만,병렬 처리를 환경에서는 두번째 트랜잭션이 첫번째 트랜잭션보다 먼저 또는 동시에 처리될 경우 거부나 오류가 발생할 수 있습니다.바로 이 의존성이 병렬처리 도입을 어렵게 하는 것이며 많은 프로젝트들이 성공시켜내지 못한 이유 중 하나입니다.엘프는 트랜잭션 의존성의 문제를 해결하기위해 두가지 방법을 채택 하였습니다.첫번째는 멀티체인,즉 다양한 사이드 체인 이라는 디자인 상 비의존성이 자연스럽게 증명되는 구조입니다.예를 들어 사이드체인1의 트랜잭션A는 사이드체인2의 트랜잭션B에 영향을 미치지 않거나 의존하지 않을 것이기 때문에 다른 과정이 필요없이 바로 병렬처리가 가능합니다.두번째 솔루션은 엘프의 병렬 실행 스케줄러(Parallel Execution Scheduler)입니다.이 스케줄러는 계산 의존성과 데이터 의존성을 메모리 풀에서 분리시킴으로써 본질적으로 병렬처리에서 발생하는 데이터 위험성 문제를 제거 시킵니다.스케줄러는 의존성의 트랜잭션을 식별하고 병렬로 실행되는 태스크가 서로 순서 적 오류가 생기지 않도록 관리합니다.결과적으로,클라우드 컴퓨팅이라는 특수한 환경과 병렬처리 기술은 조합은 코어와 노드를 최대한 활용하여 전산속도를 극대화 시킵니다.이를 통해 엘프는 언터프라이즈급 스케일의 블록체인 데이터를 쉽고 빠르게 처리할 수 있는 속도와 확장성을 보유한 네트워크를 보장합니다.기존의 어떠한 블록체인도 이렇게 독특하고 획기적인 기술로 확정성의 문제를 해결하려고 시도하지 않았습니다.엘프는 엔터프라이즈 세계에서 블록체인의 상용화를 이끌 뿐만 아니라 블록체인 플랫폼의 기준을 변화시키고 있습니다.

content

[AELF TIMES] 엘프(aelf) 쉽게 이해하기 (2018.7)

엘프 타임즈 7월호 '엘프(aelf) 쉽게 이해하기'입니다.이번 글에서는 기존 블록체인과는 달리 후발주자인 엘프의 큰 장점 3가지에 대해 쉽게 설명되어있습니다.

content

[AELF TIMES] aelf란 무엇인가? (2018.7)

엘프 타임즈 7월호 'aelf란 무엇인가?'입니다.aelf는 분산된 자율 진화 클라우드 컴퓨팅 네트워크입니다. 다양한 상용화 요구사항에 따른 블록체인 인프라를 구축하기 위해서 aelf는 크로스체인 커뮤니케이션 및 자율 진화 거버넌스를 갖춘 고효율의 멀티체인 병렬 처리 시스템을 제공합니다. aelf는 최첨단 IT 설계 이론과 기술을 통합하여 블록체인 네트워크의 완전한 상용화를 가능케 할 것입니다.aelf는 블록체인을 위한 '리눅스 환경'을 창조하길 추구하며 현재 블록체인 시스템의 가장 기본적이고 필수이며 시간이 많이 걸리는 요소를 개선하는 목적으로 마켓의 기존 블록체인들을 기반하여 많은 질적 향상을 이루었습니다. 이 시스템은 개발자들의 니즈, 특히 크고 다양한 산업에 대한 상업적 요구 사항을 만족시키기 위해 시스템을 커스터마이징 할 수 있도록 설계되었습니다.aelf는 보다 복잡한 스마트 컨트랙트의 신속하고 유동성 있는 이행을 목표로 하며, 각 체인에는 일체의 스마트 컨트랙트에 대한 혼잡 또는 정체가 없는 실행을 위한 자체 고유의 리소스를 제공합니다. aelf는 스마트 컨트랙트를 쉽게 업그레이드하고 자연스럽게 진화할 수 있도록 다이나믹 블록체인 시스템에 적합한 인프라를 제공 할 것입니다.

content

엘프 한국 커뮤니티 Q&A (ver.1)

엘프 한국 커뮤니티 QA ver.1입니다.평소 엘프 한국 카카오 및 텔레그램 커뮤니티에서 자주 질문되고 궁금해하셨던 내용에 대해 다시 찾아볼 수 있게끔 읽기 편하게 정리해두었습니다.

content

[블록인포] 팩트체크, 엘프 15,000TPS 실화냐???

엘프에서 발표한 테스트넷 결과를 직접 확인하기 위해, 테스트환경을 세팅 후 테스트한 영상입니다.

content

[AELF TIMES] 병렬처리를 통한 스케일링 (2018.7)

엘프 타임즈 7월호 '병렬처리를 통한 스케일링'입니다.엘프는 '병렬처리를 통해 상용화가 가능한 트랜잭션과 스케일링이 가능한 블록체인'이 되기를 추구하며 이번 글에서는 엘프의 '병렬처리' 기술과 '스케일링(확장성)'에 대해 다뤄보았습니다.

content

엘프 테스트넷 v1.0 하이라이트

엘프의 첫 테스트넷 결과 발표입니다.엘프는 클러스터 노드를 통한 '병렬처리' 와 '데이터베이스 분리' 기술을 사용하여 약 15,000 TPS 라는 결과를 낳았습니다.기존 블록체인은 성능 향상을 위해 각 노드의 하드웨어를 업그레이드 시켜야했지만 엘프는 병렬처리의 도입으로 노드에 컴퓨터를 추가적으로 포함시킴으로써 노드의 성능을 향상시킬 수 있어 확장성의 더 큰 가능성을 선보였습니다.

content

[한국경제tv] 엘프 테스트넷 v1.0 소개 영상

한국경제tv에 소개된 엘프 테스트넷 v1.0 소개 영상입니다.