세이 네트워크가 파이널리티를 줄이는 방법

Steve : : FP
Four Pillars
Published in
18 min readAug 8, 2023

* 본 글을 포함한 다양한 리서치 아티클을 Four Pillars 공식 웹사이트에서 확인해보세요!

면책 조항: 본 글은 일반적인 정보 제공을 목적으로 작성되었으며, 법률, 사업, 투자 또는 세금 관련 조언을 제공하지 않습니다. 본 글을 기반으로 투자 결정을 내리거나 이를 회계, 법률, 세무 지침으로 사용해서는 안됩니다. 특정 자산이나 증권에 대한 언급은 정보 제공의 목적일 뿐, 투자에 대한 추천이 아님을 밝힙니다. 본 글에서 표현된 의견은 저자의 개인적인 의견이며, 관련된 기관, 조직 또는 개인의 견해를 반영하지 않을 수 있습니다. 본 글에 반영된 의견은 사전고지 없이 변경될 수 있음을 유의하십시오.

Author: Steve : : FP(Steve_4P)

Key Takeaways

  • 테라 사태와 FTX 사태 이후로 블록체인 시장은 이더리움과 롤업 체인들을 중심으로 시장이 개편되는 움직임을 보였다.
  • 그러한 시장의 상황속에서 세이 네트워크는 빠른 모놀리틱 레이어1 체인을 표방한다.
  • 결국 블록체인이 성공하기 위해서는, 많은 유저들이 쉽게 온보딩할 수 있어야 하는데 그러기 위해서 필요한 것은 확장성과 체인의 안정성이다.
  • 세이 네트워크는 이 두 마리 토끼를 잡기 위해서 Twin Turbo Consensus를 개발하여 안정적이면서도 세상에서 가장 빠른 파이널리티를 구현해냈다.
  • 이제 메인넷 런칭이 코 앞으로 다가온 세이 네트워크가 어떤 퍼포먼스를 보여줄 수 있을지 그 귀추가 매우 주목된다.

1. 블록체인 업계의 트렌드, 그리고 세이가 이들과 다른 점.

세상에서 가장 빠른 블록체인 중 하나가 될, 앞으로 모놀리틱 블록체인을 대표할 세이 네트워크의 메인넷이 정말 코앞으로 다가왔다. 여태까지 메인넷 일정이 밀려오던 세이 네트워크는, 2023년 8월 1일, 전세계 최대 규모의 거래소인 바이낸스에서 세이 네트워크에 대한 런치풀을 오픈할 것이라고 밝혔고 오는 8월15일엔 바이낸스가 세이 네트워크의 토큰인 SEI를 상장하겠다고 밝히면서 세이 네트워크의 메인넷 런칭은 이제 얼마 남지 않은 것으로 공식 확인되었다. 세이 네트워크의 메인넷 런칭이 다가온 만큼, 포필러스가 예전에 다뤘었던 세이 네트워크에 대해서 간략하게 알아보고, 세이 네트워크가 가지고 있는 철학과 최근에 이뤄낸 네트워크의 성과들까지 알아보도록 하자.

1.1 바야흐로 롤업의 시대

테라 사태와 FTX 사태 이후, 블록체인 업계는 이더리움, 그리고 롤업 네트워크 중심으로 시장이 개편되었다. 이더리움의 경쟁자 포지션을 내세웠던 테라와 솔라나가 망하거나 크게 흔들리면서 “이제 더 이상 새로운 레이어1 블록체인은 의미가 없다.”는 의견이 주를 이뤘다. 이러한 시장의 상황은 원래도 견고했던 이더리움 생태계를 더욱더 강화시켰고, 이더리움이 채택한 롤업 중심의 멀티체인 생태계에 더 많은 힘이 실리면서, 2022년부터 2023년은 말 그대로 “롤업의 시대”라고 말해도 될만큼 롤업 체인들과 L2 그리고 몇몇의 모듈러 블록체인들이 큰 주목을 받았다. 아래는 수많은 롤업중에서 이들을 대표하는 프로젝트를 가져와봤다:

1.1.1 Optimism and OP Stack

