board_free custom_top_html:no
default debug random = 0 / type = READ / detected = READ
자유
2016-06-20 21:42:52

다오, 이더리움 그리고 탈중앙화

단축키

Prev이전 문서

Next다음 문서

크게 작게 댓글로 가기 위로 아래로

다오, 이더리움 그리고 탈중앙화

 

 

 

조금은 복잡하고 지루할 수 있는 원론을 이야기해보고자 합니다.

 

중국 ‘장자’의 고서에 보면, 한 가지 재미있는 이야기가 나옵니다. 때는 춘추시대 말기, 오나라에 ‘부차’라는 왕이 있었습니다. 부차는 인재를 중용하고 법을 바로 세우며 월(越)나라 일부를 공략하는 등, 전성기를 달리고 있었지요. 이러한 전성기를 구가하는 동안 부차 왕은 수많은 미녀와 좋은 음식 그리고 좋은 경치 등의 향략을 즐겼고, 겸손했던 그의 판단력은 욕심과 자만으로 흐려지고 있었습니다. 어느날 이 부차 왕은 형(荊)나라를 치려고 마음을 먹습니다. 월나라의 왕인 구천이 와신상담하여 호시탐탐 재기를 노린다는 것을 아는 경험많은 중신들이 부차 왕을 말려보지만, 왕은 오히려 충신이었던 재상 오자서(伍子胥)를 죽이고, “눈앞에 적이 있는데 정복치 않고 무엇하는가!”라고 호통을 칩니다. 그러던 중에, 태자 우(友)가 간언을 합니다. “아침에 정원에 갔더니 나무에 매미가 앉아서 울고 있었습니다. 그 뒤를 보니 사마귀 한 마리가 매미를 잡아먹으려 노리고 있었습니다. 그 때 홀연 참새가 날아와 사마귀를 먹으려고 노리지 뭡니까. 그런데 사마귀는 눈앞의 먹이에만 집중하여 이를 알아차리지 못하고 있었습니다. 천하에 이러한 예가 부기지수입니다.” 부차는 이러한 말조차 듣지 않고, 결국 형(荊)나라를 공격하다가 뒤에서 월(越)나라의 공격을 받아 패한 후 자결하고 맙니다.

 

위 이야기에서 유래한 사자성어가 당랑규선(螳螂窺蟬)인데 흔히 ‘지금 당장의 이익만을 탐하여 그 뒤의 위험을 알지 못한다’는 소탐대실(小貪大失)의 의미로도 사용되는 사자성어입니다.

 

현재 이더리움을 포함한 가상화폐 산업에는 수많은 주체들이 다양한 이해관계를 가지고 복잡하게 관계를 형성하고 있습니다. 무엇이 소(小)이고 무엇이 대(大)인지는 각자의 입장에 따라 다를 수 있을 것입니다. 소(小)와 대(大)에 대해 이야기를 하기 전에, 먼저 논란이 되고 있는 몇 부분을 살펴보는 것이 도움이 될 수 있습니다.




 

1) 탈중앙화(decentralizedness)란 무엇인가?

 

“A lot of people automatically dismiss e-currency as a lost cause because of all the companies that failed since the 1990’ s. I hope it’s obvious it was only the centrally controlled nature of those systems that doomed them. I think this is the first time we’re trying a decentralized, non-trust-based system.”

사토시는, 비트코인을 최초의 무신뢰 기반의 탈중앙화 시스템이라고 정의하고 있으며, 그 전의 모든 전자화폐는 중앙집권적인 속성이 있었기 때문에 실패했다고 기술합니다.

 

“a cryptocurrency, but once again fell short of the ideal by relying on trusted computing”

이더리움 백서에서도 마찬가지로 신뢰기반의 화폐는 탈중앙화가 아님을 지적합니다.

 

탈중앙화란, 간단하게 말해서, 각자가 자신의 화폐를 ‘온전히’ 소유하는 것입니다. 자신의 화폐를 이체하거나, 보관할 때 다른 누군가의 도움이나 간섭이 필요없으며, 애초에 자신이 아닌 제3자가 자산을 움직이거나, 움직일 수 없는 것이 곧 탈중앙화입니다. 따라서 관리의 의무도 본인이 오롯이 지게 됩니다. 자신이 해킹을 당하거나, 잘못하여 코인을 잃는다면 당연히 책임도 자신에게 있습니다.

 

다만, 이를 거래소에 맞기거나 신뢰할 수 있는 기관에 맡긴다면, 이는 더 이상 탈중앙화가 아닙니다. 나 자신이 그러한 거래소나 기관, 즉 제3자에 대한 신뢰에 의존할 수 밖에 없게 되기 때문입니다. 결국 이들 거래소나 기관이 성공하면 중앙화의 이익을 얻을 수 있으나, 이들이 실패한다면 중앙화의 불이익을 받게 됩니다.

 

반대의 예로는 은행이 있습니다. 우리는 은행에 돈을 맡기면 은행을 100% 신뢰(또는 신뢰하지 않더라도 어쩔 수 없이 의존)해야 합니다. 은행은 서비스가 참 좋습니다. 이자도 주고 안전하게 보관도 해주고, 예금자 보호법으로 은행이 파산해도 법적으로 각 은행 당 5,000만원까지는 무조건 보상도 해줍니다. 은행을 쓰면 되는데 왜 비트코인을 사용하나요? 은행이 이렇게 좋은데 비트코인이란게 존재 가치가 왜 있을까요?

 

The Genesis Block: "The Times 03/Jan/2009 Chancellor on brink of second bailout for banks."

 

2009년 1월 3일에 탄생한 최초의 블록에서 사토시는 다음과 같은 글귀를 적어 넣습니다.

 

2009년 1월 3일자 타임지, 영국수상은 은행들을 위한 두 번째 구제금융을 지원하려 한다.”

 

결국 이 두 번째 금융은 영국수상인 Alistair Darling의 진행아래, 국민들의 혈세를 이용하여 당초계획보다 무려 두 배 수준으로 은행들에 지원이 됩니다. 이 은행들은 국민들의 예금을 가지고 사업을 벌이다 파산위기에 놓여 있던 상황이었습니다. (이때 일어났던 금융위기는 현재의 브렉시트에까지 영향을 미치게 됩니다)

 

정부가 장난칠 수 없는 돈, 제 3자가 권한을 가지고 운용할 수 없는 순수한 100% 나만의 돈, 양적완화나 구제금융을 통한 인플레이션 가치절하가 일어나지 않는 진실한 돈을 만들기 위해 굳이 블록체인을 써가며 약 1년 반여의 개발기간 끝에 비트코인이 탄생하게 됩니다. 이러한 특성이 없다면 처음부터 블록체인은 존재할 수도 그럴 이유도 없었던 것입니다.




 

2) 이더리움 재단의 개입은 탈중앙화의 가치를 훼손하였는가?

 

Recursive calling vulnerability로 불리우는 약점을 이용한 해킹 공격은 6월 17일에 시작되었으며, 오후 4시를 조금 넘은 시각 SLOCK.IT의 채팅방에 다음과 같은 채팅이 이루어집니다. 이때에 이들은 해킹에 대해 깨닫게 되었으며 논의가 시작되고 비탈릭에게 도움을 요청하게 됩니다.

 

H_KSzSga5rcM6nZzuk332l17-xACTROo0U2Rnomq

 

 

 

짧은 회의 끝에, 이더리움 측에서는 거래소들을 대상으로 긴급 공지(레딧의 공지)를 내리게 됩니다.

 

-v4HBBgwwxM_Diy6MkNb7uwBLTyQUusFJm6iM66O

 

내용은, 당장 ‘이더’와 ‘다오’의 거래를 멈추고, 입출금도 받지 말라는 것이었습니다. 폴로닉스와 크라켄 등을 비롯한 거래소들은 즉시 ‘전체 사용자’의 거래와 입출금을 멈추게 됩니다. 입출금은 블록체인에 직접적으로 기록되는 내용으로, 이를 멈췄다는 것은 부정할 수 없는 명백한 ‘제3자의 개입’으로 풀이될 수 있습니다. (해당 채팅내용을 보면, 비탈릭이 직접 거래소 담당자들과의 단체 채팅방에서 거래소 거래와 입출금을 하지 말아달라는 내용이 나옵니다)

 

6월 17일 The DAO에 대한 해킹 공격 이후, 이더리움 재단의 신속한 공식성명이 발표됩니다. 공격은 다오에 대한 것이고 이더리움 자체는 온전히 안전하기 때문에 계속해서 거래를 재개해달라는 내용이었습니다. 또한 소프트포킹과 하드포킹에 대한 내용도 논의되었습니다.

 

소프트포킹은 다오에 투자한 모든 이들의 이더가 담긴 관련 계좌들을 일단 거래중지(freeze)시키는 것입니다. 그리고 대안을 찾아보자는 것이죠.

 

하드포킹은 사실상 다오프로젝트를 중단하고, 모든 이더를 투자자들에게 그대로 되돌려주는 것입니다. 단기 투자자 입장에서는 당장 최대한 많은 금액을 돌려받는 하드포킹 쪽을 선호하는 것이 자연스러울 것입니다.

 

