실리콘밸리의 신흥 종교: 데이터교

실리콘 밸리에서는 이른바 “데이터교”라는 새로운 종교가 광풍처럼 몰아친다고 한다.

데이터교는 우주가 데이터의 흐름으로 이루어져 있고, 어떤 현상이나 실체의 가치는 데이터 처리에 기여하는 바에 따라 결정된다고 말한다. 이색적인 비주류 개념 같다는 인상을 받을지도 모르겠지만 사실 이 개념은 이미 과학계의 대부분을 정복했다고 한다.

이 종교에 따르면 경제란 욕망과 능력에 관한 데이터를 수집해 그 데이터를 결정으로 전환하는 메커니즘이라고 한다. 이렇게 보면 자유시장 자본주의와 국가가 통제하는 공산주의는 서로 경쟁하는 이념, 윤리적 신조, 정치제도가 아니다. 기본적으로 이 둘은 경쟁하는 데이터 처리 시스템이다. 자본주의는 데이터를 나누어 처리하는 반면, 공산주의는 중앙에서 모두 처리한다. 공산주의가 20세기에 더욱 일찍 산업화의 성공을 이루어냈음에도 불구하고 자유시장이 이길수밖에 없었던 원인은 단기간(이를테면 빠른 산업화, 또는 빠르게 구세계를 타파하는데)에는 더욱 효율적일지 모르지만, 장기간에서는 자유시장이 정보처리에 더욱 효율적이고 환경변화에 덜 취약하기 때문이다. 즉 robustness, fault-tolerance 가 더 좋기 때문이다.

실제로 데이터교도들은 인간의 지식과 지혜보다는 빅데이터와 알고리즘을 더 신뢰한다고 한다. 그래서 그들은 할아버지 할머니들의 가르침에 귀를 기울이는 대신 빅데이터 미래세계를 구축하려 한다고 한다.

이렇게 보면 증권거래소는 인간이 창조한 가장 빠르고 가장 효율적인 데이터 처리 시스템이다. 성공적인 과학 실험, 일본의 정치 스캔들, 아이슬란드의 화산 폭발은 물론, 태양 표면의 불규칙한 활동조차 주가에 영향을 미친다. <뉴욕타임스>에 대서특필된 사건들이 주가에 영향을 미치는 데는 단 15분간의 거래면 충분하다고 추산된다.

자유시장에서는 한 프로세서가 잘못된 결정을 내리면 다른 프로세서들이 잽싸게 그 실수를 활용한다.

자본주의가 냉전에서 승리한 것은, 적어도 기술 변화가 가속화되는 시대에는 중앙 집중식 데이터 처리보다 분산식 데이터 처리가 더 효과적이기 때문이다.

독재와 민주주의도 데이터 처리로 해석된다. 독재는 중앙 집중식 처리 방법이고 민주주의는 분산식 처리이다.

오늘날 인터넷이 사람들의 주권을 약화시키고 국경을 무시하고 사생활을 없애고 전 지구적 안보를 엄청나게 위협하는 자유로운 무법지대로 되었다. 정부라는 거북이는 기술이라는 토끼를 따라잡지 못한다.

사람들은 권력이 다른 곳으로 이동하고 있다고 느끼지만 그곳이 어딘지는 모른다. 영국 유권자들은 권력이 유럽연합으로 이동했을 거라고 생각하고 브렉시트에 투표하지만 슬픈 진실은 권력이 어디로 갔는지 아무도 모른다는 것이다.

21세기 초에 정치는 장대한 비전을 잃었다. 정부는 나라를 운영할 뿐 이끌지 못한다. 교사들의 급여가 제때 지급되고 하수도가 넘치지 않게 할 뿐, 20년 뒤 나라가 어디로 갈지에 대해서는 아무 생각이 없다. 20세기의 거대한 정치적 비전들이 우리를 아우슈비츠, 히로시마, 대약진 운동으로 이끌었음을 생각하면, 근시안적인 관료들이 차라리 나을지도 모른다. 이런 무위와 무지는 심지어 심오한 지혜로 재해석되기까지 한다.

성공한 다른 종교들과 마찬가지로 데이터교 역시 포교를 한다. 이런 계명들에는 “가능한 많은 매체와 연결해 가능한 많은 정보를 생산하고 소비함으로써 데이터 흐름을 극대화하라”, “연결되기를 원치 않는 이단까지 포함해 모든 것을 시스템에 연결하라.” (여기서 모든 것이란 인간만을 말하는게 아니라 말 그대로 “모든 것”이다.)

