Raiden Network — 이더 리움 블록 체인 결제 채널

지난 며칠 동안 BeyondBlock의 연설 내용을 소화했습니다. Raiden Network를 듣고 몇 가지 숙제를했습니다.이 기사는 지금까지 알고있는 Raiden 네트워크를 요약 할 것입니다.

이 기사는 당신이 이미 스마트 계약을 알고 있다고 가정하고 있습니다. 스마트 계약을 모른다면 읽기가 조금 어려울 것입니다.

Raiden은 Ethereum을 기반으로 한 오프 체인 거래 솔루션 입니다. 주로 속도, 비용 및 개인 정보 보호라는 세 가지 주요 문제를 해결하고자합니다.

속도와 비용은 이더 리움에서 해결해야 할 문제입니다. 현재 정보에 따르면 인터넷에서 초당 평균 거래 건수는 10 건이고 거래 수수료는 각 거래마다 조정할 수 있지만 가스 가격은 조정할 수 있지만 네트워크는 용 사이 시대에 그는 자신의 거래가 완료 될 수 있도록 높이를 조정해야했습니다. 최근의 가상 고양이 혼란이 전체 이더 리움 네트워크를 혼잡하게 만들었습니다. 이더를 지원하는 일부 거래소는 아마도 냄비 위의 개미와 같습니다.

거래 속도 솔루션의 확장을 해결하기 위해 샤딩과 플라즈마가 점점 더 자주 언급되지만, 공식 출시 전에 양조하는 데 시간이 좀 걸릴 것 같습니다. Raiden은 현재 고도로 완성 된 확장 계획 인 것 같습니다.

속도 및 거래 수수료 문제

하지만 실제로 문제는 어디에 있습니까?

속도 측면에서 모든 거래에는 네트워크 전체의 합의가 필요하기 때문에 각 거래는 새로운 블록이 계산 될 때까지 기다려야하며이 새로운 거래가 여기에 포함되어야합니다. Ethereum의 블록 생성 속도 트랜잭션은 확인하는 데 수십 초에서 몇 분이 걸릴 수 있으며 네트워크가 혼잡 한 경우 더 오래 걸릴 수 있습니다.

거래 수수료 상태는 이더 리움에서 설계된 가스 메커니즘에 기인합니다. 각 거래는 채굴 자에게 거래 수수료를 지불합니다.이 거래 수수료가 상대적으로 큰 거래에 배치되면 괜찮지 만 소량 일 경우 거래 중 수수료 비율이 너무 높습니다. 예를 들어 지난 몇 번 완료 한 거래 수수료는 0.3 ~ 0.37 달러 사이인데, 대만 달러로 수백 달러 만 거래하면 당연히 너무 비쌉니다.

Raiden 네트워크 솔루션

처음에 매우 혼란스러운 문장을 언급했습니다. Raiden은 Ethereum (Ethereum)을 기반으로 한 오프 체인 트랜잭션 솔루션입니다 . 오프 체인 솔루션이므로 어떻게 Ethereum을 기반으로 할 수 있습니까? 뭐?

Raiden은 보조 네트워크이기 때문에 오픈 채널 (채널)을 사용하여 트랜잭션 배치를 처리 한 다음 일부 암호화 알고리즘 메커니즘을 사용하여 실제 트랜잭션 데이터를 오프 체인에서 기록 및 확인하고 마지막으로 채널을 닫습니다. 거래 데이터는 실제 암호 화폐 거래 및 검증을 위해 블록 체인으로 전송됩니다. 이러한 방식으로 블록 체인의 실제 거래 수가 크게 줄어들어 거래 수수료를 줄이고 속도를 높이는 목표를 달성 할 수 있습니다.

놀랍게 들리지만 (실제로 그렇습니다)이 목표를 달성하려면 아래에서 하나씩 설명 할 많은 세부 사항이 필요합니다.

먼저 Raiden이 다중 노드 네트워크라고 설명해야하지만 간단한 시나리오로 시작하기 위해 먼저 두 노드간에 Raiden의 원칙을 사용하여 거래 수수료를 줄이고 속도를 높이는 목적을 달성하는 방법을 설명합니다. 마지막으로, 그런 다음 많은 Raiden 노드로 구성된 네트워크가 어떻게 목표를 달성하는지 설명합니다.

또한 Raiden은 모든 ERC20 토큰을 전송할 수 있습니다. 아래의 예에서는 Ether (ETH)를 사용하지만 실제로는 ERC20과 호환되는 토큰으로 패키징됩니다.

먼저 상상해보세요 …

