블록체인 확장에 대해서

in #kr8 years ago

댄더맨 글 입니다.
https://steemit.com/steem/@dantheman/the-real-blockchain-scalability-challenge


리얼타임 퍼포먼스 : 노드들이 돌아가고 있을 때 실시간으로 트랜잭션을 처리하는 속도
리플레이 퍼포먼스 : 노드를 새로 켜서 블록체인을 동기화 시킬 때의 속도

스팀 블록체인은 리얼타임과 리플레이를 합쳐서 1초에 50,000 개의 추천 오퍼레이션을 처리할 수 있습니다.
추천 한개를 처리하는데 20 µs (0.00002 초) 가 걸립니다.
리얼타임 처리속도가 너무 빨라서 균형이 맞지 않는다면 새롭게 시작하는 노드 혹은 약간 동기화가 뒤쳐진 노드가 실시간 새로운 오퍼레이션 처리 때문에 동기화를 따라잡지 못하는 문제도 생길 수 있습니다.

이상적으로, 리플레이 동기화는 지난 1년치를 따라잡는데 30분 이내에 완료될 수 있어야 합니다. 10년된 블록체인을 리플레이 하는데 5시간이 걸릴 것입니다.

초당 5만개는 이론상의 수치이고, 현실적인 조건에서 스팀은 초당 1000 개의 트랜잭션을 처리할 수 있습니다. (현실적인 조건이란, 증인 노드 서버들의 하드웨어 및 네트워크 성능입니다.)
이것을 초당 10000개 까지 끌어올려야 목표값인 초당 500개의 리얼타임 트랜잭션을 처리하고 리플레이 속도를 1년치에 30분 이내가 되도록 할 수 있게 됩니다.

여기서 좀더 기준을 완화시킨다면 1년치를 한시간 이내에 리플레이 시키는 것을 기준 목표로 잡을 수도 있습니다.

리플레이 퍼포먼스가 중요한 이유

새로운 노드를 trustless 로 처음부터 다 싱크 해서 동기화를 마치는 것이 쉬워야 합니다.
블록체인의 상태가 잘못된 값이 들어간 경우(corrupted), 데이터베이스 스키마 변경, 새로운 기능이 추가된 경우에 동기화를 하게 됩니다. 이 때 리플레이를 따라잡기 위해 며칠, 몇주동안 스팀노드와 그 스팀노드를 이용하는 서비스의 다운타임이 발생하면 곤란하겠죠.

비트코인 블록체인을 리플레이 하는데 최고 스펙의 하드웨어로도 12시간이 걸리는데, 지난 8년동안 평균 초당 2트랜잭션, 잘해야 초당 5 트랜잭션 정도를 처리하는 것 치고는 너무 비효율적으로 오래 걸립니다.

스팀은 이 문제를 해결했습니다.

싱글스레드 제한이 블록체인의 확장을 막는 보틀넥이었습니다. 모든 트랜잭션이 그 블록체인의 전체에 임팩트를 준다면 후속 트랜잭션에도 임팩트가 갈 수 있습니다. 동기화에 오버헤드가 있으면 병렬처리가 의미 없게 됩니다.
스팀과 스팀잇의 확장성을 최우선으로 놓겠습니다. 이번주에 우리 개발진은 스팀의 확장성에 대한 설계와 로드맵을 짰습니다. 아무리 많은 사용자와 트랜잭션이 와도 감당할 수 있도록 하는 설계 입니다. 현재 그 설계를 문서화 작업 중이고 개발과 디플로이 일정 로드맵 작성중입니다.

탈중앙화 블록체인이 레딧과 페이스북 합친것 만큼 까지도 처리할 수 있을 정도로 확장성을 가지게 된다는 점에서 지금처럼 흥분된 적이 없었던 것 같습니다.

Sort:  

이내용대로면 이더는 이미 낙동강오리알 신세이구 스팀이 비트도 넘어서겠는데요....

스팀이 비트를 넘어선다면 우린 전부 재벌이 되겠네요 ㅎㅎ

Coin Marketplace

STEEM 0.16
TRX 0.12
JST 0.028
BTC 54635.52
ETH 2893.76
USDT 1.00
SBD 2.03