
Axiom का लक्ष्य एक पूरी तरह से अज्ञात, विकेंद्रीकृत और सेंसरशिप-प्रतिरोधी सोशल मीडिया प्लेटफ़ॉर्म प्रदान करना है। इसे संभव बनाने के लिए, आर्किटेक्चर को प्रोटोकॉल और क्लाइंट के लिए सख्ती से विभाजित किया गया है। यह रिपॉजिटरी प्रोटोकॉल, स्मार्ट कॉन्ट्रैक्ट और एक Ethereum Layer 2 नेटवर्क पर एक मानकीकृत डेटा संरचना को परिभाषित करता है।
42161https://arb1.arbitrum.io/rpc (या कोई कस्टम Alchemy/Infura एंडपॉइंट)0xc11CFf8111e8b1F055eba095Efb679a38Abe6b63(नोट: Axiom एक UUPS अपग्रेडेबल प्रॉक्सी आर्किटेक्चर का उपयोग करता है। सभी क्लाइंट इंटरैक्शन हमेशा इस प्रॉक्सी पते पर निर्देशित होने चाहिए, कभी भी अंतर्निहित कार्यान्वयन अनुबंध पर नहीं।)
क्लाइंट को कभी भी स्मार्ट कॉन्ट्रैक्ट की स्थिति चर से सीधे प्रोटोकॉल पोस्ट पढ़ने का प्रयास नहीं करना चाहिए (गैस बचाने को प्राथमिकता देने के कारण, सामग्री स्थिति में संग्रहीत नहीं होती)। इसके बजाय, क्लाइंट को ब्लॉकचेन इवेंट्स को इंडेक्स करना होगा।
प्रोटोकॉल में डेटा प्रकाशित करने के लिए, क्लाइंट को प्रॉक्सी अनुबंध पर publishAxiom फ़ंक्शन को कॉल करते हुए एक ऑन-चेन लेनदेन सबमिट करना होगा।
Axiom का लक्ष्य एक पूरी तरह से गुमनाम, विकेंद्रीकृत और सेंसरशिप-प्रतिरोधी सोशल मीडिया प्लेटफ़ॉर्म प्रदान करना है।
इसे संभव बनाने के लिए, आर्किटेक्चर सख्ती से विभाजित है: आधार (प्रोटोकॉल) और क्लाइंट (सॉफ़्टवेयर)। यह रिपॉजिटरी उस आधार को परिभाषित करती है—एक स्मार्ट कॉन्ट्रैक्ट और एक एथेरियम L2 नेटवर्क पर एक मानकीकृत डेटा संरचना।
प्रोटोकॉल प्लेटफ़ॉर्म की नींव स्थापित करता है:
Axiom उन देशों के उपयोगकर्ताओं के लिए वास्तविक अभिव्यक्ति की स्वतंत्रता सक्षम करने के लिए डिज़ाइन किया गया है जहां संचार प्रतिबंधित है। प्रोटोकॉल तीन सुरक्षा स्तरों के बीच अंतर करता है। यह मानता है कि उपयोगकर्ता जानते हैं कि उनकी विशिष्ट स्थिति के लिए कौन सा सुरक्षा स्तर उपयुक्त है।
सभी स्तरों के लिए, ओनियन रूटिंग (जैसे, Tor) सख्ती से अनिवार्य है। वाणिज्यिक RPC प्रदाताओं (जैसे Infura या Alchemy) के साथ संचार करने से प्रेषक का IP पता प्लेनटेक्स्ट में लीक हो जाता है। असंतुष्टों के लिए जीवन-धमकी देने वाली OPSEC कमजोरियों को बंद करने के लिए, क्लाइंट को लेनदेन को RPC नोड्स तक विशेष रूप से Tor नेटवर्क के माध्यम से रूट करना आवश्यक है।
स्तर 3 पर संदेशों के लिए, सभी क्लाइंट को अंतर-संचालन सुनिश्चित करने और सुरक्षा से समझौता करने से बचने के लिए निम्नलिखित क्रिप्टोग्राफिक मानकों का सख्ती से पालन करना होगा।
Axiom एक हाइब्रिड पेलोड वितरण (ABI स्प्लिट) का उपयोग करता है। स्मार्ट कॉन्ट्रैक्ट को महंगे डेटा प्रारूपों को अनपैक करने से रोकने के लिए, डेटा को ट्रांसमिशन से पहले अलग किया जाता है:
uint8 _level) और आरंभीकरण वेक्टर (bytes _iv) को सीधे स्मार्ट कॉन्ट्रैक्ट में पैरामीटर के रूप में पारित किया जाता है, क्योंकि इसे अपने सुरक्षा नियमों को लागू करने के लिए उनकी आवश्यकता होती है।Axiom बाइट बचाने के लिए कुंजियों के रूप में एकल अक्षरों का उपयोग करता है। लेखक (msg.sender) और टाइमस्टैम्प (block.timestamp) को छोड़ दिया जाता है, क्योंकि स्मार्ट कॉन्ट्रैक्ट इन मानों को छेड़छाड़-प्रूफ तरीके से निकालता है।
t (प्रकार): पूर्णांक। कार्रवाई का प्रकार।c (सामग्री): स्ट्रिंग/बाइट्स। टेक्स्ट, नाम या सिफरटेक्स्ट।h (हैशटैग/टैग): सरणी। वैकल्पिक। वर्गीकरण (उप-चैनल) के लिए उपयोग किया जाता है।m (संदेश संकेत): बाइट्स (लंबाई 2)। केवल स्तर 3। फ़ज़ी बकेटिंग के लिए उपयोग किया जाने वाला 2-बाइट HMAC हैश।r (उत्तर-से): बाइट्स। वैकल्पिक। एक संदर्भित पोस्ट का लेनदेन हैश।t फ़ील्ड)0 = प्रोफ़ाइल अपडेट (वॉलेट पते को c फ़ील्ड में पढ़ने योग्य नाम से लिंक करता है)1 = पोस्ट (मानक संदेश)2 = उत्तर (r को मूल पोस्ट के हैश की आवश्यकता है)3 = पसंद (r को पोस्ट के हैश की आवश्यकता है)4 = नापसंद (प्रकार 3 को वापस लेता है)5 = रीट्वीट / रिपोस्ट (r को पोस्ट के हैश की आवश्यकता है)6 = अन-रीट्वीट (प्रकार 5 को वापस लेता है)h फ़ील्ड)c) की तरह ही एन्क्रिप्ट किया जाना चाहिए। बाहरी पर्यवेक्षकों के लिए, टैग पूरी तरह से अदृश्य हैं (डार्क रूटिंग)।m फ़ील्ड)क्योंकि टैग स्तर 3 पर एन्क्रिप्ट किए जाते हैं, क्लाइंट को सैद्धांतिक रूप से हर एक संदेश को डिक्रिप्ट करने का प्रयास करना होगा (ट्रायल डिक्रिप्शन)। CPU ओवरलोड को रोकने के लिए, Axiom संदेश संकेतों का उपयोग करता है:
HMAC-SHA256(AES_Key, IV) की गणना करता है और पहले 2 बाइट को CBOR पेलोड में फ़ील्ड m के रूप में रखता है।Axiom पहचान को पूर्ण पारदर्शिता के साथ संभालता है: L2 वॉलेट पता (msg.sender) एकमात्र सामाजिक और वित्तीय पहचान है। प्रोटोकॉल वित्तीय OPSEC की जिम्मेदारी पूरी तरह से उपयोगकर्ता को स्थानांतरित करता है (जैसे, गुमनाम रूप से गैस टोकन प्राप्त करने के लिए मिक्सर और ब्रिज का उपयोग)।
प्रोफ़ाइल अपडेट कार्रवाई (t: 0) चुने गए सुरक्षा स्तर के आधार पर अलग तरह से व्यवहार करती है:
@Dissident99 के रूप में सार्वजनिक प्रतिष्ठा बनाना)।Axiom O(1) जटिलता के साथ ऑन-चेन मान्यता पर निर्भर करता है। गैस लागत को न्यूनतम रखने के लिए, स्मार्ट कॉन्ट्रैक्ट केवल बुनियादी क्रिप्टोग्राफिक जांच करता है। सभी संसाधन-गहन सामग्री मान्यताएं क्लाइंट (लेयर 2) को ऑफलोड की जाती हैं।
अनुबंध एक अविनाशी बाउंसर के रूप में कार्य करता है। यदि कोई पेलोड सख्त नियमों का पालन नहीं करता है, तो लेनदेन वापस कर दिया जाता है।
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;
import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
import "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";
import "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol";
contract Axiom is Initializable, UUPSUpgradeable, OwnableUpgradeable {
uint256 public entryFee;
mapping(address => uint8) public walletPath; // 0=New, 1=PathA(Level1), 2=PathB(Level2/3)
event AxiomPost(address indexed sender, uint8 level, bytes iv, bytes cbor, uint256 timestamp);
/// @custom:oz-upgrades-unsafe-allow constructor
constructor() {
_disableInitializers();
}
function initialize() initializer public {
__Ownable_init(msg.sender);
entryFee = 0.0001 ether;
}
function _authorizeUpgrade(address newImplementation) internal override onlyOwner {}
function publishAxiom(
uint8 _level,
bytes calldata _iv,
bytes calldata _cbor
) external payable {
require(_level >= 1 && _level <= 3, "अमान्य स्तर");
uint8 requiredPath = (_level == 1) ? 1 : 2;
uint8 currentPath = walletPath[msg.sender];
if (currentPath == 0) {
require(msg.value >= entryFee, "एंटी-सिबिल: अपर्याप्त प्रवेश शुल्क");
walletPath[msg.sender] = requiredPath;
} else {
require(msg.value == 0, "शुल्क पहले ही भुगतान किया जा चुका है");
require(currentPath == requiredPath, "OPSEC उल्लंघन: वॉलेट दूषित है");
}
if (_level == 3) {
require(_iv.length == 12, "स्तर 3 के लिए सख्ती से 12-बाइट IV आवश्यक है");
} else {
require(_iv.length == 0, "स्तर 1 और 2 के लिए सख्ती से खाली IV आवश्यक है");
}
emit AxiomPost(msg.sender, _level, _iv, _cbor, block.timestamp);
}
function withdraw() external onlyOwner {
payable(owner()).transfer(address(this).balance);
}
}
यदि कोई पोस्ट प्रोटोकॉल नियमों का उल्लंघन करता है, तो क्लाइंट को इसे चुपचाप खारिज करना होगा (स्थानीय ड्रॉप)।
c) को स्कैन करते हैं। यदि URL, IP पते या विशिष्ट मीडिया टैग का पता लगाया जाता है, तो पोस्ट पूरी तरह से अवरुद्ध हो जाती है।Axiom एक एथेरियम लेयर 2 (L2) नेटवर्क (जैसे, Arbitrum Nova) पर तैनात है।
मोबाइल उपकरणों (बैटरी लाइफ, स्टोरेज सीमाएं, Argon2id के लिए WebAssembly सीमाएं) को ओवरलोड करने से बचने के लिए, Axiom एक अत्यधिक प्रदर्शनशील क्लाइंट आर्किटेक्चर लागू करता है:
क्लाइंट पूरे ब्लॉकचेन स्टेट को डाउनलोड नहीं करते हैं। वे स्मार्ट कॉन्ट्रैक्ट के AxiomPost इवेंट के लिए फ़िल्टर करते हैं, जिसमें सभी आवश्यक डेटा प्लेनटेक्स्ट (प्रेषक, स्तर, IV, CBOR, टाइमस्टैम्प) में होता है।
क्योंकि एथेरियम नोड अंततः EIP-4444 के अनुसार ऐतिहासिक डेटा (365 दिनों से पुराने इवेंट) को त्याग देंगे, प्रोटोकॉल अनुशंसा करता है कि स्थानीय Axiom कोर डेटाबेस को स्थायी रूप से संग्रहीत करते हुए विकेंद्रीकृत अभिलेखागार के रूप में कार्य करें।
यह स्पष्ट करने के लिए कि आर्किटेक्चर व्यवहार में कैसे काम करता है, यहां एक पूर्ण जीवनचक्र रन-थ्रू है।
परिदृश्य: एलिस उप-चैनल "AxiomDev" में "शाम 8 बजे मीटिंग" संदेश पोस्ट करना चाहती है। समूह ने पहले ऑफलाइन पासवर्ड "Secret123" पर सहमति व्यक्त की है।
एलिस का Axiom कोर कम्प्यूटेशनल भारी काम संभालता है:
0x12ab34cd56ef789012ab34cd)।m: "0xa1b2")।चूँकि स्तर और IV सीधे अनुबंध में पारित किए जाते हैं, उन्हें CBOR ऑब्जेक्ट से बाहर रखा जाता है।
आंतरिक JSON प्रतिनिधित्व:
{
"t": 1,
"c": "0x8a4f...",
"h": ["0x9b5e..."],
"m": "0xa1b2"
}
गैस बचाने के लिए इस JSON को एक कच्चे CBOR बाइट सरणी (0xa3617401...) में संपीड़ित किया जाता है।
एलिस अनुबंध फ़ंक्शन को ट्रिगर करती है। महत्वपूर्ण: कॉल सख्ती से Tor के माध्यम से रूट की जाती है!
(L3 और L1 के उदाहरण:)
// उदाहरण 1: क्लाइंट एक एन्क्रिप्टेड स्तर 3 पोस्ट के लिए स्मार्ट कॉन्ट्रैक्ट को कॉल कर रहा है
await axiomContract.publishAxiom(
3, // _level: 3
"0x12ab34cd56ef789012ab34cd", // _iv: 12 बाइट हेक्स स्ट्रिंग आवश्यक
"0xa3617401616358208a4f..." // _cbor: पैक किया गया CBOR हेक्स स्ट्रिंग
);
// उदाहरण 2: क्लाइंट एक सार्वजनिक स्तर 1 पोस्ट के लिए स्मार्ट कॉन्ट्रैक्ट को कॉल कर रहा है
await axiomContract.publishAxiom(
1, // _level: 1
"0x", // _iv: सख्ती से खाली बाइट सरणी
"0xa361740161634c48656c6c6f204178..." // _cbor: पैक किया गया CBOR हेक्स स्ट्रिंग
);
स्मार्ट कॉन्ट्रैक्ट फिर इवेंट उत्सर्जित करता है:
Event: AxiomPost(Sender: 0xAlice..., Level: 3, IV: 0x12ab..., CBOR: 0xa361..., Timestamp: 1710425890)
बॉब का Axiom कोर ब्लॉकचेन को सुन रहा है और इवेंट प्राप्त करता है।
स्तर 3 का पता लगाता है और सामग्री, टैग और संकेत m तक पहुंचने के लिए CBOR को अनपैक करता है।m की जाँच करता है।