CryptoNote เวอร์ชัน 2.0

Yazan Nicolas van Saberhagen · 2013

Tek mod getmonero.org

Burada sunulan belge, Monero'nun üzerine inşa edildiği kriptografik temelleri açıklayan Nicolas van Saberhagen'in CryptoNote v2.0 teknik dokümanıdır (2013). Bu, Monero'ya özgü bir teknik doküman değildir. Monero, 2014'te CryptoNote referans uygulamasının (Bytecoin) fork'u olarak hayata geçmiş ve o tarihten bu yana orijinal protokolün çok ötesine geçecek biçimde gelişmiştir.

giriiş

“Bitcoin” [1], p2p elektronik nakit kavramının başarılı bir uygulaması olmuştur. Her ikisi de profesyoneller ve genel halk, aşağıdakilerin uygun kombinasyonunu takdir etmeye başladı halka açık işlemler ve güven modeli olarak proof-of-work. Günümüzde elektronik paranın kullanıcı tabanı istikrarlı bir hızla büyüyor; Müşteriler düşük ücretlerden ve sağlanan anonimlikten etkilenirler elektronik nakit ve tüccarlar tahmin edilen ve merkezi olmayan emisyona değer veriyor. Bitcoin var elektronik paranın kağıt para kadar basit ve kullanışlı olabileceğini etkili bir şekilde kanıtladı kredi kartları. Maalesef Bitcoin birçok eksiklikten muzdariptir. Örneğin, sistemin dağıtılmış doğası esnek değildir ve neredeyse tüm ağ kullanıcıları istemcilerini güncelleyinceye kadar yeni özelliklerin uygulanmasını engeller. Hızla düzeltilemeyen bazı kritik kusurlar Bitcoin'nin çalışmasını caydırır yaygın yayılma. Bu tür esnek olmayan modellerde yeni bir projenin hayata geçirilmesi daha verimlidir. Orijinal projeyi sürekli olarak düzeltmek yerine. Bu yazıda Bitcoin'nın ana eksikliklerini inceliyor ve bunlara çözümler öneriyoruz. inanıyoruz önerdiğimiz çözümleri dikkate alan bir sistemin sağlıklı bir rekabete yol açacağı farklı elektronik nakit sistemleri arasında. Ayrıca kendi elektronik paramız olan “CryptoNote”u da öneriyoruz. elektronik nakitte bir sonraki atılımı vurgulayan bir isim.

การแนะนำ

“Bitcoin” [1] ประสบความสำเร็จในการนำแนวคิดเงินสดอิเล็กทรอนิกส์ p2p ไปใช้ ทั้งสองอย่าง มืออาชีพและประชาชนทั่วไปต่างก็ชื่นชมการผสมผสานที่สะดวกสบายของ ธุรกรรมสาธารณะและ proof-of-work เป็นรูปแบบความน่าเชื่อถือ ปัจจุบันฐานผู้ใช้เงินสดอิเล็กทรอนิกส์ กำลังเติบโตอย่างมั่นคง ลูกค้าถูกดึงดูดด้วยค่าธรรมเนียมต่ำและการไม่เปิดเผยตัวตน ด้วยเงินสดอิเล็กทรอนิกส์และร้านค้าให้ความสำคัญกับการปล่อยก๊าซเรือนกระจกที่คาดการณ์ไว้และกระจายอำนาจ Bitcoin มี ได้รับการพิสูจน์อย่างมีประสิทธิภาพว่าเงินสดอิเล็กทรอนิกส์สามารถทำได้ง่ายเหมือนกับเงินกระดาษและสะดวกพอ ๆ กับ บัตรเครดิต น่าเสียดายที่ Bitcoin ประสบกับข้อบกพร่องหลายประการ เช่น ระบบมีการกระจาย ธรรมชาติไม่สามารถยืดหยุ่นได้ ทำให้ไม่สามารถใช้งานคุณสมบัติใหม่ได้จนกว่าผู้ใช้เครือข่ายเกือบทั้งหมดจะอัปเดตไคลเอนต์ของตน ข้อบกพร่องที่สำคัญบางประการที่ไม่สามารถแก้ไขได้อย่างรวดเร็วจะขัดขวาง Bitcoin การแพร่กระจายอย่างกว้างขวาง ในโมเดลที่ไม่ยืดหยุ่นดังกล่าว การเปิดตัวโปรเจ็กต์ใหม่จะมีประสิทธิภาพมากกว่า แทนที่จะแก้ไขโครงการเดิมอย่างถาวร ในบทความนี้ เราศึกษาและเสนอวิธีแก้ปัญหาข้อบกพร่องหลักของ Bitcoin เราเชื่อ ว่าระบบที่คำนึงถึงแนวทางแก้ไขที่เราเสนอจะนำไปสู่การแข่งขันที่ดี ในระบบเงินสดอิเล็กทรอนิกส์ต่างๆ นอกจากนี้เรายังเสนอเงินสดอิเล็กทรอนิกส์ของเราเอง “CryptoNote” ชื่อที่เน้นความก้าวหน้าครั้งต่อไปในด้านเงินสดอิเล็กทรอนิกส์

Bitcoin Dezavantajları ve Olası Çözümler

2 Bitcoin dezavantajları ve bazı olası çözümler 2.1 İşlemlerin izlenebilirliği Gizlilik ve anonimlik elektronik paranın en önemli unsurlarıdır. Eşler arası ödemeler Geleneksel ile karşılaştırıldığında belirgin bir fark, üçüncü tarafın görüşünden gizlenmeye çalışılmasıdır. bankacılık. Özellikle, T. Okamoto ve K. Ohta ideal elektronik paranın altı kriterini tanımladılar: "Gizlilik: kullanıcı ile satın aldıkları arasındaki ilişki takip edilemez olmalıdır" herkes tarafından” [30]. Açıklamalarından, tamamen anonim olan iki özellik elde ettik. Okamoto tarafından belirtilen gerekliliklere uymak için elektronik nakit modelinin karşılanması gerekir ve Ohta: Takip edilemezlik: Gelen her işlem için tüm olası göndericilerin eşit olasılıklı olması. Bağlantısızlık: Yapılan herhangi iki işlem için bunların gönderildiğini kanıtlamak imkansızdır. aynı kişi. Maalesef Bitcoin izlenemezlik şartını karşılamıyor. Ağın katılımcıları arasında gerçekleşen tüm işlemler halka açık olduğundan, herhangi bir işlem gerçekleştirilebilir. 1 CryptoNote v 2.0 Nicolas van Saberhagen 17 Ekim 2013 1 Giriş “Bitcoin” [1], p2p elektronik nakit kavramının başarılı bir uygulaması olmuştur. Her ikisi de profesyoneller ve genel halk, aşağıdakilerin uygun kombinasyonunu takdir etmeye başladı halka açık işlemler ve güven modeli olarak proof-of-work. Günümüzde elektronik paranın kullanıcı tabanı istikrarlı bir hızla büyüyor; Müşteriler düşük ücretlerden ve sağlanan anonimlikten etkilenirler elektronik nakit ve tüccarlar tahmin edilen ve merkezi olmayan emisyona değer veriyor. Bitcoin var elektronik paranın kağıt para kadar basit ve kullanışlı olabileceğini etkili bir şekilde kanıtladı kredi kartları. Maalesef Bitcoin çeşitli eksikliklerden muzdariptir. Örneğin, sistemin dağıtılmış doğası esnek değildir ve neredeyse tüm ağ kullanıcıları istemcilerini güncelleyinceye kadar yeni özelliklerin uygulanmasını engeller. Hızlı bir şekilde düzeltilemeyen bazı kritik kusurlar Bitcoin'nin çalışmasını caydırır yaygın yayılma. Bu tür esnek olmayan modellerde yeni bir projenin hayata geçirilmesi daha verimlidir. Orijinal projeyi sürekli olarak düzeltmek yerine. Bu yazıda Bitcoin'nın ana eksikliklerini inceliyor ve bunlara çözümler öneriyoruz. inanıyoruz önerdiğimiz çözümleri dikkate alan bir sistemin sağlıklı bir rekabete yol açacağı farklı elektronik nakit sistemleri arasında. Ayrıca kendi elektronik paramız olan “CryptoNote”u da öneriyoruz. elektronik nakitte bir sonraki atılımı vurgulayan bir isim. 2 Bitcoin dezavantajları ve bazı olası çözümler 2.1 İşlemlerin izlenebilirliği Gizlilik ve anonimlik elektronik paranın en önemli unsurlarıdır. Eşler arası ödemeler Geleneksel ile karşılaştırıldığında belirgin bir fark, üçüncü tarafın görüşünden gizlenmeye çalışılmasıdır. bankacılık. Özellikle, T. Okamoto ve K. Ohta ideal elektronik paranın altı kriterini tanımladılar: "Gizlilik: kullanıcı ile satın aldıkları arasındaki ilişki takip edilemez olmalıdır" herkes tarafından” [30]. Açıklamalarından, tamamen anonim olan iki özellik elde ettik. Okamoto tarafından belirtilen gerekliliklere uymak için elektronik nakit modelinin karşılanması gerekir ve Ohta: Takip edilemezlik: Gelen her işlem için tüm olası göndericilerin eşit olasılıklı olması. Bağlantısızlık: Yapılan herhangi iki işlem için bunların gönderildiğini kanıtlamak imkansızdır. aynı kişi. Ne yazık ki Bitcoin izlenemezlik şartını karşılamıyor. Ağın katılımcıları arasında gerçekleşen tüm işlemler halka açık olduğundan, herhangi bir işlem gerçekleştirilebilir. 1 3 Bitcoin kesinlikle "takip edilemezlik" konusunda başarısız oluyor. Size BTC gönderdiğimde, bunun gönderildiği cüzdan blockchain üzerine geri dönülemez şekilde damgalanmıştır. Bu fonları kimin gönderdiğine dair hiçbir soru yok. çünkü yalnızca özel anahtarları bilenler bunları gönderebilir.benzersiz bir kökene ve nihai alıcıya kadar izi sürülebilir. İki katılımcı değişse bile Dolaylı bir şekilde fon sağlanması durumunda, uygun şekilde tasarlanmış bir yol bulma yöntemi, kaynağı ve kaynağı ortaya çıkaracaktır. son alıcı. Ayrıca Bitcoin öğesinin ikinci özelliği karşılamadığından da şüpheleniliyor. Bazı araştırmacılar ([33, 35, 29, 31]) dikkatli bir blockchain analizinin aralarında bir bağlantı ortaya çıkarabileceğini belirtmiştir ([33, 35, 29, 31]) Bitcoin ağının kullanıcıları ve bunların işlemleri. Her ne kadar bir takım yöntemler mevcut olsa da [25] ihtilaflı olduğundan, birçok gizli kişisel bilginin bu siteden alınabileceğinden şüpheleniliyor halka açık veritabanı. Bitcoin'nin yukarıda özetlenen iki özelliği karşılamadaki başarısızlığı, bunun şu sonuca varmasına neden olur: anonim değil, sahte anonim bir elektronik nakit sistemi. Kullanıcılar hızla gelişti Bu eksikliği ortadan kaldıracak çözümler. İki doğrudan çözüm "aklama hizmetleri" [2] ve dağıtılmış yöntemlerin geliştirilmesi [3, 4]. Her iki çözüm de karıştırma fikrine dayanmaktadır. çeşitli kamu işlemleri ve bunların bazı aracı adresler aracılığıyla gönderilmesi; hangisi sırayla güvenilir bir üçüncü tarafa ihtiyaç duymanın dezavantajını yaşar. Son zamanlarda I. Miers ve diğerleri tarafından daha yaratıcı bir plan önerildi. [28]: “Sıfırcoin”. Sıfırcoin kullanıcıların kriptografik tek yönlü akümülatörleri ve sıfır bilgi kanıtlarını kullanır. Bitcoin'leri sıfır paraya "dönüştürün" ve bunları, yerine anonim sahiplik kanıtı kullanarak harcayın Açık genel anahtar tabanlı dijital imzalar. Ancak bu tür bilgi kanıtlarının sabit bir değeri vardır. ancak uygunsuz boyut - yaklaşık 30 kb (bugünün Bitcoin sınırlarına göre), bu da teklifi geçerli kılıyor pratik değil. Yazarlar, protokolün çoğunluk tarafından kabul edilmesinin pek mümkün olmadığını itiraf ediyor Bitcoin kullanıcılar [5]. 2.2 proof-of-work işlevi Bitcoin yaratıcısı Satoshi Nakamoto, çoğunluk karar verme algoritmasını "bir CPU-bir oy" olarak tanımladı ve proof-of-work için CPU'ya bağlı fiyatlandırma işlevini (çift SHA-256) kullandı. şeması. Kullanıcılar tek işlem geçmişi emri [1] için oy verdiğinden, makullük ve Bu sürecin tutarlılığı tüm sistem için kritik koşullardır. Bu modelin güvenliği iki dezavantaja sahiptir. İlk olarak, ağın %51'ini gerektirir Madencilik gücünün dürüst kullanıcıların kontrolü altında olması. İkinci olarak sistemin ilerlemesi (hata düzeltmeleri, güvenlik düzeltmeleri vb.) kullanıcıların büyük çoğunluğunun aşağıdakileri desteklemesini ve kabul etmesini gerektirir: değişiklikler (bu, kullanıcılar cüzdan yazılımlarını güncellediklerinde meydana gelir) [6].Sonunda aynı oylama mekanizma aynı zamanda bazı özelliklerin uygulanmasına ilişkin toplu anketler için de kullanılıyor [7]. Bu, proof-of-work tarafından karşılanması gereken özellikleri tahmin etmemizi sağlar. fiyatlandırma fonksiyonu Bu tür bir işlev, bir ağ katılımcısının önemli bir yetkiye sahip olmasını sağlamamalıdır. başka bir katılımcıya göre avantaj; ortak donanım ve yüksek seviye arasında bir eşitlik gerektirir özel cihazların maliyeti. Son örneklerden [8], SHA-256 fonksiyonunun kullanıldığını görebiliriz Bitcoin mimarisinde madencilik daha verimli hale geldiğinden bu özelliğe sahip değildir Üst düzey CPU'larla karşılaştırıldığında GPU'lar ve ASIC cihazları. Bu nedenle Bitcoin, oy verme gücü arasında büyük bir fark olması için uygun koşullar yaratır. GPU ve ASIC sahiplerinin sahip olduğu "bir CPU-bir oy" ilkesini ihlal ettiği için katılımcılar CPU sahipleriyle karşılaştırıldığında çok daha büyük bir oylama gücü. Bunun klasik bir örneğidir Bir sistemdeki katılımcıların %20'sinin oyların %80'inden fazlasını kontrol ettiği Pareto ilkesi. Böyle bir eşitsizliğin ağın güvenliğiyle ilgili olmadığı, çünkü Oyların çoğunluğunu kontrol eden az sayıda katılımcı ancak bunların dürüstlüğü önemli olan katılımcılar. Ancak böyle bir argüman biraz kusurlu çünkü daha ziyade katılımcıların dürüstlüğünden ziyade ucuz özel donanımın ortaya çıkma olasılığı tehdit oluşturuyor. Bunu göstermek için aşağıdaki örneği ele alalım. Diyelim ki kötü niyetli birey, ucuz yöntemlerle kendi madencilik çiftliğini kurarak önemli bir madencilik gücü elde eder. 2 benzersiz bir kökene ve nihai alıcıya kadar izi sürülebilir. İki katılımcı değişse bile Dolaylı bir şekilde fon sağlanması durumunda, uygun şekilde tasarlanmış bir yol bulma yöntemi, kaynağı ve kaynağı ortaya çıkaracaktır. son alıcı. Ayrıca Bitcoin'nin ikinci özelliği karşılamadığından da şüpheleniliyor. Bazı araştırmacılar ([33, 35, 29, 31]) dikkatli bir blockchain analizinin aralarında bir bağlantıyı ortaya çıkarabileceğini belirtmiştir ([33, 35, 29, 31]) Bitcoin ağının kullanıcıları ve onların işlemleri. Her ne kadar bir takım yöntemler mevcut olsa da d[25] olarak belirtildiyse, birçok gizli kişisel bilginin bu siteden alınabileceğinden şüpheleniliyor. halka açık veritabanı. Bitcoin'nin yukarıda özetlenen iki özelliği karşılamadaki başarısızlığı, bunun şu sonuca varmasına neden oluyor: anonim değil, sahte anonim bir elektronik nakit sistemi. Kullanıcılar hızla gelişti Bu eksikliği ortadan kaldıracak çözümler. İki doğrudan çözüm “aklama hizmetleri” idi [2] ve dağıtılmış yöntemlerin geliştirilmesi [3, 4]. Her iki çözüm de karıştırma fikrine dayanmaktadır. çeşitli kamu işlemleri ve bunların bazı aracı adresler aracılığıyla gönderilmesi; hangisi sırayla güvenilir bir üçüncü tarafa ihtiyaç duymanın dezavantajını yaşar. Son zamanlarda I. Miers ve diğerleri tarafından daha yaratıcı bir plan önerildi. [28]: “Sıfırcoin”. Sıfırcoin kullanıcıların kriptografik tek yönlü akümülatörleri ve sıfır bilgi kanıtlarını kullanır. Bitcoin'leri sıfır paraya "dönüştürün" ve bunları, yerine anonim sahiplik kanıtı kullanarak harcayın Açık genel anahtar tabanlı dijital imzalar. Ancak bu tür bilgi kanıtlarının sabit bir değeri vardır. ancak uygunsuz boyut - yaklaşık 30 kb (bugünün Bitcoin sınırlarına göre), bu da teklifi geçerli kılıyor pratik değil. Yazarlar, protokolün çoğunluk tarafından kabul edilmesinin pek mümkün olmadığını itiraf ediyor Bitcoin kullanıcılar [5]. 2.2 proof-of-work işlevi Bitcoin yaratıcısı Satoshi Nakamoto, çoğunluk karar verme algoritmasını "bir CPU-bir oy" olarak tanımladı ve proof-of-work için CPU'ya bağlı fiyatlandırma işlevini (çift SHA-256) kullandı. şeması. Kullanıcılar tek işlem geçmişi emri [1] için oy verdiğinden, makullük ve Bu sürecin tutarlılığı tüm sistem için kritik koşullardır. Bu modelin güvenliği iki dezavantaja sahiptir. İlk olarak, ağın %51'ini gerektirir Madencilik gücünün dürüst kullanıcıların kontrolü altında olması. İkinci olarak sistemin ilerlemesi (hata düzeltmeleri, güvenlik düzeltmeleri vb.) kullanıcıların büyük çoğunluğunun aşağıdakileri desteklemesini ve kabul etmesini gerektirir: değişiklikler (bu, kullanıcılar cüzdan yazılımlarını güncellediklerinde meydana gelir) [6].Sonunda aynı oylama mekanizma aynı zamanda bazı özelliklerin uygulanmasına ilişkin toplu anketler için de kullanılıyor [7]. Bu bize proof-of-work tarafından karşılanması gereken özellikleri tahmin etmemizi sağlar. fiyatlandırma fonksiyonu Bu tür bir işlev, bir ağ katılımcısının önemli bir yetkiye sahip olmasını sağlamamalıdır. başka bir katılımcıya göre avantaj; ortak donanım ve yüksek seviye arasında bir eşitlik gerektirir özel cihazların maliyeti. Son örneklerden [8], SHA-256 fonksiyonunun kullanıldığını görebiliriz Bitcoin mimarisinde madencilik daha verimli hale geldiğinden bu özelliğe sahip değildir Üst düzey CPU'larla karşılaştırıldığında GPU'lar ve ASIC cihazları. Bu nedenle Bitcoin, oylama güçleri arasında büyük bir fark olması için uygun koşullar yaratır. GPU ve ASIC sahiplerinin sahip olduğu "bir CPU-bir oy" ilkesini ihlal ettiği için katılımcılar CPU sahipleriyle karşılaştırıldığında çok daha büyük bir oylama gücü. Bunun klasik bir örneğidir Bir sistemdeki katılımcıların %20'sinin oyların %80'inden fazlasını kontrol ettiği Pareto ilkesi. Böyle bir eşitsizliğin ağın güvenliğiyle ilgili olmadığı, çünkü Oyların çoğunluğunu kontrol eden az sayıda katılımcı ancak bunların dürüstlüğü önemli olan katılımcılar. Ancak böyle bir argüman biraz kusurlu çünkü daha ziyade katılımcıların dürüstlüğünden ziyade ucuz özel donanımın ortaya çıkma olasılığı tehdit oluşturuyor. Bunu göstermek için aşağıdaki örneği ele alalım. Diyelim ki kötü niyetli birey, ucuz yöntemlerle kendi madencilik çiftliğini kurarak önemli bir madencilik gücü elde eder. 2 4 Muhtemelen, eğer her kullanıcı her zaman yeni bir adres oluşturarak kendi anonimliğini ortadan kaldırıyorsa Alınan HER ödeme için (bu saçma ama teknik olarak bunu yapmanın "doğru" yolu), ve eğer her kullanıcı, asla para göndermemeleri konusunda ısrar ederek diğer herkesin anonimliğine yardımcı olsaydı aynı BTC adresine iki kez gitse, Bitcoin yine de yalnızca dolaylı olarak iletecektir bağlantı kurulamazlık testi Neden? Tüketici verileri, insanlar hakkında her zaman şaşırtıcı miktarda bilgi edinmek için kullanılabilir. Örneğin bkz. http://www.applieddatalabs.com/content/target-knows-it-shows Şimdi bunun 20 yıl gelecekte olduğunu hayal edin ve ayrıca Target'in bunu bilmediğini hayal edin. Target'taki satın alma alışkanlıklarınız hakkında, ancak ALL OF için blockchain madenciliği yapıyorlardı GEÇMİŞ İÇİN COINBASE CÜZDANINIZ İLE KİŞİSEL ALIŞVERİŞLERİNİZ ON İKİ YIL. Şöyle diyecekler: "Hey dostum, bu gece biraz öksürük ilacı almak isteyebilirsin, almayacaksın yarın kendini iyi hisset." Çok partili sıralama doğru şekilde kullanılırsa durum böyle olmayabilir. Örneğin buna bakınblog yazısı: http://blog.ezyang.com/2012/07/secure-multiparty-bitcoin-anonymization/ Bunun matematiğine tam olarak ikna olmadım ama... her seferinde bir kağıt, değil mi? Alıntı gerekli. Zerocoin protokolü (bağımsız) yetersiz olabilirken Zerocash protokolün 1kb boyutunda bir işlem gerçekleştirmiş olduğu görülüyor. O proje destekleniyor Tabii ki ABD ve İsrail orduları, yani sağlamlığını kim bilebilir? diğer tarafta Öte yandan hiç kimse ordu kadar gözetim olmadan fon harcamayı istemez. http://zerocash-project.org/ İkna olmadım... örneğin bkz. http://fc14.ifca.ai/bitcoin/papers/bitcoin14_submission_12.pdf Cryptonote geliştiricisi Maurice Planck'tan (muhtemelen takma ad) kripto nottan alıntı fora: "Sıfırcoin, Zerocash. Bu en ileri teknoloji, itiraf etmeliyim. Evet alıntı Yukarıdaki, protokolün önceki versiyonunun analizinden alınmıştır. Bildiğim kadarıyla öyle değil 288 ama 384 byte ama yine de bu iyi bir haber. SNARK adında yepyeni bir teknik kullandılar, bunun da bazı dezavantajları var: Örneğin; Bir imza oluşturmak için gereken genel parametrelerden oluşan geniş bir başlangıç veri tabanı (1 GB'den fazla) ve bir işlem oluşturmak için önemli bir sürenin gerekli olması (bir dakikadan fazla). Son olarak, bir tartışılabilir bir fikir olduğundan bahsettiğim genç kripto: https://forum.cryptonote.org/viewtopic.php?f= " - Maurice P. Per 03 Nis 2014 19:56 CPU'da gerçekleştirilen ve GPU, FPGA veya ASIC için uygun olmayan bir işlev hesaplama. proof-of-work'de kullanılan "bulmaca", fiyatlandırma işlevi, maliyet işlevi veya bulmaca işlevi.

benzersiz bir kökene ve nihai alıcıya kadar izi sürülebilir. İki katılımcı değişse bile Dolaylı bir şekilde fon sağlanması durumunda, uygun şekilde tasarlanmış bir yol bulma yöntemi, kaynağı ve kaynağı ortaya çıkaracaktır. son alıcı. Ayrıca Bitcoin'nin ikinci özelliği karşılamadığından da şüpheleniliyor. Bazı araştırmacılar ([33, 35, 29, 31]) dikkatli bir blockchain analizinin aralarında bir bağlantı olduğunu ortaya çıkarabileceğini belirtmiştir ([33, 35, 29, 31]) Bitcoin ağının kullanıcıları ve bunların işlemleri. Her ne kadar bir takım yöntemler mevcut olsa da [25] ihtilaflı olduğundan, birçok gizli kişisel bilginin bu siteden alınabileceğinden şüpheleniliyor halka açık veritabanı. Bitcoin'in yukarıda özetlenen iki özelliği karşılamadaki başarısızlığı, bunun şu sonuca varmasına neden oluyor: anonim değil, sahte anonim bir elektronik nakit sistemi. Kullanıcılar hızla gelişti Bu eksikliği ortadan kaldıracak çözümler. İki doğrudan çözüm “aklama hizmetleri” idi [2] ve dağıtılmış yöntemlerin geliştirilmesi [3, 4]. Her iki çözüm de karıştırma fikrine dayanmaktadır. çeşitli kamu işlemleri ve bunların bazı aracı adresler aracılığıyla gönderilmesi; hangisi sırayla güvenilir bir üçüncü tarafa ihtiyaç duymanın dezavantajını yaşar. Son zamanlarda I. Miers ve diğerleri tarafından daha yaratıcı bir plan önerildi. [28]: “Sıfırcoin”. Sıfırcoin kullanıcıların kriptografik tek yönlü akümülatörleri ve sıfır bilgi kanıtlarını kullanır. Bitcoin'leri sıfır paraya "dönüştürün" ve bunları, yerine anonim sahiplik kanıtı kullanarak harcayın Açık genel anahtar tabanlı dijital imzalar. Ancak bu tür bilgi kanıtlarının sabit bir değeri vardır. ancak uygunsuz boyut - yaklaşık 30 kb (bugünün Bitcoin sınırlarına göre), bu da teklifi geçerli kılıyor pratik değil. Yazarlar, protokolün çoğunluk tarafından kabul edilmesinin pek mümkün olmadığını itiraf ediyor Bitcoin kullanıcılar [5]. 2.2 proof-of-work işlevi Bitcoin yaratıcısı Satoshi Nakamoto, çoğunluk karar verme algoritmasını "bir CPU-bir oy" olarak tanımladı ve proof-of-work için CPU'ya bağlı fiyatlandırma işlevini (çift SHA-256) kullandı. şeması. Kullanıcılar tek işlem geçmişi emri [1] için oy verdiğinden, makullük ve Bu sürecin tutarlılığı tüm sistem için kritik koşullardır. Bu modelin güvenliği iki dezavantaja sahiptir. İlk olarak, ağın %51'ini gerektirir Madencilik gücünün dürüst kullanıcıların kontrolü altında olması. İkinci olarak sistemin ilerlemesi (hata düzeltmeleri, güvenlik düzeltmeleri vb.) kullanıcıların büyük çoğunluğunun aşağıdakileri desteklemesini ve kabul etmesini gerektirir: değişiklikler (bu, kullanıcılar cüzdan yazılımlarını güncellediklerinde meydana gelir) [6].Sonunda aynı oylama mekanizma aynı zamanda bazı özelliklerin uygulanmasına ilişkin toplu anketler için de kullanılıyor [7]. Bu, proof-of-work tarafından karşılanması gereken özellikleri tahmin etmemizi sağlar. fiyatlandırma fonksiyonu Bu tür bir işlev, bir ağ katılımcısının önemli bir yetkiye sahip olmasını sağlamamalıdır. başka bir katılımcıya göre avantaj; ortak donanım ve yüksek seviye arasında bir eşitlik gerektirir özel cihazların maliyeti. Son örneklerden [8], SHA-256 fonksiyonunun kullanıldığını görebiliriz Bitcoin mimarisinde madencilik daha verimli hale geldiğinden bu özelliğe sahip değildir Üst düzey CPU'larla karşılaştırıldığında GPU'lar ve ASIC cihazları. Bu nedenle Bitcoin, oy verme gücü arasında büyük bir fark olması için uygun koşullar yaratır. GPU ve ASIC sahiplerinin sahip olduğu "bir CPU-bir oy" ilkesini ihlal ettiği için katılımcılar CPU sahipleriyle karşılaştırıldığında çok daha büyük bir oylama gücü. Bunun klasik bir örneğidir Bir sistemdeki katılımcıların %20'sinin oyların %80'inden fazlasını kontrol ettiği Pareto ilkesi. Böyle bir eşitsizliğin ağın güvenliğiyle ilgili olmadığı, çünkü Oyların çoğunluğunu kontrol eden az sayıda katılımcı ancak bunların dürüstlüğü önemli olan katılımcılar. Ancak böyle bir argüman biraz kusurlu çünkü daha ziyade katılımcıların dürüstlüğünden ziyade ucuz özel donanımın ortaya çıkma olasılığı tehdit oluşturuyor. Bunu göstermek için aşağıdaki örneği ele alalım. Diyelim ki kötü niyetli birey, ucuz yöntemlerle kendi madencilik çiftliğini kurarak önemli bir madencilik gücü elde eder. 2 benzersiz bir kökene ve nihai alıcıya kadar izi sürülebilir. İki katılımcı değişse bile Dolaylı bir şekilde fon sağlanması durumunda, uygun şekilde tasarlanmış bir yol bulma yöntemi, kaynağı ve kaynağı ortaya çıkaracaktır. son alıcı. Ayrıca Bitcoin öğesinin ikinci özelliği karşılamadığından da şüpheleniliyor. Bazı araştırmacılar ([33, 35, 29, 31]) dikkatli bir blockchain analizinin aralarında bir bağlantı olduğunu ortaya çıkarabileceğini belirtmiştir ([33, 35, 29, 31]) Bitcoin ağının kullanıcıları ve bunların işlemleri. Her ne kadar bir takım yöntemler mevcut olsa da d[25] olarak öne sürülen bu siteden birçok gizli kişisel bilginin alınabileceğinden şüpheleniliyor. halka açık veritabanı. Bitcoin'nin yukarıda özetlenen iki özelliği karşılamadaki başarısızlığı, bunun şu sonuca varmasına neden oluyor: anonim değil, sahte anonim bir elektronik nakit sistemi. Kullanıcılar hızla gelişti Bu eksikliği ortadan kaldıracak çözümler. İki doğrudan çözüm "aklama hizmetleri" [2] ve dağıtılmış yöntemlerin geliştirilmesi [3, 4]. Her iki çözüm de karıştırma fikrine dayanmaktadır. çeşitli kamu işlemleri ve bunların bazı aracı adresler aracılığıyla gönderilmesi; hangisi sırayla güvenilir bir üçüncü tarafa ihtiyaç duymanın dezavantajını yaşar. Son zamanlarda I. Miers ve diğerleri tarafından daha yaratıcı bir plan önerildi. [28]: “Sıfırcoin”. Sıfırcoin kullanıcıların kriptografik tek yönlü akümülatörleri ve sıfır bilgi kanıtlarını kullanır. Bitcoin'leri sıfır paraya "dönüştürün" ve bunları, yerine anonim sahiplik kanıtı kullanarak harcayın Açık genel anahtar tabanlı dijital imzalar. Ancak bu tür bilgi kanıtlarının sabit bir değeri vardır. ancak uygunsuz boyut - yaklaşık 30 kb (bugünün Bitcoin sınırlarına göre), bu da teklifi geçerli kılıyor pratik değil. Yazarlar, protokolün çoğunluk tarafından kabul edilmesinin pek mümkün olmadığını itiraf ediyor Bitcoin kullanıcılar [5]. 2.2 proof-of-work işlevi Bitcoin yaratıcısı Satoshi Nakamoto, çoğunluk karar verme algoritmasını "bir CPU-bir oy" olarak tanımladı ve proof-of-work için CPU'ya bağlı fiyatlandırma işlevini (çift SHA-256) kullandı. şeması. Kullanıcılar tek işlem geçmişi emri [1] için oy verdiğinden, makullük ve Bu sürecin tutarlılığı tüm sistem için kritik koşullardır. Bu modelin güvenliği iki dezavantaja sahiptir. İlk olarak, ağın %51'ini gerektirir Madencilik gücünün dürüst kullanıcıların kontrolü altında olması. İkinci olarak sistemin ilerlemesi (hata düzeltmeleri, güvenlik düzeltmeleri vb.) kullanıcıların büyük çoğunluğunun aşağıdakileri desteklemesini ve kabul etmesini gerektirir: değişiklikler (bu, kullanıcılar cüzdan yazılımlarını güncellediklerinde meydana gelir) [6].Sonunda aynı oylama mekanizma aynı zamanda bazı özelliklerin uygulanmasına ilişkin toplu anketler için de kullanılıyor [7]. Bu bize proof-of-work tarafından karşılanması gereken özellikleri tahmin etmemizi sağlar. fiyatlandırma fonksiyonu Bu tür bir işlev, bir ağ katılımcısının önemli bir yetkiye sahip olmasını sağlamamalıdır. başka bir katılımcıya göre avantaj; ortak donanım ve yüksek seviye arasında bir eşitlik gerektirir özel cihazların maliyeti. Son örneklerden [8], SHA-256 fonksiyonunun kullanıldığını görebiliriz Bitcoin mimarisinde madencilik daha verimli hale geldiğinden bu özelliğe sahip değildir Üst düzey CPU'larla karşılaştırıldığında GPU'lar ve ASIC cihazları. Bu nedenle Bitcoin, oylama güçleri arasında büyük bir fark olması için uygun koşullar yaratır. GPU ve ASIC sahiplerinin sahip olduğu "bir CPU-bir oy" ilkesini ihlal ettiği için katılımcılar CPU sahipleriyle karşılaştırıldığında çok daha büyük bir oylama gücü. Bunun klasik bir örneğidir Bir sistemdeki katılımcıların %20'sinin oyların %80'inden fazlasını kontrol ettiği Pareto ilkesi. Böyle bir eşitsizliğin ağın güvenliğiyle ilgili olmadığı, çünkü Oyların çoğunluğunu kontrol eden az sayıda katılımcı ancak bunların dürüstlüğü önemli olan katılımcılar. Ancak böyle bir argüman biraz kusurlu çünkü daha ziyade katılımcıların dürüstlüğünden ziyade ucuz özel donanımın ortaya çıkma olasılığı tehdit oluşturuyor. Bunu göstermek için aşağıdaki örneği ele alalım. Diyelim ki kötü niyetli birey, ucuz yöntemlerle kendi madencilik çiftliğini kurarak önemli bir madencilik gücü elde eder. 2 2. sayfadaki yorumlar

Bitcoin ข้อเสียและวิธีแก้ปัญหาที่เป็นไปได้

2 Bitcoin ข้อเสียและวิธีแก้ปัญหาที่เป็นไปได้ 2.1 การติดตามธุรกรรม ความเป็นส่วนตัวและการไม่เปิดเผยตัวตนเป็นสิ่งสำคัญที่สุดของเงินสดอิเล็กทรอนิกส์ การชำระเงินแบบเพียร์ทูเพียร์ พยายามปกปิดจากมุมมองของบุคคลที่สาม ซึ่งเป็นความแตกต่างที่ชัดเจนเมื่อเปรียบเทียบกับแบบดั้งเดิม การธนาคาร โดยเฉพาะอย่างยิ่ง T. Okamoto และ K. Ohta ได้อธิบายเกณฑ์หกประการของเงินสดอิเล็กทรอนิกส์ในอุดมคติ ซึ่งรวมถึง “ความเป็นส่วนตัว: ความสัมพันธ์ระหว่างผู้ใช้กับการซื้อของเขาจะต้องไม่สามารถติดตามได้ โดยใครก็ตาม” [30]. จากคำอธิบาย เราได้รับคุณสมบัติสองประการที่ไม่ระบุชื่อโดยสมบูรณ์ แบบจำลองเงินสดอิเล็กทรอนิกส์จะต้องเป็นไปตามข้อกำหนดเพื่อให้เป็นไปตามข้อกำหนดที่ Okamoto ระบุไว้ และโอตะ: ไม่สามารถติดตามได้: สำหรับแต่ละธุรกรรมที่เข้ามา ผู้ส่งที่เป็นไปได้ทั้งหมดสามารถติดตั้งได้ ไม่สามารถเชื่อมโยงได้: สำหรับธุรกรรมขาออกสองรายการใดๆ จะไม่สามารถพิสูจน์ได้ว่าถูกส่งไป คนคนเดียวกัน ขออภัย Bitcoin ไม่เป็นไปตามข้อกำหนดที่ไม่สามารถติดตามได้ เนื่องจากธุรกรรมทั้งหมดที่เกิดขึ้นระหว่างผู้เข้าร่วมเครือข่ายนั้นเป็นแบบสาธารณะ ธุรกรรมใดๆ ก็สามารถเกิดขึ้นได้ 1 CryptoNote เวอร์ชัน 2.0 นิโคลัส ฟาน ซาเบอร์ฮาเกน 17 ตุลาคม 2556 1 บทนำ “Bitcoin” [1] ประสบความสำเร็จในการนำแนวคิดเงินสดอิเล็กทรอนิกส์ p2p ไปใช้ ทั้งสองอย่าง มืออาชีพและประชาชนทั่วไปต่างก็ชื่นชมการผสมผสานที่สะดวกสบายของ ธุรกรรมสาธารณะและ proof-of-work เป็นรูปแบบความน่าเชื่อถือ ปัจจุบันฐานผู้ใช้เงินสดอิเล็กทรอนิกส์ กำลังเติบโตอย่างมั่นคง ลูกค้าถูกดึงดูดด้วยค่าธรรมเนียมต่ำและการไม่เปิดเผยตัวตน ด้วยเงินสดอิเล็กทรอนิกส์และร้านค้าให้ความสำคัญกับการปล่อยก๊าซเรือนกระจกที่คาดการณ์ไว้และกระจายอำนาจ Bitcoin มี ได้รับการพิสูจน์อย่างมีประสิทธิภาพว่าเงินสดอิเล็กทรอนิกส์สามารถทำได้ง่ายเหมือนกับเงินกระดาษและสะดวกพอ ๆ กับ บัตรเครดิต น่าเสียดายที่ Bitcoin ประสบกับข้อบกพร่องหลายประการ เช่น ระบบมีการกระจาย ธรรมชาติไม่สามารถยืดหยุ่นได้ ทำให้ไม่สามารถใช้งานคุณสมบัติใหม่ได้จนกว่าผู้ใช้เครือข่ายเกือบทั้งหมดจะอัปเดตไคลเอนต์ของตน ข้อบกพร่องที่สำคัญบางประการที่ไม่สามารถแก้ไขได้อย่างรวดเร็วจะขัดขวาง Bitcoin การแพร่กระจายอย่างกว้างขวาง ในโมเดลที่ไม่ยืดหยุ่นดังกล่าว การเปิดตัวโปรเจ็กต์ใหม่จะมีประสิทธิภาพมากกว่า แทนที่จะแก้ไขโครงการเดิมอย่างถาวร ในบทความนี้ เราศึกษาและเสนอวิธีแก้ปัญหาข้อบกพร่องหลักของ Bitcoin เราเชื่อ ว่าระบบที่คำนึงถึงแนวทางแก้ไขที่เราเสนอจะนำไปสู่การแข่งขันที่ดี ในระบบเงินสดอิเล็กทรอนิกส์ต่างๆ นอกจากนี้เรายังเสนอเงินสดอิเล็กทรอนิกส์ของเราเอง “CryptoNote” ชื่อที่เน้นความก้าวหน้าครั้งต่อไปในด้านเงินสดอิเล็กทรอนิกส์ 2 Bitcoin ข้อเสียและวิธีแก้ปัญหาที่เป็นไปได้ 2.1 การติดตามธุรกรรม ความเป็นส่วนตัวและการไม่เปิดเผยตัวตนเป็นสิ่งสำคัญที่สุดของเงินสดอิเล็กทรอนิกส์ การชำระเงินแบบเพียร์ทูเพียร์ พยายามปกปิดจากมุมมองของบุคคลที่สาม ซึ่งเป็นความแตกต่างที่ชัดเจนเมื่อเปรียบเทียบกับแบบดั้งเดิม การธนาคาร โดยเฉพาะอย่างยิ่ง T. Okamoto และ K. Ohta ได้อธิบายเกณฑ์หกประการของเงินสดอิเล็กทรอนิกส์ในอุดมคติ ซึ่งรวมถึง “ความเป็นส่วนตัว: ความสัมพันธ์ระหว่างผู้ใช้กับการซื้อของเขาจะต้องไม่สามารถติดตามได้ โดยใครก็ตาม” [30] จากคำอธิบาย เราได้รับคุณสมบัติสองประการที่ไม่ระบุชื่อโดยสมบูรณ์ แบบจำลองเงินสดอิเล็กทรอนิกส์จะต้องเป็นไปตามข้อกำหนดเพื่อให้เป็นไปตามข้อกำหนดที่ Okamoto ระบุไว้ และโอตะ: ไม่สามารถติดตามได้: สำหรับแต่ละธุรกรรมที่เข้ามา ผู้ส่งที่เป็นไปได้ทั้งหมดสามารถติดตั้งได้ ไม่สามารถเชื่อมโยงได้: สำหรับธุรกรรมขาออกสองรายการใดๆ จะไม่สามารถพิสูจน์ได้ว่าถูกส่งไป คนคนเดียวกัน ขออภัย Bitcoin ไม่เป็นไปตามข้อกำหนดที่ไม่สามารถติดตามได้ เนื่องจากธุรกรรมทั้งหมดที่เกิดขึ้นระหว่างผู้เข้าร่วมเครือข่ายนั้นเป็นแบบสาธารณะ ธุรกรรมใดๆ ก็สามารถเกิดขึ้นได้ 1 3 Bitcoin ล้มเหลวอย่างแน่นอน "ไม่สามารถติดตามได้" เมื่อฉันส่ง BTC ให้คุณ ซึ่งเป็นกระเป๋าเงินที่มันถูกส่งไป ได้รับการประทับตราอย่างถาวรบน blockchain ไม่มีคำถามว่าใครเป็นผู้ส่งเงินเหล่านั้น เพราะมีเพียงผู้รู้คีย์ส่วนตัวเท่านั้นที่สามารถส่งได้สืบเชื้อสายมาจากแหล่งกำเนิดและผู้รับขั้นสุดท้ายอย่างไม่คลุมเครือ แม้ว่าผู้เข้าร่วมสองคนจะแลกเปลี่ยนกันก็ตาม กองทุนในทางอ้อม วิธีการค้นหาเส้นทางที่ออกแบบมาอย่างเหมาะสมจะเปิดเผยที่มาและ ผู้รับขั้นสุดท้าย ยังสงสัยว่า Bitcoin ไม่เป็นไปตามคุณสมบัติที่สอง นักวิจัยบางคน ระบุไว้ ([33, 35, 29, 31]) ว่าการวิเคราะห์ blockchain อย่างรอบคอบอาจเปิดเผยความเชื่อมโยงระหว่าง ผู้ใช้เครือข่าย Bitcoin และธุรกรรมของพวกเขา แม้ว่าจะมีหลายวิธีก็ตาม โต้แย้ง [25] เป็นที่สงสัยว่าสามารถดึงข้อมูลส่วนบุคคลที่ซ่อนอยู่จำนวนมากออกจาก ฐานข้อมูลสาธารณะ Bitcoin ความล้มเหลวในการปฏิบัติตามคุณสมบัติทั้งสองที่สรุปไว้ข้างต้นทำให้เราสรุปได้ว่า ไม่ใช่ระบบเงินสดอิเล็กทรอนิกส์ที่ไม่เปิดเผยตัวตน แต่เป็นระบบเงินสดอิเล็กทรอนิกส์ที่ไม่เปิดเผยตัวตน ผู้ใช้มีการพัฒนาอย่างรวดเร็ว แนวทางแก้ไขเพื่อหลีกเลี่ยงข้อบกพร่องนี้ วิธีแก้ปัญหาโดยตรงสองประการคือ "บริการฟอก" [2] และ การพัฒนาวิธีการแบบกระจาย [3, 4] โซลูชันทั้งสองมีพื้นฐานมาจากแนวคิดเรื่องการผสม ธุรกรรมสาธารณะหลายรายการและส่งผ่านที่อยู่ตัวกลางบางแห่ง ซึ่งในทางกลับกัน ประสบข้อเสียเปรียบในการต้องมีบุคคลที่สามที่เชื่อถือได้ เมื่อเร็ว ๆ นี้ I. Miers และคณะเสนอแผนการสร้างสรรค์เพิ่มเติม [28]: “ซีโร่คอยน์” ซีโร่คอยน์ ใช้ตัวสะสมแบบเข้ารหัสทางเดียวและการพิสูจน์ที่ไม่มีความรู้ซึ่งอนุญาตให้ผู้ใช้ “แปลง” bitcoins ให้เป็นศูนย์เหรียญและใช้มันโดยใช้หลักฐานการเป็นเจ้าของที่ไม่เปิดเผยตัวตนแทน ลายเซ็นดิจิทัลที่ใช้คีย์สาธารณะที่ชัดเจน อย่างไรก็ตาม การพิสูจน์ความรู้ดังกล่าวมีความคงที่ แต่ขนาดไม่สะดวก - ประมาณ 30kb (ตามขีดจำกัด Bitcoin ของวันนี้) ซึ่งทำให้ข้อเสนอ ทำไม่ได้ ผู้เขียนยอมรับว่าโปรโตคอลนี้ไม่น่าจะได้รับการยอมรับจากคนส่วนใหญ่ Bitcoin ผู้ใช้ [5] 2.2 ฟังก์ชัน proof-of-work Bitcoin ผู้สร้าง Satoshi Nakamoto อธิบายอัลกอริธึมการตัดสินใจส่วนใหญ่ว่า "หนึ่ง CPU-หนึ่งโหวต" และใช้ฟังก์ชันการกำหนดราคาที่ผูกกับ CPU (สองเท่า SHA-256) สำหรับ proof-of-work ของเขา โครงการ เนื่องจากผู้ใช้ลงคะแนนสำหรับประวัติธุรกรรมเดียวเพื่อ [1] ความสมเหตุสมผลและ ความสม่ำเสมอของกระบวนการนี้เป็นเงื่อนไขที่สำคัญสำหรับทั้งระบบ ความปลอดภัยของรุ่นนี้มีข้อบกพร่องสองประการ อันดับแรก ต้องใช้ 51% ของเครือข่าย อำนาจการขุดให้อยู่ภายใต้การควบคุมของผู้ใช้ที่ซื่อสัตย์ ประการที่สอง ความคืบหน้าของระบบ (แก้ไขข้อบกพร่อง การแก้ไขด้านความปลอดภัย ฯลฯ...) ต้องการให้ผู้ใช้ส่วนใหญ่สนับสนุนและยอมรับ การเปลี่ยนแปลง (สิ่งนี้เกิดขึ้นเมื่อผู้ใช้อัปเดตซอฟต์แวร์กระเป๋าเงินของตน) [6].ในที่สุดการโหวตแบบเดียวกันนี้ กลไกนี้ยังใช้สำหรับการสำรวจความคิดเห็นโดยรวมเกี่ยวกับการใช้งานคุณลักษณะบางอย่าง [7] สิ่งนี้ทำให้เราสามารถคาดเดาคุณสมบัติที่จะต้องได้รับความพึงพอใจจาก proof-of-work ฟังก์ชั่นการกำหนดราคา ฟังก์ชันดังกล่าวจะต้องไม่ทำให้ผู้เข้าร่วมเครือข่ายมีนัยสำคัญ ได้เปรียบเหนือผู้เข้าร่วมรายอื่น มันต้องมีความเท่าเทียมกันระหว่างฮาร์ดแวร์ทั่วไปและสูง ต้นทุนของอุปกรณ์ที่กำหนดเอง จากตัวอย่างล่าสุด [8] เราจะเห็นว่ามีการใช้ฟังก์ชัน SHA-256 ในสถาปัตยกรรม Bitcoin ไม่มีคุณสมบัตินี้ เนื่องจากการขุดมีประสิทธิภาพมากขึ้น GPU และอุปกรณ์ ASIC เมื่อเปรียบเทียบกับ CPU ระดับสูง ดังนั้น Bitcoin จึงสร้างเงื่อนไขที่เอื้ออำนวยสำหรับช่องว่างขนาดใหญ่ระหว่างอำนาจการลงคะแนนของ ผู้เข้าร่วมเนื่องจากละเมิดหลักการ "หนึ่ง CPU - หนึ่งโหวต" เนื่องจากเจ้าของ GPU และ ASIC ครอบครอง พลังการลงคะแนนที่ใหญ่กว่ามากเมื่อเปรียบเทียบกับเจ้าของ CPU เป็นตัวอย่างคลาสสิกของ หลักการพาเรโตโดยที่ผู้เข้าร่วม 20% ของระบบควบคุมคะแนนเสียงมากกว่า 80% อาจมีคนแย้งว่าความไม่เท่าเทียมกันดังกล่าวไม่เกี่ยวข้องกับความปลอดภัยของเครือข่ายเนื่องจากไม่เป็นเช่นนั้น ผู้เข้าร่วมจำนวนน้อยที่ควบคุมคะแนนเสียงส่วนใหญ่แต่มีความซื่อสัตย์สุจริต ผู้เข้าร่วมที่สำคัญ อย่างไรก็ตาม ข้อโต้แย้งดังกล่าวค่อนข้างมีข้อบกพร่องเนื่องจากค่อนข้างจะเป็นเช่นนั้น ความเป็นไปได้ของฮาร์ดแวร์พิเศษราคาถูกที่ปรากฏมากกว่าความซื่อสัตย์ของผู้เข้าร่วมซึ่ง ก่อให้เกิดภัยคุกคาม เพื่อแสดงให้เห็นสิ่งนี้ ให้เรายกตัวอย่างต่อไปนี้ สมมุติว่าเป็นคนใจร้าย แต่ละคนได้รับพลังการขุดที่สำคัญโดยการสร้างฟาร์มขุดของตัวเองด้วยราคาถูก 2 สืบเชื้อสายมาจากแหล่งกำเนิดและผู้รับขั้นสุดท้ายอย่างไม่คลุมเครือ แม้ว่าผู้เข้าร่วมสองคนจะแลกเปลี่ยนกันก็ตาม กองทุนในทางอ้อม วิธีการค้นหาเส้นทางที่ออกแบบมาอย่างเหมาะสมจะเปิดเผยที่มาและ ผู้รับขั้นสุดท้าย ยังสงสัยว่า Bitcoin ไม่เป็นไปตามคุณสมบัติที่สอง นักวิจัยบางคน ระบุไว้ ([33, 35, 29, 31]) ว่าการวิเคราะห์ blockchain อย่างรอบคอบอาจเปิดเผยความเชื่อมโยงระหว่าง ผู้ใช้เครือข่าย Bitcoin และธุรกรรมของพวกเขา แม้ว่าจะมีหลายวิธีก็ตาม งระบุ [25] เป็นที่สงสัยว่าสามารถดึงข้อมูลส่วนบุคคลที่ซ่อนอยู่จำนวนมากออกจาก ฐานข้อมูลสาธารณะ Bitcoin ความล้มเหลวในการปฏิบัติตามคุณสมบัติทั้งสองที่ระบุไว้ข้างต้นทำให้เราสรุปได้ว่า ไม่ใช่ระบบเงินสดอิเล็กทรอนิกส์ที่ไม่เปิดเผยตัวตน แต่เป็นระบบเงินสดอิเล็กทรอนิกส์ที่ไม่เปิดเผยตัวตน ผู้ใช้มีการพัฒนาอย่างรวดเร็ว แนวทางแก้ไขเพื่อหลีกเลี่ยงข้อบกพร่องนี้ วิธีแก้ปัญหาโดยตรงสองวิธีคือ "บริการฟอก" [2] และ การพัฒนาวิธีการแบบกระจาย [3, 4] โซลูชันทั้งสองมีพื้นฐานมาจากแนวคิดเรื่องการผสม ธุรกรรมสาธารณะหลายรายการและส่งผ่านที่อยู่ตัวกลางบางแห่ง ซึ่งในทางกลับกัน ประสบข้อเสียเปรียบในการต้องมีบุคคลที่สามที่เชื่อถือได้ เมื่อเร็ว ๆ นี้ I. Miers และคณะเสนอแผนการสร้างสรรค์เพิ่มเติม [28]: “ซีโร่คอยน์” ซีโร่คอยน์ ใช้ตัวสะสมแบบเข้ารหัสทางเดียวและการพิสูจน์ที่ไม่มีความรู้ซึ่งอนุญาตให้ผู้ใช้ “แปลง” bitcoins ให้เป็นศูนย์เหรียญและใช้มันโดยใช้หลักฐานการเป็นเจ้าของที่ไม่เปิดเผยตัวตนแทน ลายเซ็นดิจิทัลที่ใช้คีย์สาธารณะที่ชัดเจน อย่างไรก็ตาม การพิสูจน์ความรู้ดังกล่าวมีความคงที่ แต่ขนาดไม่สะดวก - ประมาณ 30kb (ตามขีดจำกัด Bitcoin ของวันนี้) ซึ่งทำให้ข้อเสนอ ทำไม่ได้ ผู้เขียนยอมรับว่าโปรโตคอลนี้ไม่น่าจะได้รับการยอมรับจากคนส่วนใหญ่ Bitcoin ผู้ใช้ [5] 2.2 ฟังก์ชัน proof-of-work Bitcoin ผู้สร้าง Satoshi Nakamoto อธิบายอัลกอริธึมการตัดสินใจส่วนใหญ่ว่า "หนึ่ง CPU-หนึ่งโหวต" และใช้ฟังก์ชันการกำหนดราคาที่ผูกกับ CPU (สองเท่า SHA-256) สำหรับ proof-of-work ของเขา โครงการ เนื่องจากผู้ใช้ลงคะแนนสำหรับประวัติธุรกรรมเดียวเพื่อ [1] ความสมเหตุสมผลและ ความสม่ำเสมอของกระบวนการนี้เป็นเงื่อนไขที่สำคัญสำหรับทั้งระบบ ความปลอดภัยของรุ่นนี้มีข้อบกพร่องสองประการ อันดับแรก ต้องใช้ 51% ของเครือข่าย อำนาจการขุดให้อยู่ภายใต้การควบคุมของผู้ใช้ที่ซื่อสัตย์ ประการที่สอง ความคืบหน้าของระบบ (แก้ไขข้อบกพร่อง การแก้ไขด้านความปลอดภัย ฯลฯ...) ต้องการให้ผู้ใช้ส่วนใหญ่สนับสนุนและยอมรับ การเปลี่ยนแปลง (เกิดขึ้นเมื่อผู้ใช้อัปเดตซอฟต์แวร์กระเป๋าเงินของตน) [6].ในที่สุดการโหวตแบบเดียวกันนี้ กลไกนี้ยังใช้สำหรับการสำรวจความคิดเห็นโดยรวมเกี่ยวกับการใช้งานคุณลักษณะบางอย่าง [7] สิ่งนี้ทำให้เราสามารถคาดเดาคุณสมบัติที่จะต้องได้รับความพึงพอใจจาก proof-of-work ฟังก์ชั่นการกำหนดราคา ฟังก์ชันดังกล่าวจะต้องไม่ทำให้ผู้เข้าร่วมเครือข่ายมีนัยสำคัญ ได้เปรียบเหนือผู้เข้าร่วมรายอื่น มันต้องมีความเท่าเทียมกันระหว่างฮาร์ดแวร์ทั่วไปและสูง ต้นทุนของอุปกรณ์ที่กำหนดเอง จากตัวอย่างล่าสุด [8] เราจะเห็นว่ามีการใช้ฟังก์ชัน SHA-256 ในสถาปัตยกรรม Bitcoin ไม่มีคุณสมบัตินี้ เนื่องจากการขุดมีประสิทธิภาพมากขึ้น GPU และอุปกรณ์ ASIC เมื่อเปรียบเทียบกับ CPU ระดับสูง ดังนั้น Bitcoin จึงสร้างเงื่อนไขที่เอื้ออำนวยสำหรับช่องว่างขนาดใหญ่ระหว่างอำนาจการลงคะแนนของ ผู้เข้าร่วมเนื่องจากละเมิดหลักการ "หนึ่ง CPU - หนึ่งโหวต" เนื่องจากเจ้าของ GPU และ ASIC ครอบครอง พลังการลงคะแนนที่ใหญ่กว่ามากเมื่อเปรียบเทียบกับเจ้าของ CPU เป็นตัวอย่างคลาสสิกของ หลักการพาเรโตโดยที่ผู้เข้าร่วม 20% ของระบบควบคุมคะแนนเสียงมากกว่า 80% อาจมีคนแย้งว่าความไม่เท่าเทียมกันดังกล่าวไม่เกี่ยวข้องกับความปลอดภัยของเครือข่ายเนื่องจากไม่เป็นเช่นนั้น ผู้เข้าร่วมจำนวนน้อยที่ควบคุมคะแนนเสียงส่วนใหญ่แต่มีความซื่อสัตย์สุจริต ผู้เข้าร่วมที่สำคัญ อย่างไรก็ตาม ข้อโต้แย้งดังกล่าวค่อนข้างมีข้อบกพร่องเนื่องจากค่อนข้างจะเป็นเช่นนั้น ความเป็นไปได้ของฮาร์ดแวร์พิเศษราคาถูกที่ปรากฏมากกว่าความซื่อสัตย์ของผู้เข้าร่วมซึ่ง ก่อให้เกิดภัยคุกคาม เพื่อแสดงให้เห็นสิ่งนี้ ให้เรายกตัวอย่างต่อไปนี้ สมมุติว่าเป็นคนใจร้าย แต่ละคนได้รับพลังการขุดที่สำคัญโดยการสร้างฟาร์มขุดของตัวเองด้วยราคาถูก 2 4 สมมุติว่าหากผู้ใช้ทุกคนช่วยปกปิดตัวตนของตนเองด้วยการสร้างที่อยู่ใหม่อยู่เสมอ สำหรับทุกการชำระเงินที่ได้รับ (ซึ่งไร้สาระ แต่ในทางเทคนิคแล้วเป็นวิธีที่ "ถูกต้อง" ในการดำเนินการ) และหากผู้ใช้ทุกคนช่วยปกปิดตัวตนของคนอื่นโดยยืนกรานว่าพวกเขาจะไม่ส่งเงิน ไปยังที่อยู่ BTC เดียวกันสองครั้ง จากนั้น Bitcoin จะยังคงเพียง ตามสถานการณ์ เท่านั้นที่ผ่าน การทดสอบการเชื่อมต่อไม่ได้ ทำไม ข้อมูลผู้บริโภคสามารถใช้เพื่อระบุจำนวนที่น่าอัศจรรย์เกี่ยวกับผู้คนได้ตลอดเวลา ดูตัวอย่าง http://www.applieddatalabs.com/content/target-knows-it-shows ลองจินตนาการว่านี่คืออีก 20 ปีข้างหน้า และจินตนาการเพิ่มเติมว่า Target ไม่ได้เพิ่งรู้ เกี่ยวกับนิสัยการซื้อของคุณที่ Target แต่พวกเขาได้ขุด blockchain มาทั้งหมด การซื้อส่วนตัวของคุณด้วยกระเป๋าเงิน COINBASE ของคุณในอดีต สิบสองปี พวกเขาจะประมาณว่า "เฮ้เพื่อน คืนนี้คุณอาจจะไปซื้อยาแก้ไอก็ได้ คุณไม่ไปหรอก พรุ่งนี้จะรู้สึกดี” กรณีนี้อาจไม่เกิดขึ้นหากมีการใช้ประโยชน์จากการเรียงลำดับหลายฝ่ายอย่างถูกต้อง ดูตัวอย่างนี้โพสต์ในบล็อก: http://blog.ezyang.com/2012/07/secure-multiparty-bitcoin-anonymization/ ฉันไม่มั่นใจกับคณิตศาสตร์ในเรื่องนี้โดยสิ้นเชิง แต่ ... ทีละฉบับใช่ไหม จำเป็นต้องมีการอ้างอิง ในขณะที่โปรโตคอล Zerocoin (แบบสแตนด์อโลน) อาจไม่เพียงพอ Zerocash ดูเหมือนว่าโปรโตคอลจะใช้ธุรกรรมขนาด 1kb โครงการดังกล่าวได้รับการสนับสนุนโดย แน่นอนว่ากองทัพสหรัฐฯ และอิสราเอล ใครจะรู้เกี่ยวกับความแข็งแกร่งของมัน ในอีกทางหนึ่ง มือไม่มีใครอยากที่จะใช้จ่ายเงินโดยไม่ต้องกำกับดูแลมากกว่ากองทัพ http://zerocash-project.org/ ฉันไม่มั่นใจ... ดูตัวอย่าง http://fc14.ifca.ai/bitcoin/papers/bitcoin14_submission_12.pdf อ้างอิงจากผู้พัฒนา Cryptonote Maurice Planck (อาจเป็นนามแฝง) จาก cryptonote ฟอรั่ม: “ซีโร่คอยน์, ซีโร่แคช” นี่คือเทคโนโลยีที่ทันสมัยที่สุดฉันต้องยอมรับ ใช่คำพูด ข้างต้นมาจากการวิเคราะห์โปรโตคอลเวอร์ชันก่อนหน้า สำหรับความรู้ของฉันมันไม่ใช่ 288 แต่เป็น 384 ไบต์ แต่อย่างไรก็ตาม นี่เป็นข่าวดี พวกเขาใช้เทคนิคใหม่ล่าสุดที่เรียกว่า SNARK ซึ่งมีข้อเสียบางประการ: ตัวอย่างเช่น ฐานข้อมูลเริ่มต้นขนาดใหญ่ของพารามิเตอร์สาธารณะที่จำเป็นในการสร้างลายเซ็น (มากกว่า 1 GB) และ เวลาสำคัญที่จำเป็นในการสร้างธุรกรรม (มากกว่าหนึ่งนาที) ในที่สุดพวกเขาก็ใช้ a crypto รุ่นเยาว์ ซึ่งฉันพูดถึงไปแล้วว่าเป็นแนวคิดที่น่าโต้แย้ง: https://forum.cryptonote.org/viewtopic.php?f= " - Maurice P. พฤ. 03 เม.ย. 2557 19:56 น ฟังก์ชันที่ทำงานใน CPU และไม่เหมาะกับ GPU, FPGA หรือ ASIC การคำนวณ "ปริศนา" ที่ใช้ใน proof-of-work เรียกว่าฟังก์ชันการกำหนดราคา ฟังก์ชันต้นทุน หรือ ฟังก์ชั่นปริศนา

สืบเชื้อสายมาจากแหล่งกำเนิดและผู้รับขั้นสุดท้ายอย่างไม่คลุมเครือ แม้ว่าผู้เข้าร่วมสองคนจะแลกเปลี่ยนกันก็ตาม กองทุนในทางอ้อม วิธีการค้นหาเส้นทางที่ออกแบบมาอย่างเหมาะสมจะเปิดเผยที่มาและ ผู้รับขั้นสุดท้าย ยังสงสัยว่า Bitcoin ไม่เป็นไปตามคุณสมบัติที่สอง นักวิจัยบางคน ระบุไว้ ([33, 35, 29, 31]) ว่าการวิเคราะห์ blockchain อย่างรอบคอบอาจเปิดเผยความเชื่อมโยงระหว่าง ผู้ใช้เครือข่าย Bitcoin และธุรกรรมของพวกเขา แม้ว่าจะมีหลายวิธีก็ตาม โต้แย้ง [25] เป็นที่สงสัยว่าสามารถดึงข้อมูลส่วนบุคคลที่ซ่อนอยู่จำนวนมากออกจาก ฐานข้อมูลสาธารณะ Bitcoin ความล้มเหลวในการปฏิบัติตามคุณสมบัติทั้งสองที่ระบุไว้ข้างต้นทำให้เราสรุปได้ว่า ไม่ใช่ระบบเงินสดอิเล็กทรอนิกส์ที่ไม่เปิดเผยตัวตน แต่เป็นระบบเงินสดอิเล็กทรอนิกส์ที่ไม่เปิดเผยตัวตน ผู้ใช้มีการพัฒนาอย่างรวดเร็ว แนวทางแก้ไขเพื่อหลีกเลี่ยงข้อบกพร่องนี้ วิธีแก้ปัญหาโดยตรงสองประการคือ "บริการฟอก" [2] และ การพัฒนาวิธีการแบบกระจาย [3, 4] โซลูชันทั้งสองมีพื้นฐานมาจากแนวคิดเรื่องการผสม ธุรกรรมสาธารณะหลายรายการและส่งผ่านที่อยู่ตัวกลางบางแห่ง ซึ่งในทางกลับกัน ประสบข้อเสียเปรียบในการต้องมีบุคคลที่สามที่เชื่อถือได้ เมื่อเร็ว ๆ นี้ I. Miers และคณะเสนอแผนการสร้างสรรค์เพิ่มเติม [28]: “ซีโร่คอยน์” ซีโร่คอยน์ ใช้ตัวสะสมแบบเข้ารหัสทางเดียวและการพิสูจน์ที่ไม่มีความรู้ซึ่งอนุญาตให้ผู้ใช้ “แปลง” bitcoins ให้เป็นศูนย์เหรียญและใช้มันโดยใช้หลักฐานการเป็นเจ้าของที่ไม่เปิดเผยตัวตนแทน ลายเซ็นดิจิทัลที่ใช้คีย์สาธารณะที่ชัดเจน อย่างไรก็ตาม การพิสูจน์ความรู้ดังกล่าวมีความคงที่ แต่ขนาดไม่สะดวก - ประมาณ 30kb (ขึ้นอยู่กับขีดจำกัด Bitcoin ของวันนี้) ซึ่งทำให้ข้อเสนอ ทำไม่ได้ ผู้เขียนยอมรับว่าโปรโตคอลนี้ไม่น่าจะได้รับการยอมรับจากคนส่วนใหญ่ Bitcoin ผู้ใช้ [5] 2.2 ฟังก์ชัน proof-of-work Bitcoin ผู้สร้าง Satoshi Nakamoto อธิบายอัลกอริธึมการตัดสินใจส่วนใหญ่ว่า "หนึ่ง CPU-หนึ่งโหวต" และใช้ฟังก์ชันการกำหนดราคาที่ผูกกับ CPU (สองเท่า SHA-256) สำหรับ proof-of-work ของเขา โครงการ เนื่องจากผู้ใช้ลงคะแนนสำหรับประวัติธุรกรรมเดียวเพื่อ [1] ความสมเหตุสมผลและ ความสม่ำเสมอของกระบวนการนี้เป็นเงื่อนไขที่สำคัญสำหรับทั้งระบบ ความปลอดภัยของรุ่นนี้มีข้อบกพร่องสองประการ อันดับแรก ต้องใช้ 51% ของเครือข่าย อำนาจการขุดให้อยู่ภายใต้การควบคุมของผู้ใช้ที่ซื่อสัตย์ ประการที่สอง ความคืบหน้าของระบบ (แก้ไขข้อบกพร่อง การแก้ไขด้านความปลอดภัย ฯลฯ...) ต้องการให้ผู้ใช้ส่วนใหญ่สนับสนุนและยอมรับ การเปลี่ยนแปลง (เกิดขึ้นเมื่อผู้ใช้อัปเดตซอฟต์แวร์กระเป๋าเงินของตน) [6].ในที่สุดการโหวตแบบเดียวกันนี้ กลไกนี้ยังใช้สำหรับการสำรวจความคิดเห็นโดยรวมเกี่ยวกับการใช้งานคุณลักษณะบางอย่าง [7] สิ่งนี้ทำให้เราสามารถคาดเดาคุณสมบัติที่จะต้องได้รับความพึงพอใจจาก proof-of-work ฟังก์ชั่นการกำหนดราคา ฟังก์ชันดังกล่าวจะต้องไม่ทำให้ผู้เข้าร่วมเครือข่ายมีนัยสำคัญ ได้เปรียบเหนือผู้เข้าร่วมรายอื่น มันต้องมีความเท่าเทียมกันระหว่างฮาร์ดแวร์ทั่วไปและสูง ต้นทุนของอุปกรณ์ที่กำหนดเอง จากตัวอย่างล่าสุด [8] เราจะเห็นว่ามีการใช้ฟังก์ชัน SHA-256 ในสถาปัตยกรรม Bitcoin ไม่มีคุณสมบัตินี้ เนื่องจากการขุดมีประสิทธิภาพมากขึ้น GPU และอุปกรณ์ ASIC เมื่อเปรียบเทียบกับ CPU ระดับสูง ดังนั้น Bitcoin จึงสร้างเงื่อนไขที่เอื้ออำนวยสำหรับช่องว่างขนาดใหญ่ระหว่างอำนาจการลงคะแนนของ ผู้เข้าร่วมเนื่องจากละเมิดหลักการ "หนึ่ง CPU - หนึ่งโหวต" เนื่องจากเจ้าของ GPU และ ASIC ครอบครอง พลังการลงคะแนนที่ใหญ่กว่ามากเมื่อเปรียบเทียบกับเจ้าของ CPU เป็นตัวอย่างคลาสสิกของ หลักการพาเรโตโดยที่ผู้เข้าร่วม 20% ของระบบควบคุมคะแนนเสียงมากกว่า 80% อาจมีคนแย้งว่าความไม่เท่าเทียมกันดังกล่าวไม่เกี่ยวข้องกับความปลอดภัยของเครือข่ายเนื่องจากไม่เป็นเช่นนั้น ผู้เข้าร่วมจำนวนน้อยที่ควบคุมคะแนนเสียงส่วนใหญ่แต่มีความซื่อสัตย์สุจริต ผู้เข้าร่วมที่สำคัญ อย่างไรก็ตาม ข้อโต้แย้งดังกล่าวค่อนข้างมีข้อบกพร่องเนื่องจากค่อนข้างจะเป็นเช่นนั้น ความเป็นไปได้ของฮาร์ดแวร์พิเศษราคาถูกที่ปรากฏมากกว่าความซื่อสัตย์ของผู้เข้าร่วมซึ่ง ก่อให้เกิดภัยคุกคาม เพื่อแสดงให้เห็นสิ่งนี้ ให้เรายกตัวอย่างต่อไปนี้ สมมุติว่าเป็นคนใจร้าย แต่ละคนได้รับพลังการขุดที่สำคัญโดยการสร้างฟาร์มขุดของตัวเองด้วยราคาถูก 2 สืบเชื้อสายมาจากแหล่งกำเนิดและผู้รับขั้นสุดท้ายอย่างไม่คลุมเครือ แม้ว่าผู้เข้าร่วมสองคนจะแลกเปลี่ยนกันก็ตาม กองทุนในทางอ้อม วิธีการค้นหาเส้นทางที่ออกแบบมาอย่างเหมาะสมจะเปิดเผยที่มาและ ผู้รับขั้นสุดท้าย ยังสงสัยว่า Bitcoin ไม่เป็นไปตามคุณสมบัติที่สอง นักวิจัยบางคน ระบุ ([33, 35, 29, 31]) ว่าการวิเคราะห์ blockchain อย่างรอบคอบอาจเปิดเผยความเชื่อมโยงระหว่าง ผู้ใช้เครือข่าย Bitcoin และธุรกรรมของพวกเขา แม้ว่าจะมีหลายวิธีก็ตาม งระบุ [25] เป็นที่สงสัยว่าสามารถดึงข้อมูลส่วนบุคคลที่ซ่อนอยู่จำนวนมากออกจาก ฐานข้อมูลสาธารณะ Bitcoin ความล้มเหลวในการปฏิบัติตามคุณสมบัติทั้งสองที่ระบุไว้ข้างต้นทำให้เราสรุปได้ว่า ไม่ใช่ระบบเงินสดอิเล็กทรอนิกส์ที่ไม่เปิดเผยตัวตน แต่เป็นระบบเงินสดอิเล็กทรอนิกส์ที่ไม่เปิดเผยตัวตน ผู้ใช้มีการพัฒนาอย่างรวดเร็ว แนวทางแก้ไขเพื่อหลีกเลี่ยงข้อบกพร่องนี้ วิธีแก้ปัญหาโดยตรงสองวิธีคือ "บริการฟอก" [2] และ การพัฒนาวิธีการแบบกระจาย [3, 4] โซลูชันทั้งสองมีพื้นฐานมาจากแนวคิดเรื่องการผสม ธุรกรรมสาธารณะหลายรายการและส่งผ่านที่อยู่ตัวกลางบางแห่ง ซึ่งในทางกลับกัน ประสบข้อเสียเปรียบในการต้องมีบุคคลที่สามที่เชื่อถือได้ เมื่อเร็ว ๆ นี้ I. Miers และคณะเสนอแผนการสร้างสรรค์เพิ่มเติม [28]: “ซีโร่คอยน์” ซีโร่คอยน์ ใช้ตัวสะสมแบบเข้ารหัสทางเดียวและการพิสูจน์ที่ไม่มีความรู้ซึ่งอนุญาตให้ผู้ใช้ “แปลง” bitcoins ให้เป็นศูนย์เหรียญและใช้มันโดยใช้หลักฐานการเป็นเจ้าของที่ไม่เปิดเผยตัวตนแทน ลายเซ็นดิจิทัลที่ใช้คีย์สาธารณะที่ชัดเจน อย่างไรก็ตาม การพิสูจน์ความรู้ดังกล่าวมีความคงที่ แต่ขนาดไม่สะดวก - ประมาณ 30kb (ขึ้นอยู่กับขีดจำกัด Bitcoin ของวันนี้) ซึ่งทำให้ข้อเสนอ ทำไม่ได้ ผู้เขียนยอมรับว่าโปรโตคอลนี้ไม่น่าจะได้รับการยอมรับจากคนส่วนใหญ่ Bitcoin ผู้ใช้ [5] 2.2 ฟังก์ชัน proof-of-work Bitcoin ผู้สร้าง Satoshi Nakamoto อธิบายอัลกอริธึมการตัดสินใจส่วนใหญ่ว่า "หนึ่ง CPU-หนึ่งโหวต" และใช้ฟังก์ชันการกำหนดราคาที่ผูกกับ CPU (สองเท่า SHA-256) สำหรับ proof-of-work ของเขา โครงการ เนื่องจากผู้ใช้ลงคะแนนสำหรับประวัติธุรกรรมเดียวเพื่อ [1] ความสมเหตุสมผลและ ความสม่ำเสมอของกระบวนการนี้เป็นเงื่อนไขที่สำคัญสำหรับทั้งระบบ ความปลอดภัยของรุ่นนี้มีข้อบกพร่องสองประการ อันดับแรก ต้องใช้ 51% ของเครือข่าย อำนาจการขุดให้อยู่ภายใต้การควบคุมของผู้ใช้ที่ซื่อสัตย์ ประการที่สอง ความคืบหน้าของระบบ (แก้ไขข้อบกพร่อง การแก้ไขด้านความปลอดภัย ฯลฯ...) ต้องการให้ผู้ใช้ส่วนใหญ่สนับสนุนและยอมรับ การเปลี่ยนแปลง (เกิดขึ้นเมื่อผู้ใช้อัปเดตซอฟต์แวร์กระเป๋าเงินของตน) [6].ในที่สุดการโหวตแบบเดียวกันนี้ กลไกนี้ยังใช้สำหรับการสำรวจความคิดเห็นโดยรวมเกี่ยวกับการใช้งานคุณลักษณะบางอย่าง [7] สิ่งนี้ทำให้เราสามารถคาดเดาคุณสมบัติที่จะต้องได้รับความพึงพอใจจาก proof-of-work ฟังก์ชั่นการกำหนดราคา ฟังก์ชันดังกล่าวจะต้องไม่ทำให้ผู้เข้าร่วมเครือข่ายมีนัยสำคัญ ได้เปรียบเหนือผู้เข้าร่วมรายอื่น มันต้องมีความเท่าเทียมกันระหว่างฮาร์ดแวร์ทั่วไปและสูง ต้นทุนของอุปกรณ์ที่กำหนดเอง จากตัวอย่างล่าสุด [8] เราจะเห็นว่ามีการใช้ฟังก์ชัน SHA-256 ในสถาปัตยกรรม Bitcoin ไม่มีคุณสมบัตินี้ เนื่องจากการขุดมีประสิทธิภาพมากขึ้น GPU และอุปกรณ์ ASIC เมื่อเปรียบเทียบกับ CPU ระดับสูง ดังนั้น Bitcoin จึงสร้างเงื่อนไขที่เอื้ออำนวยสำหรับช่องว่างขนาดใหญ่ระหว่างอำนาจการลงคะแนนของ ผู้เข้าร่วมเนื่องจากละเมิดหลักการ "หนึ่ง CPU - หนึ่งโหวต" เนื่องจากเจ้าของ GPU และ ASIC ครอบครอง พลังการลงคะแนนที่ใหญ่กว่ามากเมื่อเปรียบเทียบกับเจ้าของ CPU เป็นตัวอย่างคลาสสิกของ หลักการพาเรโตโดยที่ผู้เข้าร่วม 20% ของระบบควบคุมคะแนนเสียงมากกว่า 80% อาจมีคนแย้งว่าความไม่เท่าเทียมกันดังกล่าวไม่เกี่ยวข้องกับความปลอดภัยของเครือข่ายเนื่องจากไม่เป็นเช่นนั้น ผู้เข้าร่วมจำนวนน้อยที่ควบคุมคะแนนเสียงส่วนใหญ่แต่มีความซื่อสัตย์สุจริต ผู้เข้าร่วมที่สำคัญ อย่างไรก็ตาม ข้อโต้แย้งดังกล่าวค่อนข้างมีข้อบกพร่องเนื่องจากค่อนข้างจะเป็นเช่นนั้น ความเป็นไปได้ของฮาร์ดแวร์พิเศษราคาถูกที่ปรากฏมากกว่าความซื่อสัตย์ของผู้เข้าร่วมซึ่ง ก่อให้เกิดภัยคุกคาม เพื่อแสดงให้เห็นสิ่งนี้ ให้เรายกตัวอย่างต่อไปนี้ สมมุติว่าเป็นคนใจร้าย แต่ละคนได้รับพลังการขุดที่สำคัญโดยการสร้างฟาร์มขุดของตัวเองด้วยราคาถูก 2 ความเห็นหน้า 2

CryptoNote Teknolojisi

Artık Bitcoin teknolojisinin sınırlamalarını ele aldığımıza göre, şu konulara odaklanacağız: CryptoNote'un özelliklerini sunuyor.

เทคโนโลยี CryptoNote

ตอนนี้เราได้ครอบคลุมข้อจำกัดของเทคโนโลยี Bitcoin แล้ว เราจะมุ่งเน้นไปที่ นำเสนอคุณสมบัติของ CryptoNote

Takip Edilemeyen İşlemler

Bu bölümde, hem izlenemezliği hem de koşulları karşılayan tamamen anonim işlemlere yönelik bir plan öneriyoruz. ve bağlanamazlık koşulları. Çözümümüzün önemli bir özelliği özerkliğidir: gönderen işlemlerini gerçekleştirmek için diğer kullanıcılarla veya güvenilir bir üçüncü tarafla işbirliği yapması gerekmemektedir; dolayısıyla her katılımcı bağımsız olarak bir kapak trafiği üretir. 4.1 Literatür taraması Planımız grup imzası adı verilen kriptografik temele dayanıyor. İlk kez sunulan D. Chaum ve E. van Heyst [19], bir kullanıcının grup adına mesajını imzalamasına olanak tanır. Kullanıcı mesajı imzaladıktan sonra (doğrulama amacıyla) kendi geneline ait değil 1Buna "yumuşak limit" denir; yeni bloklar oluşturmak için referans istemci kısıtlaması. Zor maksimum olası blok boyutu 1 MB'tı 4 Gerektiğinde bunları kullanmak ana dezavantajlara neden olur. Maalesef ne zaman geleceğini tahmin etmek zor. sabitlerin değiştirilmesi gerekebilir ve bunların değiştirilmesi korkunç sonuçlara yol açabilir. Felaket sonuçlara yol açan sabit kodlanmış bir limit değişikliğine iyi bir örnek, bloktur. boyut sınırı 250kb1 olarak ayarlandı. Bu limit yaklaşık 10.000 standart işlemi tutmaya yetiyordu. içinde 2013 yılının başında bu sınıra neredeyse ulaşıldı ve bu limitin artırılması konusunda anlaşmaya varıldı. Sınır. Değişiklik cüzdan 0.8 sürümünde uygulandı ve 24 blokluk zincir bölünmesiyle sona erdi ve başarılı bir çift harcama saldırısı [9]. Hata Bitcoin protokolünde olmasa da bunun yerine veritabanı motorunda, eğer varsa basit bir stres testiyle kolayca yakalanabilirdi. yapay olarak getirilmiş blok boyutu sınırı yoktur. Sabitler ayrıca bir tür merkezileştirme noktası görevi görür. Eşler arası doğasına rağmen Bitcoin, düğümlerin büyük çoğunluğu tarafından geliştirilen resmi referans istemcisi [10] kullanılıyor küçük bir grup insan. Bu grup protokolde değişiklik yapılmasına karar verir ve çoğu insan bu değişiklikleri “doğruluklarına” bakılmaksızın kabul ediyor. Bazı kararlar neden oldu hararetli tartışmalar ve hatta boykot çağrıları [11], bu da topluluğun ve geliştiriciler bazı önemli noktalarda aynı fikirde olmayabilir. Bu nedenle bir protokole sahip olmak mantıklı görünüyor Bu sorunları önlemenin olası bir yolu olarak kullanıcı tarafından yapılandırılabilen ve kendi kendini ayarlayan değişkenler kullanılır. 2.5 Hacimli komut dosyaları Bitcoin'deki komut dosyası sistemi ağır ve karmaşık bir özelliktir. Potansiyel olarak kişinin yaratmasına izin verir karmaşık işlemler [12], ancak güvenlik endişeleri nedeniyle bazı özellikleri devre dışı bırakıldı ve bazıları hiç kullanılmamış bile [13]. Komut dosyası (hem gönderici hem de alıcı kısımları dahil) Bitcoin'deki en popüler işlem için şuna benzer: OP DUP OP HASH160 OP EQUALVERIFY OP CHECKSIG. Komut dosyası 164 bayt uzunluğundadır ve tek amacı alıcının bu bilgiye sahip olup olmadığını kontrol etmektir. İmzasını doğrulamak için gizli anahtar gerekiyor. 3 CryptoNote Teknolojisi Artık Bitcoin teknolojisinin sınırlamalarını ele aldığımıza göre, şu konulara odaklanacağız: CryptoNote'un özelliklerini sunuyor. 4 Takip Edilemeyen İşlemler Bu bölümde, hem izlenemezliği hem de koşulları karşılayan tamamen anonim işlemlere yönelik bir plan öneriyoruz. ve bağlanamazlık koşulları. Çözümümüzün önemli bir özelliği özerkliğidir: gönderen işlemlerini gerçekleştirmek için diğer kullanıcılarla veya güvenilir bir üçüncü tarafla işbirliği yapması gerekmemektedir; dolayısıyla her katılımcı bağımsız olarak bir kapak trafiği üretir. 4.1 Literatür taraması Planımız grup imzası adı verilen kriptografik temele dayanıyor. İlk kez sunulan D. Chaum ve E. van Heyst [19], bir kullanıcının grup adına mesajını imzalamasına olanak tanır. Kullanıcı mesajı imzaladıktan sonra (doğrulama amacıyla) kendi geneline ait değil 1Buna "yumuşak limit" denir; yeni bloklar oluşturmak için referans istemci kısıtlaması. Zor maksimum olası blok boyutu 1 MB'tı 4 7 Geriye dönüp bakıldığında, kodda blok boyutunu sabit bir sınır haline getirmenin büyük bir hata olduğu görülüyor. Visa ve Mastercard yüzbinlerce olmasa da binlerce işlemi gerçekleştirebilir saniyede. Ancak işlemler stokastik bir süreçte, bazen büyük patlamalarla gerçekleşir. bazen saatlerce susmak. Bitcoin değişiminin hacmini düşünün. Gerektiğinde blok boyutunu dinamik olarak artıran bir sistem tasarlamak harika bir fikir gibi görünüyor artan işlem trafiğine uyum sağlamak ve gerektiğinde dinamik olarak azaltmak bant genişliği verimliliğini artırın. Şimdi bu kavramı tüm sistem parametrelerine uygulayın. Ve bunu korumaya dikkat ettiğimiz sürece Balıkçılık sisteminin kontrolden çıkması, buharika çalışabilir. https://github.com/bitcoin/bips/blob/master/bip-0050.mediawiki Daha önce de belirtildiği gibi, eğer değişkenler kendi kendine ayarlanıyorsa, bazı kontrollerin uygulanması gerekir. sistemin çılgınca kontrolden çıkmasını önleyin. Buna ulaşacağız. Bu bir Wikipedia makalesi olsaydı "STUB" olarak etiketlenirdi. Her ne kadar kesinlikle içinde olsak da "Bitcoin Sorunları"nı tanıtan bölümün burada biraz detaylandırılmasını istiyorum. Neden Basit bir "gizli anahtarı kontrol etme" görevi için 164 bayt kabul edilemez mi? Ne kadar küçük olabilirler makul bir kodlama dili? Yine de bilgisayar bilimcisi değilim. http://download.springer.com/static/pdf/412/chp%253A10.1007%252F3-540-46416-6_22.pdf?auth66=140 Açıklandığı gibi grup imzaları bir grup yöneticisi gerektirir. Grup yöneticisi yetenekli herhangi bir imzalayanın anonimliğinin iptal edilmesi. Bu nedenle, bir grupta yerleşik bir merkezileşme vardır. imza şeması.

anahtar, ancak grubundaki tüm kullanıcıların anahtarları. Doğrulayıcının, gerçek imzalayanın bir kişi olduğuna ikna olması grubun üyesidir, ancak yalnızca imzalayanın kimliğini belirleyemez. Orijinal protokol, güvenilir bir üçüncü tarafa (Grup Yöneticisi adı verilen) ihtiyaç duyuyordu ve o da imzalayanın izini sürebilecek tek kişi. Halka imza adı verilen bir sonraki sürüm tanıtıldı Rivest ve diğerleri tarafından. [34]'da, Grup Yöneticisi olmayan ve anonimlik içermeyen özerk bir plandı iptal. Bu şemanın çeşitli modifikasyonları daha sonra ortaya çıktı: bağlanabilir halka imzası [26, 27, 17] iki imzanın aynı grup üyesi tarafından üretilip üretilmediğini belirlemeye izin verildi, izlenebilir halka imza [24, 23] imzalayanın izini sürme olanağı sağlayarak aşırı anonimliği sınırladı aynı meta bilgiye (veya [24] anlamında "etiket") ilişkin iki mesaj. Benzer bir kriptografik yapı aynı zamanda geçici grup imzası olarak da bilinir [16, 38]. o Grup/halka imza şemaları daha çok bir grup/halka imza şemasını ima ederken, keyfi grup oluşumunu vurgulamaktadır. sabit üye kümesi. Çözümümüz çoğunlukla E. Fujisaki'nin "İzlenebilir halka imzası" çalışmasına dayanmaktadır. ve K. Suzuki [24]. Orijinal algoritmayı ve yaptığımız değişikliği ayırt etmek için ikincisini tek seferlik zil imzası olarak adlandırın ve kullanıcının yalnızca bir geçerli zil sesi üretme yeteneğini vurgulayın özel anahtarının altına imza atar. İzlenebilirlik özelliğini zayıflattık ve bağlanabilirliği koruduk yalnızca tek seferliklik sağlamak için: genel anahtar birçok yabancı doğrulama setinde görünebilir ve özel anahtar benzersiz bir anonim imza oluşturmak için kullanılabilir. Çift harcama durumunda Bu iki imza birbirine bağlanacaktır ancak imzalayanın açıklanmasına gerek yoktur bizim amaçlarımız için. 4.2 Tanımlar 4.2.1 Eliptik eğri parametreleri Temel imza algoritmamız olarak, geliştirilen ve geliştirilen hızlı EdDSA şemasını kullanmayı seçtik. D.J. tarafından uygulandı. Bernstein ve ark. [18]. Bitcoin'nin ECDSA'sı gibi eliptik eğriyi temel alır ayrık logaritma problemi olduğundan, şemamız gelecekte Bitcoin'ye de uygulanabilir. Ortak parametreler şunlardır: q: bir asal sayı; q = 2255 −19; d: Fq'nun bir elemanı; d = −121665/121666; E: eliptik bir eğri denklemi; −x2 + y2 = 1 + dx2y2; G: bir taban noktası; G = (x, −4/5); l: taban noktasının asal sırası; l = 2252 + 27742317777372353535851937790883648493; \(H_s\): kriptografik bir hash işlevi \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): deterministik bir hash fonksiyonu \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\). 4.2.2 Terminoloji Gelişmiş gizlilik, Bitcoin varlıklarla karıştırılmaması gereken yeni bir terminoloji gerektirir. özel ec-anahtarı standart bir eliptik eğri özel anahtarıdır: bir sayı \(a \in [1, l - 1]\); genel ec-anahtarı standart bir eliptik eğridir genel anahtar: bir nokta A = aG; tek kullanımlık anahtar çifti, bir çift özel ve genel ec anahtarıdır; 5 anahtar, ancak grubundaki tüm kullanıcıların anahtarları. Doğrulayıcının, gerçek imzalayanın bir kişi olduğuna ikna olması grubun üyesidir, ancak yalnızca imzalayanın kimliğini belirleyemez. Orijinal protokol, güvenilir bir üçüncü tarafa (Grup Yöneticisi adı verilen) ihtiyaç duyuyordu ve o da imzalayanın izini sürebilecek tek kişi. Halka imza adı verilen bir sonraki sürüm tanıtıldı Rivest ve diğerleri tarafından. [34]'da, Grup Yöneticisi olmayan ve anonimlik içermeyen özerk bir plandı iptal. Bu şemanın çeşitli modifikasyonları daha sonra ortaya çıktı: bağlanabilir halka imzası [26, 27, 17] iki imzanın aynı grup üyesi tarafından üretilip üretilmediğini belirlemeye izin verildi, izlenebilir halka imza [24, 23] imzalayanın izini sürme olanağı sağlayarak aşırı anonimliği sınırladı aynı meta bilgiye (veya [24] anlamında "etiket") ilişkin iki mesaj. Benzer bir kriptografik yapı aynı zamanda geçici grup imzası olarak da bilinir [16, 38]. o Grup/halka imza şemaları daha çok bir grup/halka imza şemasını ima ederken, keyfi grup oluşumunu vurgulamaktadır. sabit üye kümesi. Çözümümüz çoğunlukla E. Fujisaki'nin "İzlenebilir halka imzası" çalışmasına dayanmaktadır. ve K. Suzuki [24]. Orijinal algoritmayı ve yaptığımız değişikliği ayırt etmek için ikincisini tek seferlik zil imzası olarak adlandırın ve kullanıcının yalnızca bir geçerli zil sesi üretme yeteneğini vurgulayın özel anahtarının altına imza atar. İzlenebilirlik özelliğini zayıflattık ve bağlanabilirliği koruduk yalnızca tek seferliklik sağlamak için: genel anahtar birçok yabancı doğrulama setinde görünebilir ve özel anahtar benzersiz bir anonim imza oluşturmak için kullanılabilir. Çift harcama durumunda Bu iki imza birbirine bağlanacaktır ancak imzalayanın açıklanmasına gerek yoktur bizim amaçlarımız için. 4.2 Tanımlar 4.2.1 Eliptik eğri parametreleri Temel imza algoritmamız olarak seçiyoruze geliştirilen ve geliştirilen hızlı EdDSA şemasını kullanmak D.J. tarafından uygulandı. Bernstein ve ark. [18]. Bitcoin'nin ECDSA'sı gibi eliptik eğriyi temel alır ayrık logaritma problemi olduğundan, şemamız gelecekte Bitcoin'ye de uygulanabilir. Ortak parametreler şunlardır: q: bir asal sayı; q = 2255 −19; d: Fq'nun bir elemanı; d = −121665/121666; E: eliptik bir eğri denklemi; −x2 + y2 = 1 + dx2y2; G: bir taban noktası; G = (x, −4/5); l: taban noktasının asal sırası; l = 2252 + 27742317777372353535851937790883648493; \(H_s\): kriptografik bir hash işlevi \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): deterministik bir hash fonksiyonu \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\). 4.2.2 Terminoloji Gelişmiş gizlilik, Bitcoin varlıklarla karıştırılmaması gereken yeni bir terminoloji gerektirir. özel ec-anahtarı standart bir eliptik eğri özel anahtarıdır: bir sayı \(a \in [1, l - 1]\); genel ec-anahtarı standart bir eliptik eğridir genel anahtar: bir nokta A = aG; tek kullanımlık anahtar çifti, bir çift özel ve genel ec anahtarıdır; 5 8 Yüzük imzası şu şekilde çalışır: Alex, işvereniyle ilgili bir mesajı WikiLeaks'e sızdırmak ister. Şirketindeki her çalışanın özel/genel anahtar çifti (Ri, Ui) vardır. O besteliyor girişi mesajı, m, özel anahtarı, Ri ve HERKE\(S'\)inki olarak ayarlanan imzası ortak anahtarlar, (Ui;i=1...n). Herkes (herhangi bir özel anahtar bilmeden) bunu kolayca doğrulayabilir İmzayı oluşturmak için bir çift (Rj, Uj) kullanılmış olmalı... çalışan biri Alex'in işvereni için... ama hangisi olabileceğini anlamak aslında rastgele bir tahmin. http://en.wikipedia.org/wiki/Ring_signature#Crypto-currencies http://link.springer.com/chapter/10.1007/3-540-45682-1_32#page-1 http://link.springer.com/chapter/10.1007/11424826_65 http://link.springer.com/chapter/10.1007/978-3-540-27800-9_28 http://link.springer.com/chapter/10.1007%2F11774716_9 Burada açıklanan bağlanabilir halka imzasının "bağlanamaz" ifadesinin tam tersi olduğuna dikkat edin. yukarıda açıklanmıştır. Burada iki mesajı yakalıyoruz ve aynı olup olmadığını belirleyebiliyoruz. taraf gönderdi, ancak yine de o tarafın kim olduğunu belirleyemeyiz.

Cryptonote'u oluşturmak için kullanılan "bağlanamaz" tanımı, Cryptonote'u oluşturup oluşturmadığımızı belirleyemeyeceğimiz anlamına gelir. onları aynı taraf alıyor. Dolayısıyla burada gerçekte olan DÖRT şeyin devam etmesidir. Bir sistem bağlanabilir veya gönderenin olup olmadığını belirlemenin mümkün olup olmadığına bağlı olarak bağlantı kurulamaz. iki mesaj aynıdır (bunun anonimliğin iptal edilmesini gerektirip gerektirmediğine bakılmaksızın). Ve bir sistemin mümkün olup olmamasına bağlı olarak bağlantısız veya bağlantısız olabilir. iki mesajın alıcısının aynı olup olmadığına karar verin (olup olmadığına bakılmaksızın) bu, anonimliğin iptal edilmesini gerektirir). Lütfen bu korkunç terminoloji için beni suçlamayın. Grafik teorisyenleri muhtemelen memnun oldum. Bazılarınız "alıcıya bağlanabilirlik" yerine "göndere bağlanabilirlik" konusunda daha rahat olabilir. http://link.springer.com/chapter/10.1007/978-3-540-71677-8_13 Bunu okuduğumda bu aptalca bir özellik gibi geldi. Daha sonra bunun bir özellik olabileceğini okudum. elektronik oylama ve bu mantıklı görünüyordu. Bu açıdan bakınca çok hoş. Ama ben izlenebilir halka imzaların bilinçli olarak uygulanması konusunda tam olarak emin değilim. http://search.ieice.org/bin/summary.php?id=e95-a_1_151

anahtar, ancak grubundaki tüm kullanıcıların anahtarları. Doğrulayıcının, gerçek imzalayanın bir kişi olduğuna ikna olması grubun üyesidir, ancak yalnızca imzalayanın kimliğini belirleyemez. Orijinal protokol, güvenilir bir üçüncü tarafa (Grup Yöneticisi adı verilen) ihtiyaç duyuyordu ve o da imzalayanın izini sürebilecek tek kişi. Halka imza adı verilen bir sonraki sürüm tanıtıldı Rivest ve diğerleri tarafından. [34]'de, Grup Yöneticisi olmayan ve anonimlik içermeyen özerk bir plandı iptal. Bu şemanın çeşitli modifikasyonları daha sonra ortaya çıktı: bağlanabilir halka imzası [26, 27, 17] iki imzanın aynı grup üyesi tarafından üretilip üretilmediğini belirlemeye izin verildi, izlenebilir halka imza [24, 23] imzalayanın izini sürme olanağı sağlayarak aşırı anonimliği sınırladı aynı meta bilgiye (veya [24] anlamında "etiket") ilişkin iki mesaj. Benzer bir kriptografik yapı aynı zamanda geçici grup imzası olarak da bilinir [16, 38]. o Grup/halka imza şemaları daha çok bir grup/halka imza şemasını ima ederken, keyfi grup oluşumunu vurgulamaktadır. sabit üye kümesi. Çözümümüz çoğunlukla E. Fujisaki'nin "İzlenebilir halka imzası" çalışmasına dayanmaktadır. ve K. Suzuki [24]. Orijinal algoritmayı ve yaptığımız değişikliği ayırt etmek için ikincisini tek seferlik zil imzası olarak adlandırın ve kullanıcının yalnızca bir geçerli zil sesi üretme yeteneğini vurgulayın özel anahtarının altına imza atar. İzlenebilirlik özelliğini zayıflattık ve bağlanabilirliği koruduk yalnızca tek seferliklik sağlamak için: genel anahtar birçok yabancı doğrulama setinde görünebilir ve özel anahtar benzersiz bir anonim imza oluşturmak için kullanılabilir. Çift harcama durumunda Bu iki imza birbirine bağlanacaktır ancak imzalayanın açıklanmasına gerek yoktur bizim amaçlarımız için. 4.2 Tanımlar 4.2.1 Eliptik eğri parametreleri Temel imza algoritmamız olarak, geliştirilen ve geliştirilen hızlı EdDSA şemasını kullanmayı seçtik. D.J. tarafından uygulandı. Bernstein ve ark. [18]. Bitcoin'nin ECDSA'sı gibi eliptik eğriyi temel alır ayrık logaritma problemi olduğundan, şemamız gelecekte Bitcoin'ye de uygulanabilir. Ortak parametreler şunlardır: q: bir asal sayı; q = 2255 −19; d: Fq'nun bir elemanı; d = −121665/121666; E: eliptik bir eğri denklemi; −x2 + y2 = 1 + dx2y2; G: bir taban noktası; G = (x, −4/5); l: taban noktasının asal sırası; l = 2252 + 27742317777372353535851937790883648493; \(H_s\): kriptografik bir hash işlevi \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): deterministik bir hash fonksiyonu \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\). 4.2.2 Terminoloji Gelişmiş gizlilik, Bitcoin varlıklarla karıştırılmaması gereken yeni bir terminoloji gerektirir. özel ec-anahtarı standart bir eliptik eğri özel anahtarıdır: bir sayı \(a \in [1, l - 1]\); genel ec-anahtarı standart bir eliptik eğridir genel anahtar: bir nokta A = aG; tek kullanımlık anahtar çifti, bir çift özel ve genel ec anahtarıdır; 5 anahtar, ancak grubundaki tüm kullanıcıların anahtarları. Doğrulayıcının, gerçek imzalayanın bir kişi olduğuna ikna olması grubun üyesidir, ancak yalnızca imzalayanın kimliğini belirleyemez. Orijinal protokol, güvenilir bir üçüncü tarafa (Grup Yöneticisi adı verilen) ihtiyaç duyuyordu ve o da imzalayanın izini sürebilecek tek kişi. Halka imza adı verilen bir sonraki sürüm tanıtıldı Rivest ve diğerleri tarafından. [34]'de, Grup Yöneticisi olmayan ve anonimlik içermeyen özerk bir plandı iptal. Bu şemanın çeşitli modifikasyonları daha sonra ortaya çıktı: bağlanabilir halka imzası [26, 27, 17] iki imzanın aynı grup üyesi tarafından üretilip üretilmediğini belirlemeye izin verildi, izlenebilir halka imza [24, 23] imzalayanın izini sürme olanağı sağlayarak aşırı anonimliği sınırladı aynı meta bilgiye (veya [24] anlamında "etiket") ilişkin iki mesaj. Benzer bir kriptografik yapı aynı zamanda geçici grup imzası olarak da bilinir [16, 38]. o Grup/halka imza şemaları daha çok bir grup/halka imza şemasını ima ederken, keyfi grup oluşumunu vurgulamaktadır. sabit üye kümesi. Çözümümüz çoğunlukla E. Fujisaki'nin "İzlenebilir halka imzası" çalışmasına dayanmaktadır. ve K. Suzuki [24]. Orijinal algoritmayı ve yaptığımız değişikliği ayırt etmek için ikincisini tek seferlik zil imzası olarak adlandırın ve kullanıcının yalnızca bir geçerli zil sesi üretme yeteneğini vurgulayın özel anahtarının altına imza atar. İzlenebilirlik özelliğini zayıflattık ve bağlanabilirliği koruduk yalnızca tek seferliklik sağlamak için: genel anahtar birçok yabancı doğrulama setinde görünebilir ve özel anahtar benzersiz bir anonim imza oluşturmak için kullanılabilir. Çift harcama durumunda Bu iki imza birbirine bağlanacaktır ancak imzalayanın açıklanmasına gerek yoktur bizim amaçlarımız için. 4.2 Tanımlar 4.2.1 Eliptik eğri parametreleri Temel imza algoritmamız olarak seçiyoruze geliştirilen ve geliştirilen hızlı EdDSA şemasını kullanmak D.J. tarafından uygulandı. Bernstein ve ark. [18]. Bitcoin'nın ECDSA'sı gibi eliptik eğriyi temel alır ayrık logaritma problemi olduğundan, şemamız gelecekte Bitcoin'ye de uygulanabilir. Ortak parametreler şunlardır: q: bir asal sayı; q = 2255 −19; d: Fq'nun bir elemanı; d = −121665/121666; E: eliptik bir eğri denklemi; −x2 + y2 = 1 + dx2y2; G: bir taban noktası; G = (x, −4/5); l: taban noktasının asal sırası; l = 2252 + 27742317777372353535851937790883648493; \(H_s\): kriptografik bir hash işlevi \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): deterministik bir hash fonksiyonu \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\). 4.2.2 Terminoloji Gelişmiş gizlilik, Bitcoin varlıklarla karıştırılmaması gereken yeni bir terminoloji gerektirir. özel ec-anahtarı standart bir eliptik eğri özel anahtarıdır: bir sayı \(a \in [1, l - 1]\); genel ec-anahtarı standart bir eliptik eğridir genel anahtar: bir nokta A = aG; tek kullanımlık anahtar çifti, bir çift özel ve genel ec anahtarıdır; 5 9 Tanrım, bu teknik incelemenin yazarı bunu kesinlikle daha iyi ifade edebilirdi! Diyelim ki bir Çalışanların sahibi olduğu şirket, belirli yeni ürünleri satın alıp almama konusunda oylama yapmak istiyor varlıklardır ve Alex ve Brenda'nın ikisi de çalışandır. Şirket her çalışana bir "Öneri A'ya evet oyu veriyorum!" gibi bir mesaj "sorun" meta bilgisine sahip olan [PROP A] ve eğer teklifi destekliyorlarsa izlenebilir bir yüzük imzasıyla imzalamalarını istiyor. Dürüst olmayan bir çalışan, geleneksel zil sesi imzasını kullanarak mesajı birden çok kez imzalayabilir. muhtemelen farklı nonce'lerle, istedikleri kadar oy verebilmek için. diğer tarafta izlenebilir bir halka imza şemasında Alex oy kullanmaya gidecek ve onun özel anahtarı [PROP A] sorunu üzerinde kullanıldı. Alex "Ben, Brenda, onaylıyorum" gibi bir mesajı imzalamaya çalışırsa A önermesi!" Brenda'yı "çerçevelemek" ve çifte oylama yapmak için, bu yeni mesaj aynı zamanda sorunu da çözecek [PROP A]. Alex'in özel anahtarı zaten [PROP A] sorununu tetiklediği için Alex'in kimliği dolandırıcılık olduğu hemen ortaya çıkacaktır. Kabul et ki bu oldukça havalı! Kriptografi oy eşitliğini zorunlu kıldı. http://link.springer.com/chapter/10.1007/978-3-540-71677-8_13 Bu makale ilginçtir, esas olarak geçici bir halka imzası oluşturur, ancak bu imzalardan herhangi birini içermez. diğer katılımcının onayı. İmzanın yapısı farklı olabilir; kazmadım derin ve güvenli olup olmadığını görmedim. https://people.csail.mit.edu/rivest/AdidaHohenbergerRivest-AdHocGroupSignaturesFromHijackedKeypai Geçici grup imzaları şunlardır: grubu olmayan grup imzaları olan halka imzalar yöneticiler, merkezileştirme yok, ancak geçici bir gruptaki bir üyenin kanıtlanabilir bir şekilde şunu iddia etmesine izin veriyor: grup adına isimsiz imzayı vermiştir/vermemiştir. http://link.springer.com/chapter/10.1007/11908739_9 Anladığım kadarıyla bu pek doğru değil. Ve anlayışım muhtemelen değişecek Bu projenin derinliklerine iniyorum. Ama benim anladığım kadarıyla hiyerarşi şöyle görünüyor. Grup imzaları: grup yöneticileri izlenebilirliği ve üye ekleme veya çıkarma yeteneğini kontrol eder imzacı olmaktan. Ring işaretleri: Grup yöneticisi olmadan keyfi grup oluşumu. Anonimliğin iptali yok. Belirli bir imzayı reddetmenin hiçbir yolu yoktur. İzlenebilir ve bağlanabilir halkalı imzalar, anonimlik bir şekilde ölçeklenebilir. Geçici grup imzaları: halka imzalara benzer ancak üyeler kendilerinin oluşturmadığını kanıtlayabilir özel bir imza. Gruptaki herhangi biri imza atabildiğinde bu önemlidir. http://link.springer.com/chapter/10.1007/978-3-540-71677-8_13 Fujisaki ve Suzuki'nin algoritması daha sonra yazar tarafından tek seferliklik sağlayacak şekilde ayarlandı. Yani Fujisaki ve Suzuki’nin algoritmasını yeni algoritmayla eş zamanlı olarak analiz edeceğiz. burada üzerinden geçmek yerine.

anahtar, ancak grubundaki tüm kullanıcıların anahtarları. Doğrulayıcının, gerçek imzalayanın bir kişi olduğuna ikna olması grubun üyesidir, ancak yalnızca imzalayanın kimliğini belirleyemez. Orijinal protokol, güvenilir bir üçüncü tarafa (Grup Yöneticisi adı verilen) ihtiyaç duyuyordu ve o da imzalayanın izini sürebilecek tek kişi. Halka imza adı verilen bir sonraki sürüm tanıtıldı Rivest ve diğerleri tarafından. [34]'de, Grup Yöneticisi olmayan ve anonimlik içermeyen özerk bir plandı iptal. Bu şemanın çeşitli modifikasyonları daha sonra ortaya çıktı: bağlanabilir halka imzası [26, 27, 17] iki imzanın aynı grup üyesi tarafından üretilip üretilmediğini belirlemeye izin verildi, izlenebilir halka imza [24, 23] imzalayanın izini sürme olanağı sağlayarak aşırı anonimliği sınırladı aynı meta bilgiye (veya [24] anlamında "etiket") ilişkin iki mesaj. Benzer bir kriptografik yapı aynı zamanda geçici grup imzası olarak da bilinir [16, 38]. o Grup/halka imza şemaları daha çok bir grup/halka imza şemasını ima ederken, keyfi grup oluşumunu vurgulamaktadır. sabit üye kümesi. Çözümümüz çoğunlukla E. Fujisaki'nin "İzlenebilir halka imzası" çalışmasına dayanmaktadır. ve K. Suzuki [24]. Orijinal algoritmayı ve yaptığımız değişikliği ayırt etmek için ikincisini tek seferlik zil imzası olarak adlandırın ve kullanıcının yalnızca bir geçerli zil sesi üretme yeteneğini vurgulayın özel anahtarının altına imza atar. İzlenebilirlik özelliğini zayıflattık ve bağlanabilirliği koruduk yalnızca tek seferliklik sağlamak için: genel anahtar birçok yabancı doğrulama setinde görünebilir ve özel anahtar benzersiz bir anonim imza oluşturmak için kullanılabilir. Çift harcama durumunda Bu iki imza birbirine bağlanacaktır ancak imzalayanın açıklanmasına gerek yoktur bizim amaçlarımız için. 4.2 Tanımlar 4.2.1 Eliptik eğri parametreleri Temel imza algoritmamız olarak, geliştirilen ve geliştirilen hızlı EdDSA şemasını kullanmayı seçtik. D.J. tarafından uygulandı. Bernstein ve ark. [18]. Bitcoin'nun ECDSA'sı gibi eliptik eğriye dayanmaktadır ayrık logaritma problemi olduğundan, şemamız gelecekte Bitcoin'ye de uygulanabilir. Ortak parametreler şunlardır: q: bir asal sayı; q = 2255 −19; d: Fq'nun bir elemanı; d = −121665/121666; E: eliptik bir eğri denklemi; −x2 + y2 = 1 + dx2y2; G: bir taban noktası; G = (x, −4/5); l: taban noktasının asal sırası; l = 2252 + 27742317777372353535851937790883648493; \(H_s\): kriptografik bir hash işlevi \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): deterministik bir hash fonksiyonu \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\). 4.2.2 Terminoloji Gelişmiş gizlilik, Bitcoin varlıklarla karıştırılmaması gereken yeni bir terminoloji gerektirir. özel ec-anahtarı standart bir eliptik eğri özel anahtarıdır: bir sayı \(a \in [1, l - 1]\); genel ec-anahtarı standart bir eliptik eğridir genel anahtar: bir nokta A = aG; tek kullanımlık anahtar çifti, bir çift özel ve genel ec anahtarıdır; 5 anahtar, ancak grubundaki tüm kullanıcıların anahtarları. Doğrulayıcının, gerçek imzalayanın bir kişi olduğuna ikna olması grubun üyesidir, ancak yalnızca imzalayanın kimliğini belirleyemez. Orijinal protokol, güvenilir bir üçüncü tarafa (Grup Yöneticisi adı verilen) ihtiyaç duyuyordu ve o da imzalayanın izini sürebilecek tek kişi. Halka imza adı verilen bir sonraki sürüm tanıtıldı Rivest ve diğerleri tarafından. [34]'da, Grup Yöneticisi olmayan ve anonimlik içermeyen özerk bir plandı iptal. Bu şemanın çeşitli modifikasyonları daha sonra ortaya çıktı: bağlanabilir halka imzası [26, 27, 17] iki imzanın aynı grup üyesi tarafından üretilip üretilmediğini belirlemeye izin verildi, izlenebilir halka imza [24, 23] imzalayanın izini sürme olanağı sağlayarak aşırı anonimliği sınırladı aynı meta bilgiye (veya [24] anlamında "etiket") ilişkin iki mesaj. Benzer bir kriptografik yapı aynı zamanda geçici grup imzası olarak da bilinir [16, 38]. o Grup/halka imza şemaları daha çok bir grup/halka imza şemasını ima ederken, keyfi grup oluşumunu vurgulamaktadır. sabit üye kümesi. Çözümümüz çoğunlukla E. Fujisaki'nin "İzlenebilir halka imzası" çalışmasına dayanmaktadır. ve K. Suzuki [24]. Orijinal algoritmayı ve yaptığımız değişikliği ayırt etmek için ikincisini tek seferlik zil imzası olarak adlandırın ve kullanıcının yalnızca bir geçerli zil sesi üretme yeteneğini vurgulayın özel anahtarının altına imza atar. İzlenebilirlik özelliğini zayıflattık ve bağlanabilirliği koruduk yalnızca tek seferliklik sağlamak için: genel anahtar birçok yabancı doğrulama setinde görünebilir ve özel anahtar benzersiz bir anonim imza oluşturmak için kullanılabilir. Çift harcama durumunda Bu iki imza birbirine bağlanacaktır ancak imzalayanın açıklanmasına gerek yoktur bizim amaçlarımız için. 4.2 Tanımlar 4.2.1 Eliptik eğri parametreleri Temel imza algoritmamız olarak seçiyoruze geliştirilen ve geliştirilen hızlı EdDSA şemasını kullanmak D.J. tarafından uygulandı. Bernstein ve ark. [18]. Bitcoin'nin ECDSA'sı gibi eliptik eğriyi temel alır ayrık logaritma problemi olduğundan, şemamız gelecekte Bitcoin'ye de uygulanabilir. Ortak parametreler şunlardır: q: bir asal sayı; q = 2255 −19; d: Fq'nun bir elemanı; d = −121665/121666; E: eliptik bir eğri denklemi; −x2 + y2 = 1 + dx2y2; G: bir taban noktası; G = (x, −4/5); l: taban noktasının asal sırası; l = 2252 + 27742317777372353535851937790883648493; \(H_s\): kriptografik bir hash işlevi \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): deterministik bir hash fonksiyonu \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\). 4.2.2 Terminoloji Gelişmiş gizlilik, Bitcoin varlıklarla karıştırılmaması gereken yeni bir terminoloji gerektirir. özel ec-anahtarı standart bir eliptik eğri özel anahtarıdır: bir sayı \(a \in [1, l - 1]\); genel ec-anahtarı standart bir eliptik eğridir genel anahtar: bir nokta A = aG; tek kullanımlık anahtar çifti, bir çift özel ve genel ec anahtarıdır; 5 10 "Bağlanabilir halka imzaları" anlamındaki bağlanabilirlik, kaynağın kim olduğunu açıklamadan, giden iki işlemin aynı kaynaktan gelip gelmediğini söyleyebilmemiz anlamına gelir. Yazarlar zayıfladı (a) gizliliği korumak, ancak yine de (b) özel anahtar kullanarak herhangi bir işlemi tespit etmek için bağlanabilirlik ikinci kez geçersiz. Tamam, bu bir olaylar sırası sorusudur. Aşağıdaki senaryoyu düşünün. Benim madenciliğim bilgisayar geçerli blockchain numarasına sahip olacak, çağırdığı kendi işlem bloğuna sahip olacak meşru, bir proof-of-work bulmacasındaki o blok üzerinde çalışacak ve Bir sonraki bloğa eklenecek bekleyen işlemlerin listesi. Ayrıca yenilerini de gönderecek işlemleri bekleyen işlemler havuzuna aktarır. Bir sonraki bloğu çözemezsem ama başkası bunu yaparsa blockchain dosyasının güncellenmiş bir kopyasını alırım. Üzerinde çalıştığım blok ve bekleyen işlemler listemin her ikisinde de şu anda dahil edilmiş bazı işlemler bulunabilir blockchain içine. Bekleyen bloğumu çöz, bunu bekleyen işlemler listemle birleştir ve buna çağrı yap bekleyen işlemler havuzum. Şu anda resmi olarak blockchain içinde bulunanları kaldırın. Şimdi ne yapacağım? İlk önce "tüm çift harcamaları kaldırmalı mıyım"? diğer tarafta Öte yandan, listede arama yapıp her özel anahtarın henüz değiştirilmediğinden emin olmalı mıyım? kullanılmış ve listemde zaten kullanılmışsa, ilk kopyayı ilk ben aldım ve dolayısıyla bundan sonraki herhangi bir kopya gayri meşrudur. Böylece ilkinden sonra tüm örnekleri silmeye devam ediyorum. aynı özel anahtardan. Cebirsel geometri hiçbir zaman bana göre bir güç olmadı. http://en.wikipedia.org/wiki/EdDSA Bu kadar hız, çok vay be. BU kazanmaya yönelik cebirsel geometridir. Hiçbir şey bildiğimden değil bu konuda. Sorunlu olsun veya olmasın, ayrık günlükler çok hızlı hale geliyor. Ve kuantum bilgisayarlar onları yiyor kahvaltı için. http://link.springer.com/article/10.1007/s13389-012-0027-1 Bu gerçekten önemli bir sayı haline geliyor, ancak nasıl olduğuna dair hiçbir açıklama veya alıntı yok. seçildi. Bilinen tek bir büyük asal sayıyı seçmek yeterli olacaktır, ancak eğer bilinenler varsa seçimimizi etkileyebilecek bu büyük asal sayı hakkındaki gerçekler. Kripto notun farklı çeşitleri farklı değerler seçilebilir eh, ama bu yazıda bunun nasıl olduğuna dair bir tartışma yok. seçim, sayfa 5'te listelenen diğer küresel parametrelere ilişkin seçimlerimizi etkileyecektir. Bu yazının parametre değerlerinin seçimiyle ilgili bir bölüme ihtiyacı var.

özel kullanıcı anahtarı iki farklı özel ec anahtarından oluşan bir (a, b) çiftidir; izleme anahtarı, özel ve genel ec anahtarının bir çiftidir (a, B) (burada B = bG ve a̸= b); genel kullanıcı anahtarı, (a, b)'den türetilen iki genel ec anahtarının (A, B) çiftidir; standart adres, insan dostu dizeye verilen genel kullanıcı anahtarının bir temsilidir hata düzeltme ile; kısaltılmış adres, verilen genel kullanıcı anahtarının ikinci yarısının (B noktası) temsilidir hata düzeltmeyle insan dostu dizeye dönüştürülür. İşlem yapısı Bitcoin'deki yapıya benzer kalır: her kullanıcı seçebilir birkaç bağımsız gelen ödeme (işlem çıktıları), bunları ilgili imzalarla imzalayın özel anahtarlar ve bunları farklı hedeflere gönderin. Kullanıcının benzersiz özel ve genel anahtara sahip olduğu Bitcoin modelinin aksine, Önerilen modelde gönderici, alıcının adresine dayalı olarak tek seferlik bir genel anahtar üretir ve bazı rastgele veriler. Bu anlamda aynı alıcıya gelen bir işlem, tek kullanımlık genel anahtar (doğrudan benzersiz bir adrese değil) ve yalnızca alıcı bu anahtarı kurtarabilir fonlarını kullanmak için karşılık gelen özel kısım (benzersiz özel anahtarını kullanarak). Alıcı şunları yapabilir: fonları bir yüzük imzası kullanarak, mülkiyetini ve fiili harcamalarını anonim tutarak harcayacaktır. Protokolün detayları sonraki alt bölümlerde açıklanmaktadır. 4.3 Bağlantısı kaldırılamayan ödemeler Klasik Bitcoin adresleri yayınlandıktan sonra gelenler için kesin bir tanımlayıcı haline gelir. ödemeleri birbirine bağlamak ve alıcının takma adlarına bağlamak. Birisi isterse “bağlantısız” bir işlem alıyorsa, göndericiye adresini özel bir kanaldan iletmesi gerekir. Aynı sahibine ait olduğu kanıtlanamayan farklı işlemleri almak istiyorsa tüm farklı adresleri oluşturmalı ve bunları asla kendi takma adıyla yayınlamamalıdır. halka açık Özel Alice Carol Bob'un adresi 1 Bob'un adresi 2 Bob'un anahtarı 1 Bob'un anahtarı 2 Bob Şekil 2. Geleneksel Bitcoin anahtarlar/işlemler modeli. Kullanıcının tek bir adres yayınlamasına ve koşulsuz olarak almasına olanak tanıyan bir çözüm öneriyoruz bağlantısız ödemeler Her CryptoNote çıkışının hedefi (varsayılan olarak) bir genel anahtardır, alıcının adresinden ve gönderenin rastgele verilerinden elde edilir. Bitcoin'a karşı ana avantaj her hedef anahtarın varsayılan olarak benzersiz olmasıdır (gönderen her anahtar için aynı verileri kullanmadığı sürece) işlemlerinin aynı alıcıya yapılması). Dolayısıyla “adresin yeniden kullanılması” gibi bir sorun söz konusu değildir. tasarım ve hiçbir gözlemci herhangi bir işlemin belirli bir adrese veya bağlantıya gönderilip gönderilmediğini belirleyemez iki adres bir arada. 6 özel kullanıcı anahtarı iki farklı özel ec anahtarından oluşan bir (a, b) çiftidir; izleme anahtarı, özel ve genel ec anahtarının bir çiftidir (a, B) (burada B = bG ve a̸= b); genel kullanıcı anahtarı, (a, b)'den türetilen iki genel ec anahtarının (A, B) çiftidir; standart adres, insan dostu dizeye verilen genel kullanıcı anahtarının bir temsilidir hata düzeltme ile; kısaltılmış adres, verilen genel kullanıcı anahtarının ikinci yarısının (B noktası) temsilidir hata düzeltmeyle insan dostu dizeye dönüştürülür. İşlem yapısı Bitcoin'deki yapıya benzer kalır: her kullanıcı seçebilir birkaç bağımsız gelen ödeme (işlem çıktıları), bunları ilgili imzalarla imzalayın özel anahtarlar ve bunları farklı hedeflere gönderin. Kullanıcının benzersiz özel ve genel anahtara sahip olduğu Bitcoin modelinin aksine, Önerilen modelde gönderici, alıcının adresine dayalı olarak tek seferlik bir genel anahtar üretir ve bazı rastgele veriler. Bu anlamda aynı alıcıya gelen bir işlem, tek kullanımlık genel anahtar (doğrudan benzersiz bir adrese değil) ve yalnızca alıcı bu anahtarı kurtarabilir fonlarını kullanmak için karşılık gelen özel kısım (benzersiz özel anahtarını kullanarak). Alıcı şunları yapabilir: fonları bir yüzük imzası kullanarak, mülkiyetini ve fiili harcamalarını anonim tutarak harcayacaktır. Protokolün detayları sonraki alt bölümlerde açıklanmaktadır. 4.3 Bağlantısı kaldırılamayan ödemeler Klasik Bitcoin adresleri yayınlandıktan sonra gelenler için kesin bir tanımlayıcı haline gelir. ödemeleri birbirine bağlamak ve alıcının takma adlarına bağlamak. Birisi isterse “bağlantısız” bir işlem alıyorsa, göndericiye adresini özel bir kanaldan iletmesi gerekir. Aynı sahibine ait olduğu kanıtlanamayan farklı işlemleri almak istiyorsa tüm farklı adresleri oluşturmalı ve bunları asla kendi takma adıyla yayınlamamalıdır. halka açık Özel Alice Carol Bob'un adresi 1 Bob'un adresi 2 Bob'un anahtarı 1 Bob'un anahtarı 2 Bob Şekil 2. Geleneksel Bitcoin anahtarlar/işlemler moduel. Kullanıcının tek bir adres yayınlamasına ve koşulsuz olarak almasına olanak tanıyan bir çözüm öneriyoruz bağlantısız ödemeler Her CryptoNote çıkışının hedefi (varsayılan olarak) bir genel anahtardır, alıcının adresinden ve gönderenin rastgele verilerinden elde edilir. Bitcoin'ye karşı ana avantaj her hedef anahtarın varsayılan olarak benzersiz olmasıdır (gönderen her anahtar için aynı verileri kullanmadığı sürece) işlemlerinin aynı alıcıya yapılması). Dolayısıyla “adresin yeniden kullanılması” gibi bir sorun söz konusu değildir. tasarım ve hiçbir gözlemci herhangi bir işlemin belirli bir adrese veya bağlantıya gönderilip gönderilmediğini belirleyemez iki adres bir arada. 6 11 Yani bu Bitcoin gibi, ancak sonsuz, anonim Posta Kutuları var, yalnızca alıcı tarafından kullanılabilecek Bir halka imzasının olabileceği kadar anonim olan özel bir anahtar oluşturmak. Bitcoin bu şekilde çalışır. Eğer Alex'in Frank'ten yeni aldığı cüzdanında 0,112 Bitcoin varsa, gerçekten imzalı bir parası var demektir "Ben, [FRANK], 0.112 Bitcoin'yi [alex] + H0 + N0'a gönder" mesajı burada 1) Frank imzaladı özel anahtarıyla [FRANK] mesaj attı, 2) Frank mesajı Alex'in herkese açık anahtarıyla imzaladı anahtar, [alex], 3) Frank Bitcoin'in geçmişinin bir kısmını dahil etti, H0 ve 4) Frank nonce, N0 adı verilen rastgele bir veri biti içerir. Alex daha sonra Charlene'e 0,011 Bitcoin göndermek isterse Frank'in mesajını alacak ve bunu H1'e ayarlayacak ve iki mesaj imzalayacak: biri işlemi için, diğeri değişiklik için. H1= "Ben, [FRANK], 0,112 Bitcoin'yi [alex] + H0 + N'ye gönder" "I, [ALEX], 0,011 Bitcoin'yi gönder [charlene] + H1 + N1" "Ben, [ALEX], [alex] + H1 + N2'ye değişiklik olarak 0.101 Bitcoin gönder." Alex'in her iki mesajı da kendi özel anahtarıyla [ALEX] imzaladığı yer, Charlene'nin şifresini içeren ilk mesaj genel anahtar [charlene], Alex'in genel anahtarının [alex] bulunduğu ikinci mesaj ve geçmişleri ve bazıları rastgele oluşturulmuş nonces N1 ve N2'yi uygun şekilde oluşturur. Cryptonote şu şekilde çalışır: Alex'in Frank'ten yeni aldığı cüzdanında 0.112 Cryptonote varsa gerçekten imzalı bir parası var demektir. "Ben, [geçici bir gruptaki biri], [tek seferlik bir adrese] + H0'a 0.112 Cryptonote gönderiyorum + Hayır." Alex, özel anahtarını [ALEX] kontrol ederek bunun kendisine ait olduğunu keşfetti. Her geçen mesaj için [tek seferlik bir adres] ve eğer onu harcamak isterse bunu aşağıdaki şekilde. Paranın alıcısını seçiyor, belki de Charlene drone saldırılarına oy vermeye başlamıştır. Alex bunun yerine Brenda'ya para göndermek istiyor. Alex, Brenda'nın genel anahtarına (brenda) bakar, ve tek seferlik bir adres [ALEX+brenda] oluşturmak için kendi özel anahtarı olan [ALEX]'i kullanır. O daha sonra kriptonot kullanıcıları ağından rastgele bir C koleksiyonu seçer ve oluşturur bu geçici gruptan bir halka imzası. Geçmişimizi bir önceki mesaj olarak ayarladık, ekledik nonces ve her zamanki gibi devam edilsin mi? H1 = "Ben, [geçici bir gruptaki biri], [tek seferlik bir adrese] + H0'a 0.112 Cryptonote gönderiyorum + Hayır." "Ben, [C koleksiyonundan biri], [ALEX+brenda'dan tek seferlik adres yapımı] + H1 + N1'e 0,011 Cryptonote gönderiyorum" "Ben, [C koleksiyonundan biri], değişiklik olarak 0.101 Cryptonote'u [ALEX+alex'ten yapılan tek seferlik adres] + H1 + N2'ye gönderiyorum" Artık Alex ve Brenda, gelen tüm mesajları tek seferlik adresler için tarıyor. anahtarları kullanılarak oluşturulmuştur. Eğer herhangi bir şey bulurlarsa, o zaman bu mesaj kendilerine ait yepyeni bir mesajdır. kriptonot! Ve o zaman bile işlem yine de blockchain'ye ulaşacaktır. Eğer o adrese giren coinler suçlulardan, siyasi katkıda bulunanlardan veya komitelerden ve hesaplardan gönderildiği biliniyor bütçeleri kısıtlıysa (örn. zimmete para geçirme) veya bu paraların yeni sahibi bir hata yaparsa ve bu paraları sahibi olduğu bilinen paralarla ortak bir adrese, anonimlik oyununa gönderir Bitcoin'de yükseliş var.

özel kullanıcı anahtarı iki farklı özel ec anahtarından oluşan bir (a, b) çiftidir; izleme anahtarı, özel ve genel ec anahtarının bir çiftidir (a, B) (burada B = bG ve a̸= b); genel kullanıcı anahtarı, (a, b)'den türetilen iki genel ec anahtarının (A, B) çiftidir; standart adres, insan dostu dizeye verilen genel kullanıcı anahtarının bir temsilidir hata düzeltme ile; kısaltılmış adres, verilen genel kullanıcı anahtarının ikinci yarısının (B noktası) temsilidir hata düzeltmeyle insan dostu dizeye dönüştürülür. İşlem yapısı Bitcoin'deki yapıya benzer: her kullanıcı seçebilir birkaç bağımsız gelen ödeme (işlem çıktıları), bunları ilgili imzalarla imzalayın özel anahtarlar ve bunları farklı hedeflere gönderin. Kullanıcının benzersiz özel ve genel anahtara sahip olduğu Bitcoin modelinin aksine, Önerilen modelde gönderici, alıcının adresine dayalı olarak tek seferlik bir genel anahtar üretir ve bazı rastgele veriler. Bu anlamda aynı alıcıya gelen bir işlem, tek kullanımlık genel anahtar (doğrudan benzersiz bir adrese değil) ve yalnızca alıcı bu anahtarı kurtarabilir fonlarını kullanmak için karşılık gelen özel kısım (benzersiz özel anahtarını kullanarak). Alıcı şunları yapabilir: fonları bir yüzük imzası kullanarak, mülkiyetini ve fiili harcamalarını anonim tutarak harcayacaktır. Protokolün detayları sonraki alt bölümlerde açıklanmaktadır. 4.3 Bağlantısı kaldırılamayan ödemeler Klasik Bitcoin adresleri yayınlandıktan sonra gelenler için kesin bir tanımlayıcı haline gelir. ödemeleri birbirine bağlamak ve alıcının takma adlarına bağlamak. Birisi isterse “bağlantısız” bir işlem alıyorsa, göndericiye adresini özel bir kanaldan iletmesi gerekir. Aynı sahibine ait olduğu kanıtlanamayan farklı işlemleri almak istiyorsa tüm farklı adresleri oluşturmalı ve bunları asla kendi takma adıyla yayınlamamalıdır. halka açık Özel Alice Carol Bob'un adresi 1 Bob'un adresi 2 Bob'un anahtarı 1 Bob'un anahtarı 2 Bob Şekil 2. Geleneksel Bitcoin anahtarlar/işlemler modeli. Kullanıcının tek bir adres yayınlamasına ve koşulsuz olarak almasına olanak tanıyan bir çözüm öneriyoruz bağlantısız ödemeler Her CryptoNote çıkışının hedefi (varsayılan olarak) bir genel anahtardır, alıcının adresinden ve gönderenin rastgele verilerinden elde edilir. Bitcoin'ye karşı ana avantaj her hedef anahtarın varsayılan olarak benzersiz olmasıdır (gönderen her anahtar için aynı verileri kullanmadığı sürece) işlemlerinin aynı alıcıya yapılması). Dolayısıyla “adresin yeniden kullanılması” gibi bir sorun söz konusu değildir. tasarım ve hiçbir gözlemci herhangi bir işlemin belirli bir adrese veya bağlantıya gönderilip gönderilmediğini belirleyemez iki adres bir arada. 6 özel kullanıcı anahtarı iki farklı özel ec anahtarından oluşan bir (a, b) çiftidir; izleme anahtarı, özel ve genel ec anahtarının bir çiftidir (a, B) (burada B = bG ve a̸= b); genel kullanıcı anahtarı, (a, b)'den türetilen iki genel ec anahtarının (A, B) çiftidir; standart adres, insan dostu dizeye verilen genel kullanıcı anahtarının bir temsilidir hata düzeltme ile; kısaltılmış adres, verilen genel kullanıcı anahtarının ikinci yarısının (B noktası) temsilidir hata düzeltmeyle insan dostu dizeye dönüştürülür. İşlem yapısı Bitcoin'deki yapıya benzer kalır: her kullanıcı seçebilir birkaç bağımsız gelen ödeme (işlem çıktıları), bunları ilgili imzalarla imzalayın özel anahtarlar ve bunları farklı hedeflere gönderin. Kullanıcının benzersiz özel ve genel anahtara sahip olduğu Bitcoin modelinin aksine, Önerilen modelde gönderici, alıcının adresine dayalı olarak tek seferlik bir genel anahtar üretir ve bazı rastgele veriler. Bu anlamda aynı alıcıya gelen bir işlem, tek kullanımlık genel anahtar (doğrudan benzersiz bir adrese değil) ve yalnızca alıcı bu anahtarı kurtarabilir fonlarını kullanmak için karşılık gelen özel kısım (benzersiz özel anahtarını kullanarak). Alıcı şunları yapabilir: fonları bir yüzük imzası kullanarak, mülkiyetini ve fiili harcamalarını anonim tutarak harcayacaktır. Protokolün detayları sonraki alt bölümlerde açıklanmaktadır. 4.3 Bağlantısı kaldırılamayan ödemeler Klasik Bitcoin adresleri yayınlandıktan sonra gelenler için kesin bir tanımlayıcı haline gelir. ödemeleri birbirine bağlamak ve alıcının takma adlarına bağlamak. Birisi isterse “bağlantısız” bir işlem alıyorsa, göndericiye adresini özel bir kanaldan iletmesi gerekir. Aynı sahibine ait olduğu kanıtlanamayan farklı işlemleri almak istiyorsa tüm farklı adresleri oluşturmalı ve bunları asla kendi takma adıyla yayınlamamalıdır. halka açık Özel Alice Carol Bob'un adresi 1 Bob'un adresi 2 Bob'un anahtarı 1 Bob'un anahtarı 2 Bob Şekil 2. Geleneksel Bitcoin anahtarlar/işlemler moduel. Kullanıcının tek bir adres yayınlamasına ve koşulsuz olarak almasına olanak tanıyan bir çözüm öneriyoruz bağlantısız ödemeler Her CryptoNote çıkışının hedefi (varsayılan olarak) bir genel anahtardır, alıcının adresinden ve gönderenin rastgele verilerinden elde edilir. Bitcoin'ye karşı ana avantaj her hedef anahtarın varsayılan olarak benzersiz olmasıdır (gönderen her anahtar için aynı verileri kullanmadığı sürece) işlemlerinin aynı alıcıya yapılması). Dolayısıyla “adresin yeniden kullanılması” gibi bir sorun söz konusu değildir. tasarım ve hiçbir gözlemci herhangi bir işlemin belirli bir adrese veya bağlantıya gönderilip gönderilmediğini belirleyemez iki adres bir arada. 6 12 Bu nedenle, kullanıcıların adresten (aslında bir genel anahtardır) adrese para göndermesi yerine (başka bir genel anahtar) özel anahtarlarını kullanarak kullanıcılar tek kullanımlık posta kutusundan para gönderiyorlar (arkadaşlarınızın genel anahtarını kullanarak oluşturuyor) tek seferlik posta kutusuna (benzer şekilde) kendi özel anahtarlarınız. Bir anlamda "Tamam, herkes paranın üzerinden elini çeksin" diyoruz. etrafa transfer edildi! Anahtarlarımızın o kutuyu açabileceğini bilmek yeterli. Kutuda ne kadar para olduğunu biliyoruz. Hiçbir zaman parmak izlerinizi Posta Kutusunun veya onu gerçekten kullan, sadece nakit dolu kutuyu takas et. Bu şekilde kimin gönderdiğini bilmiyoruz ama bu halka açık konuşmaların içerikleri hala sürtünmesiz, takas edilebilir, bölünebilir ve Bitcoin gibi paranın arzu ettiğimiz tüm diğer güzel niteliklerine hâlâ sahibiz.” Sonsuz sayıda posta kutusu seti. Bir adres yayınlıyorsun, benim özel anahtarım var. Özel anahtarımı ve adresinizi kullanıyorum ve ortak anahtar oluşturmak için bazı rastgele veriler. Algoritma öyle tasarlanmıştır ki, adresiniz genel anahtarı oluşturmak için kullanıldı, yalnızca SİZİN özel anahtarınız kilidi açmak için çalışır mesaj. Bir gözlemci olan Eve, adresinizi yayınladığınızı ve duyurduğum genel anahtarı görüyor. Ancak, Genel anahtarımı sizin adresinize mi yoksa onun adresine mi, yoksa Brenda'ya mı dayanarak açıkladığımı bilmiyor ya da Charlene'ninki ya da her kimse. Özel anahtarını açıkladığım genel anahtarla karşılaştırıyor ve işe yaramadığını görüyor; bu onun parası değil. Başka kimsenin özel anahtarını bilmiyor ve mesajın kilidini açabilecek özel anahtar yalnızca mesajın alıcısına sahiptir. Yani kimse dinlemek, parayı kimin aldığını çok daha az belirleyebilir.

halka açık Özel Alice Carol Tek kullanımlık anahtar Tek kullanımlık anahtar Tek kullanımlık anahtar Bob Bob'un Anahtarı Bob'un Adresi Şekil 3. CryptoNote anahtarları/işlem modeli. İlk olarak gönderen, verilerinden paylaşılan bir sır elde etmek için bir Diffe-Hellman alışverişi gerçekleştirir ve alıcının adresinin yarısı. Daha sonra paylaşılan anahtarı kullanarak tek seferlik bir hedef anahtarı hesaplar. gizli ve adresin ikinci yarısı. Alıcıdan iki farklı ec-anahtarı isteniyor Bu iki adım için standart bir CryptoNote adresi, Bitcoin cüzdanının neredeyse iki katı büyüklüğündedir. adresi. Alıcı ayrıca karşılık gelen verileri kurtarmak için bir Diffe-Hellman değişimi gerçekleştirir. gizli anahtar. Standart bir işlem sırası şu şekildedir: 1. Alice, standart adresini yayınlayan Bob'a ödeme göndermek istiyor. O adresi açar ve Bob'un genel anahtarını (A, B) alır. 2. Alice rastgele bir \(r \in [1, l - 1]\) üretir ve bir kerelik genel anahtarı \(P = H_s(rA)G +\) hesaplar B. 3. Alice, çıktı için hedef anahtar olarak P'yi kullanır ve aynı zamanda R = rG değerini de paketler (bir parça olarak) Diffe-Hellman borsasının) işlemin bir yerinde. oluşturabileceğini unutmayın. benzersiz ortak anahtarlara sahip diğer çıktılar: farklı alıcıların anahtarları (Ai, Bi) farklı Pi anlamına gelir aynı r ile bile. İşlem Tx ortak anahtarı Gönderim çıkışı Tutar Hedef anahtarı R = rG P = Hs(rA)G + B Alıcının genel anahtar Gönderenin rastgele verileri r (A, B) Şekil 4. Standart işlem yapısı. 4. Alice işlemi gönderir. 5. Bob geçen her işlemi özel anahtarıyla (a, b) kontrol eder ve P ′ = değerini hesaplar Hs(aR)G + B. Alice'in alıcı olarak Bob'la yaptığı işlem bunların arasındaysa, o zaman aR = arG = rA ve P ′ = P. 7 halka açık Özel Alice Carol Tek kullanımlık anahtar Tek kullanımlık anahtar Tek kullanımlık anahtar Bob Bob'un Anahtarı Bob'un Adresi Şekil 3. CryptoNote anahtarları/işlem modeli. İlk olarak gönderen, verilerinden paylaşılan bir sır elde etmek için bir Diffe-Hellman alışverişi gerçekleştirir ve alıcının adresinin yarısı. Daha sonra paylaşılan anahtarı kullanarak tek seferlik bir hedef anahtarı hesaplar. gizli ve adresin ikinci yarısı. Alıcıdan iki farklı ec-anahtarı isteniyor bu iki adım için standart bir CryptoNote adresi, Bitcoin cüzdanının neredeyse iki katı kadardır. adresi. Alıcı ayrıca karşılık gelen verileri kurtarmak için bir Diffe-Hellman değişimi gerçekleştirir. gizli anahtar. Standart bir işlem sırası şu şekildedir: 1. Alice, standart adresini yayınlayan Bob'a ödeme göndermek istiyor. O adresi açar ve Bob'un genel anahtarını (A, B) alır. 2. Alice rastgele bir \(r \in [1, l - 1]\) üretir ve bir kerelik genel anahtarı \(P = H_s(rA)G +\) hesaplar B. 3. Alice, çıktı için hedef anahtar olarak P'yi kullanır ve aynı zamanda R = rG değerini de paketler (bir parça olarak) Diffe-Hellman borsasının) işlemin bir yerinde. oluşturabileceğini unutmayın. benzersiz ortak anahtarlara sahip diğer çıktılar: farklı alıcıların anahtarları (Ai, Bi) farklı Pi anlamına gelir aynı r ile bile. İşlem Tx ortak anahtarı Gönderim çıkışı Tutar Hedef anahtarı R = rG P = Hs(rA)G + B Alıcının genel anahtar Gönderenin rastgele verileri r (A, B) Şekil 4. Standart işlem yapısı. 4. Alice işlemi gönderir. 5. Bob geçen her işlemi özel anahtarıyla (a, b) kontrol eder ve P ′ = değerini hesaplar Hs(aR)G + B. Alice'in alıcı olarak Bob'la yaptığı işlem bunların arasındaysa, o zaman aR = arG = rA ve P ′ = P. 7 13 Kriptografi seçeneğini uygulamanın ne kadar büyük bir acı olacağını merak ediyorum. şeması. Eliptik veya başka türlü. Yani gelecekte bir plan bozulursa para birimi değişir endişelenmeden. Muhtemelen büyük bir baş ağrısı. Tamam, bu tam olarak önceki yorumumda açıkladığım şey. Diffe-Hellman tipi takaslar gayet düzgün. Alex ve Brenda'nın her birinin gizli bir numarası, A ve B'si ve bir numarası olduğunu varsayalım. sır saklamayı umursamıyorlar, a ve b. Paylaşılan bir sır oluşturmak istiyorlar Eva bunu keşfediyor. Diffe ve Hellman, Alex ve Brenda'nın bu durumu paylaşması için bir yol buldular. genel numaralar a ve b, ancak özel numaralar A ve B değil ve paylaşılan bir sır oluşturur, K. Bu paylaşılan sırrı kullanarak, K, Eva'nın dinlemesine gerek kalmadan aynı şeyi üretebilir. K, Alex ve Brenda artık K'yi gizli bir şifreleme anahtarı olarak kullanabilir ve gizli mesajları geri iletebilir ve ileri. 100'den çok daha büyük sayılarla çalışması gerekmesine rağmen CAN şu şekilde çalışır. 100'ü kullanacağız çünkü modulo 100 tamsayıları üzerinde çalışmak "hepsini atmak" ile eşdeğerdir ama bir sayının son iki rakamı." Alex ve Brenda'nın her biri A, a, B ve b'yi seçiyor. A ve B'yi gizli tutuyorlar. Alex, Brenda'ya modulo 100'ün değerini (yalnızca son iki rakam) söyler ve Brenda, Alex'e söyler. b modulo 100'ün değeri. Artık Eva (a,b) modulo 100'ü biliyor. Ama Alex (a,b,A)'yı biliyor, dolayısıyla o x=abA modulo 100'ü hesaplayabilir.Alex çalıştığımız için son rakam hariç hepsini kesiyor tekrar modulo 100 tamsayılarının altında. Benzer şekilde, Brenda da (a,b,B)'yi bildiğinden hesaplayabilmektedir. y=abB modulo 100. Alex artık x'i yayınlayabilir ve Brenda da y'yi yayınlayabilir. Ama şimdi Alex yA = abBA modulo 100'ü hesaplayabiliyor ve Brenda da xB'yi hesaplayabiliyor = abBA modulo 100. İkisi de aynı numarayı biliyor! Ama Eva'nın tek duyduğu şey (a,b,abA,abB). abA*B'yi hesaplamanın kolay bir yolu yok. Diffe-Hellman değişimi hakkında düşünmenin en kolay ve en az güvenli yolu bu. Daha güvenli versiyonlar mevcut. Ancak çoğu sürüm, tamsayı çarpanlarına ayırma ve ayrıklık nedeniyle çalışır. logaritmalar zordur ve bu sorunların her ikisi de kuantum bilgisayarlar tarafından kolaylıkla çözülebilir. Kuantuma dirençli versiyonların olup olmadığına bakacağım. http://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange Burada listelenen "standart txn dizisi"nde, İMZALAR gibi birçok adım eksik. Burada olduğu gibi kabul ediliyorlar. Bu gerçekten kötü, çünkü içinde bulunduğumuz sıra imza maddeleri, imzalı mesajın içerdiği bilgiler vb... bunların hepsi son derece protokol için önemlidir. Uygulama sırasında adımlardan bir veya ikisinin yanlış, hatta biraz bozuk olması standart işlem sırası" tüm sistemin güvenliğini sorgulayabilir. Ayrıca, makalede daha sonra sunulan kanıtlar yeterince kesin olmayabilir. altında çalıştıkları çerçeve bu bölümde olduğu gibi gevşek bir şekilde tanımlanmıştır.

halka açık Özel Alice Carol Tek kullanımlık anahtar Tek kullanımlık anahtar Tek kullanımlık anahtar Bob Bob'un Anahtarı Bob'un Adresi Şekil 3. CryptoNote anahtarları/işlem modeli. İlk olarak gönderen, verilerinden paylaşılan bir sır elde etmek için bir Diffe-Hellman alışverişi gerçekleştirir ve alıcının adresinin yarısı. Daha sonra paylaşılan anahtarı kullanarak tek seferlik bir hedef anahtarı hesaplar. gizli ve adresin ikinci yarısı. Alıcıdan iki farklı ec-anahtarı isteniyor bu iki adım için standart bir CryptoNote adresi, Bitcoin cüzdanının neredeyse iki katı kadardır. adresi. Alıcı ayrıca karşılık gelen verileri kurtarmak için bir Diffe-Hellman değişimi gerçekleştirir. gizli anahtar. Standart bir işlem sırası şu şekildedir: 1. Alice, standart adresini yayınlayan Bob'a ödeme göndermek istiyor. O adresi açar ve Bob'un genel anahtarını (A, B) alır. 2. Alice rastgele bir \(r \in [1, l - 1]\) üretir ve bir kerelik genel anahtarı \(P = H_s(rA)G +\) hesaplar B. 3. Alice, çıktı için hedef anahtar olarak P'yi kullanır ve aynı zamanda R = rG değerini de paketler (bir parça olarak) Diffe-Hellman borsasının) işlemin bir yerinde. oluşturabileceğini unutmayın. benzersiz ortak anahtarlara sahip diğer çıktılar: farklı alıcıların anahtarları (Ai, Bi) farklı Pi anlamına gelir aynı r ile bile. İşlem Tx ortak anahtarı Gönderim çıkışı Tutar Hedef anahtarı R = rG P = Hs(rA)G + B Alıcının genel anahtar Gönderenin rastgele verileri r (A, B) Şekil 4. Standart işlem yapısı. 4. Alice işlemi gönderir. 5. Bob geçen her işlemi özel anahtarıyla (a, b) kontrol eder ve P ′ = değerini hesaplar Hs(aR)G + B. Alice'in alıcı olarak Bob'la yaptığı işlem bunların arasındaysa, o zaman aR = arG = rA ve P ′ = P. 7 halka açık Özel Alice Carol Tek kullanımlık anahtar Tek kullanımlık anahtar Tek kullanımlık anahtar Bob Bob'un Anahtarı Bob'un Adresi Şekil 3. CryptoNote anahtarları/işlem modeli. İlk olarak gönderen, verilerinden paylaşılan bir sır elde etmek için bir Diffe-Hellman alışverişi gerçekleştirir ve alıcının adresinin yarısı. Daha sonra paylaşılan anahtarı kullanarak tek seferlik bir hedef anahtarı hesaplar. gizli ve adresin ikinci yarısı. Alıcıdan iki farklı ec-anahtarı isteniyor bu iki adım için standart bir CryptoNote adresi, Bitcoin cüzdanının neredeyse iki katı kadardır. adresi. Alıcı ayrıca karşılık gelen verileri kurtarmak için bir Diffe-Hellman değişimi gerçekleştirir. gizli anahtar. Standart bir işlem sırası şu şekildedir: 1. Alice, standart adresini yayınlayan Bob'a ödeme göndermek istiyor. O adresi açar ve Bob'un genel anahtarını (A, B) alır. 2. Alice rastgele bir \(r \in [1, l - 1]\) üretir ve bir kerelik genel anahtarı \(P = H_s(rA)G +\) hesaplar B. 3. Alice, çıktı için hedef anahtar olarak P'yi kullanır ve aynı zamanda R = rG değerini de paketler (bir parça olarak) Diffe-Hellman borsasının) işlemin bir yerinde. oluşturabileceğini unutmayın. benzersiz ortak anahtarlara sahip diğer çıktılar: farklı alıcıların anahtarları (Ai, Bi) farklı Pi anlamına gelir aynı r ile bile. İşlem Tx ortak anahtarı Gönderim çıkışı Tutar Hedef anahtarı R = rG P = Hs(rA)G + B Alıcının genel anahtar Gönderenin rastgele verileri r (A, B) Şekil 4. Standart işlem yapısı. 4. Alice işlemi gönderir. 5. Bob geçen her işlemi özel anahtarıyla (a, b) kontrol eder ve P ′ = değerini hesaplar Hs(aR)G + B. Alice'in alıcı olarak Bob'la yaptığı işlem bunların arasındaysa, o zaman aR = arG = rA ve P ′ = P. 7 14 Yazar(lar)ın baştan sona terminolojilerini düz tutmak konusunda berbat bir iş çıkardıklarını unutmayın. metin, ama özellikle bu sonraki kısımda. Bu makalenin bir sonraki enkarnasyonu mutlaka olacaktır. çok daha titiz. Metinde P'den tek kullanımlık genel anahtar olarak bahsediyorlar. Diyagramda R'ye şu şekilde atıfta bulunurlar: "Tx genel anahtarı" ve "Hedef anahtarı" olarak P. Eğer bunu yeniden yazacak olsaydım, Bu bölümleri tartışmadan önce bazı terminolojiyi çok spesifik olarak ortaya koyacağım. Bu cehennem çok büyük. 5. sayfaya bakın. Ell'i kim seçer? Diyagram, rastgele ve seçilen işlem genel anahtarı R = rG'yi göstermektedir. gönderen tarafından Tx çıkışının bir parçası değildir. Bunun nedeni birden fazla kişi için aynı olabilmesidir. birden fazla kişiye yapılan işlemlerdir ve harcamak için SONRA kullanılmaz. Yeni bir R üretilir her yeni CryptoNote işlemini yayınlamak istediğinizde. Ayrıca, R yalnızca kullanılır İşlemin alıcısı olup olmadığınızı kontrol etmek için. Bunlar önemsiz veriler değil, ancak herkes için önemsizdir (A,B) ile ilişkili özel anahtarlar olmadan. Hedef tuşu ise P = Hs(rA)G + B, Tx çıkışının bir parçasıdır. Herkes Her geçen işlemin verilerini inceleyerek kendi oluşturdukları P*'yi kontrol etmelidir. Bu geçen işlemin sahibi olup olmadıklarını görmek için bu P'yi kullanın. Harcanmamış işlem çıktısı olan herkes (UTXO) bu P'lerden bir demetini ortalıkta miktarlarla birlikte bulunduracak. Harcamak içind, onlar P'nin de dahil olduğu yeni bir mesaj imzalayın. Alice, bu işlemi, harcanmamış işlem çıktısı/çıktıları Hedef Anahtarı/Anahtarları ile ilişkili bir kerelik özel anahtar/anahtarlarla imzalamalıdır. Alice'in sahip olduğu her hedef anahtarı donanımlı olarak gelir (muhtemelen) Alice'e ait olan tek seferlik özel anahtarla. Alice her istediğinde hedef anahtarının içeriğini bana veya Bob'a veya Brenda'ya veya Charlie'ye veya Charlene'e gönder, o işlemi imzalamak için özel anahtarını kullanır. İşlemi aldıktan sonra yeni bir tane alacağım Tx genel anahtarı, yeni bir Hedef ortak anahtarı ve yeni bir kerelik özel anahtar x'i kurtarabileceğim. Tek kullanımlık özel anahtarım x'i yeni işlemin genel Hedefi ile birleştirme anahtar(lar) yeni bir işlemi nasıl gönderdiğimizdir

  1. Bob karşılık gelen bir kerelik özel anahtarı kurtarabilir: x = Hs(aR) + b, yani P = xG. Bu çıktıyı istediği zaman x ile bir işlem imzalayarak harcayabilir. İşlem Tx ortak anahtarı Gönderim çıkışı Tutar Hedef anahtarı P ′ = Hs(aR)G + bG tek kullanımlık genel anahtar x = Hs(aR) + b tek kullanımlık özel anahtar Alıcının özel anahtar (a, b) R P' ?= P Şekil 5. Gelen işlem kontrolü. Sonuç olarak Bob, tek seferlik ortak anahtarlarla ilişkili gelen ödemeleri alır. izleyici için bağlanılamaz. Bazı ek notlar: • Bob işlemlerini "tanıdığında" (bkz. adım 5) pratikte parasının yalnızca yarısını kullanır. Özel bilgiler: (a, B). İzleme anahtarı olarak da bilinen bu çift, iletilebilir üçüncü bir tarafa (Carol). Bob, yeni işlemlerin işlenmesi konusunda ona yetki verebilir. Bob Carol'a açıkça güvenmesine gerek yok çünkü tek seferlik gizli anahtarı kurtaramıyor Bob'un tam özel anahtarı (a, b) olmadan. Bu yaklaşım Bob'un bant genişliğinin yetersiz olduğu durumlarda faydalıdır veya hesaplama gücü (akıllı telefonlar, donanım cüzdanları vb.). • Alice, Bob'un adresine bir işlem gönderdiğini kanıtlamak isterse bunu açıklayabilir r veya r'yi bildiğini kanıtlamak için herhangi bir tür sıfır bilgi protokolü kullanın (örneğin imzalayarak) r) ile yapılan işlem. • Bob, gelen tüm işlemlerin kaydedildiği denetim uyumlu bir adrese sahip olmak istiyorsa bağlanabilirse, izleme anahtarını yayınlayabilir veya kısaltılmış bir adres kullanabilir. Bu adres yalnızca bir genel ec-anahtarı B'yi temsil eder ve protokolün gerektirdiği geri kalan kısım bundan şu şekilde türetilir: a = Hs(B) ve A = Hs(B)G. Her iki durumda da her insan Bob'un gelen tüm işlemlerini "tanıyabilir", ancak elbette hiçbiri bu parayı harcayamaz. gizli anahtar olmadan içlerinde yer alan fonlar b. 4.4 Tek seferlik zil imzaları Tek seferlik halka imzalara dayalı bir protokol, kullanıcıların koşulsuz bağlantı kurulamazlığına erişmesine olanak tanır. Ne yazık ki, sıradan kriptografik imza türleri, işlemlerin ilgili gönderici ve alıcılar. Bu eksikliğe çözümümüz farklı bir imza kullanmaktan geçiyor Şu anda elektronik nakit sistemlerinde kullanılanlardan daha fazla tür. Öncelikle algoritmamızın genel bir tanımını, açık bir referans olmadan sunacağız. elektronik nakit. Bir kerelik halka imzası dört algoritma içerir: (GEN, SIG, VER, LNK): GEN: genel parametreleri alır ve bir ec çifti (P, x) ve bir genel anahtar I çıkarır. SIG: bir m mesajını, {Pi}i̸=s genel anahtarlarından oluşan bir \(S'\) kümesini, bir çifti (Ps, xs) alır ve bir \(\sigma\) imzası çıkarır ve bir \(S = \)S'\( \cup \{P_s\}\) kümesi. 8
  2. Bob karşılık gelen bir kerelik özel anahtarı kurtarabilir: x = Hs(aR) + b, yani P = xG. Bu çıktıyı istediği zaman x ile bir işlem imzalayarak harcayabilir. İşlem Tx ortak anahtarı Gönderim çıkışı Tutar Hedef anahtarı P ′ = Hs(aR)G + bG tek kullanımlık genel anahtar x = Hs(aR) + b tek kullanımlık özel anahtar Alıcının özel anahtar (a, b) R P' ?= P Şekil 5. Gelen işlem kontrolü. Sonuç olarak Bob, tek seferlik ortak anahtarlarla ilişkili gelen ödemeleri alır. izleyici için bağlanılamaz. Bazı ek notlar: • Bob işlemlerini "tanıdığında" (bkz. adım 5) pratikte parasının yalnızca yarısını kullanır. Özel bilgiler: (a, B). İzleme anahtarı olarak da bilinen bu çift, iletilebilir üçüncü bir tarafa (Carol). Bob, yeni işlemlerin işlenmesi konusunda ona yetki verebilir. Bob Carol'a açıkça güvenmesine gerek yok çünkü tek seferlik gizli anahtarı kurtaramıyor Bob'un tam özel anahtarı (a, b) olmadan. Bu yaklaşım Bob'un bant genişliğinin yetersiz olduğu durumlarda faydalıdır veya hesaplama gücü (akıllı telefonlar, donanım cüzdanları vb.). • Alice, Bob'un adresine bir işlem gönderdiğini kanıtlamak isterse bunu açıklayabilir r veya r'yi bildiğini kanıtlamak için herhangi bir tür sıfır bilgi protokolü kullanın (örneğin imzalayarak) r) ile yapılan işlem. • Bob, gelen tüm işlemlerin kaydedildiği denetim uyumlu bir adrese sahip olmak istiyorsa bağlanabilirse, izleme anahtarını yayınlayabilir veya kısaltılmış bir adres kullanabilir. Bu adres yalnızca bir genel ec-anahtarı B'yi temsil eder ve protokolün gerektirdiği geri kalan kısım bundan şu şekilde türetilir: a = Hs(B) ve A = Hs(B)G. Her iki durumda da her insan Bob'un gelen tüm işlemlerini "tanıyabilir", ancak elbette hiçbiri bu parayı harcayamaz. gizli anahtar olmadan içlerinde yer alan fonlar b. 4.4 Tek seferlik zil imzaları Tek seferlik halka imzalara dayalı bir protokol, kullanıcıların koşulsuz bağlantı kurulamazlığına erişmesine olanak tanır. Ne yazık ki, sıradan kriptografik imza türleri, işlemlerin ilgili gönderici ve alıcılar. Bu eksikliğe çözümümüz farklı bir imza kullanmaktan geçiyor Şu anda elektronik nakit sistemlerinde kullanılanlardan daha fazla tür. İlk önce bir gen sağlayacağızaçık bir referans olmadan algoritmamızın tüm açıklaması elektronik nakit. Bir kerelik halka imzası dört algoritma içerir: (GEN, SIG, VER, LNK): GEN: genel parametreleri alır ve bir ec çifti (P, x) ve bir genel anahtar I çıkarır. SIG: bir m mesajını, {Pi}i̸=s genel anahtarlarından oluşan bir \(S'\) kümesini, bir çifti (Ps, xs) alır ve bir \(\sigma\) imzası çıkarır ve bir \(S = \)S'\( \cup \{P_s\}\) kümesi. 8 15 Harcanmamış bir işlem çıktısı burada nasıl görünüyor? Diyagram, işlem çıktısının yalnızca iki veri noktasından oluştuğunu göstermektedir: miktar ve hedef anahtar. Ama bu değil Yeterli çünkü bu "çıktıyı" harcamaya çalıştığımda hala R=rG'yi bilmem gerekecek. Unutmayın, r gönderen tarafından seçilir ve R a) gelen kriptonotları sizin şifreniz olarak tanımak için kullanılır. kendi ve b) kriptonotunuzu "talep etmek" için kullanılan tek seferlik özel anahtarı oluşturmak için kullanılır. Bu konuda anlamadığım kısım? Teorik olarak "tamam, elimizde bunlar var imzalar ve işlemler ve bunları programlama dünyasına ileri geri aktarıyoruz "peki özellikle hangi bilgiler bir kişiyi UTXO oluşturur?" Bu soruyu cevaplamanın en iyi yolu, tamamen yorumlanmamış kodun gövdesini incelemektir. Tebrikler bytecoin ekibi. Hatırlayın: bağlanabilirlik "aynı kişi mi gönderdi?" anlamına gelir. ve bağlantı kurulamazlık "aynısını yaptım" anlamına gelir kişi alıyor mu?" Dolayısıyla bir sistem bağlanabilir veya bağlanamaz, bağlanamaz veya bağlanamaz olabilir. Sinir bozucu, biliyorum. Nic van Saberhagen burada "...gelen ödemeler tek seferlik ödemelerle ilişkilidir" dediğinde İzleyici için bağlantı kurulamayan genel anahtarlar" derken ne demek istediğini görelim. İlk olarak, Alice'in Bob'a aynı yerden iki ayrı işlem gönderdiği bir durumu düşünün. adresi aynı adrese. Bitcoin evreninde Alice zaten hatayı yaptı aynı adresten gönderim yapılması nedeniyle sınırlı işlem isteğimiz başarısız oldu bağlanabilirlik. Üstelik parayı aynı adrese gönderdiği için isteğimizi boşa çıkardı bağlantı kurulamazlığı için. Bu bitcoin işlemi hem (tamamen) bağlanabilir hem de bağlantısı kaldırılamaz nitelikteydi. Öte yandan kriptonot evreninde Alice'in Bob'a bir kriptonot gönderdiğini varsayalım, Bob'un genel adresini kullanarak. Gizleyici ortak anahtarlar kümesi olarak bilinen tüm halka açık anahtarları seçiyor Washington DC metro bölgesindeki anahtarlar. Alex kendi anahtarını kullanarak tek seferlik bir genel anahtar üretiyor bilgiler ve Bob'un kamuya açık bilgileri. Parayı o gönderiyor ve herhangi bir gözlemci sadece "Washington DC metropol bölgesinden biri şu adrese 2,3 kriptonot gönderdi" tek seferlik genel adres XYZ123." Burada bağlanabilirlik üzerinde olasılıksal bir kontrolümüz var, dolayısıyla buna "neredeyse bağlantı kurulamaz" adını vereceğiz. Ayrıca paranın gönderildiği tek seferlik ortak anahtarları da görüyoruz. Alıcıdan şüphelensek bile Bob'du, onun özel anahtarlarına sahip değiliz ve bu nedenle geçen bir işlemin olup olmadığını test edemiyoruz bırakın kripto notunu kullanmak için tek seferlik özel anahtarını oluşturmayı bırakın Bob'a aittir. Yani bu aslında tamamen "bağlanamaz". Yani bu en güzel numaradır. Kim gerçekten başka bir MtGox'a güvenmek ister? Biz olabiliriz Bir miktar BTC'yi Coinbase'de depolamak rahattır, ancak bitcoin güvenliğinde son nokta fiziksel bir cüzdan. Bu da sakıncalı. Bu durumda, özel anahtarınızın yarısını, gizliliğinizi tehlikeye atmadan, güvenle verebilirsiniz. para harcamak için kendi yeteneği. Bunu yaparken yaptığınız tek şey birine bağlantısızlığın nasıl ortadan kaldırılacağını anlatmaktır. Diğeri CN'nin bir para birimi gibi davranan özellikleri korunur; çifte harcamaya karşı kanıt ve ne değil.

  3. Bob karşılık gelen bir kerelik özel anahtarı kurtarabilir: x = Hs(aR) + b, yani P = xG. Bu çıktıyı istediği zaman x ile bir işlem imzalayarak harcayabilir. İşlem Tx ortak anahtarı Gönderim çıkışı Tutar Hedef anahtarı P ′ = Hs(aR)G + bG tek kullanımlık genel anahtar x = Hs(aR) + b tek kullanımlık özel anahtar Alıcının özel anahtar (a, b) R P' ?= P Şekil 5. Gelen işlem kontrolü. Sonuç olarak Bob, tek seferlik ortak anahtarlarla ilişkili gelen ödemeleri alır. izleyici için bağlanılamaz. Bazı ek notlar: • Bob işlemlerini "tanıdığında" (bkz. adım 5) pratikte parasının yalnızca yarısını kullanır. Özel bilgiler: (a, B). İzleme anahtarı olarak da bilinen bu çift, iletilebilir üçüncü bir tarafa (Carol). Bob, yeni işlemlerin işlenmesi konusunda ona yetki verebilir. Bob Carol'a açıkça güvenmesine gerek yok çünkü tek seferlik gizli anahtarı kurtaramıyor Bob'un tam özel anahtarı (a, b) olmadan. Bu yaklaşım Bob'un bant genişliğinin yetersiz olduğu durumlarda faydalıdır veya hesaplama gücü (akıllı telefonlar, donanım cüzdanları vb.). • Alice, Bob'un adresine bir işlem gönderdiğini kanıtlamak isterse bunu açıklayabilir r veya r'yi bildiğini kanıtlamak için herhangi bir tür sıfır bilgi protokolü kullanın (örneğin imzalayarak) r) ile yapılan işlem. • Bob, gelen tüm işlemlerin kaydedildiği denetim uyumlu bir adrese sahip olmak istiyorsa bağlanabilirse, izleme anahtarını yayınlayabilir veya kısaltılmış bir adres kullanabilir. Bu adres yalnızca bir genel ec-anahtarı B'yi temsil eder ve protokolün gerektirdiği geri kalan kısım bundan şu şekilde türetilir: a = Hs(B) ve A = Hs(B)G. Her iki durumda da her insan Bob'un gelen tüm işlemlerini "tanıyabilir", ancak elbette hiçbiri bu parayı harcayamaz. gizli anahtar olmadan içlerinde yer alan fonlar b. 4.4 Tek seferlik zil imzaları Tek seferlik halka imzalara dayalı bir protokol, kullanıcıların koşulsuz bağlantı kurulamazlığına erişmesine olanak tanır. Ne yazık ki, sıradan kriptografik imza türleri, işlemlerin ilgili gönderici ve alıcılar. Bu eksikliğe çözümümüz farklı bir imza kullanmaktan geçiyor Şu anda elektronik nakit sistemlerinde kullanılanlardan daha fazla tür. Öncelikle algoritmamızın genel bir tanımını, açık bir referans olmadan sunacağız. elektronik nakit. Bir kerelik halka imzası dört algoritma içerir: (GEN, SIG, VER, LNK): GEN: genel parametreleri alır ve bir ec çifti (P, x) ve bir genel anahtar I çıkarır. SIG: bir m mesajını, {Pi}i̸=s genel anahtarlarından oluşan bir \(S'\) kümesini, bir çifti (Ps, xs) alır ve bir \(\sigma\) imzası çıkarır ve bir \(S = \)S'\( \cup \{P_s\}\) kümesi. 8

  4. Bob karşılık gelen bir kerelik özel anahtarı kurtarabilir: x = Hs(aR) + b, yani P = xG. Bu çıktıyı istediği zaman x ile bir işlem imzalayarak harcayabilir. İşlem Tx ortak anahtarı Gönderim çıkışı Tutar Hedef anahtarı P ′ = Hs(aR)G + bG tek kullanımlık genel anahtar x = Hs(aR) + b tek kullanımlık özel anahtar Alıcının özel anahtar (a, b) R P' ?= P Şekil 5. Gelen işlem kontrolü. Sonuç olarak Bob, tek seferlik ortak anahtarlarla ilişkili gelen ödemeleri alır. izleyici için bağlanılamaz. Bazı ek notlar: • Bob işlemlerini "tanıdığında" (bkz. adım 5) pratikte parasının yalnızca yarısını kullanır. Özel bilgiler: (a, B). İzleme anahtarı olarak da bilinen bu çift, iletilebilir üçüncü bir tarafa (Carol). Bob, yeni işlemlerin işlenmesi konusunda ona yetki verebilir. Bob Carol'a açıkça güvenmesine gerek yok çünkü tek seferlik gizli anahtarı kurtaramıyor Bob'un tam özel anahtarı (a, b) olmadan. Bu yaklaşım Bob'un bant genişliğinin yetersiz olduğu durumlarda faydalıdır veya hesaplama gücü (akıllı telefonlar, donanım cüzdanları vb.). • Alice, Bob'un adresine bir işlem gönderdiğini kanıtlamak isterse bunu açıklayabilir r veya r'yi bildiğini kanıtlamak için herhangi bir tür sıfır bilgi protokolü kullanın (örneğin imzalayarak) r) ile yapılan işlem. • Bob, gelen tüm işlemlerin kaydedildiği denetim uyumlu bir adrese sahip olmak istiyorsa bağlanabilirse, izleme anahtarını yayınlayabilir veya kısaltılmış bir adres kullanabilir. Bu adres yalnızca bir genel ec-anahtarı B'yi temsil eder ve protokolün gerektirdiği geri kalan kısım bundan şu şekilde türetilir: a = Hs(B) ve A = Hs(B)G. Her iki durumda da her insan Bob'un gelen tüm işlemlerini "tanıyabilir", ancak elbette hiçbiri bu parayı harcayamaz. gizli anahtar olmadan içlerinde yer alan fonlar b. 4.4 Tek seferlik zil imzaları Tek seferlik halka imzalara dayalı bir protokol, kullanıcıların koşulsuz bağlantı kurulamazlığına erişmesine olanak tanır. Ne yazık ki, sıradan kriptografik imza türleri, işlemlerin ilgili gönderici ve alıcılar. Bu eksikliğe çözümümüz farklı bir imza kullanmaktan geçiyor Şu anda elektronik nakit sistemlerinde kullanılanlardan daha fazla tür. İlk önce bir gen sağlayacağızaçık bir referans olmadan algoritmamızın tüm açıklaması elektronik nakit. Bir kerelik halka imzası dört algoritma içerir: (GEN, SIG, VER, LNK): GEN: genel parametreleri alır ve bir ec çifti (P, x) ve bir genel anahtar I çıkarır. SIG: bir m mesajını, {Pi}i̸=s genel anahtarlarından oluşan bir \(S'\) kümesini, bir çifti (Ps, xs) alır ve bir \(\sigma\) imzası çıkarır ve bir \(S = \)S'\( \cup \{P_s\}\) kümesi. 8 16 Evet, artık a) bir ödeme adresimiz ve b) bir ödeme kimliğimiz var. Bir eleştirmen şunu sorabilir: "Bunu gerçekten yapmamız gerekiyor mu? Sonuçta, bir tüccar 112.00678952 alırsa Tam olarak CN, benim siparişim de buydu ve elimde ekran görüntüsü ya da makbuz falan var, değil mi çılgın derecede kesinlik yeterli mi?" Cevap şu: "Belki de çoğu zaman, günlük yaşamda, yüz yüze işlemler." Ancak (özellikle dijital dünyada) daha yaygın olan durum şudur: Bir tüccar, her biri sabit bir fiyata sahip olan bir dizi nesne. A nesnesinin 0,001 CN, B nesnesinin 0,01 CN olduğunu ve C nesnesi 0,1 CN'dir. Şimdi, eğer satıcı 1.618 CN tutarında bir sipariş alırsa, çok sayıda sipariş var. Bir müşteri için sipariş ayarlamanın (birçok!) yolu. Ve bir tür ödeme kimliği olmadan, Bir müşterinin sözde "benzersiz" siparişini, müşterilerinin sözde "benzersiz" maliyetiyle tanımlamak düzen imkansız hale gelir. Daha da komik: çevrimiçi mağazamdaki her şeyin maliyeti tam olarak 1,0 ise CN ve benim günde 1000 müşterim mi oluyor? Ve tam olarak 3 nesne satın aldığınızı kanıtlamak istiyorsunuz iki hafta önce mi? Ödeme kimliği olmadan mı? İyi şanslar dostum. Uzun lafın kısası: Bob bir ödeme adresi yayınladığında, aynı zamanda bir ödeme adresi de yayınlayabilir. ödeme kimliği de (bkz. örneğin Poloniex XMR para yatırma işlemleri). Bu anlatılandan farklı Buradaki metinde ödeme kimliğini oluşturan kişinin Alice olduğu yer almaktadır. Bob'un da bir ödeme kimliği oluşturmasının bir yolu olmalı. (a,B) İzleme anahtarının (a,B) yayınlanabileceğini hatırlayın; 'a'nın değerinin gizliliğini kaybetmek harcama yeteneğinizi ihlal etmeyin veya başkalarının sizden çalmasına izin vermeyin (sanırım... bu Kanıtlanacak), insanların gelen tüm işlemleri görmesine izin verecek. Bu paragrafta açıklandığı gibi kısaltılmış bir adres, anahtarın "özel" kısmını alır. ve onu "genel" kısımdan üretir. 'a'nın değerinin ortaya çıkarılması, bağlanamazlığı ortadan kaldıracaktır ancak işlemlerin geri kalanını koruyacaktır. Yazar "bağlantı kurulamaz" demek istiyor çünkü bağlantı kurulamaz alıcıyı ve bağlantı kurulabilir olanı ifade ediyor göndereni ifade eder. Ayrıca yazarın bağlanabilirliğin iki farklı yönü olduğunu fark etmediği de açıktır. Sonuçta işlem bir grafik üzerinde yönlendirilmiş bir nesne olduğundan iki soru ortaya çıkacaktır: "Bu iki işlem aynı kişiye mi gidiyor?" ve "bu iki işlem geliyor mu? aynı kişiden mi?" Bu, CryptoNote'un bağlantı kurulamazlık özelliğinin geçerli olduğu bir "geri dönmeme" politikasıdır. şartlı. Yani Bob, gelen işlemlerinin bağlantısının kesilemez olmasını seçebilir bu politikayı kullanarak. Bu, Rastgele Oracle Modeli kapsamında kanıtladıkları bir iddiadır. Buna ulaşacağız; Rastgele Oracle'ın artıları ve eksileri var.

VER: m mesajını, S kümesini, \(\sigma\) imzasını alır ve “doğru” veya “yanlış” çıktısını verir. LNK: bir I = {Ii} kümesini, bir \(\sigma\) imzasını alır ve "bağlantılı" veya "indep" çıktısını verir. Protokolün arkasındaki fikir oldukça basittir: Bir kullanıcı, imzalanabilecek bir imza üretir. benzersiz bir genel anahtar yerine bir dizi genel anahtarla kontrol edilir. İmzalayanın kimliği: sahibi üretinceye kadar ortak anahtarları sette bulunan diğer kullanıcılardan ayırt edilemez aynı anahtar çiftini kullanan ikinci bir imza. Özel anahtarlar x0 \(\cdots\) xi \(\cdots\) xn Genel anahtarlar P0 \(\cdots\) Pi \(\cdots\) Pn Yüzük İmza işaret doğrulamak Şekil 6. Halka imzasının anonimliği. GEN: İmzalayan kişi rastgele bir \(x \in [1, l - 1]\) gizli anahtarını seçer ve karşılık gelen değeri hesaplar. ortak anahtar P = xG. Ek olarak başka bir genel anahtar olan I = xHp(P)'yi de hesaplar. “anahtar resim” olarak adlandırın. SIG: İmzalayan, etkileşimli olmayan sıfır bilgiyle tek seferlik halka imza oluşturur [21] tekniklerini kullanarak kanıt. Diğer kullanıcıların arasından n'nin rastgele bir \(S'\) alt kümesini seçer. genel anahtarlar Pi, kendi anahtar çifti (x, P) ve anahtar görüntüsü I. İmzalayanın gizli dizini \(0 \leq s \leq n\) olsun \(S'\)de (ortak anahtarı Ps olacak şekilde). Rastgele bir {qi | ben = 0. . . n} ve {wi | ben = 0. . . (1 . . . l)'den n, i ̸= s} ve şunu uygular: aşağıdaki dönüşümler: Li = ( qiG, eğer ben = s qiG + wiPi, eğer ben ̸= s Ri = ( qiHp(Pi), eğer ben = s qiHp(Pi) + wiI, eğer ben ̸= s Bir sonraki adım etkileşimli olmayan mücadeleyi almaktır: c = Hs(m, L1, . . , Ln, R1, . . , Rn) Son olarak imzalayan kişi yanıtı hesaplar: ci =    wi, eğer ben ̸= s c - nP ben=0 ci mod ben, eğer ben = s ri = ( qi, eğer ben ̸= s qs –csx mod l, eğer ben = s Sonuçta ortaya çıkan imza \(\sigma\) = (I, c1, . . , cn, r1, . . , rn) olur. 9 VER: m mesajını, S kümesini, \(\sigma\) imzasını alır ve “doğru” veya “yanlış” çıktısını verir. LNK: bir I = {Ii} kümesini, bir \(\sigma\) imzasını alır ve "bağlantılı" veya "indep" çıktısını verir. Protokolün arkasındaki fikir oldukça basittir: Bir kullanıcı, imzalanabilecek bir imza üretir. benzersiz bir genel anahtar yerine bir dizi genel anahtarla kontrol edilir. İmzalayanın kimliği: sahibi üretinceye kadar ortak anahtarları sette bulunan diğer kullanıcılardan ayırt edilemez aynı anahtar çiftini kullanan ikinci bir imza. Özel anahtarlar x0 \(\cdots\) xi \(\cdots\) xn Genel anahtarlar P0 \(\cdots\) Pi \(\cdots\) Pn Yüzük İmza işaret doğrulamak Şekil 6. Halka imzasının anonimliği. GEN: İmzalayan kişi rastgele bir \(x \in [1, l - 1]\) gizli anahtarını seçer ve karşılık gelen değeri hesaplar. ortak anahtar P = xG. Ek olarak başka bir genel anahtar olan I = xHp(P)'yi de hesaplar. “anahtar resim” olarak adlandırın. SIG: İmzalayan, etkileşimli olmayan sıfır bilgiyle tek seferlik halka imza oluşturur [21] tekniklerini kullanarak kanıt. Diğer kullanıcıların arasından n'nin rastgele bir \(S'\) alt kümesini seçer. genel anahtarlar Pi, kendi anahtar çifti (x, P) ve anahtar görüntüsü I. İmzalayanın gizli dizini \(0 \leq s \leq n\) olsun \(S'\)de (ortak anahtarı Ps olacak şekilde). Rastgele bir {qi | ben = 0. . . n} ve {wi | ben = 0. . . (1 . . . l)'den n, i ̸= s} ve şunu uygular: aşağıdaki dönüşümler: Li = ( qiG, eğer ben = s qiG + wiPi, eğer ben ̸= s Ri = ( qiHp(Pi), eğer ben = s qiHp(Pi) + wiI, eğer ben ̸= s Bir sonraki adım etkileşimli olmayan mücadeleyi almaktır: c = Hs(m, L1, . . , Ln, R1, . . , Rn) Son olarak imzalayan kişi yanıtı hesaplar: ci =    wi, eğer ben ̸= s c - nP ben=0 ci mod l, eğer ben = s ri = ( qi, eğer ben ̸= s qs –csx mod l, eğer ben = s Sonuçta ortaya çıkan imza \(\sigma\) = (I, c1, . . , cn, r1, . . , rn) olur. 9 17 Belki bu aptalcadır, ancak S ve P_'leri birleştirirken dikkatli olunmalıdır. Eğer sadece şunu eklerseniz sona kadar olan son genel anahtar, herhangi biri geçen işlemleri kontrol ettiğinden bağlantı kurulamazlık bozuldu her işlemde ve patlamada listelenen son genel anahtarı kontrol edebilirsiniz. Bu genel anahtardır gönderenle ilişkilidir. Yani birleştirmeden sonra, bir sözde rasgele sayı üreteci oluşturulmalıdır. seçilen genel anahtarlara izin vermek için kullanılır. "...sahibi aynı anahtar çiftini kullanarak ikinci bir imza oluşturana kadar." Keşke yazar(lar?) bu konuyu detaylandıracaktı. Bunun şu anlama geldiğine inanıyorum: "Gizlenmek için bir dizi genel anahtar seçtiğinizde her zaman emin olun. Kendinize, iki anahtarın birbirine benzemediği tamamen yeni bir set seçersiniz." bağlantı kurulamaz duruma getirilecek oldukça güçlü bir durum. Belki "yeni bir rastgele set seçersiniz her ne kadar önemsiz olmayan kesişmeler kaçınılmaz olsa da, tüm olası anahtarlar" varsayımıyla olur, sık sık olmazlar. Her iki durumda da, bu ifadeyi daha derinlemesine incelemem gerekiyor. Bu, halka imzasını oluşturuyor. Sıfır bilgi kanıtları muhteşem: Bir sırrı bildiğinizi bana kanıtlamanız için size meydan okuyorum sırrını açıklamadan. Mesela çörek şeklinde bir mağaranın girişinde olduğumuzu varsayalım. ve mağaranın arka tarafında (girişin görülemeyeceği yerde) bir o vardır.hangi yöne giden kapı anahtarın sende olduğunu iddia et. Bir yöne gidersen her zaman geçmene izin verir, ama diğer yöne gidersen diğer yönde ise bir anahtara ihtiyacınız var. Ama bırakın anahtarı bana göstermek bile istemiyorsunuz bana kapıyı açtığını göster. Ama sen bana kapıyı nasıl açacağını bildiğini kanıtlamak istiyorsun. kapı. İnteraktif ortamda yazı tura atıyorum. Yazılar sola, yazılar sağa ve aşağıya iniyorsunuz madeni para sizi nereye yönlendirirse yönlendirsin, çörek şeklindeki mağara. Arkada, görüş alanımın ötesinde, sen diğer tarafa dönmek için kapıyı açın. Yazı-tura atma deneyini tekrarlıyoruz Anahtarın sende olduğundan emin olana kadar. Ancak bu açıkça ETKİLEŞİMLİ sıfır bilgi kanıtıdır. Sizin ve benim hiçbir zaman iletişim kurmak zorunda olmadığımız, etkileşimli olmayan versiyonlar da var; bu şekilde kulak misafiri olan kimse müdahale edemez. http://en.wikipedia.org/wiki/Zero-knowledge_proof Bu önceki tanımın tersidir.

VER: m mesajını, S kümesini, \(\sigma\) imzasını alır ve “doğru” veya “yanlış” çıktısını verir. LNK: bir I = {Ii} kümesini, bir \(\sigma\) imzasını alır ve "bağlantılı" veya "indep" çıktısını verir. Protokolün arkasındaki fikir oldukça basittir: Bir kullanıcı, imzalanabilecek bir imza üretir. benzersiz bir genel anahtar yerine bir dizi genel anahtarla kontrol edilir. İmzalayanın kimliği: sahibi üretinceye kadar ortak anahtarları sette bulunan diğer kullanıcılardan ayırt edilemez aynı anahtar çiftini kullanan ikinci bir imza. Özel anahtarlar x0 \(\cdots\) xi \(\cdots\) xn Genel anahtarlar P0 \(\cdots\) Pi \(\cdots\) Pn Yüzük İmza işaret doğrulamak Şekil 6. Halka imzasının anonimliği. GEN: İmzalayan kişi rastgele bir \(x \in [1, l - 1]\) gizli anahtarını seçer ve karşılık gelen değeri hesaplar. ortak anahtar P = xG. Ek olarak başka bir genel anahtar olan I = xHp(P)'yi de hesaplar. “anahtar resim” olarak adlandırın. SIG: İmzalayan, etkileşimli olmayan sıfır bilgiyle tek seferlik halka imza oluşturur [21] tekniklerini kullanarak kanıt. Diğer kullanıcıların arasından n'nin rastgele bir \(S'\) alt kümesini seçer. genel anahtarlar Pi, kendi anahtar çifti (x, P) ve anahtar görüntüsü I. İmzalayanın gizli dizini \(0 \leq s \leq n\) olsun \(S'\)de (ortak anahtarı Ps olacak şekilde). Rastgele bir {qi | ben = 0. . . n} ve {wi | ben = 0. . . (1 . . . l)'den n, i ̸= s} ve şunu uygular: aşağıdaki dönüşümler: Li = ( qiG, eğer ben = s qiG + wiPi, eğer ben ̸= s Ri = ( qiHp(Pi), eğer ben = s qiHp(Pi) + wiI, eğer ben ̸= s Bir sonraki adım etkileşimli olmayan mücadeleyi almaktır: c = Hs(m, L1, . . , Ln, R1, . . , Rn) Son olarak imzalayan kişi yanıtı hesaplar: ci =    wi, eğer ben ̸= s c - nP ben=0 ci mod l, eğer ben = s ri = ( qi, eğer ben ̸= s qs –csx mod l, eğer ben = s Sonuçta ortaya çıkan imza \(\sigma\) = (I, c1, . . , cn, r1, . . , rn) olur. 9 VER: m mesajını, S kümesini, \(\sigma\) imzasını alır ve “doğru” veya “yanlış” çıktısını verir. LNK: bir I = {Ii} kümesini, bir \(\sigma\) imzasını alır ve "bağlantılı" veya "indep" çıktısını verir. Protokolün arkasındaki fikir oldukça basittir: Bir kullanıcı, imzalanabilecek bir imza üretir. benzersiz bir genel anahtar yerine bir dizi genel anahtarla kontrol edilir. İmzalayanın kimliği: sahibi üretinceye kadar ortak anahtarları sette bulunan diğer kullanıcılardan ayırt edilemez aynı anahtar çiftini kullanan ikinci bir imza. Özel anahtarlar x0 \(\cdots\) xi \(\cdots\) xn Genel anahtarlar P0 \(\cdots\) Pi \(\cdots\) Pn Yüzük İmza işaret doğrulamak Şekil 6. Halka imzasının anonimliği. GEN: İmzalayan kişi rastgele bir \(x \in [1, l - 1]\) gizli anahtarını seçer ve karşılık gelen değeri hesaplar. ortak anahtar P = xG. Ek olarak başka bir genel anahtar olan I = xHp(P)'yi de hesaplar. “anahtar resim” olarak adlandırın. SIG: İmzalayan, etkileşimli olmayan sıfır bilgiyle tek seferlik halka imza oluşturur [21] tekniklerini kullanarak kanıt. Diğer kullanıcıların arasından n'nin rastgele bir \(S'\) alt kümesini seçer. genel anahtarlar Pi, kendi anahtar çifti (x, P) ve anahtar görüntüsü I. İmzalayanın gizli dizini \(0 \leq s \leq n\) olsun \(S'\)de (ortak anahtarı Ps olacak şekilde). Rastgele bir {qi | ben = 0. . . n} ve {wi | ben = 0. . . (1 . . . l)'den n, i ̸= s} ve şunu uygular: aşağıdaki dönüşümler: Li = ( qiG, eğer ben = s qiG + wiPi, eğer ben ̸= s Ri = ( qiHp(Pi), eğer ben = s qiHp(Pi) + wiI, eğer ben ̸= s Bir sonraki adım etkileşimli olmayan mücadeleyi almaktır: c = Hs(m, L1, . . , Ln, R1, . . , Rn) Son olarak imzalayan kişi yanıtı hesaplar: ci =    wi, eğer ben ̸= s c - nP ben=0 ci mod l, eğer ben = s ri = ( qi, eğer ben ̸= s qs –csx mod l, eğer ben = s Sonuçta ortaya çıkan imza \(\sigma\) = (I, c1, . . , cn, r1, . . , rn) olur. 9 18 Tüm bu alan kriptonottan bağımsızdır, halka imza algoritmasını basitçe tanımlar. para birimlerine referans. Bazı notasyonların makalenin geri kalanıyla tutarlı olduğundan şüpheleniyorum. yine de. Örneğin x, GEN'de seçilen ve P genel anahtarını veren "rastgele" gizli anahtardır. ve genel anahtar görüntüsü I. X'in bu değeri Bob'un bölüm 6, sayfa 8'de hesapladığı değerdir. Önceki açıklamadaki bazı karışıklıkları gidermeye başlıyoruz. Bu çok hoş; "Alice'in genel adresinden Bob'un genel adresine para aktarılmıyor Adres." Tek kullanımlık adresten tek kullanımlık adrese aktarılıyor. Yani bir bakıma işler şu şekilde yürüyor. Eğer Alex'in bazı kriptonotları varsa çünkü birisi bunları ona gönderdiyse bu, bunları Bob'a göndermek için gereken özel anahtarlara sahip olduğu anlamına gelir. O kullanıyor yeni bir tek seferlik adres oluşturmak için Bob'un kamuya açık bilgilerini kullanan bir Diffe-Hellman alışverişi ve kriptonotlar bu adrese aktarılır. Şimdi, yeni tek seferlik adresi oluşturmak için (muhtemelen güvenli) bir DH değişimi kullanıldığı için Alex'in CN'sini gönderdiği yerde, mesajı tekrarlamak için gereken özel anahtarlara sahip olan tek kişi Bob'tur. yukarıda. Artık Bob Alex oldu. http://en.wikipedia.org/wiki/Piecewise#Notation_and_interpretation Toplama i yerine j üzerinden indekslenmelidir. Her c_i rastgele önemsizdir (w_i rastgele olduğundan) c_i eşek hariçBu imzada yer alan gerçek anahtarla bağlantılıdır. c'nin değeri önceki bilgilerin hash'u. Bunun 'i' indeksini yeniden kullanmaktan daha kötü bir yazım hatası içerebileceğini düşünüyorum çünkü c_s görünüyor açıkça değil, örtülü olarak tanımlanmalıdır. Aslında bu denklemi güvenerek alırsak c_s = (1/2)c - (1/2) olduğunu tespit ederiz. toplam_i neq s c_i. Yani, bir hash eksi bir grup rastgele sayı. Öte yandan bu toplamın okunması amaçlanıyorsa "c_s = (c - sum_j neq s c_j) mod" l", sonra önceki bilgilerimizin hash değerini alırız, bir grup rastgele sayı üretiriz, tüm bu rastgele sayıları hash'den çıkarırız ve bu bize c_s'yi verir. Bu öyle görünüyor sezgilerime göre ne "olması gerektiği" ve sayfa 10'daki doğrulama adımıyla eşleştiği. Ancak sezgi matematik değildir. Bu konuyu daha derinlemesine inceleyeceğim. Daha önce olduğu gibi; gerçek olayla ilişkili olanlar dışında bunların tümü rastgele önemsiz olacaktır. imzalayanın genel anahtarı x. Bu seferki hariç, yapıdan beklediğim şey daha fazlası: r_i, i!=s için rastgeledir ve r_s, yalnızca gizli x ve s-indeksli değerleri tarafından belirlenir. q_i ve c_i.

VER: Doğrulayıcı, ters dönüşümleri uygulayarak imzayı kontrol eder: ( L' i = riG + ciPi R' i = riHp(Pi) + ciI Son olarak, doğrulayıcı şunları kontrol eder: nP ben=0 ci ?= Hs(m, L' 0, . . . , L' n, R' 0, . . . , R' n) mod l Bu eşitlik doğruysa, doğrulayıcı LNK algoritmasını çalıştırır. Aksi takdirde doğrulayıcı reddeder imza. LNK: Doğrulayıcı geçmiş imzalarda I kullanılıp kullanılmadığını kontrol eder (bu değerler I'i ayarla). Çoklu kullanım, aynı gizli anahtar altında iki imzanın üretildiği anlamına gelir. Protokolün anlamı: L-dönüşümlerini uygulayarak imzalayan kişi bildiğini kanıtlar öyle bir x ki, en az bir Pi = xG. Bu kanıtı tekrarlanamaz kılmak için anahtar görseli tanıtıyoruz I = xHp(P) olarak. İmzalayan kişi neredeyse aynı ifadeyi kanıtlamak için aynı katsayıları (ri, ci) kullanır: öyle bir x biliyor ki, en az bir \(H_p(P_i) = I \cdot x^{-1}\). Eğer \(x \to I\) eşlemesi bir enjeksiyon ise: 1. Hiç kimse anahtar görselden genel anahtarı kurtaramaz ve imzalayanı tanımlayamaz; 2. İmzalayan kişi farklı I'lere ve aynı x'e sahip iki imza atamaz. Tam bir güvenlik analizi Ek A'da verilmektedir. 4.5 Standart CryptoNote işlemi Bob, her iki yöntemi (bağlanamayan genel anahtarlar ve izlenemeyen halka imza) birleştirerek şunu başarır: Orijinal Bitcoin şemasıyla karşılaştırıldığında yeni gizlilik düzeyi. Yalnızca saklamasını gerektirir anonim işlemleri almaya ve göndermeye başlamak için bir özel anahtar (a, b) ve yayınlayın (A, B). Bob, her işlemi doğrularken ayrıca işlemin kendisine ait olup olmadığını kontrol etmek için yalnızca iki eliptik eğri çarpımı ve çıktı başına bir toplama işlemi gerçekleştirir. Onun için her çıktı Bob bir kerelik anahtar çiftini (pi, Pi) kurtarır ve bunu cüzdanında saklar. Herhangi bir giriş olabilir yalnızca tek bir işlemde ortaya çıkmaları durumunda aynı sahibine sahip oldukları ikinci dereceden kanıtlanmıştır. içinde Aslında tek seferlik zil imzası nedeniyle bu ilişkinin kurulması çok daha zordur. Bir halka imzasıyla Bob, her girişi başkasının girişleri arasında etkili bir şekilde gizleyebilir; hepsi mümkün Önceki sahibin (Alice) bile bundan daha fazla bilgisi olmasa bile harcama yapanlar eşit olasılıklı olacaktır. herhangi bir gözlemci Bob, işlemini imzalarken, kendisininkiyle aynı miktarda yabancı çıktı belirtir. çıktı, diğer kullanıcıların katılımı olmadan hepsini karıştırıyor. Bob'un kendisi (aynı zamanda başkası) bu ödemelerden herhangi birinin harcanıp harcanmadığını bilmiyor: bir çıktı kullanılabilir Binlerce imzada belirsizlik unsuru olarak yer alıyor ve asla saklanma hedefi olarak görülmüyor. Çift Harcama kontrolü LNK aşamasında, kullanılan anahtar görseller setine göre kontrol edilirken gerçekleşir. Bob belirsizlik derecesini kendisi seçebilir: n = 1, sahip olduğu olasılık anlamına gelir harcanan çıktının olasılığı %50, n=99 ise %1'i verir. Ortaya çıkan imzanın boyutu artar O(n+1) şeklinde doğrusaldır, dolayısıyla geliştirilmiş anonimlik Bob'a ekstra işlem ücreti maliyeti getirir. O da yapabilir n = 0'ı ayarlayın ve halka imzasının yalnızca bir öğeden oluşmasını sağlayın, ancak bu anında onu müsrif biri olarak ifşa et. 10 VER: Doğrulayıcı, ters dönüşümleri uygulayarak imzayı kontrol eder: ( L' i = riG + ciPi R' i = riHp(Pi) + ciI Son olarak, doğrulayıcı şunları kontrol eder: nP ben=0 ci ?= Hs(m, L' 0, . . . , L' n, R' 0, . . . , R' n) mod l Bu eşitlik doğruysa, doğrulayıcı LNK algoritmasını çalıştırır. Aksi takdirde doğrulayıcı reddeder imza. LNK: Doğrulayıcı geçmiş imzalarda I kullanılıp kullanılmadığını kontrol eder (bu değerler I'i ayarla). Çoklu kullanım, aynı gizli anahtar altında iki imzanın üretildiği anlamına gelir. Protokolün anlamı: L-dönüşümlerini uygulayarak imzalayan kişi bildiğini kanıtlar öyle bir x ki, en az bir Pi = xG. Bu kanıtı tekrarlanamaz kılmak için anahtar görseli tanıtıyoruz I = xHp(P) olarak. İmzalayan kişi neredeyse aynı ifadeyi kanıtlamak için aynı katsayıları (ri, ci) kullanır: öyle bir x biliyor ki, en az bir \(H_p(P_i) = I \cdot x^{-1}\). Eğer \(x \to I\) eşlemesi bir enjeksiyon ise: 1. Hiç kimse anahtar görselden genel anahtarı kurtaramaz ve imzalayanı tanımlayamaz; 2. İmzalayan kişi farklı I'lere ve aynı x'e sahip iki imza atamaz. Tam bir güvenlik analizi Ek A'da verilmektedir. 4.5 Standart CryptoNote işlemi Bob, her iki yöntemi (bağlanamayan genel anahtarlar ve izlenemeyen halka imza) birleştirerek şunu başarır: Orijinal Bitcoin şemasıyla karşılaştırıldığında yeni gizlilik düzeyi. Yalnızca saklamasını gerektirir anonim işlemleri almaya ve göndermeye başlamak için bir özel anahtar (a, b) ve yayınlayın (A, B). Bob, her işlemi doğrularken ayrıca işlemin kendisine ait olup olmadığını kontrol etmek için yalnızca iki eliptik eğri çarpımı ve çıktı başına bir toplama işlemi gerçekleştirir. Onun için her çıktı Bob bir kerelik anahtar çiftini (pi, Pi) kurtarır ve stcüzdanında saklıyor. Herhangi bir giriş olabilir yalnızca tek bir işlemde ortaya çıkmaları durumunda aynı sahibine sahip oldukları ikinci dereceden kanıtlanmıştır. içinde Aslında tek seferlik zil imzası nedeniyle bu ilişkinin kurulması çok daha zordur. Bir halka imzasıyla Bob, her girişi başkasının girişleri arasında etkili bir şekilde gizleyebilir; hepsi mümkün Önceki sahibin (Alice) bile bundan daha fazla bilgisi olmasa bile harcama yapanlar eşit olasılıklı olacaktır. herhangi bir gözlemci Bob, işlemini imzalarken, kendisininkiyle aynı miktarda yabancı çıktı belirtir. çıktı, diğer kullanıcıların katılımı olmadan hepsini karıştırıyor. Bob'un kendisi (aynı zamanda başkası) bu ödemelerden herhangi birinin harcanıp harcanmadığını bilmiyor: bir çıktı kullanılabilir Binlerce imzada belirsizlik unsuru olarak yer alıyor ve asla saklanma hedefi olarak görülmüyor. Çift Harcama kontrolü LNK aşamasında, kullanılan anahtar görseller setine göre kontrol edilirken gerçekleşir. Bob belirsizlik derecesini kendisi seçebilir: n = 1, sahip olduğu olasılık anlamına gelir harcanan çıktının olasılığı %50, n=99 ise %1'i verir. Ortaya çıkan imzanın boyutu artar O(n+1) şeklinde doğrusaldır, dolayısıyla geliştirilmiş anonimlik Bob'a ekstra işlem ücreti maliyeti getirir. O da yapabilir n = 0'ı ayarlayın ve halka imzasının yalnızca bir öğeden oluşmasını sağlayın, ancak bu anında onu müsrif biri olarak ifşa et. 10 19 Bu noktada kafam çok karışık. Alex, imzayı (I,c_1, ..., c_n, r_1, ..., r_n) ve genel listeyi içeren bir M mesajı alır. S. tuşlarına basıyor ve VER'i çalıştırıyor. Bu L_i' ve R_i'yi hesaplayacaktır Bu, önceki sayfada c_s = c - sum_i neq s c_i olduğunu doğrular. İlk başta kafam çok karışıktı. Herkes L_i' ve R_i'yi hesaplayabilir. Aslında her r_i ve c_i imzada yayınlandı sigma I değeriyle birlikte. S = kümesi Tüm genel anahtarların P_i'si de yayınlandı. Yani sigmayı ve setini gören herkes S = P_i tuşları L_i' ve R_i' için aynı değerleri alacak ve dolayısıyla imzayı kontrol edecektir. Ancak daha sonra bu bölümün bir "kontrol" değil, yalnızca bir imza algoritmasını tanımladığını hatırladım. İmzalanmışsa, BANA GÖNDERİLİP GÖNDERİLMEDİĞİNİ kontrol et ve eğer öyleyse, git parayı harca." Bu KESİNLİKLE Oyunun imza kısmı. Sonunda oraya vardığımda Ek A'yı okumak isterim. Cryptonote'un Bitcoin ile tam ölçekli operasyon bazında karşılaştırmasını görmek istiyorum. Ayrıca elektrik/sürdürülebilirlik. Algoritmanın hangi parçaları burada "girdi" oluşturuyor? İşlem girişinin bir Tutar ve toplamı UTXOs kümesinden oluştuğuna inanıyorum. Tutar. Bu belirsiz. "Gizlenme hedefi mi?" Bunu birkaç dakikadır düşünüyorum ve hala bulamadım bunun ne anlama gelebileceğine dair en belirsiz fikir. Çift harcama saldırısı yalnızca bir düğümün algılanan kullanılmış anahtarı değiştirilerek gerçekleştirilebilir resimler \(I\) olarak ayarlandı. "Belirsizlik derecesi" = n ancak işleme dahil edilen genel anahtarların toplam sayısı n+1. Yani belirsizlik derecesi "başka kaç kişinin olmasını istiyorsunuz" olacaktır. kalabalık mı?" Cevap muhtemelen varsayılan olarak "mümkün olduğu kadar çok" olacaktır.

VER: Doğrulayıcı, ters dönüşümleri uygulayarak imzayı kontrol eder: ( L' i = riG + ciPi R' i = riHp(Pi) + ciI Son olarak, doğrulayıcı şunları kontrol eder: nP ben=0 ci ?= Hs(m, L' 0, . . . , L' n, R' 0, . . . , R' n) mod l Bu eşitlik doğruysa, doğrulayıcı LNK algoritmasını çalıştırır. Aksi takdirde doğrulayıcı reddeder imza. LNK: Doğrulayıcı geçmiş imzalarda I kullanılıp kullanılmadığını kontrol eder (bu değerler I'i ayarla). Çoklu kullanım, aynı gizli anahtar altında iki imzanın üretildiği anlamına gelir. Protokolün anlamı: L-dönüşümlerini uygulayarak imzalayan kişi bildiğini kanıtlar öyle bir x ki, en az bir Pi = xG. Bu kanıtı tekrarlanamaz kılmak için anahtar görseli tanıtıyoruz I = xHp(P) olarak. İmzalayan kişi neredeyse aynı ifadeyi kanıtlamak için aynı katsayıları (ri, ci) kullanır: öyle bir x biliyor ki, en az bir \(H_p(P_i) = I \cdot x^{-1}\). Eğer \(x \to I\) eşlemesi bir enjeksiyon ise: 1. Hiç kimse anahtar görselden genel anahtarı kurtaramaz ve imzalayanı tanımlayamaz; 2. İmzalayan kişi farklı I'lere ve aynı x'e sahip iki imza atamaz. Tam bir güvenlik analizi Ek A'da verilmektedir. 4.5 Standart CryptoNote işlemi Bob, her iki yöntemi (bağlanamayan genel anahtarlar ve izlenemeyen halka imza) birleştirerek şunu başarır: Orijinal Bitcoin düzeniyle karşılaştırıldığında yeni gizlilik düzeyi. Yalnızca saklamasını gerektirir anonim işlemleri almaya ve göndermeye başlamak için bir özel anahtar (a, b) ve yayınlayın (A, B). Bob, her işlemi doğrularken ayrıca işlemin kendisine ait olup olmadığını kontrol etmek için yalnızca iki eliptik eğri çarpımı ve çıktı başına bir toplama işlemi gerçekleştirir. Onun için her çıktı Bob bir kerelik anahtar çiftini (pi, Pi) kurtarır ve bunu cüzdanında saklar. Herhangi bir giriş olabilir yalnızca tek bir işlemde ortaya çıkmaları durumunda aynı sahibine sahip oldukları ikinci dereceden kanıtlanmıştır. içinde Aslında tek seferlik zil imzası nedeniyle bu ilişkinin kurulması çok daha zordur. Bir halka imzasıyla Bob, her girişi başkasının girişleri arasında etkili bir şekilde gizleyebilir; hepsi mümkün Önceki sahibin (Alice) bile bundan daha fazla bilgisi olmasa bile harcama yapanlar eşit olasılıklı olacaktır. herhangi bir gözlemci Bob, işlemini imzalarken, kendisininkiyle aynı miktarda yabancı çıktı belirtir. çıktı, diğer kullanıcıların katılımı olmadan hepsini karıştırıyor. Bob'un kendisi (aynı zamanda başkası) bu ödemelerden herhangi birinin harcanıp harcanmadığını bilmiyor: bir çıktı kullanılabilir Binlerce imzada belirsizlik unsuru olarak yer alıyor ve asla saklanma hedefi olarak görülmüyor. Çift Harcama kontrolü LNK aşamasında, kullanılan anahtar görseller setine göre kontrol edilirken gerçekleşir. Bob belirsizlik derecesini kendisi seçebilir: n = 1, sahip olduğu olasılık anlamına gelir harcanan çıktının olasılığı %50, n=99 ise %1'i verir. Ortaya çıkan imzanın boyutu artar O(n+1) şeklinde doğrusaldır, dolayısıyla geliştirilmiş anonimlik Bob'a ekstra işlem ücreti maliyeti getirir. O da yapabilir n = 0'ı ayarlayın ve halka imzasının yalnızca bir öğeden oluşmasını sağlayın, ancak bu anında onu müsrif biri olarak ifşa et. 10 VER: Doğrulayıcı, ters dönüşümleri uygulayarak imzayı kontrol eder: ( L' i = riG + ciPi R' i = riHp(Pi) + ciI Son olarak, doğrulayıcı şunları kontrol eder: nP ben=0 ci ?= Hs(m, L' 0, . . . , L' n, R' 0, . . . , R' n) mod l Bu eşitlik doğruysa, doğrulayıcı LNK algoritmasını çalıştırır. Aksi takdirde doğrulayıcı reddeder imza. LNK: Doğrulayıcı geçmiş imzalarda I kullanılıp kullanılmadığını kontrol eder (bu değerler I'i ayarla). Çoklu kullanım, aynı gizli anahtar altında iki imzanın üretildiği anlamına gelir. Protokolün anlamı: L-dönüşümlerini uygulayarak imzalayan kişi bildiğini kanıtlar öyle bir x ki, en az bir Pi = xG. Bu kanıtı tekrarlanamaz kılmak için anahtar görseli tanıtıyoruz I = xHp(P) olarak. İmzalayan kişi neredeyse aynı ifadeyi kanıtlamak için aynı katsayıları (ri, ci) kullanır: öyle bir x biliyor ki, en az bir \(H_p(P_i) = I \cdot x^{-1}\). Eğer \(x \to I\) eşlemesi bir enjeksiyon ise: 1. Hiç kimse anahtar görselden genel anahtarı kurtaramaz ve imzalayanı tanımlayamaz; 2. İmzalayan kişi farklı I'lere ve aynı x'e sahip iki imza atamaz. Tam bir güvenlik analizi Ek A'da verilmektedir. 4.5 Standart CryptoNote işlemi Bob, her iki yöntemi (bağlanamayan genel anahtarlar ve izlenemeyen halka imza) birleştirerek şunu başarır: Orijinal Bitcoin şemasıyla karşılaştırıldığında yeni gizlilik düzeyi. Yalnızca saklamasını gerektirir anonim işlemleri almaya ve göndermeye başlamak için bir özel anahtar (a, b) ve yayınlayın (A, B). Bob, her işlemi doğrularken ayrıca işlemin kendisine ait olup olmadığını kontrol etmek için yalnızca iki eliptik eğri çarpımı ve çıktı başına bir toplama işlemi gerçekleştirir. Onun için her çıktı Bob bir kerelik anahtar çiftini (pi, Pi) kurtarır ve stcüzdanında saklıyor. Herhangi bir giriş olabilir yalnızca tek bir işlemde ortaya çıkmaları durumunda aynı sahibine sahip oldukları ikinci dereceden kanıtlanmıştır. içinde Aslında tek seferlik zil imzası nedeniyle bu ilişkinin kurulması çok daha zordur. Bir halka imzasıyla Bob, her girişi başkasının girişleri arasında etkili bir şekilde gizleyebilir; hepsi mümkün Önceki sahibin (Alice) bile bundan daha fazla bilgisi olmasa bile harcama yapanlar eşit olasılıklı olacaktır. herhangi bir gözlemci Bob, işlemini imzalarken, kendisininkiyle aynı miktarda yabancı çıktı belirtir. çıktı, diğer kullanıcıların katılımı olmadan hepsini karıştırıyor. Bob'un kendisi (aynı zamanda başkası) bu ödemelerden herhangi birinin harcanıp harcanmadığını bilmiyor: bir çıktı kullanılabilir Binlerce imzada belirsizlik unsuru olarak yer alıyor ve asla saklanma hedefi olarak görülmüyor. Çift Harcama kontrolü LNK aşamasında, kullanılan anahtar görseller setine göre kontrol edilirken gerçekleşir. Bob belirsizlik derecesini kendisi seçebilir: n = 1, sahip olduğu olasılık anlamına gelir harcanan çıktının olasılığı %50, n=99 ise %1'i verir. Ortaya çıkan imzanın boyutu artar O(n+1) şeklinde doğrusaldır, dolayısıyla geliştirilmiş anonimlik Bob'a ekstra işlem ücreti maliyeti getirir. O da yapabilir n = 0'ı ayarlayın ve halka imzasının yalnızca bir öğeden oluşmasını sağlayın, ancak bu anında onu müsrif biri olarak ifşa et. 10 20 Bu ilginç; daha önce Bob adlı alıcının tüm GELENLERİ alabilmesi için bir yol sunmuştuk. özel anahtarlarının yarısını deterministik olarak seçerek veya özel anahtarlarının yarısını herkese açık olarak yayınlıyor. Bu geri dönüşü olmayan bir politikadır. Burada görüyoruz Gönderenin Alex'in tek bir giden işlemi bağlanabilir olarak seçmesinin bir yolu, ama aslında bu Alex'in tüm ağın göndericisi olduğunu ortaya koyuyor. Bu geri dönüşü olmayan bir politika DEĞİLDİR. Bu, işlem bazındadır. Üçüncü bir politika var mı? Alıcı Bob, Alex için benzersiz bir ödeme kimliği oluşturabilir mi? belki Diffe-Hellman değişimini kullanarak hiç değişmiyor? Birisi bu ödemeyi dahil ederse İşlemin bir yerinde Bob'un adresine gönderilen kimlik, Alex'ten gelmiş olmalı. Bu şekilde, Alex'in belirli bir bağlantıya bağlanmayı seçerek kendisini tüm ağa göstermesine gerek kalmaz. ancak yine de parasını gönderdiği kişiye kendisini tanıtabilir. Poloniex'in yaptığı da bu değil mi?

İşlem Gönderim girişi Çıkış0 . . . Çıkış . . . Çıkış Anahtar resim İmzalar Yüzük İmzası Hedef anahtarı Çıkış1 Hedef anahtarı Çıkış Yabancı işlemler Gönderenin çıktısı Hedef anahtarı Tek kullanımlık anahtar eşleştirme Bir kerelik özel anahtar ben = xHp(P) P, x Şekil 7. Standart bir işlemde halka imzası üretimi. 5 Eşitlikçi İş Kanıtı Bu bölümde yeni proof-of-work algoritmasını öneriyor ve temellendiriyoruz. Öncelikli hedefimiz CPU (çoğunluk) ve GPU/FPGA/ASIC (azınlık) madencileri arasındaki boşluğu kapatmaktır. öyle bazı kullanıcıların diğerlerine göre belirli bir avantaja sahip olabileceği ancak yatırımlarının en azından güçle birlikte doğrusal olarak büyümelidir. Daha genel olarak özel amaçlı cihazların üretilmesi mümkün olduğu kadar az kârlı olmalıdır. 5.1 İlgili çalışmalar Orijinal Bitcoin proof-of-work protokolü, CPU yoğun fiyatlandırma işlevini SHA-256 kullanır. Temel olarak temel mantıksal operatörlerden oluşur ve yalnızca hesaplama hızına dayanır. işlemci bu nedenle çok çekirdekli/taşıyıcı uygulaması için mükemmel şekilde uygundur. Ancak modern bilgisayarlar yalnızca saniyedeki işlem sayısıyla sınırlı değildir. ama aynı zamanda hafıza boyutuna göre. Bazı işlemciler diğerlerinden önemli ölçüde daha hızlı olsa da [8], bellek boyutlarının makineler arasında değişme olasılığı daha azdır. Belleğe bağlı fiyat fonksiyonları ilk olarak Abadi ve diğerleri tarafından tanıtıldı ve şu şekilde tanımlandı: “hesaplama zamanına belleğe erişimde harcanan sürenin hakim olduğu işlevler” [15]. Ana fikir, büyük bir veri bloğunu (“not defteri”) tahsis eden bir algoritma oluşturmaktır. Nispeten yavaş erişilebilen bellek içinde (örneğin RAM) ve “bir içindeki öngörülemeyen konumlar dizisi”. Bir blok muhafaza edilebilecek kadar büyük olmalıdır Verileri her erişim için yeniden hesaplamaktan daha avantajlıdır. Algoritma aynı zamanda dahili paralelliği önler, dolayısıyla N eşzamanlı iş parçacığı N kat daha fazla bellek gerektirir hemen. Dwork ve diğerleri [22] bu yaklaşımı araştırıp resmileştirdiler ve bu da onları başka bir yaklaşım önermeye yönlendirdi fiyatlandırma fonksiyonunun bir çeşidi: “Mbound”. Bir eser daha F. Coelho'ya ait [20] 11 İşlem Gönderim girişi Çıkış0 . . . Çıkış . . . Çıkış Anahtar resim İmzalar Yüzük İmzası Hedef anahtarı Çıkış1 Hedef anahtarı Çıkış Yabancı işlemler Gönderenin çıktısı Hedef anahtarı Tek kullanımlık anahtar eşleştirme Bir kerelik özel anahtar ben = xHp(P) P, x Şekil 7. Standart bir işlemde halka imzası üretimi. 5 Eşitlikçi İş Kanıtı Bu bölümde yeni proof-of-work algoritmasını öneriyor ve temellendiriyoruz. Öncelikli hedefimiz CPU (çoğunluk) ve GPU/FPGA/ASIC (azınlık) madencileri arasındaki boşluğu kapatmaktır. öyle bazı kullanıcıların diğerlerine göre belirli bir avantaja sahip olabileceği ancak yatırımlarının en azından güçle birlikte doğrusal olarak büyümelidir. Daha genel olarak özel amaçlı cihazların üretilmesi mümkün olduğu kadar az kârlı olmalıdır. 5.1 İlgili çalışmalar Orijinal Bitcoin proof-of-work protokolü, CPU yoğun fiyatlandırma işlevini SHA-256 kullanır. Temel olarak temel mantıksal operatörlerden oluşur ve yalnızca hesaplama hızına dayanır. işlemci bu nedenle çok çekirdekli/taşıyıcı uygulaması için mükemmel şekilde uygundur. Ancak modern bilgisayarlar yalnızca saniyedeki işlem sayısıyla sınırlı değildir. ama aynı zamanda hafıza boyutuna göre. Bazı işlemciler diğerlerinden önemli ölçüde daha hızlı olabilse de [8], bellek boyutlarının makineler arasında değişme olasılığı daha azdır. Belleğe bağlı fiyat fonksiyonları ilk olarak Abadi ve diğerleri tarafından tanıtıldı ve şu şekilde tanımlandı: “hesaplama zamanına belleğe erişimde harcanan sürenin hakim olduğu işlevler” [15]. Ana fikir, büyük bir veri bloğunu (“not defteri”) tahsis eden bir algoritma oluşturmaktır. Nispeten yavaş erişilebilen bellek içinde (örneğin RAM) ve “bir içindeki öngörülemeyen konumlar dizisi”. Bir blok muhafaza edilebilecek kadar büyük olmalıdır Verileri her erişim için yeniden hesaplamaktan daha avantajlıdır. Algoritma aynı zamanda dahili paralelliği önler, dolayısıyla N eşzamanlı iş parçacığı N kat daha fazla bellek gerektirir hemen. Dwork ve arkadaşları [22] bu yaklaşımı araştırıp resmileştirdiler ve bu da onları başka bir yaklaşım önermeye yöneltti. fiyatlandırma fonksiyonunun bir çeşidi: “Mbound”. Bir eser daha F. Coelho'ya ait [20] 11 21 Görünüşte bunlar bizim UTXO'larımız: tutarlar ve hedef anahtarlarımız. Bu standart işlemi oluşturan ve Bob'a gönderen kişi Alex ise, o zaman Alex'in özel anahtarları da vardır bunların her birine. Bu diyagramı çok seviyorum çünkü daha önceki bazı sorulara yanıt veriyor. Bir Txn girişi oluşur bir dizi Txn çıkışı ve bir keresim. Daha sonra tümü dahil olmak üzere halka imzayla imzalanır. Alex'in anlaşmaya dahil edilen tüm yabancı işlemlere ait özel anahtarları. Txn çıktısı bir miktar ve bir hedef anahtarından oluşur. İşlemin alıcısı, harcamak için makalede daha önce açıklandığı gibi tek kullanımlık özel anahtarlarını istedikleri zaman oluşturabilirler. para. Bunun gerçek kodla ne kadar eşleştiğini öğrenmek çok keyifli olacak... Hayır, Nic van Saberhagen iş kanıtı algoritmasının bazı özelliklerini gevşek bir şekilde açıklıyor, aslında bu algoritmayı tanımlamadan. CryptoNight algoritmasının kendisi derin bir analiz GEREKTİRİR. Bunu okuyunca kekeledim. Yatırım en azından güçle birlikte doğrusal olarak mı büyümeli, yoksa yatırım en fazla güçle doğrusal olarak mı büyüyor? Ve sonra şunu fark ettim; Ben bir madenci veya yatırımcı olarak genellikle "ne kadar güç elde edebilirim" diye düşünürüm yatırım için mi?" "Sabit miktardaki güç için ne kadar yatırım gerekir?" değil. Elbette, yatırımı I ile, gücü ise P ile belirtin. Eğer I(P) gücün bir fonksiyonu olarak yatırım ise ve P(I) yatırımın bir fonksiyonu olarak güçtür, birbirlerinin tersi olacaktır (nerede olursa olsun) tersler mevcut olabilir). Ve eğer I(P), doğrusaldan daha hızlıysa, P(I) doğrusaldan daha yavaştır. Bu nedenle, yatırımcılar için daha düşük bir getiri oranı olacaktır. Yani yazarın burada söylediği şu: "Elbette, ne kadar çok yatırım yaparsanız, o kadar çok kazanırsınız. güç. Ancak bunu daha düşük bir getiri oranı meselesi haline getirmeye çalışmalıyız." CPU yatırımları eninde sonunda alt sınıra ulaşacak; soru, yazarların ASIC'leri de bunu yapmaya zorlayacak bir POW algoritması tasarladık. Varsayımsal bir "geleceğin para birimi" her zaman en yavaş/en sınırlı kaynaklarla mı madencilik yapmalı? Abadi ve arkadaşlarının (bazı Google ve Microsoft mühendislerinin yazar olduğu) makalesi şöyledir: esasen, son birkaç yıldır bellek boyutunun çok daha küçük olduğu gerçeğini kullanarak makineler arasında işlemci hızından daha fazla farklılık vardır ve doğrusaldan daha fazla bir yatırım-güç oranına sahiptir. Birkaç yıl içinde bunun yeniden değerlendirilmesi gerekebilir! Herşey bir silahlanma yarışı... Bir hash işlevinin oluşturulması zordur; bu kısıtlamaları karşılayan bir hash işlevi oluşturmak daha zor görünüyor. Bu yazıda gerçekle ilgili hiçbir açıklama yok gibi görünüyor hashing algoritması CryptoNight. Bunun SHA-3'ün hafıza açısından zor bir uygulaması olduğunu düşünüyorum. forum gönderilerinde ama hiçbir fikrim yok... ve mesele de bu. Açıklanması gerekir.

en etkili çözümü önerdi: “Hokkaido”. Bildiğimiz kadarıyla büyük bir dizide sözde rastgele arama fikrine dayanan son çalışma C. Percival [32] tarafından “scrypt” olarak bilinen algoritma. Önceki işlevlerden farklı olarak aşağıdakilere odaklanır: anahtar türetme ve proof-of-work sistemler değil. Bu gerçeğe rağmen scrypt amacımıza hizmet edebilir: SHA-256 gibi kısmi hash dönüşüm probleminde bir fiyatlandırma işlevi olarak iyi çalışır. Bitcoin. Şu ana kadar Litecoin [14] ve diğer bazı Bitcoin çatallarda şifre zaten uygulandı. Bununla birlikte, uygulanması aslında belleğe bağlı değildir: "bellek erişim süresi / genel" oranı time" yeterince büyük değil çünkü her örnek yalnızca 128 KB kullanıyor. Bu, GPU madencilerinin kabaca 10 kat daha etkili olmaya devam ediyor ve nispeten yaratma olanağı bırakmaya devam ediyor ucuz ama son derece verimli madencilik cihazları. Dahası, şifre yapısının kendisi bellek boyutu ile bellek boyutu arasında doğrusal bir değiş tokuşa izin verir. Karalama defterindeki her bloğun yalnızca bir öncekinden türetilmesi nedeniyle CPU hızı. Örneğin, her ikinci bloğu saklayabilir ve diğerlerini tembel bir şekilde yeniden hesaplayabilirsiniz, yani yalnızca gerekli olduğunda. Sözde rastgele indekslerin düzgün dağıldığı varsayılır, dolayısıyla ek blokların yeniden hesaplamalarının beklenen değeri 1'dir \(2 \cdot N\), burada N sayıdır yinelemelerden oluşur. Genel hesaplama süresi yarıdan daha az artar çünkü ayrıca karalama defterinin hazırlanması ve hashing gibi zamandan bağımsız (sabit zamanlı) işlemler her yineleme. Bellek maliyetlerinin 2/3'ünden tasarruf etmek 1 \(3 \cdot N\) + 1 3 \(\cdot\) \(2 \cdot N\) = N ek yeniden hesaplama; 9/10 sonuç 1 \(10 \cdot N\) + . . . + 1 \(10 \cdot 9 \cdot N\) = 4,5K. Sadece 1 tanesinin saklandığını göstermek kolaydır. tüm bloklardan zamanı s−1 faktöründen daha az artırır 2. Bu da CPU'lu bir makinenin olduğu anlamına gelir. Modern çiplerden 200 kat daha hızlı olan çipler, karalama defterinin yalnızca 320 baytını depolayabiliyor. 5.2 Önerilen algoritma proof-of-work fiyatlandırma işlevi için yeni bir belleğe bağlı algoritma öneriyoruz. Şuna dayanır: Yavaş bir belleğe rastgele erişim ve gecikme bağımlılığını vurgular. Her birini şifrelemenin aksine yeni blok (64 bayt uzunluğunda) önceki tüm bloklara bağlıdır. Sonuç olarak varsayımsal "Hafıza koruyucu" hesaplama hızını katlanarak artırmalıdır. Algoritmamız aşağıdaki nedenlerden dolayı örnek başına yaklaşık 2 Mb gerektirir: 1. Modern işlemcilerin ana akım haline gelmesi gereken L3 önbelleğine (çekirdek başına) sığar birkaç yıl içinde; 2. Bir megabayt dahili bellek, modern bir ASIC boru hattı için neredeyse kabul edilemez bir boyuttur; 3. GPU'lar yüzlerce eş zamanlı örneği çalıştırabilir ancak başka açılardan sınırlıdırlar: GDDR5 bellek, CPU L3 önbelleğinden daha yavaştır ve bant genişliği açısından dikkat çekicidir. rastgele erişim hızı. 4. Karalama defterinin önemli ölçüde genişlemesi yinelemelerde bir artış gerektirecektir; dönüş genel bir süre artışı anlamına gelir. Güvenin olmadığı bir p2p ağında "ağır" çağrılar, ciddi güvenlik açıkları var çünkü düğümler her yeni bloğun proof-of-work değerini kontrol etmek zorunda. Bir düğüm her hash değerlendirmesine önemli miktarda zaman harcıyorsa, bu kolayca yapılabilir. Rastgele çalışma verilerine (nonce değerleri) sahip bir dizi sahte nesne tarafından DDoS uygulandı. 12 en etkili çözümü önerdi: “Hokkaido”. Bildiğimiz kadarıyla büyük bir dizide sözde rastgele arama fikrine dayanan son çalışma C. Percival [32] tarafından “scrypt” olarak bilinen algoritma. Önceki işlevlerden farklı olarak aşağıdakilere odaklanır: anahtar türetme, proof-of-work sistemler değil. Bu gerçeğe rağmen scrypt amacımıza hizmet edebilir: SHA-256 gibi kısmi hash dönüştürme probleminde bir fiyatlandırma işlevi olarak iyi çalışır. Bitcoin. Şu ana kadar Litecoin [14] ve diğer bazı Bitcoin çatallarda şifre zaten uygulandı. Bununla birlikte, uygulanması aslında belleğe bağlı değildir: "bellek erişim süresi / genel" oranı time" yeterince büyük değil çünkü her örnek yalnızca 128 KB kullanıyor. Bu, GPU madencilerine izin verir kabaca 10 kat daha etkili olmaya devam ediyor ve nispeten yaratma olanağı bırakmaya devam ediyor ucuz ama son derece verimli madencilik cihazları. Dahası, şifre yapısının kendisi bellek boyutu ile bellek boyutu arasında doğrusal bir değiş tokuşa izin verir. Karalama defterindeki her bloğun yalnızca bir öncekinden türetilmesi nedeniyle CPU hızı. Örneğin, her ikinci bloğu saklayabilir ve diğerlerini tembel bir şekilde yeniden hesaplayabilirsiniz, yani yalnızca gerekli olduğunda. Sözde rastgele indekslerin düzgün dağıldığı varsayılır, dolayısıyla ek blokların yeniden hesaplamalarının beklenen değeri 1'dir \(2 \cdot N\), buradaN sayıdır yinelemelerden oluşur. Genel hesaplama süresi yarıdan daha az artar çünkü ayrıca karalama defterinin hazırlanması ve hashing gibi zamandan bağımsız (sabit zamanlı) işlemler her yineleme. Bellek maliyetlerinin 2/3'ünden tasarruf etmek 1 \(3 \cdot N\) + 1 3 \(\cdot\) \(2 \cdot N\) = N ek yeniden hesaplama; 9/10 sonuç 1 \(10 \cdot N\) + . . . + 1 \(10 \cdot 9 \cdot N\) = 4,5K. Sadece 1 tanesinin saklandığını göstermek kolaydır. tüm bloklardan zamanı s−1 faktöründen daha az artırır 2. Bu da CPU'lu bir makinenin olduğu anlamına gelir. Modern çiplerden 200 kat daha hızlı olan çipler, karalama defterinin yalnızca 320 baytını depolayabiliyor. 5.2 Önerilen algoritma proof-of-work fiyatlandırma işlevi için yeni bir belleğe bağlı algoritma öneriyoruz. Şuna dayanır: Yavaş bir belleğe rastgele erişim ve gecikme bağımlılığını vurgular. Her birini şifrelemenin aksine yeni blok (64 bayt uzunluğunda) önceki tüm bloklara bağlıdır. Sonuç olarak varsayımsal "Hafıza koruyucu" hesaplama hızını katlanarak artırmalıdır. Algoritmamız aşağıdaki nedenlerden dolayı örnek başına yaklaşık 2 Mb gerektirir: 1. Modern işlemcilerin ana akım haline gelmesi gereken L3 önbelleğine (çekirdek başına) sığar birkaç yıl içinde; 2. Bir megabayt dahili bellek, modern bir ASIC boru hattı için neredeyse kabul edilemez bir boyuttur; 3. GPU'lar yüzlerce eş zamanlı örneği çalıştırabilir ancak başka açılardan sınırlıdırlar: GDDR5 bellek, CPU L3 önbelleğinden daha yavaştır ve bant genişliği açısından dikkat çekicidir. rastgele erişim hızı. 4. Karalama defterinin önemli ölçüde genişlemesi yinelemelerde bir artış gerektirecektir; dönüş genel bir süre artışı anlamına gelir. Güvenin olmadığı bir p2p ağında "ağır" çağrılar, ciddi güvenlik açıkları var çünkü düğümler her yeni bloğun proof-of-work değerini kontrol etmek zorunda. Bir düğüm her hash değerlendirmesine önemli miktarda zaman harcıyorsa, bu kolayca yapılabilir. Rastgele çalışma verilerine (nonce değerleri) sahip bir dizi sahte nesne tarafından DDoS uygulandı. 12 22 Boşver, bu bir şifreli para mı? Algoritma nerede? Gördüğüm tek şey bir reklam. Burası, eğer PoW algoritması değerliyse, Cryptonote'un gerçekten parlayacağı yerdir. değil gerçekten SHA-256, gerçekten şifreli değil. Yenidir, belleğe bağlıdır ve yinelenmez.

6 Diğer avantajlar 6.1 Sorunsuz emisyon CryptoNote dijital paralarının toplam miktarının üst sınırı şöyledir: MSarzı = 264 −1 atom birimleri. Bu, sezgiye değil, yalnızca uygulama sınırlarına dayanan doğal bir kısıtlamadır. "N tane para herkese yetmeli" gibi. Emisyon sürecinin düzgünlüğünü sağlamak için blok için aşağıdaki formülü kullanıyoruz: ödüller: Temel Ödül = (MSarzı −A) ≫18, burada A, daha önce üretilen madeni paraların miktarıdır. 6.2 Ayarlanabilir parametreler 6.2.1 Zorluk CryptoNote, her bloğun zorluğunu değiştiren bir hedefleme algoritması içerir. Bu Ağ hashhızının yoğun bir şekilde arttığı veya daraldığı durumlarda sistemin tepki süresini azaltır, sabit bir blok oranının korunması. Orijinal Bitcoin yöntemi, gerçek değer ilişkisini hesaplar ve son 2016 blok arasındaki zaman aralığını hedef alır ve bunu mevcut blok için çarpan olarak kullanır zorluk. Açıkçası bu, hızlı yeniden hesaplamalar için uygun değildir (büyük atalet nedeniyle) ve salınımlarla sonuçlanır. Algoritmamızın arkasındaki genel fikir, düğümlerin tamamladığı tüm işleri toplamak ve harcadıkları zamana bölün. İşin ölçüsü karşılık gelen zorluk değerleridir her blokta. Ancak yanlış ve güvenilmeyen zaman damgaları nedeniyle kesin zamanı belirleyemiyoruz bloklar arasındaki zaman aralığı. Kullanıcı zaman damgasını geleceğe ve bir sonraki zamana kaydırabilir aralıklar beklenmedik derecede küçük veya hatta negatif olabilir. Muhtemelen birkaç olay yaşanacak bu tür, böylece zaman damgalarını sıralayabilir ve aykırı değerleri (yani %20) kesebiliriz. aralığı geri kalan değerler karşılık gelen blokların %80'i için harcanan süredir. 6.2.2 Boyut sınırları Kullanıcılar blockchain dosyasını depolamak için ödeme yapar ve boyutuna göre oy verme hakkına sahip olur. Her madenci maliyetleri dengelemek ile ücretlerden elde edilen karı dengelemek arasında karar verir ve kendi kararını verir Blok oluşturmak için “yumuşak limit”. Ayrıca maksimum blok boyutuna ilişkin temel kural aşağıdakiler için gereklidir: blockchain'nin sahte işlemlerle doldurulması engelleniyor, ancak bu değerin sabit kodlanmış olmayın. MN, son N blok boyutunun medyan değeri olsun. Daha sonra boyut için "zor sınır" Blok kabul etme oranı \(2 \cdot M_N\)'dir. blockchain öğesinin şişmesini önler ancak yine de sınırın aşılmasına izin verir Gerekirse zamanla yavaş yavaş büyüyün. İşlem boyutunun açıkça sınırlandırılmasına gerek yoktur. Bir bloğun boyutuyla sınırlıdır; ve eğer birisi yüzlerce girdi/çıktı (veya Halka imzalardaki belirsizlik derecesinin yüksek olması nedeniyle) bunu yeterli ücret ödeyerek yapabilir. 6.2.3 Aşırı boyut cezası Bir madenci hâlâ kendi sıfır ücretli işlemleriyle dolu bir bloğu maksimum seviyeye kadar doldurma yeteneğine sahiptir boyut \(2 \cdot M_b\). Her ne kadar madencilerin yalnızca çoğunluğu medyan değeri değiştirebilse de, hala 13 6 Diğer avantajlar 6.1 Sorunsuz emisyon CryptoNote dijital paralarının toplam miktarının üst sınırı şöyledir: MSarzı = 264 −1 atom birimleri. Bu, sezgiye değil, yalnızca uygulama sınırlarına dayanan doğal bir kısıtlamadır. "N tane para herkese yetmeli" gibi. Emisyon sürecinin düzgünlüğünü sağlamak için blok için aşağıdaki formülü kullanıyoruz: ödüller: Temel Ödül = (MSarzı −A) ≫18, burada A, daha önce üretilen madeni paraların miktarıdır. 6.2 Ayarlanabilir parametreler 6.2.1 Zorluk CryptoNote, her bloğun zorluğunu değiştiren bir hedefleme algoritması içerir. Bu Ağ hashhızının yoğun bir şekilde arttığı veya daraldığı durumlarda sistemin tepki süresini azaltır, sabit bir blok oranının korunması. Orijinal Bitcoin yöntemi, gerçek değer ilişkisini hesaplar ve son 2016 blok arasındaki zaman aralığını hedef alır ve bunu mevcut blok için çarpan olarak kullanır zorluk. Açıkçası bu, hızlı yeniden hesaplamalar için uygun değildir (büyük atalet nedeniyle) ve salınımlarla sonuçlanır. Algoritmamızın arkasındaki genel fikir, düğümlerin tamamladığı tüm işleri toplamak ve harcadıkları zamana bölün. İşin ölçüsü karşılık gelen zorluk değerleridir her blokta. Ancak yanlış ve güvenilmeyen zaman damgaları nedeniyle kesin zamanı belirleyemiyoruz bloklar arasındaki zaman aralığı. Kullanıcı zaman damgasını geleceğe ve bir sonraki zamana kaydırabilir aralıklar beklenmedik derecede küçük veya hatta negatif olabilir. Muhtemelen birkaç olay yaşanacak bu tür, böylece zaman damgalarını sıralayabilir ve aykırı değerleri (yani %20) kesebiliriz. aralığı geri kalan değerler karşılık gelen blokların %80'i için harcanan süredir. 6.2.2 Boyut sınırları Kullanıcılar blockchain dosyasını depolamak için ödeme yapar ve boyutuna göre oy verme hakkına sahip olur. Her madenci dengeleme arasındaki değiş tokuşla ilgilenirÜcretlerden maliyetleri ve karı kendisi belirler Blok oluşturmak için “yumuşak limit”. Ayrıca maksimum blok boyutuna ilişkin temel kural aşağıdakiler için gereklidir: blockchain'nin sahte işlemle doldurulması engelleniyor, ancak bu değerin sabit kodlanmış olmayın. MN, son N blok boyutunun medyan değeri olsun. Daha sonra boyut için "zor sınır" Blok kabul etme oranı \(2 \cdot M_N\)'dir. blockchain öğesinin şişmesini önler ancak yine de sınırın aşılmasına izin verir Gerekirse zamanla yavaş yavaş büyüyün. İşlem boyutunun açıkça sınırlandırılmasına gerek yoktur. Bir bloğun boyutuyla sınırlıdır; ve eğer birisi yüzlerce girdi/çıktı (veya Halka imzalardaki belirsizlik derecesinin yüksek olması nedeniyle) bunu yeterli ücret ödeyerek yapabilir. 6.2.3 Aşırı boyut cezası Bir madenci hâlâ kendi sıfır ücretli işlemleriyle dolu bir bloğu maksimum seviyeye kadar doldurma yeteneğine sahiptir boyut \(2 \cdot M_b\). Her ne kadar madencilerin yalnızca çoğunluğu medyan değeri değiştirebilse de, hala 13 23 Atomik birimler. Bunu sevdim. Bu Satoshi'nin eşdeğeri mi? Eğer öyleyse, bu 185 milyar kriptonot olacağı anlamına geliyor. Bunun eninde sonunda birkaç sayfada düzeltilmesi gerektiğini biliyorum, yoksa bir yazım hatası mı var? Temel ödül "kalan tüm paralar" ise tüm paraları almak için yalnızca bir blok yeterlidir. Instamine. Öte yandan, eğer bunun bir şekilde orantılı olması gerekiyorsa, şimdi ile madeni para üretim-sonlandırma-tarihi arasında zaman farkı var mı? bu olurdu mantıklı. Ayrıca benim dünyamda bunun gibi iki büyüktür işareti "çok daha büyük" anlamına gelir. Yazar mı muhtemelen başka bir şey mi kastediyorsun? Eğer zorluğa uyum her blokta gerçekleşirse, saldırganın çok büyük bir çiftliği olabilir. makineler dikkatle seçilmiş zaman aralıklarında madencilik yapar ve kapatır. Zorluk ayarlama formülleri uygun şekilde sönümlenmezse, bu durum zorlukta kaotik bir patlamaya (veya sıfıra çarpmaya) neden olabilir. Bitcoin'nin yönteminin hızlı yeniden hesaplamalar için uygun olmadığına şüphe yok, ancak eylemsizlik fikri bu sistemlerde olduğu gibi kabul edilmesi değil, kanıtlanması gerekir. Ayrıca salınımlar görünürde dalgalanmalara neden olmadığı sürece ağ zorluğu mutlaka bir sorun değildir. madeni para arzı - ve çok hızlı değişen bir zorluğa sahip olmak "aşırı düzeltmeye" neden olabilir. Özellikle birkaç dakika gibi kısa bir zaman diliminde harcanan zaman, "toplam" ile orantılı olacaktır. ağda oluşturulan blok sayısı." Orantılılık sabitinin kendisi büyüyecek zamanla, eğer CN başlarsa muhtemelen katlanarak. "Oluşturulan toplam blokları" korumak için zorluğu basitçe ayarlamak daha iyi bir fikir olabilir. Son bloğun ana zincire eklenmesinden bu yana ağ" sabit bir değer dahilinde veya sınırlı varyasyon veya buna benzer bir şey. Hesaplamalı uyarlanabilir bir algoritma ise uygulanması kolay belirlenebilirse, bu sorunu çözüyor gibi görünmektedir. Ancak bu yöntemi kullanırsak, büyük bir madencilik çiftliği olan birisi çiftliğini kapatabilir. birkaç saatliğine açın ve tekrar açın. İlk birkaç blokta o çiftlik banka. Yani aslında bu yöntem ilginç bir noktayı gündeme getiriyor: madencilik (ortalama olarak) bir Özellikle daha fazla insan ağa bağlandıkça yatırım getirisi olmadan oyunu kaybetmek. Madencilik zorluğu varsa ağ çok yakından takip ediliyor hashoranı, insanların bu kadar madencilik yapacağından bir şekilde şüpheliyim şu anda yapıyorum. Veya diğer taraftan madencilik çiftliklerini 7/24 çalışır durumda tutmak yerine, onları çevirebilirler. 6 saat açık, 2 saat kapalı, 6 saat açık, 2 saat kapalı veya bunun gibi bir şey. Sadece başka bir paraya geçin birkaç saat boyunca zorluğun düşmesini bekleyin, sonra birkaç ekstra kazanmak için tekrar atlayın ağ uyum sağladıkça karlılık blokları. Ve biliyor musun? Bu aslında muhtemelen Aklıma koyduğum en iyi madencilik senaryolarından biri... Bu döngüsel olabilir, ancak blok oluşturma süresi ortalama yaklaşık bir dakika ise, bunu yapabilir miyiz? "harcanan zaman" için blok sayısını temsili olarak mı kullanacaksınız?

6 Diğer avantajlar 6.1 Sorunsuz emisyon CryptoNote dijital paralarının toplam miktarının üst sınırı şöyledir: MSarzı = 264 −1 atom birimleri. Bu, sezgiye değil, yalnızca uygulama sınırlarına dayanan doğal bir kısıtlamadır. "N tane para herkese yetmeli" gibi. Emisyon sürecinin düzgünlüğünü sağlamak için blok için aşağıdaki formülü kullanıyoruz: ödüller: Temel Ödül = (MSarzı −A) ≫18, burada A, daha önce üretilen madeni paraların miktarıdır. 6.2 Ayarlanabilir parametreler 6.2.1 Zorluk CryptoNote, her bloğun zorluğunu değiştiren bir hedefleme algoritması içerir. Bu Ağ hashoranı yoğun bir şekilde büyüdüğünde veya daraldığında sistemin tepki süresini azaltır, sabit bir blok oranının korunması. Orijinal Bitcoin yöntemi, gerçek değer ilişkisini hesaplar ve son 2016 blok arasındaki zaman aralığını hedef alır ve bunu mevcut blok için çarpan olarak kullanır zorluk. Açıkçası bu, hızlı yeniden hesaplamalar için uygun değildir (büyük atalet nedeniyle) ve salınımlarla sonuçlanır. Algoritmamızın arkasındaki genel fikir, düğümlerin tamamladığı tüm işleri toplamak ve harcadıkları zamana bölün. İşin ölçüsü karşılık gelen zorluk değerleridir her blokta. Ancak yanlış ve güvenilmeyen zaman damgaları nedeniyle kesin zamanı belirleyemiyoruz bloklar arasındaki zaman aralığı. Kullanıcı zaman damgasını geleceğe ve bir sonraki zamana kaydırabilir aralıklar beklenmedik derecede küçük veya hatta negatif olabilir. Muhtemelen birkaç olay yaşanacak bu tür, böylece zaman damgalarını sıralayabilir ve aykırı değerleri (yani %20) kesebiliriz. aralığı geri kalan değerler karşılık gelen blokların %80'i için harcanan süredir. 6.2.2 Boyut sınırları Kullanıcılar blockchain dosyasını depolamak için ödeme yapar ve boyutuna göre oy kullanma hakkına sahip olur. Her madenci maliyetleri dengelemek ile ücretlerden elde edilen karı dengelemek arasında karar verir ve kendi kararını verir Blok oluşturmak için “yumuşak limit”. Ayrıca maksimum blok boyutuna ilişkin temel kural aşağıdakiler için gereklidir: blockchain'nin sahte işlemlerle doldurulması engelleniyor, ancak bu değerin sabit kodlanmış olmayın. MN, son N blok boyutunun medyan değeri olsun. Daha sonra boyut için "zor sınır" Blok kabul etme oranı \(2 \cdot M_N\)'dir. blockchain öğesinin şişmesini önler ancak yine de sınırın aşılmasına izin verir Gerekirse zamanla yavaş yavaş büyüyün. İşlem boyutunun açıkça sınırlandırılmasına gerek yoktur. Bir bloğun boyutuyla sınırlıdır; ve eğer birisi yüzlerce girdi/çıktı (veya Halka imzalardaki belirsizlik derecesinin yüksek olması nedeniyle) bunu yeterli ücret ödeyerek yapabilir. 6.2.3 Aşırı boyut cezası Bir madenci hâlâ kendi sıfır ücretli işlemleriyle dolu bir bloğu maksimum seviyeye kadar doldurma yeteneğine sahiptir boyut \(2 \cdot M_b\). Her ne kadar madencilerin yalnızca çoğunluğu medyan değeri değiştirebilse de, hala 13 6 Diğer avantajlar 6.1 Sorunsuz emisyon CryptoNote dijital paralarının toplam miktarının üst sınırı şöyledir: MSarzı = 264 −1 atom birimleri. Bu, sezgiye değil, yalnızca uygulama sınırlarına dayanan doğal bir kısıtlamadır. "N tane para herkese yetmeli" gibi. Emisyon sürecinin düzgünlüğünü sağlamak için blok için aşağıdaki formülü kullanıyoruz: ödüller: Temel Ödül = (MSarzı −A) ≫18, burada A, daha önce üretilen madeni paraların miktarıdır. 6.2 Ayarlanabilir parametreler 6.2.1 Zorluk CryptoNote, her bloğun zorluğunu değiştiren bir hedefleme algoritması içerir. Bu Ağ hashhızının yoğun şekilde arttığı veya daraldığı durumlarda sistemin tepki süresini azaltır, sabit bir blok oranının korunması. Orijinal Bitcoin yöntemi, gerçek değer ilişkisini hesaplar ve son 2016 blok arasındaki zaman aralığını hedef alır ve bunu mevcut blok için çarpan olarak kullanır zorluk. Açıkçası bu, hızlı yeniden hesaplamalar için uygun değildir (büyük atalet nedeniyle) ve salınımlarla sonuçlanır. Algoritmamızın arkasındaki genel fikir, düğümlerin tamamladığı tüm işleri toplamak ve harcadıkları zamana bölün. İşin ölçüsü karşılık gelen zorluk değerleridir her blokta. Ancak yanlış ve güvenilmeyen zaman damgaları nedeniyle kesin zamanı belirleyemiyoruz bloklar arasındaki zaman aralığı. Kullanıcı zaman damgasını geleceğe ve bir sonraki zamana kaydırabilir aralıklar beklenmedik derecede küçük veya hatta negatif olabilir. Muhtemelen birkaç olay yaşanacak bu tür, böylece zaman damgalarını sıralayabilir ve aykırı değerleri (yani %20) kesebiliriz. aralığı geri kalan değerler karşılık gelen blokların %80'i için harcanan süredir. 6.2.2 Boyut sınırları Kullanıcılar blockchain dosyasını depolamak için ödeme yapar ve boyutuna göre oy verme hakkına sahip olur. Her madenci dengeleme arasındaki değiş tokuşla ilgilenirÜcretlerden maliyetleri ve karı kendisi belirler Blok oluşturmak için “yumuşak limit”. Ayrıca maksimum blok boyutuna ilişkin temel kural aşağıdakiler için gereklidir: blockchain'nin sahte işlemlerle doldurulması engelleniyor, ancak bu değerin sabit kodlanmış olmayın. MN, son N blok boyutunun medyan değeri olsun. Daha sonra boyut için "zor sınır" Blok kabul etme oranı \(2 \cdot M_N\)'dir. blockchain öğesinin şişmesini önler ancak yine de sınırın aşılmasına izin verir Gerekirse zamanla yavaş yavaş büyüyün. İşlem boyutunun açıkça sınırlandırılmasına gerek yoktur. Bir bloğun boyutuyla sınırlıdır; ve eğer birisi yüzlerce girdi/çıktı (veya Halka imzalardaki belirsizlik derecesinin yüksek olması nedeniyle) bunu yeterli ücret ödeyerek yapabilir. 6.2.3 Aşırı boyut cezası Bir madenci hâlâ kendi sıfır ücretli işlemleriyle dolu bir bloğu maksimum seviyeye kadar doldurma yeteneğine sahiptir boyut \(2 \cdot M_b\). Her ne kadar madencilerin yalnızca çoğunluğu medyan değeri değiştirebilse de, hala 13 24 Tamam, elimizde bir blockchain var ve her blokta yalnızca zaman damgaları var EK OLARAK sipariş edildi. Bu açıkça ayarlamayı zorlaştırmak için eklenmiştir, çünkü zaman damgaları Bahsedildiği gibi çok güvenilmez. Zincirde çelişen zaman damgalarına sahip olmamıza izin veriliyor mu? Zincirde A Blok B Bloktan önce geliyorsa ve finansal açıdan her şey tutarlıysa, ancak A Blok, B Bloktan sonra oluşturulmuş gibi görünüyor? Çünkü belki birisinin sahibi ağın büyük bir kısmı? Tamam mı? Muhtemelen mali durum iyi olmadığı için. Tamam, bu keyfi "blokların yalnızca %80'i ana blockchain için meşru" olmasından nefret ediyorum yaklaşım. Yalancıların zaman damgalarını değiştirmesini engellemek için mi tasarlanmıştı? Ama şimdi ekliyor herkesin zaman damgaları hakkında yalan söylemesi ve sadece ortalamayı seçmesi için teşvik. Lütfen tanımlayın. Anlamı "Bu blok için yalnızca daha yüksek ücretler içeren işlemleri dahil edin" %p'den fazla, tercihen %2p'den yüksek ücretlerle" veya buna benzer bir şey mi? Sahte derken neyi kastediyorlar? İşlemin geçmiş geçmişiyle tutarlı olması durumunda blockchain ve işlem madencileri tatmin edecek ücretler içeriyor, bu yeterli değil mi? Peki, hayır, mutlaka değil. Maksimum blok boyutu yoksa, kötü niyetli bir kullanıcıyı tutacak hiçbir şey yoktur. Yavaşlamak için devasa bir işlem bloğunu tek seferde kendisine yüklemekten ağ. Maksimum blok boyutuna yönelik temel bir kural, insanların çok büyük miktarda çöp koymasını engeller işleri yavaşlatmak için blockchain üzerindeki verilerin hepsini aynı anda. Ancak böyle bir kuralın mutlaka Adaptif olun - örneğin Noel sezonunda trafiğin artmasını bekleyebiliriz ve blok boyutu çok büyüyecek ve hemen ardından blok boyutu düşecek tekrar. Yani ya a) bir çeşit uyarlanabilir üst sınıra ya da b) yeterince büyük bir üst sınıra ihtiyacımız var ki böylece %99'u makul Noel zirveleri sınırı aşmaz. Tabiki ikincisini yapmak imkansız tahmin - bir para biriminin tutunup tutunamayacağını kim bilebilir? Uyarlanabilir hale getirmek ve endişelenmemek daha iyi bu konuda. Ama sonra bir kontrol teorisi problemimiz var: bunu nasıl uyarlanabilir hale getireceğiz? saldırıya karşı savunmasızlık mı yoksa vahşi ve çılgın salınımlar mı? Uyarlanabilir bir yöntemin kötü niyetli kullanıcıların küçük miktarlar biriktirmesini engellemediğine dikkat edin blockchain üzerinde zamanla gereksiz verilerin birikmesi uzun vadeli şişkinliğe neden olur. Bu farklı bir konu tamamen ve kripto paraların ciddi sorunları olduğu bir durum.

6 Diğer avantajlar 6.1 Sorunsuz emisyon CryptoNote dijital paralarının toplam miktarının üst sınırı şöyledir: MSarzı = 264 −1 atom birimleri. Bu, sezgiye değil, yalnızca uygulama sınırlarına dayanan doğal bir kısıtlamadır. "N tane para herkese yetmeli" gibi. Emisyon sürecinin düzgünlüğünü sağlamak için blok için aşağıdaki formülü kullanıyoruz: ödüller: Temel Ödül = (MSarzı −A) ≫18, burada A, daha önce üretilen madeni paraların miktarıdır. 6.2 Ayarlanabilir parametreler 6.2.1 Zorluk CryptoNote, her bloğun zorluğunu değiştiren bir hedefleme algoritması içerir. Bu Ağ hashoranı yoğun bir şekilde büyüdüğünde veya daraldığında sistemin tepki süresini azaltır, sabit bir blok oranının korunması. Orijinal Bitcoin yöntemi gerçek değer ilişkisini hesaplar ve son 2016 blok arasındaki zaman aralığını hedef alır ve bunu mevcut blok için çarpan olarak kullanır zorluk. Açıkçası bu, hızlı yeniden hesaplamalar için uygun değildir (büyük atalet nedeniyle) ve salınımlarla sonuçlanır. Algoritmamızın arkasındaki genel fikir, düğümlerin tamamladığı tüm işleri toplamak ve harcadıkları zamana bölün. İşin ölçüsü karşılık gelen zorluk değerleridir her blokta. Ancak yanlış ve güvenilmeyen zaman damgaları nedeniyle kesin zamanı belirleyemiyoruz bloklar arasındaki zaman aralığı. Kullanıcı zaman damgasını geleceğe ve bir sonraki zamana kaydırabilir aralıklar beklenmedik derecede küçük veya hatta negatif olabilir. Muhtemelen birkaç olay yaşanacak bu tür, böylece zaman damgalarını sıralayabilir ve aykırı değerleri (yani %20) kesebiliriz. aralığı geri kalan değerler karşılık gelen blokların %80'i için harcanan süredir. 6.2.2 Boyut sınırları Kullanıcılar blockchain dosyasını depolamak için ödeme yapar ve boyutuna göre oy verme hakkına sahip olur. Her madenci maliyetleri dengelemek ile ücretlerden elde edilen karı dengelemek arasında karar verir ve kendi kararını verir Blok oluşturmak için “yumuşak limit”. Ayrıca maksimum blok boyutuna ilişkin temel kural aşağıdakiler için gereklidir: blockchain'nin sahte işlemlerle doldurulması engelleniyor, ancak bu değerin sabit kodlanmış olmayın. MN, son N blok boyutunun medyan değeri olsun. Daha sonra boyut için "zor sınır" Blok kabul etme oranı \(2 \cdot M_N\)'dir. blockchain öğesinin şişmesini önler ancak yine de sınırın aşılmasına izin verir Gerekirse zamanla yavaş yavaş büyüyün. İşlem boyutunun açıkça sınırlandırılmasına gerek yoktur. Bir bloğun boyutuyla sınırlıdır; ve eğer birisi yüzlerce girdi/çıktı (veya Halka imzalardaki belirsizlik derecesinin yüksek olması nedeniyle) bunu yeterli ücret ödeyerek yapabilir. 6.2.3 Aşırı boyut cezası Bir madenci hâlâ kendi sıfır ücretli işlemleriyle dolu bir bloğu maksimum seviyeye kadar doldurma yeteneğine sahiptir boyut \(2 \cdot M_b\). Her ne kadar madencilerin yalnızca çoğunluğu medyan değeri değiştirebilse de, hala 13 6 Diğer avantajlar 6.1 Sorunsuz emisyon CryptoNote dijital paralarının toplam miktarının üst sınırı şöyledir: MSarzı = 264 −1 atom birimleri. Bu, sezgiye değil, yalnızca uygulama sınırlarına dayanan doğal bir kısıtlamadır. "N tane para herkese yetmeli" gibi. Emisyon sürecinin düzgünlüğünü sağlamak için blok için aşağıdaki formülü kullanıyoruz: ödüller: Temel Ödül = (MSarzı −A) ≫18, burada A, daha önce üretilen madeni paraların miktarıdır. 6.2 Ayarlanabilir parametreler 6.2.1 Zorluk CryptoNote, her bloğun zorluğunu değiştiren bir hedefleme algoritması içerir. Bu Ağ hashhızının yoğun şekilde arttığı veya daraldığı durumlarda sistemin tepki süresini azaltır, sabit bir blok oranının korunması. Orijinal Bitcoin yöntemi, gerçek değer ilişkisini hesaplar ve son 2016 blok arasındaki zaman aralığını hedef alır ve bunu mevcut blok için çarpan olarak kullanır zorluk. Açıkçası bu, hızlı yeniden hesaplamalar için uygun değildir (büyük atalet nedeniyle) ve salınımlarla sonuçlanır. Algoritmamızın arkasındaki genel fikir, düğümlerin tamamladığı tüm işleri toplamak ve harcadıkları zamana bölün. İşin ölçüsü karşılık gelen zorluk değerleridir her blokta. Ancak yanlış ve güvenilmeyen zaman damgaları nedeniyle kesin zamanı belirleyemiyoruz bloklar arasındaki zaman aralığı. Kullanıcı zaman damgasını geleceğe ve bir sonraki zamana kaydırabilir aralıklar beklenmedik derecede küçük veya hatta negatif olabilir. Muhtemelen birkaç olay yaşanacak bu tür, böylece zaman damgalarını sıralayabilir ve aykırı değerleri (yani %20) kesebiliriz. aralığı geri kalan değerler karşılık gelen blokların %80'i için harcanan süredir. 6.2.2 Boyut sınırları Kullanıcılar blockchain dosyasını depolamak için ödeme yapar ve boyutuna göre oy verme hakkına sahip olur. Her madenci dengeleme arasındaki değiş tokuşla ilgilenirÜcretlerden maliyetleri ve karı kendisi belirler Blok oluşturmak için “yumuşak limit”. Ayrıca maksimum blok boyutuna ilişkin temel kural aşağıdakiler için gereklidir: blockchain'nin sahte işlemlerle doldurulması engelleniyor, ancak bu değerin sabit kodlanmış olmayın. MN, son N blok boyutunun medyan değeri olsun. Daha sonra boyut için "zor sınır" Blok kabul etme oranı \(2 \cdot M_N\)'dir. blockchain öğesinin şişmesini önler ancak yine de sınırın aşılmasına izin verir Gerekirse zamanla yavaş yavaş büyüyün. İşlem boyutunun açıkça sınırlandırılmasına gerek yoktur. Bir bloğun boyutuyla sınırlıdır; ve eğer birisi yüzlerce girdi/çıktı (veya Halka imzalardaki belirsizlik derecesinin yüksek olması nedeniyle) bunu yeterli ücret ödeyerek yapabilir. 6.2.3 Aşırı boyut cezası Bir madenci hâlâ kendi sıfır ücretli işlemleriyle dolu bir bloğu maksimum seviyeye kadar doldurma yeteneğine sahiptir boyut \(2 \cdot M_b\). Her ne kadar madencilerin yalnızca çoğunluğu medyan değeri değiştirebilse de, hala 13 25 Bir birim zaman N blok olacak şekilde zamanı yeniden ölçeklendirdiğimizde, ortalama blok boyutu yine de teorik olarak 2ˆt ile orantılı olarak üstel olarak büyüyebilir. Öte yandan, daha genel bir sınır sonraki blokta bazı f fonksiyonları için M_nf(M_n) olacaktır. f'nin hangi özellikleri Blok boyutunun bir miktar "makul büyümesini" garanti etmek için mi seçiyoruz? ilerlemesi blok boyutları (yeniden ölçeklendirme süresinden sonra) şöyle olur: M_n f(M_n)M_n f(f(M_n)M_n)f(M_n)M_n f(f(f(M_n)M_n)f(M_n)M_n)f(f(M_n)M_n)f( ... Buradaki amaç, f dizisini doğrusal olarak daha hızlı büyümeyecek şekilde seçmektir: veya belki Log(t) olarak bile. Elbette, eğer bir a sabiti için f(M_n) = a ise, bu dizi şu şekildedir: aslında M_n aM_n aˆ2M_n aˆ3M_n ... Ve elbette, bunu en fazla doğrusal büyümeyle sınırlamanın tek yolu a=1'i seçmektir. Bu elbette mümkün değildir. Hiçbir şekilde büyümeye izin vermiyor. Öte yandan f(M_n) sabit olmayan bir fonksiyon ise durum çok daha karmaşıktır. karmaşıktır ve zarif bir çözüme izin verebilir. Bir süre bunun üzerinde düşüneceğim. Bu ücretin bir sonraki bölümdeki aşırı boyut cezasını indirecek kadar büyük olması gerekecektir. Genel bir kullanıcının neden erkek olduğu varsayılıyor? Ha?

blockchain'yi şişirme ve düğümlerde ek yük oluşturma olasılığı. Cesaretini kırmak Kötü niyetli katılımcıların büyük bloklar oluşturmasını önleyen bir ceza fonksiyonu sunuyoruz: Yeni Ödül = Temel Ödül \(\cdot\) BlkBoyut MN −1 2 Bu kural yalnızca BlkSize minimum serbest blok boyutundan büyük olduğunda uygulanır; maksimuma yakın olmalıdır (10kb, MN \(\cdot\) %110). Madencilerin "normal boyutta" bloklar oluşturmasına izin veriliyor ve hatta Toplam ücretler cezayı aştığında bunu kârla aşarsınız. Ancak ücretlerin artması pek olası değil Ceza değerinden ikinci dereceden farklı olarak bir denge oluşacaktır. 6.3 İşlem komut dosyaları CryptoNote'un oldukça minimalist bir komut dosyası alt sistemi vardır. Gönderici bir ifade belirtir: Φ = f (x1, x2, . . . , xn), burada n, {Pi}n hedef genel anahtarlarının sayısıdır ben=1. Yalnızca beş ikili operatörler desteklenir: min, max, sum, mul ve cmp. Alıcı bu ödemeyi harcadığında, \(0 \leq k \leq n\) adet imza üretip bunları işlem girişine aktarır. Doğrulama süreci genel anahtar Pi için geçerli bir imza olup olmadığını kontrol etmek için Φ'yi xi = 1 ile değerlendirir ve xi = 0'dır. Doğrulayıcı, eğer > 0 ise ispatı kabul eder. Basitliğine rağmen bu yaklaşım olası her durumu kapsar: • Çoklu/Eşik imzası. Bitcoin tarzı "N'den M" çoklu imza için (ör. alıcı en az \(0 \leq M \leq N\) geçerli imza sağlamalıdır) Φ = x1+x2+. . .+xN \(\geq M\) (açıklık sağlamak için ortak cebirsel gösterimi kullanıyoruz). Ağırlıklı eşik imzası (bazı tuşlar diğerlerinden daha önemli olabilir) Φ = \(w_1 \cdot x_1\) + olarak ifade edilebilir \(w_2 \cdot x_2\) + . . . + \(w_N \cdot x_N\) \(\geq wM\). Ve ana anahtarın Φ ='ye karşılık geldiği senaryo maks(\(M \cdot x\), x1 + x2 + . . . + xN) \(\geq M\). Herhangi bir karmaşık durumun olabileceğini göstermek kolaydır. bu operatörlerle ifade edilir, yani temeli oluştururlar. • Şifre koruması. Gizli bir şifreye sahip olmak, onu bilmekle eşdeğerdir. deterministik olarak şu paroladan türetilen özel bir anahtar: k = KDF(ler). Dolayısıyla bir alıcı k anahtarının altına başka bir imza sağlayarak şifreyi bildiğini kanıtlayabilir. Gönderen, ilgili genel anahtarı kendi çıktısına ekler. Bunu unutmayın yöntem, Bitcoin [13]'da kullanılan "işlem bulmacasından" çok daha güvenlidir; Girişlerde şifre açıkça iletilir. • Dejenere vakalar. Φ = 1 herkesin parayı harcayabileceği anlamına gelir; Φ = 0, çıktının sonsuza kadar harcanamaz olması. Genel anahtarlarla birleştirilmiş çıktı betiğinin gönderen için çok büyük olması durumunda, alıcının bu verileri girişine koyacağını belirten özel çıktı türünü kullanabilir gönderen bunun yalnızca hash kısmını sağlar. Bu yaklaşım, Bitcoin'nin "hash'ye öde" yaklaşımına benzer özelliği, ancak yeni komut dosyası komutları eklemek yerine bu durumu veri yapısında ele alıyoruz seviye. 7 Sonuç Bitcoin'daki ana kusurları araştırdık ve bazı olası çözümler önerdik. Bu avantajlı özellikler ve devam eden gelişimimiz, CryptoNote'u yeni elektronik nakit sistemi haline getiriyor Bitcoin'nin ciddi bir rakibi, tüm çatallarını geride bırakıyor. 14 blockchain'yi şişirme ve düğümlerde ek yük oluşturma olasılığı. Cesaretini kırmak Kötü niyetli katılımcıların büyük bloklar oluşturmasını önleyen bir ceza fonksiyonu sunuyoruz: Yeni Ödül = Temel Ödül \(\cdot\) BlkBoyut MN −1 2 Bu kural yalnızca BlkSize minimum serbest blok boyutundan büyük olduğunda uygulanır; maksimuma yakın olmalıdır (10kb, MN \(\cdot\) %110). Madencilerin "normal boyutta" bloklar oluşturmasına izin veriliyor ve hatta Toplam ücretler cezayı aştığında bunu kârla aşarsınız. Ancak ücretlerin artması pek olası değil Ceza değerinden ikinci dereceden farklı olarak bir denge oluşacaktır. 6.3 İşlem komut dosyaları CryptoNote'un oldukça minimalist bir komut dosyası alt sistemi vardır. Gönderici bir ifade belirtir: Φ = f (x1, x2, . . . , xn), burada n, {Pi}n hedef genel anahtarlarının sayısıdır ben=1. Yalnızca beş ikili operatörler desteklenir: min, max, sum, mul ve cmp. Alıcı bu ödemeyi harcadığında, \(0 \leq k \leq n\) adet imza üretip bunları işlem girişine aktarır. Doğrulama süreci Pi ortak anahtarının geçerli bir imzasını kontrol etmek için Φ'yi xi = 1 ile değerlendirir ve xi = 0'dır. Doğrulayıcı, eğer > 0 ise ispatı kabul eder. Basitliğine rağmen bu yaklaşım olası her durumu kapsar: • Çoklu/Eşik imzası. Bitcoin tarzı "N'den M" çoklu imza için (ör. alıcı en az \(0 \leq M \leq N\) geçerli imza sağlamalıdır) Φ = x1+x2+. . .+xN \(\geq M\) (açıklık sağlamak için ortak cebirsel gösterimi kullanıyoruz). Ağırlıklı eşik imzası (bazı tuşlar diğerlerinden daha önemli olabilir) Φ = \(w_1 \cdot x_1\) + olarak ifade edilebilir \(w_2 \cdot x_2\) + . . . + \(w_N \cdot x_N\) \(\geq wM\). Ve senaryoio burada ana anahtar şuna karşılık gelir: Φ = maks(\(M \cdot x\), x1 + x2 + . . . + xN) \(\geq M\). Herhangi bir karmaşık durumun olabileceğini göstermek kolaydır. bu operatörlerle ifade edilir, yani temeli oluştururlar. • Şifre koruması. Gizli bir şifreye sahip olmak, onu bilmekle eşdeğerdir. deterministik olarak şu paroladan türetilen özel bir anahtar: k = KDF(ler). Dolayısıyla bir alıcı k anahtarının altına başka bir imza sağlayarak şifreyi bildiğini kanıtlayabilir. Gönderen, ilgili genel anahtarı kendi çıktısına ekler. Bunu unutmayın yöntem, Bitcoin [13]'de kullanılan "işlem bulmacasından" çok daha güvenlidir; Girişlerde şifre açıkça iletilir. • Dejenere vakalar. Φ = 1 herkesin parayı harcayabileceği anlamına gelir; Φ = 0, çıktının sonsuza kadar harcanamaz olması. Genel anahtarlarla birleştirilmiş çıktı betiğinin gönderen için çok büyük olması durumunda, alıcının bu verileri girişine koyacağını belirten özel çıktı türünü kullanabilir gönderen bunun yalnızca hash kısmını sağlar. Bu yaklaşım Bitcoin'nin "hash'ye öde" yaklaşımına benzer özelliği, ancak yeni komut dosyası komutları eklemek yerine bu durumu veri yapısında ele alıyoruz seviye. 7 Sonuç Bitcoin'deki ana kusurları araştırdık ve bazı olası çözümler önerdik. Bu avantajlı özellikler ve devam eden gelişimimiz, CryptoNote'u yeni elektronik nakit sistemi haline getiriyor Bitcoin'nin ciddi bir rakibi, tüm çatallarını geride bırakıyor. 14 26 Eğer zaman içinde blok boyutunu sınırlamanın bir yolunu bulabilirsek bu gereksiz olabilir... Bu da doğru olamaz. "NewReward"ı yukarıya bakan bir parabole yerleştirdiler. blok boyutu bağımsız değişkendir. Böylece yeni ödül sonsuza kadar patlar. Diğer taraftan ise elde, yeni ödül Max(0,Base Reward(1-(BlkSize/Mn - 1)ˆ2)) olur, ardından yeni ödül tepe noktası blok boyutunda = Mn olan ve kesişme noktaları olan aşağıya doğru bakan bir parabol olacaktır. Blokboyutu = 0 ve Blokboyutu = 2Mn. Ve tanımlamaya çalıştıkları şey de bu gibi görünüyor. Ancak bu durum

ธุรกรรมที่ไม่สามารถติดตามได้

ในส่วนนี้ เราขอเสนอรูปแบบของธุรกรรมที่ไม่เปิดเผยตัวตนโดยสมบูรณ์ซึ่งตอบสนองทั้งความไม่สามารถตรวจสอบย้อนกลับได้ และเงื่อนไขที่ไม่สามารถเชื่อมโยงได้ คุณลักษณะที่สำคัญของโซลูชันของเราคือความเป็นอิสระ: ผู้ส่ง ไม่จำเป็นต้องร่วมมือกับผู้ใช้รายอื่นหรือบุคคลที่สามที่เชื่อถือได้เพื่อทำธุรกรรมของเขา ดังนั้นผู้เข้าร่วมแต่ละคนจึงสร้างการจราจรที่ปกคลุมอย่างอิสระ 4.1 การทบทวนวรรณกรรม โครงการของเราอาศัยการเข้ารหัสแบบดั้งเดิมที่เรียกว่าลายเซ็นกลุ่ม นำเสนอครั้งแรกโดย D. Chaum และ E. van Heyst [19] อนุญาตให้ผู้ใช้ลงนามข้อความในนามของกลุ่ม หลังจากลงนามในข้อความที่ผู้ใช้ให้ (เพื่อวัตถุประสงค์ในการตรวจสอบ) ไม่ใช่สาธารณะของเขาเอง 1สิ่งนี้เรียกว่า “ขีดจำกัดซอฟต์” — ข้อจำกัดไคลเอนต์อ้างอิงสำหรับการสร้างบล็อกใหม่ ฮาร์ดสูงสุดของ ขนาดบล็อกที่เป็นไปได้คือ 1 MB 4 หากจำเป็นซึ่งทำให้เกิดข้อเสียเปรียบหลัก น่าเสียดายที่เป็นการยากที่จะคาดเดาได้ว่าเมื่อใด ค่าคงที่อาจจำเป็นต้องเปลี่ยนและการแทนที่อาจนำไปสู่ผลลัพธ์ที่เลวร้าย ตัวอย่างที่ดีของการเปลี่ยนแปลงขีดจำกัดแบบฮาร์ดโค้ดที่นำไปสู่ผลที่ตามมาที่ร้ายแรงคือการบล็อก จำกัดขนาดไว้ที่ 250kb1 ขีดจำกัดนี้เพียงพอที่จะรองรับธุรกรรมมาตรฐานได้ประมาณ 10,000 รายการ ใน ต้นปี 2013 เกือบจะถึงขีดจำกัดนี้แล้ว และได้บรรลุข้อตกลงเพื่อเพิ่ม ขีด จำกัด การเปลี่ยนแปลงถูกนำไปใช้ในกระเป๋าเงินเวอร์ชัน 0.8 และจบลงด้วยการแยกลูกโซ่ 24 บล็อก และการโจมตีแบบใช้จ่ายสองครั้งที่ประสบความสำเร็จ [9] ในขณะที่จุดบกพร่องไม่ได้อยู่ในโปรโตคอล Bitcoin แต่ แต่ในกลไกฐานข้อมูลนั้นสามารถตรวจจับได้ง่ายโดยการทดสอบความเครียดแบบง่าย ๆ หากมี ไม่มีการจำกัดขนาดบล็อกที่แนะนำโดยไม่ได้ตั้งใจ ค่าคงที่ยังทำหน้าที่เป็นรูปแบบหนึ่งของจุดรวมศูนย์ แม้ว่าลักษณะแบบ peer-to-peer ของ Bitcoin โหนดส่วนใหญ่ใช้ไคลเอนต์อ้างอิงอย่างเป็นทางการ [10] พัฒนาโดย คนกลุ่มเล็กๆ กลุ่มนี้ตัดสินใจดำเนินการเปลี่ยนแปลงโปรโตคอล และคนส่วนใหญ่ยอมรับการเปลี่ยนแปลงเหล่านี้โดยไม่คำนึงถึง "ความถูกต้อง" ของพวกเขา การตัดสินใจบางอย่างเกิดขึ้น การอภิปรายอย่างดุเดือดและแม้กระทั่งเรียกร้องให้คว่ำบาตร [11] ซึ่งบ่งชี้ว่าชุมชนและ นักพัฒนาซอฟต์แวร์อาจไม่เห็นด้วยกับประเด็นสำคัญบางประการ ดังนั้นจึงดูเหมือนสมเหตุสมผลที่จะมีโปรโตคอล ด้วยตัวแปรที่ผู้ใช้สามารถกำหนดค่าได้และปรับได้เองซึ่งเป็นวิธีที่เป็นไปได้ในการหลีกเลี่ยงปัญหาเหล่านี้ 2.5 สคริปต์ขนาดใหญ่ ระบบการเขียนสคริปต์ใน Bitcoin เป็นคุณลักษณะที่หนักและซับซ้อน มันอาจทำให้ใครคนหนึ่งสามารถสร้างได้ ธุรกรรมที่ซับซ้อน [12] แต่คุณลักษณะบางอย่างถูกปิดใช้งานเนื่องจากข้อกังวลด้านความปลอดภัยและ บางตัวไม่เคยใช้ด้วยซ้ำ [13] สคริปต์ (รวมทั้งส่วนของผู้ส่งและผู้รับ) สำหรับธุรกรรมยอดนิยมใน Bitcoin มีลักษณะดังนี้: OP DUP OP HASH160 OP เท่ากับการตรวจสอบ OP สคริปต์มีความยาว 164 ไบต์ โดยมีวัตถุประสงค์เพียงเพื่อตรวจสอบว่าผู้รับครอบครองหรือไม่ ต้องใช้รหัสลับในการตรวจสอบลายเซ็นของเขา 3 เทคโนโลยี CryptoNote ตอนนี้เราได้กล่าวถึงข้อจำกัดของเทคโนโลยี Bitcoin แล้ว เราจะมุ่งเน้นไปที่ นำเสนอคุณสมบัติของ CryptoNote 4 ธุรกรรมที่ไม่สามารถติดตามได้ ในส่วนนี้ เราขอเสนอรูปแบบของธุรกรรมที่ไม่เปิดเผยตัวตนโดยสมบูรณ์ซึ่งตอบสนองทั้งความไม่สามารถตรวจสอบย้อนกลับได้ และเงื่อนไขที่ไม่สามารถเชื่อมโยงได้ คุณลักษณะที่สำคัญของโซลูชันของเราคือความเป็นอิสระ: ผู้ส่ง ไม่จำเป็นต้องร่วมมือกับผู้ใช้รายอื่นหรือบุคคลที่สามที่เชื่อถือได้เพื่อทำธุรกรรมของเขา ดังนั้นผู้เข้าร่วมแต่ละคนจึงสร้างการจราจรที่ปกคลุมอย่างอิสระ 4.1 การทบทวนวรรณกรรม โครงการของเราอาศัยการเข้ารหัสแบบดั้งเดิมที่เรียกว่าลายเซ็นกลุ่ม นำเสนอครั้งแรกโดย D. Chaum และ E. van Heyst [19] อนุญาตให้ผู้ใช้ลงนามข้อความในนามของกลุ่ม หลังจากลงนามในข้อความที่ผู้ใช้ให้ (เพื่อวัตถุประสงค์ในการตรวจสอบ) ไม่ใช่สาธารณะของเขาเอง 1สิ่งนี้เรียกว่า “ขีดจำกัดซอฟต์” — ข้อจำกัดไคลเอนต์อ้างอิงสำหรับการสร้างบล็อกใหม่ ฮาร์ดสูงสุดของ ขนาดบล็อกที่เป็นไปได้คือ 1 MB 4 7 เมื่อมองย้อนกลับไป ดูเหมือนว่าจะเป็นความผิดพลาดครั้งใหญ่ในการทำให้ขนาดบล็อกเป็นขีดจำกัดคงที่ในโค้ด Visa และ Mastercard สามารถประมวลผลธุรกรรมได้หลายพันรายการ หากไม่ใช่หลายแสนรายการ ต่อวินาที อย่างไรก็ตาม ธุรกรรมเกิดขึ้นในกระบวนการสุ่ม ซึ่งบางครั้งก็เกิดการระเบิดครั้งใหญ่ บางครั้งก็เงียบไปหลายชั่วโมง คิดถึงปริมาณการแลกเปลี่ยน bitcoin ดูเหมือนเป็นแนวคิดที่ยิ่งใหญ่ในการออกแบบระบบที่เพิ่มขนาดบล็อกแบบไดนามิกเมื่อจำเป็น เพื่อรองรับปริมาณธุรกรรมที่เพิ่มขึ้น และลดปริมาณธุรกรรมแบบไดนามิกเมื่อจำเป็น เพิ่มประสิทธิภาพแบนด์วิดธ์fficiency ตอนนี้ให้นำแนวคิดนั้นไปใช้กับพารามิเตอร์ของระบบทั้งหมด และตราบเท่าที่เราระมัดระวังที่จะรักษา ระบบไม่ให้หลุดออกจากการควบคุม ซจะทำงานได้ดีมาก https://github.com/bitcoin/bips/blob/master/bip-0050.mediawiki ดังที่ได้กล่าวไปแล้ว หากตัวแปรปรับตัวเอง จะต้องมีการควบคุมบางอย่างเพื่อให้สามารถดำเนินการได้ ป้องกันไม่ให้ระบบดำเนินการอย่างบ้าคลั่งจนควบคุมไม่ได้ เราจะไปถึงจุดนั้น หากเป็นบทความวิกิพีเดีย จะมีป้ายกำกับว่า "STUB" แม้ว่าเราจะอยู่ในนั้นอย่างแน่นอน ส่วนแนะนำ "ปัญหาของ Bitcoin" ฉันต้องการรายละเอียดเพิ่มเติมที่นี่ ทำไมถึงเป็น 164 ไบต์ไม่สามารถยอมรับได้สำหรับงาน "ตรวจสอบรหัสลับ" ง่ายๆ หรือไม่ พวกเขาจะทำได้น้อยแค่ไหน ภาษาสคริปต์ที่เหมาะสม? แต่ฉันไม่ใช่นักวิทยาศาสตร์คอมพิวเตอร์ http://download.springer.com/static/pdf/412/chp%253A10.1007%252F3-540-46416-6_22.pdf?auth66=140 ลายเซ็นกลุ่มตามที่อธิบายไว้ จำเป็นต้องมีผู้จัดการกลุ่ม ผู้จัดการกลุ่มมีความสามารถ ของการเพิกถอนการไม่เปิดเผยตัวตนของผู้ลงนามใด ๆ ดังนั้นจึงมีการรวมศูนย์ภายในกลุ่ม โครงการลายเซ็น

คีย์ แต่เป็นคีย์ของผู้ใช้ทั้งหมดในกลุ่มของเขา ผู้ตรวจสอบจะเชื่อมั่นว่าผู้ลงนามที่แท้จริงคือ a เป็นสมาชิกของกลุ่ม แต่ไม่สามารถระบุเฉพาะผู้ลงนามได้ โปรโตคอลดั้งเดิมจำเป็นต้องมีบุคคลที่สามที่เชื่อถือได้ (เรียกว่าผู้จัดการกลุ่ม) และเขาก็เป็นเช่นนั้น คนเดียวที่สามารถติดตามผู้ลงนามได้ รุ่นถัดไปเรียกว่าลายเซ็นแหวนแนะนำ โดย Rivest และคณะ ใน [34] เป็นโครงการอิสระที่ไม่มีผู้จัดการกลุ่มและไม่เปิดเผยตัวตน การเพิกถอน การปรับเปลี่ยนต่างๆ ของโครงร่างนี้ปรากฏในภายหลัง: ลายเซ็นวงแหวนที่เชื่อมโยงได้ [26, 27, 17] อนุญาตให้ตรวจสอบว่ามีการสร้างลายเซ็นสองรายการโดยสมาชิกกลุ่มคนเดียวกันหรือไม่ ซึ่งสามารถตรวจสอบย้อนกลับได้ ลายเซ็นต์แหวน [24, 23] จำกัด การไม่เปิดเผยตัวตนมากเกินไปโดยให้ความเป็นไปได้ในการติดตามผู้ลงนาม สองข้อความที่เกี่ยวข้องกับข้อมูลเมตาเดียวกัน (หรือ "แท็ก" ในแง่ของ [24]) โครงสร้างการเข้ารหัสที่คล้ายกันเรียกอีกอย่างว่าลายเซ็นกลุ่มเฉพาะกิจ [16, 38] มัน เน้นการสร้างกลุ่มตามอำเภอใจ ในขณะที่แผนลายเซ็นกลุ่ม/วงแหวนค่อนข้างจะสื่อถึง a ชุดสมาชิกคงที่ โดยส่วนใหญ่ โซลูชันของเราอิงจากงาน “Traceable ring Signature” โดย E. Fujisaki และเค.ซูซูกิ [24]. เพื่อที่จะแยกแยะความแตกต่างระหว่างอัลกอริธึมดั้งเดิมและการปรับเปลี่ยนของเรา เรียกแบบหลังว่าเป็นลายเซ็นกริ่งแบบครั้งเดียว โดยเน้นย้ำถึงความสามารถของผู้ใช้ในการสร้างลายเซ็นที่ถูกต้องเพียงอันเดียว ลายเซ็นใต้คีย์ส่วนตัวของเขา เราลดคุณสมบัติการตรวจสอบย้อนกลับลงและรักษาความสามารถในการเชื่อมโยงไว้ เพื่อให้เกิดเพียงครั้งเดียวเท่านั้น: กุญแจสาธารณะอาจปรากฏในชุดการตรวจสอบต่างประเทศจำนวนมากและ รหัสส่วนตัวสามารถใช้ในการสร้างลายเซ็นที่ไม่ระบุชื่อที่ไม่ซ้ำใครได้ ในกรณีที่ใช้จ่ายซ้ำซ้อน การพยายามลงนามทั้งสองลายเซ็นจะเชื่อมโยงเข้าด้วยกัน แต่ไม่จำเป็นต้องเปิดเผยผู้ลงนาม เพื่อวัตถุประสงค์ของเรา 4.2 คำจำกัดความ 4.2.1 พารามิเตอร์เส้นโค้งวงรี เนื่องจากอัลกอริธึมลายเซ็นพื้นฐานของเรา เราเลือกใช้รูปแบบที่รวดเร็ว EdDSA ซึ่งได้รับการพัฒนาและ ดำเนินการโดยดีเจ เบิร์นสไตน์ และคณะ [18]. เช่นเดียวกับ ECDSA ของ Bitcoin มันขึ้นอยู่กับเส้นโค้งรูปวงรี ปัญหาลอการิทึมแบบไม่ต่อเนื่อง ดังนั้นโครงร่างของเราจึงสามารถนำไปใช้กับ Bitcoin ได้ในอนาคต พารามิเตอร์ทั่วไปคือ: q: จำนวนเฉพาะ; q = 2255 −19; d: องค์ประกอบของ Fq; ง = −121665/121666; E: สมการเส้นโค้งวงรี −x2 + y2 = 1 + dx2y2; G: จุดฐาน; G = (x, −4/5); l: ลำดับเฉพาะของจุดฐาน ล. = 2252 + 27742317777372353535851937790883648493; \(H_s\): ฟังก์ชันการเข้ารหัส hash \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): ฟังก์ชัน hash ที่กำหนดขึ้น \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\) 4.2.2 คำศัพท์เฉพาะทาง ความเป็นส่วนตัวที่ได้รับการปรับปรุงต้องใช้คำศัพท์ใหม่ซึ่งไม่ควรสับสนกับเอนทิตี Bitcoin ec-key ส่วนตัวเป็นคีย์ส่วนตัวโค้งวงรีมาตรฐาน: ตัวเลข \(a \in [1, l - 1]\); ec-key สาธารณะเป็นคีย์สาธารณะโค้งรูปไข่มาตรฐาน: จุด A = aG; keypair แบบครั้งเดียวคือคู่ของ ec-key ส่วนตัวและสาธารณะ 5 คีย์ แต่เป็นคีย์ของผู้ใช้ทั้งหมดในกลุ่มของเขา ผู้ตรวจสอบจะเชื่อมั่นว่าผู้ลงนามที่แท้จริงคือ a เป็นสมาชิกของกลุ่ม แต่ไม่สามารถระบุเฉพาะผู้ลงนามได้ โปรโตคอลดั้งเดิมจำเป็นต้องมีบุคคลที่สามที่เชื่อถือได้ (เรียกว่าผู้จัดการกลุ่ม) และเขาก็เป็นเช่นนั้น คนเดียวที่สามารถติดตามผู้ลงนามได้ รุ่นถัดไปเรียกว่าลายเซ็นแหวนแนะนำ โดย Rivest และคณะ ใน [34] เป็นโครงการอิสระที่ไม่มีผู้จัดการกลุ่มและไม่เปิดเผยตัวตน การเพิกถอน การปรับเปลี่ยนต่างๆ ของโครงร่างนี้ปรากฏในภายหลัง: ลายเซ็นวงแหวนที่เชื่อมโยงได้ [26, 27, 17] อนุญาตให้ตรวจสอบว่ามีการสร้างลายเซ็นสองรายการโดยสมาชิกกลุ่มคนเดียวกันหรือไม่ ซึ่งสามารถตรวจสอบย้อนกลับได้ ลายเซ็นต์แหวน [24, 23] จำกัด การไม่เปิดเผยตัวตนมากเกินไปโดยให้ความเป็นไปได้ในการติดตามผู้ลงนาม สองข้อความที่เกี่ยวข้องกับข้อมูลเมตาเดียวกัน (หรือ "แท็ก" ในแง่ของ [24]) โครงสร้างการเข้ารหัสที่คล้ายกันเรียกอีกอย่างว่าลายเซ็นกลุ่มเฉพาะกิจ [16, 38] มัน เน้นการสร้างกลุ่มตามอำเภอใจ ในขณะที่แผนลายเซ็นกลุ่ม/วงแหวนค่อนข้างจะสื่อถึง a ชุดสมาชิกคงที่ โดยส่วนใหญ่ โซลูชันของเราอิงจากงาน “Traceable ring Signature” โดย E. Fujisaki และเค. ซูซูกิ [24]. เพื่อที่จะแยกแยะความแตกต่างระหว่างอัลกอริธึมดั้งเดิมและการปรับเปลี่ยนของเรา เรียกแบบหลังว่าเป็นลายเซ็นกริ่งแบบครั้งเดียว โดยเน้นย้ำถึงความสามารถของผู้ใช้ในการสร้างลายเซ็นที่ถูกต้องเพียงอันเดียว ลายเซ็นใต้คีย์ส่วนตัวของเขา เราลดคุณสมบัติการตรวจสอบย้อนกลับลงและรักษาความสามารถในการเชื่อมโยงไว้ เพื่อให้เกิดเพียงครั้งเดียวเท่านั้น: กุญแจสาธารณะอาจปรากฏในชุดการตรวจสอบต่างประเทศจำนวนมากและ รหัสส่วนตัวสามารถใช้ในการสร้างลายเซ็นที่ไม่ระบุชื่อที่ไม่ซ้ำใครได้ ในกรณีที่ใช้จ่ายซ้ำซ้อน การพยายามลงนามทั้งสองลายเซ็นจะเชื่อมโยงเข้าด้วยกัน แต่ไม่จำเป็นต้องเปิดเผยผู้ลงนาม เพื่อวัตถุประสงค์ของเรา 4.2 คำจำกัดความ 4.2.1 พารามิเตอร์เส้นโค้งวงรี เนื่องจากเราเลือกอัลกอริธึมลายเซ็นพื้นฐานของเราe เพื่อใช้รูปแบบที่รวดเร็ว EdDSA ซึ่งได้รับการพัฒนาและ ดำเนินการโดยดีเจ เบิร์นสไตน์ และคณะ [18]. เช่นเดียวกับ ECDSA ของ Bitcoin มันขึ้นอยู่กับเส้นโค้งรูปวงรี ปัญหาลอการิทึมแบบไม่ต่อเนื่อง ดังนั้นโครงร่างของเราจึงสามารถนำไปใช้กับ Bitcoin ได้ในอนาคต พารามิเตอร์ทั่วไปคือ: q: จำนวนเฉพาะ; q = 2255 −19; d: องค์ประกอบของ Fq; ง = −121665/121666; E: สมการเส้นโค้งวงรี −x2 + y2 = 1 + dx2y2; G: จุดฐาน; G = (x, −4/5); l: ลำดับเฉพาะของจุดฐาน ล. = 2252 + 27742317777372353535851937790883648493; \(H_s\): ฟังก์ชันการเข้ารหัส hash \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): ฟังก์ชัน hash ที่กำหนดขึ้น \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\) 4.2.2 คำศัพท์เฉพาะทาง ความเป็นส่วนตัวที่ได้รับการปรับปรุงต้องใช้คำศัพท์ใหม่ซึ่งไม่ควรสับสนกับเอนทิตี Bitcoin ec-key ส่วนตัวเป็นคีย์ส่วนตัวโค้งวงรีมาตรฐาน: ตัวเลข \(a \in [1, l - 1]\); ec-key สาธารณะเป็นคีย์สาธารณะโค้งรูปไข่มาตรฐาน: จุด A = aG; keypair แบบครั้งเดียวคือคู่ของ ec-key ส่วนตัวและสาธารณะ 5 8 ลายเซ็นต์แหวนทำงานดังนี้: Alex ต้องการส่งข้อความถึง WikiLeaks เกี่ยวกับนายจ้างของเธอรั่วไหล พนักงานทุกคนในบริษัทของเธอมีคู่คีย์ส่วนตัว/สาธารณะ (Ri, Ui) เธอแต่ง ลายเซ็นของเธอพร้อมชุดอินพุตเป็นข้อความของเธอ, ม, คีย์ส่วนตัวของเธอ, Ri และของทุกคน กุญแจสาธารณะ (Ui;i=1...n) ทุกคน (โดยไม่ทราบรหัสส่วนตัว) สามารถตรวจสอบได้อย่างง่ายดาย ต้องใช้ บางคู่ (Rj, Uj) เพื่อสร้างลายเซ็น... คนที่ทำงาน สำหรับนายจ้างของอเล็กซ์... แต่โดยพื้นฐานแล้วมันเป็นการเดาสุ่มเพื่อดูว่าอันไหนจะเป็นอันไหน http://en.wikipedia.org/wiki/Ring_signature#Crypto-currencies http://link.springer.com/chapter/10.1007/3-540-45682-1_32#page-1 http://link.springer.com/chapter/10.1007/11424826_65 http://link.springer.com/chapter/10.1007/978-3-540-27800-9_28 http://link.springer.com/chapter/10.1007%2F11774716_9 โปรดสังเกตว่าลายเซ็นวงแหวนที่ลิงก์ได้ซึ่งอธิบายไว้ที่นี่เป็นสิ่งที่ตรงกันข้ามกับ "ไม่สามารถลิงก์ได้" อธิบายไว้ข้างต้น ที่นี่ เราสกัดกั้นข้อความสองข้อความ และเราสามารถระบุได้ว่าข้อความเดียวกันหรือไม่ ฝ่ายนั้นส่งพวกเขามา แม้ว่าเราจะยังคงไม่สามารถระบุได้ว่าใครคือฝ่ายนั้น ที่ คำจำกัดความของ "ไม่สามารถเชื่อมโยงได้" ที่ใช้ในการสร้าง Cryptonote หมายความว่าเราไม่สามารถระบุได้ว่า ฝ่ายเดียวกันกำลังรับพวกเขา ดังนั้นสิ่งที่เรามีจริงๆ ที่นี่คือสี่สิ่งที่เกิดขึ้น ระบบสามารถเชื่อมโยงหรือ ไม่สามารถเชื่อมโยงได้ ขึ้นอยู่กับว่าเป็นไปได้หรือไม่ที่จะตัดสินว่าผู้ส่งของ สองข้อความเหมือนกัน (ไม่ว่าจะต้องเพิกถอนการไม่เปิดเผยตัวตนหรือไม่ก็ตาม) และ ระบบสามารถยกเลิกการเชื่อมโยงหรือไม่สามารถยกเลิกการเชื่อมโยงได้ ขึ้นอยู่กับว่าเป็นไปได้หรือไม่ กำหนดว่าผู้รับข้อความทั้งสองคนเหมือนกันหรือไม่ (ไม่ว่าจะหรือไม่ก็ตาม สิ่งนี้จำเป็นต้องเพิกถอนการไม่เปิดเผยตัวตน) โปรดอย่าตำหนิฉันสำหรับคำศัพท์ที่น่ากลัวนี้ นักทฤษฎีกราฟน่าจะเป็นเช่นนั้น ยินดี บางท่านอาจจะรู้สึกสบายใจกว่าหากใช้ "ตัวรับที่ลิงก์ได้" กับ "ตัวส่งที่ลิงก์ได้" http://link.springer.com/chapter/10.1007/978-3-540-71677-8_13 เมื่อฉันอ่านสิ่งนี้ดูเหมือนเป็นคุณลักษณะที่โง่เขลา แล้วผมก็อ่านเจอว่ามันอาจจะเป็นฟีเจอร์สำหรับ การลงคะแนนเสียงทางอิเล็กทรอนิกส์ และนั่นก็ดูสมเหตุสมผล ค่อนข้างเจ๋งจากมุมมองนั้น แต่ฉัน ไม่แน่ใจโดยสิ้นเชิงเกี่ยวกับการใช้ลายเซ็นวงแหวนที่ตรวจสอบย้อนกลับได้โดยเจตนา http://search.ieice.org/bin/summary.php?id=e95-a_1_151

คีย์ แต่เป็นคีย์ของผู้ใช้ทั้งหมดในกลุ่มของเขา ผู้ตรวจสอบจะเชื่อมั่นว่าผู้ลงนามที่แท้จริงคือ a เป็นสมาชิกของกลุ่ม แต่ไม่สามารถระบุเฉพาะผู้ลงนามได้ โปรโตคอลดั้งเดิมจำเป็นต้องมีบุคคลที่สามที่เชื่อถือได้ (เรียกว่าผู้จัดการกลุ่ม) และเขาก็เป็นเช่นนั้น คนเดียวที่สามารถติดตามผู้ลงนามได้ รุ่นถัดไปเรียกว่าลายเซ็นแหวนแนะนำ โดย Rivest และคณะ ใน [34] เป็นโครงการอิสระที่ไม่มีผู้จัดการกลุ่มและไม่เปิดเผยตัวตน การเพิกถอน การปรับเปลี่ยนต่างๆ ของโครงร่างนี้ปรากฏในภายหลัง: ลายเซ็นวงแหวนที่เชื่อมโยงได้ [26, 27, 17] อนุญาตให้ตรวจสอบว่ามีการสร้างลายเซ็นสองรายการโดยสมาชิกกลุ่มคนเดียวกันหรือไม่ ซึ่งสามารถตรวจสอบย้อนกลับได้ ลายเซ็นต์แหวน [24, 23] จำกัด การไม่เปิดเผยตัวตนมากเกินไปโดยให้ความเป็นไปได้ในการติดตามผู้ลงนาม สองข้อความที่เกี่ยวข้องกับข้อมูลเมตาเดียวกัน (หรือ "แท็ก" ในแง่ของ [24]) โครงสร้างการเข้ารหัสที่คล้ายกันเรียกอีกอย่างว่าลายเซ็นกลุ่มเฉพาะกิจ [16, 38] มัน เน้นการสร้างกลุ่มตามอำเภอใจ ในขณะที่แผนลายเซ็นกลุ่ม/วงแหวนค่อนข้างจะสื่อถึง a ชุดสมาชิกคงที่ โดยส่วนใหญ่ โซลูชันของเราอิงจากงาน “Traceable ring Signature” โดย E. Fujisaki และเค. ซูซูกิ [24]. เพื่อที่จะแยกแยะความแตกต่างระหว่างอัลกอริธึมดั้งเดิมและการปรับเปลี่ยนของเรา เรียกแบบหลังว่าเป็นลายเซ็นกริ่งแบบครั้งเดียว โดยเน้นย้ำถึงความสามารถของผู้ใช้ในการสร้างลายเซ็นที่ถูกต้องเพียงอันเดียว ลายเซ็นใต้คีย์ส่วนตัวของเขา เราลดคุณสมบัติการตรวจสอบย้อนกลับลงและรักษาความสามารถในการเชื่อมโยงไว้ เพื่อให้เกิดเพียงครั้งเดียวเท่านั้น: กุญแจสาธารณะอาจปรากฏในชุดการตรวจสอบต่างประเทศจำนวนมากและ รหัสส่วนตัวสามารถใช้ในการสร้างลายเซ็นที่ไม่ระบุชื่อที่ไม่ซ้ำใครได้ ในกรณีที่ใช้จ่ายซ้ำซ้อน การพยายามลงนามทั้งสองลายเซ็นจะเชื่อมโยงเข้าด้วยกัน แต่ไม่จำเป็นต้องเปิดเผยผู้ลงนาม เพื่อวัตถุประสงค์ของเรา 4.2 คำจำกัดความ 4.2.1 พารามิเตอร์เส้นโค้งวงรี เนื่องจากอัลกอริธึมลายเซ็นพื้นฐานของเรา เราเลือกใช้รูปแบบที่รวดเร็ว EdDSA ซึ่งได้รับการพัฒนาและ ดำเนินการโดยดีเจ เบิร์นสไตน์ และคณะ [18]. เช่นเดียวกับ ECDSA ของ Bitcoin มันขึ้นอยู่กับเส้นโค้งรูปวงรี ปัญหาลอการิทึมแบบไม่ต่อเนื่อง ดังนั้นโครงร่างของเราจึงสามารถนำไปใช้กับ Bitcoin ได้ในอนาคต พารามิเตอร์ทั่วไปคือ: q: จำนวนเฉพาะ; q = 2255 −19; d: องค์ประกอบของ Fq; ง = −121665/121666; E: สมการเส้นโค้งวงรี −x2 + y2 = 1 + dx2y2; G: จุดฐาน; G = (x, −4/5); l: ลำดับเฉพาะของจุดฐาน ล. = 2252 + 27742317777372353535851937790883648493; \(H_s\): ฟังก์ชันการเข้ารหัส hash \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): ฟังก์ชัน hash ที่กำหนดขึ้น \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\) 4.2.2 คำศัพท์เฉพาะทาง ความเป็นส่วนตัวที่ได้รับการปรับปรุงต้องใช้คำศัพท์ใหม่ซึ่งไม่ควรสับสนกับเอนทิตี Bitcoin ec-key ส่วนตัวเป็นคีย์ส่วนตัวโค้งวงรีมาตรฐาน: ตัวเลข \(a \in [1, l - 1]\); ec-key สาธารณะเป็นคีย์สาธารณะโค้งรูปไข่มาตรฐาน: จุด A = aG; keypair แบบครั้งเดียวคือคู่ของ ec-key ส่วนตัวและสาธารณะ 5 คีย์ แต่เป็นคีย์ของผู้ใช้ทั้งหมดในกลุ่มของเขา ผู้ตรวจสอบจะเชื่อมั่นว่าผู้ลงนามที่แท้จริงคือ a เป็นสมาชิกของกลุ่ม แต่ไม่สามารถระบุเฉพาะผู้ลงนามได้ โปรโตคอลดั้งเดิมจำเป็นต้องมีบุคคลที่สามที่เชื่อถือได้ (เรียกว่าผู้จัดการกลุ่ม) และเขาก็เป็นเช่นนั้น คนเดียวที่สามารถติดตามผู้ลงนามได้ รุ่นถัดไปเรียกว่าลายเซ็นแหวนแนะนำ โดย Rivest และคณะ ใน [34] เป็นโครงการอิสระที่ไม่มีผู้จัดการกลุ่มและไม่เปิดเผยตัวตน การเพิกถอน การปรับเปลี่ยนต่างๆ ของโครงร่างนี้ปรากฏในภายหลัง: ลายเซ็นวงแหวนที่เชื่อมโยงได้ [26, 27, 17] อนุญาตให้ตรวจสอบว่ามีการสร้างลายเซ็นสองรายการโดยสมาชิกกลุ่มคนเดียวกันหรือไม่ ซึ่งสามารถตรวจสอบย้อนกลับได้ ลายเซ็นต์แหวน [24, 23] จำกัด การไม่เปิดเผยตัวตนมากเกินไปโดยให้ความเป็นไปได้ในการติดตามผู้ลงนาม สองข้อความที่เกี่ยวข้องกับข้อมูลเมตาเดียวกัน (หรือ "แท็ก" ในแง่ของ [24]) โครงสร้างการเข้ารหัสที่คล้ายกันเรียกอีกอย่างว่าลายเซ็นกลุ่มเฉพาะกิจ [16, 38] มัน เน้นการสร้างกลุ่มตามอำเภอใจ ในขณะที่แผนลายเซ็นกลุ่ม/วงแหวนค่อนข้างจะสื่อถึง a ชุดสมาชิกคงที่ โดยส่วนใหญ่ โซลูชันของเราอิงจากงาน “Traceable ring Signature” โดย E. Fujisaki และเค. ซูซูกิ [24]. เพื่อที่จะแยกแยะความแตกต่างระหว่างอัลกอริธึมดั้งเดิมและการปรับเปลี่ยนของเรา เรียกแบบหลังว่าเป็นลายเซ็นกริ่งแบบครั้งเดียว โดยเน้นย้ำถึงความสามารถของผู้ใช้ในการสร้างลายเซ็นที่ถูกต้องเพียงอันเดียว ลายเซ็นใต้คีย์ส่วนตัวของเขา เราลดคุณสมบัติการตรวจสอบย้อนกลับลงและรักษาความสามารถในการเชื่อมโยงไว้ เพื่อให้เกิดเพียงครั้งเดียวเท่านั้น: กุญแจสาธารณะอาจปรากฏในชุดการตรวจสอบต่างประเทศจำนวนมากและ รหัสส่วนตัวสามารถใช้ในการสร้างลายเซ็นที่ไม่ระบุชื่อที่ไม่ซ้ำใครได้ ในกรณีที่ใช้จ่ายซ้ำซ้อน การพยายามลงนามทั้งสองลายเซ็นจะเชื่อมโยงเข้าด้วยกัน แต่ไม่จำเป็นต้องเปิดเผยผู้ลงนาม เพื่อวัตถุประสงค์ของเรา 4.2 คำจำกัดความ 4.2.1 พารามิเตอร์เส้นโค้งวงรี เนื่องจากเราเลือกอัลกอริธึมลายเซ็นพื้นฐานของเราe เพื่อใช้รูปแบบที่รวดเร็ว EdDSA ซึ่งได้รับการพัฒนาและ ดำเนินการโดยดีเจ เบิร์นสไตน์ และคณะ [18]. เช่นเดียวกับ ECDSA ของ Bitcoin มันขึ้นอยู่กับเส้นโค้งรูปวงรี ปัญหาลอการิทึมแบบไม่ต่อเนื่อง ดังนั้นโครงการของเราจึงสามารถนำไปใช้กับ Bitcoin ได้ในอนาคต พารามิเตอร์ทั่วไปคือ: q: จำนวนเฉพาะ; q = 2255 −19; d: องค์ประกอบของ Fq; ง = −121665/121666; E: สมการเส้นโค้งวงรี −x2 + y2 = 1 + dx2y2; G: จุดฐาน; G = (x, −4/5); l: ลำดับเฉพาะของจุดฐาน ล. = 2252 + 27742317777372353535851937790883648493; \(H_s\): ฟังก์ชันการเข้ารหัส hash \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): ฟังก์ชัน hash ที่กำหนดขึ้น \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\) 4.2.2 คำศัพท์เฉพาะทาง ความเป็นส่วนตัวที่ได้รับการปรับปรุงต้องใช้คำศัพท์ใหม่ซึ่งไม่ควรสับสนกับเอนทิตี Bitcoin ec-key ส่วนตัวเป็นคีย์ส่วนตัวโค้งวงรีมาตรฐาน: ตัวเลข \(a \in [1, l - 1]\); ec-key สาธารณะเป็นคีย์สาธารณะโค้งรูปไข่มาตรฐาน: จุด A = aG; keypair แบบครั้งเดียวคือคู่ของ ec-key ส่วนตัวและสาธารณะ 5 9 เอ้ย ผู้เขียน whitepaper นี้น่าจะใช้คำพูดได้ดีกว่านี้แน่นอน! สมมติว่าเป็น บริษัทที่พนักงานเป็นเจ้าของต้องการลงคะแนนเสียงว่าจะซื้อกิจการใหม่บางอย่างหรือไม่ สินทรัพย์ และอเล็กซ์และเบรนด้าก็เป็นพนักงานทั้งคู่ บริษัทจัดให้มีพนักงานแต่ละคนก ข้อความเช่น "ฉันลงคะแนนว่าใช่ในข้อเสนอ A!" ซึ่งมี metatainformation “ประเด็น” [PROP A] และขอให้พวกเขาลงนามด้วยลายเซ็นวงแหวนที่ติดตามได้หากพวกเขาสนับสนุนข้อเสนอ การใช้ลายเซ็นวงแหวนแบบดั้งเดิม พนักงานที่ไม่ซื่อสัตย์สามารถเซ็นข้อความได้หลายครั้ง อาจมี nonces ที่แตกต่างกันเพื่อที่จะลงคะแนนได้มากเท่าที่ต้องการ ในอีกทางหนึ่ง ในรูปแบบลายเซ็นวงแหวนที่ติดตามได้ อเล็กซ์จะไปลงคะแนน และคีย์ส่วนตัวของเธอจะมี ถูกนำมาใช้ในประเด็น [PROP A] ถ้าอเล็กซ์พยายามเซ็นข้อความเช่น "ฉัน เบรนด้า อนุมัติแล้ว" ข้อเสนอ A!" เพื่อ "เฟรม" เบรนดาและโหวตสองครั้ง ข้อความใหม่นี้จะมีปัญหาเช่นกัน [ข้อเสนอ ก]. เนื่องจากคีย์ส่วนตัวของ Alex ได้สะดุดปัญหา [PROP A] แล้ว ตัวตนของ Alex จะถูกเปิดเผยทันทีว่าเป็นการฉ้อโกง ซึ่งหน้ามันเจ๋งมาก! การเข้ารหัสบังคับใช้ความเท่าเทียมกันในการลงคะแนนเสียง http://link.springer.com/chapter/10.1007/978-3-540-71677-8_13 บทความนี้น่าสนใจ โดยพื้นฐานแล้วเป็นการสร้างลายเซ็นเฉพาะกิจ แต่ไม่มีสิ่งใดเลย ความยินยอมของผู้เข้าร่วมรายอื่น โครงสร้างของลายเซ็นอาจแตกต่างกัน ฉันไม่ได้ขุด ลึกและฉันก็ไม่เห็นว่ามันปลอดภัยหรือไม่ https://people.csail.mit.edu/rivest/AdidaHohenbergerRivest-AdHocGroupSignaturesFromHijackedKeypai ลายเซ็นกลุ่มเฉพาะกิจคือ: ลายเซ็นวงแหวนซึ่งเป็นลายเซ็นกลุ่มที่ไม่มีกลุ่ม ผู้จัดการ ไม่มีการรวมศูนย์ แต่อนุญาตให้สมาชิกในกลุ่มเฉพาะกิจสามารถอ้างสิทธิ์ดังกล่าวได้อย่างพิสูจน์ได้ ได้ (ไม่) ออกลายเซ็นนิรนามในนามของกลุ่ม http://link.springer.com/chapter/10.1007/11908739_9 นี่ไม่ถูกต้องนักจากความเข้าใจของฉัน และความเข้าใจของฉันก็คงจะเปลี่ยนตาม ฉันเจาะลึกโครงการนี้มากขึ้น แต่จากความเข้าใจของฉัน ลำดับชั้นมีลักษณะเช่นนี้ ลายเซ็นกลุ่ม: ผู้จัดการกลุ่มควบคุมการตรวจสอบย้อนกลับและความสามารถในการเพิ่มหรือลบสมาชิก จากการเป็นผู้ลงนาม Ring sigs: การสร้างกลุ่มตามอำเภอใจโดยไม่มีผู้จัดการกลุ่ม ไม่มีการเพิกถอนการไม่เปิดเผยตัวตน ไม่มีทางที่จะปฏิเสธตนเองจากลายเซ็นเฉพาะ ด้วยวงแหวนที่ตรวจสอบย้อนกลับและเชื่อมโยงได้ ลายเซ็น การไม่เปิดเผยตัวตนสามารถปรับขนาดได้เล็กน้อย ลายเซ็นกลุ่มเฉพาะกิจ: เช่นเดียวกับลายเซ็นวงแหวน แต่สมาชิกสามารถพิสูจน์ได้ว่าพวกเขาไม่ได้สร้างขึ้น ลายเซ็นเฉพาะ นี่เป็นสิ่งสำคัญเมื่อใครก็ตามในกลุ่มสามารถสร้างลายเซ็นได้ http://link.springer.com/chapter/10.1007/978-3-540-71677-8_13 อัลกอริธึมของฟูจิซากิและซูซูกิได้รับการปรับแต่งในภายหลังโดยผู้เขียนเพื่อให้เกิดเพียงครั้งเดียว ดังนั้น เราจะวิเคราะห์อัลกอริทึมของ Fujisaki และ Suzuki ไปพร้อมกับอัลกอริทึมใหม่แทน กว่าการไปที่นี่

คีย์ แต่เป็นคีย์ของผู้ใช้ทั้งหมดในกลุ่มของเขา ผู้ตรวจสอบจะเชื่อมั่นว่าผู้ลงนามที่แท้จริงคือ a เป็นสมาชิกของกลุ่ม แต่ไม่สามารถระบุเฉพาะผู้ลงนามได้ โปรโตคอลดั้งเดิมจำเป็นต้องมีบุคคลที่สามที่เชื่อถือได้ (เรียกว่าผู้จัดการกลุ่ม) และเขาก็เป็นเช่นนั้น คนเดียวที่สามารถติดตามผู้ลงนามได้ รุ่นถัดไปเรียกว่าลายเซ็นแหวนแนะนำ โดย Rivest และคณะ ใน [34] เป็นโครงการอิสระที่ไม่มีผู้จัดการกลุ่มและไม่เปิดเผยตัวตน การเพิกถอน การปรับเปลี่ยนต่างๆ ของโครงร่างนี้ปรากฏในภายหลัง: ลายเซ็นวงแหวนที่เชื่อมโยงได้ [26, 27, 17] อนุญาตให้ตรวจสอบว่ามีการสร้างลายเซ็นสองรายการโดยสมาชิกกลุ่มคนเดียวกันหรือไม่ ซึ่งสามารถตรวจสอบย้อนกลับได้ ลายเซ็นต์แหวน [24, 23] จำกัด การไม่เปิดเผยตัวตนมากเกินไปโดยให้ความเป็นไปได้ในการติดตามผู้ลงนาม สองข้อความที่เกี่ยวข้องกับข้อมูลเมตาเดียวกัน (หรือ "แท็ก" ในแง่ของ [24]) โครงสร้างการเข้ารหัสที่คล้ายกันเรียกอีกอย่างว่าลายเซ็นกลุ่มเฉพาะกิจ [16, 38] มัน เน้นการสร้างกลุ่มตามอำเภอใจ ในขณะที่แผนลายเซ็นกลุ่ม/วงแหวนค่อนข้างจะสื่อถึง a ชุดสมาชิกคงที่ โดยส่วนใหญ่ โซลูชันของเราอิงจากงาน “Traceable ring Signature” โดย E. Fujisaki และเค. ซูซูกิ [24]. เพื่อที่จะแยกแยะความแตกต่างระหว่างอัลกอริธึมดั้งเดิมและการปรับเปลี่ยนของเรา เรียกแบบหลังว่าเป็นลายเซ็นกริ่งแบบครั้งเดียว โดยเน้นย้ำถึงความสามารถของผู้ใช้ในการสร้างลายเซ็นที่ถูกต้องเพียงอันเดียว ลายเซ็นใต้คีย์ส่วนตัวของเขา เราลดคุณสมบัติการตรวจสอบย้อนกลับลงและรักษาความสามารถในการเชื่อมโยงไว้ เพื่อให้เกิดเพียงครั้งเดียวเท่านั้น: กุญแจสาธารณะอาจปรากฏในชุดการตรวจสอบต่างประเทศจำนวนมากและ รหัสส่วนตัวสามารถใช้ในการสร้างลายเซ็นที่ไม่ระบุชื่อที่ไม่ซ้ำใครได้ ในกรณีที่ใช้จ่ายซ้ำซ้อน การพยายามลงนามทั้งสองลายเซ็นจะเชื่อมโยงเข้าด้วยกัน แต่ไม่จำเป็นต้องเปิดเผยผู้ลงนาม เพื่อวัตถุประสงค์ของเรา 4.2 คำจำกัดความ 4.2.1 พารามิเตอร์เส้นโค้งวงรี เนื่องจากอัลกอริธึมลายเซ็นพื้นฐานของเรา เราเลือกใช้รูปแบบที่รวดเร็ว EdDSA ซึ่งได้รับการพัฒนาและ ดำเนินการโดยดีเจ เบิร์นสไตน์ และคณะ [18]. เช่นเดียวกับ ECDSA ของ Bitcoin มันขึ้นอยู่กับเส้นโค้งรูปวงรี ปัญหาลอการิทึมแบบไม่ต่อเนื่อง ดังนั้นโครงร่างของเราจึงสามารถนำไปใช้กับ Bitcoin ได้ในอนาคต พารามิเตอร์ทั่วไปคือ: q: จำนวนเฉพาะ; q = 2255 −19; d: องค์ประกอบของ Fq; ง = −121665/121666; E: สมการเส้นโค้งวงรี −x2 + y2 = 1 + dx2y2; G: จุดฐาน; G = (x, −4/5); l: ลำดับเฉพาะของจุดฐาน ล. = 2252 + 27742317777372353535851937790883648493; \(H_s\): ฟังก์ชันการเข้ารหัส hash \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): ฟังก์ชัน hash ที่กำหนดขึ้น \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\) 4.2.2 คำศัพท์เฉพาะทาง ความเป็นส่วนตัวที่ได้รับการปรับปรุงต้องใช้คำศัพท์ใหม่ซึ่งไม่ควรสับสนกับเอนทิตี Bitcoin ec-key ส่วนตัวเป็นคีย์ส่วนตัวโค้งวงรีมาตรฐาน: ตัวเลข \(a \in [1, l - 1]\); ec-key สาธารณะเป็นคีย์สาธารณะโค้งรูปไข่มาตรฐาน: จุด A = aG; keypair แบบครั้งเดียวคือคู่ของ ec-key ส่วนตัวและสาธารณะ 5 คีย์ แต่เป็นคีย์ของผู้ใช้ทั้งหมดในกลุ่มของเขา ผู้ตรวจสอบจะเชื่อมั่นว่าผู้ลงนามที่แท้จริงคือ a เป็นสมาชิกของกลุ่ม แต่ไม่สามารถระบุเฉพาะผู้ลงนามได้ โปรโตคอลดั้งเดิมจำเป็นต้องมีบุคคลที่สามที่เชื่อถือได้ (เรียกว่าผู้จัดการกลุ่ม) และเขาก็เป็นเช่นนั้น คนเดียวที่สามารถติดตามผู้ลงนามได้ รุ่นถัดไปเรียกว่าลายเซ็นแหวนแนะนำ โดย Rivest และคณะ ใน [34] เป็นโครงการอิสระที่ไม่มีผู้จัดการกลุ่มและไม่เปิดเผยตัวตน การเพิกถอน การปรับเปลี่ยนต่างๆ ของโครงร่างนี้ปรากฏในภายหลัง: ลายเซ็นวงแหวนที่เชื่อมโยงได้ [26, 27, 17] อนุญาตให้ตรวจสอบว่ามีการสร้างลายเซ็นสองรายการโดยสมาชิกกลุ่มคนเดียวกันหรือไม่ ซึ่งสามารถตรวจสอบย้อนกลับได้ ลายเซ็นต์แหวน [24, 23] จำกัด การไม่เปิดเผยตัวตนมากเกินไปโดยให้ความเป็นไปได้ในการติดตามผู้ลงนาม สองข้อความที่เกี่ยวข้องกับข้อมูลเมตาเดียวกัน (หรือ "แท็ก" ในแง่ของ [24]) โครงสร้างการเข้ารหัสที่คล้ายกันเรียกอีกอย่างว่าลายเซ็นกลุ่มเฉพาะกิจ [16, 38] มัน เน้นการสร้างกลุ่มตามอำเภอใจ ในขณะที่แผนลายเซ็นกลุ่ม/วงแหวนค่อนข้างจะสื่อถึง a ชุดสมาชิกคงที่ โดยส่วนใหญ่ โซลูชันของเราอิงจากงาน “Traceable ring Signature” โดย E. Fujisaki และเค. ซูซูกิ [24]. เพื่อที่จะแยกแยะความแตกต่างระหว่างอัลกอริธึมดั้งเดิมและการปรับเปลี่ยนของเรา เรียกแบบหลังว่าเป็นลายเซ็นกริ่งแบบครั้งเดียว โดยเน้นย้ำถึงความสามารถของผู้ใช้ในการสร้างลายเซ็นที่ถูกต้องเพียงอันเดียว ลายเซ็นใต้คีย์ส่วนตัวของเขา เราลดคุณสมบัติการตรวจสอบย้อนกลับลงและรักษาความสามารถในการเชื่อมโยงไว้ เพื่อให้เกิดเพียงครั้งเดียวเท่านั้น: กุญแจสาธารณะอาจปรากฏในชุดการตรวจสอบต่างประเทศจำนวนมากและ รหัสส่วนตัวสามารถใช้ในการสร้างลายเซ็นที่ไม่ระบุชื่อที่ไม่ซ้ำใครได้ ในกรณีที่ใช้จ่ายซ้ำซ้อน การพยายามลงนามทั้งสองลายเซ็นจะเชื่อมโยงเข้าด้วยกัน แต่ไม่จำเป็นต้องเปิดเผยผู้ลงนาม เพื่อวัตถุประสงค์ของเรา 4.2 คำจำกัดความ 4.2.1 พารามิเตอร์เส้นโค้งวงรี เนื่องจากเราเลือกอัลกอริธึมลายเซ็นพื้นฐานของเราe เพื่อใช้รูปแบบที่รวดเร็ว EdDSA ซึ่งได้รับการพัฒนาและ ดำเนินการโดยดีเจ เบิร์นสไตน์ และคณะ [18]. เช่นเดียวกับ ECDSA ของ Bitcoin มันขึ้นอยู่กับเส้นโค้งรูปวงรี ปัญหาลอการิทึมแบบไม่ต่อเนื่อง ดังนั้นโครงร่างของเราจึงสามารถนำไปใช้กับ Bitcoin ได้ในอนาคต พารามิเตอร์ทั่วไปคือ: q: จำนวนเฉพาะ; q = 2255 −19; d: องค์ประกอบของ Fq; ง = −121665/121666; E: สมการเส้นโค้งวงรี −x2 + y2 = 1 + dx2y2; G: จุดฐาน; G = (x, −4/5); l: ลำดับเฉพาะของจุดฐาน ล. = 2252 + 27742317777372353535851937790883648493; \(H_s\): ฟังก์ชันการเข้ารหัส hash \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): ฟังก์ชัน hash ที่กำหนดขึ้น \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\) 4.2.2 คำศัพท์เฉพาะทาง ความเป็นส่วนตัวที่ได้รับการปรับปรุงต้องใช้คำศัพท์ใหม่ซึ่งไม่ควรสับสนกับเอนทิตี Bitcoin ec-key ส่วนตัวเป็นคีย์ส่วนตัวโค้งวงรีมาตรฐาน: ตัวเลข \(a \in [1, l - 1]\); ec-key สาธารณะเป็นคีย์สาธารณะโค้งรูปไข่มาตรฐาน: จุด A = aG; keypair แบบครั้งเดียวคือคู่ของ ec-key ส่วนตัวและสาธารณะ 5 10 ความสามารถในการเชื่อมโยงในแง่ของ "ลายเซ็นวงแหวนที่เชื่อมโยงได้" หมายความว่าเราสามารถบอกได้ว่าธุรกรรมขาออกสองรายการมาจากแหล่งเดียวกันโดยไม่เปิดเผยว่าใครคือแหล่งที่มา ผู้เขียนอ่อนแอลง ความสามารถในการเชื่อมโยงเพื่อ (ก) รักษาความเป็นส่วนตัว แต่ยังคง (ข) มองเห็นธุรกรรมใด ๆ โดยใช้รหัสส่วนตัว ครั้งที่สองว่าไม่ถูกต้อง โอเค นี่คือคำถามลำดับเหตุการณ์ พิจารณาสถานการณ์ต่อไปนี้ การขุดของฉัน คอมพิวเตอร์จะมี blockchain ปัจจุบัน โดยจะมีบล็อกธุรกรรมที่เรียกใช้เอง ถูกต้องตามกฎหมาย มันจะทำงานกับบล็อกนั้นในปริศนา proof-of-work และจะมี รายการธุรกรรมที่รอดำเนินการที่จะเพิ่มในบล็อกถัดไป มันยังจะส่งใหม่อีกด้วย ธุรกรรมในกลุ่มธุรกรรมที่รอดำเนินการนั้น ถ้าผมแก้บล็อกต่อไปไม่ได้แต่ มีคนอื่นทำ ฉันได้รับสำเนาที่อัปเดตของ blockchain บล็อกที่ฉันกำลังทำงานอยู่และ รายการธุรกรรมที่รอดำเนินการของฉันทั้งสองอาจมีธุรกรรมบางรายการที่รวมเข้าด้วยกันแล้ว ลงใน blockchain คลี่คลายบล็อกที่รอดำเนินการของฉัน รวมเข้ากับรายการธุรกรรมที่รอดำเนินการของฉัน แล้วเรียกสิ่งนั้น กลุ่มธุรกรรมที่รอดำเนินการของฉัน ลบสิ่งที่อยู่ใน blockchain อย่างเป็นทางการออก ตอนนี้ฉันจะทำอย่างไร? ฉันควรดำเนินการก่อนและ "ลบการใช้จ่ายซ้ำซ้อนทั้งหมด" หรือไม่ ในอีกทางหนึ่ง ฉันควรค้นหาผ่านรายการและตรวจสอบให้แน่ใจว่ายังไม่มีคีย์ส่วนตัวแต่ละรายการ ใช้แล้ว และถ้าได้ใช้อยู่ในรายการข้าพเจ้าแล้ว ข้าพเจ้าก็ได้รับสำเนาฉบับแรกก่อน และด้วยเหตุนี้ สำเนาเพิ่มเติมใด ๆ ถือเป็นสิ่งผิดกฎหมาย ดังนั้นฉันจึงดำเนินการลบอินสแตนซ์ทั้งหมดหลังจากครั้งแรก ของคีย์ส่วนตัวอันเดียวกัน เรขาคณิตพีชคณิตไม่เคยเหมาะกับฉันเลย http://en.wikipedia.org/wiki/EdDSA ความเร็วขนาดนี้ว้าวมาก นี่คือเรขาคณิตเชิงพีชคณิตสำหรับการชนะ ไม่ใช่ว่าฉันไม่รู้อะไรเลย เกี่ยวกับเรื่องนั้น บันทึกแบบแยกจะมีปัญหาหรือไม่ก็ตามกำลังดำเนินไปอย่างรวดเร็ว และคอมพิวเตอร์ควอนตัมก็กินพวกมัน สำหรับอาหารเช้า http://link.springer.com/article/10.1007/s13389-012-0027-1 นี่กลายเป็นตัวเลขที่สำคัญมาก แต่ไม่มีคำอธิบายหรือการอ้างอิงว่าตัวเลขดังกล่าวเป็นอย่างไร ได้รับเลือก เพียงแค่เลือกจำนวนเฉพาะขนาดใหญ่ที่ทราบเพียงตัวเดียวก็ไม่เป็นไร แต่ถ้าทราบจำนวนเฉพาะนั้น ข้อเท็จจริงเกี่ยวกับไพรม์ขนาดใหญ่นี้ ที่อาจมีอิทธิพลต่อการเลือกของเรา Cryptonote หลากหลายรูปแบบ สามารถเลือกค่าที่แตกต่างกันของ ใช่ แต่ไม่มีการสนทนาในบทความนี้เกี่ยวกับวิธีการนั้น ตัวเลือกจะส่งผลต่อการเลือกพารามิเตอร์ส่วนกลางอื่น ๆ ของเราที่แสดงอยู่ในหน้า 5 บทความนี้ต้องการหัวข้อเกี่ยวกับการเลือกค่าพารามิเตอร์

คีย์ผู้ใช้ส่วนตัวคือคู่ (a, b) ของคีย์ ec ส่วนตัวสองตัวที่แตกต่างกัน รหัสติดตามคือคู่ (a, B) ของ ec-key ส่วนตัวและสาธารณะ (โดยที่ B = bG และ a ̸= b) รหัสผู้ใช้สาธารณะคือคู่ (A, B) ของสองคีย์ ec สาธารณะที่ได้มาจาก (a, b); ที่อยู่มาตรฐานคือการแสดงรหัสผู้ใช้สาธารณะที่กำหนดให้กับสตริงที่เป็นมิตรกับมนุษย์ มีการแก้ไขข้อผิดพลาด ที่อยู่ที่ถูกตัดทอนเป็นตัวแทนของครึ่งหลัง (จุด B) ของรหัสผู้ใช้สาธารณะที่กำหนด เป็นสตริงที่เป็นมิตรต่อมนุษย์พร้อมการแก้ไขข้อผิดพลาด โครงสร้างธุรกรรมยังคงคล้ายกับโครงสร้างใน Bitcoin: ผู้ใช้ทุกคนสามารถเลือกได้ การชำระเงินขาเข้าที่เป็นอิสระหลายรายการ (ผลลัพธ์ของธุรกรรม) ลงนามด้วยสิ่งที่เกี่ยวข้อง กุญแจส่วนตัวและส่งไปยังปลายทางที่แตกต่างกัน ตรงกันข้ามกับโมเดลของ Bitcoin ซึ่งผู้ใช้มีคีย์ส่วนตัวและคีย์สาธารณะที่ไม่ซ้ำกันใน โมเดลที่นำเสนอ ผู้ส่งจะสร้างคีย์สาธารณะแบบครั้งเดียวตามที่อยู่ของผู้รับและ ข้อมูลสุ่มบางอย่าง ในแง่นี้ ธุรกรรมขาเข้าสำหรับผู้รับคนเดียวกันจะถูกส่งไปยัง กุญแจสาธารณะแบบครั้งเดียว (ไม่ใช่โดยตรงไปยังที่อยู่ที่ไม่ซ้ำกัน) และมีเพียงผู้รับเท่านั้นที่สามารถกู้คืนได้ ส่วนตัวที่เกี่ยวข้องเพื่อแลกเงินของเขา (โดยใช้รหัสส่วนตัวเฉพาะของเขา) ผู้รับก็ได้ ใช้จ่ายเงินโดยใช้ลายเซ็นต์แหวน โดยรักษาความเป็นเจ้าของและการใช้จ่ายจริงโดยไม่เปิดเผยชื่อ รายละเอียดของระเบียบการจะอธิบายไว้ในส่วนย่อยถัดไป 4.3 การชำระเงินที่ไม่สามารถเชื่อมโยงได้ ที่อยู่ Bitcoin แบบคลาสสิก เมื่อเผยแพร่แล้ว จะกลายเป็นตัวระบุที่ชัดเจนสำหรับขาเข้า การชำระเงิน เชื่อมโยงเข้าด้วยกันและผูกเข้ากับนามแฝงของผู้รับ หากใครต้องการ รับธุรกรรม "ผูกมัด" เขาควรแจ้งที่อยู่ของเขาไปยังผู้ส่งโดยช่องทางส่วนตัว หากเขาต้องการรับธุรกรรมที่แตกต่างซึ่งไม่สามารถพิสูจน์ได้ว่าเป็นของเจ้าของคนเดียวกัน เขาควรสร้างที่อยู่ที่แตกต่างกันทั้งหมดและไม่เคยเผยแพร่โดยใช้นามแฝงของเขาเอง สาธารณะ ส่วนตัว อลิซ แครอล Addr ของ Bob 1 Addr ของ Bob 2 กุญแจของบ๊อบ 1 กุญแจของบ๊อบ 2 บ๊อบ รูปที่ 2 โมเดล Bitcoin คีย์/ธุรกรรมแบบดั้งเดิม เราเสนอวิธีแก้ปัญหาเพื่อให้ผู้ใช้สามารถเผยแพร่ที่อยู่เดียวและรับโดยไม่มีเงื่อนไข การชำระเงินที่ไม่สามารถเชื่อมโยงได้ ปลายทางของเอาต์พุต CryptoNote แต่ละรายการ (โดยค่าเริ่มต้น) คือคีย์สาธารณะ มาจากที่อยู่ของผู้รับและข้อมูลสุ่มของผู้ส่ง ข้อได้เปรียบหลักเทียบกับ Bitcoin คือคีย์ปลายทางทุกอันจะไม่ซ้ำกันตามค่าเริ่มต้น (เว้นแต่ผู้ส่งจะใช้ข้อมูลเดียวกันสำหรับแต่ละรายการ ของการทำธุรกรรมของเขาไปยังผู้รับคนเดียวกัน) ดังนั้นจึงไม่มีปัญหาเช่น “การใช้ที่อยู่ซ้ำ” โดย การออกแบบและผู้สังเกตการณ์ไม่สามารถระบุได้ว่าธุรกรรมใดๆ ถูกส่งไปยังที่อยู่หรือลิงก์เฉพาะหรือไม่ ที่อยู่สองแห่งพร้อมกัน 6 คีย์ผู้ใช้ส่วนตัวคือคู่ (a, b) ของคีย์ ec ส่วนตัวสองตัวที่แตกต่างกัน รหัสติดตามคือคู่ (a, B) ของ ec-key ส่วนตัวและสาธารณะ (โดยที่ B = bG และ a ̸= b) รหัสผู้ใช้สาธารณะคือคู่ (A, B) ของสองคีย์ ec สาธารณะที่ได้มาจาก (a, b); ที่อยู่มาตรฐานคือการแสดงรหัสผู้ใช้สาธารณะที่กำหนดให้กับสตริงที่เป็นมิตรกับมนุษย์ มีการแก้ไขข้อผิดพลาด ที่อยู่ที่ถูกตัดทอนเป็นตัวแทนของครึ่งหลัง (จุด B) ของรหัสผู้ใช้สาธารณะที่กำหนด เป็นสตริงที่เป็นมิตรต่อมนุษย์พร้อมการแก้ไขข้อผิดพลาด โครงสร้างธุรกรรมยังคงคล้ายกับโครงสร้างใน Bitcoin: ผู้ใช้ทุกคนสามารถเลือกได้ การชำระเงินขาเข้าที่เป็นอิสระหลายรายการ (ผลลัพธ์ของธุรกรรม) ลงนามด้วยสิ่งที่เกี่ยวข้อง กุญแจส่วนตัวและส่งไปยังปลายทางที่แตกต่างกัน ตรงกันข้ามกับโมเดลของ Bitcoin ซึ่งผู้ใช้มีคีย์ส่วนตัวและคีย์สาธารณะที่ไม่ซ้ำกันใน โมเดลที่นำเสนอ ผู้ส่งจะสร้างคีย์สาธารณะแบบครั้งเดียวตามที่อยู่ของผู้รับและ ข้อมูลสุ่มบางอย่าง ในแง่นี้ ธุรกรรมขาเข้าสำหรับผู้รับคนเดียวกันจะถูกส่งไปยัง กุญแจสาธารณะแบบครั้งเดียว (ไม่ใช่โดยตรงไปยังที่อยู่ที่ไม่ซ้ำกัน) และมีเพียงผู้รับเท่านั้นที่สามารถกู้คืนได้ ส่วนตัวที่เกี่ยวข้องเพื่อแลกเงินของเขา (โดยใช้รหัสส่วนตัวเฉพาะของเขา) ผู้รับก็ได้ ใช้จ่ายเงินโดยใช้ลายเซ็นต์แหวน โดยรักษาความเป็นเจ้าของและการใช้จ่ายจริงโดยไม่เปิดเผยชื่อ รายละเอียดของระเบียบการจะอธิบายไว้ในส่วนย่อยถัดไป 4.3 การชำระเงินที่ไม่สามารถเชื่อมโยงได้ ที่อยู่ Bitcoin แบบคลาสสิก เมื่อเผยแพร่แล้ว จะกลายเป็นตัวระบุที่ชัดเจนสำหรับขาเข้า การชำระเงิน เชื่อมโยงเข้าด้วยกันและผูกเข้ากับนามแฝงของผู้รับ หากใครต้องการ รับธุรกรรม "ผูกมัด" เขาควรแจ้งที่อยู่ของเขาไปยังผู้ส่งโดยช่องทางส่วนตัว หากเขาต้องการรับธุรกรรมที่แตกต่างซึ่งไม่สามารถพิสูจน์ได้ว่าเป็นของเจ้าของคนเดียวกัน เขาควรสร้างที่อยู่ที่แตกต่างกันทั้งหมดและไม่เคยเผยแพร่โดยใช้นามแฝงของเขาเอง สาธารณะ ส่วนตัว อลิซ แครอล Addr ของ Bob 1 Addr ของ Bob 2 กุญแจของบ๊อบ 1 กุญแจของบ๊อบ 2 บ๊อบ รูปที่ 2. ตัวดัดแปลง Bitcoin คีย์/ธุรกรรมแบบดั้งเดิมเอล เราเสนอวิธีแก้ปัญหาเพื่อให้ผู้ใช้สามารถเผยแพร่ที่อยู่เดียวและรับโดยไม่มีเงื่อนไข การชำระเงินที่ไม่สามารถเชื่อมโยงได้ ปลายทางของเอาต์พุต CryptoNote แต่ละรายการ (โดยค่าเริ่มต้น) คือคีย์สาธารณะ มาจากที่อยู่ของผู้รับและข้อมูลสุ่มของผู้ส่ง ข้อได้เปรียบหลักเทียบกับ Bitcoin คือคีย์ปลายทางทุกอันจะไม่ซ้ำกันตามค่าเริ่มต้น (เว้นแต่ผู้ส่งจะใช้ข้อมูลเดียวกันสำหรับแต่ละรายการ ของการทำธุรกรรมของเขาไปยังผู้รับคนเดียวกัน) ดังนั้นจึงไม่มีปัญหาเช่น “การใช้ที่อยู่ซ้ำ” โดย การออกแบบและผู้สังเกตการณ์ไม่สามารถระบุได้ว่าธุรกรรมใดๆ ถูกส่งไปยังที่อยู่หรือลิงก์เฉพาะหรือไม่ ที่อยู่สองแห่งพร้อมกัน 6 11 นี่ก็เหมือนกับ Bitcoin แต่ด้วยตู้ไปรษณีย์ที่ไม่ระบุตัวตนที่ไม่มีที่สิ้นสุด ผู้รับเท่านั้นที่แลกได้ การสร้างคีย์ส่วนตัวที่ไม่เปิดเผยตัวตนเหมือนกับลายเซ็นวงแหวน Bitcoin ทำงานในลักษณะนี้ ถ้าอเล็กซ์มี 0.112 Bitcoin ในกระเป๋าสตางค์ของเธอที่เธอเพิ่งได้รับจากแฟรงก์ เธอมีลายเซ็นจริงๆ ข้อความ "ฉัน [FRANK] ส่ง 0.112 Bitcoin ไปที่ [alex] + H0 + N0" โดยที่ 1) Frank ได้ลงนามใน ข้อความด้วยคีย์ส่วนตัวของเขา [FRANK] 2) Frank ได้ลงนามข้อความกับสาธารณะของ Alex คีย์ [alex] 3) Frank ได้รวมประวัติของ bitcoin, H0 และ 4) Frank ไว้ด้วย รวมบิตข้อมูลสุ่มที่เรียกว่า nonce, N0 ถ้าอเล็กซ์ต้องการส่ง 0.011 Bitcoin ถึงชาร์ลีน เธอจะรับข้อความของแฟรงค์ และเธอ จะตั้งค่านั้นเป็น H1 และลงนามสองข้อความ: ข้อความหนึ่งสำหรับธุรกรรมของเธอ และอีกข้อความหนึ่งสำหรับการเปลี่ยนแปลง H1= "ฉัน [FRANK] ส่ง 0.112 Bitcoin ถึง [alex] + H0 + N" "ฉัน [ALEX] ส่ง 0.011 Bitcoin ถึง [charlene] + H1 + N1" "ฉัน [ALEX] ส่ง 0.101 Bitcoin เปลี่ยนเป็น [alex] + H1 + N2" โดยที่อเล็กซ์ลงนามทั้งสองข้อความด้วยคีย์ส่วนตัวของเธอ [ALEX] ซึ่งเป็นข้อความแรกกับชาร์ลีน รหัสสาธารณะ [charlene] ข้อความที่สองพร้อมรหัสสาธารณะของ Alex [alex] และรวมถึง ประวัติและ nonces N1 และ N2 ที่สร้างขึ้นแบบสุ่มบางส่วนอย่างเหมาะสม Cryptonote ทำงานในลักษณะนี้: หาก Alex มี Cryptonote 0.112 ในกระเป๋าเงินของเธอที่เธอเพิ่งได้รับจาก Frank เธอก็จะมีลายเซ็นจริงๆ ข้อความ "ฉัน [ใครบางคนในกลุ่มเฉพาะกิจ] ส่ง 0.112 Cryptonote ไปยัง [ที่อยู่แบบครั้งเดียว] + H0 + N0" อเล็กซ์ค้นพบว่านี่คือเงินของเธอโดยการตรวจสอบคีย์ส่วนตัวของเธอ [ALEX] [ที่อยู่แบบครั้งเดียว] สำหรับทุกข้อความที่ส่ง และหากเธอต้องการใช้จ่าย เธอก็ทำเช่นนั้น ตามวิธีต่อไปนี้ เธอเลือกผู้รับเงิน บางทีชาร์ลีนอาจเริ่มโหวตให้โดรนโจมตีแล้วก็ได้ อเล็กซ์ต้องการส่งเงินให้เบรนดาแทน อเล็กซ์จึงค้นหากุญแจสาธารณะของเบรนดา [เบรนดา] และใช้คีย์ส่วนตัวของเธอเอง [ALEX] เพื่อสร้างที่อยู่แบบครั้งเดียว [ALEX+brenda] เธอ จากนั้นเลือกคอลเลกชัน C โดยพลการจากเครือข่ายของผู้ใช้ cryptonote และเธอก็สร้าง ลายเซ็นต์จากกลุ่มเฉพาะกิจนี้ เรากำหนดประวัติของเราเป็นข้อความก่อนหน้าเพิ่ม nonces และดำเนินการตามปกติหรือไม่ H1 = "ฉัน [ใครบางคนในกลุ่มเฉพาะกิจ] ส่ง 0.112 Cryptonote ไปที่ [ที่อยู่แบบครั้งเดียว] + H0 + N0" "ฉัน [คนในคอลเลกชั่น C] ส่ง Cryptonote 0.011 ไปที่ [ที่อยู่ครั้งเดียวทำจากALEX+brenda] + H1 + N1" "ฉัน [คนในคอลเลกชัน C] ส่ง 0.101 Cryptonote เป็นการเปลี่ยนเป็น [one-time-address-madefrom-ALEX+alex] + H1 + N2" ตอนนี้ Alex และ Brenda ต่างสแกนข้อความขาเข้าทั้งหมดเพื่อหาที่อยู่แบบครั้งเดียว สร้างขึ้นโดยใช้กุญแจของพวกเขา หากพวกเขาพบข้อความนั้นก็ถือเป็นข้อความใหม่ของพวกเขาเอง คริปโตโน๊ต! และถึงอย่างนั้น ธุรกรรมก็ยังคงไปถึง blockchain หากเหรียญเข้าที่อยู่นั้น เป็นที่รู้กันว่าส่งมาจากอาชญากร ผู้มีส่วนร่วมทางการเมือง หรือจากคณะกรรมการและบัญชี ด้วยงบประมาณที่เข้มงวด (เช่น การยักยอก) หรือหากเจ้าของเหรียญเหล่านี้คนใหม่เคยทำผิดพลาด และส่งเหรียญเหล่านี้ไปยังที่อยู่ทั่วไปซึ่งมีเหรียญที่เขารู้จักเป็นเจ้าของ นั่นก็คือจิ๊กไม่เปิดเผยตัวตน เพิ่มขึ้นเป็น bitcoin

คีย์ผู้ใช้ส่วนตัวคือคู่ (a, b) ของคีย์ ec ส่วนตัวสองตัวที่แตกต่างกัน รหัสติดตามคือคู่ (a, B) ของ ec-key ส่วนตัวและสาธารณะ (โดยที่ B = bG และ a ̸= b) รหัสผู้ใช้สาธารณะคือคู่ (A, B) ของสองคีย์ ec สาธารณะที่ได้มาจาก (a, b); ที่อยู่มาตรฐานคือการแสดงรหัสผู้ใช้สาธารณะที่กำหนดให้กับสตริงที่เป็นมิตรกับมนุษย์ มีการแก้ไขข้อผิดพลาด ที่อยู่ที่ถูกตัดทอนเป็นตัวแทนของครึ่งหลัง (จุด B) ของรหัสผู้ใช้สาธารณะที่กำหนด เป็นสตริงที่เป็นมิตรต่อมนุษย์พร้อมการแก้ไขข้อผิดพลาด โครงสร้างธุรกรรมยังคงคล้ายกับโครงสร้างใน Bitcoin: ผู้ใช้ทุกคนสามารถเลือกได้ การชำระเงินขาเข้าที่เป็นอิสระหลายรายการ (ผลลัพธ์ของธุรกรรม) ลงนามด้วยสิ่งที่เกี่ยวข้อง กุญแจส่วนตัวและส่งไปยังปลายทางที่แตกต่างกัน ตรงกันข้ามกับโมเดลของ Bitcoin ซึ่งผู้ใช้มีคีย์ส่วนตัวและสาธารณะที่ไม่ซ้ำกันใน โมเดลที่นำเสนอ ผู้ส่งจะสร้างคีย์สาธารณะแบบครั้งเดียวตามที่อยู่ของผู้รับและ ข้อมูลสุ่มบางอย่าง ในแง่นี้ ธุรกรรมขาเข้าสำหรับผู้รับคนเดียวกันจะถูกส่งไปยัง กุญแจสาธารณะแบบครั้งเดียว (ไม่ใช่โดยตรงไปยังที่อยู่ที่ไม่ซ้ำกัน) และมีเพียงผู้รับเท่านั้นที่สามารถกู้คืนได้ ส่วนตัวที่เกี่ยวข้องเพื่อแลกเงินของเขา (โดยใช้รหัสส่วนตัวเฉพาะของเขา) ผู้รับก็ได้ ใช้จ่ายเงินโดยใช้ลายเซ็นต์แหวน โดยรักษาความเป็นเจ้าของและการใช้จ่ายจริงโดยไม่เปิดเผยชื่อ รายละเอียดของระเบียบการจะอธิบายไว้ในส่วนย่อยถัดไป 4.3 การชำระเงินที่ไม่สามารถเชื่อมโยงได้ ที่อยู่ Bitcoin แบบคลาสสิก เมื่อเผยแพร่แล้ว จะกลายเป็นตัวระบุที่ชัดเจนสำหรับขาเข้า การชำระเงิน เชื่อมโยงเข้าด้วยกันและผูกเข้ากับนามแฝงของผู้รับ หากใครต้องการ รับธุรกรรม "ผูกมัด" เขาควรแจ้งที่อยู่ของเขาไปยังผู้ส่งโดยช่องทางส่วนตัว หากเขาต้องการรับธุรกรรมที่แตกต่างซึ่งไม่สามารถพิสูจน์ได้ว่าเป็นของเจ้าของคนเดียวกัน เขาควรสร้างที่อยู่ที่แตกต่างกันทั้งหมดและไม่เคยเผยแพร่โดยใช้นามแฝงของเขาเอง สาธารณะ ส่วนตัว อลิซ แครอล Addr ของ Bob 1 Addr ของ Bob 2 กุญแจของบ๊อบ 1 กุญแจของบ๊อบ 2 บ๊อบ รูปที่ 2 โมเดล Bitcoin คีย์/ธุรกรรมแบบดั้งเดิม เราเสนอวิธีแก้ปัญหาเพื่อให้ผู้ใช้สามารถเผยแพร่ที่อยู่เดียวและรับโดยไม่มีเงื่อนไข การชำระเงินที่ไม่สามารถเชื่อมโยงได้ ปลายทางของเอาต์พุต CryptoNote แต่ละรายการ (โดยค่าเริ่มต้น) คือคีย์สาธารณะ มาจากที่อยู่ของผู้รับและข้อมูลสุ่มของผู้ส่ง ข้อได้เปรียบหลักเทียบกับ Bitcoin คือคีย์ปลายทางทุกอันจะไม่ซ้ำกันตามค่าเริ่มต้น (เว้นแต่ผู้ส่งจะใช้ข้อมูลเดียวกันสำหรับแต่ละรายการ ของการทำธุรกรรมของเขาไปยังผู้รับคนเดียวกัน) ดังนั้นจึงไม่มีปัญหาเช่น “การใช้ที่อยู่ซ้ำ” โดย การออกแบบและผู้สังเกตการณ์ไม่สามารถระบุได้ว่าธุรกรรมใดๆ ถูกส่งไปยังที่อยู่หรือลิงก์เฉพาะหรือไม่ ที่อยู่สองแห่งพร้อมกัน 6 คีย์ผู้ใช้ส่วนตัวคือคู่ (a, b) ของคีย์ ec ส่วนตัวสองตัวที่แตกต่างกัน รหัสติดตามคือคู่ (a, B) ของ ec-key ส่วนตัวและสาธารณะ (โดยที่ B = bG และ a ̸= b) รหัสผู้ใช้สาธารณะคือคู่ (A, B) ของสองคีย์ ec สาธารณะที่ได้มาจาก (a, b); ที่อยู่มาตรฐานคือการแสดงรหัสผู้ใช้สาธารณะที่กำหนดให้กับสตริงที่เป็นมิตรกับมนุษย์ มีการแก้ไขข้อผิดพลาด ที่อยู่ที่ถูกตัดทอนเป็นตัวแทนของครึ่งหลัง (จุด B) ของรหัสผู้ใช้สาธารณะที่กำหนด เป็นสตริงที่เป็นมิตรต่อมนุษย์พร้อมการแก้ไขข้อผิดพลาด โครงสร้างธุรกรรมยังคงคล้ายกับโครงสร้างใน Bitcoin: ผู้ใช้ทุกคนสามารถเลือกได้ การชำระเงินขาเข้าที่เป็นอิสระหลายรายการ (ผลลัพธ์ของธุรกรรม) ลงนามด้วยสิ่งที่เกี่ยวข้อง กุญแจส่วนตัวและส่งไปยังปลายทางที่แตกต่างกัน ตรงกันข้ามกับโมเดลของ Bitcoin ซึ่งผู้ใช้มีคีย์ส่วนตัวและสาธารณะที่ไม่ซ้ำกันใน โมเดลที่นำเสนอ ผู้ส่งจะสร้างคีย์สาธารณะแบบครั้งเดียวตามที่อยู่ของผู้รับและ ข้อมูลสุ่มบางอย่าง ในแง่นี้ ธุรกรรมขาเข้าสำหรับผู้รับคนเดียวกันจะถูกส่งไปยัง กุญแจสาธารณะแบบครั้งเดียว (ไม่ใช่โดยตรงไปยังที่อยู่ที่ไม่ซ้ำกัน) และมีเพียงผู้รับเท่านั้นที่สามารถกู้คืนได้ ส่วนตัวที่เกี่ยวข้องเพื่อแลกเงินของเขา (โดยใช้รหัสส่วนตัวเฉพาะของเขา) ผู้รับก็ได้ ใช้จ่ายเงินโดยใช้ลายเซ็นต์แหวน โดยรักษาความเป็นเจ้าของและการใช้จ่ายจริงโดยไม่เปิดเผยชื่อ รายละเอียดของระเบียบการจะอธิบายไว้ในส่วนย่อยถัดไป 4.3 การชำระเงินที่ไม่สามารถเชื่อมโยงได้ ที่อยู่ Bitcoin แบบคลาสสิก เมื่อเผยแพร่แล้ว จะกลายเป็นตัวระบุที่ชัดเจนสำหรับขาเข้า การชำระเงิน เชื่อมโยงเข้าด้วยกันและผูกเข้ากับนามแฝงของผู้รับ หากใครต้องการ รับธุรกรรม "ผูกมัด" เขาควรแจ้งที่อยู่ของเขาไปยังผู้ส่งโดยช่องทางส่วนตัว หากเขาต้องการรับธุรกรรมที่แตกต่างซึ่งไม่สามารถพิสูจน์ได้ว่าเป็นของเจ้าของคนเดียวกัน เขาควรสร้างที่อยู่ที่แตกต่างกันทั้งหมดและไม่เคยเผยแพร่โดยใช้นามแฝงของเขาเอง สาธารณะ ส่วนตัว อลิซ แครอล Addr ของ Bob 1 Addr ของ Bob 2 กุญแจของบ๊อบ 1 กุญแจของบ๊อบ 2 บ๊อบ รูปที่ 2. mod Bitcoin คีย์/ธุรกรรมแบบดั้งเดิมเอล เราเสนอวิธีแก้ปัญหาเพื่อให้ผู้ใช้สามารถเผยแพร่ที่อยู่เดียวและรับโดยไม่มีเงื่อนไข การชำระเงินที่ไม่สามารถเชื่อมโยงได้ ปลายทางของเอาต์พุต CryptoNote แต่ละรายการ (โดยค่าเริ่มต้น) คือคีย์สาธารณะ มาจากที่อยู่ของผู้รับและข้อมูลสุ่มของผู้ส่ง ข้อได้เปรียบหลักเทียบกับ Bitcoin คือคีย์ปลายทางทุกอันจะไม่ซ้ำกันตามค่าเริ่มต้น (เว้นแต่ผู้ส่งจะใช้ข้อมูลเดียวกันสำหรับแต่ละรายการ ของการทำธุรกรรมของเขาไปยังผู้รับคนเดียวกัน) ดังนั้นจึงไม่มีปัญหาเช่น “การใช้ที่อยู่ซ้ำ” โดย การออกแบบและผู้สังเกตการณ์ไม่สามารถระบุได้ว่าธุรกรรมใดๆ ถูกส่งไปยังที่อยู่หรือลิงก์เฉพาะหรือไม่ ที่อยู่สองแห่งพร้อมกัน 6 12 ดังนั้น แทนที่จะให้ผู้ใช้ส่งเหรียญจากที่อยู่ (ซึ่งเป็นกุญแจสาธารณะจริงๆ) ไปยังที่อยู่ (กุญแจสาธารณะอื่น) โดยใช้กุญแจส่วนตัว ผู้ใช้จะส่งเหรียญจากตู้ไปรษณีย์แบบครั้งเดียว (ซึ่งสร้างโดยใช้รหัสสาธารณะของเพื่อนของคุณ) ไปยังตู้ไปรษณีย์แบบครั้งเดียว (ในทำนองเดียวกัน) โดยใช้ของคุณ คีย์ส่วนตัวของตัวเอง ในแง่หนึ่ง เรากำลังพูดว่า "เอาล่ะ ทุกคนเอาเงินของคุณไปในขณะที่เงินกำลังเป็นอยู่ โอนไปรอบ ๆ ! แค่รู้ว่ากุญแจของเรา สามารถ เปิดกล่องนั้นและกล่องนั้นได้ เรารู้ว่ามีเงินอยู่ในกล่องเท่าไหร่ อย่าวางลายนิ้วมือของคุณบนตู้ไปรษณีย์หรือ ใช้จริงแค่แลกกล่องที่เต็มไปด้วยเงินสดนั่นเอง โดยที่เราไม่รู้ว่าใครส่งมา อะไร แต่เนื้อหาของคำปราศรัยสาธารณะเหล่านี้ยังคงไม่มีความขัดแย้ง ทดแทนได้ แบ่งแยกได้ และ ยังคงมีคุณสมบัติที่ดีอื่น ๆ ของเงินที่เราต้องการเช่น Bitcoin" ชุดตู้ไปรษณีย์ที่ไม่มีที่สิ้นสุด คุณเผยแพร่ที่อยู่ฉันมีรหัสส่วนตัว ฉันใช้รหัสส่วนตัวและที่อยู่ของคุณและ ข้อมูลสุ่มบางส่วนเพื่อสร้างกุญแจสาธารณะ อัลกอริธึมได้รับการออกแบบเช่นนั้นเนื่องจากคุณ ที่อยู่ถูกใช้เพื่อสร้างกุญแจสาธารณะ มีเพียงกุญแจส่วนตัวของคุณเท่านั้นที่ใช้งานได้เพื่อปลดล็อค ข้อความ ผู้สังเกตการณ์ อีฟ เห็นคุณเผยแพร่ที่อยู่ของคุณ และเห็นกุญแจสาธารณะที่ฉันประกาศ อย่างไรก็ตาม เธอไม่รู้ว่าฉันประกาศกุญแจสาธารณะของฉันตามที่อยู่ของคุณหรือของเธอ หรือของเบรนดา หรือของชาร์ลีนหรือใครก็ตาม เธอตรวจสอบคีย์ส่วนตัวของเธอกับคีย์สาธารณะที่ฉันประกาศ และเห็นว่ามันไม่ได้ผล มันไม่ใช่เงินของเธอ เธอไม่รู้จักรหัสส่วนตัวของคนอื่นและ เฉพาะผู้รับข้อความเท่านั้นที่มีรหัสส่วนตัวที่สามารถปลดล็อคข้อความได้ เลยไม่มีใคร. การฟังสามารถระบุได้ว่าใครได้รับเงินน้อยกว่ามากจึงเอาเงินไป

สาธารณะ ส่วนตัว อลิซ แครอล คีย์ครั้งเดียว คีย์ครั้งเดียว คีย์ครั้งเดียว บ๊อบ กุญแจของบ๊อบ ที่อยู่ของบ๊อบ รูปที่ 3 คีย์ CryptoNote/โมเดลธุรกรรม ขั้นแรก ผู้ส่งทำการแลกเปลี่ยน Diffie-Hellman เพื่อรับความลับที่แบ่งปันจากข้อมูลของเขาและ ครึ่งหนึ่งของที่อยู่ผู้รับ จากนั้นเขาจะคำนวณคีย์ปลายทางแบบครั้งเดียวโดยใช้การแชร์ ความลับและที่อยู่ครึ่งหลัง ผู้รับต้องใช้คีย์ ec ที่แตกต่างกันสองชุด สำหรับสองขั้นตอนนี้ ดังนั้นที่อยู่ CryptoNote มาตรฐานจึงมีขนาดใหญ่เกือบสองเท่าของกระเป๋าเงิน Bitcoin ที่อยู่ ผู้รับยังทำการแลกเปลี่ยน Diffie-Hellman เพื่อกู้คืนสิ่งที่เกี่ยวข้องด้วย รหัสลับ ลำดับธุรกรรมมาตรฐานจะเป็นดังนี้: 1. อลิซต้องการส่งการชำระเงินให้กับ Bob ซึ่งได้เผยแพร่ที่อยู่มาตรฐานของเขาแล้ว เธอ แกะที่อยู่และรับกุญแจสาธารณะของ Bob (A, B) 2. อลิซสร้างสุ่ม \(r \in [1, l - 1]\) และคำนวณคีย์สาธารณะแบบครั้งเดียว \(P = H_s(rA)G +\) บี. 3. อลิซใช้ P เป็นคีย์ปลายทางสำหรับเอาต์พุตและยังแพ็คค่า R = rG (เป็นส่วนหนึ่ง ของการแลกเปลี่ยน Diffie-Hellman) ในการทำธุรกรรม โปรดทราบว่าเธอสามารถสร้างได้ เอาต์พุตอื่นๆ ที่มีคีย์สาธารณะเฉพาะ: คีย์ของผู้รับที่แตกต่างกัน (Ai, Bi) บ่งบอกถึง Pi ที่แตกต่างกัน แม้จะมี r เดียวกันก็ตาม การทำธุรกรรม รหัสสาธารณะ Tx เอาท์พุท TX จำนวน กุญแจปลายทาง อาร์ = อาร์จี P = Hs(rA)G + B ผู้รับ กุญแจสาธารณะ ข้อมูลสุ่มของผู้ส่ง ร (ก, ข) รูปที่ 4 โครงสร้างธุรกรรมมาตรฐาน 4. อลิซส่งธุรกรรม 5. Bob ตรวจสอบทุกธุรกรรมที่ส่งผ่านด้วยรหัสส่วนตัวของเขา (a, b) และคำนวณ P ′= Hs(aR)G + B. หากธุรกรรมของอลิซกับบ๊อบเป็นผู้รับอยู่ในหมู่พวกเขา จากนั้น aR = arG = rA และ P ′ = P 7 สาธารณะ ส่วนตัว อลิซ แครอล คีย์ครั้งเดียว คีย์ครั้งเดียว คีย์ครั้งเดียว บ๊อบ กุญแจของบ๊อบ ที่อยู่ของบ๊อบ รูปที่ 3 คีย์ CryptoNote/โมเดลธุรกรรม ขั้นแรก ผู้ส่งทำการแลกเปลี่ยน Diffie-Hellman เพื่อรับความลับที่แบ่งปันจากข้อมูลของเขาและ ครึ่งหนึ่งของที่อยู่ผู้รับ จากนั้นเขาจะคำนวณคีย์ปลายทางแบบครั้งเดียวโดยใช้การแชร์ ความลับและที่อยู่ครึ่งหลัง ผู้รับต้องใช้คีย์ ec ที่แตกต่างกันสองชุด สำหรับสองขั้นตอนนี้ ดังนั้นที่อยู่ CryptoNote มาตรฐานจึงมีขนาดใหญ่เป็นเกือบสองเท่าของกระเป๋าเงิน Bitcoin ที่อยู่ ผู้รับยังทำการแลกเปลี่ยน Diffie-Hellman เพื่อกู้คืนสิ่งที่เกี่ยวข้องด้วย รหัสลับ ลำดับธุรกรรมมาตรฐานจะเป็นดังนี้: 1. อลิซต้องการส่งการชำระเงินให้กับ Bob ซึ่งได้เผยแพร่ที่อยู่มาตรฐานของเขาแล้ว เธอ แกะที่อยู่และรับกุญแจสาธารณะของ Bob (A, B) 2. อลิซสร้างสุ่ม \(r \in [1, l - 1]\) และคำนวณคีย์สาธารณะแบบครั้งเดียว \(P = H_s(rA)G +\) บี. 3. อลิซใช้ P เป็นคีย์ปลายทางสำหรับเอาต์พุตและยังแพ็คค่า R = rG (เป็นส่วนหนึ่ง ของการแลกเปลี่ยน Diffie-Hellman) ในการทำธุรกรรม โปรดทราบว่าเธอสามารถสร้างได้ เอาต์พุตอื่นๆ ที่มีคีย์สาธารณะเฉพาะ: คีย์ของผู้รับที่แตกต่างกัน (Ai, Bi) บ่งบอกถึง Pi ที่แตกต่างกัน แม้จะมี r เดียวกันก็ตาม การทำธุรกรรม รหัสสาธารณะ Tx เอาท์พุท TX จำนวน กุญแจปลายทาง อาร์ = อาร์จี P = Hs(rA)G + B ผู้รับ กุญแจสาธารณะ ข้อมูลสุ่มของผู้ส่ง ร (ก, ข) รูปที่ 4 โครงสร้างธุรกรรมมาตรฐาน 4. อลิซส่งธุรกรรม 5. Bob ตรวจสอบทุกธุรกรรมที่ส่งผ่านด้วยรหัสส่วนตัวของเขา (a, b) และคำนวณ P ′= Hs(aR)G + B. หากธุรกรรมของอลิซกับบ๊อบเป็นผู้รับอยู่ในหมู่พวกเขา จากนั้น aR = arG = rA และ P ′ = P 7 13 ฉันสงสัยว่ามันจะปวดคอขนาดไหนหากใช้ ทางเลือก ของการเข้ารหัส โครงการ รูปไข่หรืออย่างอื่น ดังนั้นหากแผนการบางอย่างพังในอนาคต สกุลเงินจะเปลี่ยนไป โดยไม่ต้องกังวล คงจะปวดก้นมาก โอเค นี่คือสิ่งที่ฉันเพิ่งอธิบายไปในความคิดเห็นก่อนหน้า ประเภท Diffie-Hellman การแลกเปลี่ยนเป็นระเบียบเรียบร้อย สมมติว่าอเล็กซ์และเบรนดาต่างมีหมายเลขลับ A และ B และตัวเลข พวกเขาไม่สนใจที่จะเก็บความลับ ก และ ข พวกเขาต้องการสร้างความลับร่วมกันโดยปราศจาก เอวาค้นพบมัน Diffie และ Hellman คิดหาวิธีให้ Alex และ Brenda ร่วมกัน หมายเลขสาธารณะ a และ b แต่ไม่ใช่หมายเลขส่วนตัว A และ B และสร้างความลับร่วมกัน K. การใช้ความลับร่วมกันนี้ K โดยที่ Eva ไม่รับฟังในการสร้างสิ่งเดียวกัน K, Alex และ Brenda สามารถใช้ K เป็นคีย์เข้ารหัสลับและส่งข้อความลับกลับไปได้แล้ว และออกไป นี่คือวิธีการ CAN ทำงาน แม้ว่าควรจะทำงานกับตัวเลขที่มากกว่า 100 มากก็ตาม เราจะใช้ 100 เพราะการทำงานกับจำนวนเต็มแบบโมดูโล 100 เทียบเท่ากับ "การละทิ้งทั้งหมด แต่เป็นเลขสองหลักสุดท้าย" อเล็กซ์และเบรนดาต่างก็เลือก A, a, B และ b พวกเขาเก็บความลับ A และ B อเล็กซ์บอกเบรนดาว่าเธอมีค่าเป็นโมดูโล 100 (แค่เลขสองหลักสุดท้าย) และเบรนดาบอกอเล็กซ์ ค่าของเธอของ b โมดูโล 100 ตอนนี้เอวารู้ (a,b) โมดูโล 100 แต่อเล็กซ์รู้ (a,b,A) ดังนั้นเธอ สามารถคำนวณ x=abA แบบโมดูโล 100อเล็กซ์สับทั้งหมดยกเว้นเลขสุดท้ายเพราะเรากำลังดำเนินการอยู่ ภายใต้จำนวนเต็มโมดูโล 100 อีกครั้ง ในทำนองเดียวกัน เบรนดารู้ (a,b,B) ดังนั้นเธอจึงสามารถคำนวณได้ y=abB โมดูโล 100 ตอนนี้ Alex สามารถเผยแพร่ x และ Brenda สามารถเผยแพร่ y ได้ แต่ตอนนี้อเล็กซ์สามารถคำนวณ yA = abBA แบบโมดูโล 100 ได้ และเบรนดาสามารถคำนวณ xB ได้ = abBA โมดูโล 100 พวกเขาทั้งสองรู้หมายเลขเดียวกัน! แต่ทั้งหมดที่เอวาได้ยินก็คือ (ก,ข,กก,กข) เธอไม่มีวิธีง่ายๆ ในการคำนวณ abA*B ตอนนี้ นี่เป็นวิธีคิดที่ง่ายและปลอดภัยน้อยที่สุดเกี่ยวกับการแลกเปลี่ยน Diffie-Hellman มีเวอร์ชันที่ปลอดภัยมากขึ้น แต่เวอร์ชันส่วนใหญ่ใช้งานได้เพราะการแยกตัวประกอบจำนวนเต็มและไม่ต่อเนื่อง ลอการิทึมเป็นเรื่องยาก และปัญหาทั้งสองนั้นแก้ไขได้อย่างง่ายดายด้วยคอมพิวเตอร์ควอนตัม ฉันจะดูว่ามีเวอร์ชันใดบ้างที่ทนทานต่อควอนตัม http://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange "ลำดับ txn มาตรฐาน" ที่แสดงไว้ที่นี่ขาดขั้นตอนมากมาย เช่น SIGNATURES พวกเขาเพิ่งได้รับที่นี่ ซึ่งแย่มากจริงๆเพราะลำดับที่เรา ลงนาม ข้อมูลที่รวมอยู่ในข้อความที่ลงนาม และอื่นๆ... ทั้งหมดนี้สุดยอดมาก มีความสำคัญต่อโปรโตคอล ทำผิดขั้นตอนหนึ่งหรือสองขั้นตอน แม้จะผิดลำดับเล็กน้อยก็ตาม ในขณะที่ใช้ "the ลำดับธุรกรรมมาตรฐาน" อาจทำให้ความปลอดภัยของทั้งระบบเกิดความสงสัยได้ นอกจากนี้ หลักฐานที่นำเสนอในภายหลังในรายงานอาจไม่เข้มงวดเพียงพอหาก กรอบการทำงานภายใต้คำจำกัดความที่กำหนดไว้อย่างหลวมๆ ดังในส่วนนี้

สาธารณะ ส่วนตัว อลิซ แครอล คีย์ครั้งเดียว คีย์ครั้งเดียว คีย์ครั้งเดียว บ๊อบ กุญแจของบ๊อบ ที่อยู่ของบ๊อบ รูปที่ 3 คีย์ CryptoNote/โมเดลธุรกรรม ขั้นแรก ผู้ส่งทำการแลกเปลี่ยน Diffie-Hellman เพื่อรับความลับที่แบ่งปันจากข้อมูลของเขาและ ครึ่งหนึ่งของที่อยู่ผู้รับ จากนั้นเขาจะคำนวณคีย์ปลายทางแบบครั้งเดียวโดยใช้การแชร์ ความลับและที่อยู่ครึ่งหลัง ผู้รับต้องใช้คีย์ ec ที่แตกต่างกันสองชุด สำหรับสองขั้นตอนนี้ ดังนั้นที่อยู่ CryptoNote มาตรฐานจึงมีขนาดใหญ่เกือบสองเท่าของกระเป๋าเงิน Bitcoin ที่อยู่ ผู้รับยังทำการแลกเปลี่ยน Diffie-Hellman เพื่อกู้คืนสิ่งที่เกี่ยวข้องด้วย รหัสลับ ลำดับธุรกรรมมาตรฐานจะเป็นดังนี้: 1. อลิซต้องการส่งการชำระเงินให้กับ Bob ซึ่งได้เผยแพร่ที่อยู่มาตรฐานของเขาแล้ว เธอ แกะที่อยู่และรับกุญแจสาธารณะของ Bob (A, B) 2. อลิซสร้างสุ่ม \(r \in [1, l - 1]\) และคำนวณคีย์สาธารณะแบบครั้งเดียว \(P = H_s(rA)G +\) บี. 3. อลิซใช้ P เป็นคีย์ปลายทางสำหรับเอาต์พุตและยังแพ็คค่า R = rG (เป็นส่วนหนึ่ง ของการแลกเปลี่ยน Diffie-Hellman) ในการทำธุรกรรม โปรดทราบว่าเธอสามารถสร้างได้ เอาต์พุตอื่นๆ ที่มีคีย์สาธารณะเฉพาะ: คีย์ของผู้รับที่แตกต่างกัน (Ai, Bi) บ่งบอกถึง Pi ที่แตกต่างกัน แม้จะมี r เดียวกันก็ตาม การทำธุรกรรม รหัสสาธารณะ Tx เอาท์พุท TX จำนวน กุญแจปลายทาง อาร์ = อาร์จี P = Hs(rA)G + B ผู้รับ กุญแจสาธารณะ ข้อมูลสุ่มของผู้ส่ง ร (ก, ข) รูปที่ 4 โครงสร้างธุรกรรมมาตรฐาน 4. อลิซส่งธุรกรรม 5. Bob ตรวจสอบทุกธุรกรรมที่ส่งผ่านด้วยรหัสส่วนตัวของเขา (a, b) และคำนวณ P ′= Hs(aR)G + B. หากธุรกรรมของอลิซกับบ๊อบเป็นผู้รับอยู่ในหมู่พวกเขา จากนั้น aR = arG = rA และ P ′ = P 7 สาธารณะ ส่วนตัว อลิซ แครอล คีย์ครั้งเดียว คีย์ครั้งเดียว คีย์ครั้งเดียว บ๊อบ กุญแจของบ๊อบ ที่อยู่ของบ๊อบ รูปที่ 3 คีย์ CryptoNote/โมเดลธุรกรรม ขั้นแรก ผู้ส่งทำการแลกเปลี่ยน Diffie-Hellman เพื่อรับความลับที่แบ่งปันจากข้อมูลของเขาและ ครึ่งหนึ่งของที่อยู่ผู้รับ จากนั้นเขาจะคำนวณคีย์ปลายทางแบบครั้งเดียวโดยใช้การแชร์ ความลับและที่อยู่ครึ่งหลัง ผู้รับต้องใช้คีย์ ec ที่แตกต่างกันสองชุด สำหรับสองขั้นตอนนี้ ดังนั้นที่อยู่ CryptoNote มาตรฐานจึงมีขนาดใหญ่เป็นเกือบสองเท่าของกระเป๋าเงิน Bitcoin ที่อยู่ ผู้รับยังทำการแลกเปลี่ยน Diffie-Hellman เพื่อกู้คืนสิ่งที่เกี่ยวข้องด้วย รหัสลับ ลำดับธุรกรรมมาตรฐานจะเป็นดังนี้: 1. อลิซต้องการส่งการชำระเงินให้กับ Bob ซึ่งได้เผยแพร่ที่อยู่มาตรฐานของเขาแล้ว เธอ แกะที่อยู่และรับกุญแจสาธารณะของ Bob (A, B) 2. อลิซสร้างสุ่ม \(r \in [1, l - 1]\) และคำนวณคีย์สาธารณะแบบครั้งเดียว \(P = H_s(rA)G +\) บี. 3. อลิซใช้ P เป็นคีย์ปลายทางสำหรับเอาต์พุตและยังแพ็คค่า R = rG (เป็นส่วนหนึ่ง ของการแลกเปลี่ยน Diffie-Hellman) ในการทำธุรกรรม โปรดทราบว่าเธอสามารถสร้างได้ เอาต์พุตอื่นๆ ที่มีคีย์สาธารณะเฉพาะ: คีย์ของผู้รับที่แตกต่างกัน (Ai, Bi) บ่งบอกถึง Pi ที่แตกต่างกัน แม้จะมี r เดียวกันก็ตาม การทำธุรกรรม รหัสสาธารณะ Tx เอาท์พุท TX จำนวน กุญแจปลายทาง อาร์ = อาร์จี P = Hs(rA)G + B ผู้รับ กุญแจสาธารณะ ข้อมูลสุ่มของผู้ส่ง ร (ก, ข) รูปที่ 4 โครงสร้างธุรกรรมมาตรฐาน 4. อลิซส่งธุรกรรม 5. Bob ตรวจสอบทุกธุรกรรมที่ส่งผ่านด้วยรหัสส่วนตัวของเขา (a, b) และคำนวณ P ′= Hs(aR)G + B. หากธุรกรรมของอลิซกับบ๊อบเป็นผู้รับอยู่ในหมู่พวกเขา จากนั้น aR = arG = rA และ P ′ = P 7 14 โปรดทราบว่าผู้เขียนทำหน้าที่ได้แย่มากในการรักษาคำศัพท์ให้ตรงตลอด ข้อความ แต่โดยเฉพาะในส่วนถัดไปนี้ การจุติครั้งต่อไปของบทความนี้จะต้องเป็น เข้มงวดมากขึ้น ในข้อความพวกเขาอ้างถึง P เป็นกุญแจสาธารณะแบบใช้ครั้งเดียว ในแผนภาพจะเรียก R ว่า "คีย์สาธารณะ Tx" และ P เป็น "คีย์ปลายทาง" ถ้าฉันจะเขียนเรื่องนี้ใหม่ฉันจะ กำหนดคำศัพท์เฉพาะเจาะจงก่อนที่จะพูดคุยในส่วนเหล่านี้ เอลนี้มีขนาดใหญ่มาก ดูหน้า 5. ใครเลือกเอลล์? แผนภาพแสดงให้เห็นว่าคีย์สาธารณะของธุรกรรม R = rG ซึ่งเป็นแบบสุ่มและเลือก โดยผู้ส่งไม่ได้เป็นส่วนหนึ่งของเอาต์พุต Tx เนื่องจากอาจเหมือนกันสำหรับหลายรายการ ทำธุรกรรมกับหลาย ๆ คน และไม่ได้ใช้ ภายหลัง เพื่อใช้จ่าย R ใหม่ถูกสร้างขึ้น ทุกครั้งที่คุณต้องการออกอากาศธุรกรรม CryptoNote ใหม่ นอกจากนี้ R จะใช้เท่านั้น เพื่อตรวจสอบว่าคุณเป็นผู้รับรายการหรือไม่ ไม่ใช่ข้อมูลขยะ แต่เป็นขยะสำหรับทุกคน โดยไม่มีคีย์ส่วนตัวที่เกี่ยวข้องกับ (A,B) ในทางกลับกัน คีย์ปลายทาง P = Hs(rA)G + B เป็นส่วนหนึ่งของเอาต์พุต Tx ทุกคน การเจาะข้อมูลของธุรกรรมที่ส่งผ่านทุกครั้งจะต้องตรวจสอบ P* ที่สร้างขึ้นเอง P นี้เพื่อดูว่าพวกเขาเป็นเจ้าของธุรกรรมที่ส่งผ่านนี้หรือไม่ ทุกคนที่มีเอาท์พุตธุรกรรมที่ยังไม่ได้ใช้ (UTXO) จะมี Ps เหล่านี้จำนวนหนึ่งวางอยู่รอบๆ ด้วยจำนวน เพื่อที่จะใช้จ่ายง พวกเขา ลงนามข้อความใหม่รวมทั้ง P. อลิซจะต้องลงนามในธุรกรรมนี้ด้วยคีย์ส่วนตัวแบบครั้งเดียวที่เกี่ยวข้องกับคีย์ปลายทางของเอาต์พุตธุรกรรมที่ยังไม่ได้ใช้ กุญแจปลายทางแต่ละอันที่อลิซเป็นเจ้าของมาพร้อมกับอุปกรณ์ครบครัน ด้วยรหัสส่วนตัวแบบครั้งเดียวที่อลิซเป็นเจ้าของ (สมมุติ) ทุกครั้งที่อลิซต้องการ ส่งเนื้อหาของรหัสปลายทางมาให้ฉัน หรือ Bob หรือ Brenda หรือ Charlie หรือ Charlene เธอ ใช้คีย์ส่วนตัวของเธอเพื่อลงนามในธุรกรรม เมื่อได้รับธุรกรรมแล้ว ฉันจะได้รับรายการใหม่ รหัสสาธารณะ Tx ซึ่งเป็นรหัสสาธารณะปลายทางใหม่ และฉันจะสามารถกู้คืนรหัสส่วนตัวแบบครั้งเดียวใหม่ได้ x การรวมคีย์ส่วนตัวแบบครั้งเดียวของฉัน x กับปลายทางสาธารณะของธุรกรรมใหม่ คีย์คือวิธีที่เราส่งธุรกรรมใหม่

  1. Bob สามารถกู้คืนคีย์ส่วนตัวแบบครั้งเดียวที่เกี่ยวข้องได้: x = Hs(aR) + b ดังนั้น P = xG เขาสามารถใช้เอาต์พุตนี้ได้ตลอดเวลาโดยการลงนามในธุรกรรมกับ x การทำธุรกรรม รหัสสาธารณะ Tx เอาท์พุท TX จำนวน กุญแจปลายทาง P ′ = Hs(aR)G + bG กุญแจสาธารณะแบบครั้งเดียว x = Hs(aR) + b รหัสส่วนตัวแบบครั้งเดียว ผู้รับ รหัสส่วนตัว (ก ข) ร พี' ?= ป มะเดื่อ 5. การตรวจสอบธุรกรรมขาเข้า ผลก็คือ Bob ได้รับการชำระเงินเข้ามา ซึ่งเกี่ยวข้องกับกุญแจสาธารณะแบบครั้งเดียวซึ่งก็คือ ไม่สามารถเชื่อมโยงได้สำหรับผู้ชม หมายเหตุเพิ่มเติมบางประการ: • เมื่อ Bob “รับรู้” ธุรกรรมของเขา (ดูขั้นตอนที่ 5) เขาใช้จริงเพียงครึ่งหนึ่งของธุรกรรมของเขา ข้อมูลส่วนตัว: (ก, ข) คู่นี้หรือที่เรียกว่าคีย์ติดตามสามารถส่งผ่านได้ ไปยังบุคคลที่สาม (แครอล) Bob สามารถมอบหมายให้เธอดำเนินการธุรกรรมใหม่ได้ บ๊อบ ไม่จำเป็นต้องเชื่อถือแครอลอย่างชัดเจน เพราะเธอไม่สามารถกู้คืนคีย์ลับแบบครั้งเดียว p ได้ โดยไม่มีคีย์ส่วนตัวแบบเต็มของ Bob (a, b) วิธีการนี้มีประโยชน์เมื่อ Bob ขาดแบนด์วิดท์ หรือพลังการคำนวณ (สมาร์ทโฟน กระเป๋าฮาร์ดแวร์ ฯลฯ) • ในกรณีที่อลิซต้องการพิสูจน์ว่าเธอส่งธุรกรรมไปยังที่อยู่ของ Bob เธอสามารถเปิดเผยได้ หรือใช้วิธีปฏิบัติแบบไม่มีความรู้ใดๆ เพื่อพิสูจน์ว่าเธอรู้ (เช่น โดยการลงนาม การทำธุรกรรมกับ r) • หาก Bob ต้องการมีที่อยู่ที่รองรับการตรวจสอบซึ่งมีธุรกรรมขาเข้าทั้งหมด สามารถลิงก์ได้ เขาสามารถเผยแพร่คีย์ติดตามหรือใช้ที่อยู่ที่ถูกตัดทอนได้ ที่อยู่นั้น เป็นตัวแทน ec-key สาธารณะ B เพียงอันเดียว และส่วนที่เหลือตามที่โปรโตคอลต้องการคือ ได้มาดังนี้: a = Hs(B) และ A = Hs(B)G ในทั้งสองกรณีทุกคนเป็น สามารถ "รับรู้" ธุรกรรมขาเข้าทั้งหมดของ Bob ได้ แต่แน่นอนว่าไม่มีใครสามารถใช้จ่ายได้ เงินทุนที่อยู่ในนั้นโดยไม่มีรหัสลับ b. 4.4 ลายเซ็นแหวนแบบครั้งเดียว โปรโตคอลที่ใช้ลายเซ็นวงแหวนแบบครั้งเดียวช่วยให้ผู้ใช้สามารถยกเลิกการเชื่อมโยงได้โดยไม่มีเงื่อนไข น่าเสียดายที่ลายเซ็นเข้ารหัสประเภททั่วไปอนุญาตให้ติดตามธุรกรรมไปยังพวกเขาได้ ผู้ส่งและผู้รับตามลำดับ วิธีแก้ปัญหาข้อบกพร่องนี้อยู่ที่การใช้ลายเซ็นที่แตกต่างกัน มากกว่าที่ใช้ในระบบเงินสดอิเล็กทรอนิกส์ในปัจจุบัน ก่อนอื่นเราจะให้คำอธิบายทั่วไปของอัลกอริทึมของเราโดยไม่มีการอ้างอิงที่ชัดเจน เงินสดอิเล็กทรอนิกส์ ลายเซ็นกริ่งแบบครั้งเดียวประกอบด้วยสี่อัลกอริธึม: (GEN, SIG, VER, LNK): GEN: รับพารามิเตอร์สาธารณะและส่งออก ec-pair (P, x) และคีย์สาธารณะ I SIG: รับข้อความ m, ชุด \(S'\) ของกุญแจสาธารณะ {Pi}i̸=s, คู่ (Ps, xs) และส่งออกลายเซ็น \(\sigma\) และเซต \(S = \)S'\( \cup \{P_s\}\) 8
  2. Bob สามารถกู้คืนคีย์ส่วนตัวแบบครั้งเดียวที่เกี่ยวข้องได้: x = Hs(aR) + b ดังนั้น P = xG เขาสามารถใช้เอาต์พุตนี้ได้ตลอดเวลาโดยการลงนามในธุรกรรมกับ x การทำธุรกรรม รหัสสาธารณะ Tx เอาท์พุท TX จำนวน กุญแจปลายทาง P ′ = Hs(aR)G + bG กุญแจสาธารณะแบบครั้งเดียว x = Hs(aR) + b รหัสส่วนตัวแบบครั้งเดียว ผู้รับ รหัสส่วนตัว (ก ข) ร พี' ?= ป มะเดื่อ 5. การตรวจสอบธุรกรรมขาเข้า ผลก็คือ Bob ได้รับการชำระเงินเข้ามา ซึ่งเกี่ยวข้องกับกุญแจสาธารณะแบบครั้งเดียวซึ่งได้แก่ ไม่สามารถเชื่อมโยงได้สำหรับผู้ชม หมายเหตุเพิ่มเติมบางประการ: • เมื่อ Bob “รับรู้” ธุรกรรมของเขา (ดูขั้นตอนที่ 5) เขาใช้จริงเพียงครึ่งหนึ่งของธุรกรรมของเขา ข้อมูลส่วนตัว: (ก, ข) คู่นี้หรือที่เรียกว่าคีย์ติดตามสามารถส่งผ่านได้ ไปยังบุคคลที่สาม (แครอล) Bob สามารถมอบหมายให้เธอดำเนินการธุรกรรมใหม่ได้ บ๊อบ ไม่จำเป็นต้องเชื่อถือแครอลอย่างชัดเจน เพราะเธอไม่สามารถกู้คืนคีย์ลับแบบครั้งเดียว p ได้ โดยไม่มีคีย์ส่วนตัวแบบเต็มของ Bob (a, b) วิธีการนี้มีประโยชน์เมื่อ Bob ขาดแบนด์วิดท์ หรือพลังการคำนวณ (สมาร์ทโฟน กระเป๋าฮาร์ดแวร์ ฯลฯ) • ในกรณีที่อลิซต้องการพิสูจน์ว่าเธอส่งธุรกรรมไปยังที่อยู่ของ Bob เธอสามารถเปิดเผยได้ หรือใช้วิธีปฏิบัติแบบไม่มีความรู้ใดๆ เพื่อพิสูจน์ว่าเธอรู้ (เช่น โดยการลงนาม การทำธุรกรรมกับ r) • หาก Bob ต้องการมีที่อยู่ที่รองรับการตรวจสอบซึ่งมีธุรกรรมขาเข้าทั้งหมด สามารถลิงก์ได้ เขาสามารถเผยแพร่คีย์ติดตามหรือใช้ที่อยู่ที่ถูกตัดทอนได้ ที่อยู่นั้น เป็นตัวแทน ec-key สาธารณะ B เพียงอันเดียว และส่วนที่เหลือตามที่โปรโตคอลต้องการคือ ได้มาดังนี้: a = Hs(B) และ A = Hs(B)G ในทั้งสองกรณีทุกคนเป็น สามารถ "รับรู้" ธุรกรรมขาเข้าทั้งหมดของ Bob ได้ แต่แน่นอนว่าไม่มีใครสามารถใช้จ่ายได้ เงินทุนที่อยู่ในนั้นโดยไม่มีรหัสลับ b. 4.4 ลายเซ็นแหวนแบบครั้งเดียว โปรโตคอลที่ใช้ลายเซ็นวงแหวนแบบครั้งเดียวช่วยให้ผู้ใช้สามารถยกเลิกการเชื่อมโยงได้โดยไม่มีเงื่อนไข น่าเสียดายที่ลายเซ็นเข้ารหัสประเภททั่วไปอนุญาตให้ติดตามธุรกรรมไปยังพวกเขาได้ ผู้ส่งและผู้รับตามลำดับ วิธีแก้ปัญหาข้อบกพร่องนี้อยู่ที่การใช้ลายเซ็นที่แตกต่างกัน มากกว่าที่ใช้ในระบบเงินสดอิเล็กทรอนิกส์ในปัจจุบัน ก่อนอื่นเราจะจัดให้มีรุ่นคำอธิบายอัลกอริธึมของเราโดยไม่มีการอ้างอิงที่ชัดเจน เงินสดอิเล็กทรอนิกส์ ลายเซ็นกริ่งแบบครั้งเดียวประกอบด้วยสี่อัลกอริธึม: (GEN, SIG, VER, LNK): GEN: รับพารามิเตอร์สาธารณะและส่งออก ec-pair (P, x) และคีย์สาธารณะ I SIG: รับข้อความ m, ชุด \(S'\) ของกุญแจสาธารณะ {Pi}i̸=s, คู่ (Ps, xs) และส่งออกลายเซ็น \(\sigma\) และเซต \(S = \)S'\( \cup \{P_s\}\) 8 15 ผลลัพธ์ของธุรกรรมที่ยังไม่ได้ใช้มีลักษณะเป็นอย่างไรที่นี่ แผนภาพแสดงให้เห็นว่าเอาท์พุตธุรกรรมประกอบด้วยจุดข้อมูลเพียงสองจุดเท่านั้น ได้แก่ จำนวนเงินและคีย์ปลายทาง แต่นี่ไม่ใช่ เพียงพอเพราะเมื่อฉันพยายามใช้ "เอาต์พุต" นี้ ฉันยังคงจำเป็นต้องรู้ R=rG โปรดจำไว้ว่า r ถูกเลือกโดยผู้ส่ง และ R คือ a) ใช้เพื่อจดจำ cryptonotes ที่เข้ามาเป็นของคุณ เป็นเจ้าของและ b) ใช้เพื่อสร้างคีย์ส่วนตัวแบบครั้งเดียวที่ใช้เพื่อ "อ้างสิทธิ์" cryptonote ของคุณ ส่วนเกี่ยวกับเรื่องนี้ที่ฉันไม่เข้าใจ? ตามทฤษฎี "เอาล่ะ เรามีสิ่งเหล่านี้ ลายเซ็นและธุรกรรม แล้วเราจะส่งต่อกลับไปกลับมา" สู่โลกแห่งการเขียนโปรแกรม "โอเค ข้อมูลอะไร โดยเฉพาะ ที่ประกอบขึ้นเป็นรายบุคคล UTXO?" วิธีที่ดีที่สุดในการตอบคำถามนั้นคือการเจาะลึกเข้าไปในเนื้อความของโค้ดที่ไม่มีเครื่องหมายข้อคิดเห็นทั้งหมด เยี่ยมไปเลยทีม bytecoin จำได้ว่า: ความสามารถในการเชื่อมโยงหมายถึง "คนคนเดียวกันส่งหรือเปล่า" และไม่สามารถเชื่อมโยงได้หมายความว่า "ทำเช่นเดียวกัน คนรับ?". ดังนั้นระบบจึงสามารถเชื่อมโยงได้หรือไม่สามารถเชื่อมโยงได้ ไม่สามารถเชื่อมโยงได้หรือไม่สามารถเชื่อมโยงได้ น่ารำคาญฉันรู้ ดังนั้น เมื่อ Nic van Saberhagen พูดว่า "...การชำระเงินที่เข้ามา [จะ] เชื่อมโยงกับแบบครั้งเดียว กุญแจสาธารณะซึ่งผู้ชมไม่สามารถเชื่อมโยงได้" มาดูกันว่าเขาหมายถึงอะไร ขั้นแรก ให้พิจารณาสถานการณ์ที่ Alice ส่งธุรกรรมสองรายการแยกจากรายการเดียวกันให้ Bob ที่อยู่ไปยังที่อยู่เดียวกัน ในจักรวาล Bitcoin อลิซได้ทำผิดพลาดไปแล้ว ของการส่งจากที่อยู่เดียวกันดังนั้นการทำธุรกรรมจึงล้มเหลวในความต้องการของเรา ความสามารถในการเชื่อมโยง นอกจากนี้ เนื่องจากเธอส่งเงินไปยังที่อยู่เดียวกัน เธอจึงล้มเหลวตามความปรารถนาของเรา สำหรับการไม่สามารถเชื่อมโยงได้ ธุรกรรม bitcoin นี้สามารถเชื่อมโยงได้ (ทั้งหมด) และไม่สามารถเชื่อมโยงได้ ในทางกลับกัน ในจักรวาล cryptonote สมมติว่า Alice ส่ง cryptonote ให้กับ Bob โดยใช้ที่อยู่สาธารณะของ Bob เธอเลือกเป็นชุดกุญแจสาธารณะที่น่าสับสนซึ่งทุกคนรู้จัก กุญแจในพื้นที่รถไฟใต้ดินวอชิงตัน ดี.ซี. อเล็กซ์สร้างรหัสสาธารณะแบบใช้ครั้งเดียวโดยใช้ของเธอเอง ข้อมูลและข้อมูลสาธารณะของ Bob เธอส่งเงินไป และผู้สังเกตการณ์คนใดก็จะส่งเงินไป เท่านั้นที่สามารถรวบรวมได้ "มีคนจากพื้นที่รถไฟใต้ดินวอชิงตัน ดี.ซี. ส่ง cryptonotes 2.3 รายการไปให้ ที่อยู่สาธารณะแบบครั้งเดียว XYZ123" เรามีการควบคุมความน่าจะเป็นสำหรับการเชื่อมโยงได้ที่นี่ ดังนั้นเราจะเรียกสิ่งนี้ว่า "เกือบจะไม่สามารถเชื่อมโยงได้" นอกจากนี้เรายังเห็นเฉพาะเงินคีย์สาธารณะที่ถูกส่งไปเท่านั้น แม้ว่าเราจะสงสัยว่าผู้รับ คือบ็อบ เราไม่มีคีย์ส่วนตัวของเขา ดังนั้นเราจึงไม่สามารถทดสอบได้ว่ามีธุรกรรมที่ผ่านหรือไม่ เป็นของ Bob ไม่ต้องพูดถึงการสร้างคีย์ส่วนตัวเพียงครั้งเดียวเพื่อแลก cryptonote ของเขา ดังนั้นนี้ ที่จริงแล้วคือ "ไม่สามารถเชื่อมโยงได้" โดยสิ้นเชิง นี่เป็นเคล็ดลับที่ประณีตที่สุด ใครอยากจะเชื่อถือ MtGox อื่นจริงๆ? เราอาจจะ จัดเก็บ BTC จำนวนหนึ่งบน Coinbase ได้อย่างสะดวกสบาย แต่ความปลอดภัยขั้นสูงสุดของ Bitcoin ก็คือ กระเป๋าเงินจริง ซึ่งไม่สะดวก. ในกรณีนี้ คุณสามารถมอบคีย์ส่วนตัวของคุณครึ่งหนึ่งได้อย่างไม่ไว้วางใจโดยไม่กระทบต่อคุณ ความสามารถในการใช้จ่ายเงินของตัวเอง เมื่อทำเช่นนี้ สิ่งที่คุณทำคือบอกใครสักคนถึงวิธีทำลายการเชื่อมต่อไม่ได้ ส่วนอื่นๆ คุณสมบัติของ CN ที่ทำหน้าที่เหมือนสกุลเงินจะถูกรักษาไว้ เช่น การพิสูจน์การใช้จ่ายซ้ำซ้อน และ อะไรก็ตาม

  3. Bob สามารถกู้คืนคีย์ส่วนตัวแบบครั้งเดียวที่เกี่ยวข้องได้: x = Hs(aR) + b ดังนั้น P = xG เขาสามารถใช้เอาต์พุตนี้ได้ตลอดเวลาโดยการลงนามในธุรกรรมกับ x การทำธุรกรรม รหัสสาธารณะ Tx เอาท์พุท TX จำนวน กุญแจปลายทาง P ′ = Hs(aR)G + bG กุญแจสาธารณะแบบครั้งเดียว x = Hs(aR) + b รหัสส่วนตัวแบบครั้งเดียว ผู้รับ รหัสส่วนตัว (ก ข) ร พี' ?= ป มะเดื่อ 5. การตรวจสอบธุรกรรมขาเข้า ผลก็คือ Bob ได้รับการชำระเงินเข้ามา ซึ่งเกี่ยวข้องกับกุญแจสาธารณะแบบครั้งเดียวซึ่งก็คือ ไม่สามารถเชื่อมโยงได้สำหรับผู้ชม หมายเหตุเพิ่มเติมบางประการ: • เมื่อ Bob “รับรู้” ธุรกรรมของเขา (ดูขั้นตอนที่ 5) เขาใช้จริงเพียงครึ่งหนึ่งของธุรกรรมของเขา ข้อมูลส่วนตัว: (ก, ข) คู่นี้หรือที่เรียกว่าคีย์ติดตามสามารถส่งผ่านได้ ไปยังบุคคลที่สาม (แครอล) Bob สามารถมอบหมายให้เธอดำเนินการธุรกรรมใหม่ได้ บ๊อบ ไม่จำเป็นต้องเชื่อถือแครอลอย่างชัดเจน เพราะเธอไม่สามารถกู้คืนคีย์ลับแบบครั้งเดียว p ได้ โดยไม่มีคีย์ส่วนตัวแบบเต็มของ Bob (a, b) วิธีการนี้มีประโยชน์เมื่อ Bob ขาดแบนด์วิดท์ หรือพลังการคำนวณ (สมาร์ทโฟน กระเป๋าฮาร์ดแวร์ ฯลฯ) • ในกรณีที่อลิซต้องการพิสูจน์ว่าเธอส่งธุรกรรมไปยังที่อยู่ของ Bob เธอสามารถเปิดเผยได้ หรือใช้วิธีปฏิบัติแบบไม่มีความรู้ใดๆ เพื่อพิสูจน์ว่าเธอรู้ (เช่น โดยการลงนาม การทำธุรกรรมกับ r) • หาก Bob ต้องการมีที่อยู่ที่รองรับการตรวจสอบซึ่งมีธุรกรรมขาเข้าทั้งหมด สามารถลิงก์ได้ เขาสามารถเผยแพร่คีย์ติดตามหรือใช้ที่อยู่ที่ถูกตัดทอนได้ ที่อยู่นั้น เป็นตัวแทน ec-key สาธารณะ B เพียงอันเดียว และส่วนที่เหลือตามที่โปรโตคอลต้องการคือ ได้มาดังนี้: a = Hs(B) และ A = Hs(B)G ในทั้งสองกรณีทุกคนเป็น สามารถ "รับรู้" ธุรกรรมขาเข้าทั้งหมดของ Bob ได้ แต่แน่นอนว่าไม่มีใครสามารถใช้จ่ายได้ เงินทุนที่อยู่ในนั้นโดยไม่มีรหัสลับ b. 4.4 ลายเซ็นแหวนแบบครั้งเดียว โปรโตคอลที่ใช้ลายเซ็นวงแหวนแบบครั้งเดียวช่วยให้ผู้ใช้สามารถยกเลิกการเชื่อมโยงได้โดยไม่มีเงื่อนไข น่าเสียดายที่ลายเซ็นเข้ารหัสประเภททั่วไปอนุญาตให้ติดตามธุรกรรมไปยังพวกเขาได้ ผู้ส่งและผู้รับตามลำดับ วิธีแก้ปัญหาข้อบกพร่องนี้อยู่ที่การใช้ลายเซ็นที่แตกต่างกัน มากกว่าที่ใช้ในระบบเงินสดอิเล็กทรอนิกส์ในปัจจุบัน ก่อนอื่นเราจะให้คำอธิบายทั่วไปของอัลกอริทึมของเราโดยไม่มีการอ้างอิงที่ชัดเจน เงินสดอิเล็กทรอนิกส์ ลายเซ็นกริ่งแบบครั้งเดียวประกอบด้วยสี่อัลกอริธึม: (GEN, SIG, VER, LNK): GEN: รับพารามิเตอร์สาธารณะและส่งออก ec-pair (P, x) และคีย์สาธารณะ I SIG: รับข้อความ m, ชุด \(S'\) ของกุญแจสาธารณะ {Pi}i̸=s, คู่ (Ps, xs) และส่งออกลายเซ็น \(\sigma\) และเซต \(S = \)S'\( \cup \{P_s\}\) 8

  4. Bob สามารถกู้คืนคีย์ส่วนตัวแบบครั้งเดียวที่เกี่ยวข้องได้: x = Hs(aR) + b ดังนั้น P = xG เขาสามารถใช้เอาต์พุตนี้ได้ตลอดเวลาโดยการลงนามในธุรกรรมกับ x การทำธุรกรรม รหัสสาธารณะ Tx เอาท์พุท TX จำนวน กุญแจปลายทาง P ′ = Hs(aR)G + bG กุญแจสาธารณะแบบครั้งเดียว x = Hs(aR) + b รหัสส่วนตัวแบบครั้งเดียว ผู้รับ รหัสส่วนตัว (ก ข) ร พี' ?= ป มะเดื่อ 5. การตรวจสอบธุรกรรมขาเข้า ผลก็คือ Bob ได้รับการชำระเงินเข้ามา ซึ่งเกี่ยวข้องกับกุญแจสาธารณะแบบครั้งเดียวซึ่งได้แก่ ไม่สามารถเชื่อมโยงได้สำหรับผู้ชม หมายเหตุเพิ่มเติมบางประการ: • เมื่อ Bob “รับรู้” ธุรกรรมของเขา (ดูขั้นตอนที่ 5) เขาใช้จริงเพียงครึ่งหนึ่งของธุรกรรมของเขา ข้อมูลส่วนตัว: (ก, ข) คู่นี้หรือที่เรียกว่าคีย์ติดตามสามารถส่งผ่านได้ ไปยังบุคคลที่สาม (แครอล) Bob สามารถมอบหมายให้เธอดำเนินการธุรกรรมใหม่ได้ บ๊อบ ไม่จำเป็นต้องเชื่อถือแครอลอย่างชัดเจน เพราะเธอไม่สามารถกู้คืนคีย์ลับแบบครั้งเดียว p ได้ โดยไม่มีคีย์ส่วนตัวแบบเต็มของ Bob (a, b) วิธีการนี้มีประโยชน์เมื่อ Bob ขาดแบนด์วิดท์ หรือพลังการคำนวณ (สมาร์ทโฟน กระเป๋าฮาร์ดแวร์ ฯลฯ) • ในกรณีที่อลิซต้องการพิสูจน์ว่าเธอส่งธุรกรรมไปยังที่อยู่ของ Bob เธอสามารถเปิดเผยได้ หรือใช้วิธีปฏิบัติแบบไม่มีความรู้ใดๆ เพื่อพิสูจน์ว่าเธอรู้ (เช่น โดยการลงนาม การทำธุรกรรมกับ r) • หาก Bob ต้องการมีที่อยู่ที่รองรับการตรวจสอบซึ่งมีธุรกรรมขาเข้าทั้งหมด สามารถลิงก์ได้ เขาสามารถเผยแพร่คีย์ติดตามหรือใช้ที่อยู่ที่ถูกตัดทอนได้ ที่อยู่นั้น เป็นตัวแทน ec-key สาธารณะ B เพียงอันเดียว และส่วนที่เหลือตามที่โปรโตคอลต้องการคือ ได้มาดังนี้: a = Hs(B) และ A = Hs(B)G ในทั้งสองกรณีทุกคนเป็น สามารถ "รับรู้" ธุรกรรมขาเข้าทั้งหมดของ Bob ได้ แต่แน่นอนว่าไม่มีใครสามารถใช้จ่ายได้ เงินทุนที่อยู่ในนั้นโดยไม่มีรหัสลับ b. 4.4 ลายเซ็นแหวนแบบครั้งเดียว โปรโตคอลที่ใช้ลายเซ็นวงแหวนแบบครั้งเดียวช่วยให้ผู้ใช้สามารถยกเลิกการเชื่อมโยงได้โดยไม่มีเงื่อนไข น่าเสียดายที่ลายเซ็นเข้ารหัสประเภททั่วไปอนุญาตให้ติดตามธุรกรรมไปยังพวกเขาได้ ผู้ส่งและผู้รับตามลำดับ วิธีแก้ปัญหาข้อบกพร่องนี้อยู่ที่การใช้ลายเซ็นที่แตกต่างกัน มากกว่าที่ใช้ในระบบเงินสดอิเล็กทรอนิกส์ในปัจจุบัน ก่อนอื่นเราจะจัดให้มีรุ่นคำอธิบายอัลกอริธึมของเราโดยไม่มีการอ้างอิงที่ชัดเจน เงินสดอิเล็กทรอนิกส์ ลายเซ็นกริ่งแบบครั้งเดียวประกอบด้วยสี่อัลกอริธึม: (GEN, SIG, VER, LNK): GEN: รับพารามิเตอร์สาธารณะและส่งออก ec-pair (P, x) และคีย์สาธารณะ I SIG: รับข้อความ m, ชุด \(S'\) ของกุญแจสาธารณะ {Pi}i̸=s, คู่ (Ps, xs) และส่งออกลายเซ็น \(\sigma\) และเซต \(S = \)S'\( \cup \{P_s\}\) 8 16 ใช่ ตอนนี้เรามี a) ที่อยู่การชำระเงิน และ b) รหัสการชำระเงิน นักวิจารณ์อาจถามว่า "เราจำเป็นต้องทำเช่นนี้จริงๆ หรือไม่ เพราะหากร้านค้าได้รับ 112.00678952 CN นั่นแหละ นั่นคือคำสั่งของฉัน และฉันมีภาพหน้าจอหรือใบเสร็จหรืออะไรก็ตาม ไม่ใช่อย่างนั้น ระดับความแม่นยำที่บ้าคลั่งเพียงพอ?” คำตอบคือ "บางที โดยส่วนใหญ่ ในแต่ละวัน การทำธุรกรรมแบบเห็นหน้ากัน" อย่างไรก็ตาม สถานการณ์ที่พบบ่อยกว่า (โดยเฉพาะในโลกดิจิทัล) คือ: พ่อค้าขายของ ชุดของวัตถุ แต่ละชิ้นมีราคาคงที่ สมมติว่าวัตถุ A คือ 0.001 CN, วัตถุ B คือ 0.01 CN และ วัตถุ C คือ 0.1 CN ตอนนี้หากพ่อค้าได้รับคำสั่งซื้อจำนวน 1.618 CN ก็มีจำนวนมากมาย (หลายวิธี!) ในการจัดเตรียมคำสั่งซื้อให้กับลูกค้า หากไม่มีรหัสการชำระเงิน การระบุคำสั่งซื้อที่เรียกว่า "ไม่ซ้ำกัน" ของลูกค้าด้วยต้นทุนที่เรียกว่า "ไม่ซ้ำกัน" ของลูกค้า คำสั่งกลายเป็นไปไม่ได้ ตลกยิ่งกว่า: ถ้าทุกอย่างในร้านค้าออนไลน์ของฉันมีราคา 1.0 พอดี CN และฉันได้รับลูกค้า 1,000 รายต่อวันเหรอ? และคุณต้องการพิสูจน์ว่าคุณซื้อวัตถุมา 3 ชิ้นพอดี สองสัปดาห์ก่อน? ไม่มีรหัสการชำระเงิน? ขอให้โชคดีนะเพื่อน เรื่องสั้นเรื่องยาว: เมื่อ Bob เผยแพร่ที่อยู่การชำระเงิน เขาอาจลงเอยด้วยการเผยแพร่ a รหัสการชำระเงินด้วย (ดู เช่น การฝากเงิน Poloniex XMR) สิ่งนี้แตกต่างไปจากที่อธิบายไว้ ในข้อความที่นี่ โดยที่ Alice เป็นคนสร้างรหัสการชำระเงิน Bob จะต้องมีวิธีสร้างรหัสการชำระเงินด้วยเช่นกัน (ก,ข) โปรดจำไว้ว่าสามารถเผยแพร่คีย์การติดตาม (a,B) ได้ สูญเสียความลับของคุณค่าของพินัยกรรม 'a' ไม่ละเมิดความสามารถในการจับจ่ายหรือยอมให้คนอื่นมาขโมยของ (ผมคิดว่า...ก็คงมี ได้รับการพิสูจน์แล้ว) จะช่วยให้ผู้ใช้สามารถดูธุรกรรมที่เข้ามาทั้งหมดได้ ที่อยู่ที่ถูกตัดทอนตามที่อธิบายไว้ในย่อหน้านี้ จะใช้ส่วน "ส่วนตัว" ของคีย์เท่านั้น และสร้างขึ้นจากส่วน "สาธารณะ" การเปิดเผยค่าสำหรับ 'a' จะลบความสามารถในการลิงก์ไม่ได้ แต่จะเก็บธุรกรรมที่เหลือไว้ ผู้เขียนหมายถึง "ไม่สามารถเชื่อมโยงได้" เพราะไม่สามารถเชื่อมโยงได้หมายถึงผู้รับและสามารถเชื่อมโยงได้ หมายถึงผู้ส่ง เห็นได้ชัดว่าผู้เขียนไม่ได้ตระหนักดีว่าการเชื่อมโยงได้มีแง่มุมที่แตกต่างกันสองประการ เนื่องจากท้ายที่สุดแล้ว ธุรกรรมเป็นวัตถุที่มีทิศทางบนกราฟ จึงมีคำถามสองข้อ: "ธุรกรรมทั้งสองนี้ไปที่บุคคลคนเดียวกันหรือไม่" และ "ธุรกรรมทั้งสองนี้กำลังจะมา จากคนคนเดียวกัน?” นี่เป็นนโยบาย "ไม่ย้อนกลับ" ซึ่งเป็นคุณสมบัติที่ไม่สามารถเชื่อมโยงได้ของ CryptoNote มีเงื่อนไข กล่าวคือ Bob สามารถเลือกธุรกรรมที่เข้ามาของเขาว่าไม่สามารถยกเลิกการเชื่อมโยงได้ การใช้นโยบายนี้ นี่คือการอ้างสิทธิ์ที่พวกเขาพิสูจน์ภายใต้ Random Oracle Model เราจะไปถึงจุดนั้น การสุ่ม ออราเคิลมีข้อดีและข้อเสีย

VER: รับข้อความ m, ชุด S, ลายเซ็น \(\sigma\) และเอาต์พุตเป็น "จริง" หรือ "เท็จ" LNK: รับชุด I = {Ii} ลายเซ็น \(\sigma\) และเอาต์พุต "เชื่อมโยง" หรือ "indep" แนวคิดเบื้องหลังโปรโตคอลนั้นค่อนข้างง่าย: ผู้ใช้สร้างลายเซ็นซึ่งสามารถเป็นได้ ตรวจสอบโดยชุดกุญแจสาธารณะแทนที่จะเป็นกุญแจสาธารณะเฉพาะ ตัวตนของผู้ลงนามคือ แยกไม่ออกจากผู้ใช้รายอื่นที่มีกุญแจสาธารณะอยู่ในชุดจนกว่าเจ้าของจะผลิต ลายเซ็นที่สองโดยใช้คู่กุญแจเดียวกัน คีย์ส่วนตัว x0 \(\cdots\) ซี \(\cdots\) xn กุญแจสาธารณะ ป0 \(\cdots\) พาย \(\cdots\) พีเอ็น แหวน ลายเซ็น ลงชื่อ ตรวจสอบ มะเดื่อ 6. การไม่เปิดเผยชื่อลายเซ็นของแหวน GEN: ผู้ลงนามเลือกคีย์ลับแบบสุ่ม \(x \in [1, l - 1]\) และคำนวณค่าที่สอดคล้องกัน กุญแจสาธารณะ P = xG นอกจากนี้เขายังคำนวณกุญแจสาธารณะอีกอัน I = xHp(P) ซึ่งเราจะทำ เรียกว่า “ภาพสำคัญ” SIG: ผู้ลงนามสร้างลายเซ็นวงแหวนแบบครั้งเดียวโดยมีความรู้เป็นศูนย์แบบไม่โต้ตอบ พิสูจน์โดยใช้เทคนิคจาก [21] เขาเลือกเซตย่อยแบบสุ่ม \(S'\) ของ n จากผู้ใช้รายอื่น คีย์สาธารณะ Pi, คู่คีย์ของเขาเอง (x, P) และคีย์อิมเมจ I ให้ \(0 \leq s \leq n\) เป็นดัชนีลับของผู้ลงนาม ใน S (เพื่อให้รหัสสาธารณะของเขาคือ Ps) เขาสุ่มเลือก {qi | ฉัน = 0 . . . n} และ {wi | ฉัน = 0 . . . n, i ̸= s} จาก (1 . . . l) และใช้ การเปลี่ยนแปลงต่อไปนี้: หลี่ = ( ชี่จี, ถ้าฉัน = ส คิวจี + วิปิ, ถ้าฉัน ̸= ส ริ= ( ฉีHp(Pi) ถ้าฉัน = ส qiHp(Pi) + wiI, ถ้าฉัน ̸= ส ขั้นตอนต่อไปคือการได้รับความท้าทายแบบไม่โต้ตอบ: c = Hs(ม, L1, . . . , Ln, R1, . . . , Rn) ในที่สุดผู้ลงนามจะคำนวณคำตอบ: ซี =    วิ ถ้าฉัน ̸= ส ค - เอ็นพี ผม=0 ci ดัดแปลง ถ้าฉัน = ส ริ = ( ฉี ถ้าฉัน ̸= ส qs −csx ดัดแปลง ถ้าฉัน = ส ผลลัพธ์ลายเซ็นต์คือ \(\sigma\) = (I, c1, . . . , cn, r1, . . . , rn) 9 VER: รับข้อความ m, ชุด S, ลายเซ็น \(\sigma\) และเอาต์พุตเป็น "จริง" หรือ "เท็จ" LNK: รับชุด I = {Ii} ลายเซ็น \(\sigma\) และเอาต์พุต "เชื่อมโยง" หรือ "indep" แนวคิดเบื้องหลังโปรโตคอลนั้นค่อนข้างง่าย: ผู้ใช้สร้างลายเซ็นซึ่งสามารถเป็นได้ ตรวจสอบโดยชุดกุญแจสาธารณะแทนที่จะเป็นกุญแจสาธารณะเฉพาะ ตัวตนของผู้ลงนามคือ แยกไม่ออกจากผู้ใช้รายอื่นที่มีกุญแจสาธารณะอยู่ในชุดจนกว่าเจ้าของจะผลิต ลายเซ็นที่สองโดยใช้คู่กุญแจเดียวกัน คีย์ส่วนตัว x0 \(\cdots\) ซี \(\cdots\) xn กุญแจสาธารณะ ป0 \(\cdots\) พาย \(\cdots\) พีเอ็น แหวน ลายเซ็น ลงชื่อ ตรวจสอบ มะเดื่อ 6. การไม่เปิดเผยชื่อลายเซ็นของแหวน GEN: ผู้ลงนามเลือกคีย์ลับแบบสุ่ม \(x \in [1, l - 1]\) และคำนวณค่าที่สอดคล้องกัน กุญแจสาธารณะ P = xG นอกจากนี้เขายังคำนวณกุญแจสาธารณะอีกอัน I = xHp(P) ซึ่งเราจะทำ เรียกว่า “ภาพสำคัญ” SIG: ผู้ลงนามสร้างลายเซ็นวงแหวนแบบครั้งเดียวโดยมีความรู้เป็นศูนย์แบบไม่โต้ตอบ พิสูจน์โดยใช้เทคนิคจาก [21] เขาเลือกเซตย่อยแบบสุ่ม \(S'\) ของ n จากผู้ใช้รายอื่น คีย์สาธารณะ Pi, คู่คีย์ของเขาเอง (x, P) และคีย์อิมเมจ I ให้ \(0 \leq s \leq n\) เป็นดัชนีลับของผู้ลงนาม ใน S (เพื่อให้รหัสสาธารณะของเขาคือ Ps) เขาสุ่มเลือก {qi | ฉัน = 0 . . . n} และ {wi | ฉัน = 0 . . . n, i ̸= s} จาก (1 . . . l) และใช้ การเปลี่ยนแปลงต่อไปนี้: หลี่ = ( ชี่จี, ถ้าฉัน = ส คิวจี + วิปิ, ถ้าฉัน ̸= ส ริ= ( ฉีHp(Pi) ถ้าฉัน = ส qiHp(Pi) + wiI, ถ้าฉัน ̸= ส ขั้นตอนต่อไปคือการได้รับความท้าทายแบบไม่โต้ตอบ: c = Hs(ม, L1, . . . , Ln, R1, . . . , Rn) ในที่สุดผู้ลงนามจะคำนวณคำตอบ: ซี =    วิ ถ้าฉัน ̸= ส ค - เอ็นพี ผม=0 ci ดัดแปลง ถ้าฉัน = ส ริ = ( ฉี ถ้าฉัน ̸= ส qs −csx ดัดแปลง ถ้าฉัน = ส ผลลัพธ์ลายเซ็นต์คือ \(\sigma\) = (I, c1, . . . , cn, r1, . . . , rn) 9 17 บางทีนี่อาจจะโง่ แต่ต้องระมัดระวังเมื่อรวม S และ P_s หากคุณเพียงแค่ต่อท้าย พับลิกคีย์ตัวสุดท้าย การเชื่อมต่อไม่ได้เสียหายเพราะใครก็ตามที่ตรวจสอบธุรกรรมที่ส่งผ่าน สามารถตรวจสอบรหัสสาธารณะล่าสุดที่แสดงในแต่ละธุรกรรมและบูมได้ นั่นคือกุญแจสาธารณะ ที่เกี่ยวข้องกับผู้ส่ง ดังนั้นหลังจากการรวมตัวแล้ว จะต้องมีเครื่องกำเนิดตัวเลขสุ่มเทียม ใช้เพื่อสับเปลี่ยนกุญแจสาธารณะที่เลือก "...จนกว่าเจ้าของจะจัดทำลายเซ็นครั้งที่สองโดยใช้คู่กุญแจอันเดียวกัน" ฉันหวังว่าผู้เขียน(s?) จะอธิบายรายละเอียดเกี่ยวกับเรื่องนี้ ฉันเชื่อว่านี่หมายถึง "ตรวจสอบให้แน่ใจว่าทุกครั้งที่คุณเลือกชุดกุญแจสาธารณะเพื่อทำให้สับสน ตัวคุณเองด้วย คุณเลือกชุดใหม่ที่ไม่มีกุญแจสองดอกเหมือนกัน" ซึ่งดูเหมือนก สภาพค่อนข้างแข็งแกร่งเมื่อไม่สามารถเชื่อมต่อได้ บางที "คุณเลือกชุดสุ่มใหม่จาก กุญแจที่เป็นไปได้ทั้งหมด" โดยมีสมมติฐานว่าถึงแม้ทางแยกที่ไม่เล็กน้อยจะหลีกเลี่ยงไม่ได้ เกิดขึ้นก็ไม่ได้เกิดขึ้นบ่อยนัก ไม่ว่าจะด้วยวิธีใด ฉันต้องเจาะลึกลงไปในข้อความนี้ นี่คือการสร้างลายเซ็นแหวน การพิสูจน์ที่ไม่มีความรู้นั้นยอดเยี่ยมมาก ฉันขอท้าให้คุณพิสูจน์ให้ฉันเห็นว่าคุณรู้ความลับ โดยไม่เปิดเผยความลับ เช่น สมมติว่าเราอยู่ปากทางเข้าถ้ำรูปโดนัท และด้านหลังถ้ำ (เกินสายตาจากทางเข้า) มีโอประตูทางใหม่ที่คุณไป อ้างว่าคุณมีกุญแจ ถ้าคุณไปทางเดียว มันจะทำให้คุณผ่านไปได้เสมอ แต่ถ้าคุณไปทางนั้น ไปทางอื่นคุณต้องมีกุญแจ แต่คุณไม่ต้องการแสดงกุญแจให้ฉันเห็นด้วยซ้ำ แสดงให้ฉันเห็นว่ามันเปิดประตู แต่คุณต้องการพิสูจน์ให้ฉันเห็นว่าคุณรู้วิธีเปิด ประตู ในสภาพแวดล้อมแบบโต้ตอบ ฉันจะหงายเหรียญ หัวอยู่ซ้าย หางอยู่ขวา แล้วคุณก็ลงไป ถ้ำรูปโดนัทไม่ว่าเหรียญจะพาคุณไปในทางใดก็ตาม ที่ด้านหลังสุดสายตาของฉันคุณ เปิดประตูกลับมาอีกด้าน เราทำซ้ำการทดลองหยอดเหรียญ จนกว่าฉันจะพอใจที่คุณมีกุญแจ แต่นั่นเป็นการพิสูจน์ความรู้แบบไม่มีศูนย์เชิงโต้ตอบอย่างชัดเจน มีเวอร์ชันที่ไม่โต้ตอบซึ่งคุณและฉันไม่ต้องสื่อสารกัน ด้วยวิธีนี้ไม่มีผู้ดักฟังสามารถรบกวนได้ http://en.wikipedia.org/wiki/Zero-knowledge_proof สิ่งนี้กลับกันจากคำจำกัดความก่อนหน้า

VER: รับข้อความ m, ชุด S, ลายเซ็น \(\sigma\) และเอาต์พุตเป็น "จริง" หรือ "เท็จ" LNK: รับชุด I = {Ii} ลายเซ็น \(\sigma\) และเอาต์พุต "เชื่อมโยง" หรือ "indep" แนวคิดเบื้องหลังโปรโตคอลนั้นค่อนข้างง่าย: ผู้ใช้สร้างลายเซ็นซึ่งสามารถเป็นได้ ตรวจสอบโดยชุดกุญแจสาธารณะแทนที่จะเป็นกุญแจสาธารณะเฉพาะ ตัวตนของผู้ลงนามคือ แยกไม่ออกจากผู้ใช้รายอื่นที่มีกุญแจสาธารณะอยู่ในชุดจนกว่าเจ้าของจะผลิต ลายเซ็นที่สองโดยใช้คู่กุญแจเดียวกัน คีย์ส่วนตัว x0 \(\cdots\) ซี \(\cdots\) xn กุญแจสาธารณะ ป0 \(\cdots\) พาย \(\cdots\) พีเอ็น แหวน ลายเซ็น ลงชื่อ ตรวจสอบ มะเดื่อ 6. การไม่เปิดเผยชื่อลายเซ็นของแหวน GEN: ผู้ลงนามเลือกคีย์ลับแบบสุ่ม \(x \in [1, l - 1]\) และคำนวณค่าที่สอดคล้องกัน กุญแจสาธารณะ P = xG นอกจากนี้เขายังคำนวณกุญแจสาธารณะอีกอัน I = xHp(P) ซึ่งเราจะทำ เรียกว่า “ภาพสำคัญ” SIG: ผู้ลงนามสร้างลายเซ็นวงแหวนแบบครั้งเดียวโดยมีความรู้เป็นศูนย์แบบไม่โต้ตอบ พิสูจน์โดยใช้เทคนิคจาก [21] เขาเลือกเซตย่อยแบบสุ่ม \(S'\) ของ n จากผู้ใช้รายอื่น คีย์สาธารณะ Pi, คู่คีย์ของเขาเอง (x, P) และคีย์อิมเมจ I ให้ \(0 \leq s \leq n\) เป็นดัชนีลับของผู้ลงนาม ใน S (เพื่อให้รหัสสาธารณะของเขาคือ Ps) เขาสุ่มเลือก {qi | ฉัน = 0 . . . n} และ {wi | ฉัน = 0 . . . n, i ̸= s} จาก (1 . . . l) และใช้ การเปลี่ยนแปลงต่อไปนี้: หลี่ = ( ชี่จี, ถ้าฉัน = ส คิวจี + วิปิ, ถ้าฉัน ̸= ส ริ= ( ฉีHp(Pi) ถ้าฉัน = ส qiHp(Pi) + wiI, ถ้าฉัน ̸= ส ขั้นตอนต่อไปคือการได้รับความท้าทายแบบไม่โต้ตอบ: c = Hs(ม, L1, . . . , Ln, R1, . . . , Rn) ในที่สุดผู้ลงนามจะคำนวณคำตอบ: ซี =    วิ ถ้าฉัน ̸= ส ค - เอ็นพี ผม=0 ci ดัดแปลง ถ้าฉัน = ส ริ = ( ฉี ถ้าฉัน ̸= ส qs −csx ดัดแปลง ถ้าฉัน = ส ผลลัพธ์ลายเซ็นต์คือ \(\sigma\) = (I, c1, . . . , cn, r1, . . . , rn) 9 VER: รับข้อความ m, ชุด S, ลายเซ็น \(\sigma\) และเอาต์พุตเป็น "จริง" หรือ "เท็จ" LNK: รับชุด I = {Ii} ลายเซ็น \(\sigma\) และเอาต์พุต "เชื่อมโยง" หรือ "indep" แนวคิดเบื้องหลังโปรโตคอลนั้นค่อนข้างง่าย: ผู้ใช้สร้างลายเซ็นซึ่งสามารถเป็นได้ ตรวจสอบโดยชุดกุญแจสาธารณะแทนที่จะเป็นกุญแจสาธารณะเฉพาะ ตัวตนของผู้ลงนามคือ แยกไม่ออกจากผู้ใช้รายอื่นที่มีกุญแจสาธารณะอยู่ในชุดจนกว่าเจ้าของจะผลิต ลายเซ็นที่สองโดยใช้คู่กุญแจเดียวกัน คีย์ส่วนตัว x0 \(\cdots\) ซี \(\cdots\) xn กุญแจสาธารณะ ป0 \(\cdots\) พาย \(\cdots\) พีเอ็น แหวน ลายเซ็น ลงชื่อ ตรวจสอบ มะเดื่อ 6. การไม่เปิดเผยชื่อลายเซ็นของแหวน GEN: ผู้ลงนามเลือกคีย์ลับแบบสุ่ม \(x \in [1, l - 1]\) และคำนวณค่าที่สอดคล้องกัน กุญแจสาธารณะ P = xG นอกจากนี้เขายังคำนวณกุญแจสาธารณะอีกอัน I = xHp(P) ซึ่งเราจะทำ เรียกว่า “ภาพสำคัญ” SIG: ผู้ลงนามสร้างลายเซ็นวงแหวนแบบครั้งเดียวโดยมีความรู้เป็นศูนย์แบบไม่โต้ตอบ พิสูจน์โดยใช้เทคนิคจาก [21] เขาเลือกเซตย่อยแบบสุ่ม \(S'\) ของ n จากผู้ใช้รายอื่น คีย์สาธารณะ Pi, คู่คีย์ของเขาเอง (x, P) และคีย์อิมเมจ I ให้ \(0 \leq s \leq n\) เป็นดัชนีลับของผู้ลงนาม ใน S (เพื่อให้รหัสสาธารณะของเขาคือ Ps) เขาสุ่มเลือก {qi | ฉัน = 0 . . . n} และ {wi | ฉัน = 0 . . . n, i ̸= s} จาก (1 . . . l) และใช้ การเปลี่ยนแปลงต่อไปนี้: หลี่ = ( ชี่จี, ถ้าฉัน = ส คิวจี + วิปิ, ถ้าฉัน ̸= ส ริ= ( ฉีHp(Pi) ถ้าฉัน = ส qiHp(Pi) + wiI, ถ้าฉัน ̸= ส ขั้นตอนต่อไปคือการได้รับความท้าทายแบบไม่โต้ตอบ: c = Hs(ม, L1, . . . , Ln, R1, . . . , Rn) ในที่สุดผู้ลงนามจะคำนวณคำตอบ: ซี =    วิ ถ้าฉัน ̸= ส ค - เอ็นพี ผม=0 ci ดัดแปลง ถ้าฉัน = ส ริ = ( ฉี ถ้าฉัน ̸= ส qs −csx ดัดแปลง ถ้าฉัน = ส ผลลัพธ์ลายเซ็นต์คือ \(\sigma\) = (I, c1, . . . , cn, r1, . . . , rn) 9 18 พื้นที่ทั้งหมดนี้เป็นผู้ไม่เชื่อเรื่อง cryptonote เพียงแค่อธิบายอัลกอริธึมลายเซ็นวงแหวนโดยไม่มี อ้างอิงถึงสกุลเงิน ฉันสงสัยว่าสัญกรณ์บางอย่างสอดคล้องกับส่วนที่เหลือของรายงาน แม้ว่า ตัวอย่างเช่น x คือคีย์ลับ "สุ่ม" ที่เลือกใน GEN ซึ่งให้คีย์สาธารณะ P และอิมเมจคีย์สาธารณะ I ค่าของ x นี้คือค่าที่ Bob คำนวณไว้ในตอนที่ 6 หน้า 8 นี่ก็คือ เริ่มคลายความสับสนจากคำอธิบายที่แล้ว นี่มันเจ๋งมาก เงินไม่ได้ถูกโอนจาก "ที่อยู่สาธารณะของอลิซไปยังสาธารณะของ Bob ที่อยู่" กำลังโอนจากที่อยู่แบบครั้งเดียวไปยังที่อยู่แบบครั้งเดียว ในแง่หนึ่ง นี่คือวิธีการทำงานของนักเรียน ถ้าอเล็กซ์มี cryptonotes เพราะใครบางคน ส่งให้พวกเขาไปหาเธอ ซึ่งหมายความว่าเธอมีกุญแจส่วนตัวที่จำเป็นในการส่งให้บ็อบ เธอใช้ การแลกเปลี่ยน Diffie-Hellman โดยใช้ข้อมูลสาธารณะของ Bob เพื่อสร้างที่อยู่แบบครั้งเดียวใหม่ และ cryptonotes จะถูกโอนไปยังที่อยู่นั้น ขณะนี้ เนื่องจากมีการใช้การแลกเปลี่ยน DH (น่าจะปลอดภัย) เพื่อสร้างที่อยู่แบบครั้งเดียวใหม่ ซึ่งอเล็กซ์ส่ง CN ของเธอให้ Bob เป็นคนเดียวที่มีคีย์ส่วนตัวที่จำเป็นในการทำซ้ำ ด้านบน ตอนนี้บ๊อบก็คืออเล็กซ์ http://en.wikipedia.org/wiki/Piecewise#Notation_and_interpretation ผลรวมควรจัดทำดัชนีเหนือ j ไม่ใช่ i แต่ละ c_i เป็นขยะแบบสุ่ม (เนื่องจาก w_i เป็นแบบสุ่ม) ยกเว้นตูด c_iเชื่อมโยงกับรหัสจริงที่เกี่ยวข้องกับลายเซ็นนี้ ค่าของ c คือ a hash ของข้อมูลก่อนหน้านี้ ฉันคิดว่านี่อาจมีการพิมพ์ผิดที่แย่กว่าการใช้ดัชนี 'i' อีกครั้งเพราะดูเหมือนว่า c_s โดยปริยาย, ไม่ชัดเจน, กำหนดไว้. อันที่จริง หากเราใช้สมการนี้โดยอาศัยศรัทธา เราจะตัดสินว่า c_s = (1/2)c - (1/2) sum_i neq s c_i นั่นคือ hash ลบตัวเลขสุ่มทั้งกลุ่ม ในทางกลับกัน หากการรวมนี้ตั้งใจให้อ่าน "c_s = (c - sum_j neq s c_j) mod l" จากนั้นเราจะนำ hash จากข้อมูลก่อนหน้าของเรามาสร้างตัวเลขสุ่มจำนวนหนึ่ง ลบตัวเลขสุ่มเหล่านั้นทั้งหมดของ hash และนั่นทำให้เรา c_s ดูเหมือนว่าจะเป็นเช่นนั้น สิ่งที่ "ควร" เกิดขึ้นตามสัญชาตญาณของฉัน และตรงกับขั้นตอนการตรวจสอบในหน้า 10 แต่สัญชาตญาณไม่ใช่คณิตศาสตร์ ฉันจะเจาะลึกเรื่องนี้ เหมือนเมื่อก่อน; ทั้งหมดนี้จะเป็นขยะแบบสุ่ม ยกเว้นอันที่เกี่ยวข้องกับของจริง กุญแจสาธารณะของผู้ลงนาม x ยกเว้นครั้งนี้ นี่คือสิ่งที่ฉันคาดหวังจากโครงสร้างมากกว่านี้: r_i เป็นการสุ่มสำหรับ i!=s และ r_s ถูกกำหนดโดยค่าลับ x และค่าดัชนี s ของ q_i และ c_i

VER: ผู้ตรวจสอบจะตรวจสอบลายเซ็นโดยใช้การแปลงแบบผกผัน: ( ล' ฉัน = riG + ciPi อาร์' i = riHp(Pi) + ciI สุดท้าย ผู้ตรวจสอบจะตรวจสอบว่า เอ็นพี ผม=0 ci ?= Hs(ม, L′ 0, . . . , ล' เอ็น, ร' 0, . . . , ร' ก) ม็อด ล หากความเท่าเทียมกันนี้ถูกต้อง ผู้ตรวจสอบจะรันอัลกอริทึม LNK มิฉะนั้นผู้ตรวจสอบจะปฏิเสธ ลายเซ็น LNK: ผู้ตรวจสอบจะตรวจสอบว่าฉันถูกใช้ในลายเซ็นที่ผ่านมาหรือไม่ (ค่าเหล่านี้จะถูกเก็บไว้ในไฟล์ ตั้งฉัน) การใช้งานหลายครั้งหมายความว่ามีการสร้างลายเซ็นสองรายการภายใต้รหัสลับเดียวกัน ความหมายของระเบียบการ: โดยการใช้การแปลงรูปตัว L ผู้ลงนามจะพิสูจน์ว่าเขารู้ x ดังกล่าว โดยที่อย่างน้อยหนึ่ง Pi = xG เพื่อให้การพิสูจน์นี้ไม่สามารถทำซ้ำได้ เราจึงแนะนำอิมเมจหลัก เนื่องจาก I = xHp(P) ผู้ลงนามใช้ coefficients เดียวกัน (ri, ci) เพื่อพิสูจน์ข้อความที่เกือบจะเหมือนกัน: เขารู้ x อย่างน้อยหนึ่ง \(H_p(P_i) = I \cdot x^{-1}\) หากการแมป \(x \to I\) เป็นการเติม: 1. ไม่มีใครสามารถกู้คืนคีย์สาธารณะจากอิมเมจคีย์และระบุผู้ลงนามได้ 2. ผู้ลงนามไม่สามารถลงนามสองลายเซ็นที่มี I ต่างกันและมี x เหมือนกันได้ การวิเคราะห์ความปลอดภัยฉบับสมบูรณ์มีให้ไว้ในภาคผนวก A 4.5 ธุรกรรม CryptoNote มาตรฐาน ด้วยการรวมทั้งสองวิธีเข้าด้วยกัน (กุญแจสาธารณะที่ไม่สามารถเชื่อมโยงได้และลายเซ็นวงแหวนที่ไม่สามารถติดตามได้) Bob ประสบความสำเร็จ ระดับความเป็นส่วนตัวใหม่เมื่อเปรียบเทียบกับแผน Bitcoin ดั้งเดิม มันต้องการให้เขาเก็บเท่านั้น หนึ่งคีย์ส่วนตัว (a, b) และเผยแพร่ (A, B) เพื่อเริ่มรับและส่งธุรกรรมที่ไม่ระบุชื่อ ในขณะที่ตรวจสอบความถูกต้องของธุรกรรมแต่ละรายการ Bob ยังทำการคูณเส้นโค้งวงรีเพียงสองครั้งและบวกอีกหนึ่งรายการต่อเอาต์พุตเพื่อตรวจสอบว่าธุรกรรมเป็นของเขาหรือไม่ สำหรับเขาทุกๆ เอาต์พุต Bob กู้คืนคู่คีย์แบบครั้งเดียว (pi, Pi) และเก็บไว้ในกระเป๋าเงินของเขา อินพุตใดก็ได้ ได้รับการพิสูจน์โดยสถานการณ์ว่ามีเจ้าของคนเดียวกันก็ต่อเมื่อปรากฏในการทำธุรกรรมครั้งเดียว ใน ความจริงแล้วความสัมพันธ์นี้สร้างได้ยากกว่ามากเนื่องจากการลงนามแหวนเพียงครั้งเดียว ด้วยลายเซ็นต์ของแหวน Bob สามารถซ่อนทุกอินพุตระหว่างของคนอื่นได้อย่างมีประสิทธิภาพ เป็นไปได้ทั้งหมด ผู้ใช้จ่ายจะสวมใส่ได้ แม้แต่เจ้าของคนก่อน (อลิซ) ก็ไม่มีข้อมูลมากไปกว่านั้น ผู้สังเกตการณ์คนใดคนหนึ่ง เมื่อลงนามในธุรกรรมของเขา Bob จะระบุเอาต์พุตต่างประเทศด้วยจำนวนเดียวกันกับของเขา เอาท์พุทผสมทั้งหมดโดยไม่ต้องมีส่วนร่วมของผู้ใช้รายอื่น บ๊อบเอง (เช่นเดียวกับ ใครก็ตาม) ไม่ทราบว่าได้ใช้การชำระเงินเหล่านี้ไปแล้วหรือไม่: สามารถใช้เอาต์พุตได้ ลายเซ็นหลายพันลายเซ็นถือเป็นปัจจัยแห่งความคลุมเครือและไม่เคยตกเป็นเป้าหมายของการซ่อนตัว ดับเบิ้ล การตรวจสอบการใช้จ่ายเกิดขึ้นในเฟส LNK เมื่อตรวจสอบกับชุดอิมเมจหลักที่ใช้ บ๊อบสามารถเลือกระดับความคลุมเครือได้ด้วยตัวเอง: n = 1 หมายความว่าความน่าจะเป็นที่เขามี ใช้เอาท์พุตคือความน่าจะเป็น 50%, n = 99 ให้ 1% ขนาดของลายเซ็นผลลัพธ์จะเพิ่มขึ้น เชิงเส้นตรงเท่ากับ O(n+1) ดังนั้นการปรับปรุงการไม่เปิดเผยตัวตนจะมีค่าใช้จ่ายค่าธรรมเนียมการทำธุรกรรมเพิ่มเติมของ Bob เขายังสามารถ ตั้งค่า n = 0 และทำให้ลายเซ็นวงแหวนของเขาประกอบด้วยองค์ประกอบเดียวเท่านั้น อย่างไรก็ตาม สิ่งนี้จะเกิดขึ้นทันที เผยให้เห็นว่าเขาเป็นคนใช้จ่าย 10 VER: ผู้ตรวจสอบจะตรวจสอบลายเซ็นโดยใช้การแปลงแบบผกผัน: ( ล' ฉัน = riG + ciPi อาร์' i = riHp(Pi) + ciI สุดท้าย ผู้ตรวจสอบจะตรวจสอบว่า เอ็นพี ผม=0 ci ?= Hs(ม, L′ 0, . . . , ล' เอ็น, ร' 0, . . . , ร' ก) ม็อด ล หากความเท่าเทียมกันนี้ถูกต้อง ผู้ตรวจสอบจะรันอัลกอริทึม LNK มิฉะนั้นผู้ตรวจสอบจะปฏิเสธ ลายเซ็น LNK: ผู้ตรวจสอบจะตรวจสอบว่าฉันถูกใช้ในลายเซ็นที่ผ่านมาหรือไม่ (ค่าเหล่านี้จะถูกเก็บไว้ในไฟล์ ตั้งฉัน) การใช้งานหลายครั้งหมายความว่ามีการสร้างลายเซ็นสองรายการภายใต้รหัสลับเดียวกัน ความหมายของระเบียบการ: โดยการใช้การแปลงรูปตัว L ผู้ลงนามจะพิสูจน์ว่าเขารู้ x ดังกล่าว โดยที่อย่างน้อยหนึ่ง Pi = xG เพื่อให้การพิสูจน์นี้ไม่สามารถทำซ้ำได้ เราจึงแนะนำอิมเมจหลัก เนื่องจาก I = xHp(P) ผู้ลงนามใช้ coefficients เดียวกัน (ri, ci) เพื่อพิสูจน์ข้อความที่เกือบจะเหมือนกัน: เขารู้ x อย่างน้อยหนึ่ง \(H_p(P_i) = I \cdot x^{-1}\) หากการแมป \(x \to I\) เป็นการเติม: 1. ไม่มีใครสามารถกู้คืนคีย์สาธารณะจากอิมเมจคีย์และระบุผู้ลงนามได้ 2. ผู้ลงนามไม่สามารถลงนามสองลายเซ็นที่มี I ต่างกันและมี x เหมือนกันได้ การวิเคราะห์ความปลอดภัยฉบับสมบูรณ์มีให้ไว้ในภาคผนวก A 4.5 ธุรกรรม CryptoNote มาตรฐาน ด้วยการรวมทั้งสองวิธีเข้าด้วยกัน (กุญแจสาธารณะที่ไม่สามารถเชื่อมโยงได้และลายเซ็นวงแหวนที่ไม่สามารถติดตามได้) Bob ประสบความสำเร็จ ระดับความเป็นส่วนตัวใหม่เมื่อเปรียบเทียบกับแผน Bitcoin ดั้งเดิม มันต้องการให้เขาเก็บเท่านั้น หนึ่งคีย์ส่วนตัว (a, b) และเผยแพร่ (A, B) เพื่อเริ่มรับและส่งธุรกรรมที่ไม่ระบุชื่อ ในขณะที่ตรวจสอบความถูกต้องของธุรกรรมแต่ละรายการ Bob ยังทำการคูณเส้นโค้งวงรีเพียงสองครั้งและบวกอีกหนึ่งรายการต่อเอาต์พุตเพื่อตรวจสอบว่าธุรกรรมเป็นของเขาหรือไม่ สำหรับเขาทุกๆ เอาต์พุต Bob กู้คืนคู่คีย์แบบครั้งเดียว (pi, Pi) และ stแร่มันอยู่ในกระเป๋าเงินของเขา อินพุตใดก็ได้ ได้รับการพิสูจน์โดยสถานการณ์ว่ามีเจ้าของคนเดียวกันก็ต่อเมื่อปรากฏในการทำธุรกรรมครั้งเดียว ใน ความจริงแล้วความสัมพันธ์นี้สร้างได้ยากกว่ามากเนื่องจากการลงนามแหวนเพียงครั้งเดียว ด้วยลายเซ็นต์ของแหวน Bob สามารถซ่อนทุกอินพุตระหว่างของคนอื่นได้อย่างมีประสิทธิภาพ เป็นไปได้ทั้งหมด ผู้ใช้จ่ายจะสวมใส่ได้ แม้แต่เจ้าของคนก่อน (อลิซ) ก็ไม่มีข้อมูลมากไปกว่านั้น ผู้สังเกตการณ์คนใดคนหนึ่ง เมื่อลงนามในธุรกรรมของเขา Bob จะระบุเอาต์พุตต่างประเทศด้วยจำนวนเดียวกันกับของเขา เอาท์พุทผสมทั้งหมดโดยไม่ต้องมีส่วนร่วมของผู้ใช้รายอื่น บ๊อบเอง (เช่นเดียวกับ ใครก็ตาม) ไม่ทราบว่าได้ใช้การชำระเงินเหล่านี้ไปแล้วหรือไม่: สามารถใช้เอาต์พุตได้ ลายเซ็นหลายพันลายเซ็นถือเป็นปัจจัยแห่งความคลุมเครือและไม่เคยตกเป็นเป้าหมายของการซ่อนตัว ดับเบิ้ล การตรวจสอบการใช้จ่ายเกิดขึ้นในเฟส LNK เมื่อตรวจสอบกับชุดอิมเมจหลักที่ใช้ บ๊อบสามารถเลือกระดับความคลุมเครือได้ด้วยตัวเอง: n = 1 หมายความว่าความน่าจะเป็นที่เขามี ใช้เอาท์พุตคือความน่าจะเป็น 50%, n = 99 ให้ 1% ขนาดของลายเซ็นผลลัพธ์จะเพิ่มขึ้น เชิงเส้นตรงเท่ากับ O(n+1) ดังนั้นการปรับปรุงการไม่เปิดเผยตัวตนจะมีค่าใช้จ่ายค่าธรรมเนียมการทำธุรกรรมเพิ่มเติมของ Bob เขายังสามารถ ตั้งค่า n = 0 และทำให้ลายเซ็นวงแหวนของเขาประกอบด้วยองค์ประกอบเดียวเท่านั้น อย่างไรก็ตาม สิ่งนี้จะเกิดขึ้นทันที เผยให้เห็นว่าเขาเป็นคนใช้จ่าย 10 19 เมื่อมาถึงจุดนี้ฉันสับสนมาก Alex ได้รับข้อความ M พร้อมลายเซ็น (I,c_1, ..., c_n, r_1, ..., r_n) และรายชื่อสาธารณะ คีย์ เอส และเธอวิ่ง VER สิ่งนี้จะคำนวณ L_i’ และ R_i’ สิ่งนี้ยืนยันว่า c_s = c - sum_i neq s c_i ในหน้าก่อนหน้า ตอนแรกฉันรู้สึกสับสนมาก (ฮ่า) ใครๆ ก็สามารถคำนวณ L_i’ และ R_i’ ได้ แท้จริงแล้วแต่ละ r_i และ c_i ได้รับการเผยแพร่ในลายเซ็นแล้ว ซิกมาพร้อมกับค่าสำหรับ I เซต S = P_i ของกุญแจสาธารณะทั้งหมดก็ได้รับการเผยแพร่เช่นกัน ดังนั้นใครที่ได้ดูซิกม่าและเซ็ตของ คีย์ S = P_i จะได้รับค่าเดียวกันสำหรับ L_i’ และ R_i’ ดังนั้นให้ตรวจสอบลายเซ็น แต่แล้วฉันก็จำได้ว่าส่วนนี้เป็นเพียงการอธิบายอัลกอริธึมลายเซ็น ไม่ใช่ "ตรวจสอบ หากลงนามแล้ว ให้ตรวจสอบว่าส่งถึงฉันหรือไม่ และหากเป็นเช่นนั้น ก็ให้ใช้เงิน" นี่เป็นเพียง ส่วนหนึ่งของเกมอันเป็นเอกลักษณ์ ฉันสนใจที่จะอ่านภาคผนวก A เมื่อไปถึงที่นั่นในที่สุด ฉันต้องการดูการเปรียบเทียบการดำเนินการโดยเต็มรูปแบบของ Cryptonote กับ Bitcoin อีกทั้งไฟฟ้า/ความยั่งยืน อัลกอริธึมส่วนใดที่ประกอบขึ้นเป็น "อินพุต" ที่นี่ ฉันเชื่อว่าอินพุตธุรกรรมคือจำนวนเงินและชุดของ UTXOs ที่รวมกันเป็นจำนวนที่มากกว่า จำนวน. สิ่งนี้ไม่ชัดเจน “เป้าหมายในการซ่อนตัว?” ฉันคิดเกี่ยวกับเรื่องนี้มาสองสามนาทีแล้วและฉันก็ยังไม่ได้ ความคิดที่คลุมเครือที่สุดว่ามันอาจหมายถึงอะไร การโจมตีแบบใช้จ่ายสองครั้งสามารถทำได้โดยการจัดการคีย์ที่ใช้ที่รับรู้ของโหนดเท่านั้น ชุดรูปภาพ \(I\) "ระดับความคลุมเครือ" = n แต่จำนวนกุญแจสาธารณะทั้งหมดที่รวมอยู่ในธุรกรรมคือ n+1 กล่าวคือ ระดับความกำกวมจะเป็น "คุณต้องการให้มีบุคคลอื่นอีกกี่คน" ฝูงชน?” คำตอบน่าจะเป็น "ให้มากที่สุด" โดยค่าเริ่มต้น

VER: ผู้ตรวจสอบจะตรวจสอบลายเซ็นโดยใช้การแปลงแบบผกผัน: ( ล' ฉัน = riG + ciPi อาร์' i = riHp(Pi) + ciI สุดท้าย ผู้ตรวจสอบจะตรวจสอบว่า เอ็นพี ผม=0 ci ?= Hs(ม, L′ 0, . . . , ล' เอ็น, ร' 0, . . . , ร' ก) ม็อด ล หากความเท่าเทียมกันนี้ถูกต้อง ผู้ตรวจสอบจะรันอัลกอริทึม LNK มิฉะนั้นผู้ตรวจสอบจะปฏิเสธ ลายเซ็น LNK: ผู้ตรวจสอบจะตรวจสอบว่าฉันถูกใช้ในลายเซ็นที่ผ่านมาหรือไม่ (ค่าเหล่านี้จะถูกเก็บไว้ในไฟล์ ตั้งฉัน) การใช้งานหลายครั้งหมายความว่ามีการสร้างลายเซ็นสองรายการภายใต้รหัสลับเดียวกัน ความหมายของระเบียบการ: โดยการใช้การแปลงรูปตัว L ผู้ลงนามจะพิสูจน์ว่าเขารู้ x ดังกล่าว โดยที่อย่างน้อยหนึ่ง Pi = xG เพื่อให้การพิสูจน์นี้ไม่สามารถทำซ้ำได้ เราจึงแนะนำอิมเมจหลัก เนื่องจาก I = xHp(P) ผู้ลงนามใช้ coefficients เดียวกัน (ri, ci) เพื่อพิสูจน์ข้อความที่เกือบจะเหมือนกัน: เขารู้ x อย่างน้อยหนึ่ง \(H_p(P_i) = I \cdot x^{-1}\) หากการแมป \(x \to I\) เป็นการเติม: 1. ไม่มีใครสามารถกู้คืนคีย์สาธารณะจากอิมเมจคีย์และระบุผู้ลงนามได้ 2. ผู้ลงนามไม่สามารถลงนามสองลายเซ็นที่มี I ต่างกันและมี x เหมือนกันได้ การวิเคราะห์ความปลอดภัยฉบับสมบูรณ์มีให้ไว้ในภาคผนวก A 4.5 ธุรกรรม CryptoNote มาตรฐาน ด้วยการรวมทั้งสองวิธีเข้าด้วยกัน (กุญแจสาธารณะที่ไม่สามารถเชื่อมโยงได้และลายเซ็นวงแหวนที่ไม่สามารถติดตามได้) Bob ประสบความสำเร็จ ระดับความเป็นส่วนตัวใหม่เมื่อเปรียบเทียบกับแผน Bitcoin ดั้งเดิม มันต้องการให้เขาเก็บเท่านั้น หนึ่งคีย์ส่วนตัว (a, b) และเผยแพร่ (A, B) เพื่อเริ่มรับและส่งธุรกรรมที่ไม่ระบุชื่อ ในขณะที่ตรวจสอบความถูกต้องของธุรกรรมแต่ละรายการ Bob ยังทำการคูณเส้นโค้งวงรีเพียงสองครั้งและบวกอีกหนึ่งรายการต่อเอาต์พุตเพื่อตรวจสอบว่าธุรกรรมเป็นของเขาหรือไม่ สำหรับเขาทุกๆ เอาต์พุต Bob กู้คืนคู่คีย์แบบครั้งเดียว (pi, Pi) และเก็บไว้ในกระเป๋าเงินของเขา อินพุตใดก็ได้ ได้รับการพิสูจน์โดยสถานการณ์ว่ามีเจ้าของคนเดียวกันก็ต่อเมื่อปรากฏในการทำธุรกรรมครั้งเดียว ใน ความจริงแล้วความสัมพันธ์นี้สร้างได้ยากกว่ามากเนื่องจากการลงนามแหวนเพียงครั้งเดียว ด้วยลายเซ็นต์ของแหวน Bob สามารถซ่อนทุกอินพุตระหว่างของคนอื่นได้อย่างมีประสิทธิภาพ เป็นไปได้ทั้งหมด ผู้ใช้จ่ายจะสวมใส่ได้ แม้แต่เจ้าของคนก่อน (อลิซ) ก็ไม่มีข้อมูลมากไปกว่านั้น ผู้สังเกตการณ์คนใดคนหนึ่ง เมื่อลงนามในธุรกรรมของเขา Bob จะระบุเอาต์พุตต่างประเทศด้วยจำนวนเดียวกันกับของเขา เอาท์พุทผสมทั้งหมดโดยไม่ต้องมีส่วนร่วมของผู้ใช้รายอื่น บ๊อบเอง (เช่นเดียวกับ ใครก็ตาม) ไม่ทราบว่าได้ใช้การชำระเงินเหล่านี้ไปแล้วหรือไม่: สามารถใช้เอาต์พุตได้ ลายเซ็นหลายพันลายเซ็นถือเป็นปัจจัยแห่งความคลุมเครือและไม่เคยตกเป็นเป้าหมายของการซ่อนตัว ดับเบิ้ล การตรวจสอบการใช้จ่ายเกิดขึ้นในเฟส LNK เมื่อตรวจสอบกับชุดอิมเมจหลักที่ใช้ บ๊อบสามารถเลือกระดับความคลุมเครือได้ด้วยตัวเอง: n = 1 หมายความว่าความน่าจะเป็นที่เขามี ใช้เอาท์พุตคือความน่าจะเป็น 50%, n = 99 ให้ 1% ขนาดของลายเซ็นผลลัพธ์จะเพิ่มขึ้น เชิงเส้นตรงเท่ากับ O(n+1) ดังนั้นการปรับปรุงการไม่เปิดเผยตัวตนจะมีค่าใช้จ่ายค่าธรรมเนียมการทำธุรกรรมเพิ่มเติมของ Bob เขายังสามารถ ตั้งค่า n = 0 และทำให้ลายเซ็นวงแหวนของเขาประกอบด้วยองค์ประกอบเดียวเท่านั้น อย่างไรก็ตาม สิ่งนี้จะเกิดขึ้นทันที เผยให้เห็นว่าเขาเป็นคนใช้จ่าย 10 VER: ผู้ตรวจสอบจะตรวจสอบลายเซ็นโดยใช้การแปลงแบบผกผัน: ( ล' ฉัน = riG + ciPi อาร์' i = riHp(Pi) + ciI สุดท้าย ผู้ตรวจสอบจะตรวจสอบว่า เอ็นพี ผม=0 ci ?= Hs(ม, L′ 0, . . . , ล' เอ็น, ร' 0, . . . , ร' ก) ม็อด ล หากความเท่าเทียมกันนี้ถูกต้อง ผู้ตรวจสอบจะรันอัลกอริทึม LNK มิฉะนั้นผู้ตรวจสอบจะปฏิเสธ ลายเซ็น LNK: ผู้ตรวจสอบจะตรวจสอบว่าฉันถูกใช้ในลายเซ็นที่ผ่านมาหรือไม่ (ค่าเหล่านี้จะถูกเก็บไว้ในไฟล์ ตั้งฉัน) การใช้งานหลายครั้งหมายความว่ามีการสร้างลายเซ็นสองรายการภายใต้รหัสลับเดียวกัน ความหมายของระเบียบการ: โดยการใช้การแปลงรูปตัว L ผู้ลงนามจะพิสูจน์ว่าเขารู้ x ดังกล่าว โดยที่อย่างน้อยหนึ่ง Pi = xG เพื่อให้การพิสูจน์นี้ไม่สามารถทำซ้ำได้ เราจึงแนะนำอิมเมจหลัก เนื่องจาก I = xHp(P) ผู้ลงนามใช้ coefficients เดียวกัน (ri, ci) เพื่อพิสูจน์ข้อความที่เกือบจะเหมือนกัน: เขารู้ x อย่างน้อยหนึ่ง \(H_p(P_i) = I \cdot x^{-1}\) หากการแมป \(x \to I\) เป็นการเติม: 1. ไม่มีใครสามารถกู้คืนคีย์สาธารณะจากอิมเมจคีย์และระบุผู้ลงนามได้ 2. ผู้ลงนามไม่สามารถลงนามสองลายเซ็นที่มี I ต่างกันและมี x เหมือนกันได้ การวิเคราะห์ความปลอดภัยฉบับสมบูรณ์มีให้ไว้ในภาคผนวก A 4.5 ธุรกรรม CryptoNote มาตรฐาน ด้วยการรวมทั้งสองวิธีเข้าด้วยกัน (กุญแจสาธารณะที่ไม่สามารถเชื่อมโยงได้และลายเซ็นวงแหวนที่ไม่สามารถติดตามได้) Bob ประสบความสำเร็จ ระดับความเป็นส่วนตัวใหม่เมื่อเปรียบเทียบกับแผน Bitcoin ดั้งเดิม มันต้องการให้เขาเก็บเท่านั้น หนึ่งคีย์ส่วนตัว (a, b) และเผยแพร่ (A, B) เพื่อเริ่มรับและส่งธุรกรรมที่ไม่ระบุชื่อ ในขณะที่ตรวจสอบความถูกต้องของธุรกรรมแต่ละรายการ Bob ยังทำการคูณเส้นโค้งวงรีเพียงสองครั้งและบวกอีกหนึ่งรายการต่อเอาต์พุตเพื่อตรวจสอบว่าธุรกรรมเป็นของเขาหรือไม่ สำหรับเขาทุกๆ เอาต์พุต Bob กู้คืนคู่คีย์แบบครั้งเดียว (pi, Pi) และ stแร่มันอยู่ในกระเป๋าเงินของเขา อินพุตใดก็ได้ ได้รับการพิสูจน์โดยสถานการณ์ว่ามีเจ้าของคนเดียวกันก็ต่อเมื่อปรากฏในการทำธุรกรรมครั้งเดียว ใน ความจริงแล้วความสัมพันธ์นี้สร้างได้ยากกว่ามากเนื่องจากการลงนามแหวนเพียงครั้งเดียว ด้วยลายเซ็นต์ของแหวน Bob สามารถซ่อนทุกอินพุตระหว่างของคนอื่นได้อย่างมีประสิทธิภาพ เป็นไปได้ทั้งหมด ผู้ใช้จ่ายจะสวมใส่ได้ แม้แต่เจ้าของคนก่อน (อลิซ) ก็ไม่มีข้อมูลมากไปกว่านั้น ผู้สังเกตการณ์คนใดคนหนึ่ง เมื่อลงนามในธุรกรรมของเขา Bob จะระบุเอาต์พุตต่างประเทศด้วยจำนวนเดียวกันกับของเขา เอาท์พุทผสมทั้งหมดโดยไม่ต้องมีส่วนร่วมของผู้ใช้รายอื่น บ๊อบเอง (เช่นเดียวกับ ใครก็ตาม) ไม่ทราบว่าได้ใช้การชำระเงินเหล่านี้ไปแล้วหรือไม่: สามารถใช้เอาต์พุตได้ ลายเซ็นหลายพันลายเซ็นถือเป็นปัจจัยแห่งความคลุมเครือและไม่เคยตกเป็นเป้าหมายของการซ่อนตัว ดับเบิ้ล การตรวจสอบการใช้จ่ายเกิดขึ้นในเฟส LNK เมื่อตรวจสอบกับชุดอิมเมจหลักที่ใช้ บ๊อบสามารถเลือกระดับความคลุมเครือได้ด้วยตัวเอง: n = 1 หมายความว่าความน่าจะเป็นที่เขามี ใช้เอาท์พุตคือความน่าจะเป็น 50%, n = 99 ให้ 1% ขนาดของลายเซ็นผลลัพธ์จะเพิ่มขึ้น เชิงเส้นตรงเท่ากับ O(n+1) ดังนั้นการปรับปรุงการไม่เปิดเผยตัวตนจะมีค่าใช้จ่ายค่าธรรมเนียมการทำธุรกรรมเพิ่มเติมของ Bob เขายังสามารถ ตั้งค่า n = 0 และทำให้ลายเซ็นวงแหวนของเขาประกอบด้วยองค์ประกอบเดียวเท่านั้น อย่างไรก็ตาม สิ่งนี้จะเกิดขึ้นทันที เผยให้เห็นว่าเขาเป็นคนใช้จ่าย 10 20 สิ่งนี้น่าสนใจ ก่อนหน้านี้ เราได้จัดเตรียมช่องทางให้ผู้รับ Bob เพื่อทำการ INCOMING ทั้งหมด ธุรกรรมที่ไม่สามารถยกเลิกการเชื่อมโยงได้โดยการเลือกครึ่งหนึ่งของคีย์ส่วนตัวของเขาตามที่กำหนดหรือโดย เผยแพร่คีย์ส่วนตัวของเขาครึ่งหนึ่งเป็นสาธารณะ นี่เป็นนโยบายประเภทที่ไม่มีการย้อนกลับ ที่นี่เราเห็น วิธีการของผู้ส่ง Alex ในการเลือกธุรกรรมขาออกรายการเดียวที่สามารถเชื่อมโยงได้ แต่ในความเป็นจริงแล้ว เผยอเล็กซ์เป็นผู้ส่งทั้งเครือข่าย นี่ไม่ใช่นโยบายประเภทที่ไม่มีการย้อนกลับ นี่คือธุรกรรมต่อธุรกรรม มีนโยบายที่สามหรือไม่? Bob ผู้รับสามารถสร้างรหัสการชำระเงินเฉพาะสำหรับ Alex ได้หรือไม่ ไม่เคยเปลี่ยนแปลง บางทีอาจใช้การแลกเปลี่ยน Diffie-Hellman? หากใครรวมการชำระเงินนั้นไว้ด้วย รหัสที่รวมไว้ที่ไหนสักแห่งในการทำธุรกรรมของเธอไปยังที่อยู่ของ Bob นั้นต้องมาจากอเล็กซ์ ด้วยวิธีนี้ อเล็กซ์ไม่จำเป็นต้องเปิดเผยตัวเองต่อทั้งเครือข่ายโดยเลือกที่จะเชื่อมโยงเครือข่ายใดเครือข่ายหนึ่งโดยเฉพาะ ทำธุรกรรม แต่เธอยังคงสามารถระบุตัวเองกับบุคคลที่เธอส่งเงินให้ได้ นี่ไม่ใช่สิ่งที่ Poloniex ทำใช่ไหม

การทำธุรกรรม อินพุต TX เอาท์พุต0 . . . เอาท์พุต . . . เอาท์พุต รูปภาพที่สำคัญ ลายเซ็น ลายเซ็นต์แหวน กุญแจปลายทาง เอาท์พุต1 กุญแจปลายทาง เอาท์พุต ธุรกรรมต่างประเทศ เอาต์พุตของผู้ส่ง กุญแจปลายทาง คู่กุญแจแบบครั้งเดียว ครั้งเดียว รหัสส่วนตัว ผม = xHp(P) พี,เอ็กซ์ รูปที่ 7 การสร้างลายเซ็น Ring ในธุรกรรมมาตรฐาน 5 หลักฐานการทำงานที่เท่าเทียมกัน ในส่วนนี้เราขอเสนอและวางอัลกอริทึม proof-of-work ใหม่ เป้าหมายหลักของเรา คือการปิดช่องว่างระหว่าง CPU (ส่วนใหญ่) และ GPU/FPGA/ASIC (ชนกลุ่มน้อย) ผู้ขุด มันคือ เหมาะสมที่ผู้ใช้บางคนสามารถมีข้อได้เปรียบเหนือผู้อื่นได้ แต่การลงทุนของพวกเขา ควรจะเติบโตอย่างน้อยเป็นเส้นตรงตามกำลัง โดยทั่วไปแล้ว การผลิตอุปกรณ์ที่มีวัตถุประสงค์พิเศษ จะต้องมีกำไรน้อยที่สุด 5.1 ผลงานที่เกี่ยวข้อง โปรโตคอล Bitcoin proof-of-work ดั้งเดิมใช้ฟังก์ชันการกำหนดราคาที่เน้น CPU SHA-256 โดยส่วนใหญ่ประกอบด้วยตัวดำเนินการเชิงตรรกะขั้นพื้นฐานและอาศัยความเร็วในการคำนวณเท่านั้น โปรเซสเซอร์จึงเหมาะอย่างยิ่งสำหรับการใช้งานแบบมัลติคอร์/สายพานลำเลียง อย่างไรก็ตาม คอมพิวเตอร์สมัยใหม่ไม่ได้ถูกจำกัดด้วยจำนวนการทำงานต่อวินาทีเพียงอย่างเดียว แต่ยังตามขนาดหน่วยความจำด้วย แม้ว่าโปรเซสเซอร์บางตัวอาจเร็วกว่าตัวประมวลผลอื่นอย่างมาก [8] ขนาดหน่วยความจำมีโอกาสน้อยที่จะแตกต่างกันระหว่างเครื่อง ฟังก์ชันราคาที่ผูกกับหน่วยความจำถูกนำมาใช้ครั้งแรกโดย Abadi และคณะ และถูกกำหนดให้เป็น “ฟังก์ชันที่เวลาในการคำนวณถูกครอบงำโดยเวลาที่ใช้ในการเข้าถึงหน่วยความจำ” [15] แนวคิดหลักคือการสร้างอัลกอริทึมที่จัดสรรบล็อกข้อมูลขนาดใหญ่ (“scratchpad”) ภายในหน่วยความจำที่สามารถเข้าถึงได้ค่อนข้างช้า (เช่น RAM) และ "การเข้าถึงไฟล์ ลำดับตำแหน่งที่คาดเดาไม่ได้” ภายในนั้น บล็อกควรมีขนาดใหญ่พอที่จะเก็บรักษาได้ ข้อมูลที่ได้เปรียบมากกว่าการคำนวณใหม่สำหรับการเข้าถึงแต่ละครั้ง อัลกอริทึมก็ควรเช่นกัน ป้องกันการขนานภายใน ดังนั้นเธรดพร้อมกัน N ควรต้องใช้หน่วยความจำเพิ่มขึ้น N เท่า ในครั้งเดียว Dwork และคณะ [22] ตรวจสอบและทำให้แนวทางนี้เป็นทางการ ซึ่งทำให้พวกเขาเสนอแนะแนวทางอื่น ตัวแปรของฟังก์ชันการกำหนดราคา: "Mbound" อีกหนึ่งงานเป็นของ F. Coelho [20] ใคร 11 การทำธุรกรรม อินพุต TX เอาท์พุต0 . . . เอาท์พุต . . . เอาท์พุต รูปภาพที่สำคัญ ลายเซ็น ลายเซ็นต์แหวน กุญแจปลายทาง เอาท์พุต1 กุญแจปลายทาง เอาท์พุต ธุรกรรมต่างประเทศ เอาต์พุตของผู้ส่ง กุญแจปลายทาง คู่กุญแจแบบครั้งเดียว ครั้งเดียว รหัสส่วนตัว ผม = xHp(P) พี,เอ็กซ์ รูปที่ 7 การสร้างลายเซ็น Ring ในธุรกรรมมาตรฐาน 5 หลักฐานการทำงานที่เท่าเทียมกัน ในส่วนนี้เราขอเสนอและวางอัลกอริทึม proof-of-work ใหม่ เป้าหมายหลักของเรา คือการปิดช่องว่างระหว่าง CPU (ส่วนใหญ่) และ GPU/FPGA/ASIC (ชนกลุ่มน้อย) ผู้ขุด มันคือ เหมาะสมที่ผู้ใช้บางคนสามารถมีข้อได้เปรียบเหนือผู้อื่นได้ แต่การลงทุนของพวกเขา ควรจะเติบโตอย่างน้อยเป็นเส้นตรงตามกำลัง โดยทั่วไปแล้ว การผลิตอุปกรณ์ที่มีวัตถุประสงค์พิเศษ จะต้องมีกำไรน้อยที่สุด 5.1 ผลงานที่เกี่ยวข้อง โปรโตคอล Bitcoin proof-of-work ดั้งเดิมใช้ฟังก์ชันการกำหนดราคาที่เน้น CPU SHA-256 โดยส่วนใหญ่ประกอบด้วยตัวดำเนินการเชิงตรรกะขั้นพื้นฐานและอาศัยความเร็วในการคำนวณเท่านั้น โปรเซสเซอร์จึงเหมาะอย่างยิ่งสำหรับการใช้งานแบบมัลติคอร์/สายพานลำเลียง อย่างไรก็ตาม คอมพิวเตอร์สมัยใหม่ไม่ได้ถูกจำกัดด้วยจำนวนการทำงานต่อวินาทีเพียงอย่างเดียว แต่ยังตามขนาดหน่วยความจำด้วย แม้ว่าโปรเซสเซอร์บางตัวอาจเร็วกว่าโปรเซสเซอร์ตัวอื่นอย่างมาก [8] ขนาดหน่วยความจำมีโอกาสน้อยที่จะแตกต่างกันระหว่างเครื่อง ฟังก์ชันราคาที่ผูกกับหน่วยความจำถูกนำมาใช้ครั้งแรกโดย Abadi และคณะ และถูกกำหนดให้เป็น “ฟังก์ชันที่เวลาในการคำนวณถูกครอบงำโดยเวลาที่ใช้ในการเข้าถึงหน่วยความจำ” [15] แนวคิดหลักคือการสร้างอัลกอริทึมที่จัดสรรบล็อกข้อมูลขนาดใหญ่ (“scratchpad”) ภายในหน่วยความจำที่สามารถเข้าถึงได้ค่อนข้างช้า (เช่น RAM) และ "การเข้าถึงไฟล์ ลำดับตำแหน่งที่คาดเดาไม่ได้” ภายในนั้น บล็อกควรมีขนาดใหญ่พอที่จะเก็บรักษาได้ ข้อมูลที่ได้เปรียบมากกว่าการคำนวณใหม่สำหรับการเข้าถึงแต่ละครั้ง อัลกอริทึมก็ควรเช่นกัน ป้องกันการขนานภายใน ดังนั้นเธรดพร้อมกัน N ควรต้องใช้หน่วยความจำเพิ่มขึ้น N เท่า ในครั้งเดียว Dwork และคณะ [22] ตรวจสอบและทำให้แนวทางนี้เป็นทางการ ทำให้พวกเขาเสนอแนะแนวทางอื่น ตัวแปรของฟังก์ชันการกำหนดราคา: "Mbound" อีกหนึ่งงานเป็นของ F. Coelho [20] ใคร 11 21 เห็นได้ชัดว่านี่คือ UTXO's ของเรา: จำนวนและคีย์ปลายทาง หาก Alex เป็นคนสร้างธุรกรรมมาตรฐานนี้และส่งไปให้ Bob แสดงว่า Alex ก็มีคีย์ส่วนตัวเช่นกัน ในแต่ละสิ่งเหล่านี้ ฉันชอบไดอะแกรมนี้มาก เพราะมันตอบคำถามก่อนหน้านี้บางข้อ อินพุต Txn ประกอบด้วย ของชุดเอาต์พุต Txn และ keรูปภาพของคุณ จากนั้นจะมีการลงนามด้วยลายเซ็นแหวนรวมทั้งทั้งหมด ของคีย์ส่วนตัวที่ Alex เป็นเจ้าของธุรกรรมต่างประเทศทั้งหมดที่รวมอยู่ในข้อตกลง ที่ เอาต์พุต Txn ประกอบด้วยจำนวนเงินและคีย์ปลายทาง ผู้รับรายการอาจ หากต้องการ ให้สร้างคีย์ส่วนตัวแบบครั้งเดียวตามที่อธิบายไว้ก่อนหน้าในรายงานเพื่อใช้จ่าย เงิน คงจะน่ายินดีที่ได้ทราบว่าสิ่งนี้ตรงกับโค้ดจริงมากน้อยเพียงใด... ไม่ Nic van Saberhagen อธิบายคุณสมบัติบางอย่างของอัลกอริธึมการพิสูจน์การทำงานอย่างหลวมๆ โดยไม่ได้อธิบายอัลกอริทึมนั้นจริงๆ อัลกอริธึม CryptoNight นั้นจำเป็นต้องมีการวิเคราะห์เชิงลึก เมื่อฉันอ่านสิ่งนี้ฉันก็พูดติดอ่าง การลงทุนควรเติบโตอย่างน้อยเชิงเส้นตามกำลังหรือควร การลงทุนเติบโต สูงสุด เป็นเส้นตรงด้วยพลังใช่ไหม? แล้วฉันก็ตระหนักได้ว่า ฉันในฐานะคนขุดแร่หรือนักลงทุน มักจะคิดว่า "ฉันจะได้รับพลังงานได้มากเพียงใด เพื่อการลงทุน?” ไม่ใช่ "ต้องลงทุนเท่าไหร่ถึงจะได้พลังงานที่แน่นอน" แน่นอน แสดงว่าการลงทุนโดย I และกำลังโดย P ถ้า I(P) คือการลงทุนในรูปของกำลัง และ P(I) คือกำลังที่เป็นหน้าที่ของการลงทุน พวกมันจะผกผันกัน (ไม่ว่าจะอยู่ที่ใดก็ตาม ผกผันสามารถมีได้) และถ้า I(P) เร็วกว่าเชิงเส้น มากกว่า P(I) ก็จะช้ากว่าเชิงเส้น ดังนั้น จะมีอัตราผลตอบแทนลดลงสำหรับผู้ลงทุน กล่าวคือสิ่งที่ผู้เขียนพูดในที่นี้ก็คือ "แน่นอน เมื่อคุณลงทุนมากขึ้น คุณก็จะได้รับมากขึ้น" อำนาจ แต่เราควรพยายามทำให้อัตราผลตอบแทนลดลง" การลงทุนของ CPU จะจำกัดขอบเขตย่อยเชิงเส้นในที่สุด คำถามก็คือว่าผู้เขียน ได้ออกแบบอัลกอริธึม POW ที่จะบังคับให้ ASIC ทำเช่นนี้ด้วย "สกุลเงินในอนาคต" สมมุติควรขุดด้วยทรัพยากรที่ช้าที่สุด/จำกัดที่สุดเสมอหรือไม่ บทความโดย Abadi และคณะ (ซึ่งมีวิศวกรของ Google และ Microsoft บางคนเป็นผู้เขียน) คือ โดยพื้นฐานแล้วโดยใช้ความจริงที่ว่าขนาดหน่วยความจำ ในช่วงไม่กี่ปีที่ผ่านมา มีขนาดเล็กลงมาก ความแปรปรวนในเครื่องต่างๆ มากกว่าความเร็วของโปรเซสเซอร์ และมีอัตราส่วนการลงทุนต่อกำลังที่มากกว่าเชิงเส้น อีกไม่กี่ปีอาจต้องประเมินใหม่! ทุกอย่างคือการแข่งขันทางอาวุธ... การสร้างฟังก์ชัน hash เป็นเรื่องยาก การสร้างฟังก์ชัน hash ที่เป็นไปตามข้อจำกัดเหล่านี้ดูเหมือนจะยากกว่า บทความนี้ดูเหมือนจะไม่มีคำอธิบายเกี่ยวกับความเป็นจริง hashing อัลกอริทึม CryptoNight ฉันคิดว่ามันเป็นการใช้งาน SHA-3 ที่ต้องใช้หน่วยความจำอย่างหนัก ในโพสต์ในฟอรัม แต่ฉันไม่รู้... และนั่นคือประเด็น มันจะต้องอธิบาย

เสนอวิธีแก้ปัญหาที่มีประสิทธิภาพสูงสุด: “ฮอกไกโด” สำหรับความรู้ของเรา งานล่าสุดที่มีพื้นฐานอยู่บนแนวคิดของการค้นหาแบบสุ่มหลอกในอาเรย์ขนาดใหญ่คือ อัลกอริธึมที่เรียกว่า “scrypt” โดย C. Percival [32] ต่างจากฟังก์ชั่นก่อนหน้านี้ที่เน้นไปที่ แหล่งที่มาของคีย์ และไม่ใช่ระบบ proof-of-work แม้ว่าข้อเท็จจริงนี้ scrypt สามารถตอบสนองวัตถุประสงค์ของเราได้: มันทำงานได้ดีเป็นฟังก์ชันการกำหนดราคาในปัญหาการแปลง hash บางส่วน เช่น SHA-256 ใน Bitcoin. ถึงตอนนี้ scrypt ได้ถูกนำไปใช้ใน Litecoin [14] และ Bitcoin forks อื่นๆ แล้ว อย่างไรก็ตาม การใช้งานนั้นไม่ได้ผูกกับหน่วยความจำจริงๆ: อัตราส่วน "เวลาในการเข้าถึงหน่วยความจำ/โดยรวม time” ไม่เพียงพอ เนื่องจากแต่ละอินสแตนซ์ใช้พื้นที่เพียง 128 KB สิ่งนี้อนุญาตให้นักขุด GPU ให้มีประสิทธิภาพมากขึ้นประมาณ 10 เท่า และยังคงทิ้งความเป็นไปได้ในการสร้างสรรค์ไว้ค่อนข้างมาก อุปกรณ์ขุดเหมืองราคาถูกแต่มีประสิทธิภาพสูง นอกจากนี้ โครงสร้างการเข้ารหัสยังช่วยให้สามารถแลกเปลี่ยนขนาดหน่วยความจำเป็นเส้นตรงและ ความเร็วของ CPU เนื่องจากทุกบล็อกใน scratchpad นั้นได้มาจากบล็อกก่อนหน้าเท่านั้น ตัวอย่างเช่น คุณสามารถจัดเก็บบล็อกทุก ๆ วินาทีและคำนวณบล็อกอื่น ๆ ในลักษณะขี้เกียจได้ เช่น เท่านั้น เมื่อจำเป็น ดัชนีสุ่มหลอกจะถือว่ามีการกระจายอย่างสม่ำเสมอ ดังนั้นค่าที่คาดหวังของการคำนวณใหม่ของบล็อกเพิ่มเติมคือ 1 \(2 \cdot N\) โดยที่ N คือตัวเลข ของการวนซ้ำ เวลาคำนวณโดยรวมเพิ่มขึ้นน้อยกว่าครึ่งเพราะยังมี การดำเนินการที่ไม่ขึ้นอยู่กับเวลา (เวลาคงที่) เช่น การเตรียมแผ่นรอยขีดข่วนและ hashing on การวนซ้ำทุกครั้ง ประหยัด 2/3 ของต้นทุนหน่วยความจำ 1 3 \(\cdot\) ยังไม่มี + 1 3 \(\cdot\) \(2 \cdot N\) = N การคำนวณใหม่เพิ่มเติม ผล 9/10 เข้า 1 10 \(\cdot\) ยังไม่มี + . . . +1 10 \(\cdot\) 9 \(\cdot\) ยังไม่มีข้อความ = 4.5N. มันง่ายที่จะแสดงให้เห็นว่าการจัดเก็บเพียง 1 ของบล็อกทั้งหมด เพิ่มเวลาน้อยกว่าปัจจัยของ s−1 2. นี่หมายถึงเครื่องที่มี CPU เร็วกว่าชิปสมัยใหม่ถึง 200 เท่า สามารถจัดเก็บ scratchpad ได้เพียง 320 ไบต์ 5.2 อัลกอริธึมที่นำเสนอ เราขอเสนออัลกอริธึมที่ผูกกับหน่วยความจำใหม่สำหรับฟังก์ชันการกำหนดราคา proof-of-work มันขึ้นอยู่กับ การเข้าถึงหน่วยความจำช้าแบบสุ่มและเน้นการพึ่งพาเวลาแฝง ตรงข้ามกับการเข้ารหัสทุกครั้ง บล็อกใหม่ (ความยาว 64 ไบต์) ขึ้นอยู่กับบล็อกก่อนหน้าทั้งหมด จึงเกิดเรื่องสมมุติขึ้นมา “โปรแกรมรักษาหน่วยความจำ” ควรเพิ่มความเร็วในการคำนวณแบบทวีคูณ อัลกอริทึมของเราต้องการประมาณ 2 Mb ต่ออินสแตนซ์ด้วยเหตุผลต่อไปนี้: 1. พอดีกับแคช L3 (ต่อคอร์) ของโปรเซสเซอร์สมัยใหม่ ซึ่งควรจะกลายเป็นกระแสหลัก ในอีกไม่กี่ปี; 2. หน่วยความจำภายในหนึ่งเมกะไบต์เป็นขนาดที่แทบจะยอมรับไม่ได้สำหรับไปป์ไลน์ ASIC สมัยใหม่ 3. GPU อาจเรียกใช้อินสแตนซ์หลายร้อยอินสแตนซ์พร้อมกัน แต่ถูกจำกัดด้วยวิธีอื่น: หน่วยความจำ GDDR5 ช้ากว่าแคช CPU L3 และน่าทึ่งในเรื่องแบนด์วิธด้วย ความเร็วในการเข้าถึงแบบสุ่ม 4. การขยาย Scratchpad อย่างมีนัยสำคัญจะต้องมีการวนซ้ำเพิ่มขึ้น ซึ่งใน เทิร์นหมายถึงการเพิ่มเวลาโดยรวม การโทร "หนัก" ในเครือข่าย p2p ที่ไม่น่าเชื่อถืออาจนำไปสู่ ช่องโหว่ร้ายแรง เนื่องจากโหนดจำเป็นต้องตรวจสอบ proof-of-work ของทุกบล็อกใหม่ หากโหนดใช้เวลาเป็นจำนวนมากในการประเมิน hash แต่ละครั้ง ก็สามารถดำเนินการได้อย่างง่ายดาย DDoSed โดยวัตถุปลอมมากมายพร้อมข้อมูลงานที่กำหนดเอง (ค่า nonce) 12 เสนอวิธีแก้ปัญหาที่มีประสิทธิภาพสูงสุด: “ฮอกไกโด” สำหรับความรู้ของเรา งานล่าสุดที่มีพื้นฐานอยู่บนแนวคิดของการค้นหาแบบสุ่มหลอกในอาเรย์ขนาดใหญ่คือ อัลกอริธึมที่เรียกว่า “scrypt” โดย C. Percival [32] ต่างจากฟังก์ชั่นก่อนหน้านี้ที่เน้นไปที่ แหล่งที่มาของคีย์ และไม่ใช่ระบบ proof-of-work แม้ว่าข้อเท็จจริงนี้ scrypt สามารถตอบสนองวัตถุประสงค์ของเราได้: มันทำงานได้ดีเป็นฟังก์ชันการกำหนดราคาในปัญหาการแปลง hash บางส่วน เช่น SHA-256 ใน Bitcoin. ถึงตอนนี้ scrypt ได้ถูกนำไปใช้ใน Litecoin [14] และ Bitcoin forks อื่นๆ แล้ว อย่างไรก็ตาม การใช้งานนั้นไม่ได้ผูกกับหน่วยความจำจริงๆ: อัตราส่วน "เวลาในการเข้าถึงหน่วยความจำ / โดยรวม time” ไม่เพียงพอ เนื่องจากแต่ละอินสแตนซ์ใช้พื้นที่เพียง 128 KB สิ่งนี้อนุญาตให้นักขุด GPU ให้มีประสิทธิภาพมากขึ้นประมาณ 10 เท่า และยังคงทิ้งความเป็นไปได้ในการสร้างสรรค์ไว้ค่อนข้างมาก อุปกรณ์ขุดเหมืองราคาถูกแต่มีประสิทธิภาพสูง นอกจากนี้ โครงสร้างการเข้ารหัสยังช่วยให้สามารถแลกเปลี่ยนขนาดหน่วยความจำเป็นเส้นตรงและ ความเร็วของ CPU เนื่องจากทุกบล็อกใน scratchpad นั้นได้มาจากบล็อกก่อนหน้าเท่านั้น ตัวอย่างเช่น คุณสามารถจัดเก็บบล็อกทุก ๆ วินาทีและคำนวณบล็อกอื่น ๆ ในลักษณะขี้เกียจได้ เช่น เท่านั้น เมื่อจำเป็น ดัชนีสุ่มหลอกจะถือว่ามีการกระจายอย่างสม่ำเสมอ ดังนั้นค่าที่คาดหวังของการคำนวณใหม่ของบล็อกเพิ่มเติมคือ 1 \(2 \cdot N\) โดยที่N คือตัวเลข ของการวนซ้ำ เวลาคำนวณโดยรวมเพิ่มขึ้นน้อยกว่าครึ่งเพราะยังมี การดำเนินการที่ไม่ขึ้นอยู่กับเวลา (เวลาคงที่) เช่น การเตรียมแผ่นรอยขีดข่วนและ hashing on การวนซ้ำทุกครั้ง ประหยัด 2/3 ของต้นทุนหน่วยความจำ 1 3 \(\cdot\) ยังไม่มี + 1 3 \(\cdot\) \(2 \cdot N\) = N การคำนวณใหม่เพิ่มเติม ผล 9/10 เข้า 1 10 \(\cdot\) ยังไม่มี + . . . +1 10 \(\cdot\) 9 \(\cdot\) ยังไม่มีข้อความ = 4.5N. มันง่ายที่จะแสดงให้เห็นว่าการจัดเก็บเพียง 1 ของบล็อกทั้งหมด เพิ่มเวลาน้อยกว่าปัจจัยของ s−1 2. นี่หมายถึงเครื่องที่มี CPU เร็วกว่าชิปสมัยใหม่ถึง 200 เท่า สามารถจัดเก็บ scratchpad ได้เพียง 320 ไบต์ 5.2 อัลกอริธึมที่นำเสนอ เราขอเสนออัลกอริธึมที่ผูกกับหน่วยความจำใหม่สำหรับฟังก์ชันการกำหนดราคา proof-of-work มันขึ้นอยู่กับ การเข้าถึงหน่วยความจำช้าแบบสุ่มและเน้นการพึ่งพาเวลาแฝง ตรงข้ามกับการเข้ารหัสทุกครั้ง บล็อกใหม่ (ความยาว 64 ไบต์) ขึ้นอยู่กับบล็อกก่อนหน้าทั้งหมด จึงเกิดเรื่องสมมุติขึ้นมา “โปรแกรมรักษาหน่วยความจำ” ควรเพิ่มความเร็วในการคำนวณแบบทวีคูณ อัลกอริทึมของเราต้องการประมาณ 2 Mb ต่ออินสแตนซ์ด้วยเหตุผลต่อไปนี้: 1. พอดีกับแคช L3 (ต่อคอร์) ของโปรเซสเซอร์สมัยใหม่ ซึ่งควรจะกลายเป็นกระแสหลัก ในอีกไม่กี่ปี; 2. หน่วยความจำภายในหนึ่งเมกะไบต์เป็นขนาดที่แทบจะยอมรับไม่ได้สำหรับไปป์ไลน์ ASIC สมัยใหม่ 3. GPU อาจเรียกใช้อินสแตนซ์หลายร้อยอินสแตนซ์พร้อมกัน แต่ถูกจำกัดด้วยวิธีอื่น: หน่วยความจำ GDDR5 ช้ากว่าแคช CPU L3 และน่าทึ่งในเรื่องแบนด์วิธด้วย ความเร็วในการเข้าถึงแบบสุ่ม 4. การขยาย Scratchpad อย่างมีนัยสำคัญจะต้องมีการวนซ้ำเพิ่มขึ้น ซึ่งใน เทิร์นหมายถึงการเพิ่มเวลาโดยรวม การโทร "หนัก" ในเครือข่าย p2p ที่ไม่น่าเชื่อถืออาจนำไปสู่ ช่องโหว่ร้ายแรง เนื่องจากโหนดจำเป็นต้องตรวจสอบ proof-of-work ของทุกบล็อกใหม่ หากโหนดใช้เวลาเป็นจำนวนมากในการประเมิน hash แต่ละครั้ง ก็สามารถดำเนินการได้อย่างง่ายดาย DDoSed โดยวัตถุปลอมมากมายพร้อมข้อมูลงานที่กำหนดเอง (ค่า nonce) 12 22 ไม่เป็นไร มันเป็นเหรียญเข้ารหัสเหรอ? อัลกอริธึมอยู่ที่ไหน? ทั้งหมดที่ฉันเห็นคือโฆษณา นี่คือจุดที่ Cryptonote หากอัลกอริธึม PoW ของพวกเขาคุ้มค่า ก็จะโดดเด่นขึ้นมาจริงๆ มันไม่ใช่ จริงๆ SHA-256 มันไม่ใช่การเข้ารหัสจริงๆ เป็นสิ่งใหม่ หน่วยความจำที่ถูกผูกไว้ และไม่เรียกซ้ำ

6 ข้อดีเพิ่มเติม 6.1 การปล่อยก๊าซเรือนกระจกที่ราบรื่น ขอบเขตบนสำหรับจำนวนเหรียญดิจิทัล CryptoNote ทั้งหมดคือ: MSupply = 264 −1 หน่วยอะตอม นี่เป็นข้อจำกัดตามธรรมชาติที่ขึ้นอยู่กับขีดจำกัดในการดำเนินการเท่านั้น ไม่ใช่จากสัญชาตญาณ เช่น “เหรียญ N น่าจะเพียงพอสำหรับทุกคน” เพื่อให้มั่นใจถึงความราบรื่นของกระบวนการปล่อยก๊าซเรือนกระจก เราใช้สูตรต่อไปนี้สำหรับบล็อก รางวัล: รางวัลฐาน = (MSupply -A) ≫18, โดยที่ A คือจำนวนเหรียญที่สร้างขึ้นก่อนหน้านี้ 6.2 พารามิเตอร์ที่ปรับได้ 6.2.1 ความยากลำบาก CryptoNote มีอัลกอริธึมการกำหนดเป้าหมายซึ่งเปลี่ยนความยากของทุกบล็อก นี้ ลดเวลาตอบสนองของระบบเมื่อเครือข่าย hashrate มีการเติบโตหรือลดลงอย่างมาก รักษาอัตราการบล็อกให้คงที่ เมธอด Bitcoin ดั้งเดิมจะคำนวณความสัมพันธ์ของค่าจริง และช่วงเวลาเป้าหมายระหว่างบล็อกปี 2559 ล่าสุด และใช้เป็นตัวคูณสำหรับปัจจุบัน ความยากลำบาก แน่นอนว่าสิ่งนี้ไม่เหมาะสำหรับการคำนวณใหม่อย่างรวดเร็ว (เนื่องจากมีความเฉื่อยมาก) และ ส่งผลให้เกิดความสั่นสะเทือน แนวคิดทั่วไปเบื้องหลังอัลกอริธึมของเราคือการรวมงานทั้งหมดที่โหนดและทำเสร็จแล้ว แบ่งตามเวลาที่พวกเขาใช้ไป การวัดงานคือค่าความยากที่สอดคล้องกัน ในแต่ละบล็อก แต่เนื่องจากการประทับเวลาที่ไม่ถูกต้องและไม่น่าเชื่อถือ เราจึงไม่สามารถระบุเวลาที่แน่ชัดได้ ช่วงเวลาระหว่างบล็อก ผู้ใช้สามารถเปลี่ยนการประทับเวลาของเขาไปสู่อนาคตและครั้งต่อไปได้ ช่วงเวลาอาจจะน้อยหรือเป็นลบอย่างไม่น่าเชื่อ คงจะเกิดเหตุไม่น้อย. ประเภทนี้ เราจึงสามารถจัดเรียงการประทับเวลาและตัดค่าผิดปกติได้ (เช่น 20%) ช่วงของ ค่าที่เหลือคือเวลาที่ใช้ไป 80% ของบล็อกที่เกี่ยวข้อง 6.2.2 ขีดจำกัดขนาด ผู้ใช้ชำระค่าจัดเก็บ blockchain และจะมีสิทธิ์โหวตตามขนาดของมัน นักขุดทุกคน จัดการกับการแลกเปลี่ยนระหว่างต้นทุนและกำไรจากค่าธรรมเนียมให้สมดุลและกำหนดด้วยตนเอง “soft-limit” สำหรับการสร้างบล็อก กฎหลักสำหรับขนาดบล็อกสูงสุดก็จำเป็นเช่นกัน ป้องกันไม่ให้ blockchain ถูกน้ำท่วมด้วยธุรกรรมปลอม อย่างไรก็ตาม ค่านี้ควร ไม่ต้องฮาร์ดโค้ด ให้ MN เป็นค่ามัธยฐานของขนาดบล็อก N สุดท้าย จากนั้นจึงกำหนด "ขีดจำกัดยาก" สำหรับขนาด ของการรับบล็อกคือ \(2 \cdot M_N\) มันป้องกันไม่ให้ blockchain ท้องอืด แต่ยังคงอนุญาตให้มีขีดจำกัด ค่อยๆ เติบโตตามเวลาหากจำเป็น ขนาดของธุรกรรมไม่จำเป็นต้องถูกจำกัดอย่างชัดเจน ล้อมรอบด้วยขนาดของบล็อก และถ้าใครต้องการสร้างธุรกรรมขนาดใหญ่ที่มีอินพุต/เอาท์พุตหลายร้อยรายการ (หรือด้วย ระดับความคลุมเครือในลายเซ็นแหวนสูง) เขาสามารถทำได้โดยการจ่ายค่าธรรมเนียมเพียงพอ 6.2.3 โทษขนาดเกิน นักขุดยังคงมีความสามารถในการสร้างบล็อกที่เต็มไปด้วยธุรกรรมที่ไม่มีค่าธรรมเนียมของตัวเองจนถึงระดับสูงสุด ขนาด 2 \(\cdot\) เมกะไบต์ แม้ว่านักขุดส่วนใหญ่เท่านั้นที่สามารถเปลี่ยนค่ามัธยฐานได้ แต่ก็ยังมี 13 6 ข้อดีเพิ่มเติม 6.1 การปล่อยก๊าซเรือนกระจกที่ราบรื่น ขอบเขตบนสำหรับจำนวนเหรียญดิจิทัล CryptoNote ทั้งหมดคือ: MSupply = 264 −1 หน่วยอะตอม นี่เป็นข้อจำกัดตามธรรมชาติที่ขึ้นอยู่กับขีดจำกัดในการดำเนินการเท่านั้น ไม่ใช่จากสัญชาตญาณ เช่น “เหรียญ N น่าจะเพียงพอสำหรับทุกคน” เพื่อให้มั่นใจถึงความราบรื่นของกระบวนการปล่อยก๊าซเรือนกระจก เราใช้สูตรต่อไปนี้สำหรับบล็อก รางวัล: รางวัลฐาน = (MSupply -A) ≫18, โดยที่ A คือจำนวนเหรียญที่สร้างขึ้นก่อนหน้านี้ 6.2 พารามิเตอร์ที่ปรับได้ 6.2.1 ความยากลำบาก CryptoNote มีอัลกอริธึมการกำหนดเป้าหมายซึ่งเปลี่ยนความยากของทุกบล็อก นี้ ลดเวลาตอบสนองของระบบเมื่อเครือข่าย hashrate มีการเติบโตหรือลดลงอย่างมาก รักษาอัตราการบล็อกให้คงที่ เมธอด Bitcoin ดั้งเดิมจะคำนวณความสัมพันธ์ของค่าจริง และช่วงเวลาเป้าหมายระหว่างบล็อกปี 2559 ล่าสุด และใช้เป็นตัวคูณสำหรับปัจจุบัน ความยากลำบาก แน่นอนว่าสิ่งนี้ไม่เหมาะสำหรับการคำนวณใหม่อย่างรวดเร็ว (เนื่องจากมีความเฉื่อยมาก) และ ส่งผลให้เกิดความสั่นสะเทือน แนวคิดทั่วไปเบื้องหลังอัลกอริธึมของเราคือการรวมงานทั้งหมดที่โหนดและทำเสร็จแล้ว แบ่งตามเวลาที่พวกเขาใช้ไป การวัดงานคือค่าความยากที่สอดคล้องกัน ในแต่ละบล็อก แต่เนื่องจากการประทับเวลาที่ไม่ถูกต้องและไม่น่าเชื่อถือ เราจึงไม่สามารถระบุเวลาที่แน่ชัดได้ ช่วงเวลาระหว่างบล็อก ผู้ใช้สามารถเปลี่ยนการประทับเวลาของเขาไปสู่อนาคตและครั้งต่อไปได้ ช่วงเวลาอาจจะน้อยหรือเป็นลบอย่างไม่น่าเชื่อ คงจะเกิดเหตุไม่น้อย. ประเภทนี้ เราจึงสามารถจัดเรียงการประทับเวลาและตัดค่าผิดปกติได้ (เช่น 20%) ช่วงของ ค่าที่เหลือคือเวลาที่ใช้ไป 80% ของบล็อกที่เกี่ยวข้อง 6.2.2 ขีดจำกัดขนาด ผู้ใช้ชำระค่าจัดเก็บ blockchain และจะมีสิทธิ์โหวตตามขนาดของมัน นักขุดทุกคน เกี่ยวข้องกับการแลกเปลี่ยนระหว่างความสมดุลe ต้นทุนและกำไรจากค่าธรรมเนียมและกำหนดของเขาเอง “soft-limit” สำหรับการสร้างบล็อก กฎหลักสำหรับขนาดบล็อกสูงสุดก็จำเป็นเช่นกัน ป้องกันไม่ให้ blockchain ถูกน้ำท่วมด้วยธุรกรรมปลอม อย่างไรก็ตาม ค่านี้ควร ไม่ต้องฮาร์ดโค้ด ให้ MN เป็นค่ามัธยฐานของขนาดบล็อก N สุดท้าย จากนั้นจึงกำหนด "ขีดจำกัดยาก" สำหรับขนาด ของการรับบล็อกคือ \(2 \cdot M_N\) มันป้องกันไม่ให้ blockchain ท้องอืด แต่ยังคงอนุญาตให้มีขีดจำกัด ค่อยๆ เติบโตตามเวลาหากจำเป็น ขนาดของธุรกรรมไม่จำเป็นต้องถูกจำกัดอย่างชัดเจน ล้อมรอบด้วยขนาดของบล็อก และถ้าใครต้องการสร้างธุรกรรมขนาดใหญ่ที่มีอินพุต/เอาท์พุตหลายร้อยรายการ (หรือด้วย ระดับความคลุมเครือในลายเซ็นแหวนสูง) เขาสามารถทำได้โดยการจ่ายค่าธรรมเนียมเพียงพอ 6.2.3 โทษขนาดเกิน นักขุดยังคงมีความสามารถในการสร้างบล็อกที่เต็มไปด้วยธุรกรรมที่ไม่มีค่าธรรมเนียมของตัวเองจนถึงระดับสูงสุด ขนาด 2 \(\cdot\) เมกะไบต์ แม้ว่านักขุดส่วนใหญ่เท่านั้นที่สามารถเปลี่ยนค่ามัธยฐานได้ แต่ก็ยังมี 13 23 หน่วยอะตอม ฉันชอบแบบนั้น นี่เทียบเท่ากับ Satoshis หรือไม่? หากเป็นเช่นนั้น นั่นหมายความว่าจะมี cryptonote อยู่ที่ 185 พันล้าน ฉันรู้ว่าในที่สุดแล้วสิ่งนี้จะต้องได้รับการปรับแต่งในไม่กี่หน้า หรืออาจมีการพิมพ์ผิด หากรางวัลพื้นฐานคือ "เหรียญที่เหลือทั้งหมด" มีเพียงบล็อกเดียวเท่านั้นที่จะสามารถรับเหรียญทั้งหมดได้ อินสตามีน. ในทางกลับกัน หากนี่ควรจะเป็นสัดส่วนไม่ทางใดก็ทางหนึ่ง ความแตกต่างในเวลาระหว่างปัจจุบันและวันที่สิ้นสุดการผลิตเหรียญบางรายการ? นั่นก็จะ สมเหตุสมผล นอกจากนี้ ในโลกของฉัน สองสัญลักษณ์ที่ยิ่งใหญ่กว่าเช่นนี้หมายถึง "ยิ่งใหญ่กว่ามาก" ผู้เขียนทำ อาจหมายถึงอย่างอื่นใช่ไหม? หากการปรับตัวต่อความยากลำบากเกิดขึ้นทุกๆ บล็อก ผู้โจมตีก็อาจมีฟาร์มขนาดใหญ่มาก เครื่องจักรขุดและขุดตามช่วงเวลาที่เลือกอย่างระมัดระวัง สิ่งนี้อาจทำให้เกิดการระเบิดวุ่นวาย (หรือความผิดพลาดจนเหลือศูนย์) ในความยากลำบาก หากสูตรการปรับความยากลำบากไม่ได้รับการหน่วงอย่างเหมาะสม ไม่ต้องสงสัยเลยว่าวิธีการของ Bitcoin นั้นไม่เหมาะสมสำหรับการคำนวณใหม่อย่างรวดเร็ว แต่เป็นแนวคิดเรื่องความเฉื่อย ในระบบเหล่านี้จะต้องได้รับการพิสูจน์ ไม่ใช่ถูกมองข้าม นอกจากนี้การแกว่ง ในความยากลำบากของเครือข่ายไม่จำเป็นต้องเป็นปัญหา เว้นแต่จะส่งผลให้เกิดความผันผวนที่เห็นได้ชัด การจัดหาเหรียญ - และการมีปัญหาที่เปลี่ยนแปลงอย่างรวดเร็วอาจทำให้เกิด "การแก้ไขมากเกินไป" เวลาที่ใช้โดยเฉพาะในช่วงเวลาสั้นๆ เช่น ไม่กี่นาที จะเป็นสัดส่วนกับ "ผลรวม จำนวนบล็อกที่สร้างขึ้นบนเครือข่าย" ค่าคงที่ของสัดส่วนก็จะเติบโตขึ้นด้วยตัวมันเอง เมื่อเวลาผ่านไป น่าจะเป็นแบบทวีคูณหาก CN ปิดกิจการ อาจเป็นความคิดที่ดีกว่าที่จะปรับความยากเพื่อเก็บ "บล็อกทั้งหมดที่สร้างขึ้นใน เครือข่ายตั้งแต่บล็อกสุดท้ายถูกเพิ่มเข้าไปในเชนหลัก" ภายในค่าคงที่บางส่วนหรือด้วย การแปรผันที่มีขอบเขตหรืออะไรทำนองนั้น ถ้าเป็นอัลกอริธึมแบบปรับตัวที่มีการคำนวณ สามารถกำหนดได้ว่านำไปปฏิบัติได้ง่ายซึ่งดูเหมือนจะช่วยแก้ปัญหาได้ แต่ถ้าเราใช้วิธีการนั้น ผู้ที่มีฟาร์มขุดขนาดใหญ่ก็สามารถปิดฟาร์มของตนได้ สักสองสามชั่วโมงแล้วเปิดใหม่อีกครั้ง ในช่วงสองสามช่วงตึกแรก ฟาร์มนั้นจะสร้าง ธนาคาร ดังนั้น จริงๆ แล้ว วิธีการนี้จะนำมาซึ่งจุดที่น่าสนใจ: การขุดกลายเป็น (โดยเฉลี่ย) แพ้เกมโดยไม่มี ROI โดยเฉพาะอย่างยิ่งเมื่อมีผู้คนกระโดดเข้าสู่เครือข่ายมากขึ้น หากเกิดความยุ่งยากในการขุด เครือข่ายที่มีการติดตามอย่างใกล้ชิดมาก hashrate ฉันสงสัยว่าผู้คนจะขุดได้มากเท่ากับพวกเขา กำลังทำอยู่ หรือในทางกลับกัน แทนที่จะให้ฟาร์มขุดเปิดตลอด 24 ชั่วโมงทุกวัน พวกเขาอาจเปลี่ยนมัน เปิดเป็นเวลา 6 ชั่วโมง ปิดเป็นเวลา 2 เปิดเป็นเวลา 6 ชั่วโมง ปิดเป็นเวลา 2 หรืออะไรทำนองนั้น เพียงเปลี่ยนไปใช้เหรียญอื่น สองสามชั่วโมง รอให้ความยากลดลง จากนั้นค่อยกลับมาลุยต่อเพื่อรับส่วนพิเศษเหล่านั้น บล็อกความสามารถในการทำกำไรเมื่อเครือข่ายปรับตัว และคุณรู้อะไรไหม? นี่คงจะเป็นอย่างนั้นจริงๆ หนึ่งในสถานการณ์การขุดที่ดีกว่าที่ฉันคำนึงถึง... นี่อาจเป็นวงกลม แต่ถ้าเวลาในการสร้างบล็อก เฉลี่ย ประมาณหนึ่งนาที เราก็สามารถทำได้ ใช้จำนวนบล็อกเป็นพร็อกซีสำหรับ "เวลาที่ใช้ไป"

6 ข้อดีเพิ่มเติม 6.1 การปล่อยก๊าซเรือนกระจกที่ราบรื่น ขอบเขตบนสำหรับจำนวนเหรียญดิจิทัล CryptoNote ทั้งหมดคือ: MSupply = 264 −1 หน่วยอะตอม นี่เป็นข้อจำกัดตามธรรมชาติที่ขึ้นอยู่กับขีดจำกัดในการดำเนินการเท่านั้น ไม่ใช่จากสัญชาตญาณ เช่น “เหรียญ N น่าจะเพียงพอสำหรับทุกคน” เพื่อให้มั่นใจถึงความราบรื่นของกระบวนการปล่อยก๊าซเรือนกระจก เราใช้สูตรต่อไปนี้สำหรับบล็อก รางวัล: รางวัลฐาน = (MSupply -A) ≫18, โดยที่ A คือจำนวนเหรียญที่สร้างขึ้นก่อนหน้านี้ 6.2 พารามิเตอร์ที่ปรับได้ 6.2.1 ความยากลำบาก CryptoNote มีอัลกอริธึมการกำหนดเป้าหมายซึ่งเปลี่ยนความยากของทุกบล็อก นี้ ลดเวลาตอบสนองของระบบเมื่อเครือข่าย hashrate มีการเติบโตหรือลดลงอย่างมาก รักษาอัตราการบล็อกให้คงที่ เมธอด Bitcoin ดั้งเดิมจะคำนวณความสัมพันธ์ของค่าจริง และช่วงเวลาเป้าหมายระหว่างบล็อกปี 2559 ล่าสุด และใช้เป็นตัวคูณสำหรับปัจจุบัน ความยากลำบาก แน่นอนว่าสิ่งนี้ไม่เหมาะสำหรับการคำนวณใหม่อย่างรวดเร็ว (เนื่องจากมีความเฉื่อยมาก) และ ส่งผลให้เกิดความสั่นสะเทือน แนวคิดทั่วไปเบื้องหลังอัลกอริธึมของเราคือการรวมงานทั้งหมดที่โหนดและทำเสร็จแล้ว แบ่งตามเวลาที่พวกเขาใช้ไป การวัดงานคือค่าความยากที่สอดคล้องกัน ในแต่ละบล็อก แต่เนื่องจากการประทับเวลาที่ไม่ถูกต้องและไม่น่าเชื่อถือ เราจึงไม่สามารถระบุเวลาที่แน่ชัดได้ ช่วงเวลาระหว่างบล็อก ผู้ใช้สามารถเปลี่ยนการประทับเวลาของเขาไปสู่อนาคตและครั้งต่อไปได้ ช่วงเวลาอาจจะน้อยหรือเป็นลบอย่างไม่น่าเชื่อ คงจะเกิดเหตุไม่น้อย. ประเภทนี้ เราจึงสามารถจัดเรียงการประทับเวลาและตัดค่าผิดปกติได้ (เช่น 20%) ช่วงของ ค่าที่เหลือคือเวลาที่ใช้ไป 80% ของบล็อกที่เกี่ยวข้อง 6.2.2 ขีดจำกัดขนาด ผู้ใช้ชำระค่าจัดเก็บ blockchain และจะมีสิทธิ์โหวตตามขนาดของมัน นักขุดทุกคน จัดการกับการแลกเปลี่ยนระหว่างต้นทุนและกำไรจากค่าธรรมเนียมให้สมดุลและกำหนดด้วยตนเอง “soft-limit” สำหรับการสร้างบล็อก กฎหลักสำหรับขนาดบล็อกสูงสุดก็จำเป็นเช่นกัน ป้องกันไม่ให้ blockchain ถูกน้ำท่วมด้วยธุรกรรมปลอม อย่างไรก็ตาม ค่านี้ควร ไม่ต้องฮาร์ดโค้ด ให้ MN เป็นค่ามัธยฐานของขนาดบล็อก N สุดท้าย จากนั้นจึงกำหนด "ขีดจำกัดยาก" สำหรับขนาด ของการรับบล็อกคือ \(2 \cdot M_N\) มันป้องกันไม่ให้ blockchain ท้องอืด แต่ยังคงอนุญาตให้มีขีดจำกัด ค่อยๆ เติบโตตามเวลาหากจำเป็น ขนาดของธุรกรรมไม่จำเป็นต้องถูกจำกัดอย่างชัดเจน ล้อมรอบด้วยขนาดของบล็อก และถ้าใครต้องการสร้างธุรกรรมขนาดใหญ่ที่มีอินพุต/เอาท์พุตหลายร้อยรายการ (หรือด้วย ระดับความคลุมเครือในลายเซ็นแหวนสูง) เขาสามารถทำได้โดยการจ่ายค่าธรรมเนียมเพียงพอ 6.2.3 โทษขนาดเกิน นักขุดยังคงมีความสามารถในการสร้างบล็อกที่เต็มไปด้วยธุรกรรมที่ไม่มีค่าธรรมเนียมของตัวเองจนถึงระดับสูงสุด ขนาด 2 \(\cdot\) เมกะไบต์ แม้ว่านักขุดส่วนใหญ่เท่านั้นที่สามารถเปลี่ยนค่ามัธยฐานได้ แต่ก็ยังมี 13 6 ข้อดีเพิ่มเติม 6.1 การปล่อยก๊าซเรือนกระจกที่ราบรื่น ขอบเขตบนสำหรับจำนวนเหรียญดิจิทัล CryptoNote ทั้งหมดคือ: MSupply = 264 −1 หน่วยอะตอม นี่เป็นข้อจำกัดตามธรรมชาติที่ขึ้นอยู่กับขีดจำกัดในการดำเนินการเท่านั้น ไม่ใช่จากสัญชาตญาณ เช่น “เหรียญ N น่าจะเพียงพอสำหรับทุกคน” เพื่อให้มั่นใจถึงความราบรื่นของกระบวนการปล่อยก๊าซเรือนกระจก เราใช้สูตรต่อไปนี้สำหรับบล็อก รางวัล: รางวัลฐาน = (MSupply -A) ≫18, โดยที่ A คือจำนวนเหรียญที่สร้างขึ้นก่อนหน้านี้ 6.2 พารามิเตอร์ที่ปรับได้ 6.2.1 ความยากลำบาก CryptoNote มีอัลกอริธึมการกำหนดเป้าหมายซึ่งเปลี่ยนความยากของทุกบล็อก นี้ ลดเวลาตอบสนองของระบบเมื่อเครือข่าย hashrate มีการเติบโตหรือลดลงอย่างมาก รักษาอัตราการบล็อกให้คงที่ เมธอด Bitcoin ดั้งเดิมจะคำนวณความสัมพันธ์ของค่าจริง และช่วงเวลาเป้าหมายระหว่างบล็อกปี 2559 ล่าสุด และใช้เป็นตัวคูณสำหรับปัจจุบัน ความยากลำบาก แน่นอนว่าสิ่งนี้ไม่เหมาะสำหรับการคำนวณใหม่อย่างรวดเร็ว (เนื่องจากมีความเฉื่อยมาก) และ ส่งผลให้เกิดความสั่นสะเทือน แนวคิดทั่วไปเบื้องหลังอัลกอริธึมของเราคือการรวมงานทั้งหมดที่โหนดและทำเสร็จแล้ว แบ่งตามเวลาที่พวกเขาใช้ไป การวัดงานคือค่าความยากที่สอดคล้องกัน ในแต่ละบล็อก แต่เนื่องจากการประทับเวลาที่ไม่ถูกต้องและไม่น่าเชื่อถือ เราจึงไม่สามารถระบุเวลาที่แน่ชัดได้ ช่วงเวลาระหว่างบล็อก ผู้ใช้สามารถเปลี่ยนการประทับเวลาของเขาไปสู่อนาคตและครั้งต่อไปได้ ช่วงเวลาอาจจะน้อยหรือเป็นลบอย่างไม่น่าเชื่อ คงจะเกิดเหตุไม่น้อย. ประเภทนี้ เราจึงสามารถจัดเรียงการประทับเวลาและตัดค่าผิดปกติได้ (เช่น 20%) ช่วงของ ค่าที่เหลือคือเวลาที่ใช้ไป 80% ของบล็อกที่เกี่ยวข้อง 6.2.2 ขีดจำกัดขนาด ผู้ใช้ชำระค่าจัดเก็บ blockchain และจะมีสิทธิ์โหวตตามขนาดของมัน นักขุดทุกคน เกี่ยวข้องกับการแลกเปลี่ยนระหว่างความสมดุลe ต้นทุนและกำไรจากค่าธรรมเนียมและกำหนดของเขาเอง “soft-limit” สำหรับการสร้างบล็อก กฎหลักสำหรับขนาดบล็อกสูงสุดก็จำเป็นเช่นกัน ป้องกันไม่ให้ blockchain ถูกน้ำท่วมด้วยธุรกรรมปลอม อย่างไรก็ตาม ค่านี้ควร ไม่ต้องฮาร์ดโค้ด ให้ MN เป็นค่ามัธยฐานของขนาดบล็อก N สุดท้าย จากนั้นจึงกำหนด "ขีดจำกัดยาก" สำหรับขนาด ของการรับบล็อกคือ \(2 \cdot M_N\) มันป้องกันไม่ให้ blockchain ท้องอืด แต่ยังคงอนุญาตให้มีขีดจำกัด ค่อยๆ เติบโตตามเวลาหากจำเป็น ขนาดของธุรกรรมไม่จำเป็นต้องถูกจำกัดอย่างชัดเจน ล้อมรอบด้วยขนาดของบล็อก และถ้าใครต้องการสร้างธุรกรรมขนาดใหญ่ที่มีอินพุต/เอาท์พุตหลายร้อยรายการ (หรือด้วย ระดับความคลุมเครือในลายเซ็นแหวนสูง) เขาสามารถทำได้โดยการจ่ายค่าธรรมเนียมเพียงพอ 6.2.3 โทษขนาดเกิน นักขุดยังคงมีความสามารถในการสร้างบล็อกที่เต็มไปด้วยธุรกรรมที่ไม่มีค่าธรรมเนียมของตัวเองจนถึงระดับสูงสุด ขนาด 2 \(\cdot\) เมกะไบต์ แม้ว่านักขุดส่วนใหญ่เท่านั้นที่สามารถเปลี่ยนค่ามัธยฐานได้ แต่ก็ยังมี 13 24 เอาล่ะ เรามี blockchain และแต่ละบล็อกมีการประทับเวลา นอกเหนือจากนั้น สั่ง สิ่งนี้ถูกแทรกไว้อย่างชัดเจนเพื่อการปรับเปลี่ยนความยากเนื่องจากการประทับเวลา เชื่อถือไม่ได้มากดังที่กล่าวไปแล้ว เราได้รับอนุญาตให้มีการประทับเวลาที่ขัดแย้งกันในห่วงโซ่หรือไม่ หาก Block A มาก่อน Block B ในห่วงโซ่ และทุกอย่างสอดคล้องกันในแง่ของการเงิน แต่ดูเหมือนว่า Block A จะถูกสร้างขึ้นหลังจาก Block B? เพราะบางทีอาจมีคนเป็นเจ้าของ ส่วนใหญ่ของเครือข่าย? ไม่เป็นไรใช่ไหม? อาจเป็นเพราะการเงินไม่ได้ถูกหลอก โอเค ฉันเกลียดกฎเกณฑ์นี้ "มีเพียง 80% ของบล็อกที่ถูกต้องตามกฎหมายสำหรับหลัก blockchain" วิธีการ มีจุดประสงค์เพื่อป้องกันไม่ให้คนโกหกปรับแต่งการประทับเวลาของตนหรือไม่ แต่ตอนนี้มันเพิ่ม สิ่งจูงใจให้ทุกคนโกหกเรื่องการประทับเวลาและเลือกค่ามัธยฐาน กรุณากำหนด. ความหมาย "สำหรับบล็อกนี้ให้รวมเฉพาะธุรกรรมที่รวมค่าธรรมเนียมมากกว่าเท่านั้น มากกว่า p% โดยเฉพาะอย่างยิ่งมีค่าธรรมเนียมมากกว่า 2p%" หรืออะไรทำนองนั้น พวกเขาหมายถึงอะไรโดยหลอกลวง? หากการทำธุรกรรมสอดคล้องกับประวัติที่ผ่านมาของ blockchain และการทำธุรกรรมรวมค่าธรรมเนียมที่นักขุดพึงพอใจ ยังไม่เพียงพอหรือ? เอาละ ไม่ ไม่จำเป็น หากไม่มีขนาดบล็อกสูงสุด ก็ไม่มีอะไรที่จะเก็บผู้ใช้ที่เป็นอันตรายได้ จากการอัปโหลดธุรกรรมจำนวนมหาศาลถึงตัวเขาในคราวเดียวเพื่อทำให้ช้าลง เครือข่าย กฎหลักสำหรับขนาดบล็อกสูงสุดจะป้องกันไม่ให้ผู้คนใส่ขยะจำนวนมหาศาล ข้อมูลบน blockchain ทั้งหมดพร้อมกันเพื่อทำให้สิ่งต่างๆ ช้าลง แต่ต้องมีกฎดังกล่าวอย่างแน่นอน ปรับตัว เช่น ในช่วงเทศกาลคริสต์มาส การจราจรจะติดขัด และ ขนาดบล็อกจะใหญ่มากและหลังจากนั้นทันทีเพื่อให้ขนาดบล็อกลดลงในภายหลัง อีกครั้ง ดังนั้นเราจึงต้องมี a) หมวกแบบปรับได้บางประเภท หรือ b) หมวกที่ใหญ่เพียงพอถึง 99% ยอดเขาคริสต์มาสที่สมเหตุสมผลไม่ทำให้หมวกแตก แน่นอนว่าอันที่สองนั้นเป็นไปไม่ได้ การประมาณการ - ใครจะรู้ว่าสกุลเงินจะปรับตัวทันหรือไม่? ดีกว่าที่จะปรับตัวและไม่ต้องกังวล เกี่ยวกับมัน แต่แล้วเราก็มีปัญหาเกี่ยวกับทฤษฎีการควบคุม: จะทำให้สิ่งนี้ปรับตัวได้อย่างไรโดยไม่ต้อง ช่องโหว่ในการโจมตีหรือการแกว่งอย่างดุเดือดและบ้าคลั่ง? สังเกตว่าวิธีการปรับเปลี่ยนไม่ได้หยุดผู้ใช้ที่เป็นอันตรายจากการสะสมจำนวนเล็กน้อย ของข้อมูลขยะเมื่อเวลาผ่านไปบน blockchain ทำให้เกิดการขยายตัวในระยะยาว นี่เป็นปัญหาที่แตกต่าง โดยรวมแล้วเหรียญ cryptonote มีปัญหาร้ายแรงด้วย

6 ข้อดีเพิ่มเติม 6.1 การปล่อยก๊าซเรือนกระจกที่ราบรื่น ขอบเขตบนสำหรับจำนวนเหรียญดิจิทัล CryptoNote ทั้งหมดคือ: MSupply = 264 −1 หน่วยอะตอม นี่เป็นข้อจำกัดตามธรรมชาติที่ขึ้นอยู่กับขีดจำกัดในการดำเนินการเท่านั้น ไม่ใช่จากสัญชาตญาณ เช่น “เหรียญ N น่าจะเพียงพอสำหรับทุกคน” เพื่อให้มั่นใจถึงความราบรื่นของกระบวนการปล่อยก๊าซเรือนกระจก เราใช้สูตรต่อไปนี้สำหรับบล็อก รางวัล: รางวัลฐาน = (MSupply -A) ≫18, โดยที่ A คือจำนวนเหรียญที่สร้างขึ้นก่อนหน้านี้ 6.2 พารามิเตอร์ที่ปรับได้ 6.2.1 ความยากลำบาก CryptoNote มีอัลกอริธึมการกำหนดเป้าหมายซึ่งเปลี่ยนความยากของทุกบล็อก นี้ ลดเวลาตอบสนองของระบบเมื่อเครือข่าย hashrate มีการเติบโตหรือลดลงอย่างมาก รักษาอัตราการบล็อกให้คงที่ เมธอด Bitcoin ดั้งเดิมจะคำนวณความสัมพันธ์ของค่าจริง และช่วงเวลาเป้าหมายระหว่างบล็อกปี 2559 ล่าสุด และใช้เป็นตัวคูณสำหรับปัจจุบัน ความยากลำบาก แน่นอนว่าสิ่งนี้ไม่เหมาะสำหรับการคำนวณใหม่อย่างรวดเร็ว (เนื่องจากมีความเฉื่อยมาก) และ ส่งผลให้เกิดความสั่นสะเทือน แนวคิดทั่วไปเบื้องหลังอัลกอริธึมของเราคือการรวมงานทั้งหมดที่โหนดและทำเสร็จแล้ว แบ่งตามเวลาที่พวกเขาใช้ไป การวัดงานคือค่าความยากที่สอดคล้องกัน ในแต่ละบล็อก แต่เนื่องจากการประทับเวลาที่ไม่ถูกต้องและไม่น่าเชื่อถือ เราจึงไม่สามารถระบุเวลาที่แน่ชัดได้ ช่วงเวลาระหว่างบล็อก ผู้ใช้สามารถเปลี่ยนการประทับเวลาของเขาไปสู่อนาคตและครั้งต่อไปได้ ช่วงเวลาอาจจะน้อยหรือเป็นลบอย่างไม่น่าเชื่อ คงจะเกิดเหตุไม่น้อย. ประเภทนี้ เราจึงสามารถจัดเรียงการประทับเวลาและตัดค่าผิดปกติได้ (เช่น 20%) ช่วงของ ค่าที่เหลือคือเวลาที่ใช้ไป 80% ของบล็อกที่เกี่ยวข้อง 6.2.2 ขีดจำกัดขนาด ผู้ใช้ชำระค่าจัดเก็บ blockchain และจะมีสิทธิ์โหวตตามขนาดของมัน นักขุดทุกคน จัดการกับการแลกเปลี่ยนระหว่างต้นทุนและกำไรจากค่าธรรมเนียมให้สมดุลและกำหนดด้วยตนเอง “soft-limit” สำหรับการสร้างบล็อก กฎหลักสำหรับขนาดบล็อกสูงสุดก็จำเป็นเช่นกัน ป้องกันไม่ให้ blockchain ถูกน้ำท่วมด้วยธุรกรรมปลอม อย่างไรก็ตาม ค่านี้ควร ไม่ต้องฮาร์ดโค้ด ให้ MN เป็นค่ามัธยฐานของขนาดบล็อก N สุดท้าย จากนั้นจึงกำหนด "ขีดจำกัดยาก" สำหรับขนาด ของการรับบล็อกคือ \(2 \cdot M_N\) มันป้องกันไม่ให้ blockchain ท้องอืด แต่ยังคงอนุญาตให้มีขีดจำกัด ค่อยๆ เติบโตตามเวลาหากจำเป็น ขนาดของธุรกรรมไม่จำเป็นต้องถูกจำกัดอย่างชัดเจน ล้อมรอบด้วยขนาดของบล็อก และถ้าใครต้องการสร้างธุรกรรมขนาดใหญ่ที่มีอินพุต/เอาท์พุตหลายร้อยรายการ (หรือด้วย ระดับความคลุมเครือในลายเซ็นแหวนสูง) เขาสามารถทำได้โดยการจ่ายค่าธรรมเนียมเพียงพอ 6.2.3 โทษขนาดเกิน นักขุดยังคงมีความสามารถในการสร้างบล็อกที่เต็มไปด้วยธุรกรรมที่ไม่มีค่าธรรมเนียมของตัวเองจนถึงระดับสูงสุด ขนาด 2 \(\cdot\) เมกะไบต์ แม้ว่านักขุดส่วนใหญ่เท่านั้นที่สามารถเปลี่ยนค่ามัธยฐานได้ แต่ก็ยังมี 13 6 ข้อดีเพิ่มเติม 6.1 การปล่อยก๊าซเรือนกระจกที่ราบรื่น ขอบเขตบนสำหรับจำนวนเหรียญดิจิทัล CryptoNote ทั้งหมดคือ: MSupply = 264 −1 หน่วยอะตอม นี่เป็นข้อจำกัดตามธรรมชาติที่ขึ้นอยู่กับขีดจำกัดในการดำเนินการเท่านั้น ไม่ใช่จากสัญชาตญาณ เช่น “เหรียญ N น่าจะเพียงพอสำหรับทุกคน” เพื่อให้มั่นใจถึงความราบรื่นของกระบวนการปล่อยก๊าซเรือนกระจก เราใช้สูตรต่อไปนี้สำหรับบล็อก รางวัล: รางวัลฐาน = (MSupply -A) ≫18, โดยที่ A คือจำนวนเหรียญที่สร้างขึ้นก่อนหน้านี้ 6.2 พารามิเตอร์ที่ปรับได้ 6.2.1 ความยากลำบาก CryptoNote มีอัลกอริธึมการกำหนดเป้าหมายซึ่งเปลี่ยนความยากของทุกบล็อก นี้ ลดเวลาตอบสนองของระบบเมื่อเครือข่าย hashrate มีการเติบโตหรือลดลงอย่างมาก รักษาอัตราการบล็อกให้คงที่ เมธอด Bitcoin ดั้งเดิมจะคำนวณความสัมพันธ์ของค่าจริง และช่วงเวลาเป้าหมายระหว่างบล็อกปี 2559 ล่าสุด และใช้เป็นตัวคูณสำหรับปัจจุบัน ความยากลำบาก แน่นอนว่าสิ่งนี้ไม่เหมาะสำหรับการคำนวณใหม่อย่างรวดเร็ว (เนื่องจากมีความเฉื่อยมาก) และ ส่งผลให้เกิดความสั่นสะเทือน แนวคิดทั่วไปเบื้องหลังอัลกอริธึมของเราคือการรวมงานทั้งหมดที่โหนดและทำเสร็จแล้ว แบ่งตามเวลาที่พวกเขาใช้ไป การวัดงานคือค่าความยากที่สอดคล้องกัน ในแต่ละบล็อก แต่เนื่องจากการประทับเวลาที่ไม่ถูกต้องและไม่น่าเชื่อถือ เราจึงไม่สามารถระบุเวลาที่แน่ชัดได้ ช่วงเวลาระหว่างบล็อก ผู้ใช้สามารถเปลี่ยนการประทับเวลาของเขาไปสู่อนาคตและครั้งต่อไปได้ ช่วงเวลาอาจจะน้อยหรือเป็นลบอย่างไม่น่าเชื่อ คงจะเกิดเหตุไม่น้อย. ประเภทนี้ เราจึงสามารถจัดเรียงการประทับเวลาและตัดค่าผิดปกติได้ (เช่น 20%) ช่วงของ ค่าที่เหลือคือเวลาที่ใช้ไป 80% ของบล็อกที่เกี่ยวข้อง 6.2.2 ขีดจำกัดขนาด ผู้ใช้ชำระค่าจัดเก็บ blockchain และจะมีสิทธิ์โหวตตามขนาดของมัน นักขุดทุกคน เกี่ยวข้องกับการแลกเปลี่ยนระหว่างความสมดุลe ต้นทุนและกำไรจากค่าธรรมเนียมและกำหนดของเขาเอง “soft-limit” สำหรับการสร้างบล็อก กฎหลักสำหรับขนาดบล็อกสูงสุดก็จำเป็นเช่นกัน ป้องกันไม่ให้ blockchain ถูกน้ำท่วมด้วยธุรกรรมปลอม อย่างไรก็ตาม ค่านี้ควร ไม่ต้องฮาร์ดโค้ด ให้ MN เป็นค่ามัธยฐานของขนาดบล็อก N สุดท้าย จากนั้นจึงกำหนด "ขีดจำกัดยาก" สำหรับขนาด ของการรับบล็อกคือ \(2 \cdot M_N\) มันป้องกันไม่ให้ blockchain ท้องอืด แต่ยังคงอนุญาตให้มีขีดจำกัด ค่อยๆ เติบโตตามเวลาหากจำเป็น ขนาดของธุรกรรมไม่จำเป็นต้องถูกจำกัดอย่างชัดเจน ล้อมรอบด้วยขนาดของบล็อก และถ้าใครต้องการสร้างธุรกรรมขนาดใหญ่ที่มีอินพุต/เอาท์พุตหลายร้อยรายการ (หรือด้วย ระดับความคลุมเครือในลายเซ็นแหวนสูง) เขาสามารถทำได้โดยการจ่ายค่าธรรมเนียมเพียงพอ 6.2.3 โทษขนาดเกิน นักขุดยังคงมีความสามารถในการสร้างบล็อกที่เต็มไปด้วยธุรกรรมที่ไม่มีค่าธรรมเนียมของตัวเองจนถึงระดับสูงสุด ขนาด 2 \(\cdot\) เมกะไบต์ แม้ว่านักขุดส่วนใหญ่เท่านั้นที่สามารถเปลี่ยนค่ามัธยฐานได้ แต่ก็ยังมี 13 25 การขยายขนาดเวลาเพื่อให้หนึ่งหน่วยเวลาเป็น N บล็อก ขนาดบล็อกเฉลี่ยอาจยังคงเพิ่มขึ้นตามสัดส่วนแบบทวีคูณเป็น 2ˆt ตามทฤษฎี ในทางกลับกัน หมวกทั่วไปมากกว่า ในบล็อกถัดไปจะเป็น M_nf(M_n) สำหรับบางฟังก์ชัน f สมบัติของ f จะเป็นเท่าใด เราเลือกเพื่อรับประกัน "การเติบโตที่เหมาะสม" ของขนาดบล็อก? ความก้าวหน้าของ ขนาดบล็อก (หลังจากเวลาปรับขนาดใหม่) จะเป็นดังนี้: M_n f(M_n)M_n f(f(M_n)M_n)f(M_n)M_n f(f(f(M_n)M_n)f(M_n)M_n)f(f(M_n)M_n)f( ... และเป้าหมายตรงนี้คือเลือก f โดยให้ลำดับนี้เติบโตไม่เร็วไปกว่าแบบเชิงเส้น หรือบางทีอาจจะเป็น Log(t) แน่นอน ถ้า f(M_n) = a สำหรับค่าคงที่ a ลำดับนี้จะเท่ากับ จริงๆ แล้ว M_n กM_n aˆ2M_n aˆ3M_n ... และแน่นอน วิธีเดียวที่จะจำกัดการเติบโตเชิงเส้นให้ได้มากที่สุดก็คือการเลือก a=1 แน่นอนว่านี่เป็นไปไม่ได้ มันไม่อนุญาตให้มีการเติบโตเลย ในทางกลับกัน หาก f(M_n) เป็นฟังก์ชันที่ไม่คงที่ สถานการณ์ก็จะมากกว่านั้นมาก ซับซ้อนและอาจนำไปสู่วิธีแก้ปัญหาที่หรูหรา ฉันจะคิดเรื่องนี้สักพัก ค่าธรรมเนียมนี้จะต้องมากพอที่จะลดค่าปรับขนาดส่วนเกินจากส่วนถัดไป ทำไมผู้ใช้ทั่วไปถึงคิดว่าเป็นผู้ชายล่ะฮะ? ฮะ?

ความเป็นไปได้ที่จะขยาย blockchain และสร้างภาระเพิ่มเติมบนโหนด ที่จะท้อแท้ ผู้เข้าร่วมที่ประสงค์ร้ายจากการสร้างบล็อกขนาดใหญ่เราแนะนำฟังก์ชันการลงโทษ: รางวัลใหม่ = รางวัลฐาน \(\cdot\) BlkSize มน −1 2 กฎนี้ใช้เฉพาะเมื่อ BlkSize มากกว่าขนาดบล็อกอิสระขั้นต่ำที่ควรจะเป็น ใกล้เคียงกับค่าสูงสุด (10kb, \(M_N \cdot 110\%\)) คนงานเหมืองได้รับอนุญาตให้สร้างบล็อกที่มี "ขนาดปกติ" และแม้แต่เท่าๆ กัน เกินด้วยผลกำไรเมื่อค่าธรรมเนียมโดยรวมเกินกว่าค่าปรับ แต่ค่าธรรมเนียมไม่น่าจะเติบโต ไม่เหมือนค่าปรับกำลังสองจึงจะมีความสมดุล 6.3 สคริปต์ธุรกรรม CryptoNote มีระบบย่อยการเขียนสคริปต์ที่เรียบง่ายมาก ผู้ส่งระบุนิพจน์ Φ = f (x1, x2, . . . , xn) โดยที่ n คือจำนวนคีย์สาธารณะปลายทาง {Pi}n ผม=1. ไบนารีห้าเท่านั้น รองรับตัวดำเนินการ: ต่ำสุด สูงสุด ผลรวม mul และ cmp เมื่อผู้รับชำระเงินนี้แล้ว เขาสร้างลายเซ็น \(0 \leq k \leq n\) และส่งต่อไปยังอินพุตธุรกรรม กระบวนการตรวจสอบ เพียงประเมิน Φ ด้วย xi = 1 เพื่อตรวจสอบลายเซ็นที่ถูกต้องสำหรับคีย์สาธารณะ Pi และ xi = 0 ผู้ตรวจสอบยอมรับการพิสูจน์ iffΦ > 0 แม้จะเรียบง่าย แต่วิธีนี้ก็ครอบคลุมทุกกรณีที่เป็นไปได้: • ลายเซ็นหลาย/เกณฑ์ สำหรับลายเซ็นหลายลายเซ็นแบบ Bitcoin สไตล์ “M-out-of-N” (เช่น ผู้รับควรจัดเตรียมลายเซ็นที่ถูกต้องอย่างน้อย \(0 \leq M \leq N\)) Φ = x1+x2+ . .+xN \(\geq M\) (เพื่อความชัดเจน เราใช้สัญลักษณ์พีชคณิตทั่วไป) ลายเซ็นขีดจำกัดแบบถ่วงน้ำหนัก (บางคีย์อาจมีความสำคัญมากกว่าคีย์อื่น) สามารถแสดงเป็น Φ = \(w_1 \cdot x_1\) + \(w_2 \cdot x_2\) + . . . + \(w_N \cdot x_N\) \(\geq wM\) และสถานการณ์ที่มาสเตอร์คีย์สอดคล้องกับ Φ = สูงสุด(\(M \cdot x\), x1 + x2 + . . . + xN) \(\geq M\) มันง่ายที่จะแสดงให้เห็นว่าเคสที่ซับซ้อนใดๆ ก็สามารถเป็นได้ แสดงกับตัวดำเนินการเหล่านี้ เช่น พวกเขาสร้างพื้นฐาน • การป้องกันด้วยรหัสผ่าน การครอบครองรหัสผ่านลับนั้นเทียบเท่ากับความรู้ของ คีย์ส่วนตัว ซึ่งกำหนดมาจากรหัสผ่าน: k = KDF(s) จึงเป็นผู้รับ สามารถพิสูจน์ได้ว่าเขารู้รหัสผ่านโดยการให้ลายเซ็นอื่นใต้คีย์ k ผู้ส่งเพียงแค่เพิ่มกุญแจสาธารณะที่เกี่ยวข้องให้กับเอาท์พุทของเขาเอง โปรดทราบว่าสิ่งนี้ วิธีการมีความปลอดภัยมากกว่า "ปริศนาธุรกรรม" ที่ใช้ใน Bitcoin [13] โดยที่ รหัสผ่านถูกส่งอย่างชัดเจนในอินพุต • กรณีเสื่อมโทรม Φ = 1 หมายความว่าใครๆ ก็สามารถใช้จ่ายเงินได้ Φ = 0 ทำเครื่องหมาย ผลผลิตออกมาใช้ไม่ได้ตลอดไป ในกรณีที่สคริปต์เอาต์พุตรวมกับกุญแจสาธารณะมีขนาดใหญ่เกินไปสำหรับผู้ส่ง สามารถใช้ประเภทเอาต์พุตพิเศษซึ่งระบุว่าผู้รับจะใส่ข้อมูลนี้ลงในอินพุตของเขา ในขณะที่ผู้ส่งให้ข้อมูลเพียง hash เท่านั้น วิธีการนี้คล้ายกับ “จ่ายเพื่อ-hash” ของ Bitcoin คุณลักษณะ แต่แทนที่จะเพิ่มคำสั่งสคริปต์ใหม่ เราจะจัดการกรณีนี้ที่โครงสร้างข้อมูล ระดับ 7 บทสรุป เราได้ตรวจสอบข้อบกพร่องที่สำคัญใน Bitcoin และเสนอแนวทางแก้ไขที่เป็นไปได้ คุณสมบัติที่เป็นประโยชน์เหล่านี้และการพัฒนาอย่างต่อเนื่องของเราทำให้เกิดระบบเงินสดอิเล็กทรอนิกส์ใหม่ CryptoNote เป็นคู่แข่งสำคัญของ Bitcoin ซึ่งเหนือกว่าทางแยกทั้งหมด 14 ความเป็นไปได้ที่จะขยาย blockchain และสร้างภาระเพิ่มเติมบนโหนด ที่จะท้อแท้ ผู้เข้าร่วมที่ประสงค์ร้ายจากการสร้างบล็อกขนาดใหญ่เราแนะนำฟังก์ชันการลงโทษ: รางวัลใหม่ = รางวัลฐาน \(\cdot\) BlkSize มน −1 2 กฎนี้ใช้เฉพาะเมื่อ BlkSize มากกว่าขนาดบล็อกอิสระขั้นต่ำที่ควรจะเป็น ใกล้เคียงกับค่าสูงสุด (10kb, \(M_N \cdot 110\%\)) คนงานเหมืองได้รับอนุญาตให้สร้างบล็อกที่มี "ขนาดปกติ" และแม้แต่เท่าๆ กัน เกินด้วยผลกำไรเมื่อค่าธรรมเนียมโดยรวมเกินกว่าค่าปรับ แต่ค่าธรรมเนียมไม่น่าจะเติบโต ไม่เหมือนค่าปรับกำลังสองจึงจะมีความสมดุล 6.3 สคริปต์ธุรกรรม CryptoNote มีระบบย่อยการเขียนสคริปต์ที่เรียบง่ายมาก ผู้ส่งระบุนิพจน์ Φ = f (x1, x2, . . . , xn) โดยที่ n คือจำนวนคีย์สาธารณะปลายทาง {Pi}n ผม=1. ไบนารีห้าเท่านั้น รองรับตัวดำเนินการ: ต่ำสุด สูงสุด ผลรวม mul และ cmp เมื่อผู้รับชำระเงินนี้แล้ว เขาสร้างลายเซ็น \(0 \leq k \leq n\) และส่งต่อไปยังอินพุตธุรกรรม กระบวนการตรวจสอบ เพียงประเมิน Φ ด้วย xi = 1 เพื่อตรวจสอบลายเซ็นที่ถูกต้องสำหรับคีย์สาธารณะ Pi และ xi = 0 ผู้ตรวจสอบยอมรับการพิสูจน์ iffΦ > 0 แม้จะเรียบง่าย แต่วิธีนี้ก็ครอบคลุมทุกกรณีที่เป็นไปได้: • ลายเซ็นหลาย/เกณฑ์ สำหรับลายเซ็นหลายลายเซ็นแบบ Bitcoin สไตล์ “M-out-of-N” (เช่น ผู้รับควรจัดเตรียมลายเซ็นที่ถูกต้องอย่างน้อย \(0 \leq M \leq N\)) Φ = x1+x2+ . .+xN \(\geq M\) (เพื่อความชัดเจน เราใช้สัญลักษณ์พีชคณิตทั่วไป) ลายเซ็นขีดจำกัดแบบถ่วงน้ำหนัก (บางคีย์อาจมีความสำคัญมากกว่าคีย์อื่น) สามารถแสดงเป็น Φ = \(w_1 \cdot x_1\) + \(w_2 \cdot x_2\) + . . . + \(w_N \cdot x_N\) \(\geq wM\) และฉากio โดยที่มาสเตอร์คีย์สอดคล้องกับ Φ = สูงสุด(\(M \cdot x\), x1 + x2 + . . . + xN) \(\geq M\) มันง่ายที่จะแสดงให้เห็นว่าเคสที่ซับซ้อนใดๆ ก็สามารถเป็นได้ แสดงกับตัวดำเนินการเหล่านี้ เช่น พวกเขาสร้างพื้นฐาน • การป้องกันด้วยรหัสผ่าน การครอบครองรหัสผ่านลับนั้นเทียบเท่ากับความรู้ของ คีย์ส่วนตัว ซึ่งกำหนดมาจากรหัสผ่าน: k = KDF(s) จึงเป็นผู้รับ สามารถพิสูจน์ได้ว่าเขารู้รหัสผ่านโดยการให้ลายเซ็นอื่นใต้คีย์ k ผู้ส่งเพียงแค่เพิ่มกุญแจสาธารณะที่เกี่ยวข้องให้กับเอาท์พุทของเขาเอง โปรดทราบว่าสิ่งนี้ วิธีการนี้มีความปลอดภัยมากกว่า "ปริศนาธุรกรรม" ที่ใช้ใน Bitcoin [13] โดยที่ รหัสผ่านถูกส่งอย่างชัดเจนในอินพุต • กรณีเสื่อมโทรม Φ = 1 หมายความว่าใครๆ ก็สามารถใช้จ่ายเงินได้ Φ = 0 ทำเครื่องหมาย ผลผลิตออกมาใช้ไม่ได้ตลอดไป ในกรณีที่สคริปต์เอาต์พุตรวมกับกุญแจสาธารณะมีขนาดใหญ่เกินไปสำหรับผู้ส่ง สามารถใช้ประเภทเอาต์พุตพิเศษซึ่งระบุว่าผู้รับจะใส่ข้อมูลนี้ลงในอินพุตของเขา ในขณะที่ผู้ส่งให้ข้อมูลเพียง hash เท่านั้น วิธีการนี้คล้ายกับ “จ่ายเพื่อ-hash” ของ Bitcoin คุณลักษณะ แต่แทนที่จะเพิ่มคำสั่งสคริปต์ใหม่ เราจะจัดการกรณีนี้ที่โครงสร้างข้อมูล ระดับ 7 บทสรุป เราได้ตรวจสอบข้อบกพร่องที่สำคัญใน Bitcoin และเสนอแนวทางแก้ไขที่เป็นไปได้ คุณสมบัติที่เป็นประโยชน์เหล่านี้และการพัฒนาอย่างต่อเนื่องของเราทำให้เกิดระบบเงินสดอิเล็กทรอนิกส์ใหม่ CryptoNote เป็นคู่แข่งสำคัญของ Bitcoin ซึ่งเหนือกว่าทางแยกทั้งหมด 14 26 สิ่งนี้อาจไม่จำเป็นหากเราสามารถหาวิธีผูกขนาดบล็อกเมื่อเวลาผ่านไปได้... สิ่งนี้ก็ไม่ถูกต้องเช่นกัน พวกเขาเพิ่งตั้งค่า "NewReward" ให้เป็นพาราโบลาที่หันขึ้นด้านบน ขนาดบล็อกเป็นตัวแปรอิสระ รางวัลใหม่จึงระเบิดขึ้นจนไม่มีที่สิ้นสุด ถ้าในทางกลับกัน มือ รางวัลใหม่คือสูงสุด(0,รางวัลฐาน(1-(BlkSize/Mn - 1)ˆ2)) จากนั้นรางวัลใหม่ จะเป็นพาราโบลาหันหน้าลงโดยมีจุดสูงสุดที่ขนาดบล็อก = Mn และมีจุดตัดที่ ขนาดบล็อก = 0 และขนาดบล็อก = 2Mn และนั่นดูเหมือนจะเป็นสิ่งที่พวกเขาพยายามจะอธิบาย อย่างไรก็ตามสิ่งนี้ไม่ได้

Analiz

Bitcoin network total computation speed chart showing hashrate and difficulty from 2012 to 2013

5 Dünyada bir milyar insanın günde bir dolardan daha az bir parayla yaşaması pek de önemli değil. ve herhangi bir madencilik ağına katılma konusunda hiçbir umudum yok... ama ekonomik bir Bir işlemci-bir oy ilkesine dayalı bir p2p para sistemi tarafından yönlendirilen dünya, muhtemelen daha fazla olacaktır. Kısmi rezerv bankacılığının yönlendirdiği bir sistemden daha adil. Ancak Cryptonote'un protokolü hala %51 dürüst kullanıcı gerektiriyor... örneğin Cryptonote'a bakın Geliştiricilerden biri olan Pliskov'un, geleneksel veriyi değiştirmeblockchain %51 saldırısının hala işe yarayabileceğini söylediği forumlarda. https://forum.cryptonote.org/viewtopic.php?f=2&t=198 Gerçekten %51 dürüst kullanıcıya ihtiyacınız olmadığını unutmayın. Gerçekten ihtiyacın olan tek bir sahtekârın olmaması ağın hashing gücünün %51'inden fazlasına sahip olan grup." Bitcoin'in bu sözde sorununa "adaptif katılık" adını verelim. Cryptonote'un uyarlanabilirlik çözümü katılık, protokol parametre değerlerinde uyarlanabilir esnekliktir. Daha büyük blok boyutlarına ihtiyacınız varsa, sorun değil, ağ sürekli olarak yavaş yavaş ayarlanıyor olacaktır. Yani, Bitcoin'in zaman içinde zorluğu ayarlama şekli tüm protokolümüzde kopyalanabilir Böylece protokolün güncellenmesi için ağ konsensusunun elde edilmesine gerek kalmaz. Görünüşte bu iyi bir fikir gibi görünüyor, ancak dikkatli bir öngörü olmadan, kendi kendini ayarlayan bir sistem oldukça öngörülemez ve kaotik hale gelebilir. Bu konuyu daha sonra detaylı olarak inceleyeceğiz fırsatlar ortaya çıkıyor. "İyi" sistemler uyarlanabilir katı ve uyarlanabilir arasında bir yerdedir esnektir ve belki de katılığın kendisi bile uyarlanabilirdir. Eğer gerçekten "bir CPU-bir oy"a sahip olsaydık, %51'e ulaşmak için işbirliği yapıp havuzlar geliştirebilirdik daha zor olurdu. Dünyadaki her CPU'nun telefonlardan madencilik yapmasını beklerdik Tesla'nız şarj olurken yerleşik CPU'ya. http://en.wikipedia.org/wiki/Pareto_principle Pareto dengesinin bir şekilde kaçınılmaz olduğunu iddia ediyorum. Sistemin %20'si CPU'ların %80'ine sahip olacak veya sistemin %20'si ASIC'lerin %80'ine sahip olacak. Bunu varsayıyorum çünkü toplumdaki temel zenginlik dağılımı zaten Pareto dağılımını gösteriyor, ve yeni madenciler katıldıkça bu temel dağılımdan yararlanıyorlar. Ancak, bir işlemci-bir oy ilkesine dayalı protokollerin donanım üzerinde yatırım getirisi göreceğini savunuyorum. Blok Düğüm başına ödül, ağdaki düğüm sayısıyla daha yakından orantılı olacaktır çünkü Performansın düğümler arasındaki dağılımı çok daha sıkı olacaktır. Bitcoin, diğer tarafta bir blok ödülünün (düğüm başına) hesaplama kapasitesiyle daha orantılı olduğunu düşünüyor düğüm. Yani madencilik oyununda hâlâ yalnızca "büyük adamlar" var. Öte yandan, Pareto ilkesi hâlâ yürürlükte olsa da, bir işlemcinin bir oy olduğu bir dünyada herkes ağ güvenliğine katılır ve bir miktar madencilik geliri elde eder. ASIC dünyasında, her XBox'u ve cep telefonunu madencilik için donatmak mantıklı değil. Tek işlemcili bir oy dünyasında, madencilik ödülü açısından bu çok mantıklı. Keyifli bir sonuç olarak, Oyların sayısı arttıkça %51 oy almak daha zor oluyor ve bu da güzel bir sonuç sağlıyor. ağ güvenliğine fayda sağlar..Daha önce açıklanan donanım. Küresel hashoranın önemli ölçüde azaldığını varsayalım. Bir anlığına artık madencilik gücünü kullanarak zinciri çatallayabilir ve çift harcama yapabilir. Göreceğimiz gibi Bu makalenin ilerleyen kısımlarında, daha önce anlatılan olayın gerçekleşmesi pek olası değildir. 2.3 Düzensiz emisyon Bitcoin önceden belirlenmiş bir emisyon oranına sahiptir: çözülen her blok sabit miktarda para üretir. Yaklaşık her dört yılda bir bu ödül yarıya indirilir. Asıl amaç bir yaratmaktı üstel bozulma ile sınırlı düzgün emisyon, ancak aslında parçalı doğrusal bir emisyona sahibiz kesme noktaları Bitcoin altyapısında sorunlara neden olabilecek işlev. Kırılma noktası oluştuğunda madenciler önceki değerlerinin yalnızca yarısını almaya başlarlar. ödül. 12,5 ile 6,25 BTC (2020 yılı için öngörülen) arasındaki mutlak fark, tolere edilebilir görünüyor. Ancak Kasım ayında gerçekleşen 50 ila 25 BTC düşüşünü incelerken 28 2012, madencilik camiasının önemli sayıda üyesi için uygunsuz bulundu. Şekil Şekil 1, Kasım ayı sonunda ağın hashoranında çarpıcı bir düşüş gösteriyor; yarılanma gerçekleşti. Bu olay kötü niyetli birey için mükemmel bir an olabilirdi. proof-of-work işlev bölümünde çift harcama saldırısı [36] gerçekleştirmek için açıklanmıştır. Şekil 1. Bitcoin hashoran tablosu (kaynak: http://bitcoin.sipa.be) 2.4 Sabit kodlanmış sabitler Bitcoin, bazıları orijinal tasarımın doğal unsurları olan birçok sabit kodlanmış sınıra sahiptir (ör. blok sıklığı, maksimum para arzı miktarı, onay sayısı) ve diğer yapay kısıtlamalar gibi görünüyor. Hızla değişememe gibi, sınırlar da değil 3 Daha önce açıklanan donanım. Küresel hashoranın önemli ölçüde azaldığını varsayalım. Bir anlığına artık madencilik gücünü kullanarak zinciri çatallayabilir ve çift harcama yapabilir. Göreceğimiz gibi Bu makalenin ilerleyen kısımlarında, daha önce anlatılan olayın gerçekleşmesi pek olası değildir. 2.3 Düzensiz emisyon Bitcoin önceden belirlenmiş bir emisyon oranına sahiptir: çözülen her blok sabit miktarda para üretir. Yaklaşık her dört yılda bir bu ödül yarıya indirilir. Asıl amaç bir yaratmaktı üstel bozulma ile sınırlı düzgün emisyon, ancak aslında parçalı doğrusal bir emisyona sahibiz kesme noktaları Bitcoin altyapısında sorunlara neden olabilecek işlev. Kırılma noktası oluştuğunda madenciler önceki değerlerinin yalnızca yarısını almaya başlarlar. ödül. 12,5 ile 6,25 BTC (2020 yılı için öngörülen) arasındaki mutlak fark, tolere edilebilir görünüyor. Ancak Kasım ayında gerçekleşen 50 ila 25 BTC düşüşünü incelerken 28 2012, madencilik camiasının önemli sayıda üyesi için uygunsuz bulundu. Şekil Şekil 1, Kasım ayı sonunda ağın hashoranında çarpıcı bir düşüş gösteriyor; yarılanma gerçekleşti. Bu olay kötü niyetli birey için mükemmel bir an olabilirdi. proof-of-work işlev bölümünde çift harcama saldırısı [36] gerçekleştirmek için açıklanmıştır. Şekil 1. Bitcoin hashoran tablosu (kaynak: http://bitcoin.sipa.be) 2.4 Sabit kodlanmış sabitler Bitcoin, bazıları orijinal tasarımın doğal unsurları olan birçok sabit kodlanmış sınıra sahiptir (ör. blok sıklığı, maksimum para arzı miktarı, onay sayısı) ve diğer yapay kısıtlamalar gibi görünüyor. Hızla değişememe gibi, sınırlar da değil 3 6 Buna bir zombi saldırısı diyelim. Sürekli emisyonun nasıl olabileceğini tartışalım zombi saldırısı senaryosunda bir işlemci bir oy ile ilgili. Tek işlemcinin tek oy olduğu bir dünyada, her cep telefonu ve araba boşta kaldığında madencilik yapıyor olurdu. Bir madencilik çiftliği oluşturmak için yığınla ucuz donanım toplamak çok çok kolay olurdu çünkü neredeyse her şeyin içinde bir CPU vardır. Öte yandan, bu noktada CPU sayısı % 51'lik bir saldırı başlatmak için gerekli olanın oldukça şaşırtıcı olacağını düşünüyorum. Ayrıca, kesinlikle çünkü ucuz donanım toplamak kolay olacaktır, makul bir şekilde Pek çok insan CPU ile her şeyi istiflemeye başlıyor. Tek işlemcinin tek oy olduğu bir dünyada silahlanma yarışı ASIC dünyasına göre mutlaka daha eşitlikçidir. Bu nedenle ağda bir süreksizlik Emisyon oranlarından kaynaklanan güvenlik, tek işlemcinin bir oy olduğu bir dünyada DAHA AZ sorun olmalıdır. Ancak geriye iki gerçek kalıyor: 1) Emisyon oranındaki süreksizlik, emisyon oranında kekemelik etkisine yol açabilir. hem ekonomi hem de ağ güvenliği açısından kötü, ve 2) %51'lik bir saldırı olmasına rağmen Ucuz donanım toplayan biri tarafından gerçekleştirilen tek işlemcili bir bilgisayarda da gerçekleşebilir-oy ver dünya, sanki daha zor olmalı. Muhtemelen buna karşı önlem, tüm sahtekâr aktörlerin bunu deneyecek olmasıdır eşzamanlı olarak Bitcoin'nin önceki güvenlik kavramına geri dönüyoruz: "dürüst olmayanlara ihtiyacımız yok ağın %51'inden fazlasını kontrol eden grup." Yazar burada bitcoin ile ilgili bir problemin madeni para emisyonundaki süreksizlik olduğunu iddia ediyor oranı, ağ katılımında ve dolayısıyla ağ güvenliğinde ani düşüşlere neden olabilir. Böylece, sürekli, farklılaştırılabilir, düzgün bir madeni para emisyon oranı tercih edilir. Yazar mutlaka hatalı değil. Ağ katılımındaki herhangi bir ani düşüş, böyle bir soruna yol açıyor ve eğer bunun bir kaynağını ortadan kaldırabiliyorsak bunu kaldırmalıyız. Bunu söyledikten sonra, Uzun süreli "nispeten sabit" madeni para emisyonunun ani değişikliklerle kesintiye uğraması mümkün ekonomik açıdan gidilecek ideal yoldur. Ben bir ekonomist değilim. Yani belki biz Ağ güvenliğini ekonomik bir şeyle takas edip etmeyeceğimize karar vermemiz gerekiyor; burada ne var? http://arxiv.org/abs/1402.2009Gerektiğinde bunları kullanmak ana dezavantajlara neden olur. Maalesef ne zaman geleceğini tahmin etmek zor. sabitlerin değiştirilmesi gerekebilir ve bunların değiştirilmesi korkunç sonuçlara yol açabilir. Felaket sonuçlara yol açan sabit kodlanmış bir limit değişikliğine iyi bir örnek, bloktur. boyut sınırı 250kb1 olarak ayarlandı. Bu limit yaklaşık 10.000 standart işlemi tutmaya yetiyordu. içinde 2013 yılının başında bu sınıra neredeyse ulaşıldı ve bu limitin artırılması konusunda anlaşmaya varıldı. Sınır. Değişiklik cüzdan 0.8 sürümünde uygulandı ve 24 blokluk zincir bölünmesiyle sona erdi ve başarılı bir çift harcama saldırısı [9]. Hata Bitcoin protokolünde olmasa da bunun yerine veritabanı motorunda, eğer varsa basit bir stres testiyle kolayca yakalanabilirdi. yapay olarak getirilmiş blok boyutu sınırı yoktur. Sabitler ayrıca bir tür merkezileştirme noktası görevi görür. Eşler arası doğasına rağmen Bitcoin, düğümlerin büyük çoğunluğu tarafından geliştirilen resmi referans istemcisi [10] kullanılıyor küçük bir grup insan. Bu grup protokolde değişiklik yapılmasına karar verir ve çoğu insan bu değişiklikleri “doğruluklarına” bakılmaksızın kabul ediyor. Bazı kararlar neden oldu hararetli tartışmalar ve hatta boykot çağrıları [11], bu da topluluğun ve geliştiriciler bazı önemli noktalarda aynı fikirde olmayabilir. Bu nedenle bir protokole sahip olmak mantıklı görünüyor Bu sorunları önlemenin olası bir yolu olarak kullanıcı tarafından yapılandırılabilen ve kendi kendini ayarlayan değişkenler kullanılır. 2.5 Hacimli komut dosyaları Bitcoin'deki komut dosyası sistemi ağır ve karmaşık bir özelliktir. Potansiyel olarak kişinin yaratmasına izin verir karmaşık işlemler [12], ancak güvenlik endişeleri nedeniyle bazı özellikleri devre dışı bırakıldı ve bazıları hiç kullanılmamış bile [13]. Komut dosyası (hem gönderici hem de alıcı kısımları dahil) Bitcoin'daki en popüler işlem için şuna benzer: OP DUP OP HASH160 OP EQUALVERIFY OP CHECKSIG. Komut dosyası 164 bayt uzunluğundadır ve tek amacı alıcının bu bilgiye sahip olup olmadığını kontrol etmektir. İmzasını doğrulamak için gizli anahtar gerekiyor.

การวิเคราะห์

Bitcoin network total computation speed chart showing hashrate and difficulty from 2012 to 2013

5 ไม่ใช่ว่ามันจะสำคัญมากเกินไปเมื่อผู้คนนับพันล้านคนในโลกนี้ใช้ชีวิตด้วยเงินน้อยกว่าหนึ่งดอลลาร์ต่อหนึ่งดอลลาร์ และไม่มีความหวังที่จะเข้าร่วมในเครือข่ายการขุดใดๆ... แต่เป็นเศรษฐกิจ โลกที่ขับเคลื่อนด้วยระบบสกุลเงิน p2p ที่มีหนึ่ง cpu หนึ่งโหวตน่าจะมากกว่านั้น ยุติธรรมกว่าระบบที่ขับเคลื่อนโดยธนาคารสำรองแบบเศษส่วน แต่โปรโตคอลของ Cryptonote ยังคงต้องการผู้ใช้ที่ซื่อสัตย์ 51%... ดูตัวอย่าง Cryptonote ฟอรัมที่ Pliskov หนึ่งในนักพัฒนากล่าวว่าการโจมตีแบบแทนที่ข้อมูลบน theblockchain 51% ยังคงสามารถทำงานได้ https://forum.cryptonote.org/viewtopic.php?f=2&t=198 โปรดทราบว่าคุณไม่จำเป็นต้องมีผู้ใช้ที่ซื่อสัตย์ถึง 51% คุณแค่ต้องการ "ไม่มีความทุจริตแม้แต่คนเดียว" ฝ่ายที่มีอำนาจมากกว่า 51% ของ hashing ของเครือข่าย" ลองเรียกสิ่งนี้ว่าปัญหาของ bitcoin ว่า "ความแข็งแกร่งในการปรับตัว" โซลูชันของ Cryptonote เพื่อการปรับตัว ความแข็งแกร่งคือความยืดหยุ่นในการปรับตัวในค่าพารามิเตอร์โปรโตคอล หากคุณต้องการขนาดบล็อกที่ใหญ่ขึ้น ไม่มีปัญหา เครือข่ายจะมีการปรับเบาๆ ตลอดเวลา กล่าวคือ วิธีที่ Bitcoin ปรับความยากเมื่อเวลาผ่านไปสามารถทำซ้ำได้ทั่วทั้งโปรโตคอลของเรา พารามิเตอร์เพื่อให้ไม่จำเป็นต้องได้รับฉันทามติของเครือข่ายในการอัพเดตโปรโตคอล ดูเผินๆ ดูเหมือนเป็นความคิดที่ดี แต่หากปราศจากการไตร่ตรองอย่างรอบคอบ จะเป็นการปรับตัวเอง ระบบอาจคาดเดาไม่ได้และวุ่นวายเลยทีเดียว เราจะพิจารณาเรื่องนี้เพิ่มเติมในภายหลังในฐานะ โอกาสเกิดขึ้น ระบบ "ดี" อยู่ระหว่างการปรับตัวที่เข้มงวดกับการปรับตัว ยืดหยุ่นได้ และบางทีแม้แต่ความแข็งแกร่งเองก็สามารถปรับเปลี่ยนได้ หากเรามี "หนึ่ง CPU-หนึ่ง-โหวต" อย่างแท้จริง ให้ร่วมมือกันและพัฒนากลุ่มเพื่อให้ได้คะแนนถึง 51% คงจะลำบากกว่า.. เราคาดหวังว่า CPU ทุกตัวในโลกจะถูกขุดจากโทรศัพท์ ไปยัง CPU ออนบอร์ดใน Tesla ของคุณในขณะที่กำลังชาร์จ http://en.wikipedia.org/wiki/Pareto_principle ฉันอ้างว่าสมดุลของพาเรโตค่อนข้างหลีกเลี่ยงไม่ได้ 20% ของระบบจะเป็นเช่นนั้น เป็นเจ้าของ CPU 80% หรือ 20% ของระบบจะเป็นเจ้าของ ASIC 80% ฉันตั้งสมมติฐานนี้เพราะว่าการกระจายความมั่งคั่งในสังคมนั้นได้แสดงให้เห็นการกระจายของพาเรโตแล้ว และเมื่อมีผู้ขุดรายใหม่เข้าร่วม พวกเขาจะถูกดึงมาจากการกระจายพื้นฐานนั้น อย่างไรก็ตาม ฉันยืนยันว่าโปรโตคอลที่มีหนึ่ง cpu-หนึ่งโหวตจะเห็น ROI บนฮาร์ดแวร์ บล็อก รางวัลต่อโหนดจะแปรผันตามจำนวนโหนดในเครือข่ายอย่างใกล้ชิดมากขึ้นเพราะว่า การกระจายประสิทธิภาพข้ามโหนดจะแน่นแฟ้นยิ่งขึ้น Bitcoin อีกด้านหนึ่ง hand เห็นรางวัลบล็อก (ต่อโหนด) เป็นสัดส่วนมากกว่าความสามารถในการคำนวณของสิ่งนั้น โหนด กล่าวคือ มีเพียง "หนุ่มใหญ่" เท่านั้นที่ยังคงอยู่ในเกมการขุด ในทางกลับกัน แม้ว่าหลักการ Pareto จะยังคงมีบทบาทอยู่ แต่ในโลกที่มีหนึ่ง CPU หนึ่งเสียง ทุกคน มีส่วนร่วมในการรักษาความปลอดภัยเครือข่ายและได้รับรายได้จากการขุดเล็กน้อย ในโลกของ ASIC มันไม่สมเหตุสมผลเลยที่จะขุด XBox และโทรศัพท์มือถือทุกเครื่องมาทำเหมือง ในโลกแบบ onecpu-one-vote มันสมเหตุสมผลมากในแง่ของรางวัลการขุด ผลอันน่ายินดีก็คือ การได้คะแนนเสียงถึง 51% จะยิ่งยากขึ้นไปอีกเมื่อมีคะแนนโหวตเพิ่มมากขึ้นเรื่อยๆ ทำให้ได้คะแนนน่ารัก ประโยชน์ต่อความปลอดภัยของเครือข่าย..ฮาร์ดแวร์ที่อธิบายไว้ก่อนหน้านี้ สมมติว่าอัตรา hash ทั่วโลกลดลงอย่างมีนัยสำคัญ แม้กระทั่งสำหรับ ขณะนี้เขาสามารถใช้พลังการขุดเพื่อแยกโซ่และใช้จ่ายสองเท่า ดังที่เราจะได้เห็น ภายหลังในบทความนี้ ไม่น่าเป็นไปได้ที่เหตุการณ์ที่อธิบายไว้ก่อนหน้านี้จะเกิดขึ้น 2.3 การปล่อยก๊าซเรือนกระจกไม่สม่ำเสมอ Bitcoin มีอัตราการปล่อยก๊าซที่กำหนดไว้ล่วงหน้า: แต่ละบล็อกที่แก้ไขได้จะผลิตเหรียญจำนวนคงที่ ประมาณทุกๆ สี่ปี รางวัลนี้จะลดลงครึ่งหนึ่ง ความตั้งใจเดิมคือการสร้าง การแผ่รังสีที่ราบรื่นจำกัดโดยมีการสลายตัวแบบเอ็กซ์โปเนนเชียล แต่จริงๆ แล้ว เรามีการแผ่รังสีเชิงเส้นแบบชิ้นๆ ฟังก์ชั่นที่มีจุดพักอาจทำให้เกิดปัญหากับโครงสร้างพื้นฐาน Bitcoin เมื่อจุดพักเกิดขึ้น นักขุดจะเริ่มได้รับเพียงครึ่งหนึ่งของมูลค่าก่อนหน้า รางวัล ความแตกต่างสัมบูรณ์ระหว่าง 12.5 และ 6.25 BTC (คาดการณ์สำหรับปี 2020) อาจ ดูเหมือนจะทนได้ อย่างไรก็ตาม เมื่อตรวจสอบการลดลง 50 ถึง 25 BTC ที่เกิดขึ้นในเดือนพฤศจิกายน เมื่อวันที่ 28 กันยายน 2012 รู้สึกว่าไม่เหมาะสมสำหรับสมาชิกของชุมชนเหมืองแร่จำนวนที่มีนัยสำคัญ รูปที่ 1 แสดงการลดลงอย่างมากในอัตรา hashของเครือข่ายในช่วงปลายเดือนพฤศจิกายน ซึ่งตรงกับเวลาที่ การลดจำนวนลงครึ่งหนึ่งเกิดขึ้น เหตุการณ์นี้อาจเป็นช่วงเวลาที่สมบูรณ์แบบสำหรับบุคคลที่มุ่งร้าย อธิบายไว้ในส่วนฟังก์ชัน proof-of-work เพื่อดำเนินการโจมตีการใช้จ่ายสองเท่า [36] รูปที่ 1. Bitcoin hashกราฟอัตรา (ที่มา: http://bitcoin.sipa.be) 2.4 ค่าคงที่แบบฮาร์ดโค้ด Bitcoin มีข้อจำกัดแบบฮาร์ดโค้ดมากมาย โดยที่บางส่วนเป็นองค์ประกอบตามธรรมชาติของการออกแบบดั้งเดิม (เช่น ความถี่บล็อก ปริมาณเงินสูงสุด จำนวนการยืนยัน) ในขณะที่อื่นๆ ดูเหมือนจะเป็นข้อจำกัดเทียม ไม่ได้มีข้อจำกัดมากนัก เนื่องจากไม่สามารถเปลี่ยนแปลงได้อย่างรวดเร็ว 3 ฮาร์ดแวร์ที่อธิบายไว้ก่อนหน้านี้ สมมติว่าอัตรา hash ทั่วโลกลดลงอย่างมีนัยสำคัญ แม้แต่ด้วยซ้ำ ขณะนี้เขาสามารถใช้พลังการขุดเพื่อแยกโซ่และใช้จ่ายสองเท่า ดังที่เราจะได้เห็น ภายหลังในบทความนี้ ไม่น่าเป็นไปได้ที่เหตุการณ์ที่อธิบายไว้ก่อนหน้านี้จะเกิดขึ้น 2.3 การปล่อยก๊าซเรือนกระจกไม่สม่ำเสมอ Bitcoin มีอัตราการปล่อยก๊าซที่กำหนดไว้ล่วงหน้า: แต่ละบล็อกที่แก้ไขได้จะผลิตเหรียญจำนวนคงที่ ประมาณทุกๆ สี่ปี รางวัลนี้จะลดลงครึ่งหนึ่ง ความตั้งใจเดิมคือการสร้าง การแผ่รังสีที่ราบรื่นจำกัดโดยมีการสลายตัวแบบเอ็กซ์โปเนนเชียล แต่จริงๆ แล้ว เรามีการแผ่รังสีเชิงเส้นแบบชิ้นๆ ฟังก์ชั่นที่มีจุดพักอาจทำให้เกิดปัญหากับโครงสร้างพื้นฐาน Bitcoin เมื่อจุดพักเกิดขึ้น นักขุดจะเริ่มได้รับเพียงครึ่งหนึ่งของมูลค่าก่อนหน้า รางวัล ความแตกต่างสัมบูรณ์ระหว่าง 12.5 และ 6.25 BTC (คาดการณ์สำหรับปี 2020) อาจ ดูเหมือนจะทนได้ อย่างไรก็ตาม เมื่อตรวจสอบการลดลง 50 ถึง 25 BTC ที่เกิดขึ้นในเดือนพฤศจิกายน เมื่อวันที่ 28 กันยายน 2012 รู้สึกว่าไม่เหมาะสมสำหรับสมาชิกของชุมชนเหมืองแร่จำนวนที่มีนัยสำคัญ รูปที่ 1 แสดงการลดลงอย่างมากในอัตรา hash ของเครือข่ายในช่วงปลายเดือนพฤศจิกายน ซึ่งตรงกับเวลาที่ การลดจำนวนลงครึ่งหนึ่งเกิดขึ้น เหตุการณ์นี้อาจเป็นช่วงเวลาที่สมบูรณ์แบบสำหรับบุคคลที่มุ่งร้าย อธิบายไว้ในส่วนฟังก์ชัน proof-of-work เพื่อดำเนินการโจมตีการใช้จ่ายสองเท่า [36] รูปที่ 1. Bitcoin hashกราฟอัตรา (ที่มา: http://bitcoin.sipa.be) 2.4 ค่าคงที่แบบฮาร์ดโค้ด Bitcoin มีข้อจำกัดแบบฮาร์ดโค้ดมากมาย โดยที่บางส่วนเป็นองค์ประกอบตามธรรมชาติของการออกแบบดั้งเดิม (เช่น ความถี่บล็อก ปริมาณเงินสูงสุด จำนวนการยืนยัน) ในขณะที่อื่นๆ ดูเหมือนจะเป็นข้อจำกัดเทียม ไม่ได้มีข้อจำกัดมากนัก เนื่องจากไม่สามารถเปลี่ยนแปลงได้อย่างรวดเร็ว 3 6 เรียกสิ่งนี้ว่ามันคือการโจมตีของซอมบี้ เรามาหารือกันว่าการปล่อยก๊าซเรือนกระจกอย่างต่อเนื่องจะเป็นอย่างไร เกี่ยวข้องกับ one-cpu-one-vote ในสถานการณ์การโจมตีด้วยซอมบี้ ในโลกที่มีหนึ่ง CPU หนึ่งโหวต โทรศัพท์มือถือและรถยนต์ทุกเครื่อง เมื่อใดก็ตามที่ไม่ได้ใช้งาน จะถูกขุดเหมือง การรวบรวมฮาร์ดแวร์ราคาถูกจำนวนมากเพื่อสร้างฟาร์มขุดจะง่ายมากเพราะเพียง เกี่ยวกับทุกสิ่งที่มี CPU อยู่ในนั้น ในทางกลับกัน ณ จุดนั้นคือจำนวน CPU ฉันคิดว่าจำเป็นต้องทำการโจมตี 51% ค่อนข้างน่าประหลาดใจ นอกจากนี้ แม่นยำ เพราะ ง่ายต่อการรวบรวมฮาร์ดแวร์ราคาถูก เราจึงสามารถคาดหวังได้อย่างสมเหตุสมผล หลายๆ คนเริ่มสะสมอะไรก็ตามด้วย CPU การแข่งขันทางอาวุธในโลกที่มีหนึ่งซีพียูหนึ่งโหวต จำเป็นต้องมีความเสมอภาคมากกว่าในโลก ASIC จึงมีความไม่ต่อเนื่องในเครือข่าย ความปลอดภัยเนื่องจากอัตราการปล่อยมลพิษควรจะเป็นปัญหาน้อยกว่าในโลกที่มีหนึ่งซีพียูหนึ่งเสียง อย่างไรก็ตาม ยังมีข้อเท็จจริงสองประการ: 1) อัตราการปล่อยก๊าซที่ไม่ต่อเนื่องอาจทำให้เกิดอาการติดอ่างใน ทั้งด้านเศรษฐกิจและความปลอดภัยเครือข่าย ซึ่งแย่ และ 2) แม้ว่าจะมีการโจมตีถึง 51% ก็ตาม ดำเนินการโดยคนที่รวบรวมฮาร์ดแวร์ราคาถูกยังสามารถเกิดขึ้นในซีพียูตัวเดียวได้-โหวตโลก ดูเหมือนว่ามันควรจะยากกว่านี้ สมมุติว่าการป้องกันสิ่งนี้ก็คือ นักแสดงที่ไม่ซื่อสัตย์ทั้งหมด จะลองทำสิ่งนี้ พร้อมกัน และเราถอยกลับไปใช้แนวคิดด้านความปลอดภัยก่อนหน้าของ Bitcoin: "เราไม่ต้องการการทุจริต ฝ่ายที่จะควบคุมมากกว่า 51% ของเครือข่าย” ผู้เขียนอ้างที่นี่ว่าปัญหาหนึ่งของ bitcoin ก็คือความไม่ต่อเนื่องในการปล่อยเหรียญ อัตรานี้อาจส่งผลให้การมีส่วนร่วมของเครือข่ายลดลงอย่างกะทันหัน และด้วยเหตุนี้ความปลอดภัยของเครือข่าย ดังนั้น อัตราการปล่อยเหรียญที่ต่อเนื่อง เปลี่ยนแปลงได้ และราบรื่นจะดีกว่า ผู้เขียนไม่ผิดแน่นอน การมีส่วนร่วมของเครือข่ายที่ลดลงอย่างกะทันหันสามารถทำได้ นำไปสู่ปัญหาดังกล่าว และถ้าเราสามารถลบแหล่งที่มาของมันได้ เราก็ควรทำ พูดแล้วก็เป็นอย่างนั้น เป็นไปได้ว่าการปล่อยเหรียญ "ค่อนข้างคงที่" เป็นระยะเวลานานจะถูกคั่นด้วยการเปลี่ยนแปลงอย่างกะทันหัน เป็นวิธีที่เหมาะที่จะไปจากมุมมองทางเศรษฐศาสตร์ ฉันไม่ใช่นักเศรษฐศาสตร์ ดังนั้นบางทีเรา ต้องตัดสินใจว่าเราจะแลกความปลอดภัยเครือข่ายเพื่ออะไรบางอย่างทางเศรษฐกิจหรือไม่? http://arxiv.org/abs/1402.2009หากจำเป็นซึ่งทำให้เกิดข้อเสียเปรียบหลัก น่าเสียดายที่เป็นการยากที่จะคาดเดาได้ว่าเมื่อใด ค่าคงที่อาจจำเป็นต้องเปลี่ยนและการแทนที่อาจนำไปสู่ผลลัพธ์ที่เลวร้าย ตัวอย่างที่ดีของการเปลี่ยนแปลงขีดจำกัดแบบฮาร์ดโค้ดที่นำไปสู่ผลที่ตามมาที่ร้ายแรงคือการบล็อก จำกัดขนาดไว้ที่ 250kb1 ขีดจำกัดนี้เพียงพอที่จะรองรับธุรกรรมมาตรฐานได้ประมาณ 10,000 รายการ ใน ต้นปี 2013 เกือบจะถึงขีดจำกัดนี้แล้ว และได้บรรลุข้อตกลงเพื่อเพิ่ม ขีด จำกัด การเปลี่ยนแปลงถูกนำไปใช้ในกระเป๋าเงินเวอร์ชัน 0.8 และจบลงด้วยการแยกลูกโซ่ 24 บล็อก และการโจมตีแบบใช้จ่ายสองครั้งที่ประสบความสำเร็จ [9] ในขณะที่จุดบกพร่องไม่ได้อยู่ในโปรโตคอล Bitcoin แต่ แต่ในกลไกฐานข้อมูลนั้นสามารถตรวจจับได้ง่ายโดยการทดสอบความเครียดแบบง่าย ๆ หากมี ไม่มีการจำกัดขนาดบล็อกที่แนะนำโดยไม่ได้ตั้งใจ ค่าคงที่ยังทำหน้าที่เป็นรูปแบบหนึ่งของจุดรวมศูนย์ แม้ว่าลักษณะแบบ peer-to-peer ของ Bitcoin โหนดส่วนใหญ่ใช้ไคลเอนต์อ้างอิงอย่างเป็นทางการ [10] พัฒนาโดย คนกลุ่มเล็กๆ กลุ่มนี้ตัดสินใจดำเนินการเปลี่ยนแปลงโปรโตคอล และคนส่วนใหญ่ยอมรับการเปลี่ยนแปลงเหล่านี้โดยไม่คำนึงถึง "ความถูกต้อง" ของพวกเขา การตัดสินใจบางอย่างเกิดขึ้น การอภิปรายอย่างเผ็ดร้อนและแม้กระทั่งเรียกร้องให้คว่ำบาตร [11] ซึ่งบ่งชี้ว่าชุมชนและ นักพัฒนาซอฟต์แวร์อาจไม่เห็นด้วยกับประเด็นสำคัญบางประการ ดังนั้นจึงดูเหมือนสมเหตุสมผลที่จะมีโปรโตคอล ด้วยตัวแปรที่ผู้ใช้สามารถกำหนดค่าได้และปรับได้เองซึ่งเป็นวิธีที่เป็นไปได้ในการหลีกเลี่ยงปัญหาเหล่านี้ 2.5 สคริปต์ขนาดใหญ่ ระบบการเขียนสคริปต์ใน Bitcoin เป็นคุณลักษณะที่หนักและซับซ้อน มันอาจทำให้ใครคนหนึ่งสามารถสร้างได้ ธุรกรรมที่ซับซ้อน [12] แต่คุณลักษณะบางอย่างถูกปิดใช้งานเนื่องจากข้อกังวลด้านความปลอดภัยและ บางตัวไม่เคยใช้ด้วยซ้ำ [13] สคริปต์ (รวมทั้งส่วนของผู้ส่งและผู้รับ) สำหรับธุรกรรมยอดนิยมใน Bitcoin มีลักษณะดังนี้: OP DUP OP HASH160 OP เท่ากับการตรวจสอบ OP สคริปต์มีความยาว 164 ไบต์ โดยมีวัตถุประสงค์เพียงเพื่อตรวจสอบว่าผู้รับครอบครองหรือไม่ ต้องใช้รหัสลับในการตรวจสอบลายเซ็นของเขา