Hypledger Fabric이나 R3 Corda 같은 permissioned blockchain은 public blochcain과 달리 스마트 컨트랙트 작성에 Go, Java, Kotlin 같은 범용 언어를 사용합니다.
인증 서버를 통해 인증된 노드만 네트워크에 접속할 수 있기 때문에 이더리움처럼 Gas를 사용해 프로그램의 종료를 보장하거나 하는 방법은 사용하지 않는 게 일반적입니다. 일례로, Fabric의 스마트 콘트랙트를 chaincode라고 부르는데, 일반적인 Go 바이너리를 가공 없이 그대로 사용합니다.
하지만, 꼭 악의적인 의도로 작성된 스마트 콘트랙트가 아니더라도 버그 때문에 이상 동작을 할 수 있고 이를 제대로 검증하지 못하면 심각한 문제가 발생한다는 사실은 public blockchain이나 permissioned blockchain가 차이가 없습니다.
이 문제를 해결하기 위해 permissioned blockchain을 만드는 일부 업체는 스마트 컨트랙트 작성을 위한 새로운 언어를 제공하는 경우도 있습니다. 대표적인 예로, permissioned blockchain을 만드는 디지털 애셋(Digital Asset)이 있는데, 작년 금융사를 위한 DSL을 만들던 스위스 기반의 Elevence 사를 인수하였습니다.
Elevence 사가 만들던 기술은 DAML이라는 디지털 자산 모델링 언어인데, Solidity와는 달리 Turing-complete 하지 않은 언어입니다. 오픈소스 계획을 밝혔지만 아직 소스 코드가 공개되지 않아 자세한 내용은 알 수 없지만 하스켈 스타일의 total functional programming 언어로 알려져 있습니다.
public blockchain에서는 Solidity가 디팩토 표준이 되어가고 있지만, 기술적으로는 훨씬 나은 방법이 존재하고 실제로 사용되는 예가 있다는 말씀을 드리고 싶었습니다. 물론 하스켈 계열의 언어들은 진입 장벽이 높긴 하지만, Solidity로 버그 없는 스마트 컨트랙트를 작성하기 위해 들여야 하는 노력을 생각하면 어느 쪽이 실제로 더 비용이 높은지 알기 어렵습니다.