‘포킹’이란 기본적으로 블록체인 상의 내용이 ‘기존과 달라짐’을 의미합니다. 100번째 블록에서 A가 전재산인 천원을 B에게 보냅니다. 그리고 동시에 C에게도 전재산인 천원을 보냅니다. 그 두가지의 기록은 서로 공존할 수 없습니다. 전재산인 천원을 B에게도 보내고 C에게도 보내는 이중지불은 존재할 수 없기 때문입니다. 그래서 이 상충되는 내용의 두 블록은 ‘서로 분리’가 됩니다. 이것이 포킹(forking: 손잡이에서 한줄로 가다가 끝에서 3갈래로 갈라지는 포크 식기처럼)의 요체입니다.

 

The DAO측에서는 이번 포킹은 사실상 이전 기록을 바꾸는 것도 없고, 이전 기록으로 되돌아가는 것도 아니라고 주장합니다. 그렇기 때문에 역사를 바꿔선 안된다는 비가역성의 원칙에 위배되지 않는다는 것이죠. 생각해보겠습니다. 이전 기록에서는 존재하지 않던 새로운 이체내역을 제3자가 임의로 추가하는 것은 임의변경이 아닐까요? 이 내역을 추가함으로써 이전의 내용이 상쇄됩니다. 내용을 수정하거나 빼는 것은 변경이지만, 추가하는 것은 변경이 아니라는 주장은 선뜻 이해하기 어려운 주장입니다. 제3자에 의한 변경, 삭제, 추가 모두 ‘비가역 원칙’과 ‘탈중앙화 원칙’에 위배됩니다.




 

3) 커뮤니티만 합의하면 언제든 포킹이 가능하다?

 

일각에서는 커뮤니티의 다수만 합의가 되면, 언제든 포킹이 가능하다는 주장을 합니다.

 

결론부터 말씀드리면, “네 기술적으로 포킹이 가능합니다. 하지만 이체내역에 대한 포킹은 해서는 절대 안됩니다. 그것은 탈중앙화 블록체인 산업 전체가 파멸로 가는 길입니다.

 

현재 글에서 분산원장의 원론부분을 다 다루지는 않겠지만, 단순한 설명을 통해 이해를 돕고자 합니다. 사토시가 블록체인의 ‘작업증명(Proof-of-work)’을 통해 비잔틴 장군 난제를 풀어냈고, 이를 통해 노벨 수학상을 받을 수 있다는 이야기들이 있습니다(실제 사토시로 지목받은 크레이그 라이트가 자신은 노벨상에 관심이 없다고 언급하기도 함). 사토시는 노벨수학상을 받을 수 없습니다. 비잔틴 장군의 문제를 ‘수학적’으로 해결한 것이 아니기 때문입니다. 사토시는 이 문제를 ‘인문학’적으로 풀어냅니다. 아래는 비트코인 백서 내용입니다.

 

“As long as a majority of CPU power is controlled by nodes that are not cooperating to attack the network, they'll generate the longest chain and outpace attackers. The network itself requires minimal structure. Messages are broadcast on a best effort basis, and nodes can leave and rejoin the network at will, accepting the longest proof-of-work chain as proof of what happened while they were gone.”

 

“(번역) 선의의 노드가 과반수의 CPU파워를 통제한다면 그들이 가장 긴 체인을 만들 것이고, 공격자들의 체인을 압도하게 된다. 네트워크는 최소한의 구조만을 가진다. 메시지들은 최선의 노력을 통해 전파된다. 노드들은 자발적으로 네트워크를 떠나거나 다시 합류할 수 있으며, 네트워크에서 떨어져 있다가 재 합류할 때에는 가장 긴 작업증명 체인을 그 동안의 기록으로 받아들인다.”

 

작업증명은 가장 긴 체인, 즉 가장 많은 해시파워 또는 가장 많은 이들이 지지하는 노드가 만든 체인을 올바른 기록으로 채택합니다. 만일, 악의의 공격자가 과반수의 CPU파워를 가지고 있다면, 마음대로 포킹을 하며 블록체인의 기록을 바꿀 수 있습니다. 그러나 그러한 일은 일어나지도 않았고 일어나서도 안됩니다. 그러한 임의 포킹을 막기 위해, 하나의 채굴풀이 과반 수에 가까워지면, 풀의 참여자들이 자발적으로 해당 풀을 떠남으로써 하나의 풀이 과반수가 되는 것을 막습니다.

 

이를 ‘51%공격’이라고 부르며, ‘51%’를 통한 이체내역의 개입가능성은 블록체인 시스템 내의 어쩔 수 없는 해킹취약점(Attack Vector)이지, 다수가 이용하라고 있는 기능(Feature)이 아닙니다. 즉, 의도적으로 이체기록에 손을 대는 일이 있어서는 안됩니다.

 

동일한 내용을 이더리움에서도 ‘공격’으로 규정하고 있으며, 다오에서도 이는 마찬가지입니다. 이더리움  체인위에서 구동되는 '다오(The DAO)'에서는 ‘튜링 완전언어’를 사용하여 자유도 높은 코딩을 할 수 있기 때문에, 이를 통해 “최초로 동의하는 투표자 51%는 나머지 소수의 돈을 모두 빼았는다”라는 다수결 공격이 가능합니다. 또한 같은 내용이더라도 매우 다양한 방식으로 코드를 표현할 수 있기 때문에 미리 완전히 해당 기능을 막아내기는 쉽지 않습니다. 따라서 The DAO의 큐레이터들은 본연의 자격을 통해 Whitelisting 기능을 이용하여 그러한 공격을 막아냅니다(그 권한이 매우 막강해 *Veto로도 불림(대통령거부권: 의회에서 결의안이 통과되더라도 대통령 혼자 절대적으로 행사할 수 있는 거부권)). 왜냐하면, 다수라고 마음대로 하는 것은 블록체인의 운용방법이 아니며 그랬던 적도 없고, 오히려 공격의 도구로 사용될 수 있기 때문입니다. 물론 이러한 Whitelisting의 등록/삭제 권한도 논란의 여지는 있으나 이더리움 어플리케이션의 특성상 어쩔 수 없는 부분으로 여겨지고 있습니다.

 

게임이론에 근거해 볼 때, 다수결은 잘못된 인센티브가 주어질 때 게임자체를 파괴시킬 수 있으며, 다수간의 유대가 생기고 서로의 존재를 인식하게 되면 ‘공모’가 가능해지기 때문에 게임 자체(블록체인)에 구멍이 생기게 됩니다. 이러한 공모 가능성을 아예 제거하기 위해 고안된 것이 ‘익명성’입니다. (안타깝게도 비트코인의 경우, 최대 풀 운영자가 서로 아는 사이이므로, 그들이 마음만 먹으면 ‘공모’공격을 하는 것이 가능합니다. ‘공모’공격보다 비트코인을 안전하게 유지시키는 것이 그들에게 더 이익이기 때문에 유지되고 있을 뿐입니다.)




 

4) 이번에 논의되고 있는 포킹은 정당한가? 그 기준은 무엇인가?

 

소프트포킹은 다오에 투자한 모든 이들의 이더가 담긴 관련 계좌들을 일단 거래중지(freeze)시키는 것이고, 하드포킹은 사실상 다오프로젝트를 중단하고, 모든 이더를 투자자들에게 그대로 되돌려주는 것입니다.

 

어떠한 경우가 되었든, 우리가 공격자로 알고있는 사람에게 가도록 조정되어 있는 ‘이더(=화폐)’가 임의적으로 ‘조정자’에 의해 또는 ‘다수에게 선출받은 중재인’에 의해 옮겨지는 것입니다. 자, 우리는 이 자가 ‘공격자’라고 우리의 보편적 상식과 훈련된 지성으로 ‘판단’하고 있습니다. 그가 ‘공격자’라는 판단이 틀리지 않았다는 것은 대부분이 동의하실 것입니다.

 

시나리오를 써보겠습니다.

 
  1. 이자는 사실 공격자가 아니라 오히려 내부인에 의해 이용된 사람일 뿐이다. 내부인의 목적은 애초부터 이더를 훔치려는 것이 아니고, 이러한 분란을 조정하고 탈중앙화가 무너지는 모습을 연출하며 가상화폐 시장을 타격하기 위함이다.

 
  1. 이자는 공격자가 아니라 사실 피해자이다. 내부인이 공격자에게 특정한 형태로 이더를 주기로 약속했으며, 이 피해자는 이 이더를 받기로 하고 특정 상품을 미리 내부인에게 넘겼다. 드디어 대가로 이더를 받으려는 순간, 갑자기 다수의 노드(주주)와 제3자가 개입하여 그가 대가로 받은 이더를 빼았는다.

 

두 가지 시나리오입니다. 가능성이 거의 없어보이지만, 이러한 일이 절대 아닐 것으로 수학적으로 증명할 수 있을까요? 우리가 수학적으로 증명하지 못한다는 것은 100%가 아니라는 뜻이고 이는 결국 여기에 우리의 주관적 판단이 서려있다는 점을 암시합니다. 이것이 하나의 ‘사례’로 그치지 않고 다음 것들의 ‘선례’로 이용된다면, 블록체인의 탈중앙화는 훼손될 수 밖에 없을 것입니다.




 