바이낸스와 함께 세계 최대 규모의 거래소인 코인베이스가 차제 블록체인인 BASE 체인을 OP Stack을 통해 구현했다는 사실이 밝혀지면서 큰 주목을 받았던 OP Stack은 옵티미스틱 롤업을 구축할 수 있도록 제공되는 오픈소스 코드로서 이를 활용하면 롤업 체인을 매우 간단하게 만들 수 있다. 일종에 옵티미스틱 롤업의 SDK라고 볼 수 있는 것이다. 최근엔 Chat GPT의 아버지라고 불리는 샘 알트만이 공동으로 창립한 월드코인도 옵티미즘 메인넷에 런칭하면서 OP Stack의 멀티체인 비전을 지지하는 것으로 알려졌다. 코인베이스와 월드코인이라는 두 유명 기업이 Optimism과 OP Stack을 적극 활용하면서 OP Stack으로 옵티미스틱 롤업 체인을 구축하려는 수요는 계속해서 늘어나고 있는 추세이다. (더 자세한 글은 Xpara의 OP-Stack글을 참고하시라)

1.1.2 ZK Sync and ZK Stack

옵티미즘은 옵티미스틱 롤업(사기 증명으로 트랜잭션을 검증하는)을 구축하는 롤업인 반면, ZK sync는 유효성 증명을 통해 트랜잭션을 검증하는 ZK 롤업을 구축하기 때문에 같은 롤업이라고 할지라도 방법론에서의 차이가 엄연히 존재한다. 현재 ZK Sync는 오랜 시간에 걸쳐 기술을 발전시킨 결과, 이더리움 생태계 전체에서 세번째로 큰 레이어2 롤업이 되었을 뿐만 아니라, 2023년 6월에 ZK Sync도 Optimism의 OP Stack과 비슷한 ZK Stack를 발표하면서 SDK 전쟁에 뛰어들었다. 물론 Op Stack에 비해서 늦게 출시되는 것이기 때문에 아직까지 이렇다할 사용사례는 없지만, 앞으로 롤업을 구축하는 입장에선 OP Stack말고도 또 다른 대안이 생겼다라는 점에서 앞으로 롤업 시장이 얼마나 치열해질지 가늠할 수 있는 부분이다. (더 자세한 글은 Xpara의 ZK-sync 글을 참고하시라)

이 두 프로젝트를 제외하고도, RaaS(Rollup as a service) 와 같이 롤업을 쉽게 만들어주는 다양한 인프라들이 개발되면서 블록체인 시장은 한동안 롤업과 레이어2 그리고 모듈러 블록체인에 대한 논의로 가득차있었다. 이제 정말 레이어2를 만드는 것이 정답인 것이고, 새로운 레이어1은 무의미한 시도가 된 것일까? 아마 적어도 세이 네트워크는 그렇게 생각하지 않고 있는 거 같다.

1.2 세이의 역베팅, 모놀리틱한 단일체인 구성: 왜 레이어2를 선택하지 않았는가?

(롤업에 대한 세이 네트워크 코파운더 제이의 의견 | Source: Jay)

어느 업계던간에 특정 기술이 주목을 받으면 그 기술로 인재들의 쏠림 현상이 일어나는 것은 어쩔 수 없는 거 같다. 하지만 해당 기술들을 무조건적으로 받아들이기 이전에, 비판적인 사고를 해보는 것 역시나 필요하다. 롤업을 구성하는 것이 지금 블록체인 기술이 마주한 문제들을 단번에 해결해주는 해결책이 아니라는 Jay의 의견은 업계에 종사하고 있는 사람들이라면 한 번씩 곱씹어볼만한 주장이다. 어쩌면 롤업은 ‘레이어1 블록체인’이라는 단어에 반감을 가진 사람들을 교묘하게 속이기 위해서 악용되고있는 단어일지도 모른다. 물론 롤업과 레이어1 블록체인이 모든 부분에서 똑같다고 주장하는 것은 아니다. 하지만 자신이 구축하는 어플리케이션과 자산의 종류에 따라서 레이어1과 롤업은 비슷한 속성을 가지고 있을지도 모른다. 옵티미스틱 롤업에서 발행된 모든 자산들이 이더리움에 의해 보호되고 있지 않은 것처럼, 결국 롤업이던 레이어1이던 “많은 유저들이 불편함 없이 사용해야하는 것”이 성공의 척도라고 한다면, 세이 네트워크의 입장에선 아직 레이어1을 구축하는 것이 롤업을 구축하는 것만큼이나 가치있는 시도라고 보여지는 것이다.

