Როგორ მუშაობს ჭკვიანი კონტრაქტები კრიპტო კაზინოში
ჭკვიანი კონტრაქტები კაზინოს ლოგიკას „შავი ყუთიდან“ გადასცემს ბლოკჩეინში ნახულ კოდს. ფსონები, კოეფიციენტები, სახლი edge, უბედური შემთხვევა და გადახდები ფიქსირდება ონჩის მოვლენებში - მათი შემოწმება შესაძლებელია. უფრო მეტიც, კაზინო შეიძლება იყოს მთლიანად on-chain ან ჰიბრიდული (ლოგიკის ნაწილი ჯაჭვის გარეთ). ქვემოთ - როგორც ეს პრაქტიკაში არის მოწყობილი.
1) ძირითადი არქიტექტურა
ბანკის/სალაროს ხელშეკრულება (Vault/Bankroll). ინახავს ლიკვიდობას, იღებს დეპოზიტებს/გამოსცემს გადასახადებს, იყენებს შეზღუდვებს და კომისიებს.
თამაშის კონტრაქტები (თამაშები). კონკრეტული თამაშების წესები: რულეტი, dais, crash, slots, ძვლები, coinflip, Plinko.
შემთხვევითი მოდული. შემთხვევითი რიცხვების წყარო: commit-reveal, VRF (გადამოწმებული შემთხვევითი), ნაკლებად ხშირად - საკუთარი სქემები მრავალმხრივი გამჟღავნებით.
ორაკულები/სერვისები. VRF ან კოეფიციენტებისთვის; გამოწვეულია გარიგებით და უბრუნდება დადასტურებულ შედეგს.
Affiliate/ბონუსის მოდული. ინახავს რეფრალურ პროცენტს, ქეშბეკს, ვაგნერის პირობებს.
2) განაკვეთის სასიცოცხლო ციკლი (ნაბიჯებზე)
1. ანაბარი. მოთამაშე ნიშანს/მონეტას უგზავნის სალაროში ან აკეთებს „ნებართვას“ ხელშეკრულების ჩამოწერისთვის.
2. განაკვეთის შექმნა. 'PlaceBet' ფუნქციის ზარი (...) 'თამაშის პარამეტრებით (თანხა, არჩევანი, რისკის ზღვარი, კოეფიციენტების სლიპაჟი, VRF არხი).
3. პირობების დაფიქსირება. კონტრაქტი იწერს ფსონს სახელმწიფოში და წარმოქმნის მოვლენას „BetPlaced“ (მისამართი, თანხა, თამაში, timestamp).
4. უბედური შემთხვევის მიღება.
Commit-reveal: კაზინო წინასწარ აქვეყნებს საიდუმლოებას, მოგვიანებით ავლენს მას. მოთამაშე/კონტრაქტი ამოწმებს შესაბამისობას.
VRF: კონტრაქტი პროვაიდერს ითხოვს შემთხვევითი რიცხვი + კრიპტოვალუტა, რომელსაც ონჩეინი ამოწმებს.
5. გათამაშება. ფუნქცია 'settleBet (...)' ითვლის შედეგს, ამოწმებს კოეფიციენტს/house edge და მიიჩნევს გამარჯვებას.
6. გადახდა. კონტრაქტი გადასცემს პრიზს მოთამაშეს (ღონისძიება 'Payout'). სურვილისამებრ ინახავს კომისიას/გადასახადს, განაახლებს შეზღუდვებს.
7. ლოგოები და მეტრიკები. ყველა ნაბიჯი მიდის მოვლენებზე ('Bettled', 'RandomnessRequested/Fullfilled', 'JackpotHit') - მათი ანალიზი შესაძლებელია dashboard.
3) შემთხვევითი რიცხვები და „provably fair“
Commit-reveal. ოპერატორი აქვეყნებს საიდუმლოებას (commit); განაკვეთის შემდეგ გამოავლენს საიდუმლოებას. კონტრაქტი ამოწმებს ჰეშს და გამორიცხავს ჩანაცვლებას რეტროაქტიულად. ხშირად დაამატეთ მოთამაშის მარილი (client seed) + სერვერის მარილი (სერვერი seed) ისე, რომ ორივე მხარე გავლენას ახდენს შედეგზე.
VRF (Verifiable Random Function). მტკიცებულებების გადამოწმება: ხელშეკრულება დარწმუნებულია, რომ რიცხვი ნამდვილად შემთხვევით მიიღეს დეკლარირებული წყაროდან.
შემთხვევითი ჰიგიენა. ერთჯერადი სავარძლები, პერიოდული როტაცია, ხელახალი გამოყენებისგან დაცვა, მძიმე და დროებითი ეტიკეტების შენახვა.
4) ბანკისა და სახლის მენეჯმენტი
ლიმიტები. მაქსიმალური კურსი/მოთამაშე/რაუნდი, დღისით ქუდები, ანტივირუსული დაცვა.
House edge. დაშიფრული თამაშის წესებში (მაგალითად, dais/coinflip 1-3%, უფრო მაღალი - სლოტებში).
ჯეკპოტები. დაფინანსებული აუზი თითოეული განაკვეთის წილით; გამომწვევი პირობები მითითებულია კოდში.
ჯვარედინი ნიშნები. კონტრაქტს შეუძლია მიიღოს რამდენიმე აქტივი; ფასები ნორმალიზდება ორაკულების საშუალებით (რისკები: შეფერხებები და მანიპულირება).
5) პრემიები, ვაჯერი და რეფერალური გადახდები
ბონუს ბალანსი. იგი ინახება „რეალური“ საშუალებებისგან დამოუკიდებლად; დასკვნა ნებადართულია ვაგერის შესრულების შემდეგ (მაგალითად, x20).
სახელმწიფო პრემია. სახელმწიფოები: 'Granted' Active 'Locked' Cleared/Forfeited '. პირობები და გადასვლები გამჭვირვალეა კოდით.
Affiliates. წმინდა მოგების/მგლების პროცენტი იწერება ღონისძიებით; გადახდები - პერიოდულად სალაროდან.
6) ჰიბრიდული მოდელი
მთლიანად on-chain. ჭკვიანი კონტრაქტების ყველა ლოგიკა (მაქსიმუმი გამჭვირვალეობა; უარყოფითი მხარეები - გაზი, შეფერხებები, დატვირთვა).
ჰიბრიდი. კურსი/გადახდა on-chain, ხოლო მძიმე ლოგიკა და ინტერფეისი არის off-chain; შედეგი დასტურდება VRF/ხელმოწერით. ეს ამცირებს გაზს და აუმჯობესებს UX- ს.
7) რისკები და როგორ დაიხურა ისინი
MEV/წინა ჭრილობა. თავდამსხმელი ცდილობს შეიტანოს თავისი გარიგება ფსონსა და გათამაშებას შორის. ზომები: დაგვიანებული გამჟღავნება, კომუნალური სქემები, პირადი მემპულები, საბრძოლო სეტერები.
ორაკულის რისკები. შეფერხებები/უარი/წყაროს მანიპულირება. ზომები: მტკიცებულებების გადამოწმება, სარეზერვო არხები, დამოკიდებული თამაშების შეზღუდვები.
განახლება და ნდობა. ხშირად იყენებენ მარიონეტულ ნიმუშს (Upgradeable). ჩვენ გვჭირდება Timelock + მულტისიგი ლოგიკის შეცვლისა და როლების თეთრი ჩამონათვალის შესაცვლელად ('owner', 'pauser', 'treasurer').
შეცდომები კოდში. აუდიტები, ბაუნტის პროგრამები, კრიტიკული ნაწილების ოფიციალური გადამოწმება.
ლიკვიდობა. ბანკს სჭირდება ბუფერები მაქსიმალური მოგებისთვის, წინააღმდეგ შემთხვევაში გადახდები შეფერხდება.
გაზი და UX. L1- ზე განაკვეთები შეიძლება ძვირი იყოს. გადაწყვეტილებები: L2, მეტატარანტები, ტრამპლინი, გაზის აგრეგატორები.
შესაბამისობა. დაბლოკვა ქვეყნის მიხედვით, ლიმიტები, თვითკონტროლი, ასაკობრივი შემოწმება - ხშირად ხორციელდება ოფშორული, მაგრამ „დროშები“ ინახება ხელშეკრულებაში.
8) რა შეუძლია შეამოწმოს მოთამაშეს (საკუთარ თავზე)
კონტრაქტების მისამართები. შეამოწმეთ ინტერფეისი და ქსელის დამკვირვებელი; შეამოწმეთ გადამოწმებული წყარო.
მოვლენები. იხილეთ 'BetPlaced/Settled', შეესაბამება თუ არა თანხები და ინტერფეისის კოეფიციენტები.
უბედური შემთხვევა. არსებობს თუ არა commit-reveal/VRF, ქვეყნდება თუ არა hash და გამჟღავნება, არის თუ არა მტკიცებულებები ვალუტა.
როლები და განახლება. ვინ არის მფლობელი? არსებობს 'Timelock', მრავალმხრივი, 'pause'?
ლიმიტები და ბანკი. სალაროს ზომა, დღისით გადახდის ლიმიტები, ჯეკპოტის სიხშირე.
Approve/ნებართვები. თამაშის შემდეგ გაიხსენეთ ზედმეტი 'approve/permit'.
9) რა უნდა გააკეთოს ოპერატორმა (მინიმალური)
აუდიტი და ტესტირება. საჯარო მოხსენება, სატესტო ქსელში განთავსება, ბაუნტი.
Timelock + მრავალმხრივი. ნებისმიერი განახლება - მხოლოდ დაგვიანებით და კოლექტიური ხელმოწერით.
მონიტორინგი. ონჩეინ-ალერტები ლიკვიდობის, VRF პასუხების, განაკვეთების/გადახდების ანომალიების შესახებ.
ლიკვიდობის რეზერვი. ბუფერები ყველაზე უარესი სკრიპტების ქვეშ, დისბალანსის სტრატეგიები.
გამჭვირვალეობა. საჯარო მისამართები, დოკუმენტაცია, კოეფიციენტების ფორმულები, პრემიების/ვაზის პოლიტიკა.
მოთამაშეთა დაცვა. Limites, Timauts, self-exclusion, KYC იქ, სადაც კანონი მოითხოვს.
10) ხშირი კითხვები
შესაძლებელია „RNG გადახურვა“? სწორი commit-reveal/VRF - არა: ნებისმიერი გადახრა მტკიცებულებებით ჩანს. რისკი მხოლოდ არასწორია ინტეგრაციაში.
რატომ გჭირდებათ მარიონეტული/განახლება? შეცდომების გამოსწორება და თამაშების დამატება. მაგრამ განახლება უნდა იყოს Timelock- თან და მულტსიგთან.
რატომ არის ზოგჯერ თამაში „ძვირფასო“? გაზი L1. თამაში L2/დაბალი დატვირთვის პერიოდში ან გამოიყენეთ Batching პროექტები.
რა არის ჰიბრიდი უფრო უარესი, ვიდრე სრული on-chain? უფრო მეტი ნდობა უკანა პლანზე, მაგრამ იაფი/სწრაფი. ანაზღაურება - VRF, გამჭვირვალე ლოგოები და მკაცრი ლიმიტები.
11) Checlist მოთამაშე
- კონტრაქტი და წყარო გადამოწმებულია, მისამართები ემთხვევა საიტს.
- არსებობს commit-reveal/VRF და საჯარო გათამაშების მოვლენები.
- ჩანს განაკვეთების შეზღუდვები, სალარო საკმარისია გადახდისთვის.
- ნებართვები 'approve' შემოიფარგლება ოდენობით/დროით; ზედმეტი - გაიხსენეთ.
- ტესტის კურსი სწორი იყო.
12) ოპერატორის ჩეკლისტი
- აუდიტი/ბაუნტი/ტესტირება დასრულდა; კრიტიკული ბილიკები დაფარულია ტესტებით.
- Timelock, მრავალმხრივი, „pauser/treasurer“ როლები იყოფა.
- VRF/commit-reveal სწორად ხორციელდება, სავარძლები იჭრება.
- ბანკის ლიმიტები/კაპიტალიზაცია ადეკვატურია რისკებისთვის.
- გამოქვეყნდა დოკუმენტაცია და ხელშეკრულებების მისამართები, მხარდაჭერა პასუხობს.
ჭკვიანი კონტრაქტები კაზინოს გადამოწმებულად აქცევს: წესები კოდშია ჩასმული, შემთხვევითი შემთხვევა დადასტურებულია, გადახდები გამჭვირვალეა. მთავარია სწორი არქიტექტურა (RNG, ბანკი, განახლება, შეზღუდვები) და უსაფრთხოების დისციპლინა. მოთამაშეები იღებენ შემოწმებას და სწრაფ გადახდებს, ოპერატორებს - აუდიტორიის ავტომატიზაციას და ნდობას. „სუფთა“ და ჰიბრიდს შორის წონასწორობა შეირჩევა გაზისა და UX- ის საფუძველზე, მაგრამ ორივე შემთხვევაში საფუძველი არის ღია კონტრაქტები და პატიოსნების მტკიცებულებები.