이 글은 시아코인의 공식 블로그에서의 https://blog.sia.tech/growing-pains-8e7b01c56f7e 글을 가져와 번역한 것입니다. 글이 쓰여진 날짜는 6월 13일입니다.
지난 몇 달간 우리는 예금과 출금이 잘 되지 않던 지갑 이슈들을 해결하기 위해서 폴로닉스 및 비트렉스와 긴밀히 협력해왔습니다. 현재는 상황이 정상적으로 잘 작동하기 시작한 것으로 보입니다. 비트렉스 인출은 며칠 동안 진행되어 왔으며, 폴로닉스는 출금 실패에 대한 백로그를 정리하고 있습니다. 대부분의 새로운 폴로닉스 출금들은 성공적일 것이고, 맣ㄴ은 사용자들이 며칠전부터 해두었던 출금들을 잘 받을 수 있게 될 것입니다.
우리가 거래소들과 이 이슈를 해결하는 동안 기다려주시고 지지를 해주셔서 여러분들 모두에게 정말로 감사합니다. 이 포스트에서는, 무엇이 잘못되었었고, 우리가 어떻게 대응했고, 이러한 이슈들이 당분간은 절대 발생하지 않도록 하기 위해서 어떤 것을 하려고 하는지를 말하고자 합니다.
무엇이 잘못되었을까요? What Went Wrong
전반적으로, 위에서 언급한 지갑 이슈들은 시아 블록체인에서의 거래량이 급격한 급등한 일에 의해서 발생했었습니다.
우리는 성장을 위한 계획을 세우고 있습니다, 하지만 경고없이 그렇게 빠르고 그렇게나 많은 성장을 할 것이라고는 예상을 하지 못했었습니다. 시아코인은 5월이 되었을 때, 시가총액이 30M USD (3000만 달러, 한화 약 330억원) 이하였었는데요, 6월 초에 갑자기 400M USD (4억 달러, 한화 약 4400억원) 을 넘어서게 되었습니다. 사용자들이 그들의 코인들을 거래소 바깥으로 전송하고, 시아 네트워크 안에서 주인과 임차인의 역할을 맡게 되면서, 거래 건 수가 급격하게 상승했습니다.
거래량에 있어서 급격한 증가는 2MB 크기의 거래 풀 (일명 mempool) 이 피크 시간때마다 가득 차버리도록 만들었습니다. 풀이 가득차면, 새로운 거래는 없었던 일이 되어버립니다. 기본적으로 블록체인에서는 마이너들이 풀에서 거래를 선택한 후에 블록을 만들어 냅니다.따라서, 풀에 속하지 않은 어떠한 거래도 시아 블록체인에 추가되지 않을 것입니다.
이것은 우리의 잘못입니다. 우리는 2년 전에 거래 풀을 2MB로 정하기로 결정하였는데, 왜냐하면 그 크기보다 더 큰 사이즈를 쓰게 되면 심각한 성능 문제가 발생했었기 때문입니다. 그리고 더 큰 크기의 풀을 사용할 수 있도록 하려면, 더 많은 엔지니어링 작업을 했어야 했는데, 이러한 작업들을 미뤄왔습니다.
따라서, 사용자가 폴로닉스와 비트렉스에서 인출을 요청할 때, 거래소들은 그 거래를 네트워크에 알렸습니다만, 그러한 거래들이 실제로 블록체인에 추가되었는지를 확실하게 확인하지는 않았습니다. 거래소에서 일어난 거래들이 블록체인에 추가되지 않았음에도 성공적으로
완료되었다고 마킹된 것입니다. 거래는 완료되었는데 지갑에는 돈이 들어오지 않은 이러한 현상때문에 사용자들에게 큰 혼란이 야기되었습니다.
우리는 어떻게 대응했나요? How We Responded
포롤닉스 지갑 이슈를 신고받은 후에, 우리는 5월 22일 사용자들에게 우리를 도와줄 수 있는지 물어보는 이메일을 보냈습니다. 우리는 5월 27일에 빠르게 수정하여, 거래풀에 들어가지 않는 거래들에 대해서 다시 한 번 네트워크에 알려줄 수 있도록 만들었습니다. 폴로닉스는 5월 30일에 지갑을 다시 사용 가능하도록 만들었습니다만, 비슷한 문제가 다시 일어나는 바람에 그 날 밤사이에 다시 지갑을 쓸 수 없도록 막아두었습니다. (거래 풀은 다시 한 번 빠르게 가득찼고, 그들은 자동적으로 거래들을 재방송할 수는 없었습니다.)
우리는 폴리늑스와 이야기하는 것을 계속 진행했고, 5월 31일 그들에게 가장 큰 마이닝 풀의 IP 주소를 제공해주었습니다. (그렇게 함으로써, 그들은 풀에 직접적으로 메세지를 전달할 수 있게 되었습니다.) 6월 5일에는 한 번에 여러 사람에게 전송할 수 있는 기능을 구현했고, 거래소들은 단 한 번의 거래로 250개의 출금을 배치 처리할 수 있게 되었습니다. (역자 주: 배치 처리란 반복되어야 할 많은 일들을 한꺼번에 묶어서 처리하는 것을 말합니다.)
폴로닉스는 이러한 수정사항을 구현했고, 6월 8일 다시 정상적으로 작동할 수 있게 되었습니다. 그들은 그들의 백로그를 통해서 작업을 진행하고 있고, 오늘 (6월 13일) 폴로닉스가 모든 일을 끝내게 될 것이라고 기대하고 있습니다. 이 말은 모든 것이 원래대로 돌아가게 될 것이라는 것을 말해줍니다.
비트렉스와도 동시에 같이 일을 진행했으며, 그들은 매우 빠르게 반응해주었고, 며칠만에 정상적으로 동작할 수 있게 되었습니다.
전체적으로 우리는 2 주 동안 시아 코드에 14번의 수정을 가하였습니다. 여기에는 위에서 언급한 단기적인 수정과 거래량이 계속 증가함에 따라 시아 네트워크의 확장성을 높이기위한 장기적인 업그레이드가 포함됩니다.
수정사항과 업그레이드 Fixes and Upgrade
- 거래들을 주고 받는 데에 대한 지원을 추가
거래소들이 원시 거래들 (raw transaction, 역자 주: 원시가 적절한 표현은 아니지만, 아무런 정제 없이 처음으로 등장하게 된 거래라고 이해하시면 됩니다.) 에 대해서 식별자를 얻고, 네트워크에 재차 알릴 수 있도록 만들었습니다. - 지갑에 기록 기능을 추가
기록 기능을 더욱 향상시켜, 거래소들이 거래가 확실히 승인되었는지를 쉽게 알 수 있도록 만들었습니다. - 되돌려진 거래들을 tpool Update() 에서 수행
모든 되돌려진 거래들 (실패한 거래들) 은 풀에 추가가 되도록 재시도될 것입니다. 장기적으로 거래 풀을 업그레이드하면서, 재편성으로 인한 혼란을 막고자 합니다. - 실패한 거래들의 전송에 대한 기록
더욱 향상된 기록 기능입니다. - 풀에서 12블록보다 더 오래되어 승인받지 못한 블록들을 잘라낼 것입니다.
거래 풀들이 자연스럽게 과잉과 불필요한 네트워크 파편화를 막도록 할 것입니다. - 배치 처리를 위한 API를 제공
거래소들은 각 출금 당 블록체인 공간의 1/3을 사용하면서 25배의 출금을 처리할 수 있게 됩니다. - 시장에 기반하여 거래를 수락하고 수수료를 산정하는 기능을 추가
높은 우선순위의 거래들이 빠르게 진행될 수 있도록 송금 수수료 시장을 추가하였습니다. - Tpool 블록 추정
지능형 수수료 산정을 도와줍니다. - tree.PushObject 호출을 대체하면서 Block.MerkleRoot 을 최적화함
더 큰 거래 풀을 안전하게 사용할 수 있도록 성능에 대한 최적화를 이루었습니다. - /tpool/fee 엔드 포인트 추가
수수료 시장 가격들을 볼 수 있는 기능을 만들었습니다. - 유저가 스스로 수수료를 정할 수 있는 기능을 제공
유저는 그들만의 수수료를 스스로 선택할 수 있게 됩니다. - MarshalSia에 대해서 직접적인 호출을 추가함으로써 Transaction.ID() 를 최적화
더 크고 안전한 거래 풀을 만들기 위한 최적화를 수행하였습니다. - 새로운 블록에 대한 수수료를 산정하는 알고리즘
더 효율적인 수수료 산정 알고리즘이 추가되었습니다. - tpool에 대해서 차이 기반 업데이트로 전환
더 크고 안전한 거래 풀을 만들기 위해서 스트레스 테스트를 할 수 있도록 만들고, 확장성을 업그레이드하였습니다.
다음 단계 Next Steps
위의 업그레이드 사항 중 대부분은 장기적인 관점에서 시아 네트워크가 더 크게 확장될 수 있도록 하는 업그레이드에 집중하고 있습니다.
우리는 거래 풀의 사이즈를 2MB에서 5MB로 늘릴 계획입니다. 그와 더불어, 높은 수수료를 지불했던 거래들이 많아지게 되면 자동으로 사이즈가 자라나는 기능을 제공할 것입니다. 우리는 비트코인과 비슷한 수수료 마켓을 만들 계획인데, 채굴자들이 수수료를 기반으로 거래들에 대해서 우선순위를 매길 수 있게 될 것입니다. 이렇게 구현된 업그레이들에 의해서, 시아 네트워크는 좀 더 안정적으로 확장이 가능해지게 될 것입니다.
이러한 확장성 업그레이드들은 가장 큰 우선순위를 가지고 있고, 이번 달 말에 원격 파일 복구와 같은 다른 중요한 기능들과 함께 1.3.0 버전의 Capricorn 출시에 포함될 예정입니다. (원격 파일 복구는 시아가 클라우드 백업 솔루션 서비스를 제공할 수 있도록 만들 것입니다.) 이러한 확장성 업그레이드들을 경험하기 위해서, 시아 유저들의 상당수가 1.3.0 버전으로 업그레이드 해야 할 것입니다.
다시 한 번, 이렇게 극도로 빠르게 성장하는 시점에서 기다려주고 지지해준 모든 여러분들께 감사의 인사를 올립니다.
※ 수정사항과 업그레이드 섹션은 기술적인 용어가 포함이 되어 있으니 큰 그림에서만 이해하시는 걸 추천합니다.
※ 오역이나 더 좋은 표현이 있다면 알려주세요.
※ 글이 도움이 되었다면 보팅과 리스팀 한 번씩 부탁드리겠습니다.
※ 오늘도 좋은 하루되세요! 읽어주셔서 감사합니다.
좋은 정보 감사합니다
이제 입출금 문제 해결된 건가요? 시아코인 입출금을 했는데... 주단위로 거래를 못한사람도 있죠. 다행히 올라서 별 문제 없었는듯. 리플처럼 떨어졌으면... ㄷㄷㄷ
감사합니다
리스팀 합니다
감사합니다!
시아 코인 그냥 저렴할때 사두었는데 이런일들이...기다릴 맛이 나네요. ㅋ
좋은 글 잘보고 갑니다
저도 시아 코인 잇어요 ㅋㅋ
글 읽어주셔서 감사합니다! 좋은 하루 되세요 :)
이런 성장통이 있었기에 슬슬 달릴 준비를 하려나 봅니다. 제일은행... ㅎㅎ
시아코인이 한단계 업그레이드하려는 모습이네요 ㆍ 잘봤습니다ㅎ
코인관련에 대한 글들을 읽고나면 다 좋아보이는것은 왜일까요!!!
저는 다행히도 이 이슈 있는 동안에는 시아 입출금을 하지 않았었네요 ㅎㅎㅎ
이제 해결이 되었고 이러한 큰 문제를 겪은 후 잘 대응하여 더 크게 성장할 것으로 보입니다
시아 코인 고민하고 있는데 도움 많이 되었습니다!!
마침 시아코인관련해 궁금점들이 있었는데 감사합니다^^ㅋ
아 출금...그래서 급등했군요. 진작에 사둘걸 하하 아깝네요.