실제로 Sei Labs는 처음에 세이 네트워크를 이더리움의 레이어2로 구축할지에 대한 고민도 있었다고 한다. 하지만 레이어2 롤업이 가지고 있는 단일 시퀀서의 문제나, 확장성의 한계가 명확하게 존재하고 있기 때문에 레이어1을 선택한 것이다. 잠시만, 확장성의 문제라니. 롤업은 이더리움이 고질적으로 가지고 있었던 확장성의 문제를 해결하기 위해서 등장한 대안이 아니었던가?

물론 모듈러 블록체인을 옹호하는 집단들은, 롤업이 확장성 문제를 해결했다고 보았지만, Sei Labs의 입장에선 롤업은 여전히 애매한 대안이었다. 결국 롤업도 연산한 데이터를 그 베이스 레이어인 이더리움의 블록에 기록해야하고, 이더리움의 블록은 무한대의 공간을 가지고 있지 않기 때문에 트랜잭션을 소화하는 것에 대한 명확한 상한선이 존재한다.

1.2.1 한 번 롤업이 가져갈 수 있는 최대의 TPS를 계산해볼까?

이더리움 블록 크기의 타깃은 약 1500만 Gas이고, 이더리움에서 1byte의 데이터를 검증하기 위해선 16gas가 필요하다. 즉 이더리움은 한 블록당 대략 937,500bytes의 데이터(15,000,000/16)를 검증해서 처리한다는 이야기다. 만약 아주 ‘간단한’ 롤업 트랜잭션이 이더리움에 배치로 제출될 때 사용하는 용량을 12bytes라고 했을 때(이 숫자는 롤업마다 다르고 트랜잭션의 종류마다 변동되지만, 비탈릭이 계산했던 ETH Transfer 를 롤업에서 실행했을 때 데이터 용량을 기준으로 하였다) 이더리움 블록당 처리할 수 있는 롤업 트랜잭션의 수는 78,125개다(937,500/12). 그리고 이더리움의 블록타임은 약 13~15초니까 78,125에서 13~15초를 나누면? 최대 6,000 tps에서 최소 5,208 tps가 나온다. 하지만 이러한 계산은 이더리움의 블록 공간을 오직 롤업에만 사용했다는 가정이다. 이더리움 블록체인은 그 자체로도 모놀리틱 블록체인의 역할을 수행할 수 있음을 잊지 말자. 지금도 Uniswap이나 Opensea같은 어플리케이션이 이더리움 베이스레이어에서 작동된다. 즉, 롤업은 이더리움 네이티브 앱들과도 블록 공간에 대한 경쟁을 해야한다는 뜻이다. 그렇다고 한다면 롤업이 가져갈 수 있는 TPS의 상한선은 5,000미만일 가능성이 높다. 프로토 댕크 샤딩이 도입된다고 하더라도 TPS의 상한선은 드라마틱하게 증가하지 않을 것이고, 댕크 샤딩이 도입된다면 꽤나 유의미한 증가가 생길 수 있겠지만 시간이 오래 걸린다.

이러한 이유로 세이는 롤업 대신 자체적인 컨센서스와 블록타임을 가지고 있는 레이어1을 구축하게 된 것이다. 물론, 많은 유저들이 불편함 없이 사용하기 위해선 네트워크의 속도가 굉장히 빨라야하면서도, 블록체인으로서의 보안이 보장되어야만한다. 그렇다면 과연 세이는 어떤 방식으로 네트워크를 구축했고, 얼마나 빠를까?

2. 세이 네트워크 소개: 세이 네트워크란.

세이 네트워크는 트레이딩에 특화되어있는 레이어1 블록체인이라고 볼 수 있지만, 엄밀히 말해서는 General Purpose Blockchain이다. 세이가 “자체 오더 매칭 엔진”을 내장시켰다고 하더라도, 블록체인이 가지는 가장 큰 특징이 “자산을 거래할 수 있게 만든다”는 점에서 가장 기본적인 인프라라고 생각하기 때문에 세이 네트워크는 트레이딩 인프라를 강화한 General Purpose Blockchain으로 불리는 것이 더 맞다고 생각하고 있다. 또한, 자체적으로 강화한 트레이딩 인프라를 제외하고도 파이널리티 측면에서 이미 다른 블록체인들과 비교했을 때 압도적인 속도를 가지고 있기 때문에 해당 속도를 어떻게 달성했는지에 대해서 살펴보는 것이 좀 더 의미가 있을 것이라고 생각했다. 세이는 어떠한 컨센서스를 사용하고 있을까?

