Ethereum에서 메시지 입력 메커니즘을 사용하기 위한 모범 사례
편집자 주: 이 기사의 출처는이더리움 애호가(ID: ethfans)편집자 주: 이 기사의 출처는
이더리움 애호가(ID: ethfans)
, 저자: Tellor Core, 번역 및 교정: Chen Liang & A Jian, Odai의 승인을 받아 재인쇄됨.
탈중앙화 금융 애플리케이션은 이더리움 생태계에서 초기에 빠르게 성장하는 범주이지만 그 핵심 부분인 정보 입력 메커니즘(오라클, 구 번역 "정보 입력 메커니즘")은 모든 사람의 관심을 끌었습니다. 정보 입력 메커니즘이 없으면 분산형 금융 애플리케이션은 온체인 데이터만 얻을 수 있으며 실제 애플리케이션 시나리오에 대한 적응성은 크게 제한됩니다. 많은 사람들은 많은 프로젝트가 이미 오프체인 정보 입력 메커니즘을 사용하고 있다는 것을 알 수 있지만 모든 사람이 정보 입력 메커니즘 및 관련 보안 조치의 사용에 대한 이해가 부족합니다. 보안 강화를 위해 점점 더 많은 새 프로젝트와 기존 프로젝트가 재설계됨에 따라 이 문서가 정보 입력 메커니즘을 사용해야 하는 방법에 대한 모범 사례 참조가 되기를 바랍니다. 메시지 입력 메커니즘에 대한 최상의 설계 원칙과 보안 모델에 대해 너무 많이 이야기하지 않고 Ethereum에서 애플리케이션을 빌드하는 경우 메시지 입력 메커니즘을 사용하는 방법에 대해서만 설명합니다. 또한 개발하는 응용 프로그램이 보안, 검열 저항 및 탈중앙화를 달성할 수 있기를 바라는 경우 다음은 Ethereum 스마트 계약을 구축할 때 몇 가지 제안 사항입니다.
권장 사항 1: 정보 입력 메커니즘 설계 및 상호 작용이 프로토콜에서 우선 순위여야 합니다.
정보 입력 메커니즘의 가장 간단한 형태는 중앙 집중식 입력 메커니즘으로, 여기에서 귀하(프로젝트 작성자)는 가격 정보를 입력하고 시작 시 많은 프로토콜이 이 작업을 수행하는 것을 볼 수 있으며 안전을 보장하기 위해 간단한 다중 서명만 사용합니다. 이러한 프로토콜은 "점진적 탈중앙화"의 경로를 선택한다고 주장하며(우리는 이 진술에 많은 문제가 있음) 향후 탈중앙화된 정보 입력 메커니즘으로 전환할 것이라고 선언합니다. 그냥 해커톤에 참여하고 싶다면 문제가 없지만 프로젝트 초기에는 중앙 집중식 정보 입력 메커니즘의 성능이 어떤 분산식 정보 입력 메커니즘보다 높기 때문에 시작하기가 너무 쉽습니다. 새 프로젝트입니다. 정확한 값이 항상 즉시 체인에 커밋된다고 가정하면 시스템 용량과 사용자 경험에 대한 설계 결정이 매우 달라질 것입니다.
점진적인 탈중앙화 아이디어를 실행하는 프로젝트는 이제 사용자가 특정 경험을 기대하는 어색한 상황에 처해 있지만 그들의 제품은 단순히 기존 탈중앙화 기술 스택 위에서 안전하게 작동하지 않습니다. 그들은 중앙 집중식 다중 서명에 여러 당사자를 포함하여 탈중앙화를 가장하도록 강요받거나, 캔 멘탈리티를 걷어차고 퍼블릭 체인 확장성의 불가능한 삼각형이 성공적으로 해결되기를 바랍니다. 여기서 포인트는 프로토콜 설계 초기부터 분산형 정보 입력 메커니즘을 고려하지 않는 한 분산형 정보 입력 메커니즘을 기존 프로토콜로 업데이트하기 어렵다는 것입니다.
조언 2: 항상 신속하게 응답하는 정보 입력 메커니즘을 신뢰하지 마십시오.
이더리움은 여전히 새로운 것입니다 블록은 종종 몇 초 안에 생성될 수 있지만 빈번한 전송 기간 동안 트랜잭션이 확인되는 데 오랜 시간이 걸릴 수 있습니다. 블록체인 게임 '캣옵세션'으로 인한 블록체인 막힘 사건과 최근 이체 수수료를 폭등시킨 '검은 목요일' 사건을 기억한다면 당시 사용자들은 믿을 수 없을 정도로 높은 이체 채굴 수수료를 지불해야 했다. 거래가 원활하게 확인됩니다. 프로토콜 사용자가 이러한 수수료를 지불할 경제적 인센티브가 있다고 생각하더라도 실제로 지불하도록 강요받기를 원하십니까?
네트워크 정체 문제 외에도 개발자는 이더리움 충돌이라는 코너 케이스도 고려해야 합니다. 블록체인 네트워크의 장기 중단은 발생하지 않지만 단기 중단은 가능하므로 온체인 및 오프체인(종종) 완결성이 결여된 신속한 정보 입력 메커니즘의 영향을 고려해야 합니다. 우리는 항상 프로토콜이 정상적이고 시기 적절한 작동을 유지하기를 희망하지만 때로는 이것이 불가능할 수도 있습니다.예를 들어, 최종성을 확인하기 위해 프로토콜을 몇 분 동안 실행해야 정보 입력 메커니즘이 정보를 입력하지 못할 수 있습니다. 정보 입력 메커니즘에 대한 시간 프레임을 설계하는 모든 방식이 바람직하지 않다는 것은 아닙니다 정보 입력 메커니즘에 대한 실용적인 작동 간격을 설계하는 것이 좋지만 안정적인 분산형 금융 프로토콜은 이러한 갑작스러운 극한 상황에 대비해야 합니다 준비하십시오. 그 중 하나는 다음과 같습니다.
보조 제목
권장 사항 3: 정보 입력 메커니즘이 손상되었을 수 있다고 가정
정보 입력 메커니즘에서 최종성을 가정하지 마십시오. 많은 프로토콜이 특정 작업을 구동하기 위해 정보 피드를 업데이트하는 실수를 범합니다(예: 파생 상품 계약은 정보 피드가 업데이트될 때만 정산됨). 이것은 실수입니다. 절대 발생하지 않기를 바라더라도 정보가 메커니즘에 잘못 입력되는 상황을 방지하기 위해 표준 운영 절차를 마련해야 합니다.
요약하면 정보 입력 메커니즘에서 발생할 수 있는 두 가지 유형의 오류가 있습니다.
메시지 입력 메커니즘이 잘못된 값을 제출했습니다.
메시지 입력 메커니즘이 다운되어 메시지를 체인으로 푸시하지 않습니다.
첫 번째 유형의 문제는 예를 들어 중앙 집중식 가격 피드 메커니즘을 사용하고 가격 공급자가 실수로 가격에 10,000을 곱한 경우 확실히 이 값으로 해결하고 싶지 않으며 피드 메커니즘 자체도 삭제됨 이 값(Teller 메시지 입력 메커니즘에서 이는 분쟁을 유발하고 취소됨)이지만 질문은 남아 있습니다. 데이터가 검증될 때까지 얼마나 오래 기다려야 합니까?
이는 궁극적으로 프로토콜의 안정성에 달려 있습니다. 일부 스마트 계약은 다른 것보다 더 느리고 더 강력한 확인 및 확인 메커니즘이 필요할 수 있기 때문입니다. 이 메커니즘의 좋은 예는 정보 입력 메커니즘에 의해 전달된 정보가 1시간 지연되어 적용되는 Maker 프로토콜입니다. 그러나 우리는 신중하게 생각해야 하며 이것이 반드시 사실이라고 가정해서는 안 됩니다.
정보 입력 메커니즘의 메커니즘을 훼손하는 두 번째 방법은 더 우회적입니다. 예를 들어 중앙 집중식 정보 입력 메커니즘은 개인 키를 잃어 계약을 업데이트할 수 없습니다. 이때 파생 스마트 계약은 어떻게 됩니까? 정보 입력 메커니즘의 활동에 영향을 미치는 또 다른 것은 정보 제공자가 정보를 신속하게 제공하지 않으려는 것입니다. 이더리움 네트워크가 혼잡하고 거래당 광부 수수료가 $20이고 정보 입력 메커니즘이 거래당 $1의 거래 수수료만 제공한다고 가정하면 스마트 계약이 업데이트되는 데 몇 시간이 걸릴 수 있으며 다시 제안 2로 돌아갑니다. 관점에서 , 이에 대비해야 할 수도 있지만 정보 제공자가 이 지연을 일방적으로 제어할 수 있는 능력이 있는지도 알아야 합니다. Tellor 정보 입력 메커니즘에서 우리는 POW의 경쟁을 통해 데이터를 체인에 넣기 때문에 인센티브 메커니즘에 의해 활동이 보장됩니다. 좀 더 중앙 집중화된 정보 입력 메커니즘에는 그러한 보장이 없으며 정보 입력 메커니즘 제공자는 지연된 거래를 용인할 수 있으며 심지어 뇌물이나 자신의 위치에 따라 데이터를 검열할 수도 있습니다.
정보 입력 메커니즘이 부패로 의심되거나 중앙 집중식 검토가 포함된 경우 다음을 포함하여 많은 대책이 있습니다(물론 사용하지 않는 것이 가장 좋습니다).
계약 실행을 중지하고 정보 입력 메커니즘이 올바른 값을 피드백할 때까지 기다립니다.
여러 정보 입력 메커니즘 활용
모든 자금 반환 / 기본값으로 정산 완료
우리가 참조하는 정보 입력 메커니즘의 백업 및 보안은 주로 프로토콜 수준을 강조합니다.통일된 패러다임으로 각 경우에 백업 옵션을 사용하는 방법을 표현하기는 어렵지만 모든 당사자가 이러한 백업을 개별적으로 수행 옵션에서 백업 메커니즘의 목적은 네트워크를 안전하게 유지하는 것이지 악의적인 공격에 대한 또 다른 경로를 제공하는 것이 아닙니다.
인정하든 그렇지 않든 공격자가 정보 입력 메커니즘을 손상시킬 수 있는 방법은 항상 있지만 비용은 다릅니다. 때때로 이 비용은 평판을 구매하거나 티켓을 구매하는 비용이고, 때로는 프로젝트에서 발행한 토큰의 시장 가치의 일부이며, 아마도 더 자주 정보 제공자를 부패시키는 비용이나 관련 참가자를 검토하는 비용(예: 전통적인 중앙 집중식 모델). 실제로 정보 입력 메커니즘을 파괴하는 비용이 아무리 높거나 정보 입력 메커니즘을 파괴하는 비용이 일정하지 않더라도 프로토콜의 보안에 대한 일반적인 이해가 있어야 합니다. 언젠가 수백만 달러 또는 심지어 수십억 달러의 자금을 보유하기를 희망하는 프로젝트의 경우 시장 가치가 수백만 달러에 불과한 토큰을 사용하여 정보 입력 메커니즘의 보안을 보증하거나 특정 그룹의 평판을 보증하는 것입니다. 큰 위험.
결론적으로
정보 입력 메커니즘을 파괴하는 비용을 알면 프로토콜 개발자가 시스템의 안정성을 보장하기 위해 얼마나 많은 보안 조치가 필요한지 이해할 수 있습니다.하나의 정보 입력 메커니즘을 사용하면 스마트 계약 자산의 보안을 보장할 수 없지만 여러 정보 입력 메커니즘을 사용합니다. 또는 일부 백업을 수행하는 방식은 계약을 공격하는 비용을 크게 증가시킵니다. 현재 일부 사람들은 새로운 프로토콜이 여러 정보 입력 메커니즘을 계약에 쉽고 빠르게 통합할 수 있도록 가격 및 데이터 흐름 정보를 표준화하는 이더리움 업그레이드 제안(EIP2362)을 제출하기 시작했습니다.


