본문으로 건너뛰기
피드

Self Media Decoder: 미디어 파일이 자체 디코더 로직(WASM)을 품고 다니는 포맷

open-source 약 5분
vote
0
댓글
북마크

미디어 파일 자체에 WebAssembly 디코더를 내장하거나 참조해서, OS나 플레이어에 코덱을 설치하지 않아도 재생할 수 있게 하는 SMD 스펙임. 암호학적 버전 체인, 샌드박스 실행, 상태 마이그레이션 등 보안과 연속성까지 설계에 포함됨.

  • 1

    기존 codecs-in-OS 모델 대신 codecs-in-media 모델로 전환하는 미디어 포맷 스펙

  • 2

    Atom 단위로 미디어 데이터와 WASM 디코더 로직을 함께 묶어서 전달함

  • 3

    Ed25519 서명 기반 Version Lineage Chain으로 디코더 업그레이드를 암호학적으로 검증

  • 4

    WASM 샌드박스 실행 필수, 네트워크 기본 차단 등 보안이 정확성 요구사항으로 포함됨

  • 5

    디코더 간 상태 마이그레이션과 capability introspection으로 실용적 배포 지원

핵심 아이디어

  • 기존에는 OS나 플레이어에 코덱이 설치돼 있어야 미디어를 재생할 수 있었음. SMD는 이 모델을 뒤집어서, 미디어 파일 자체가 디코딩 로직을 WebAssembly 모듈로 내장하거나 참조하는 구조임
  • 미디어를 "수동적인 인코딩 데이터"가 아니라 "능동적이고 자기 서술적인 시스템"으로 취급함
  • 코덱 업그레이드가 플레이어 업데이트 없이 가능해짐 — 디코더가 미디어 쪽에 있으니까

Atom 구조

  • SMD 스트림은 시간순으로 정렬된 Atom 시퀀스로 구성됨. 각 Atom은 미디어 데이터 + 디코딩 로직 메타데이터를 포함함
  • 각 Atom에는 Sequence Header가 필수이며, AtomUUID·SourceUUID·OriginUUID·시작 시간·재생 길이 등이 들어감
  • Media Descriptor는 순수 선언형이어야 하고 실행 가능한 로직은 포함 불가. CBOR 정규 인코딩(CBOR-C14N) 사용
  • 지원 미디어 타입: 이미지, 비디오, 볼류메트릭/3D, 멀티뷰/스테레오, 미래 미디어 타입까지 확장 가능

디코더 로직 관리

  • 디코딩 로직은 LogicVersion(단조 증가 정수)과 LogicFingerprint(정규화된 WASM 바이너리의 해시)로 식별됨
  • embedded 모드: Atom에 WASM 모듈 직접 내장
  • id-only 모드: fingerprint와 버전 정보만 포함하고 실제 로직은 캐시나 외부에서 가져옴
  • Logic Interface Manifest(LIM)로 플레이어-디코더 간 계약을 정의함. ABI 버전, 내보내기 함수, 필수/선택 WASM 피처 등 포함

보안 모델

  • WebAssembly 실행은 샌드박스 필수. 네트워크 접근은 기본적으로 차단됨
  • 디코더 업그레이드 시 Version Lineage Chain(VLC) 으로 암호학적으로 연결함. Ed25519 서명 사용
  • 부모-자식 연속성, LogicVersion 단조성, fingerprint 무결성 검증 실패 시 업그레이드 자체가 거부됨
  • 안티롤백 보호: 플레이어가 수락한 최고 LogicVersion을 기록해 이전 버전으로 되돌리는 공격을 방지함
  • 신뢰 앵커는 두 가지 모델 지원 — 초기 Atom에 루트 공개키 내장하거나, 외부 신뢰 저장소 사용

Capability Introspection

  • 디코딩 전에 디코더가 어떤 기능을 지원하는지 사전 검사 가능함
  • 정적 능력 선언: 디코더 로직 실행 없이 확인 가능하고, 서명 검증 가능해야 함
  • 동적 검사도 선택적으로 지원하되, 네트워크·파일시스템·클럭·난수 전부 차단된 상태에서만 실행됨
  • 픽셀 포맷, HDR, 프레임레이트, 3D 레이아웃, 벤더 확장까지 폭넓게 커버함

