Байт Цзюнь спочатку познайомить усіх з тим, що таке криптографія. Коротше кажучи, криптографія - це наука, яка вивчає, як шифрувати і як розшифровувати.
Шифрування та дешифрування існують з давніх часів, наприклад, знаменитий "шифр Цезаря". Цезар - засновник Римської імперії. Деякі історики вважають його некоронованим імператором Римської імперії і називають "Цезарем Великим". Насправді, сам Цезар дуже любив писати таємні тексти.
Під час війни в Галлії (нині південна Франція) Цезар не лише розгромив своїх ворогів, але й створив розгалужену і глибоку розвідувальну мережу. У записах Галльської війни згадується, як його друг, римський полководець Цицерон, передавав йому повідомлення зашифрованим текстом, коли той опинився в оточенні. Цезар використовував форму шифрованого тексту, щоб уникнути того, що "коли повідомлення буде перехоплене ворогом, наші контрзаходи не будуть виявлені ворогом".
Цей класичний шифротекст має вигляд "VIMRJSVGIQIRXW SRXLI AEC", який зашифрований за допомогою зсуву на чотири біти, наприклад, початкова буква R+4=V. Після розшифрування зашифрованого тексту отримано відкритий текст "REINFORCEMENTS ON THE WAY", що означає "підкріплення вже в дорозі".
Таким чином, шифр Цезаря фактично шифрує літери, переміщуючи літери у відкритому тексті назад відповідно до фіксованого числа.
З розвитком часу шифрування і дешифрування поступово перетворилося на науку - криптографію. До появи блокчейну криптографія мала багато застосувань в інтернеті, наприклад, найвідоміший асиметричний алгоритм шифрування RSA. Тут Байт Цзюнь спочатку розповість, що таке симетричне шифрування і що таке асиметричне шифрування.
Симетричне шифрування означає, що для шифрування і розшифрування використовується один і той же ключ. Щоб провести аналогію, яка допоможе всім зрозуміти, ми порівнюємо шифрування з блокуванням, а розшифрування - з розблокуванням. Симетричне шифрування означає, що для блокування та розблокування використовується один і той самий ключ. Тому недоліком є те, що обидві сторони транзакції використовують один і той самий ключ, і безпека не може бути гарантована.
Асиметричне шифрування має два ключі, один з яких є відкритим ключем (public key), а інший - закритим ключем (private key). Це як замок з двома ключами А і В. Ключ А потрібен для того, щоб замкнути замок, а ключ В - щоб відкрити замок.
Алгоритм шифрування RSA - це асиметричний алгоритм шифрування. Багато інтернет-протоколів використовували RSA раніше, а зараз RSA також є найпоширенішим і найбільш сумісним алгоритмом асиметричного шифрування в різних браузерах і протоколах електронної пошти.
Причина, чому інтернет розвинувся до нинішніх масштабів, враховуючи як безпеку, так і зручність, невіддільна від широкого використання паролів. Наприклад, SubtleCrypto, алгоритм, який майже зустрічається в браузерах, можна використовувати навіть у невеликих програмних середовищах; а алгоритм WebAuthn, який став рекомендованим стандартом W3C у 2019 році, робить браузерну криптографію такою ж потужною, як і апаратний гаманець, а користуватися ним дуже зручно (можна розблокувати відбитком пальця, скануванням обличчя тощо).
Повертаючись до блокчейну, якщо ці інтернет-криптографічні інфраструктури можна використовувати напряму, замість того, щоб вимагати від користувачів завантажувати плагіни та додатки для гаманців і самостійно зберігати мнемонічні фрази, поріг користувачів для dApps можна значно знизити.
Однак криптографія основних блокчейнів, як правило, жорстко закодована на нижньому рівні, наприклад:
Алгоритми підпису цих блокчейнів несумісні з системами криптографії, що використовуються в основному Інтернеті, і не можуть бути використані безпосередньо. Вони можуть розраховувати лише на перевстановлене обладнання.
Відмінність публічного ланцюжка Nervos CKB полягає в тому, що ви можете використовувати власну криптографію, і криптографія не є жорстко закодованою внизу. Це означає, що при розробці додатків на Nervos ви можете використовувати систему криптографії, яка використовується в основному Інтернеті, або навіть безпосередньо звертатися до існуючої інфраструктури Інтернету.
Зокрема, віртуальна машина Nervos CKB може розгортати криптографію безпосередньо в прикладному рівні (смарт-контракт), так що ми можемо розгортати асиметричні алгоритми шифрування RSA, SHA-256 тощо, згадані вище. Це закладає основу для використання існуючої інфраструктури. Однак цього недостатньо. Nervos також потребує наступних можливостей -Абстрагування рахунку。
Слово "абстрактний" саме по собі дуже абстрактне.
Абстракція сама по собі є відносно технічним словом. Є два пояснення. Нам потрібно звернути увагу лише на перше: так звана абстракція - це процес. Ми вилучаємо конкретність із системи, а потім створюємо з неї загальність та універсальність. Це процес узагальнення. Видаляючи спеціальні конструкції і знаходячи спільні риси, система може стати більш загальною і застосовною до більшої кількості сценаріїв.
Це пояснення все ще може бути дуже абстрактним, але ключові слова, які потрібно запам'ятати, - це Видалити "особливості", видалити "особливості" з системи, знайти більше спільних рис у системі, включити спільні риси в дизайн і створити "загальність"。
Пояснимо на не зовсім блокчейн-прикладі. Можливо, ви грали на великих ігрових автоматах в ігровому залі. Якщо ви розбираєтеся в цьому типі машин, то знаєте, що кожна машина насправді відповідає певній грі. Для ігрових автоматів системний дизайн - це інтегрований дизайн від програмного забезпечення до апаратного забезпечення. Всі дизайни слугують одній меті - цій грі. Коли нам потрібно створити ще одну нову гру, мені потрібно спроектувати ще один новий автомат, тому в ігровому залі є десять або двадцять автоматів, кожен з яких має іншу гру.
З розвитком ігрової індустрії донині найбільшою популярністю користуються не аркадні автомати, а більш загальні ігрові платформи на кшталт XBox. XBox - це загальний дизайн. Ви можете створювати різноманітні ігри для Xbox, а потім купувати різні ігри для запуску на цій системі.
Тому перехід від аркади до XBOX - це процес узагальнення. З іншого боку, Xbox - це дизайн з вищим рівнем абстракції, який можна застосувати до більшої кількості сценаріїв. Існує дуже мало, майже немає, спеціальних речей, створених для кожної конкретної гри. Саме тому, що вона не має тих особливих деталей, розробники на цій платформі можуть заповнити їх так, щоб платформа могла адаптуватися до різноманітних потреб.
Повертаємося до ЦКБ "Нервос". Другою технічною перевагою публічного ланцюга CKB є абстракція облікового запису. Так звана абстракція облікового запису - це можливість узагальнити логіку розблокування облікових записів (адрес) блокчейну.
В даний час логіка розблокування основних блокчейнів є відносно простою, прямою і жорстко закодованою на рівні протоколу. Наприклад, для BTC і ETH публічний ключ відновлюється на основі тіла транзакції і підпису, а потім публічний ключ перетворюється в адресу за встановленими правилами. Нарешті, він збігається з адресою, яку потрібно розблокувати. Якщо вони узгоджуються, розблокування пройде успішно, інакше розблокування не відбудеться.
Така жорстко закодована логіка не може адаптуватися до деяких ширших ситуацій, таких як вбудовані в підпис дані про клієнта, або навіть підпис не є специфічним для самої транзакції. Щоб полегшити розуміння, давайте проведемо аналогію: логіка розблокування основних блокчейнів така ж, як у механічних дверних замків, які можуть відкрити дверцята рахунку тільки одним способом.
Nervos, який реалізує можливості абстрагування облікового запису на нижньому рівні, еквівалентний наявності електронного замка. Логіка його розблокування може бути за допомогою паролів, відбитків пальців, Bluetooth, NFC і т.д. Наприклад, ми можемо використовувати криптографію електронної пошти, щоб розблокувати його, а потім виконати контракт відповідно до інструкцій в електронному листі. Найпростіший приклад - відправити CKB безпосередньо на вказану адресу (або іншу поштову скриньку), надіславши електронного листа, і весь процес не потребує жодних кроків. Вимагає участі будь-якого "гаманця".
Це перевага абстрагування від рахунків.
Байт Цзюнь спочатку познайомить усіх з тим, що таке криптографія. Коротше кажучи, криптографія - це наука, яка вивчає, як шифрувати і як розшифровувати.
Шифрування та дешифрування існують з давніх часів, наприклад, знаменитий "шифр Цезаря". Цезар - засновник Римської імперії. Деякі історики вважають його некоронованим імператором Римської імперії і називають "Цезарем Великим". Насправді, сам Цезар дуже любив писати таємні тексти.
Під час війни в Галлії (нині південна Франція) Цезар не лише розгромив своїх ворогів, але й створив розгалужену і глибоку розвідувальну мережу. У записах Галльської війни згадується, як його друг, римський полководець Цицерон, передавав йому повідомлення зашифрованим текстом, коли той опинився в оточенні. Цезар використовував форму шифрованого тексту, щоб уникнути того, що "коли повідомлення буде перехоплене ворогом, наші контрзаходи не будуть виявлені ворогом".
Цей класичний шифротекст має вигляд "VIMRJSVGIQIRXW SRXLI AEC", який зашифрований за допомогою зсуву на чотири біти, наприклад, початкова буква R+4=V. Після розшифрування зашифрованого тексту отримано відкритий текст "REINFORCEMENTS ON THE WAY", що означає "підкріплення вже в дорозі".
Таким чином, шифр Цезаря фактично шифрує літери, переміщуючи літери у відкритому тексті назад відповідно до фіксованого числа.
З розвитком часу шифрування і дешифрування поступово перетворилося на науку - криптографію. До появи блокчейну криптографія мала багато застосувань в інтернеті, наприклад, найвідоміший асиметричний алгоритм шифрування RSA. Тут Байт Цзюнь спочатку розповість, що таке симетричне шифрування і що таке асиметричне шифрування.
Симетричне шифрування означає, що для шифрування і розшифрування використовується один і той же ключ. Щоб провести аналогію, яка допоможе всім зрозуміти, ми порівнюємо шифрування з блокуванням, а розшифрування - з розблокуванням. Симетричне шифрування означає, що для блокування та розблокування використовується один і той самий ключ. Тому недоліком є те, що обидві сторони транзакції використовують один і той самий ключ, і безпека не може бути гарантована.
Асиметричне шифрування має два ключі, один з яких є відкритим ключем (public key), а інший - закритим ключем (private key). Це як замок з двома ключами А і В. Ключ А потрібен для того, щоб замкнути замок, а ключ В - щоб відкрити замок.
Алгоритм шифрування RSA - це асиметричний алгоритм шифрування. Багато інтернет-протоколів використовували RSA раніше, а зараз RSA також є найпоширенішим і найбільш сумісним алгоритмом асиметричного шифрування в різних браузерах і протоколах електронної пошти.
Причина, чому інтернет розвинувся до нинішніх масштабів, враховуючи як безпеку, так і зручність, невіддільна від широкого використання паролів. Наприклад, SubtleCrypto, алгоритм, який майже зустрічається в браузерах, можна використовувати навіть у невеликих програмних середовищах; а алгоритм WebAuthn, який став рекомендованим стандартом W3C у 2019 році, робить браузерну криптографію такою ж потужною, як і апаратний гаманець, а користуватися ним дуже зручно (можна розблокувати відбитком пальця, скануванням обличчя тощо).
Повертаючись до блокчейну, якщо ці інтернет-криптографічні інфраструктури можна використовувати напряму, замість того, щоб вимагати від користувачів завантажувати плагіни та додатки для гаманців і самостійно зберігати мнемонічні фрази, поріг користувачів для dApps можна значно знизити.
Однак криптографія основних блокчейнів, як правило, жорстко закодована на нижньому рівні, наприклад:
Алгоритми підпису цих блокчейнів несумісні з системами криптографії, що використовуються в основному Інтернеті, і не можуть бути використані безпосередньо. Вони можуть розраховувати лише на перевстановлене обладнання.
Відмінність публічного ланцюжка Nervos CKB полягає в тому, що ви можете використовувати власну криптографію, і криптографія не є жорстко закодованою внизу. Це означає, що при розробці додатків на Nervos ви можете використовувати систему криптографії, яка використовується в основному Інтернеті, або навіть безпосередньо звертатися до існуючої інфраструктури Інтернету.
Зокрема, віртуальна машина Nervos CKB може розгортати криптографію безпосередньо в прикладному рівні (смарт-контракт), так що ми можемо розгортати асиметричні алгоритми шифрування RSA, SHA-256 тощо, згадані вище. Це закладає основу для використання існуючої інфраструктури. Однак цього недостатньо. Nervos також потребує наступних можливостей -Абстрагування рахунку。
Слово "абстрактний" саме по собі дуже абстрактне.
Абстракція сама по собі є відносно технічним словом. Є два пояснення. Нам потрібно звернути увагу лише на перше: так звана абстракція - це процес. Ми вилучаємо конкретність із системи, а потім створюємо з неї загальність та універсальність. Це процес узагальнення. Видаляючи спеціальні конструкції і знаходячи спільні риси, система може стати більш загальною і застосовною до більшої кількості сценаріїв.
Це пояснення все ще може бути дуже абстрактним, але ключові слова, які потрібно запам'ятати, - це Видалити "особливості", видалити "особливості" з системи, знайти більше спільних рис у системі, включити спільні риси в дизайн і створити "загальність"。
Пояснимо на не зовсім блокчейн-прикладі. Можливо, ви грали на великих ігрових автоматах в ігровому залі. Якщо ви розбираєтеся в цьому типі машин, то знаєте, що кожна машина насправді відповідає певній грі. Для ігрових автоматів системний дизайн - це інтегрований дизайн від програмного забезпечення до апаратного забезпечення. Всі дизайни слугують одній меті - цій грі. Коли нам потрібно створити ще одну нову гру, мені потрібно спроектувати ще один новий автомат, тому в ігровому залі є десять або двадцять автоматів, кожен з яких має іншу гру.
З розвитком ігрової індустрії донині найбільшою популярністю користуються не аркадні автомати, а більш загальні ігрові платформи на кшталт XBox. XBox - це загальний дизайн. Ви можете створювати різноманітні ігри для Xbox, а потім купувати різні ігри для запуску на цій системі.
Тому перехід від аркади до XBOX - це процес узагальнення. З іншого боку, Xbox - це дизайн з вищим рівнем абстракції, який можна застосувати до більшої кількості сценаріїв. Існує дуже мало, майже немає, спеціальних речей, створених для кожної конкретної гри. Саме тому, що вона не має тих особливих деталей, розробники на цій платформі можуть заповнити їх так, щоб платформа могла адаптуватися до різноманітних потреб.
Повертаємося до ЦКБ "Нервос". Другою технічною перевагою публічного ланцюга CKB є абстракція облікового запису. Так звана абстракція облікового запису - це можливість узагальнити логіку розблокування облікових записів (адрес) блокчейну.
В даний час логіка розблокування основних блокчейнів є відносно простою, прямою і жорстко закодованою на рівні протоколу. Наприклад, для BTC і ETH публічний ключ відновлюється на основі тіла транзакції і підпису, а потім публічний ключ перетворюється в адресу за встановленими правилами. Нарешті, він збігається з адресою, яку потрібно розблокувати. Якщо вони узгоджуються, розблокування пройде успішно, інакше розблокування не відбудеться.
Така жорстко закодована логіка не може адаптуватися до деяких ширших ситуацій, таких як вбудовані в підпис дані про клієнта, або навіть підпис не є специфічним для самої транзакції. Щоб полегшити розуміння, давайте проведемо аналогію: логіка розблокування основних блокчейнів така ж, як у механічних дверних замків, які можуть відкрити дверцята рахунку тільки одним способом.
Nervos, який реалізує можливості абстрагування облікового запису на нижньому рівні, еквівалентний наявності електронного замка. Логіка його розблокування може бути за допомогою паролів, відбитків пальців, Bluetooth, NFC і т.д. Наприклад, ми можемо використовувати криптографію електронної пошти, щоб розблокувати його, а потім виконати контракт відповідно до інструкцій в електронному листі. Найпростіший приклад - відправити CKB безпосередньо на вказану адресу (або іншу поштову скриньку), надіславши електронного листа, і весь процес не потребує жодних кроків. Вимагає участі будь-якого "гаманця".
Це перевага абстрагування від рахунків.