5) 이더리움 또는 다오(Dapp)는 뭐가 다른가?

 

그러나 위의 내용처럼 진리가 명확하면 많은 사람들이 분분한 의견을 가지고 논쟁을 할 이유가 없을 것입니다. 이모저모의 논의가 쉽사리 정리되지 않는 데에는 이유가 있습니다. 이더리움은 비트코인과 완전히 다르기 때문입니다.

 

왜 사람들이 중앙의 개입을 이토록 간절히 외치고 있을까요? 탈중앙화를 알고, P2P와 무신뢰시스템을 이해하는 많은 사람들(심지어 이더리움재단의 개발자)도 중앙개입을 잘한 것으로 평가하며 다수에 의한 이체내역 조작을 해야한다고 말하고 있을까요?

 

두려움이 큰 이유가 될 수 있습니다.

 

비트코인은 내재적 결함이 상당히 적었습니다. 가장 큰 사건으로 기억되는 ‘Mt Gox거래소 사건’의 경우, 비트코인의 내재적인 결함을 이용한 Malleability attack가 가해졌으나, 대부분의 거래소에서는 이미 알고 있던 문제였고 대비책을 만들어 잘 사용하고 있었습니다. 비트코인 재단에서도 패치를 준비하고 있었고, 단지 MtGox거래소만 이에 대한 방어를 제대로 못한 것으로 보입니다.

 

비트코인은 기능이 매우 제약되어 있고, 사용할 수 있는 커멘드도 30여개 수준에 불과하기 때문에 예외성을 다루기도 쉽고 내용이 많지도 않았습니다.

 

이더리움 스마트 컨트랙의 경우, 사실상 튜링완전한 언어를 다루게 되면서 비트코인에서 많은 것이 더해지고 바뀐 EVM을 사용하게 되었으며, 스마트컨트랙트 자체도, 어디에서 구멍이 생길지 알 수 없는 매우 불확실한 형태입니다. 이런 경우 해킹은 무조건 생긴다고 봐야합니다. 구멍없는 소프트웨어는 없기 때문입니다. 단지 구실이 없어 해커들이 시간이나 자원을 투자하지 않았을 뿐입니다.

 

The DAO의 경우, 화폐 가치를 지닌 ether를 다루고 있었고 이를 스마트컨트랙트를 통해 관리하고 있었으니 해커로써는 명확한 타겟이 생긴 셈입니다. 아마 이번에 무너지지 않았다면 결국 다음번 공격, 그 다음번 공격이 계속 이루어졌을 것이라고 생각합니다.

 

이러한 미결정성(non-deterministic) 그리고 이더리움만의 특수성 때문에, 그리고 얼마든지 다른 공격이 이루어질 수 있다는 것을 깨닫고 이를 물리적으로 원상복구시켜줄 제3자의 개입을 용인하는 분위기로 흐른 것이라고 이해를 합니다. 물론 애초에 다오측의 코드 검증부터가 부실했으며 이들이 2천억 상당의 재산을 관리한 방법은 경악을 금치못할 정도의 수준이었다는 점은 일련의 연속된 사건으로 모두가 목격했을 것입니다.

 

비트코인과는 달리 중재인이 필요하다는 공감대가 형성이 된 것은, 결국 이더리움의 튜링완전이 가져온 보안의 불완전성으로 이해할 수 있을 것입니다.




 

6) 이더리움 재단의 잘못 설정된 인센티브와 아쉬운 점

 

이더리움 재단은 이상한 행태를 보입니다. 어차피 해커가 20일 이상 돈을 빼갈 수 없다는 것을 알았음에도 불구하고,  거래소 거래를 멈추고, 포킹논의를 하는 등의 중앙집권적 조치를 취한 것입니다.

 

왜 코인의 가격이 올라가면 좋고 폭락하는 것은 막아야 했을까요? 재단은 해커가 무언가를 할 수 있는 것도 아닌데 급하게 입장발표를 합니다. 그리고는 입장발표 내용을 바꿉니다. 왜 그렇게 촌각을 다투어야 했을지 아쉬움이 남습니다. 이더리움 재단은 이더리움 프로그램을 개발하는 곳이지, 이더 가격이 폭락할 때 대중을 안심시키고 거래소를 멈춰서 가격방어를 해주는 기관이 아닙니다. 재단 관계자 중 일부 또는 상당수가 이더나 다오를 보유했었을 거라는 점은 매우 합리적인 추론입니다. 그렇다 하더라도, 선순위 직무가 이더 가격인지, 이더리움 플랫폼의 가치인지는 구분이 되었으면 좋았을 것입니다.

 

다오 자체의 Proposal 기능을 이용하여 이용자들을 통해 직접 계좌를 얼리거나 빼앗아오는 방법도 사용가능했으라고 짐작을 하는데, 바로 거래소를 멈추어 버렸다는 점이 가장 아쉽습니다. 애초부터 Proposal을 이용해 해커의 공격에 대응했더라면, 다오 플랫폼의 정합성도 인증하고 온전하진 않으나 탈중앙화 요소도 지켜낼 수 있었을 것입니다. 물론 시간에 쫒기고 대폭락으로 인한 자산가치 손실과 수많은 사람들의 압력으로 인해 제대로 정신차리기는 어려웠을 것이라는 이해를 합니다.

 

 


 

7) 앞으로의 방향

 

이더리움은 대규모의 자산과 고객을 다루는 DApp을 이더리움 체인위에서 안전하게 운용하는데에 실패함으로써 가치있는 경험을 얻게 되었습니다. 앞으로도 이러한 실패는 발생할 것이고 더욱 많은 전문가들과 탄탄한 보안적 요소들이 추가되어야 할 것입니다. 또는 이더리움 EVM을 포함한 언어체계 자체가 수정되어져야 할 수도 있습니다. 이러한 것은, a) 이더리움 재단이 이더리움의 운용주체라는 것을 스스로 인정하고 자발적으로 책임을 지는 방향으로 가거나, b) 지금처럼 단순한 오픈소스 형식을 유지하는 두 갈래의 길이 있을 것입니다.

 

이더리움 재단은 아예 커뮤니티 동의하에 유사시 블록체인을 관리하는 반탈중앙화(semi-decentralized)의 체제로 가거나, 아니면 이제부터는 다시는 이런 일이 없을 것으로 공표하고 계속해서 온전한 탈중앙화(decentralized)를 추구할 수 있을 것입니다. 반탈중앙화가 탈중앙화에 비해 나쁘다고 평가할 수는 없습니다. 오히려 상업적 측면에서보면 어느정도 주체가 명확한 편이 대중성이 있을지 모릅니다. 이러한 방향성은 신중한 고민을 통해 선택해야할 것입니다. (다만, 반탈중앙화 모델로 갈 경우, 경쟁상대는 대기업들의 모듈이 될 수 있습니다. 지금은 탈중앙화기 때문에 부실한 소프트웨어도 이해를 하는 경향이 있지만, 직접적 개입이 시작되면 지금까지처럼 느슨한 시선을 받기는 어려울 것입니다.)

 

이번에 소프트포크 또는 하드포크 등이 일어난다면, 이것이 일회적인 조치인지 앞으로의 프로토콜인지 정의가 되어야 할 것입니다. 원칙적으로 이러한 종류의 포킹은 일어나서는 안됩니다. 하지만 이미 지금 돌이키기에는 늦었고 이왕 논의가 되고 있으니 최선의 선택을 하는 것이 중요하다고 생각합니다. 다만, 한번 포킹이 되면 이더리움은 다시는 이전의 이더리움으로 돌아갈 수 없을 것입니다.

 

이번 사건과 같은 일이 다시 일어나더라도, 명확한 P2P간의 의사결정 시스템과 규칙을 만들어 둔다면 인위적개입을 최소화할 수 있을 것입니다. 다오가 P2P의사결정 프로토콜의 한 예였으나 안타깝게도 너무 높은 자유도를 감당하지 못하고 무너집니다.

 

다오 프로젝트의 경우 사실상 실패하였고, 제대로 가동되어 보지도 못하고 다오의 진짜 도전과제인 탈중앙화 O2O는 그저 입만만 다시게 되었습니다. 현재의 The DAO는 해체되거나 다른이에게 승계가 되어 새로운 더 나은 모습으로 다시 가동되리라 기대합니다.





 

중국 ‘장자’의 고서에 나오는 '눈 앞의 먹이에 정신이 팔려 정작 뒤의 포식자는 눈치채지 못하고 있는 사마귀'가 되지 않으려면 항상 정체성을 생각해야할 것입니다. 삼성의 이건희 회장은 1993년 “마누라와 자식 빼고 다 바꾸자”라는 모토와 함께 ‘신경영(프랑크푸르트 선언)’을 선포합니다. 이후, 1995년에 구미공장에서 품질이 최고라는 가치아래, 엄격한 품질기준에 미달하는 약 500억원에 해당하는 당시 기준으로는 막대한 양의 재고자산을 부수고 불태우는 ‘불량제품 화형식’을 진행합니다. 당시의 많은 중역들은 이러한 품질을 향한 단결이 그리고 희생을 무릅쓴 정신이 지금의 세계적 브랜드를 만들어냈다고 회고합니다.

 