Continue reading

하이프(hype) 개론

하이프 사이클

하이프 사이클(Hype Cycle)은 기술의 성숙도를 표현하기 위한 시각적 도구이다. 과대광고 주기라고도 한다.미국의 정보 기술 연구 및 자문 회사인 가트너에서 개발하였다.

hype_cycle.png

hype_cycle_detailed.png

하이프 사이클은 5개의 단계로 이루어지며, 이는 기술의 성장 주기에 대응된다.

단계 명칭 설명
1 기술 촉발
(Technology Trigger)
잠재적 기술이 관심을 받기 시작하는 시기. 초기 단계의 개념적 모델과 미디어의 관심이 대중의 관심을 불러 일으킨다. 상용화된 제품은 없고 상업적 가치도 아직 증명되지 않은 상태이다.
2 부풀려진 기대의 정점
(Peak of Inflated Expectations)
초기의 대중성이 일부의 성공적 사례와 다수의 실패 사례를 양산해 낸다. 일부 기업이 실제 사업에 착수하지만, 대부분의 기업들은 관망한다.
3 환멸 단계
(Trough of Disillusionment)
실험 및 구현이 결과물을 내놓는 데 실패함에 따라 관심이 시들해진다. 제품화를 시도한 주체들은 포기하거나 실패한다. 살아 남은 사업 주체들이 소비자들을 만족시킬만한 제품의 향상에 성공한 경우에만 투자가 지속된다.
4 계몽 단계
(Slope of Enlightenment)
기술의 수익 모델을 보여 주는 좋은 사례들이 늘어나고 더 잘 이해되기 시작한다. 2-3세대 제품들이 출시된다. 더 많은 기업들이 사업에 투자하기 시작한다. 보수적인 기업들은 여전히 유보적인 입장을 취한다.
5 생산성 안정 단계
(Plateau of Productivity)
기술이 시장의 주류로 자리잡기 시작한다. 사업자의 생존 가능성을 평가하기 위한 기준이 명확해진다. 시장에서 성과를 거두기 시작한다.

하이프 사이클이라는 용어와 이를 구성하는 5 단계는 신기술 마케팅에서 점차 더 널리 사용되고 있다.

Continue reading

양자컴퓨터는 퍼블릭 블록체인을 죽일것인가?

TL; DR:

못죽여.


양자컴퓨터 또한 외계기술이다.

일부는 양자컴퓨터가 개발되면 블록체인을 죽일것이라고 한다. 과연 사실일까?

몇년 전 필자가 비트코인 투자하는 것을 막고있는 유일한 고민이 양자컴퓨터였다. 공부를 좀 더 한 뒤 알게 된 사실인데 사토시 나카모토는 이미 이 질문에 답한 적이 있었다. 그럼 그렇지, 사이버 펑크 커뮤니티가 이런 질문을 답하지 않았을 리 없지. (비트코인을 더 일찍 샀어야 했는데)

결론은 양자컴퓨터는 블록체인을 죽일 수 없다는거다.

왜 죽일 수 없는가?

양자컴퓨터는 그 어떤 암호시스템도 파괴한다면서?

맞다. 양자컴퓨터는 RSA, ECDSA 를 포함한 비대칭 암호화 알고리즘에 직격탄을 안길 수 있다 (비트코인이나 이더리움은 ECDSA 를 사용).

하지만  비트코인 주소는 단순히 퍼블릭 키가 아니라 퍼블릭 키의 해시이다

그것도 한번 해시한 것이 아니라 두가지 해시 알고리즘 (SHA-256 과 RIPEMD-160) 을 써서 해시했다.

양자컴퓨터는 해싱 알고리즘을 망가뜨리지 않는다

따라서 양자컴퓨터가 만들어져도 해시 알고리즘이 약해지는 일은 없다.[1]

이에 대해 이더리움의 창립자인 천재 소년 비탈릭 부테린이 쓴 좋은 글이 있으니 참고하기 바란다:

Satoshi’s Genius: Unexpected Ways in which Bitcoin Dodged Some Cryptographic Bullets

지금부터는 사실 양자컴퓨터와 별 관련 없는 일이다.

Continue reading

왜 그동안의 함수형 언어 홍보는 잘못됐는가?

