원제: "Bitlayer 핵심 기술: OP-DLC 2: 위대한 진실은 항상 단순하다"
원저자: mutourend & lynndel, Bitlayer Research Group

1. 소개
Discreet Log Contract(DLC)는 2018년 MIT의 Tadge Dryja가 제안한 오라클 기반 계약 실행 프레임워크입니다. DLC를 사용하면 두 당사자가 사전 정의된 조건에 따라 조건부 결제를 할 수 있습니다. 양 당사자는 가능한 결과를 미리 결정하고 사전 서명하며, 오라클이 결과에 서명할 때 이러한 사전 서명을 사용하여 지불을 실행합니다. 따라서 DLC는 비트코인 예금의 보안을 보장하면서 새로운 분산형 금융 애플리케이션을 가능하게 합니다.
이전 기사 " DLC 원리 및 최적화 사고 분석 "에서는 개인정보 보호, 복잡한 계약, 낮은 자산 위험 측면에서 DLC의 장점을 요약했으며, 또한 주요 위험의 존재, 분산형 신뢰 위험, 담합 위험 등을 분석했습니다. DLC 문제를 해결하고 분산형 오라클, 임계값 서명, 낙관적 도전 메커니즘 등을 DLC에 도입하여 직면해야 할 다양한 문제를 해결합니다. DLC에는 oracle, Alice, Bob의 세 당사자가 참여하기 때문에 서로 다른 당사자가 공모하여 철저한 공격을 수행하는 것이 상대적으로 복잡하여 예방 전략이 상대적으로 복잡합니다. 복잡한 방어 전략은 완벽하지 않고, 단순성의 원칙을 따르지 않으며, 단순성의 아름다움이 부족합니다.
비트코인에서는 모든 참가자의 모든 행동이 UTXO를 통해 구현되어야 합니다. 따라서 UTXO가 올바른지 확인하기 위해 합의 메커니즘을 사용하면 임의의 공격에 저항할 수 있습니다. 마찬가지로 DLC에서는 모든 참가자의 모든 행동이 CET(계약 실행 거래)를 통해 구현되어야 합니다. 따라서 CET가 올바른지 확인하기 위해 낙관적 인증 확인 메커니즘을 사용하면 임의의 공격에 저항할 수 있습니다. 구체적으로, 오라클은 2B TC를 약속한 후 CET에 서명할 수 있습니다. CET에 낙관적인 도전 메커니즘을 추가했습니다. CET가 도전받지 않거나 도전이 성공적으로 충족되면 CET는 정확하고 결제가 완료될 수 있으며 오라클은 스테이킹을 해제하고 처리 수수료를 받습니다. 오라클이 악행을 시도하면 누구나 성공적으로 도전할 수 있지만 CET는 그렇지 않습니다. 정산되면 오라클은 돈을 잃게 됩니다. 보증금이 예치되고 오라클은 동일한 CET에 다시 서명할 수 없습니다. 큰 단순함에 맞춰 단순함의 아름다움이 있습니다.
2.DLC 원리
Alice와 Bob은 베팅 계약에 서명합니다. 즉, ξ번째 블록의 해시 값이 홀수 또는 짝수인지에 베팅하는 것입니다. 홀수이면 Alice가 게임에서 승리하고 자산을 인출할 수 있습니다. 짝수이면 Bob이 게임에서 승리하고 자산을 인출할 수 있습니다. DLC를 사용하면 ξ번째 블록 정보가 오라클을 통해 전달되어 올바른 승자가 모든 자산을 획득할 수 있도록 조건부 서명을 구성합니다.
타원 곡선의 생성자는 G이고 차수는 q입니다. 오라클인 Alice와 Bob의 키 쌍은 각각 (z, Z), (x, X), (y, Y)입니다.
자금 거래(온체인): Alice와 Bob은 함께 자금 거래를 생성하며, 각각 2/2 다중 서명 출력에서 10 BTC를 잠급니다(공개 키 X 하나는 Alice에게 속하고 공개 키 Y 하나는 Bob에게 속합니다). .
CET 구축(오프체인): Alice와 Bob은 자금 거래를 지출하기 위해 CET 1과 CET 2를 생성합니다.
오라클은 약속 R = k · G를 계산한 다음 S와 S'를 계산합니다.
S := R - 해시(홀수, R) · Z
S' := R - 해시(짝수, R) · Z
그런 다음 Alice와 Bob에 해당하는 새 공개 키는 다음과 같습니다.
PK^{앨리스} := X + S
PK^{밥} := Y + S'.
정산(오프체인 -> 온체인): ξ번째 블록이 성공적으로 생성되면 오라클은 블록의 해시 값을 기반으로 해당 CET 1 또는 CET 2에 서명합니다.
해시가 홀수이면 오라클은 다음과 같이 s에 서명합니다.
s := k - 해시(홀수, R) z
CET 1을 방송합니다.
해시가 짝수이면 오라클은 s'에 서명합니다.
s' := k - 해시(짝수, R) z
CET 2를 방송합니다.
코인 인출(온체인): 오라클이 CET 1을 방송하면 Alice는 새 개인 키를 계산하고 잠긴 20 BTC를 사용할 수 있습니다.
sk^{앨리스} = x + s
오라클이 CET 2를 방송하면 Bob은 새로운 개인 키를 계산하고 잠긴 20 BTC를 사용할 수 있습니다.
sk^{밥} = y + s'
Bitlayer 연구팀은 위 과정에서 모든 동작은 CET를 통해 구현되어야 한다는 사실을 발견했습니다. 따라서 CET가 올바른지 확인하고 임의의 공격에 저항할 수 있도록 낙관적 챌린지 메커니즘을 사용하기만 하면 됩니다. 잘못된 CET는 문제가 제기되어 실행되지 않지만 올바른 CET는 실행됩니다. 또한 오라클은 악의적인 행위에 대한 대가를 지불해야 합니다.
도전할 프로그램은 f(t)이고, CET는 다음과 같이 구성되어야 합니다.
s = k - 해시(f(t), R) z.
실제 상황은 ξ번째 블록의 해시 값이 홀수, 즉 f(ξ) = OddNumber이고 오라클이 CET 1에 서명해야 한다고 가정합니다.
s := k - 해시(홀수, R) z.
그러나 오라클은 뭔가 나쁜 짓을 하고 함수 값을 Even로 변경하여 CET 2에 서명했습니다.
s' := k - 해시(짝수, R) z.
따라서 모든 사용자는 f(ξ) ≠ OddNumber에 따라 이 악의적인 행동을 물리칠 수 있습니다.
3.OP-DLC 2
OP-DLC에는 다음 5가지 조항이 포함됩니다.
- 오라클은 n명의 참가자로 구성된 연합으로 구성되며, 모든 구성원이 CET에 서명할 수 있습니다. 2B TC를 약속해야만 오라클 머신이 서명을 발행하고 처리 수수료를 받을 수 있습니다. 회원이 악행을 하면 지분을 잃게 됩니다. 다른 회원은 계속해서 CET에 서명하여 사용자가 자금을 인출할 수 있도록 할 수 있습니다. 앨리스와 밥도 신탁이 되어 진정으로 자신만을 신뢰하고 신뢰를 최소화할 수 있습니다. 
- 오라클이 악한 짓을 하고 결과를 수정한다면 필연적으로 f 1(ξ) ≠ z 1, f 2(z 1) ≠ z 2라는 상황이 발생하게 됩니다. 따라서 모든 참가자는 챌린지를 시작할 수 있습니다. 즉, Disprove-CET 1 트랜잭션을 수행할 수 있습니다. 
- 오라클이 CET에 정직하게 서명하면 어떤 당사자도 유효한 반증 거래를 시작할 수 없습니다. 1주일 후 CET가 올바르게 정산됩니다. 또한 오라클은 약속된 2B TC의 1주간 자본 점유로 0.05 BTC 보상과 CET에 정직하게 서명한 데 대한 처리 수수료를 받습니다. 
- 모든 당사자는 Oracle_sign에 이의를 제기할 수 있습니다. - Oracle_sign이 정직한 경우 Disprove-CET 1 트랜잭션을 시작할 수 없으며 CET 정산은 1주일 후에 수행됩니다. 또한 오라클 머신은 잠금을 해제하고 처리 수수료를 받을 것을 약속합니다. - Oracle_sign이 부정직한 경우, 즉 누구든지 Disprove-CET 1 트랜잭션을 성공적으로 시작하고 커넥터 A 출력을 성공적으로 소비하는 경우 오라클의 서명은 유효하지 않으며 약속된 2B TC는 손실되며 오라클은 더 이상 사용할 수 없습니다. 커넥터 A 출력에 의존하는 Settle-CET 1이 영구적으로 유효하지 않기 때문에 DLC 계약은 동일한 결과로 서명을 시작합니다. 
- OP-DLC의 챌린지는 허가가 필요하지 않습니다. 즉, 모든 참가자는 OP-DLC의 계약이 올바르게 실행되는지 감독할 수 있습니다. 따라서 오라클에 대한 신뢰가 최소화됩니다. 라이트닝 네트워크와 달리 Alice와 Bob은 오프라인 상태일 수도 있습니다. 왜냐하면 오라클은 정직한 서명으로만 CET를 정산할 것이고, 악을 행하는 오라클은 누구든지 도전하고 처벌할 것이기 때문입니다. 

