traders_free custom_top_html:no
default debug random = 2 / type = READ / detected = READ

지난주에 다오사태를 해결을 위해 제안된 소프트 포크 솔루션이 DoS 공격 취약점하다는 점이 발견되어 포기를 했었습니다.

제안된 소프트 포크 솔루션의 주 목적이 해커가 가진 주소가 이더를 움직이는 새로운 트랜잭션을 일으키지 못하게 막는 것이었는데, 

만일 해커가 이를 역이용해, 대량의 invalid 트랜잭션을 네트워크에 쏟아부으면, 마이너들이 블럭생성을 거의 할 수 없는 상태로 만들 수 있다는 것이었습니다.

http://hackingdistributed.com/2016/06/28/ethereum-soft-fork-dos-vector/

 

이러한 DoS 공격이 가능해지는 근본적인 이유가 이더리움의 튜링완전성과 개스시스템 때문이라는 것이었습니다.

무슨말인가 하면, 

소프트포크에 의해서 다크다오가 새로운 스플릿을 하지 못하게 막혔다고 가정합시다.

그렇게 되면 다음과 같은 코드를 해커가 마이너에게 보낼 수 있습니다.

 

 

for(uint32 i=0; i < 1000000; i++)

   { sha3('some data'); // costly computation }

DarkDAO.splitDAO(...); // render the transaction invalid
 

컴퓨팅 리소스를 잡아먹는 sha3 해시함수를 루프문으로 마구 돌린다음, 마지막에 소프트포크에 의해 invalid 하게 된 DarkDao.splitDAO() 펑션을 실행하면 전체 실행이 무효가 되고 이 콜은 에러처리됩니다. 그러나 이 때 보통같으면  개스가 부과되어서 공격자가 엄청난 비용을 물어야 되는데, 이 경우는 공격자에게 개스를 물릴 수가 없습니다. 왜냐하면 개스를 물리려면, 이 트랜잭션을 블럭체인에 올려야 되는데, 이렇게 되면, 소프트포크를 업데이트 하지 않는 노드는 이 트랜잭션을 valid 하다고 판단할 것이고, 이렇게 되면, 소프트포크를 업데이트한 마이너의 데이타와 충돌이 생깁니다. 결국 하드포크를 하지 않고서는 이러한 DoS 공격에 대해 개스를 물릴 수가 없습니다.

 

결국 소프트포크를 이용한 대부분의 시도는 이더리움의 내재적 특성때문에 DoS 공격 취약점을 노출시킬 수 있다는 것이죠.

이러한 발견이 일단은 다오 사태의 빠른 해결을 기다리고 있던 커뮤니티에게는 상황을 더욱 불확실하게 하는 요인이었습니다.

 

그런데 이 문제를 좀 더 일반적인 각도에서 보자면, 이더리움의 내재적 강점으로도 볼 수 있다는 것입니다. DoS 공격의 취약을 지적한 팀은 코넬대 교수인 Emin 와 주변학생들및 다른 연구자들의 모임인데, 이러한 강점의 성격을 다음의 글로 정리했습니다.

 

http://hackingdistributed.com/2016/07/05/eth-is-more-resilient-to-censorship/

 

소프트포크가 이루고자 했던 것이 결국은 일종의 해커가 일으키는 트랜잭션을 찾아서, 이것만 필터링하는 일종의 검열(censorship) 과정인데, 이것이 DoS 공격의 위험때문에 내재적으로 사실상 불가능하다는 것입니다.

예를 만일 정부가 모든 불법 도박과 관련된 트랜잭션을 주소레벨에서 필터링해서 다 막으라는 지시를 해도, 이것을 이행할 수 있는 소프트포크적인 방법은 거의 불가능하다는 것이죠. 심지어는 대다수의 마이너들이 전부 매수되어서 필터링을 하려고 시도해도 이것에 대한 DoS 역공격때문에 마이너의 공격이 실패할 것이란 겁니다. 마이너들이 DoS 공격때문에 모든 트랜잭션을 전부 처리할 수 없는 상황이 되면, 51% 이상의 해시파워를 가지고 있어도 필터링을 할 수 없다는 이야기가 됩니다.

심지어는 비탈릭과 파운데이션, 대부분의 마이너 풀,  커뮤니티의 대다수가 동의를 했어도 소프트 포크를 할 수 없었던 것처럼 앞으로도 이더리움의 이러한 소트트포크적인 솔루션들은 작동시키기 매우 어려울 것이라는 것입니다.

 

사실 비탈릭은 이미 오래전에 검열이 불가능하거나 매우 어렵게 하는 시스템에 대해 이미 논의한 바가 있습니다.

https://blog.ethereum.org/2015/06/06/the-problem-of-censorship/

 

이미 현재의 상태만으로도 이러한 아이디어가 이미 어느정도 구현되었다는, 심지어는 자신조차도 그런 검열을 할 수 없었다는 것을 증명하고 있군요.

 

참고로 이러한 안티검열적 특성은 이더리움에 고유한 것인데, 그 이유는 위에서도 이야기했지만, 튜링완전성과 개스시스템 때문에 생기는 것입니다. 따라서 비트코인에는 적용이 되지 않습니다.

 

==============

 

자 이제 남은 것은 하드포크 뿐인데, 이것을 가능케하는 것은 결국 커뮤니티의 consensus이고 이 과정에 대해서는 다른 글로 포스팅하겠습니다.

1

atomrigs님의 서명

 

한국이더리움 사용자 그룹: https://www.facebook.com/groups/ethereumkorea/

블로그:  https://www.facten.co.kr/news/articleList.html?sc_sub_section_code=S2N13&view_type=sm

 

댓글 16
  • ?
    아침부터 좋은 정보 감사드립니다 다음 글이 또 기다려지네요
  • 유익한 정보네요 감사합니다.
  • 어렵고도 재밌네요^^감사합니다
  • ?
    네이버웹툰 연재기다리는 느낌 항상 좋은글 감사해요
  • 읽다보니 좋은 소식이군요 ^^
  • 지금은 이더리움 노드들이 새로운 트랜젝션들은 그냥 체크 없이 주르륵 전달 합니다.
    짧은 블럭 타임을 맞추기 위해 고도로 최적화 되어 있는 상태라고 알고 있는데요.
    엄밀히 얘기하면 모든 노드들이 트랜젝션을 전달하기 전에 자체적으로 무효 트랜젝션인지 검사를 하면 될거 같습니다. 물론 지금보다 부하가 커지겠지만요.
    그러면 공격자와 연결되어 있는 1차 노드만 DoS 피해를 입을 것이고, 또 이들 노드들도 계속해서 무효 트랜젝션을 보내는 공격자 노드에게 벌점을 부과해서 자체 차단시키면 될테구요.
    이더리움 재단에서는 마이닝용도 아닌데 모든 노드들이 이런 검사를 한다는걸 장기적으로 봤을때 손해라고 생각하는거 같습니다.

    뭐 어차피 똑똑한 사람들이니까 조금 있으면 더 나은 방법을 들고 나올거 같긴 합니다ㅎㅎ
  • @coincoin
    DoS 공격을 약화시기키 위한 여러가지 방법들이 논의들이 되었는데, 일부 효과는 있겠지만 현재의 방법으로서는 제대로 차단하기는 힘들겠다는 결론이었던 것 같습니다. 모든 노드들이 트랜잭션들을 릴레이 하기전에 검사를 하면, 이 노드들도 엄청난 양의 유효성 검사하느라 헤매게 될테이고, 공격자가 지속적으로 새 노드를 생성하면서 공격하면 막기가 더 힘들어지겠죠. 그리고 이더리움 2.0 이후의 대부분의 방향이 스케일링에 촛점이 맞추어져 있는데, 모든 노들들이 트랜잭션를 릴레이 하기전에 유효성 검사를 해야한다면, 전체 효율성이 너무 떨어지겠죠.
  • @atomrigs
    네~
    근데 제 생각엔 급한 불부터 끄는게 좋지 않나 싶습니다.
    지금 이더 자체의 미래가 오락가락하는데 scaling 이 뭔 의미가 있을까 싶습니다.
    다음 버젼까지만이라도 strict mode 같은걸 지갑 기본값으로 돌려서 Dos 공격을 차단하고 이후 하드포크 이후에는 다시 normal mode 로 돌린다거나 하는게 어떨까 싶기도 하네요.
    parity 는 이미 이런 종류로 3가지 모드를 두고 클라이언트 성향에 따라 돌리는 방식을 나눠놓고 있더라구요. 장기적으로 보면 이렇게 세분화하는 것도 좋아보입니다. 라즈베이파이 같은 노드라면 그냥 relay 시키고 서버급이면 strict mode 로 돌린다거나 하는 식으로요.
  • @coincoin
    DOS 공격 취약성은 소프트포크에만 해당됩니다. 하드포크를 하면 상관없습니다. 공격자가 개스비를 물어야 하니 할 수가 없죠.
    그래서 남은 옵션은 이제 하드포크 밖에 없다는 것이구요.
  • @atomrigs
    하드포크는 기술적인 문제가 아니라 정책적인 문제라서 쉽게 합의가 될지 모르겠습니다.
    DAO 풀리는 시기가 다가오고 있으니까 그 전에 마무리가 되어야 하는데 너무 촉박한거 아닌가 싶네요.
  • ?
    이해가 잘 안 됩니다. ㅠ.ㅠ
    소프트포크한 노드가 대부분이라면, 소프트포크하지 않은 노드가 쏟아내는 데이터는 invalidate되는 것 아닌가요?
    무한 루프에 빠지는 것은 소프트포크 안 한 일부 노드이고, 전체 네트웍은 별 영향을 안 받는게 아닌가요?
  • @drjoon
    invalid 가 되는지 안되는지는 미리 알 수가 없고, 코드를 돌려봐야 알게 됩니다. 주소를 가지고 필터링을 하려해도, 코드내에서 주소를 컨켓트해서 돌리면, 코드를 실행해보지 않고서는 결과를 알 수 없다는 거죠. 결국 모든 채굴 노드가 전부 이 검사를 하다 시간 다 보낸다는 겁니다.
  • ?
    @atomrigs

    1. 컴퓨팅 리소스를 잡아먹는 sha3 해시함수를 루프문으로 마구 돌린다음, 마지막에 소프트포크에 의해 invalid 하게 된 DarkDao.splitDAO() 펑션을 실행하면 전체 실행이 무효가 되고 이 콜은 에러처리됩니다.

    2. 그러나 이 때 보통같으면 개스가 부과되어서 공격자가 엄청난 비용을 물어야 되는데, 이 경우는 공격자에게 개스를 물릴 수가 없습니다. 왜냐하면 개스를 물리려면, 이 트랜잭션을 블럭체인에 올려야 되는데, 이렇게 되면, 소프트포크를 업데이트 하지 않는 노드는 이 트랜잭션을 valid 하다고 판단할 것이고, 이렇게 되면, 소프트포크를 업데이트한 마이너의 데이타와 충돌이 생깁니다.



    1번에서, 루프문을 모든 노드들이 다 실행한다? -> 정답이겠군요?

    2번에서, 소프트포크 "한 노드" vs "안 한 노드" 대결하면, "한 노드"가 훨씬 많으니 몇 블럭 정도는 혼란이 생길 수 있지만, 시간 지나면 정상을 찾아가는 것 아닌가요?

     

    그렇게 되면, 공격자가 이더를 다 소모해버리는 결과가 되어서 DAO는 폭망이군요.

     

    그럴 경우 개스 비용으로 소모된 이더는 마이너에게 돌아가나요?

  • @drjoon
    개스비용은 다오에서 나오는게 아니고, 그 명령을 실행시킨 공격자가 물어야 합니다. 따라서 개스가 차지되면 공격을 할 수가 없습니다. 소프트포크하에서는 이 개스비를 물릴 수가 없다는 것이 문제죠. 하지만 하드포크를 하면 개스비를 물리게 되고, 공격자가 그 비용을 감당해야 하니, 공격을 할 수가 없습니다.
  • ?
    금방끝날문제는 아닌둣
  • ?
    잘 읽었습니다.~
default debug random = 0 / type = READ / detected = READ

List of Articles
번호 제목 추천 수 조회 수 글쓴이 날짜
13255 지금까지 코인하면서 배운것.     기다리는 놈이 이긴다.   마음 급한 사람은 절대 돈 못 번다.     이오스 1만7천원에 1억 5천이 묵여 있지만 큰 걱정 안합니다.   어짜피 장기투자 할려고 샀고 언젠가는 저 가격 넘을꺼라 확신하니까요.   인생... 0 1111
카인제자
2018.01.17
13254 코린이 btc마켓 궁금해요 비트마켓도 코인갯수 늘리면 하락장에서 상승때샀던값으로 돌아갔을때 더 이득인게 맞나요?? 넘 헷갈리네요 0 518
안님지바지
2018.01.17
13253 가상화폐-블록체인 투트랙? 분리불가능, 부처 이기주의의 산물 기사 원문 http://news.naver.com/main/read.nhn?mode=LSD&amp;mid=sec&amp;sid1=101&amp;oid=052&amp;aid=0001107060     아래는 인상적인 내용들을 뽑아봤습니다. 고려대학교 정보보호대학원 김형중 교수 인터뷰인... 7 15 2304
모더니티
2018.01.17
13252 비트코인을 토큰 가지고 놀듯이 하는 선물... 실화인가요?   ㅋㅇ판에서 퍼온건데 저는 호가창에서 저런 장면을 본 적이 없거든요   순간적으로 저렇게나 많이... 누가 쓸어담기 위한걸까요?                 ------------------------------------- 꼬리말 * 게시글 내용 삭... 3 file 0 2149
스팅어하이
2018.01.17
13251 [펌글] [중국 VS USDT] 암호화폐 1세기의 종말, 그리고 2세기로의 전환 https://steemit.com/kr/@project7/vs-usdt-1-2   어쨌거나 원화는 아직 강세입니다.                   ------------------------------------- 꼬리말 * 게시글 내용 삭제시 레벨 강등 * 질문은 각 주제별 게시판에... 21 8 9802
오레오
2018.01.17
13250 업비트 핸드폰 변경시 로그인 제가 아이폰에서 안드로이드로 넘어 가려고 합니다 그런데 번호는 안바꿀겁니당 하지만 제가 궁금한건 핸드폰을 바꾸게되면 여기서 제 업비트 계정은 로그인이 가능한건가요? 2 0 4619
도와줘요
2018.01.17
13249 아직 최악의 악재는 터지지 않았을수도+희망적 뉴스 http://news.naver.com/main/read.nhn?mode=LSD&amp;mid=sec&amp;sid1=101&amp;oid=001&amp;aid=0009818123 빗썸, 내 돈 달라는 고객에게 1주일째 안 주는 중   빗썸, 코인네스트 이 두개가 아직까지 불안합니다 저는... 15 0 3174
스팅어하이
2018.01.17
13248 정부규제가 중국 환치기와 연관 있다는데 사실일까요?     타 사이트에서 추천을 많이 받은 추론성 글인데 반신반의 하지만 논거는 꽤 설득력이 있는거 같습니다.   http://cointalk.co.kr/bbs/board.php?bo_table=freeboard&amp;wr_id=41127                 -----------... 8 4 1871
아우라
2018.01.17
13247 현재에서 다시 절반으로 떨어지지 않는 이상 과열 분위기? 는 안 가라 앉을 것으로 보입니다.     아직 폭락은 시작도 안 된 것인지 아무도 모릅니다.  결국 이번 새벽 장의 폭락은 저쪽에서 많이 던지지 않았나 인데요..  이번주까지 장담하기 어려운 판국 아닌가요? 선물 시장 가격이 얘길 했는데 결코 폭락하... 4 0 1615
그래서말인데요.
2018.01.17
13246 라스트 매수장전. 현실부정중인 분들께는 글이 불쾌할 수 있습니다. 그렇지만 현실이 타크하고 디딜곳 없는 추락장입니다. 딱 지금 가격의 10분의 1 토막 가격으로 매수장전했습니다. 이대로 시장이 살아났으면 좋겠다라는 마음도 있습... 16 3 2344
무표정으로
2018.01.17
13245 가상화폐-블록체인 투트랙? 분리불가능, 부처 이기주의의 산물“ - [출처]신율의 출발새아침         오늘일자 신율 출발 새아침 고려대학교 정보대학원 김형중 교수의 인터뷰 내용입니다. 혼자 듣기 아까워서 링크겁니다.   http://radio.ytn.co.kr/_comm/fm_hear_etc.php?key=201801170941063053     재생이 ... 2 0 811
밥리
2018.01.17
13244 김프 해결법.. G20회의.. (뇌피셜) 방금 담배피우다가 문득 생각이 난 것..   정부에서는 김프를 잡겠다고 했는데 비코가 40% 떨어진 가운데서도 김프는 일정부분 이상으로 유지되고 있음..   비코가 오르면 오를수록 김프는 더 올라가지 않을까 생각되... 5 2 1331
가이버
2018.01.17
13243 섯불리 손절 하시면 큰 손해 입니다. 지금 섯불리 손절 하시면 큰 손해 발생합니다.   심장이 약하신 분은 그냥 거래사이트 보지마시고    다음주 쯤 확인하시기 바랍니다.   아울러, 비트커넥트 등 유사 사이트는 되도록 이면   가입하지 마시기 바랍니... 32 35 13026
비트카이쭈
2018.01.17
13242 답답 합니다..           내돈이 코인에 있어서 남탓 하는 건가요??   떨어지면 남탓 오르면 좋다고 다내꺼...   전 이것 저것 좋은 글 분석도 재미있게 읽고 있지만   높은산으로 올라가면  골짜기도 깊다는걸 알기에 당연하다고 ... 1 982
방갑습니다초보
2018.01.17
13241 트레이더로 한달 진짜 롤러코스터네요  2014년쯤에 280X등으로 채굴로 입문했습니다.  그러다 어느순간 뭣 때문인지 채굴도 안하게 되고 메인보드, 그래픽카드 팔지도 않고 냅두고 그냥 일상 생활에 집중했어요    얼마뒤 코스닥에서 작전세력주에 빌붙어... 4 0 1330
쿠끼요
2018.01.17
13240 액션 영화보다 더 짜릿하네요!!       액션 영화보다 더 짜릿하네요!!   과연 어디까지 반등 시킬지?   아~~ 내돈 ㅜㅜ       형님들 손절 구간 어디까지 주실거에요?               ------------------------------------- 꼬리말 * 게시글 내용 삭... 4 1 1435
감자형님
2018.01.17
13239 빗썸 사용하시는 분들께 여쭙고 싶습니다. 빗썸에 있는 코인들중 제 개인 경험으로 BCH는 BCH가 입금되는디 약 15-60분 정도 소요되는거 같고. XRP은 3주가 다 되어가도 감감 무소식이고. BTC는 짧게는 10분 길게는 2시간 걸리는데.. 혹시 다른 코인들은 입금... 30 0 1615
우유상자
2018.01.17
13238 오늘 btc 최저점 예상 해 봅니다.                         ------------------------------------- 꼬리말 * 게시글 내용 삭제시 레벨 강등 * 질문은 각 주제별 게시판에.   비트코인 암호화화폐 커뮤니티 땡글~ 땡글~ ----------------------------... 3 file 0 3211
BTC개조하여가정용
2018.01.17
13237 여러분은 2-3년 다시 기다릴수 있나요? 2009년 우연히 인터넷 사이트에서 알게된 비트코인 이야기를 보면서 뭐 그런게 있는가보다라고 스쳐갔다가.. 2013년이나 되어서야 비트코인을 알게 되고 그때부터 채굴도 하고 200달러에 사들이기 시작했습니다. 미국... 32 file 36 16014
3ervant
2018.01.17
13236 국제적 폭락장에 대한 이유 국제적 폭락장 이유에 대한 기사입니다. 어느정도 이해가 가네요.. http://news.joins.com/article/22292632 2 0 4371
푸른밤7
2018.01.17
목록
Board Pagination Prev 1 ... 496 497 498 499 500 501 502 503 504 505 ... 1163 Next
/ 1163
default debug random = 0 / type = READ / detected = READ