떨어지는 가격을 막으면 당장은 막을 수 있을 지 모릅니다. 하지만 진정으로 가격을 상승시키는 것은 모멘텀이 아니라 가치입니다. 이더리움은 어쩌면 지금이 성공과 쇠퇴의 갈림길에 서있는 과도기일지 모릅니다. 지금까지 그랬던 것처럼 이더리움의 가치와 정체성에 집중한다면 가격은 자연히 따라올 것이라고 생각합니다.

 

 

 

 

 

 

 

 

 

 

 

 

19
댓글 51
  • ?
    전 하드포크 찬성합니다. 한번 해보면 알게되겠죠. 망하는 길인지 흥하는 길인지. 저는 패닉셀해서 다 털었습니다. ㅎㅎ
  • @세윤
    저는 원칙적으로 불가라고 생각하지만, 이미 일이 여기까지 왔고 진정성있는 논의가 이루어지고 있으니 현재 상황에서의 최선의 결정을 하는 것이 중요하다고 생각합니다. 사실, 이런식으로 포킹이 되는 모델이 어떻게 될지 궁금하기도 합니다. 다만 포킹이 되면 다시는 이전의 이더리움으로 돌아가기 어렵다고 봅니다.
  • ?
    @어른아이
    저도 끝을 보고 싶네요.
    인간은 언제나 biased 되어 있는 것 같아요
  • ?
    좋은 글 잘읽었읍니다.
    전 포킹에 반대 입니다.
    다오와 이더 다 보유하고 있지만 원칙에 위배 되는 일이기때문에
    원칙을 벗어나면 무조건 탈이 난다고 생각하는것입니다.
    비트코인을 오래한 저로써는 탈중앙화의 원칙이 깨지는 순간 그 가상화폐는 무너진다고 생각합니다.
  • 참으로 훌륭한 글 잘 읽었습니다.
    탈중앙화의 근간을 흔든다면 안되지요.
    미래 기술의 발전을 위해 연구적인 측면에서는 가능하겠지만 작금의 이해관계가 상충되는 현 상황에서는 명확한 결정을 내리기가 여간 어렵지 않을까 쉽내요.
  • ?
    이 글이 어른아이님이 사고하고 쓰신 글이라면, 정말대단하십니다
    깊이있는 사고와 이정도의 분석을 하시는 분이시라면 보통이 아닌것 같습니다
    진정 깊이있는 글에 입을 벌리고 정독했습니다
    깊이있는 내용에 대하여 정말 잘 읽었습니다감사합니다
  • ?
    좋은글 감사합니다 저는 하드포크든 소포트든 잘모름니다 다만 어떠한 정책이던 시행착오는 있는것이고 리스크는 존재합니다 단지 어떻게 피해를 최소화하며 합리작으로 운영할것이가가 중요하지요 모든걸 원점으로 돌리는 극단적인 것은 반대합니다 누군가한테는 돈 천만원이 평생모은 것일수도있습니다 시햏작오나 잘못했다면 바로잡아서 잘운영하면됩니다
  • ?
    제가 긴글을 읽지 못하는 병이 있는데 이글은 끝까지 다 읽었네요. 좋은글 감사합니다.
  • 정독하였습니다. 이런 글 읽을때마다 느끼는거지만 보약 한첩이네요. 존경스럽고 감사합니다.
    포킹을 반대하는 입장이였다가 당장의 피해가 너무나도 크기에 어찌됐건 사람은 살리자는 쪽으로 생각을 바꾸었는데요.
    이미 이전의 이더리움으로 돌아가긴 늦은것 같고 앞으로 바뀔 이더리움이 올바른 방향으로 가도록 하는게 최선일것 같습니다.
    하지만 그들이 과연 본인들 울타리밖에 있는 사람들의 말을 귀담아 들을지 걱정이 되기도 합니다.
    이번 사태에 대해 생각하면 하루에도 몇번씩 생각이 왔다갔다 하는 요즘이네요.
  • 어쩐지 이더리움의 한계성이 드러난듯해서 안타깝네요. 아직은 결함 있는 장난감일까요? 쓸만하게 뜯어고쳐야할듯. 보안쪽 개선이 시급하다는 생각입니다.
  • @금마
    일선의 개발자분들도 동일한 이야기를 많이 하십니다. 상용모듈로 쓰는 것은 불가하고 그전에 개념테스트용으로 쓸 수 있을 것이라고요. 여튼 성장통을 겪으면서 계속 발전해 나갈것이라고 기대합니다 ㅎㅎ
  • 해박한 지식과 합리적 논점에 감탄합니다^^
    이더리움의 정체성은 반드시 많은 소비자를 얻게될 것입니다
  • 잘 정리된 글 아주 꼼꼼히 읽었습니다.
    100점 만점에 99 점 주고 싶습니다.

    저는 Fronze 까지는 할수 있다 봅니다만, 체인의 가역성을 원천으로 바꾸는 하드 포크는 진짜 하지 않았으면 합니다.
    Frozen 도 조건이,

    SmartContract 의 버그를 이용해서 DAO 커뮤니티와 해커 컨트랙을 공격해서 ,
    다시 복구하는 노력에 집중해서 피해를 최소화 하여야 한다고 봅니다.
    물론, 이때는 해커와의 또다른 일전이 필요하겠죠.

    이게 현재까지 고민된 Ethereum 을 살리는 방법이라 봅니다.

    물론, 위의 선행적인 공감대와 Action 이 다오와 커뮤니티에 필요한게 아닌가 봅니다.

    더 긴 얘기들도 있겠지만, 체인의 인위적 변경은 최후의 수단이어야 합니다.

    "다수의 폭정" 이는 DAO Curator 는 Fail-safe 역활을 하도록 설계된 것입니다.
    커뮤니티 다수의 이해관계로 인해서 체인까지 가역하게 되는것에는 반대합니다.

    좋은글에, -1 점의 이유는 다음과 같습니다.
    끝부분의 SS 관련 얘기만, 없었다면 말이죠. ^^ 이게 -1 점 입니다.
  • @안씨아저씨
    감사합니다 동의합니다 :)
  • 여기다 제 의견을 다 달면 너무 길어질테니, 좀 시간이 되면 별도의 글로 이야기하겠습니다.
    그런데,

    "The DAO의 큐레이터들은 Veto(대통령거부권: 의회에서 결의안이 통과되더라도 대통령 혼자 절대적으로 행사할 수 있는 거부권) 기능을 사용해 그러한 공격을 막아냅니다."

    어디에 이런 veto 권이 정의되어 있나요? 혹시 해당 코드 부분을 알려주실 수 있나요?

    이런게 있었으면, 포킹이 뭐고 다 필요없이, 그냥 다오 큐레이터가 veto 놓으면 현재 해킹 문제는 다 해결될 것인데요.
  • @atomrigs
    이 기능은 코드상 'whitelisting(allowedRecipient)'으로 불립니다. 오직 whitelist에 추가된 계정만 프로포잘을 올릴 수 있으며, 또한 이더를 수령할 수 있게 됩니다. Curator의 권한으로 계정을 이 리스트에 추가하거나 삭제할 수 있습니다. 명칭은 가볍게 지어놨으나, 사실상 절대적 권한이나 마찬가지이기 때문에 내부에서는 veto로 불리기도 합니다.

    공격은 처음 스플릿을 신청하면서 시작되었습니다. 즉, 공격이 시작되기 전에 공격자는 이미 whitelisting이 된 것이고, 이 한번의 whitelisting으로 이더출금을 재귀적으로 해 나간 것으로 보입니다. 제 개인적 생각으로는 이더 출금신청 자체에서는 문제가 없었기 때문에 listing이 된 것 같습니다. (또는 split은 이미 정의된 그냥 뻔한 기능이라 자동으로 되어 있었을 수도 있고요) - 그게 아니라면 큐레이터의 코드검토가 미숙했던 것이니 이들의 책임이 될 수도 있겠네요.

    아래는 백서에서의 코드 예시입니다.
    // If the curator removed the recipient from the whitelist, close the proposal
    // in order to free the deposit and allow unblocking of voters
    if (!isRecipientAllowed(p.recipient)) {
    closeProposal(_proposalID);
    p.creator.send(p.proposalDeposit);
    return;

    하단은 DAO백서 다운로드 링크입니다.
    https://www.google.co.kr/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0ahUKEwipy5X99bbNAhUIrJQKHTyMCSEQFggcMAA&url=https%3A%2F%2Fdownload.slock.it%2Fpublic%2FDAO%2FWhitePaper.pdf&usg=AFQjCNFAsfRwx2kQNk5X2eP5YSZnrSVnMQ&sig2=CWl0qSxr_VLevEhYB92pHQ
  • @어른아이
    비토라고 표현하는 건 그런오해의 소지가 많은 것 같습니다. 화이트리스팅은 비토권한이 아닙니다. 투표에 의해 이미 결정된 사항에 대해 비토를 내리는 것이 아니라, 결정되기 전에 필터링을 하는 것입니다. 하지만 역시 막강한 권한이라고 볼 수 도 있지요. 그렇기 때문에 이를 견제하기 위해 큐레이터를 투표에 의해 다시 교체할 수 있도록 해 놓았습니다. 그렇게 하면 큐레이터가 가지는 화이트리스팅 권한도 궁극적으로 토큰 홀더에게 돌아가는 겁니다.
    그렇다면, 결국 모든것이 토큰홀더의 투표에 의해 결정되는 것인데, 어떻게 큐레이터의 화이트리스팅 기능이 다오를 간접적으로나마 방어하는 수단이 될 수 있는지 의아할 수도 있습니다.
    큐레이터가 투표에 의해 전부 바뀔 수 있음에도 이것이 간접적 방어수단이 될 수 있는 것은, 큐레이터를 바꾸는 투표행위자체에 의해 토큰보유자에게 그 투표행의의 '악의성'을 평가해 볼 수 있는 기회를 한번 더 제공해주기 때문입니다. 만일 이 때 스플릿 기능이 없다면, 큐레이터의 화이트리스팅 기능도 아무런 소용이 없겠지요. 큐레이터를 바꾸는 투표를 보고 이게 잘못된 것이라고 인지하면, 그 때 이로 부터 자신의 토큰이 악용된다고 생각하는 사람은 다시 스플릿을 할 수 있는 기회를 준 것입니다.
    즉 큐레이터의 간접적 보호장치는 스플릿 기능과의 결합을 통해서 그야말로 한번의 생각할 기회를 더 주는 정도의 간접적 보호장치이지 절대적 비토권한이 아닙니다.

    스플릿을 할 때 스플릿을 신청하는 자가 자기를 큐레이터로 놓을 수 있습니다. 자기가 자신을 큐레이터로 놓지 못하면, 출금을 할 수 없겠지요. 혼자 스플릿을 해서 자신이 큐레이터가 되면, 누구도 이 큐레이터를 바꾸지 못합니다. 스플릿은 어떠한 상황에서도 자신의 코인에 대한 최종적인 권한은 본인에게 있다는 것을 보장하기 위한 장치였습니다.

    이번 문제는 이 큐레이터의 역할이 잘못된 것이 아니라, 그야 말로 어이없는 코딩상의 에러 때문에 논리적 정합성이 깨진 겁니다. 스플릿을 해가나고 나면, 그에 해당하는 다오토큰의 밸런스가 줄어야 하는데 줄지 않은 것이죠.

    참고로 위에서 링크를 단 하이트페이퍼, dao git hub, wiki 어디에도 veto라는 단어는 한번도 나오지 않습니다.
    전혀 정의되지 않은 롤에 대해서 누군가 오해를 하고 과장해석을 해서 바꿀 수 없는 무슨 절대적 권한인 것처름 묘사하고는 다니는 경우는 봤는데, 저는 코드상이나, 공식문건에서는 발견할 수 없었습니다.
  • @atomrigs
    네 당연히 문서엔 없는 명칭이고 그건 설명을 드린것 같습니다. 오해의 여지가 있을 수 있겠습니다 그 부분 반영하겠습니다 ㅎㅎ 해당 기능은 본문에 나오는 것처럼 필연적으로 공격을 막기위해 고안된 장치이지만 동시에 절대적 권한이라고 생각합니다.
  • ?
    죄송합니다. 딴지 좀 걸겠습니다.^^;

    1. 1) 내가 온전히 보유하는 것, 나 아닌 다른 사람이 내 코인을 움직일 수 없는것 등은 탈중앙화하고는 개념이 다른 것 같은데요. 음, 결국 다른 사람에게 의해 점유물이 강제 이동되면 안된다라는 것이 핵심이신 것 같습니다.

    전 이렇게 생각합니다.
    제가 생각하는 탈중앙화는 담보나 신뢰할 수 있는 제3자의 보증 없이 쌍방이 신뢰할 수 있는 상태이고 , 그것이 구현된 계가 블럭체인이라는 것입니다.
    어떤 물건의 점유의 이유가 해킹이라는 정당하지 못한 행위였고, 그런 물건들이 건전한 물건들과 섞이게 되는 것이 오히려 제가 생각하는 탈중앙화의 개념으로서는 탈중앙화를 방해하는 요소라고 생각됩니다. 왜냐하면 거래하는 상대방의 물건의 해킹된 놈인지 정당한 권리에 의한 소유물인지 모르게 되니까요.
    2)양적완화나 구제금융을 한다 해서, 인플레이션이 일어나 가치절하가 일어난다해서 진실한 돈이 아닌 것은 아닙니다.
    그것이 불법 복제된 돈도 아니고, 엄연히 시스템에 의해서 발행된 돈입니다. 왜 진실한 돈이 아니죠?
    만약 디플레가 일어나서 돈의 가치가 상승한다 한다면 그것도 진실한 돈이 아닐까요?

    2. 이더리움 재단에서 초기에 거래소에 거래 중지를 요청했을 때는 해킹된 이더가 인출이 불가능하다는 것이 확실하지 않아서 한 조치라고 하며, 그게 확실해 진 다음 바로 거래 중지 요청을 철회했다고 합니다. 라고 저는 어디서 읽었네요.

    3. 51% 공격이 해킹의 수단이지, 다수가 이용하라고 있는 기능이 아니라는 것은 너무 자의적인 해석 아닌가요? 거꾸로 공격이 그 기능을 이용하는 것 아닐까요?

    4. 1) 포킹이 정당한지는 절대적인것이 아니라 상대적인 것 아닐까요? 다수가 동의한다면 정당하다고 생각합니다.
    2) A,B 사례로 들어서 이더를 해킹한 자가 공격자일 가능성이 100%가 아닐 수 있음을 드셨는데, 전 이 기준은 부당하다고 생각합니다.
    기준은 이더가 그 보유자의 의사에 반하여 인출되었다는 것이어야 한다고 생각하고, 이것은 아톰님이 글에서 기술적으로 증명을 하셨는데요. 전 그것이 기술적으로 그런지는 잘모르겠지만 아톰님의 reputation에 기대겠습니다.

    5. 동의합니다. 저도 DAO는 매우 성급했다고 생각합니다.

    6. 2.의 설명

    7. 저는 원글의 탈중앙화 개념에 동의하지 않으므로 a)의 방향은 있을 수 없고, b) 방향만이 있을 수 있다고 생각합니다.
    저도 포킹을 하든 뭘하든 규칙이 생겼으면 좋겠습니다.
    긴 시간이 흐른 뒤 커뮤니티가 합의에 이르게 된다면 그것이 곧 ethereum의 정의가 되겠죠.
  • @마이애미킴
    진실한 돈이라는 것은 다른게 아니고 다른이가 임의적으로 이용을 하거나 총 수량에 영향을 줄 수 없다는 뜻으로 사용한 제 개인적인 표현입니다. 이더는 보유자의 의사여부에 관계없이 이동되는 것을 가리킵니다 ㅎㅎ 좋은 의견 감사합니다.
  • ?
    @어른아이
    "다른이가 임의적으로 이용을 하거나" -> "임의적"이라는 단어를 쓰시니 도돌이표네요. 그럼 또 임의적이란 무엇인가로 따져봐야되는데, ㅠ
    "총 수량에 영향을 줄 수 없다" -> 총 수량이 정해져있는게 "진실된" 이라는 비유를 붙일 정도로 신념적일 이유는 없습니다. 화폐의 수량이 불변이란 것이 꼭 우리 삶에 긍정적인 것만은 아니기 때문입니다.
    아마 총 수량이 변함이 없는 것이 보통 인간의 삶에 좋다라는 제가 생각하기엔 참으로 대중을 호도하는 잘못 알려진 내용 때문에 그런 신념이 자리잡게 되지 않았을까 싶네요.
  • @마이애미킴
    2. 번은 저도 음모론 보다는, 우선 사태 파악위해서 멈추고 보자.는 것으로 이해합니다. 그부분은 일반적인 관점에서 이해가 되는데,

    하지만, 이번 DAO 해킹건도 꼭 이런 방법은 아니더라도, 해킹이 있을수 있다는 예측이 많았는데,
    너무 빠르게 포크를 결정하고 아무런 사과 가 없는 상태에서 사태를 쉽게 덮어 버릴려는 것을 본, 사람들중,
    음모론 적인 생각을 할수 있다 봅니다. 예전에 stardust 가 해킹 당한후, 포스팅했을때, 저 뿐만 아니라, 다른 분들도 정확히 파악되기 전까지는 혹시 자작극 아닐까? 하는 부분적 의심을 한것은 솔직한 사실이었고, 일을 진행하면서 그런부분도 확인을 같이 했으니까요.

    그런데, 그런면에서 보면 이 건 자체가 돈의 인출이 Send() 가 아니고, 코드 기반의 숫자만 하는 것이라 블록체인상에서 2중 지출을 막을수 없는 치명적인 단점을 파고 들었다는 것이죠. 또한, 금액이 너무 크니, 먹튀 의심도 갈수밖에 없습니다.
    워낙 사안이 크니, 그런 의구심도 있을수 있겠죠.

    4. 1) 에 대해서는 DAO 의 Curator 가 만들어진 것은 SmartContract 의 단순 다수결로 인한 "다수의 폭정" 을 막겠다는 Fail-safe 기능을 하겠다는 것입니다.
    사실 이더 투자자중 다오 투자자들이 대다수 이기 때문에 하드포크를 통한 refund 를 바랄수 밖에 없습니다.
    하지만, 저의 예측은 물론, 그때 가봐야 알지만, 리펀드 후에, 대다수의 사람들이 ether 를 팔것이라 봅니다. 호되게 당해서요.
    그럼, 이더 가격이 더 떨어질수 밖에 없다고 보고, 존폐의 위기까지도 갈것입니다.
    그래서, 커뮤니티 에 의견을 보면 하드포크에 대해서는 향후에 부정적일수 밖에 없을것이라 예측합니다.

    2) 은 제가 판단하기는 해커가 split 하기 위해서는 다른 투표 계정과 return 받을 계정을 추가로 해야 합니다. 제가 1주일전쯤에 refund 걸라고 Mist 에서 split proposal 해보니, 큐레이터 외에, 다른 지갑 주소를 넣어야 하더군요. 그럼 이 계정은 제3자의 계정일수도 있습니다.
    그런데, 해커가 그럴리는 없겠죠. 하지만, 완전 100% 본인의 계정이라고는 볼수 없습니다. 현재 해커의 공격이란 점에서는 주요 논점은 아니고, 향후 계정의 돈을 어떻게 이동하는것인가 봐야 그게 confirm 이 될것입니다.


    결론적으로, 너무 쉬운 방법으로 , 너무 빨리 하드포크를 내놓았다 라고 봅니다. <소탐대실> 하고 있다 봅니다.

    제 생각에는 Vitalik 이 Froze 하는 기능만 우선 포크 하겠다. 하고 그 이후 slock 이 사과하고, 커뮤니티에 다른 해결방안을 도움 요청했다면, 이더리움의 존폐까지 가는 위기는 되지 않았을것이라 봅니다.
  • ?
    장문의 좋은 글 잘 읽었습니다만, 반박하고 싶은 부분이 매우 많기도 합니다.
    다만 이제 끝난 야근 후유증으로 오늘은 글을 못 쓰겠네요..저 또한 별도의 글로 의견을 드려야 할 듯 합니다.

    세상에 틀린 것은 없습니다. 다만 다른것이 있을 뿐이지요...공감가는 부분또한 많은 글 이었습니다.
  • @암드롱
    네 동감합니다~ 늦은시간까지 고생하십니다. 저도 쉬고 내일을 준비해야겠습니다 :)
  • ?
    탈중앙화란, 간단하게 말해서, 각자가 자신의 화폐를 ‘온전히’ 소유하는 것입니다. 자신의 화폐를 이체하거나, 보관할 때 다른 누군가의 도움이나 간섭이 필요없으며, 애초에 자신이 아닌 제3자가 자산을 움직이거나, 움직일 수 없는 것이 곧 탈중앙화입니다. 따라서 관리의 의무도 본인이 오롯이 지게 됩니다. 자신이 해킹을 당하거나, 잘못하여 코인을 잃는다면 당연히 책임도 자신에게 있습니다.


    마이너들은 제3자가 아닌가요?
    그들이 마음 먹으면 제 돈을 빼갈 수 있는데요. (51% attack)
    물론 51% attack을 감행하는게 자신들에게 손해이기 때문에 그렇게 하지 않는 것은 이해합니다만,
    선악, 손익을 떠나서 논리로만 따진다면 그렇게 보여서 좀 헷갈립니다.

    그리고 마이너들이 언제든 담합하면 빼갈 수 있으니까,
    내 돈을 내가 온전히 소유했다고 볼 수 없을 것 같기도 해요.
  • @drjoon
    음..잘알고계시겠지만, 마이너들은 제가 이체하거나 받은 기록을 받아주지 않거나 덮어쓸 수 있을 뿐이지, 쓰지 않은 제 지갑의 돈을 털어갈 수는 없죠. 개인키가 필요하니까요. 그래서 내 자신의 지갑은 내가 개인키로 서명하지 않는 이상 온전히 내것이라고 볼 수 있죠. 이체받은 기록을 덮어써서 수령받은 코인의 수를 줄일 수 있겠지만, 바로 그 이유 때문에 3~5컨펌 시스템이 나온 것이니 사실상, 빼가는 것은 불가능하다고 보입니다. 블록체인은 혼자서 돌리는 것이 가능하니 스스로 마이너 역할도 할 수 있고요 ㅎㅎ
  • ?
    @어른아이
    누군가에게서 받은 코인을 제가 지갑에 보관하고 있는데, 그 트랜잭션은 무효! 라고 마이너가 기록해버리면 제 코인은 털리는거잖아요.
  • @drjoon
    그 부분은 사토시가 컨펌시스템을 고안했죠 그것이 아직까지 잘 작동하고 있고요 ㅎㅎ
  • ?
    @어른아이
    사실.. 어른아이님이나 저나 다 알고 있는 내용입니다.

    그런데 이번 다오 사건 때문에 좀더 깊이 고민해보고 있는 중입니다.

    마이너를 생각할 수 있는 하나의 객체로 간주하면 (그냥 인간이라고 본다면) 충분히 가능한 시나리오구나라는 생각을 했어요.

    실제로 이더리움 재단에서 마이너들을 독려해서 하드포크 하는게 사실 위에서 말한 내용과 동일한거잖아요.
  • @drjoon
    네 그게 51%공격인데 저는 그걸하면 안된다는 주장이죠. 적어도 이체기록에 있어서는요.
  • ?
    @어른아이
    사토시의 비트코인 이념을 충실히 따르는게 어느 쪽인지 우리 다시 생각해봐요.
    글자 그대로 해석하면 51% 어택을 허용하지 않는 쪽이지만,
    사토시의 철학을 다르게 해석하면 선의의 51% 어택을 허용하는 쪽일 수도 있겠어요.


    체인이 길어질수록 (시간이 지날수록) 이전 체인 다 변조하고 어택해야 하니까 어택이 어렵다... 이런 논리에서,
    공격 노드와 선의의 노드를 구분해 놓고, 공격 노드보단 선의의 노드에게 어드밴티지를 준거잖아요?
    즉, 선악의 개념이 들어가 있는데, 이를 '이중 지출 차단' 정도로 우리는 너무 좁게 해석해온게 아닌가 해요.

    '이중 지출' 정도가 아니라 '부정 지출'로 좀더 넓게 해석한다면,
    노드들의 합의가 있다면 트랜잭션을 무효화 하는 것도 가능한게 아닌가 싶어요.


    결국 중요한 것은 노드들의 기계적인 작업증명이 아니라,
    "부정 지출을 막기 위한 노드들의 합의" 가 되겠죠.

    @atomrigs
  • @drjoon
    저는 사토시의 이념을 굳이 따르거나 의존할 필요는 없다고 봅니다. 미래는 우리가 만들어가면 되는 거니까요.

    그럼에도 불구하고 사토시의 견해는 분명했습니다. 애초에 부정한 인출이 무엇인지 구분하지 않는 것이죠. 구분 자체가 누군가의 주관적인 잣대가 되고 그렇게되면 무신뢰시스템이 아니기 때문입니다.

    사토시는 다음의 글에서 이중지불은 명확한 부정인출이라고 구분해 두었지만, 그 외에는 모든것을 과반수의 노드(해시)에 맡겼고 그들이 공격자의 편이 아닐 것이라고 그들의 선의와 경제적 인센티브에 기댔습니다. 처음부터 사토시는 과반수의 노드가 경제적 이익을 위해서라도 시스템을 무너뜨리기보다는 지킬 것이라는 입장이었고요.
    https://bitcointalk.org/index.php?topic=423.msg3819#msg3819

    저의 견해는 이러합니다. 우리가 자체적으로 판단요소를 넣어 주관성을 휘두르려면, 아예 그에 맞는 모델을 만들어야 합니다. 그러한 모델은 탈중앙화가 아니라 '반탈중앙화모델' 정도로 부르고 싶습니다. 이렇게 되면 미리 사람들에게 자신의 이체가 취소되는 등의 중간자개입이 있을 수 있다는 고지가 되어야할 것이고요.

    우리의 의무는 무신뢰 시스템을, 어떻게 반신뢰시스템으로 만들어내냐일 것 같습니다. 이미 dpos가 어느정도는 이점을 공부해 놓은 상황이라고 생각하고요. 그렇게 되면 좀 더 시장친화적인 시스템이 만들어 질 수 있을 것 같습니다. 하지만 제3자가 나의 행위에 개입할 수 있다는 점에서 더 이상 무신뢰나 탈중앙화 흉내를 내서는 안됩니다. <사실 탈중앙화의 명확한 학문적 정의도 없습니다 우리끼리 탈중앙화라고 부르는것이죠>
  • ?
    @어른아이
    우리가 자체적으로 판단요소를 넣어 주관성을 휘두르려면, 아예 그에 맞는 모델을 만들어야 합니다.

    => 카톡으로 얘기해보시죠.
  • @어른아이
    사토시는 선과 악의 구분을 명확히 했습니다. 악은 " creating value out of thin air or taking money that never belonged to the attacker." 을 하는 쪽입니다. 그리고 이번 경우는 이런 경우에 정확히 부합하는 공격자가 이더리움 체인의 주도권을 가지려고 하는 시도를 벌이고 있는 것이구요.

    그리고 계속 착각하고 있는 것이 있는 것 같습니다.

    "p2p" 노들의 합의 ==> 제 3 자
    나 ==> 나의 행위에는 누구도 개입할 수 없다. 즉 p2p 노드들의 합의도 나에게 개입하면 안된다.

    이런 주장인데요. 이것은 블럭체인의 개념이 아닙니다. 아마도 다른 인공지능 솔루션을 잦아보셔야 될 것 같습니다.

    블럭체인은

    나 --> 하나의 p
    블럭체인 --> 이러한 p 들이 합의한 공동의 장부 (p2p)

    입니다.
    만일 p2p 에 의한 합의에 어긋나는 기록을 가진 p가 있다면 별도의 체인을 가지고 계속 유지시키던가, 아니면 p2p 합의에 따라야 합니다.

    누가 "악의의" 51% 공격자인지, 누가 네트워크를 원래의 합의에 따라 진행시키려는 "선의의" 노드들인지 판단할 의무는 p2p 노드들의 참여자가 판단해야 합니다.
  • @atomrigs
    "누가 "악의의" 51% 공격자인지, 판단할 의무는 p2p 노드들의 참여자가 판단"

    아실텐데도 전혀 블록체인을 이해못하는 말씀을 하시네요. 51%공격자가 곧 노드입니다. 51%공격을 할 수 있는 주체가 노드말고 누가 있습니까? 이미 51%가 악의를 가지고 있다면 이를 막을 방법이 없습니다. 분신도 아니고, 본인이 악의를 가진 상황에서 자기가 자기를 막습니까? 이래서 애초에 51%가 의도적으로 권한을 휘두르는 것이 아니고 pow대로 결정을 하라고 하는 겁니다. pow를 따르세요. 51%가 악의를 가지고 있는 경우 막을 방법은 존재하지 않습니다. 그래서 애초에 51%가 악의로 임의조정하는 일 자체가 없도록 해야된다는 겁니다. 그건 블록체인의 가장 기본요체입니다.
  • @어른아이
    역시 p2p 를 아예 받아들이지 않는군요. 여기서는 노드들은 p 들의 집합입니다. 이 p2p 에 있는 노드들이 어떤 트랜잭션을 valid 하다고 판단하는지에 따라, 2개의 그룹으로 나누어질 수 있게, 이 중에서 악의를 가지고 남의 돈을 강탈하고자 하는 트랜잭션을 51%의 다수로 만들려는 노드들의 그룹이 51% 공격그룹입니다.
    해시파워가 많으면 무조건 선이라고 보는 것이야마로 51% 공격자의 논리를 거들어 주는 것입니다.
  • @atomrigs
    말씀이 바뀌시는 것 같습니다. 악의의 트랜젝션을 51%로 만들려는 그룹이 51%공격그룹이군요. 해시파워가 선이라고 전혀 표현한 적이 없는데 그렇게 씌우시는 것 같습니다. 자 다시 정리를 해보죠. 공격그룹이 성공하여 51%가 악의을 지니게 됩니다. 즉 블록체인 상 다수가 공격자가 됩니다. 이를 어떻게 막습니까?
  • @어른아이
    바꾼적 없습니다. 악의의 51% 공격자가 네트워크을 장악하고, 그것이 유지된다면, 그 블럭체인은 사망입니다. 새로운 체인을 다시 론칭하는 솔루션 밖에 없습니다. 만일 해커가 코인을 인출해가고, 그것을 사용하는 것이 정당한 트랜잭션으로 인정되고, 반대로 그것을 invalid 하고 선언한 노드들이 소수가 된다면, 그것은 명백히 51% 악의의 공격자가 네트워크의 주도권을 장악한 것이고, 그것은 현재 버전의 이더리움 체인의 사망이라고 간주합니다. 합의구조의 붕괴죠. 악이 이겼는데, 그 합의구조를 유지시킬 이유가 없어지겠죠. 그럴 경우 소수가 된 선의의 노드들은 그에 동의하는 개발자들과 생태계를 모아서 새로운 버전의 체인을 론칭하겠지요. 그렇게 되면 악의 체인은 설사 한 때 다수가 되더라도 시장에서 퇴출될 것이구요. 현재의 이더리움 상태는 최종 헤게모니 주도권을 놓고 싸움을 하고 있습니다. 가능하면 어떠한 포크도 없이 해커가 훔친 코인을 되돌려 놓는 방법이 있다면 가장 좋겠지만, 최종적으로 하드 포크만이 유일한 길이라고 판명나면, 누가 51% 주도권을 잡을 것인지 승부가 나야 합니다.
  • @atomrigs
    악의의 51%를 차단하지 못하면 비트코인은 말씀대로 '사망'이군요. 왜 이렇게 전세계의 블록체인 커뮤니티에서 수많은 원로 개발자들이 공격수단 자체를 막아야하고 선례를 남기면 안된다고 절절히 외치는지 저는 이해를 합니다. '사망'하지 않으려면 '독화살'을 일단 뽑아야 된다는 이야기를 잘읽었습니다. 왜 당장 해롭지 않거나 논의가 더필요할 수도 있는 문제를 일단 '가능성'부터 없애고자 하는지 이해하실거라 믿습니다. '사망'보다 '불편함'이 더 낫겠죠.

    많이 '불편'하신가요? 그러면 편한 방식으로 합의구조를 그냥 바꾸면 됩니다. 그게 지금까지 블록체인이 발전해온 역사입니다. 왜 근본대책과 시스템 정합성을 뒤로하고 차선책을 위해 '사망'확률을 무릅씁니까.
  • @어른아이
    뭐가 불편하다는 건지??? 합의구조를 개선하기 위해 비트코인이후 많은 개발자들이 온갖 종류의 개선책을 내놓고 실험을 하고 있지요. 51% 공격에 강하면서도, 네트워크 속도를 올릴 수 있고, "덜 중앙화"되도록 노력하고 있지요.
    '사망'하고 나서 근본대책과 시스템정합성이 다 무슨 소용입니까? 사망하지 않도록 공격을 막고 나서 재발방지를 고민해야지요.
  • @atomrigs
    또 바뀌는군요. 51%공격이면 '사망' 당하기 때문에 그를 용납하지 말자는 주장에, '사망'하면 다 무슨 소용이냐는 것은 동문서답입니다. '사망'을 막는 상태에서, 즉 51%공격을 원초적으로 막는 상태에서 재발방지를 고민하는 것이 맞다는 것에 동의하십니까?
  • @어른아이
    51% 공격이 불가능하게 막으려고 노력해야 하는 것은 당연합니다. 그것이 바로 선한 노드들이 해야할 가장 큰 의무이고, 또 그런 공격이 논리적으로 매우 힘들도록 만들어야 되는 것도 당연합니다. 하지만 만일 전체 네트워크가 악의를 가진 노들이 장악하면 그 체인은 사망입니다. 사망한 노드에서 프로토콜을 개선한다고 해봐야 아무런 소용이 없겠지요.
    도대체 뭐가 바뀐다는 것인지, 정말 동문서답이군요. 아마도 서로 할 논점들이 전부 다 나왔나 보군요. 계속 같은 이야기가 반복되는 것 보니까요.
  • @atomrigs
    51%의 공격을 온전히 막는 유일한 방법은 이들의 자의적 결정권을 없애는 것입니다. 그리고 직접 말씀하신 대로, 51%의 공격이 실제로 일어나면 '사망'이며, 이를 일단 막는 상황에서 재발방지대책을 고민하는 것이 맞다고 인정하십니까?

    인정여부만 표현해주셔도 됩니다. 인정여부 표현 자체를 하기 싫으시다면 그것도 괜찮습니다.
  • @어른아이
    합의의 구조가 없는 블럭체인은 블럭체인이 아니라고 봅니다.
    51% 공격이 성공하면 --> 그 체인은 사망 : 맞고요
    공격을 막고나서 --> 앞으로 그러한 공격이 생기지 않도록 더 좋은 시스템을 만들자 --> 맞고요.
  • @atomrigs
    합의의 구조는 처음부터 지금까지 항상 있었습니다. 그 구조가 불편하다면 그 합의의 구조를 바꾸라고 제가 처음부터 끝까지 주장해왔습니다. 다만 그 기록을 변조하지 말란 것입니다. 합의의 구조를 수정하는 것이 아니라 내용자체를 수정한다는 것이야말로 블록체인의 사망입니다.
  • @어른아이
    잘못된 기록이 생겼고, 그것이 명백한 에러이고, 다른 선의의 피해자가 생길 가능성이 거의 전무하다면, 그 기록을 올바른 것으로, 논리정합적으로 바꾸는 것이 바로 합의구조의 힘이고, 51% 공격을 방어하는 힘입니다.
  • @atomrigs
    그런식으로 결정이 시작되면 나중에는 선의의 피해자가 넘쳐나도 다수에게 이득만되면 합의해버리는 정글민주주의가 시작됩니다. 우리가 그런 케이스를 모르고 있는 것도 아닙니다.
  • @어른아이
    지금 해커의 공격을 방치하는게 정확히 그렇게 정글주의로 만들려는 시도입니다.
  • @어른아이
    지금 언듯 깨달은 것이 왜 이렇게 같은 말이 반복되는지 생각해보니,
    단어 사용이 틀린 것 같군요.

    어른아인:
    어떤 것이던 51% 합의에 의해 결정되는 것은 다 악의적인것이고 51% 어택이다.
    따라서 합의에 의한 결정자체의 구조가 없어지는 것이 51% 공격을 막는 유일한 방법이다.

    atomrigs:
    51% 공격은 악의적인 목적(남의 돈을 부당하게 갈취하거나 없던 돈을 가짜로 만드는)을 가지고 네트워크 노드의 다수의 동의를 확보하고자는 시도이고,
    이를 방어하고자 네트워크 노드의 51%를 장악하고자 하는 선의의 노드들은 블럭체인의 본질인 합의시스템을 이용해 이를 관철하고자는 하는 것이다.
  • 완전 100% 공감하는 내용의 훌륭한 글이네요.. 좋은글 감사합니다.
    이번사태이후 거의 대부분 포크찬성하는 분위기라 제생각을 말하자면 다수의 의견에 반하는 내용의 글들만 쓰게될거 같아서..
    그냥 그러려니 하고 있었는데.. 참 속이다 시원한 글을 아침부터 읽게되서 기분이 매우좋습니다.

    가상화폐 특성상 현물이 없기에 더욱 자신이 믿는 화폐에대한 "신뢰"가 중요하다 생각합니다...

    신뢰를 얻고 유지해 나아가는 방법은 당연히 "신념" 과 "원칙" 에 있다고 보구요..

    최근 이더리움의 행보를 보자면 이더리움에 대한 "신뢰"가 예전만 못한거 같아서 많이 아쉽고 씁쓸하네요..
  • ?
    공감이 가네요