라이덴의 서비스 나 지갑 길이를 아직 보지 못했기 때문에 레이든 네트워크를 더 잘 설명하고 상상하기 위해 레이든을 사용하면 레저 카드처럼 보이는 저장 가치 카드 앱이 될 것이라고 상상해보세요. 앱, 일반적으로 MRT의 충전 기계로 이동하여 무료 여행 카드를 충전합니다. Raiden 네트워크에서 이더를 Raiden에 저장하려면 앱이 필요합니다.

이 앱에서 Ethereum 계정과 Raiden 계정의 잔액을 확인하고 Raiden 네트워크에서 이체 한 내역을 나열 할 수 있습니다. 마지막으로 앱 하단에 세 가지 기능이 있습니다.

두 노드 간의 상호 작용에 대해 먼저 이야기

많은 이야기를 마치고 마침내 두 노드 간의 상호 작용을 설명하기 시작했습니다. 앞서 언급했듯이 Raiden 네트워크의 원칙은 여러 거래를 처리하기 위해 Ethereum에 채널을 여는 것입니다. 자세한 내용을 자세히 살펴 보겠습니다.

채널 열기

먼저, 채널은 실제로 스마트 계약입니다. 채널을 열면 새로운 스마트 계약을 배포합니다. 예를 들어 Bob과 Alice는 종종 함께 식사를하며 3 일마다 서로 식사를해야합니다. 상호 작용은 다음과 같습니다.

위 그림에서 점선은 블록 체인에서의 상호 작용이고, 점선은 Raiden 네트워크에서의 상호 작용입니다.

먼저 채널을 열고 (스마트 컨트랙트 배포) 두 사람 모두 스마트 컨트랙트에 5 개의 이더를 넣어 자금이 그들 사이에 흐를 수 있도록합니다. 스마트 계약이 둘의 이더를 저장 한 후 두 당사자는 Raiden 네트워크에서 거래를 시작할 수 있습니다. Bob이 Raiden 네트워크의 Alice에게 첫 1 ETH 트랜잭션을 보낼 때 트랜잭션은 블록 체인으로 전송되지 않고 대신 Bob은 자신을 사용하기 위해 채널에 양 당사자의 잔액과 함께 트랜잭션 정보를 포함합니다. 개인 키에 서명 한 후 Alice에게 전송하여이 정보를 저장합니다.이를 Balance Proof라고합니다. Alice가 Bob에게 Balance Proof를 받았다고 알리면 거래가 Raiden에서 설정됩니다.

이 시점에서 양 당사자는 채널에 대한 잔액 정보를 갖게됩니다. 예를 들어 Alice는 잔액 증명 Bob : 4 ETH, Alice 6 ETH 를 가지며 Bob이 서명했습니다.

다음 3 개의 트랜잭션은 Raiden에서만 동일한 방식으로 확인, 서명 및 전송되며이 정보는 이더 리움 블록 체인 네트워크에 업로드되지 않습니다.

또한 모든 거래 기록을 Raiden 네트워크에 저장할 필요는 없으며 최종 잔액 만 저장하면됩니다.

채널 닫기

이 두 노드 중 하나가 스마트 계약에 저장된 돈을 돌려 받고자 할 때 채널을 닫을 수 있습니다 (채널 닫기).

Bob이 채널을 닫으려고한다고 가정하면 Bob은 Smart Contract의 close () 를 호출합니다. 이때 Bob은 close () 의 매개 변수에 자신의 최신 정보를 추가합니다. 잔액 증명을 얻은 후 Alice는 updateTransfer () 를 호출하여 일정 기간 내에 양 당사자의 잔액 데이터를 업데이트 할 수도 있습니다.

양 당사자가 데이터를 업데이트 한 후이 채널은 모든 사람 (양 당사자에 국한되지 않고 이더 리움의 모든 노드 일 수 있음)에 의해 트리거되어 양 당사자의 돈을 돌려받을 수 있습니다. settle () Bob과 Alice는 처음에 5 ETH를이 채널에 입금했으며 최종 잔액 상태는 6 ETH를 Bob에게, 4 ETH를 Alice에게 다시 보내는 것입니다.

여기서 중요한 점은 모든 사람이 소유 한 잔액 증명이 상대방의 개인 키로 서명된다는 것입니다. 따라서 어느 당사자가 close () 또는 updateTransfer () ecrecover () 를 사용하여 서명을 확인할 수 있습니다. 잔액 증명이 올바르게 확인되면 스마트 계약은 잔액이 양 당사자에 의해 확인되었음을 확인할 수 있습니다.

전체 Raiden 네트워크