상태 관리와 마이그레이션

  • 디코더는 Atom 간에 상태를 유지할 수 있음. 상태는 직렬화 가능해야 하고 CBOR 포맷 권장
  • 디코더 업그레이드 시 Logic Change Marker(LCM)와 StateSchemaHash가 같으면 상태 직접 재사용 가능
  • 다르면 디코더가 명시적으로 마이그레이션을 선언해야 하고, 실패 시 안전하게 상태 초기화됨

"웅덩이와 타이어 자국" 비유

  • 디코더 업그레이드를 도로 위 웅덩이에 비유함. 차가 웅덩이를 지나가면 타이어 자국이 남고, 이후 Atom들은 새 웅덩이가 나타날 때까지 그 디코더를 계속 상속받음

GitHub

코덱 파편화 문제를 미디어 파일 레벨에서 해결하려는 흥미로운 접근이지만, 실제 채택까지는 브라우저·플레이어 생태계의 지원이 관건이 될 것으로 보임.

댓글

댓글

댓글을 불러오는 중...

open-source

위키피디아에도 빅테크식 반노조 플레이북이 들어왔다

위키미디어 재단이 5월 열흘 사이 MediaWiki 장기 핵심 개발자를 해고하고, 자원봉사 편집자 요청을 처리하던 Community Tech 팀을 해산했다는 비판 글이다. 해고된 인력 상당수가 노조 조직 활동과 연결돼 있었고, 위키피디아 편집자들은 연대 파업까지 거론하고 있다. 재단은 2억9660만 달러의 준비금과 빠르게 성장하는 AI 대상 API 매출을 갖고 있어, 이 사안이 단순 비용 절감으로 보기 어렵다는 게 글의 핵심이다.

open-source

캘리포니아, 연령 확인법에서 리눅스 빼려는 수정안 추진

캘리포니아가 운영체제에 사용자 나이 확인을 요구하는 법안에서 대부분의 오픈소스 운영체제를 제외하는 수정안을 추진 중이다. 데비안, 페도라, 우분투, 아치, 리눅스 민트 같은 배포판은 빠질 가능성이 커졌지만, 스팀OS처럼 독점 앱 생태계와 연결된 플랫폼은 여전히 애매한 상태다.

open-source

마이크로소프트, 45년 전 86-DOS 소스코드를 오픈소스로 공개

마이크로소프트가 86-DOS 1.00 출시 45주년에 맞춰 지금까지 발견된 것 중 가장 오래된 DOS 소스코드를 공개했어. 팀 패터슨의 차고에 있던 도트 매트릭스 출력물을 스캔하고 옮겨 적어, 원본 바이너리와 바이트 단위로 동일하게 다시 컴파일되는 수준까지 복원한 게 포인트야.

open-source

밤부 랩, AGPLv3 위반 논란으로 오픈소스 커뮤니티와 충돌

3D 프린터 제조사 밤부 랩이 AGPLv3 라이선스 위반 논란에 휘말렸고, Software Freedom Conservancy가 두 건의 위반 사례를 확인했다는 내용이야. Louis Rossmann과 Gamers Nexus는 관련 개발자의 법적 방어를 위해 2만달러를 기부했고, 갈등의 핵심은 오픈소스 기반 생태계를 클라우드와 DRM으로 점점 닫아가려는 움직임이야.

open-source

플리퍼, 리눅스 기반 확장형 기기 '플리퍼 원' 공개

플리퍼가 기존 플리퍼 제로를 대체하는 후속작이 아니라, 리눅스 기반 네트워킹·확장형 기기인 플리퍼 원을 공개했어. RK3576 8코어 ARM 칩, 와이파이 6E, 듀얼 이더넷, NVMe, HDMI 4K 120Hz까지 넣으면서 장난감 같은 해킹 도구에서 훨씬 범용적인 리눅스 장비 쪽으로 방향을 넓히는 그림이야.