default debug random = 0 / type = READ / detected = READ

자유게시판

홍보/사기/불법을 제외한 모든 글작성이 가능합니다.

List of Articles
번호 분류 제목 추천 수 조회 수 글쓴이 날짜
11372 자유 bitfinex의 계속된 정지... 지금 비트코인 가격이 다시 폭락하기 시작했는데 아무래도 bitfinex가 다운이 두번째로 되면서 시장이 신뢰를 잃은 것 같습니다. (설마!) mt.gox 사태가 벌어지지... 3 0 2415
키덜트의마왕
2016.06.21
11371 질문 steemit 사용하시는분 있으신가요? steemit 페이스북 연동하고 계정 생성은 했는데  그 다음 뭘 어찌해야 하는지 전혀 알 수가 없네요. 글쓰기 테스트는 해봤는데 테그는 어떻게 검색해서 넣어야 하... 1 0 2257
런던빅벤
2016.06.21
11370 질문 현재진행중인 소프트포크는 언제 실행되나요  날짜 및 대략 시간을 알 수 있을까요? 2 0 2281
호오라
2016.06.21
11369 질문 브렉시트 부결될거같다던데 브렉시트 부결되면 비트코인가치 하락한다고하던데 뭐때문에 그렇게되는거죠? 6 0 2666
sunnydua
2016.06.21
11368 자유 거래소별 비트코인 거래량 세계 거래소별 비트코인 거래량입니다 참고하세요 그런데 거래소 국기가 요상하네요 맞는지 모르겠습니다 okcoin이 세계 2위네요 출처는 investing.com입니다 htt... 4 file 0 4323
독수리
2016.06.21
11367 자유 브렉시트 투표 D-2 찬반 여론, 언론 대결 양상 기사 내용입니다. 텔레그래프, 더 선, 선데이 타임스는 찬성, FT, 가디언,, 타임즈 등은 반대네요. 브렉시트 투표 D-2 언론 찬반도 가열..텔레그래프 '탈퇴' 지지... 1 file 0 1665
leftsword
2016.06.21
11366 자유 조용하기도 하고 분위기 전환겸 차익거래 관련 질문받습니다. 현재 차익거래봇 3개 돌리고 있습니다. 영업기밀(?)을 누설하지 않는 범위에서 답변해드립니다~ 30 4 3132
조제리
2016.06.21
11365 자유 혹시 디지털화폐 관련 팀블로그 같이 하실 분은 안계실까요? 해외 쪽은 여러 소스에서 소식들이 굉장히 많이 쏟아지는거에 비해 국내에는 가상화폐 관련 웹사이트도 많이 없더라구요... 그래서 개인적으로 관련 팀 블로그 한... 9 0 1482
키덜트의마왕
2016.06.21
11364 자유 비트코인 가격대가 더 밀리네요... 각 사이트에서 $685까지 밀리더군요. 이 정도면 대폭락 수준인데 별다른 재료도 없이 이 정도까지 밀린다는게 이해가 잘 안가네요. 매수세가 많을 것 같은데 떨궈... 2 0 1681
키덜트의마왕
2016.06.21
11363 자유 비트코인 700불 내외로 급락, 이유가?? 뉴스라곤 별로 없는데 50불이나 급락했네요. 비트코인 창시자로 인정받으려는 호주 크레그 라이트가 특허 인정 받으려 한다는 뉴스와 오바마가 비트코인 갖는 건 ... 18 0 2774
leftsword
2016.06.21
11362 질문 소프트포크 진행되면 이더물량이 늘어나기때문에 가격하락될 확률이높나요? 궁금합니다.. 3 0 2957
이더야이더야
2016.06.21
11361 자유 이미 신뢰는 떨어졌고.. 손실을 만회한다고 하기에도 이미 이더의 가치는 최고점 대비 반토막이 되었지요.. 하드포크고 소프트 포크고 다오 이후 이더를 구매한 모두가 손해를 보셨을 것... 3 0 2246
은빛늑대
2016.06.21
11360 자유 (예측의견) 소프트 포크 (DAO Frozen) 는 가고, 하드포크(체인기록 역행) 은 불가. 소프트 포크  (DAO Frozen) 는 가고, 하드포크(체인기록 역행) 은 불가할것이라 봅니다. 블록체인 탈중앙화 이런 부분에 대해서는 논외로 하고, 사람들의 투자자... 6 1 2582
안씨아저씨
2016.06.21
11359 자유 애매하네요.  많은 비디오와 글을 읽었지만 뭐 스티븐 말대로 하드 포킹밖엔... 답이 없네요. 비탈릭은 다오를 창조하고 이 다오가 PoS시스템이 도입되었을때 국민연금이 삼성... 10 0 36402
bitcoinuserx
2016.06.20
자유 다오, 이더리움 그리고 탈중앙화 다오, 이더리움 그리고 탈중앙화       조금은 복잡하고 지루할 수 있는 원론을 이야기해보고자 합니다.   중국 ‘장자’의 고서에 보면, 한 가지 재미있는 이야기... 51 file 16 9048
어른아이
2016.06.20
11357 자유 다오 투자자들에게 조언 좀 부탁드립니다.  다오 투자자로, 투자후 해킹 발생까지 그대로 다오에 묶인 다오를 놔두고 있는 상태 입니다.  한번 투자는 끝까지 간다는 신념으로, 버티고 있습니다만, 해킹에... 5 0 2172
elg445
2016.06.20
11356 자유 다들 농담이시겠지만 비탈릭 한테 계란..밀가루..던지네 마네.. 이건 더다오의 잘못이고 스테판 튜얼의 잘못인데요. 5 0 2563
강철멘탈
2016.06.20
11355 자유 다오 소프트포크 투표 현황 다오 소프트포크 투표가 진행중이네요.. 관련글 https://forum.ethereum.org/discussion/7796/dao-soft-fork-voting-on-ethpool-ethermine 투표 현황 http://ethp... 12 1 3143
bitman
2016.06.20
11354 자유 비탈릭이 한국오네요....화염병이라도 준비해야 하나? http://onoffmix.com/event/70312 24일 한국와서 이더리움 세미나 하네요... 진짜 화염병 하나 만들어서 던지고 싶은 기분입니다. 휴~~ 진짜 믿고 가지고 있는 B... 8 0 2601
DAO부자
2016.06.20
11353 자유 waves 코인 시작... 그리고 실패... waves 거래가 시작되었지만 예상대로 매도물량이 너무 많아서 정상적인 거래가 안되는 상황인것 같습니다. (bittrex가 거래량으로 25번째인가로 알고 있는데... ... 8 0 3790
키덜트의마왕
2016.06.20
목록
Board Pagination Prev 1 ... 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 ... 3102 Next
/ 3102
default debug random = 0 / type = READ / detected = READ