그렇다. 함수형 프로그래밍과 그것을 포함하는 “선언식 프로그래밍” [1] 은 그동안 이른바 산업 프로그래밍과 산업 프로그래밍 언어의 혁신요소들의 주요 원천 중 하나였다[2]. 하지만 그동안의 함수형 언어 홍보에서는 중요한 오류들을 범했다.

예를 들어 함수형 에반젤리스트들은 아래와 같은 광고어들을 내세웠었다.

“함수형 언어에서 변수는 값이 바뀔 수 없어요. 그리고 이게 좋아요. 버그를 막아주니까.”

이걸 듣는 사람들의 반응은 아마도 당장 발이 묶인 느낌일 것이다. 그래서 “그러면 코딩을 어떻게 해요?” 라고 묻는다면, 이런 대답이 올 것이다. “변수 변경이 정말 필요할 때는 변경할 수도 있어요. 그리고 함수형 프로그래밍에서는 꼬리 재귀를 사용하지요.” 그러면서 아마도 계승(factorial)이나 피보나치 예제를 주머니에서 꺼낼 것이다.

이렇게 되면 프로그래머는 아마도 고개를 갸우뚱 하며 (말은 하지 않고) 생각할 것이다.

“그렇게 되면 어차피 명령식에서랑 똑같이 변하는 변수를 사용하지 않을까? 과연 참고 변수를 변하지 않게 사용할 수 있을까?”

“그리고 나는 일할 때 매일 계승을 짜진 않는단 말야..흠..”

Continue reading

600억 값어치 해킹으로 이더리움(Ethereum) 가격 폭락

비트코인 유사한 인터넷 가상 화폐 이더리움(Ethereum)의 가격이 해킹 사건으로 폭락했다.

이더리움 단위당 가격은 최고기록 $21.5 달러로부터 불과 몇시간 사이에 $15 달러까지 곤두박질 쳤다. 5천만 달러 값어치의 해킹 절도 사건 때문이었다. [1]

gettyimages-149818149.jpg

이더리움 개발자들은 이 해커의 절도를 되돌리는 핫픽스(Hard fork)를 제안하고 있는 중이다.

이더리움은 비트코인과 유사한 탈중앙화 화폐이다. 비트코인과 다른 점이라면 화폐기능 외에도 탈중앙화 조직이란 기능과 스마트 계약(Smart Contracts) 기능을 가졌다는 점이다.

이상은 최대한 간단한 소개이고, 기술적으로 보다 정확히 말하자면 Ethereum 블록체인 (네트워크) 자체는 그 어떤 취약점도 발견되지 않았다.

취약점이 발견되어 이용당한 것은 이더리움 플랫폼 위의 애플리케이션(DApp, 즉 Decentralized App) The DAO 이다. 본 블로그에서는 일전에 <크라우드펀딩의 새로운 역사> 란 제목으로 해당 프로젝트를 소개한 적이 있다.

hour_cryptocompare_index_eth_usd_168_11466160967350

The top graph shows the value of ether in US dollars, while the second shows the volume of transactions on the network over time. — CryptoCompare

Continue reading

싱글스레드 모델이 액터 모델(Actor-Model)보다 나은 X가지 이유

1. 액션(동작) 순서 컨트롤이 된다. 액션의 페이스를 컨트롤할 수 있다. 예를 들어 30fps 로 모든 몹의 x좌표 더하기 1. 액터 모델에서는 비동기라서 그 액션이 어느 프레임에 들어갈찌 모른다.

2. 디버깅이 쉽다.
2.1 액터 모델에서는 글로벌 상태에 브레이크 포인트를 찍은 후에 매개인의 메일박스를 검사해야 하는 번거로움이..
서버의 경우 클라와 달리 브포보다 로그가 더 유용할 경우가 많다. 예를 들어서 Joe Armstrong 과 Richard Stallman 등 분들이 모두 printf 디버깅 방식을 더 선호한다는 소문이… 하지만 서버가 클라만큼 상태가 복잡할 경우, 브포(==시간정지) 를 통한 글로벌 상태 파악이 극히 중요해질 때가 있다.
2.2 그리고 액터 모델은 비결정론적이라서 어떤 버그들이 어떤때는 재현되고 어떤 때는 재현되지 않을 수 있다. (그러고보니 2.2 항목은 LMAX 의 장점만 말하면 다 나오네.)

