이 프로젝트의 목표는 블록 체인 사용 덕분에 로라와 프로토콜의 분산 버전을 개발하는 것입니다. 우리는이 새로운 프로토콜을 Lora-Mac이라고 부릅니다. 또한 분산 된 사용 사례가 확장으로 개발되었습니다. 확장은 크라우드 소스 네트워크의 보수로 구성됩니다.
기존 Lorawan 프로토콜을 대체하는 새로운 프로토콜이 개발되었습니다. Lorawan과 같은 symetric cryptography를 사용하는 대신, 기밀성과 진정성 외에도 비 반복을 제공하기 위해 비 심성 암호화를 사용합니다. 공공-민간 키 쌍은 타원 곡선을 사용하여 생성됩니다. 이 키 쌍은 두 엔티티간에 교환 된 메시지의 내용에 서명하는 데 사용됩니다. 두 엔티티 간의 메시지 내용을 암호화하는 데 사용되는 대칭 키는 발신자의 개인 키와 수신기의 공개 키를 사용하여 생성됩니다. 이 절차는 ECDH를 사용한 다음 HKDF로 키를 정규화하여 수행됩니다.
Cose는 프로토콜에 참여하는 엔터티 사이에 트라링 된 패킷의 형식으로 사용됩니다. 따라서 패킷은 Cose_Encrypt0 메시지로 암호화 된 다음 COSE_COUNTERSIGNATURE가 추가됩니다. 이 프로젝트를 개발할 당시 Pycose 라이브러리에서 아직 개발되지 않은 Cose_countersignature는 카운터 서명을 포함하는 라이브러리의 포크가 수행되었습니다.
보수 사용 사례의 과제는 게이트웨이로 전송 된 메시지에 대한 비용을 지불하기 위해 소액 결제 트랜잭션 (몇 센트의 순서)을 방출하는 것입니다. 실제로, 이더 리움 블록 체인에서 기본적으로 수행하면 실제 소액 결제보다 비용이 많이들 것입니다. 따라서, 두 가지 오프 체인 스케일링 방법 (계층 2 스케일링)을 실험했습니다.
프로젝트는 4 가지 주요 구성 요소로 나뉩니다.
최종 장치는 직렬을 통해 로피에 연결된 라즈베리 파이로 구성됩니다. 따라서 최종 장치는 2 개의 디렉토리로 나뉩니다 : /lora_device 및 /lopy. 각 디렉토리 내에서 두 프로그램을 실행하는 방법에 대한 지침이 더 있습니다.
/ForwardingnetWorkServer 디렉토리는 게이트웨이 역할을하는 Raspberry Pi에서 실행할 수 있습니다. 이 프로그램은 LORA Network Packet Former Project와 호환됩니다.
이 프로젝트에 사용 된 블록 체인은 이더 리움입니다. 이 목적을 위해 배포 된 스마트 계약은 /블록 체인 /계약 디렉토리에서 찾을 수 있습니다.
/서버 디렉토리는 3 개의 하위 디렉토리 : /Application Server, /Homenetworkserver, /Payment로 나뉩니다. 백엔드, 프론트 엔드 및 결제 서비스로 구성된 서버는 서버에 쉽게 배포하기 위해 Docker Compose 인스턴스에 포장됩니다.