2.1 Twin-Turbo Consensus: what makes Sei fast?

트윈 터보 컨센서스는 말 그대로 두 가지 터보를 장착한 컨센서스 메커니즘으로 이해할 수 있는데 여기서 세이 네트워크가 내세우는 터보는 Intelligent Block Propagation과 Optimistic Block Processing이다. 이들은 각각 어떠한 역할을 수행하고 어떻게 세이의 속도를 끌어올리는 것일까?

2.1.1 Intelligent Block Propagation

기존 블록체인에선 블록을 전파할 때는 약 두 번의 과정을 거친다: 1)우선 유저가 트랜잭션을 발생시키면 노드가 트랜잭션을 받아서 검증한 후 해당 노드의 멤풀(mempool)에 추가하고, 다른 노드들에게 해당 트랜잭션을 전파하는 과정을 거친다. 2) 이렇게 검증된 트랜잭션은 나중에 리더(PoW의 경우는 마이닝 노드일 것이고, BFT에선 블록 제안자가 될 것이다)에 의해서 블록에 담기게 되는데, 이 블록 역시나 네트워크 전체에 전파해서 모든 노드들이 해당 블록을 받아내야 비로소 트랜잭션이 성공적으로 처리가 되었다고 할 수 있다. 이러한 기존의 방식은 매우 비효율적이라고 할 수 있는데, 그 이유는 이미 노드들이 트랜잭션을 전파하는 과정에서 자신들의 로컬 멤풀에 대부분의 트랜잭션을 가지고 있을 것이 분명한데, 이 트랜잭션이 담긴 블록을 또 전파해서 공유해야하는 상황이기 때문이다. 이러한 이중 전파의 문제(Double Transmission Problem)은 네트워크의 대역폭을 낭비하고 있는 것이라고 볼 수 있다.

해서, 세이 네트워크는 블록 제안자가 블록 제안서(Proposal)에 트랜잭션 데이터가 아닌, 1) 트랜잭션들의 해시값과, 2) 온전한 블록의 레퍼런스인 Block ID를 담아서 전파한다. 트랜잭션의 해시값은 기존 트랜잭션 데이터를 해시함수로 요약한 값이기 때문에 용량이 작다는 장점이 있다. 블록 제안자는 아래 그림과 같이 처음에 블록 제안서를 네트워크에 전파하고, 그 후에 온전한 블록을 조금씩 나누어서 전파한다.

이런식으로 전파의 효율적인 과정을 통해 블록 제안자가 블록 제안서를 전파하였을 때, 다른 노드들이 해시값에 해당하는 트랜잭션을 보유하고 있다는 것이 확인되면 그 노드는 모든 블록이 올 때 까지 기다리지 않고 자신의 로컬 멤풀을 재구성해서 블록을 구성할 수 있다. 만약, 이 과정에서 빠진 트랜잭션이 있다면 그 경우엔 블록이 전부 올 때 까지 기다려서 트랜잭션을 처리한다.

세이는 이러한 블록 전파 과정을 통해서 네트워크의 성능을 약 40%나 향상시키는데에 성공했다(이후에 언급하겠지만, Intelligent Block Propagation을 통해 파이널리티를 210ms까지 줄이는데에도 성공했다).

2.1.2 Optimistic Block Processing

(기존 블록 프로세싱(위)과 세이의 블록 프로세싱(아래))

세이의 Optimistic Processing 이전에는 블록을 처리하기 위해서 블록에 대한 컨센서스가 선행되어 이루어졌어야 했는데, 세이는 블록을 받자마자 처리를 시작하며 Prevote와 Precommit을 이와 동시에 처리하는 구조를 가지고 있다. 이러한 구조가 위험할 수도 있다고 생각이 들 수 있지만, 사실 블록을 처리하는 과정에서 Prevote와 Precommit이라는 과정도 같이 진행되기 때문에 해당 과정에서 블록이 타당하지 않다고 여겨진다면 해당 블록은 버리고 다시 시작하면 된다. 그렇기 때문에 크게 문제가 될 것은 없다. 세이 네트워크는 기존 합의 과정을 생략한 것이 아니라, 어디까지나 이들을 병렬로 같이 처리하는 것이기 때문이다.