이점:
- 자산에 대한 높은 통제권을 갖고 자신만 신뢰하십시오. Alice와 Bob은 둘 다 오라클이 되어 CET에 서명할 수 있습니다. 낙관적인 챌린지 메커니즘은 잘못된 CET를 물리칠 것이므로 악한 일이 일어날 수 없습니다. 따라서 OP-DLC는 사용자가 자신만을 믿을 수 있게 해줍니다. BitVM에서 사용자는 자신만을 신뢰하기 위해 운영자 역할을 해야 하며 이후의 모든 예금에 참여해야 합니다. 운영자로서 사용자가 BitVM에서 단일 UTXO 예금에만 참여하고 UTXO가 다른 (n-1) 운영자에 의해 법적으로 상환될 수 있는 경우, 사용자는 향후 선불 결제를 위해 여전히 다른 운영자를 신뢰해야 합니다. BitVM 운영자의 환급 권한은 각 단일 예금 UTXO에 대해 잠겨 있습니다. 
- 높은 자본 활용도: 사용자가 자신만 신뢰하는 경우 필요한 자금의 양이 다릅니다. OP-DLC에서 사용자는 스스로 돈을 인출하므로 동일한 금액의 자금을 선지급할 필요가 없습니다. BitVM에서는 사용자가 동일한 금액의 자금을 선지급한 다음 상환을 받아야 합니다. 이는 더 큰 재정적 압박을 가져옵니다. 
- 서명할 수 있는 오라클은 OP-DLC에 입금할 때 결정되어야 하지만, 사용자가 스스로 오라클이 되어 서명할 수도 있습니다. 
결점:
- 출금 시간은 1주일 정도 소요됩니다. 기본적으로 OP-DLC와 BitVM의 펀딩 시간 비용은 모두 존재하며 동일합니다. OP-DLC 인출은 자금을 얻기 전에 도전 기간을 거쳐야 합니다. BitVM이 사용자에게 스스로 발전하도록 의존하는 경우 동일한 금액의 선지급 자금도 성공적으로 상환되기 전에 도전 기간을 거쳐야 합니다. BitVM이 빠른 출금을 위해 다른 운영자에게 의존하는 경우, 이는 운영자가 처리 수수료와 동일한 금액의 자금 및 시간 비용을 지불해야 함을 의미합니다. 
- 사전 서명에 필요한 서명 수는 빠르게 증가하며 CET 수와 선형적으로 관련됩니다. 모든 출금 결과를 열거하려면 최대한 많은 CET가 필요합니다. 
4 결론
OP-DLC는 잘못된 CET가 해결되지 않고 해당 악의적인 오라클이 서약을 잃지 않도록 CET에 낙관적 챌린지 메커니즘을 도입합니다. 이는 올바른 CET가 실행되고 오라클 서약이 잠금 해제되고 처리 수수료가 획득되도록 보장합니다. 이 방법은 어떤 공격에도 저항할 수 있으며 단순함의 아름다움을 가지고 있습니다.
참고자료