방금 라이덴 네트워크에서 두 노드의 운영 상황을 설명했지만 매번 돈을 이체해야하는 두 당사자 사이에 채널을 여는 것은 부당하므로 라이덴 네트워크의 여러 노드가 전송됩니다. 유용합니다. Alice (A)가 지금 David (D)에게 돈을 이체하려는 경우 실제로 그들 사이에 직접 채널이 필요하지 않으며 Alice와 David 만 Raiden 네트워크에 있으며, 이는 둘 다 Raiden 네트워크에 있음을 의미합니다. 네트워크의 일부 노드간에 채널이 열려 있습니다.


SecretRequest 는 전체 트랜잭션을 잠금 해제하기 위해 잠금 해제 된 키가 필요합니다.

마지막으로 각 발신자는 잔액 증명을 다음 수신자에게 보내고 최종 상태는이 채널의 모든 사람이 이전 잔액 증명을 갖게되는 것입니다. 예를 들어 Bob (B)은 Alice (A)가 서명 한 잔액 증명이 있고 Carol (C)은 Bob (B)이 서명 한 잔액이 있습니다.Proof,이 Balance Proof는 채널이 닫혀있을 때 사용할 수 있습니다.

해시 잠금에 익숙하지 않은 경우이 기사 A Simple Hash Locked Contract : Part 1을 참조하여 상대적으로 간단한 방법으로 Hash Lock을 소개 할 수 있습니다.

이러한 채널은 다른 사람의 전송에도 사용할 수 있으므로 이더 리움 없이도 사용할 수 있기 때문에 즉시 닫을 필요는 없습니다.거래 수수료를 조건으로 이체를 계속하십시오. 지금은 원래 스케치로 돌아가 보겠습니다. 귀하의 Raiden 앱은 가치 저장 카드와 같습니다. 이더 리움 계정으로 돈을 다시 인출해야한다고 생각할 때까지 소액 거래에 빠르게 사용할 수 있습니다. 그런 다음 인출을 눌러 돈을 인출하십시오. 채널이 닫히기 전에 통과 할 수 있습니다.Raiden 인터넷 양도를 다른 사람에게.

네트워크 전체의 합의가 필요하지 않기 때문에 Raiden은 비교적 빠른 속도로 거래를 완료 할 수 있습니다. 또한 라이덴 네트워크에서 전송 비용이 여전히 존재한다고 말하고 싶은데 총 2 가지 유형이 있는데 그중 하나는 프로토콜 수준입니다.송금시 수수료가 부과되지만 이론적으로 수수료는 매우 적습니다. 또 다른 요금은 주변기기 요금입니다. 라이덴의 라이트 노드 (라이트 노드) 만 사용하는 경우 완전한 라이덴 서비스 관계가 없기 때문에 서비스를 제공하기 위해 풀 노드가 필요하므로 요금이 부과됩니다.

그러나 전체 노드를 실행하는 경우(풀 노드) 요금을 부과 할 필요가 없습니다. 대신, 포워딩 서비스를 제공하기 위해 라이트 노드에서 주변기기 요금을 징수 할 수도 있습니다. 요금에 대한 자세한 내용은 라이덴 FAQ를 참조하세요.

결론

요컨대, Raiden Network는 위의 방법을 사용하여 오프 체인 솔루션의 현재 이더 리움 트랜잭션 속도 및 비용 문제를 해결하지만 현재 저는문서를 읽고 이해하는 것만으로도 실제로 효과를 경험하기 위해 네트워크를 운영하려고 시도하지 않았습니다. 따라서 실제로 문제를 해결할 수 있는지 여부는 현재 구현 상태를 알기 위해 더 심층적 인 논의가 필요합니다.

또한 Raiden Network는 거래 수수료가 너무 적은 문제를 해결하고자 할 때 실제로 여러 노드를 통해 거래를 전송합니다.이때 중간을 통과하는 노드의 수에 따라 거래 수수료가 달라지며, 숫자가 높을수록 거래 수수료도 증가합니다. 따라서 Raiden 네트워크에서 발견 된 최단 경로에서 생성 된 거래 수수료가 이더 리움 블록 체인에서 직접 거래되는 원래의 직접 거래보다 낮을 수 있는지 여부에 대한 질문이 돌아올 것입니다.

소스 코드 :

Slack of Ethereum Taipei Meetup에 대한 질문에 답변 해주신 Will과 Changwu에게 감사드립니다., 게시하기 전에 기사를 읽고 몇 가지 제안을 해주셔서 감사합니다.

확장 정보

이 기사에서는 TimeLock 부분의 디자인에 대해서는 언급하지 않았습니다.정보의이 부분에 관심이 있으시면 “Lightning Network/ 이더 리움 결제 채널 기본 소개》