3. 반경 10메터안 모든 몹들에게 범위공격. 액터모델의 경우 남의 좌표를 알 수 없어서 일일이 물어야 한다. “님 좌표 얼마임?” (그렇지 않으면 좌표를 좌표테이블에 등록해야 하는데, 그러면 액터모델이 아니게 됨) (IO 오버헤드, 코딩 코스트)

4. 로드밸런싱따위 필요없다. 액터모델의 경우 (스케쥴러에 따라 다르지만) (어차피 스케쥴러 연구하는 사람은 없으니) 액터 로드밸런싱이 필요한 경우가 있다(Skynet 역사 참조). 반면 싱글스레드 모델에서 프로그래머는 신이고, 로드밸런싱따위 필요없다.

5. 트랜잭션?

6. 클라도 싱글스레드 모델이잖아.

7. CPU 성능에 좋다 (동일언어) (사실 이건 가장 중요하지 않은 원인이다) (늘여쓰면 글한편감이라 자세한 내용은 생략한다).

결론: 두 모델이 서로 다른 문제 도메인 (Problem Domain) 에 적합할 것 같다는거다:

  • 액터모델은 격리성, 분산성과 faul-tolerance 가 골(goal)에서 제일 중요한 경우 또는 message-passing 자체가 문제를 잘 모델링할 경우 (IM, Instant Messenger: e.g. Facebook Messenger, Whatsapp, etc.)
  • 싱글스레드 모델은 글로벌 상태 컨트롤이 중요한 경우. 예를 들어 게임. (시뮬레이팅 문제?)

적재적소(適材適所).

길게 쓰면 아무도 안읽으니 이번에도 후딱 끝내는 미덕을 발양하겠다.

(끝)

[번역] ZeroMQ설계자: 세계를 구원하라

  • 번역: coolspeed

이 글은 ZeroMQ설계자가 지은 책이며 ZeroMQ의 “바이블”이라 불리는 ZGuide 의 머리말이다.

이 책은 다양한 프로그래밍 언어 예시 버전의  PDF, epub 등 이북 포맷으로 다운로드도 가능하고[1], 한글 번역도 온라인에서 읽을 수 있다. 당연히 그속에는 이 머리말의 한글번역도 포함되어 있었다. 다만 번역이 만족스럽지 못해 필자가 직접 번역했다.


ZeroMQ 100 자 요약

ZeroMQ (ØMQ, 0MQ, or zmq 라고도 표기함) 는 임베드블 네트워킹 라이브러리처럼 생겼는데 실제론 컨커런시 프레임웤처럼 작동한다. ZeroMQ 는 원자적으로 메시지를 배송하는 소켓을 제공하는데 그 배송수단으로는 스레드간 통신, 프로세스간 통신, TCP 그리고 multicast 등 다양하다. 당신은 ZeroMQ 소켓을 N-to-N 방식으로, fan-out, pub-sub, task distribution, 그리고 request-reply 등 패턴으로 사용할 수 있다. 이것은 클러스터 제품들의 뼈대로 사용하기에 전혀 문제 없는 높은 성능을 가지고 있다. 이것의 비동기 I/O 모델은 당신이 message-passing task처럼 짜여진, 확장성 있는 멀티코어 애플리케이션을 만들 수 있게 해준다. 언어 API 만큼 고득점을 갖고 있으면서 거의 모든 OS에서 돌아간다. ZeroMQ 는 iMatix 에서 개발했으며 LGPLv3 라이센스로 소스가 오픈되어있다.

 

세상을 구원하다

ZeroMQ 요놈은 정말 좋은데. 어떻게 말로 표현할 방법이 없네.  ZeroMQ의 가치를 설명하기 위해, 일부 사람들은 요놈이 제공하는 모든 훌륭한 기능들을 나열하는 것으로 부터 시작하려고 한다:

  • 이놈은 스테로이드를 처먹은 소켓이야.
  • 이놈은 라우팅 기능이 있는 우편함으로 비유할 수 있지.
  • 존나 빠름.

Continue reading

이더리움(Ethereum)의 진정한 가치: 가격 폭등을 자축하며

스크린샷 2016-02-12 오전 2.47.27

출처: coinmarketcap.com

Vitalik Buterin 이 최근에 트위터에서

한동안 이더리움의 가치에 대해 가장 잘 해석한 것 같다

면서 칭찬한 글을 퍼옵니다.

Continue reading