출처:PermaDAO
이 글은 기사라고 할 수 없을 정도로 기술에 대한 단편적인 글입니다. AO에 대한 가벼운 이야기입니다.
글로벌 공유 하드 드라이브
20년 7월에 Arweave에 대해 처음 알게 된 다음 주, 우리는 커피숍에서 탈신뢰 컴퓨팅의 가능성에 대해 논의하고 있었습니다. Arweave는 튜링 머신의 종이 테이프이고, 유비쿼터스 상태 머신은 사용자의 손 안에 있는 클라이언트이며, 사용자의 운영 체제와 실행 중인 모든 프로그램은 Arweave에서 다운로드된다고 상상해 보세요. <거대한 블록체인 하드 드라이브를 공유하는 글로벌 유비쿼터스 컴퓨팅 장치. 이 시스템에서 실행되는 모든 애플리케이션은 합의를 거쳐 신뢰가 해제됩니다.
토론에서는 이것이 달성하기 어려운 목표이며, 마이크로소프트와 애플 같은 거대 기업이 운영체제와 애플리케이션을 Arweave에 탑재할 가능성은 낮다는 결론을 내렸습니다.
오늘 날 AO는 이를 실현했습니다. 처음 샘과 함께 MSG 프로토콜(AO 프로토타입)을 설계했을 때 저는 이를 블록체인 상의 카프카라고 생각했지만, 애플리케이션에 탈중앙화된 메시지 큐를 제공하는 대신 C/S 아키텍처의 http 통신을 신뢰할 수 없는 메시지 통신으로 대체하는 데 중점을 두었습니다. 사용자의 요청과 서버의 응답 모두에 AO가 사용된다면, 7월 20일에 구상한 대로 진정한 탈중앙 인터넷 생태계를 AO에서 재창조할 수 있을 것입니다.
AO는 인터넷 전체를 더 이상 단순한 저장소가 아닌 과거의 기록인 알렉산드리아의 도서관인 Arweave로 가져올 수 있는 잠재력을 가지고 있습니다. AO를 통해 우리는 탈중앙화된 접근 방식을 사용하여 오늘날의 이야기를 기록하고 미래의 가치를 배포할 수 있습니다.
논쟁
최근 AO에 대한 논란이 있었는데, 주로 두 가지 질문이 있었습니다.
1. AO는 어떻게 검증 가능성을 확보할 수 있을까요?
우선, AO는 검증 가능성을 다루지 않습니다. 검증 가능성은 AO의 모든 프로세스의 홀로그램 데이터(AO 자체의 홀로그램 데이터 포함)를 저장하는 Arweave의 불변 저장소에서 비롯됩니다. 누구나 홀로그램 데이터에서 AO와 AO의 모든 스레드를 복구할 수 있습니다. 이는 수학적으로 보장되며 검증 가능합니다! 이것이 바로 우리가 흔히 SCP 이론이라고 부르는 스토리지 기반 합의 패러다임입니다.
주요 내용: 우리는 UTXO 트랜잭션이 검증된 후 체인에 업로드된다는 것을 알고 있지만, SCP 패러다임은 좋은 데이터와 나쁜 데이터 모두에 대해 AR을 업로드한다는 점에서 BTC의 UTXO와 매우 큰 차이가 있습니다. SCP 프로그램은 모든 홀로그램 트랜잭션의 유효성을 검사하기 위해 모든 홀로그램 트랜잭션을 실행하기만 하면 됩니다! 중복 트랜잭션인 경우 SCP 프로그램에 의해 폐기됩니다.
검증 가능성은 "할 수 있다"에 중점을 두며, 빠른 검증, 가벼운 노드 검증 등을 강조할 필요가 없습니다. 검증 가능성과 빠른 검증 및 라이트 노드 검증을 혼동하는 경우. 이 시점에서는 AO에 대해 논의할 수 없습니다.
2. SCP 앱에는 검증 가능한 기능이 있는데, AO는 검증 가능한 문제를 어떻게 해결하나요? 사용자가 전체 노드를 실행해야 하나요?
첫 번째 질문에 대한 답이 어느 정도 나왔을 때, 질문자는 사용자가 전체 원장을 계산해야 한다고 생각하는데, 이는 너무 어렵습니다. 이는 BTC/ETH의 머클 트리가 해결하고자 하는 문제와 상반되는 것으로, BTC/ETH의 생각에 머클은 검증의 핵심이며, 머클의 루트는 작업 증명을 통해 업링크되어 검증이 가능합니다. 이제 AO에는 머클 트리가 없다는 말씀이신가요? 결론은 AO는 전혀 검증할 수 없고, 합의가 없으며, 사기라는 것입니다! 그래서 우리는 질문 1로 돌아갑니다. 일반적으로 질문자는이 두 가지 질문을 반복해서 묻고 AO의 설계 아키텍처와 원칙에 대해 생각하지 않습니다.
중점: AO는 검증 가능성 문제를 해결하지 못하며, AR과 AO의 기능은 완전히 분리되어 있습니다! 는 상태를 생성하지만, AO는 AR의 데이터 순서를 변경할 수 없습니다. 즉, AO는 합의를 변경할 수 없습니다. AO는 AR에서 데이터의 순서를 변경할 수 없습니다. 즉, AO는 합의를 변경할 수 없습니다. 상태는 SCP와는 완전히 다른 온체인 컴퓨팅 패러다임인 PoW/PoS에 의해 검증됩니다.
AO의 기능은 불변의 데이터에 대한 연산을 수행하고 그 연산 상태를 보여주는 것입니다. 검증 가능성에 대한 질문은 SCP가 보장하므로 머클 트리나 작업 증명/증명 방식이 필요하지 않습니다. 이 시점에서 질문자는 다시 질문 1로 돌아가서 더 이상 생각할 수 없게 됩니다. 여전히 생각할 수 있다면 AO의 사례를 살펴보세요.
AO는 SCP를 통해 검증 가능한 토큰을 구현하고, 토큰의 경제 모델을 사용하여 사람들이 올바른 데이터를 제공하도록 유도합니다(일종의 체인링크 예언 기계와 비슷함). AO는 주로 상태 표현에 관한 것이며, 검증 가능성은 AO의 기능이 아니라는 점을 기억하세요. 토큰의 경제 모델은 올바른 상태를 제시하지 않으면 슬래시, 올바른 상태를 제공하면 민트입니다.
요점
AO는 합의를 생성하지 않는데 어떻게 슬래시와 민트 작업을 수행하나요? 간단합니다. AO는 SCP 애플리케이션으로, 이 시점에서 쿼리 상태와 반환 상태 이벤트가 모두 Arweave에 업로드되고, AO SCP 프로그램이 이 두 이벤트(쿼리와 반환)를 로드하고 이 두 이벤트에서 민트 및 슬래시 결과를 계산합니다.
이 부분은 코드를 직접 보면 더 쉽게 이해할 수 있습니다:
https://github.com/outprog/slash-demo/blob/main/vm/vm_test.go
결론
사용자는 애플리케이션의 전체 노드를 실행할 필요가 없으며, CU(컴퓨트 유닛)를 실행할 서비스 제공자가 있을 것입니다. 사용자는 SU(스케줄링 유닛)를 통해 특정 CU에 할당된 AO에 쿼리 요청을 하고, 컴퓨트 유닛은 사용자의 요청에 따라 상태를 계산하여 컴퓨트 노드에서 서명(및 업로드)한 후 사용자에게 피드백합니다. 단일 CU를 신뢰하지 않는 사용자는 더 많은 CU에 더 신뢰할 수 있는 상태를 요청할 수 있습니다. 각 CU가 반환하는 상태는 CU 노드에서 서명(검증 가능)합니다. CU가 잘못된 상태를 제공하면 해당 CU의 서약은 무효화됩니다.
구체적인 사례는 샘의 X를 참조하세요:
https://twitter.com/samecwilliams/status/ 1764023657058148718 .
예언 기계는 없나요? 모두 예언 기계입니다!
데이터가 블록체인과 상호작용해야 할 때, 우리는 체인에 '오라클'을 연결하기 위해 예언 머신이 필요합니다. 블록체인은 사용자 그룹에 의해 생성된 다중 서명 오라클인 오라클이 필요합니다. 오라클은 블록체인 알고리즘에 의해 생성된 합의에서 비롯되지만, 인간이 합의를 읽을 때는 오라클을 전송할 제3자가 필요하며, 보통 infura.io라고 불리는 제삼자가 필요합니다. 우리는 일반적으로 인퓨라의 오라클을 신뢰하지만 사실인가요? (멜론이 익었나요?)
infura.io: https://www.infura.io/
주:
BTC/ETH의 신뢰는 내부적으로 온체인 환경으로만 제한되며, 오프체인 환경에서는 신뢰 해제 기능을 제공하기 어렵습니다. 즉, BTC/ETH 노드를 요청하는 사용자는 http 프로토콜을 통해서만 상태를 얻을 수 있으며, 요청된 노드가 신뢰할 수 있는지, 상태가 정확한지 판단할 수 없습니다. 상태 확인을 위해 사용자는 라이트 노드 또는 풀 노드를 실행해야 합니다.
AO/SCP 네트워크에서는 사용자의 요청이 서명되어야 하고, 노드가 반환한 상태가 서명되어야 하며, 모든 기록이 Arweave에 저장되어 검증 가능성을 보장하는 '홀로그램 데이터'를 형성합니다. 모든 기록은 Arweave에 저장되어 인증을 보장하는 "홀로그램 데이터"를 형성합니다. 사용자는 노드를 실행하지 않고도 신뢰할 수 있는 상태를 얻을 수 있습니다. AO/SCP 모드에서는 네트워크에 대한 모든 정보가 업로드되며, 심지어 이러한 요청을 쿼리하고 반환합니다(http 요청은 업로드되지 않습니다.) AO는 신뢰 해제라는 라스트 마일 문제를 해결합니다.
엔지니어링 실무에서 AO/SCP는 온체인/오프체인의 개념을 깨고, 신뢰할 수 있는 컴퓨팅과 예측 머신을 통합된 시스템으로 통합합니다. 이 시스템은 탈중앙화되어 있으며 웹2.0과 웹3.0의 경계를 허물고 있습니다. AO/SCP와 온체인 컴퓨팅은 완전히 다른 두 가지 패러다임입니다. 이 시스템을 신탁을 불변의 사실로 제시하는 예언 기계로만 구성된 글로벌 컴퓨터라고 생각하면 됩니다.
탄력적인 검증
언젠가부터 합의는 이분법적인 문제가 되었습니다. 합의가 있든 없든. 그 사이의 합의는 존재하지 않나요?
블록체인 업계에는 이러한 인식이 반영되어 있습니다. 블록체인은 신이거나 쓰레기입니다. 종교적 신념처럼 양자택일의 문제이며 양립할 수 없는 문제입니다.
그러나 AO는 아위브 지속성과 SCP 패러다임이 합의의 견고한 기반, 즉 우리가 반복해서 '검증 가능성'이라고 부르는 것을 제공하지만 애플리케이션 측에서 합의를 검증하는 데 드는 비용에 대한 탄력성을 갖춘 완전히 다른 합의 아키텍처를 제공합니다.
이 모든 것이 시작된 것은 위에서 설명한 두 가지 유형의 논란에 휩싸인 사람들이 X에 있었기 때문입니다. 약간의 말 전쟁 끝에 마침내 서명이 있는 두 개의 AO 스레드 간의 메시지를 검증하는 방법에 대한 질문이 제기되었으므로 여기서는 다루지 않겠습니다. 그렇다면 프로세스는 수신된 메시지가 신뢰할 수 있는지 어떻게 알 수 있을까요? 다음은 이를 설명하기 위한 두 가지 모델링된 신뢰 패턴입니다.
CU1(P1, P2)로 표시되는 두 개의 프로세스인 P1과 P2를 실행하는 컴퓨트 유닛 CU1이 있습니다.
이제 CU1(P1, P2) & CU2(P3, P4) & CU3(P1) & CU4(P1)가 있습니다.
계산 목표: CU2의 P3는 P1에서 신뢰할 수 있는 계산 정보를 요청합니다.
p powered-by="xiumi.us">단일 신뢰 모드
1. P3의 코드가 P1에 계산 요청을 보냅니다.
2. SU 스케줄러가 계산을 위해 P3의 요청을 CU4(P1)에 할당합니다.
3. CU4(P1)는 계산 결과를 응답하고 P3로 반환합니다.
이 시점에서 P3는 CU4의 P1 계산 결과를 전적으로 신뢰하고 계산을 계속 진행합니다.
멀티 트러스트 모드
1. P3의 코드가 P1에 계산 요청을 보내는 동시에 P3는 SU에 여러 계산 유닛을 할당해달라고 요청합니다.
2. SU는 P3의 요청을 CU1(P1), CU3(P1), CU4(P1)에 할당합니다.
3. CU1(P1), CU3(P1), CU4(P1)가 계산 결과를 응답합니다.
이 시점에서 P3는 여러 결과를 수신하고, 이 결과를 먼저 비교하여 신뢰할 수 있는지 여부를 판단할 수 있습니다. 예를 들어, P3는 모든 노드가 정확히 동일한 결과를 반환해야 합니다. 또는 P3는 결과의 2/3가 정확히 동일해야 합니다.
신뢰 모드는 AO의 개발 모드일 뿐이며, 개발자는 신뢰의 필요에 따라 판단 규칙을 개발할 수 있습니다. P3의 프로그램은 100개의 CU가 계산을 수행하고, 100개의 CU가 결과를 정확히 동일하게 계산하도록 요구할 수도 있습니다. P3에서 코드를 구현하는 것은 전적으로 개발자의 몫입니다.
따라서 신뢰 모델과 검증 비용 측면에서 무엇이 필요한지 스스로 결정할 수 있습니다. 하지만 궁극적인 합의 보안은 SCP를 통한 Arweave 지속성으로 여전히 보장된다는 점을 기억하세요!