세이는 Optimisitc Block Processing을 통해서 네트워크 퍼포먼스를 약 33% 개선시키는데 성공했다.

2.2 Transaction Parallelization

세이는 트윈 터보 컨센서스와 더불어서 트랜잭션 병렬처리도 진행하는데, 여기서 중요한 것은 어떤 트랜잭션들을 병렬처리 할 수 있는지 찾아내는 것이다. 모든 트랜잭션들이 병렬처리 될 수는 없는 것이, 각각의 트랜잭션들이 서로 영향을 미치는 트랜잭션들도 분명히 존재하기 때문이다. 결국 안전한 트랜잭션 병렬 처리를 가능하게 하기 위해서는 충돌 가능성이 있는 트랜잭션들을 찾아내는 것이 매우 중요한데 세이는 트랜잭션의 관계성을 DAG로 사전에 파악하고 만약 이들 트랜잭션이 서로 독립적인 트랜잭션이라는 것이 확인되면 병렬로 트랜잭션을 처리하는 것이다. 이를 통해 세이는 초당 20,000개의 주문을 처리할 수 있게 되었다.

3. 아직도 배고프다: 파이널리티를 줄이기 위한 최근의 노력들

3.1 파이널리티는 무엇이며 왜 중요한가

많은 사람들은 블록체인의 퍼포먼스와 확장성을 계산할 때 TPS(Transactions per second)를 많이 따지지만 사실 TPS는 많이 모호한 지표이다. 왜 그런지 예를 들어서 설명을 해보겠다. A 블록체인이 하나의 블록에 총 60만개의 트랜잭션을 담을 수 있다고 가정해보자. 그런데 이 A블록체인이 블록을 생성하는데 걸리는 시간이 1분이라고 한다면 TPS(=number of tx in a block / block time in seconds)는 10,000이 되겠지만 실제로는 60만개의 트랜잭션이 네트워크에 담기기 위해선 1분이라는 시간이 걸리기 때문에 초당 만 건의 트랜잭션을 실시간으로 처리한다고 볼 수 없다. TPS는 어디까지나 블록체인의 처리량을 초단위로 나눈 수치이기 때문에 겉으로 보이는 TPS가 실제로 유저들에겐 다르게 느껴질 수 있다는 것이다. 필자의 예시가 극단적이지 않아서 그렇지, 블록당 담기는 트랜잭션 수를 극단적으로 늘리고 블록타임을 1시간으로 늘린다고 하여도 TPS는 엄청 높은 수치로 나올 수 있다(하지만 유저는 트랜잭션이 네트워크에 담기기까지 1시간을 기다려야 할 것이다). 이러한 이유로 요즘엔 블록체인의 확장성을 논함에 있어서 TPS라는 수치보다는 해당 트랜잭션이 확정되기까지 걸리는 시간을 나타내는 지표인 TTF(Time to Finality)를 좀 더 많이 사용하는듯 보인다. 특히 세이 네트워크처럼 금융 거래에 초점을 맞춘 레이어1 체인의 경우, 트랜잭션들이 즉각적으로 처리되어 네트워크에 반영되는 것이 굉장히 중요하기 때문에 TTF를 최대한 빠르게 만드는 것이 중요했을 것이다.

3.2 다른 블록체인들과 비교

위에서 설명한 트윈 터보 컨센서스를 통해(특히 intelligent block propagation을 통해서), 세이 네트워크는 파이널리티를 약 250ms 까지 낮추는데에 성공하였다. 이는 현존하는 블록체인 중에서 가장 빠른 파이널리티로, 사실상 유저들이 체감하기엔 거의 즉각적인 파이널리티로 여길 정도의 속도라고 볼 수 있다. 물론, 이는 매우 긍정적인 상황에서의 파이널리티이고 세이 테스트넷인 Atlantic-2 상에서 여러 시도를 해봤을 때 가장 안정적인 파이널리티 타임은 410ms이었다. 파이널리티를 250ms까지 낮추는데에 성공하였지만, 특정 노드들이 네트워크를 유지하는데에 어려움을 겪었고, RPC 노드들과 같은 인프라 플레이어들이 뒤쳐지는 모습을 보였다. 이러한 경우는 어쩔 수 없는 것이, 블록체인은 그 특성상 전 세계에 노드들이 흩어져있기 때문에 전파와 소통에 분명한 어려움이 있을 수 밖에 없다. 그렇다면 어떻게 이 노드들을 전부 포함시키면서 파이널리티를 낮출 수 있을까?

