15 червня 2022 року

Untitled


<aside> 📢 Примітка: Ви можете знайти статтю “Будь уважний до своїх лідерів”, опубліковану на сайті Financial Cryptography and Data Security (FC), 2022, яку згадує Kostas, на нашому порталі розробників Sui.

</aside>

Вступ

Джен: Ми почнемо з нашого першого Sui AMA. Дуже дякую, що приєдналися до всіх. Ми поринаємо у світ криптографії, і я збираюся передати мікрофон Костасу, щоб він обговорив це найближчим часом.

Костас: Привіт всім, я Костас, співзасновник Mysten Labs та провідний криптографії. Я працював у Facebook (Meta) протягом трьох років, очолюючи криптографію у проекті Libra. Ви знаєте, що зрештою він розпався з різних причин, в основному через регулювання та аудиторів. Зрештою, ми закрили проект.

Тоді в мене була можливість працювати з одним із перших розробників Сатоші Накамото, Майком Хірном, над переходом від простору Біткоїна до чогось на зразок дозволеного блокчейну для низки банків. Вони боялися біткоїн-революції. Майк залишив біткоїн-спільноту і попросив мене допомогти йому в галузі криптографії. У той час я дуже багато працював над доказами нульового знання, акумуляторами, багатосторонніми обчисленнями (MPC) — конфіденційними транзакціями, і ви побачите, як це стосується Sui сьогодні.

Я також очолюю роботу з доказу резервів та доказу платоспроможності у криптоспільноті. І це цікаво. На той час, коли ми опублікували доповіді на Financial Cryptography and Data Security 2022, однією з найбільших конференцій, де блокчейн-стартапи та дослідники можуть публікувати свої роботи, через два дні після цього стався крах Luna. І я пояснив їм, чому ніхто не робить це правильно, і був вкрай здивований, що деякі наші роботи вплинули.

Я думаю, що у нас (Mysten Labs) одна із найсильніших команд. П’ять співзасновників, усі ми — колишні керівники Facebook у різних секторах. Наприклад, я був провідним у криптографії, але я також займався і WhatsApp. Так що, можливо, ви вже використовуєте деякі мої коди на своїх мобільних телефонах. Але річ у тому, що ми також намагалися створити команду з нуля. Більшість з нас — старшокурсники, і ми найняли багатьох лідерів у цій галузі у сфері консенсусу, криптографії, інженерії та багатьох інших областях. Ми навіть створили власну мову, мову програмування Move. Наш технічний директор (Сем Блекшир) є творцем мови Move.

Тому ми проводимо багато досліджень. У міру нашого поступу вперед ви побачите деякі цікаві речі, включаючи деякі питання, які я бачу тут за доказами з нульовим знанням. Сподіваюся, я зможу пояснити, над чим ми працюємо.

Питання #1: Перевага Sui перед іншими блокчейнами?

Джен: У чому переваги Sui перед іншими блокчейнами? І які причини, які змусять користувачів перейти на Sui?

Костас: Це дуже гарне питання. І насправді це одна з причин існування Mysten Labs. Ми пропонуємо нову парадигму того, як насправді реалізуються смарт-контракти. Я поясню, у чому різниця між Sui та Ethereum, наприклад. Ми маємо комбінацію відзначених нагородами алгоритмів консенсусу. По-перше, у нас один із найшвидших алгоритмів консенсусу та мемпулу; це Narwhal & Tusk. А по-друге, є деякі програми, які можуть повністю уникнути повного консенсусу та обійти його. Наприклад, ви можете перевірити те, що ми називаємо програмами з підтримкою одного письменника (SWF). У нас є інша модель володіння певними об’єктами та способами їхнього об’єднання. Деякі активи можуть переміщатися з одного місця в інше, від одного консенсусу до іншого методу. І це те, що робить величезну різницю у нашому блокчейні Sui.

Що стосується Ethereum, то, як ви знаєте, він використовує модель, яка базується на рахунках. У той же час, у нас є Біткоїн, який схожий на модель UTXO. Я би класифікував Sui як щось середнє. Ми зробили цікавий трюк, коли все в Sui схоже на об’єкт, який можна передавати навіть із одного контракту до іншого. У Ethereum є дві точки навантаження.

  1. Уявіть собі, що на рівні рахунку користувача, якщо користувач відправляє транзакції з того ж рахунку або є деякі інші користувачі, які впливають на рахунок цього користувача, наприклад, щоб забрати баланс. Цей рахунок є точкою перевантаження, тому що всі транзакції мають бути впорядковані у блоці. В іншому випадку ми не знаємо, яка з них прийшла першою, якщо рахунок був спустошений до того, як у нього з’явилася можливість справді витратити гроші.
  2. Друга точка навантаження в Ethereum знаходиться на рівні контрактів. Уявіть собі найбільш популярні контракти, такі як ERC-721, ERC-20 і т. д. Зазвичай усередині контракту є величезна хешмапа, величезний вектор або ще щось, де ми можемо зберігати інформацію про те, хто чим володіє і який поточний баланс чи поточний NFT. Якщо в одному контракті є кілька транзакцій, це означає, що транзакція має бути впорядкована між ними, щоб мати послідовність подій. І знову ж таки, щоб не було такого стану, коли ми втрачаємо інформацію через невдале впорядкування, це означає, що Ethereum має створювати блоки. А оскільки він усе впорядковує, то це повільний процес.

Ми усунули це вузьке місце. Усунення відбувається шляхом від’єднання активів від рахунків та контрактів. Отже, у нас є адреса Sui, і ця адреса володіє об’єктами. Уявіть собі, що це NFT або навіть активи із взаємозамінним балансом, такі як UTXO. Так ось ці активи супроводжуються версією, нонсом, якщо ви знайомі з Ethereum. Ми видаляємо нонс із рахунку Ethereum і поміщаємо нонс (цю версію) в активи, якими ви володієте. Тепер усі активи живуть незалежно один від одного; Ви можете торкнутися одного активу, а можете торкнутися іншого. Оскільки ці активи фактично не конфліктують між собою, вам не потрібне повне впорядкування. І ось звідки насправді береться наша швидкість.

Ми провели невеликий експеримент на простому ноутбуці Mac і досягли 120 000 транзакцій на секунду. Це дуже багато. Нам не потрібна машина, яка потребує величезної пам’яті та величезного сховища. Тут ми справді підписуємося. Ми впевнені, що будемо найшвидшими. По-друге, ми використовуємо Move для захисту активів. У Ethereum все — uint256, правда? Це значення. Як ви передаєте одне значення від іншого, не відчуваючи проблем із розумінням того, що це означає? Розробники програмного забезпечення або розробники контрактів повинні точно знати, що вони роблять. І це загрожує потенційними атаками, які ми бачили в минулому.

Найкоротша відповідь, чому Sui краще: швидкість, мова програмування, об’єктно-орієнтована, і, зрештою, простіше та безпечніше через цей об’єктно-орієнтований менталітет. Користувачі можуть робити менше помилок у своєму коді.