3.3 세이의 최적화: 가장 보수적인 시나리오에서도 가장 빠른 블록체인

세이 네트워크는 위와 같은 문제를 해결하기 위해서 컨센서스 과정중에 커밋 타임 아웃을 약 100ms 추가하였다.

( Commit Timeout에 추가적으로 100ms를 추가한 모습| Source: Sei github)

사실 100ms가 최적의 시간이 아닐수도 있다(굉장히 보수적인 환경이었다). 해당 커밋 타임아웃 시간은 앞으로 네트워크 상황에 따라서 더 짧아질 수 있지만, 일단 이번 테스트넷에서 추가된 타임아웃은 100 ms이었고 이를 통해서 타임아웃을 추가하지 않았을 때 안정적으로 달성할 수 있었던 410ms보다 좀 더 빠른 380ms의 파이널리티를 구현시킬 수 있었다. 재미있는 것은 100ms의 타임아웃을 두고도 세이는 현존하는 블록체인들 중에서 가장 빠른 파이널리티를 구현했다는 것이다. 앞으로 네트워크 상황에 따라서 추가된 타임아웃의 시간을 조정함에 따라 세이의 파이널리티는 더 줄어들 수도 있다. 보수적인 환경에서 구현한 세이의 파이넡리티가, 현존하는 다른 블록체인들의 파이널리티보다 빠르다는 것은 굉장히 흥미롭다.

4. 앞으로의 세이

사실 이번에 런칭이 거의 확정된 세이의 메인넷은, 지난 1년간 계속해서 밀려오다가 이제서야 확정이 난 것이다. 필자가 세이 재단 소속이 아니기 때문에 세이 메인넷이 밀렸던 이유에 대해서 명확하게 알 수는 없지만, 세이에 대한 리서치를 진행하면서 알 수 있었던 사실 하나는, 세이가 여태까지 네트워크의 성능을 개선시키기 위해서 계속해서 노력했다는 부분이다. 아마 본인들이 생각하는 이상적인 파이널리티를 달성하기 위해서 메인넷 런칭을 계속 밀어왔던 거 같다. 물론 파이널리티 타임을 낮추는 거 자체도 중요하지만, 더 중요한 것은 얼마나 네트워크가 안정적인 환경에서 운영되는지에 대한 여부이다. 세이는 속도와 안정성, 두 가지 속성을 확보하기 위해서 지난 1년간 메인넷을 미루면서까지 네트워크 개선에 집중하였다.

물론, 메인넷이 나오고 나서는 테스트넷과 또 다른 환경이라고 볼 수 있고 외부의 변수들도 많기 때문에 테스트넷에서 달성한 퍼포먼스를 그대로 이어갈 수 있다고 확답할 수는 없다. 하지만 테스트넷 환경 자체도 최대한 보수적이게 설정했던만큼, 메인넷 런칭 직후에도 빠른 파이널리티를 구현할 가능성이 높다.

높은 안정성과 빠른 속도, 세이 네트워크가 이 두 가지를 달성한다면 많은 유저들이 불편함 없이 블록체인을 사용할 수 있는 환경을 조성할 수 있을 것이다. 결국 레이어1이던, 레이어2던간에 유저들이 많이 사용해야 성공할 수 있다는 점에서 세이의 메인넷 런칭은 블록체인 업계의 참여자로써도 매우 관심이 가는 부분이다. 필자는 모듈러 블록체인의 방법론보다, 모놀리틱 블록체인의 방법론을 더 선호하는 사람으로서 세이가 진심으로 성공해서 레이어1 경쟁에 새로운 시작을 알렸으면 좋겠다.

About Us

Four Pillars is a global crypto research firm based in Seoul, consisting of the most influential blockchain researchers in Korea. Through robust research and governance skills, it helps various market players easily onboard to the blockchain industry by offering high-quality research articles while supporting protocols in their expansion into Korean and global markets.

Four Pillars Links

--

--

Steve : : FP
Four Pillars

the revolutionary is a scarce man, and brave, and hated and scorned. When his cause succeeds, the timid join him, for then it costs nothing to be a patriot.