إيثريوم: منصة العقود الذكية والتطبيقات اللامركزية من الجيل التالي

저자 Vitalik Buterin · 2013

Abstract

Ethereum은 Turing-complete 프로그래밍 언어가 내장된 blockchain을 도입한 차세대 암호화폐이자 탈중앙화 애플리케이션 플랫폼이다. 이를 통해 누구나 소유권, 거래 형식, 상태 전이 함수에 대한 임의의 규칙을 만들 수 있는 smart contract와 탈중앙화 애플리케이션을 작성할 수 있다.

Ethereum의 근본적인 혁신은 Bitcoin이 개척한 blockchain 기술을 범용 프로그래밍 환경과 결합한 것이다. Bitcoin이 하나의 계좌에서 다른 계좌로 화폐를 이동하기 위한 단순한 상태 전이 시스템을 제공하는 반면, Ethereum은 개발자가 대안 화폐와 금융 상품부터 도메인 등록 시스템과 탈중앙화 조직에 이르기까지 상상할 수 있는 모든 종류의 탈중앙화 애플리케이션을 구축할 수 있는 플랫폼을 제공한다.

Ethereum은 본질적으로 궁극의 추상적 기반 계층을 구축함으로써 이를 달성한다: Turing-complete 프로그래밍 언어가 내장된 blockchain으로, 누구나 소유권, 거래 형식 및 상태 전이 함수에 대한 임의의 규칙을 만들 수 있는 smart contract와 탈중앙화 애플리케이션을 작성할 수 있다. Namecoin의 기본 버전은 두 줄의 코드로 작성할 수 있으며, 화폐나 평판 시스템 같은 다른 프로토콜도 스무 줄 이내로 구축할 수 있다.

Abstract

Ethereum هو منصة عملة مشفرة وتطبيقات لامركزية من الجيل التالي تقدم blockchain مزودة بلغة برمجة مدمجة كاملة تورنغ (Turing-complete). يتيح ذلك لأي شخص كتابة smart contracts وتطبيقات لامركزية حيث يمكنهم إنشاء قواعدهم الخاصة للملكية وأشكال المعاملات ودوال انتقال الحالة (state transition functions).

الابتكار الجوهري لـ Ethereum هو دمج تقنية blockchain التي ابتكرها Bitcoin مع بيئة برمجة عامة الأغراض. بينما يوفر Bitcoin نظام انتقال حالة بسيط لنقل العملة من حساب إلى آخر، يوفر Ethereum منصة يمكن للمطورين فيها بناء أي نوع من التطبيقات اللامركزية التي يمكنهم تخيلها، من العملات البديلة والأدوات المالية إلى أنظمة تسجيل النطاقات والمنظمات اللامركزية.

يحقق Ethereum ذلك من خلال بناء ما هو في جوهره الطبقة التأسيسية المجردة النهائية: blockchain مزودة بلغة برمجة مدمجة كاملة تورنغ، تتيح لأي شخص كتابة smart contracts وتطبيقات لامركزية حيث يمكنهم إنشاء قواعدهم الخاصة للملكية وأشكال المعاملات ودوال انتقال الحالة. يمكن كتابة نسخة أساسية من Namecoin في سطرين من الكود، ويمكن بناء بروتوكولات أخرى مثل العملات وأنظمة السمعة في أقل من عشرين سطراً.

Introduction and Existing Concepts

탈중앙화 디지털 화폐의 개념은 부동산 등기부와 같은 대안적 응용과 함께 수십 년 전부터 존재해왔다. 1980년대와 1990년대의 익명 전자 화폐 프로토콜은 주로 Chaumian blinding이라는 암호학적 기본 요소에 의존했으며, 높은 수준의 프라이버시를 갖춘 화폐를 제공했지만, 중앙화된 중개자에 대한 의존성 때문에 대부분 주목받지 못했다. 1998년 Wei Dai의 b-money는 계산 퍼즐 풀기를 통한 화폐 생성과 탈중앙화 합의를 도입한 최초의 제안이었지만, 탈중앙화 합의가 실제로 어떻게 구현될 수 있는지에 대한 세부 사항은 부족했다.

2009년, Satoshi Nakamoto에 의해 탈중앙화 화폐가 최초로 실질적으로 구현되었다. 이는 공개키 암호학을 통한 소유권 관리를 위한 기존의 기본 요소들과 누가 코인을 소유하는지 추적하기 위한 합의 알고리즘인 "proof of work"를 결합한 것이었다. Proof of work 뒤에 있는 메커니즘은 두 가지 문제를 동시에 해결했다는 점에서 획기적이었다. 첫째, 네트워크의 노드들이 Bitcoin 원장의 상태에 대한 정규 업데이트 집합에 집단적으로 합의할 수 있도록 하는 단순하고 적당히 효과적인 합의 알고리즘을 제공했다. 둘째, 합의 과정에 자유롭게 참여할 수 있는 메커니즘을 제공하여, 누가 합의에 영향을 미칠 수 있는지를 결정하는 정치적 문제를 해결하는 동시에 Sybil 공격을 방지했다.

Bitcoin blockchain은 수년간의 운영을 통해 놀라울 정도로 견고함을 입증했지만, 본질적으로 제한적이다. Bitcoin의 스크립팅 언어는 의도적으로 제한적이고 Turing-complete하지 않도록 설계되어, 반복문과 더 복잡한 애플리케이션을 구축하는 데 필요한 많은 기능이 없다. 이 제한은 무한 루프 및 기타 형태의 계산 공격을 방지하기 위해 존재하지만, Bitcoin 위에 구축할 수 있는 것을 심각하게 제한한다.

지난 5년간 Bitcoin의 기능을 확장하려는 다양한 시도가 있었다. Colored coins는 Bitcoin blockchain을 사용하여 대체 자산의 소유권을 추적하고자 했고, Namecoin은 탈중앙화 이름 등록 데이터베이스를 만들고자 시도했으며, 다양한 metacoin 프로토콜은 Bitcoin 위에 추가 레이어를 구축하는 것을 목표로 했다. 이러한 접근법들은 가능성을 보여주었지만, 궁극적으로 Bitcoin의 스크립팅 능력과 스크립트 내에서 blockchain 데이터에 접근할 수 없다는 한계에 의해 제약되었다.

Ethereum이 제공하고자 하는 것은 Turing-complete 프로그래밍 언어가 완전히 내장된 blockchain으로, 임의의 상태 전이 함수를 인코딩할 수 있는 "contract"를 만드는 데 사용될 수 있으며, 사용자가 위에 설명된 모든 시스템뿐만 아니라 아직 상상하지 못한 많은 다른 것들도 단지 몇 줄의 코드로 로직을 작성함으로써 만들 수 있게 해준다.

Introduction and Existing Concepts

إن مفهوم العملة الرقمية اللامركزية، بالإضافة إلى التطبيقات البديلة مثل سجلات الملكية، موجود منذ عقود. قدمت بروتوكولات النقد الإلكتروني المجهولة في الثمانينيات والتسعينيات، التي اعتمدت بشكل رئيسي على بدائية تشفيرية تُعرف باسم Chaumian blinding، عملة بدرجة عالية من الخصوصية، لكن هذه البروتوكولات فشلت إلى حد كبير في اكتساب الزخم بسبب اعتمادها على وسيط مركزي. في عام 1998، أصبح b-money لـ Wei Dai أول اقتراح يقدم فكرة إنشاء المال من خلال حل الألغاز الحسابية بالإضافة إلى الإجماع اللامركزي، لكن الاقتراح كان شحيحاً في التفاصيل حول كيفية تنفيذ الإجماع اللامركزي فعلياً.

في عام 2009، تم تنفيذ عملة لامركزية لأول مرة عملياً بواسطة Satoshi Nakamoto، حيث جمع بين البدائيات المُرسّخة لإدارة الملكية من خلال تشفير public key مع خوارزمية إجماع لتتبع من يملك العملات، تُعرف باسم "proof of work". كانت الآلية وراء proof of work اختراقاً في هذا المجال لأنها حلت مشكلتين في آن واحد. أولاً، قدمت خوارزمية إجماع بسيطة وفعالة بشكل معتدل، تسمح للعقد في الشبكة بالاتفاق جماعياً على مجموعة من التحديثات القانونية لحالة دفتر Bitcoin. ثانياً، قدمت آلية تسمح بالدخول الحر إلى عملية الإجماع، حيث حلت المشكلة السياسية المتعلقة بتحديد من يؤثر على الإجماع، مع منع هجمات sybil في الوقت نفسه.

أثبت blockchain الخاص بـ Bitcoin متانة ملحوظة على مدى سنوات تشغيله، لكنه محدود بطبيعته. صُممت لغة البرمجة النصية لـ Bitcoin عمداً لتكون مقيدة وغير Turing-complete، حيث تفتقر إلى الحلقات والعديد من الميزات الأخرى التي ستكون ضرورية لبناء تطبيقات أكثر تعقيداً. يوجد هذا القيد لمنع الحلقات اللانهائية وأشكال أخرى من الهجمات الحسابية، لكنه يقيد بشدة ما يمكن بناؤه فوق Bitcoin.

على مدى السنوات الخمس الماضية، كان هناك عدد من المحاولات لتوسيع وظائف Bitcoin. سعت Colored coins لاستخدام blockchain الخاص بـ Bitcoin لتتبع ملكية الأصول البديلة، وحاول Namecoin إنشاء قاعدة بيانات لامركزية لتسجيل الأسماء، واستهدفت بروتوكولات metacoin المتنوعة بناء طبقات إضافية فوق Bitcoin. بينما أظهرت هذه المقاربات وعداً، كانت محدودة في نهاية المطاف بقدرات Bitcoin البرمجية وعدم القدرة على الوصول إلى بيانات blockchain من داخل البرامج النصية.

ما يعتزم Ethereum تقديمه هو blockchain بلغة برمجة Turing-complete مدمجة كاملة الميزات يمكن استخدامها لإنشاء "عقود" يمكنها ترميز دوال state transition عشوائية، مما يسمح للمستخدمين بإنشاء أي من الأنظمة الموصوفة أعلاه، بالإضافة إلى العديد من الأنظمة الأخرى التي لم نتخيلها بعد، ببساطة عن طريق كتابة المنطق في بضعة أسطر من التعليمات البرمجية.

Bitcoin As A State Transition System

기술적 관점에서, Bitcoin과 같은 암호화폐의 원장은 상태 전이 시스템으로 생각할 수 있다. 여기서 "상태"는 모든 기존 bitcoin의 소유 현황으로 구성되며, "상태 전이 함수"는 상태와 거래를 입력받아 그 결과인 새로운 상태를 출력한다. 표준적인 은행 시스템에서 예를 들면, 상태는 대차대조표이고, 거래는 A에서 B로 \(X를 이동하라는 요청이며, 상태 전이 함수는 A의 계좌에서 \)X를 감소시키고 B의 계좌에서 \(X를 증가시킨다. A의 계좌에 처음부터 \)X 미만이 있으면 상태 전이 함수는 오류를 반환한다.

Ethereum state transition diagram showing how transactions transform blockchain state

Bitcoin에서 "상태"는 발행되었지만 아직 사용되지 않은 모든 코인(기술적으로 "미사용 거래 출력" 또는 UTXO)의 집합이며, 각 UTXO는 액면가와 소유자(본질적으로 암호학적 공개키인 20바이트 주소로 정의됨)를 갖는다. 거래는 하나 이상의 입력을 포함하며, 각 입력은 기존 UTXO에 대한 참조와 소유자 주소에 연결된 개인키로 생성된 암호학적 서명을 포함하고, 하나 이상의 출력을 포함하며, 각 출력은 상태에 추가될 새로운 UTXO를 포함한다.

상태 전이 함수 APPLY(S,TX) - S'는 대략 다음과 같이 정의될 수 있다:

  1. TX의 각 입력에 대해, 참조된 UTXO가 S에 없으면 오류를 반환한다.
  2. 제공된 서명이 UTXO의 소유자와 일치하지 않으면 오류를 반환한다.
  3. 모든 입력 UTXO의 액면가 합이 모든 출력 UTXO의 액면가 합보다 작으면 오류를 반환한다.
  4. 모든 입력 UTXO가 제거되고 모든 출력 UTXO가 추가된 S를 반환한다.

첫 번째 단계의 전반부는 거래 발신자가 존재하지 않는 코인을 사용하는 것을 방지하고, 첫 번째 단계의 후반부는 거래 발신자가 다른 사람의 코인을 사용하는 것을 방지하며, 두 번째 단계는 가치의 보존을 강제한다. 이를 결제에 사용하기 위한 프로토콜은 다음과 같다: Alice가 Bob에게 11.7 BTC를 보내고 싶다고 가정하자. 먼저 Alice는 합계가 최소 11.7 BTC가 되는 자신이 소유한 사용 가능한 UTXO 집합을 찾는다. 현실적으로 Alice는 정확히 11.7 BTC를 얻을 수 없을 것이다; 가장 작은 조합이 6+4+2=12라고 하자. 그러면 그녀는 세 개의 입력과 두 개의 출력을 가진 거래를 생성한다. 첫 번째 출력은 Bob의 주소를 소유자로 하는 11.7 BTC이고, 두 번째 출력은 나머지 0.3 BTC의 "거스름돈"으로 소유자는 Alice 자신이다.

Bitcoin As A State Transition System

من الناحية التقنية، يمكن التفكير في دفتر الحسابات لعملة مشفرة مثل Bitcoin كنظام state transition، حيث يوجد "حالة" تتكون من حالة ملكية جميع عملات bitcoin الموجودة و"دالة state transition" تأخذ حالة ومعاملة وتُخرج حالة جديدة هي النتيجة. في نظام مصرفي قياسي، على سبيل المثال، الحالة هي كشف الرصيد، والمعاملة هي طلب لنقل \(X من A إلى B، ودالة state transition تُنقص القيمة في حساب A بمقدار \)X وتزيد القيمة في حساب B بمقدار \(X. إذا كان حساب A يحتوي على أقل من \)X في المقام الأول، فإن دالة state transition تُرجع خطأ.

Ethereum state transition diagram showing how transactions transform blockchain state

"الحالة" في Bitcoin هي مجموعة جميع العملات (تقنياً، "مخرجات المعاملات غير المنفقة" أو UTXO) التي تم سكها ولم تُنفق بعد، حيث يملك كل UTXO فئة ومالكاً (معرف بعنوان 20 بايت وهو في الأساس public key تشفيرية). تحتوي المعاملة على مدخل واحد أو أكثر، يحتوي كل مدخل على إشارة إلى UTXO موجود وتوقيع تشفيري أُنتج بواسطة private key المرتبط بعنوان المالك، ومخرج واحد أو أكثر، يحتوي كل مخرج على UTXO جديد ليُضاف إلى الحالة.

يمكن تعريف دالة state transition APPLY(S,TX) - S' تقريباً كما يلي:

  1. لكل مدخل في TX، إذا لم يكن UTXO المُشار إليه موجوداً في S، أرجع خطأ.
  2. إذا لم يتطابق التوقيع المُقدم مع مالك UTXO، أرجع خطأ.
  3. إذا كان مجموع فئات جميع UTXO المدخلة أقل من مجموع فئات جميع UTXO المُخرجة، أرجع خطأ.
  4. أرجع S مع إزالة جميع UTXO المدخلة وإضافة جميع UTXO المُخرجة.

يمنع النصف الأول من الخطوة الأولى مرسلي المعاملات من إنفاق عملات غير موجودة، والنصف الثاني من الخطوة الأولى يمنع مرسلي المعاملات من إنفاق عملات أشخاص آخرين، والخطوة الثانية تفرض حفظ القيمة. لاستخدام هذا للدفع، البروتوكول كالتالي: لنفترض أن Alice تريد إرسال 11.7 BTC إلى Bob. أولاً، ستبحث Alice عن مجموعة من UTXO المتاحة التي تملكها بإجمالي لا يقل عن 11.7 BTC. واقعياً، لن تتمكن Alice من الحصول على 11.7 BTC بالضبط؛ لنقل أن أصغر ما يمكنها الحصول عليه هو 6+4+2=12. ثم تُنشئ معاملة بتلك المدخلات الثلاثة ومخرجين. المخرج الأول سيكون 11.7 BTC بعنوان Bob كمالك، والمخرج الثاني سيكون 0.3 BTC المتبقية كـ "باقي"، بملكية Alice نفسها.

Mining

신뢰할 수 있는 중앙화된 서비스가 있다면, 이 시스템은 구현하기 쉬울 것이다; 중앙 서버의 하드 드라이브를 사용하여 상태를 추적하면서 설명된 대로 정확히 코딩할 수 있다. 그러나 Bitcoin에서 우리는 탈중앙화 화폐 시스템을 구축하려고 하므로, 모든 사람이 거래 순서에 동의하도록 보장하기 위해 상태 전이 시스템과 합의 시스템을 결합해야 한다. Bitcoin의 탈중앙화 합의 과정은 네트워크의 노드들이 "block"이라 불리는 거래 패키지를 지속적으로 생성하도록 요구한다. 네트워크는 대략 10분마다 하나의 block을 생성하도록 의도되며, 각 block에는 타임스탬프, nonce, 이전 block에 대한 참조(즉, hash), 그리고 이전 block 이후 발생한 모든 거래 목록이 포함된다.

Ethereum block structure showing linked blocks with timestamps nonces and transactions

시간이 지남에 따라, 이는 Bitcoin 원장의 최신 상태를 나타내기 위해 끊임없이 업데이트되는 지속적이고 계속 성장하는 "blockchain"을 만든다. block이 유효한지 확인하는 알고리즘은 이 패러다임에서 다음과 같이 표현된다:

  1. block이 참조하는 이전 block이 존재하고 유효한지 확인한다.
  2. block의 타임스탬프가 이전 block의 타임스탬프보다 크고 미래 2시간 이내인지 확인한다.
  3. block의 proof of work가 유효한지 확인한다.
  4. S를 이전 block 끝의 상태로 설정한다.
  5. TX를 n개의 거래가 있는 block의 거래 목록이라 하자. 0...n-1의 모든 i에 대해 S = APPLY(S,TX[i])를 설정한다. 어떤 적용이든 오류를 반환하면 종료하고 false를 반환한다.
  6. true를 반환하고, S를 이 block 끝의 상태로 등록한다.

본질적으로, block의 각 거래는 거래가 실행되기 전의 정규 상태에서 새로운 상태로의 유효한 상태 전이를 제공해야 한다. 상태는 block에 어떤 방식으로든 인코딩되지 않는다는 점에 주목하라; 이것은 순전히 검증 노드가 기억해야 할 추상적 개념이며, 어떤 block에 대해서든 genesis 상태에서 시작하여 모든 block의 모든 거래를 순차적으로 적용해야만 (안전하게) 계산할 수 있다.

채굴자는 새로 생성된 bitcoin과 거래 수수료로 계산 작업에 대한 보상을 받는다. 채굴 과정은 다음과 같이 작동한다: 채굴자는 block header를 가져와 특정 난이도 목표 아래의 hash를 찾을 때까지 다른 nonce 값으로 반복적으로 hash한다. 채굴자가 그러한 hash를 찾으면 block을 네트워크에 브로드캐스트하고, 다른 노드들은 hash가 유효하고 block의 모든 거래가 유효한지 검증한다. 난이도 목표는 block이 대략 일정한 비율로 생성되도록 프로토콜에 의해 매 2016 block(약 2주)마다 자동으로 조정된다.

장기적으로 blockchain의 보안은 채굴자들이 정직하게 행동할 재정적 인센티브를 갖는 것에 달려 있다는 점에 주목하라. 공격자가 네트워크 채굴 파워의 50% 이상을 통제하면, 정직한 체인보다 빠르게 성장하는 대안적 blockchain을 생성하여 "51% 공격"을 잠재적으로 실행할 수 있다. 그러나 그러한 공격에는 막대한 계산 자원이 필요하며, 네트워크가 blockchain의 무결성에 대한 신뢰를 잃으면서 공격자의 채굴 보상이 무가치해질 가능성이 높다.

Mining

لو كان لدينا وصول إلى خدمة مركزية موثوقة، لكان تنفيذ هذا النظام بسيطاً؛ يمكن ببساطة برمجته كما هو موصوف، باستخدام القرص الصلب لخادم مركزي لتتبع الحالة. ومع ذلك، مع Bitcoin نحاول بناء نظام عملة لامركزي، لذا سنحتاج إلى دمج نظام state transition مع نظام إجماع لضمان أن الجميع يتفق على ترتيب المعاملات. تتطلب عملية الإجماع اللامركزية في Bitcoin أن تحاول العقد في الشبكة باستمرار إنتاج حزم من المعاملات تُسمى "كتل". تهدف الشبكة إلى إنتاج كتلة واحدة تقريباً كل عشر دقائق، حيث تحتوي كل كتلة على طابع زمني، وnonce، وإشارة إلى (أي hash) الكتلة السابقة وقائمة بجميع المعاملات التي تمت منذ الكتلة السابقة.

Ethereum block structure showing linked blocks with timestamps nonces and transactions

بمرور الوقت، ينشئ هذا "blockchain" مستمراً ومتنامياً باستمرار يتم تحديثه باستمرار لتمثيل أحدث حالة لدفتر Bitcoin. خوارزمية التحقق من صلاحية الكتلة، معبراً عنها في هذا النموذج، هي كالتالي:

  1. تحقق من أن الكتلة السابقة المُشار إليها بواسطة الكتلة موجودة وصالحة.
  2. تحقق من أن الطابع الزمني للكتلة أكبر من الكتلة السابقة وأقل من ساعتين في المستقبل.
  3. تحقق من أن proof of work على الكتلة صالح.
  4. ليكن S الحالة في نهاية الكتلة السابقة.
  5. لنفترض أن TX هي قائمة معاملات الكتلة بـ n معاملة. لكل i في 0...n-1، اضبط S = APPLY(S,TX[i]). إذا أرجع أي تطبيق خطأ، اخرج وأرجع false.
  6. أرجع true، وسجل S كالحالة في نهاية هذه الكتلة.

في الأساس، يجب أن توفر كل معاملة في الكتلة انتقال حالة صالحاً مما كانت عليه الحالة القانونية قبل تنفيذ المعاملة إلى حالة جديدة ما. لاحظ أن الحالة ليست مُرمزة في الكتلة بأي شكل؛ هي مجرد تجريد يتذكره عقدة التحقق ولا يمكن حسابها (بأمان) لأي كتلة إلا بالبدء من حالة التكوين وتطبيق كل معاملة في كل كتلة بالتتابع.

يُكافأ المُعدّن على عمله الحسابي بعملات bitcoin جديدة بالإضافة إلى رسوم المعاملات. تعمل عملية التعدين كالتالي: يأخذ المُعدّنون رأس الكتلة ويقومون بتجزئته بشكل متكرر بقيم nonce مختلفة حتى يجدوا hash أقل من هدف صعوبة معين. عندما يجد مُعدّن مثل هذا الـ hash، يبث الكتلة إلى الشبكة، وتتحقق العقد الأخرى من صلاحية الـ hash وصلاحية جميع المعاملات في الكتلة. يتم تعديل هدف الصعوبة تلقائياً بواسطة البروتوكول كل 2016 كتلة (حوالي أسبوعين) لضمان إنتاج الكتل بمعدل ثابت تقريباً.

لاحظ أنه على المدى الطويل، يعتمد أمان blockchain على وجود حافز مالي للمُعدّنين للتصرف بأمانة. إذا سيطر مهاجم على أكثر من 50% من قوة التعدين في الشبكة، فيمكنه تنفيذ "هجوم 51%" بإنشاء blockchain بديل ينمو أسرع من السلسلة الصادقة. ومع ذلك، سيتطلب مثل هذا الهجوم موارد حسابية هائلة ومن المرجح أن تصبح مكافآت تعدين المهاجم عديمة القيمة مع فقدان الشبكة الثقة في سلامة blockchain.

Merkle Trees

Merkle tree는 Bitcoin block에서 거래 포함의 효율적이고 안전한 검증을 가능하게 하는 데 사용되는 기본적인 데이터 구조이다. Merkle tree는 hash의 이진 트리로, 리프 노드는 개별 거래의 hash를 포함하고, 각 내부 노드는 두 자식 노드의 hash를 포함하며, 재귀적으로 block header에 저장되는 단일 루트 hash까지 올라간다. 이 계층적 구조는 block의 모든 거래를 다운로드하지 않고도 거래에서 루트까지의 hash 체인인 Merkle branch만 다운로드하면 특정 거래가 block에 포함되어 있는지 누구나 검증할 수 있게 해준다.

Simplified Payment Verification using Merkle tree branch proofs for transaction verification

효율성 향상은 상당하다: 전체 Bitcoin 노드는 전체 blockchain(2013년 기준 약 15GB)을 저장해야 하지만, 단순화된 결제 검증(SPV) 노드는 Merkle root를 포함하는 block header만 다운로드하면 되며, 단 4MB의 데이터만 필요하다. 거래를 검증하기 위해 SPV 노드는 전체 노드에 Merkle branch를 요청하며, 이는 block의 거래 수 n에 대해 O(log n)의 데이터만 필요로 한다. 이 로그 스케일링은 모바일 기기와 저자원 환경에서 경량 클라이언트를 실행하는 것을 가능하게 한다.

Bitcoin의 Merkle tree 사용은 핵심 원칙을 보여준다: 암호학적 구조는 탈중앙화 네트워크에 참여하기 위한 신뢰와 자원 요구 사항을 극적으로 줄일 수 있다. 이 동일한 원칙이 Ethereum의 설계를 뒷받침하며, Ethereum에서 Merkle tree는 거래뿐만 아니라 상태와 영수증 저장에도 사용되어 훨씬 더 정교한 경량 클라이언트 프로토콜을 가능하게 한다.

Merkle Trees

أشجار Merkle هي بنية بيانات أساسية تُستخدم في كتل Bitcoin لتمكين التحقق الفعال والآمن من تضمين المعاملات. شجرة Merkle هي شجرة ثنائية من القيم المُجزّأة حيث تحتوي عقد الأوراق على قيم hash للمعاملات الفردية، وتحتوي كل عقدة داخلية على hash لطفليها، وتُبنى بشكل متكرر حتى hash جذر واحد يُخزن في رأس الكتلة. تسمح هذه البنية الهرمية لأي شخص بالتحقق من أن معاملة محددة مُدرجة في كتلة عن طريق تنزيل فرع Merkle فقط—سلسلة القيم المُجزّأة من المعاملة حتى الجذر—بدلاً من تنزيل جميع المعاملات في الكتلة.

Simplified Payment Verification using Merkle tree branch proofs for transaction verification

مكاسب الكفاءة كبيرة: بينما يجب على عقدة Bitcoin كاملة تخزين blockchain بالكامل (حوالي 15 جيجابايت اعتباراً من 2013)، تحتاج عقدة التحقق المبسط من الدفع (SPV) فقط إلى تنزيل رؤوس الكتل التي تحتوي على جذور Merkle، مما يتطلب 4 ميجابايت فقط من البيانات. للتحقق من معاملة، تطلب عقدة SPV فرع Merkle من العقد الكاملة، مما يتطلب بيانات O(log n) فقط حيث n هو عدد المعاملات في الكتلة. هذا التحجيم اللوغاريتمي يجعل من الممكن تشغيل عملاء خفيفي الوزن على الأجهزة المحمولة والبيئات محدودة الموارد.

يُظهر استخدام Bitcoin لأشجار Merkle مبدأً رئيسياً: يمكن للبنى التشفيرية أن تقلل بشكل كبير من متطلبات الثقة والموارد للمشاركة في شبكة لامركزية. هذا المبدأ نفسه يكمن وراء تصميم Ethereum، حيث تُستخدم أشجار Merkle ليس فقط للمعاملات ولكن أيضاً لتخزين الحالة والإيصالات، مما يُمكّن بروتوكولات عميل خفيف أكثر تطوراً.

Alternative Blockchain Applications

Bitcoin blockchain의 성공은 이 개념을 단순한 화폐를 넘어 확장하려는 수많은 시도를 촉발했다. 2010년에 출시된 Namecoin은 가장 초기의 사례 중 하나로, blockchain 위에 구축된 탈중앙화 이름 등록 데이터베이스로서 중앙 기관이 검열하거나 취소할 수 없는 분산 네임스페이스에 이름을 등록할 수 있게 해주었다. Colored coins는 특정 거래 출력을 "태깅"하여 실물 자산, 회사 주식 또는 기타 암호화폐의 소유권을 나타내는 방식으로 Bitcoin blockchain에서 대체 자산을 표현하는 방법으로 등장했다. Mastercoin(이후 Omni)과 같은 Metacoin 및 메타 프로토콜은 Bitcoin 거래에 추가 데이터를 인코딩하고 그 위에 별도의 프로토콜 규칙을 구축하여 Bitcoin 위에 추가 기능을 레이어링했다.

그러나 이러한 모든 접근법은 Bitcoin의 아키텍처가 부과하는 근본적인 한계에 시달렸다. Bitcoin 스크립팅 언어는 의도적으로 제한되어 있다 — blockchain 상태에 접근할 수 없고, 반복문과 복잡한 제어 흐름이 없으며, 거래 값에 대한 제한된 내성만을 제공한다. 정교한 애플리케이션을 구축하려면 어색한 우회 방법이 필요했다: 그러한 목적으로 의도되지 않은 거래 필드에 메타데이터를 인코딩하거나, 복잡한 로직을 위해 오프체인 인프라에 의존하거나, 프로토콜이 달성할 수 있는 것에 대한 심각한 제한을 수용해야 했다.

이러한 제약은 더 범용적인 blockchain 플랫폼에 대한 탐색을 촉발했다. Bitcoin의 제한된 기반 위에 또 다른 특수 목적 프로토콜을 구축하는 대신, Ethereum은 다른 접근법을 취한다: Turing-complete 프로그래밍 언어가 내장된 blockchain을 제공하여 누구나 소유권, 거래 형식, 상태 전이 함수에 대한 임의의 규칙을 가진 smart contract와 탈중앙화 애플리케이션을 작성할 수 있게 한다.

Alternative Blockchain Applications

ألهم نجاح blockchain الخاص بـ Bitcoin محاولات عديدة لتوسيع المفهوم إلى ما هو أبعد من العملة البسيطة. كان Namecoin، الذي أُطلق في عام 2010، من أوائل الأمثلة—قاعدة بيانات لامركزية لتسجيل الأسماء مبنية على blockchain، تسمح للمستخدمين بتسجيل أسماء في نطاق أسماء موزع لا يمكن لأي سلطة مركزية رقابته أو إلغاؤه. ظهرت Colored coins كطريقة لتمثيل أصول بديلة على blockchain الخاص بـ Bitcoin عن طريق "وسم" مخرجات معاملات محددة لتمثيل ملكية أصول حقيقية أو أسهم شركات أو عملات مشفرة أخرى. أضافت Metacoins والبروتوكولات الفوقية مثل Mastercoin (لاحقاً Omni) وظائف إضافية فوق Bitcoin عن طريق ترميز بيانات إضافية في معاملات Bitcoin وبناء قواعد بروتوكول منفصلة فوقها.

ومع ذلك، عانت جميع هذه المقاربات من قيود جوهرية فرضتها بنية Bitcoin. لغة البرمجة النصية لـ Bitcoin مقيدة عمداً—لا يمكنها الوصول إلى حالة blockchain، وتفتقر إلى الحلقات وتدفق التحكم المعقد، وتوفر استبطاناً محدوداً لقيم المعاملات. تطلب بناء تطبيقات متطورة حلولاً بديلة محرجة: ترميز البيانات الوصفية في حقول معاملات لم تُصمم لهذا الغرض أبداً، والاعتماد على بنية تحتية خارج السلسلة للمنطق المعقد، أو قبول قيود شديدة على ما يمكن للبروتوكول إنجازه.

حفّزت هذه القيود البحث عن منصة blockchain أكثر عمومية. بدلاً من بناء بروتوكول آخر ذو غرض خاص فوق أساس Bitcoin المحدود، يتبنى Ethereum مقاربة مختلفة: توفير blockchain بلغة برمجة Turing-complete مدمجة، تسمح لأي شخص بكتابة smart contracts وتطبيقات لامركزية بقواعد عشوائية للملكية وصيغ المعاملات ودوال state transition.

Scripting

Bitcoin Script는 Bitcoin 거래의 지출 조건을 정의하는 데 사용되는 언어로, 의도적으로 심각한 제한을 가지고 설계되었다. Turing-complete하지 않으며 — 가장 주목할 만한 것은 반복문과 복잡한 제어 흐름 구조가 없다는 점이다. 이 언어는 연산이 값을 push하고 pop하며, 암호학적 조건을 평가하고, 궁극적으로 거래가 유효한지 결정하기 위해 true 또는 false를 반환하는 단순한 스택 기반 실행 환경으로 작동한다. 이러한 단순성은 보안상의 이점과 형식적 분석을 용이하게 하지만, 많은 유형의 애플리케이션을 구현하는 것을 불가능하게 만든다.

이러한 제한은 세 가지 주요 범주로 나뉜다. 첫째, Turing-completeness의 부재로 인해 복잡한 상태 기계, 의사결정 트리, 또는 반복을 필요로 하는 어떤 알고리즘도 구현할 수 없다. 둘째, 값 인지 불가(value-blindness)로 인해 스크립트가 출금 금액에 대한 세밀한 제어를 지정할 수 없다 — UTXO는 전액으로만 사용할 수 있으며, 거스름돈은 새로운 출력으로 보내진다. 예를 들어, 스크립트는 하루 최대 X까지만 출금하고 나머지는 잠금 상태로 유지하도록 제한할 수 없다. 셋째, blockchain 상태 인식의 부재로 인해 UTXO는 사용되었거나 사용되지 않은 두 가지 상태만 가지며 중간 상태가 없어, 다단계 계약을 순수하게 온체인에서 구현하는 것이 불가능하다.

이러한 제약은 탈중앙화 자율 조직, 출금 한도가 있는 저축 지갑, 탈중앙화 거래소, 또는 예측 시장과 같은 정교한 애플리케이션을 불가능하게 하거나 어색한 오프체인 메커니즘을 필요로 한다. 고급 금융 계약은 시장 데이터에 대한 접근, 여러 거래에 걸쳐 내부 상태를 유지하는 능력, 복잡한 조건부 로직을 필요로 할 수 있다 — 이 중 어느 것도 Bitcoin Script가 제공할 수 없다. Ethereum은 blockchain 상태에 대한 완전한 접근이 가능한 Turing-complete 언어를 제공함으로써 이러한 제한을 제거한다.

Scripting

Bitcoin Script، اللغة المستخدمة لتعريف شروط الإنفاق لمعاملات Bitcoin، صُممت عمداً بقيود شديدة. إنها ليست Turing-complete—والأبرز أنها تفتقر إلى الحلقات وبنى تدفق التحكم المعقدة. تعمل اللغة كبيئة تنفيذ بسيطة قائمة على المكدس حيث تقوم العمليات بدفع وسحب القيم، وتقييم الشروط التشفيرية، وتُرجع في النهاية true أو false لتحديد ما إذا كانت المعاملة صالحة. بينما توفر هذه البساطة فوائد أمنية وتسهل التحليل الرسمي، فإنها تجعل العديد من أنواع التطبيقات مستحيلة التنفيذ.

تقع هذه القيود في ثلاث فئات رئيسية. أولاً، عدم اكتمال Turing يمنع تنفيذ آلات الحالة المعقدة وأشجار القرار أو أي خوارزمية تتطلب التكرار. ثانياً، عمى القيمة يعني أن البرامج النصية لا يمكنها تحديد تحكم دقيق في مبالغ السحب—يمكن إنفاق UTXO فقط بالكامل، مع إرسال الباقي إلى مخرج جديد. لا يمكن للبرنامج النصي، على سبيل المثال، تحديد السحب بحد أقصى X يومياً مع إبقاء الباقي مقفلاً. ثالثاً، عدم الوعي بحالة blockchain يعني أن UTXO إما منفقة أو غير منفقة بدون حالات وسيطة، مما يجعل العقود متعددة المراحل مستحيلة التنفيذ بالكامل على السلسلة.

تجعل هذه القيود التطبيقات المتطورة مثل المنظمات اللامركزية المستقلة، ومحافظ التوفير بحدود السحب، والبورصات اللامركزية، أو أسواق التنبؤ إما مستحيلة أو تتطلب آليات خارج السلسلة محرجة. قد يتطلب عقد مالي متقدم الوصول إلى بيانات السوق، والقدرة على الحفاظ على حالة داخلية عبر معاملات متعددة، ومنطق شرطي معقد—لا يمكن لـ Bitcoin Script توفير أي منها. يزيل Ethereum هذه القيود بتوفير لغة Turing-complete مع وصول كامل إلى حالة blockchain.

Ethereum

Ethereum의 근본적인 목표는 Turing-complete 프로그래밍 언어가 내장된 blockchain을 제공하여 누구나 소유권, 거래 형식, 상태 전이 함수에 대한 임의의 규칙을 만들 수 있는 smart contract와 탈중앙화 애플리케이션을 작성할 수 있게 하는 것이다. 화폐, 이름 등록, 자산 거래와 같은 특정 애플리케이션을 위한 프로토콜을 설계하는 대신, Ethereum은 개발자가 상상할 수 있는 모든 애플리케이션을 구축할 수 있는 blockchain 기반 분산 컴퓨팅 플랫폼이라는 기반 계층을 제공한다.

아키텍처는 Bitcoin의 UTXO 모델과 근본적으로 다르다. Ethereum은 blockchain 상태가 주소에서 계정 객체로의 매핑으로 구성되는 계정 기반 시스템을 사용한다. 각 계정은 잔액, 거래 카운터(nonce)를 가지며, contract 계정의 경우 관련 코드와 저장소를 갖는다. 플랫폼에는 Ethereum Virtual Machine(EVM)에서 실행되는 contract 코드를 작성하기 위한 Turing-complete 프로그래밍 언어가 내장되어 있으며, EVM은 거래와 상태 전이를 처리하는 스택 기반 실행 환경이다.

이러한 범용성은 광범위한 애플리케이션을 가능하게 한다: 사용자 정의 발행 규칙을 가진 대안 암호화폐, 금융 파생상품과 stablecoin, 신원 및 평판 시스템, 탈중앙화 파일 저장, 탈중앙화 자율 조직(DAO) 등. 백서는 Ethereum이 특정 사용 사례에 최적화되어 있지 않으며, 대신 개발자가 생태계가 요구하는 어떤 애플리케이션이든 만들기 위해 조합할 수 있는 기본 구성 요소 — 계정, 거래, Turing-complete 언어, gas 기반 실행 — 를 제공한다는 점을 강조한다.

Ethereum

الهدف الأساسي لـ Ethereum هو توفير blockchain بلغة برمجة Turing-complete مدمجة تسمح لأي شخص بكتابة smart contracts وتطبيقات لامركزية حيث يمكنهم إنشاء قواعدهم العشوائية الخاصة للملكية وصيغ المعاملات ودوال state transition. بدلاً من تصميم بروتوكول لتطبيقات محددة مثل العملة أو تسجيل الأسماء أو تداول الأصول، يوفر Ethereum طبقة أساسية—منصة حوسبة موزعة قائمة على blockchain يمكن للمطورين استخدامها لبناء أي تطبيق يمكنهم تخيله.

تختلف البنية جوهرياً عن نموذج UTXO الخاص بـ Bitcoin. يستخدم Ethereum نظاماً قائماً على الحسابات حيث تتكون حالة blockchain من تعيين من العناوين إلى كائنات الحسابات. كل حساب لديه رصيد، وعداد معاملات (nonce)، ولحسابات العقود، كود مرتبط وتخزين. تتضمن المنصة لغة برمجة Turing-complete مدمجة لكتابة كود العقود الذي يُنفذ في Ethereum Virtual Machine (EVM)، وهي بيئة تنفيذ قائمة على المكدس تعالج المعاملات وانتقالات الحالة.

تُمكّن هذه العمومية مجموعة واسعة من التطبيقات: عملات مشفرة بديلة بقواعد إصدار مخصصة، ومشتقات مالية وstablecoins، وأنظمة هوية وسمعة، وتخزين ملفات لامركزي، ومنظمات لامركزية مستقلة (DAOs)، وغير ذلك الكثير. تؤكد الورقة البيضاء أن Ethereum ليس مُحسّناً لأي حالة استخدام معينة بل يوفر اللبنات الأساسية—حسابات ومعاملات ولغة Turing-complete وتنفيذ مقاس بالـ gas—التي يمكن للمطورين دمجها لإنشاء أي تطبيقات يتطلبها النظام البيئي.

Ethereum Accounts

Ethereum에서 상태는 계정으로 구성되며, 두 가지 기본 유형이 있다. 외부 소유 계정(EOA)은 개인키로 제어되며 관련 코드가 없다 — blockchain과 상호작용하는 인간 사용자나 외부 주체를 나타낸다. Contract 계정은 contract 코드에 의해 제어되며 메시지나 거래를 수신할 때 활성화된다. 두 유형 모두 공통 구조를 공유한다: 모든 계정은 nonce(각 거래가 한 번만 처리될 수 있도록 하는 카운터), ether 잔액, 그리고 contract의 경우 특히 contract 코드와 영구 저장소를 갖는다.

Ether는 Ethereum의 주요 내부 암호화폐로, 가치 전달 매체이자 거래 수수료(gas)를 지불하기 위한 기본 단위로서의 역할을 한다. 가치가 여러 미사용 출력에 분산되어 있는 Bitcoin의 UTXO 모델과 달리, Ethereum 계정은 ether를 받으면 증가하고 보내면 감소하는 단순한 잔액을 유지한다. 이 계정 기반 모델은 특히 영구적 상태나 복잡한 접근 제어를 필요로 하는 많은 유형의 애플리케이션을 단순화하지만, Bitcoin의 접근 방식과 비교하여 다른 보안 고려 사항을 도입한다.

EOA와 contract 계정의 구분은 Ethereum의 작동을 이해하는 데 매우 중요하다. EOA는 개인키로 메시지를 생성하고 서명하여 거래를 시작할 수 있으며, 거래가 block에 포함되도록 gas 수수료를 지불한다. Contract 계정은 스스로 거래를 시작할 수 없지만, 거래나 메시지를 수신하는 것에 대한 응답으로 다른 contract에 메시지를 보낼 수 있어, 단일 외부 거래가 여러 contract 간 상호작용을 촉발하는 복잡한 실행 체인을 가능하게 한다.

Ethereum Accounts

في Ethereum، تتكون الحالة من حسابات، وهناك نوعان أساسيان. الحسابات المملوكة خارجياً (EOAs) تُتحكم بواسطة مفاتيح خاصة وليس لها كود مرتبط—تمثل المستخدمين البشريين أو الكيانات الخارجية التي تتفاعل مع blockchain. حسابات العقود تُتحكم بواسطة كود العقد الخاص بها وتُفعّل عند تلقي رسالة أو معاملة. يتشارك كلا النوعين بنية مشتركة: كل حساب لديه nonce (عداد يُستخدم لضمان أن كل معاملة تُعالج مرة واحدة فقط)، ورصيد ether، وللعقود تحديداً، كود العقد وتخزين دائم.

Ether هي العملة المشفرة الداخلية الأساسية لـ Ethereum، وتعمل كوسيط لنقل القيمة والوحدة الأساسية لدفع رسوم المعاملات (gas). على عكس نموذج UTXO الخاص بـ Bitcoin حيث تتوزع القيمة عبر مخرجات متعددة غير منفقة، تحافظ حسابات Ethereum على رصيد بسيط يزداد عند تلقي ether وينقص عند إرساله. يُبسّط هذا النموذج القائم على الحسابات أنواعاً كثيرة من التطبيقات، خاصة تلك التي تتطلب حالة دائمة أو تحكم وصول معقد، رغم أنه يُقدم اعتبارات أمنية مختلفة مقارنة بمقاربة Bitcoin.

التمييز بين EOAs وحسابات العقود حاسم لفهم عمل Ethereum. يمكن لـ EOAs بدء المعاملات بإنشاء وتوقيع رسائل بمفاتيحها الخاصة، ودفع رسوم gas لتضمين معاملاتها في الكتل. لا تستطيع حسابات العقود بدء المعاملات بنفسها لكن يمكنها إرسال رسائل إلى عقود أخرى استجابة لتلقي معاملة أو رسالة، مما يُمكّن سلاسل تنفيذ معقدة حيث تُطلق معاملة خارجية واحدة تفاعلات متعددة بين العقود.

Messages and Transactions

Ethereum의 거래는 외부 소유 계정에 의해 생성되어 네트워크에 브로드캐스트되는 서명된 데이터 패키지이다. 거래에는 수신자 주소, 발신자의 신원을 증명하는 암호학적 서명, 전송할 ether의 양, 선택적 데이터 필드(contract와의 상호작용에 중요), STARTGAS(거래가 수행할 수 있는 최대 계산 단계 수), 그리고 GASPRICE(발신자가 지불할 의향이 있는 계산 단계당 수수료)가 포함된다. 채굴자는 이러한 거래를 수집하고, 검증하고, 실행하여 block에 포함시키며, 보상으로 gas 수수료를 받는다.

메시지는 개념적으로 거래와 유사하지만 외부 행위자가 아닌 contract에 의해 생성된다. contract의 코드가 실행될 때, 다른 contract에 메시지를 보낼 수 있다 — 이러한 내부 메시지에는 발신자(contract 주소), 수신자, 전송할 ether의 양, 선택적 데이터 페이로드, STARTGAS 한도가 포함된다. 메시지는 contract 간 통신을 가능하게 하여, 단일 모놀리식 프로그램이 아닌 여러 상호작용하는 contract로 복잡한 애플리케이션을 구축할 수 있게 한다.

Gas 메커니즘은 남용 방지에 매우 중요하다: 거래 내의 모든 계산 단계, 저장 연산, 데이터 바이트는 gas를 소비한다. 거래가 완료되기 전에 gas가 소진되면, 모든 상태 변경이 되돌려진다(채굴자에 대한 gas 지불은 제외). 이는 무한 루프나 과도한 계산이 네트워크를 정지시키는 것을 방지한다. 발신자는 총 gas 예산(STARTGAS)과 단위당 지불할 가격(GASPRICE)을 모두 지정하며, 사용되지 않은 gas는 실행 완료 후 환불된다.

Messages and Transactions

المعاملات في Ethereum هي حزم بيانات موقعة تُنشأ بواسطة حسابات مملوكة خارجياً وتُبث إلى الشبكة. تحتوي المعاملة على عنوان المستلم، وتوقيع تشفيري يُثبت هوية المرسل، ومقدار ether المُراد تحويله، وحقل بيانات اختياري (حاسم للتفاعل مع العقود)، وSTARTGAS (الحد الأقصى لعدد الخطوات الحسابية المسموح بها للمعاملة)، وGASPRICE (الرسوم لكل خطوة حسابية يرغب المرسل في دفعها). يجمع المُعدّنون هذه المعاملات ويتحققون منها وينفذونها ويضمونها في الكتل، ويتلقون رسوم gas كتعويض.

الرسائل مشابهة مفاهيمياً للمعاملات لكنها تُنتج بواسطة العقود بدلاً من الجهات الخارجية. عندما يُنفذ كود عقد، يمكنه إرسال رسائل إلى عقود أخرى—تحتوي هذه الرسائل الداخلية على المرسل (عنوان العقد)، والمستلم، ومقدار ether المُراد تحويله، وحمولة بيانات اختيارية، وحد STARTGAS. تُمكّن الرسائل التواصل بين العقود، مما يسمح ببناء تطبيقات معقدة من عقود متعددة متفاعلة بدلاً من برامج متجانسة.

آلية gas حاسمة لمنع إساءة الاستخدام: كل خطوة حسابية وعملية تخزين وبايت بيانات في المعاملة تستهلك gas. إذا نفد gas المعاملة قبل اكتمالها، تُعاد جميع تغييرات الحالة (باستثناء دفع gas للمُعدّن)، مما يمنع الحلقات اللانهائية أو الحوسبة المفرطة من تعطيل الشبكة. يُحدد المرسل كلاً من ميزانية gas الإجمالية (STARTGAS) والسعر الذي يرغب في دفعه لكل وحدة (GASPRICE)، ويُسترد أي gas غير مستخدم بعد اكتمال التنفيذ.

Ethereum State Transition Function

Ethereum 상태 전이 함수 APPLY(S,TX) - S'는 거래가 blockchain 상태를 어떻게 변환하는지를 정의하며, 정확한 단계의 순서를 따른다. 먼저 시스템은 거래의 유효성을 검사한다: 서명이 올바른지 확인하고, nonce가 발신자 계정의 nonce와 일치하는지 확인하며, 발신자가 선불 비용(STARTGAS x GASPRICE에 전송되는 값을 더한 금액)을 지불할 충분한 잔액이 있는지 확인한다. 어떤 검사라도 실패하면, 거래는 실행 시작 전에 거부된다. 유효하면, 거래 수수료가 발신자의 계정에서 차감되고, 발신자의 nonce가 증가하며, 초기 gas 카운터가 STARTGAS에서 거래 데이터에 대한 바이트당 수수료를 뺀 값으로 설정된다.

Ethereum state transition function showing gas deduction value transfer and code execution

다음으로, 시스템은 지정된 ether 값을 발신자에서 수신자로 전송한다. 수신자가 외부 소유 계정이면, 이것으로 거래가 완료된다. 수신자가 contract 계정이면, contract의 코드가 Ethereum Virtual Machine에서 실행되며, 코드가 성공적으로 완료되거나, 코드가 명시적으로 중지되거나, gas가 소진될 때까지 각 연산에 대해 gas를 소비한다. 실행 중에 contract는 자신의 저장소를 읽고 수정하며, 다른 contract에 메시지를 보내고, 새로운 contract를 생성할 수 있다.

마지막으로, 값 전송이 실패했거나(잔액 부족) 코드 실행이 실패했으면(gas 소진 또는 오류 발생), 모든 상태 변경이 되돌려진다 — 다만 발신자는 수행된 계산에 대해 여전히 채굴자에게 gas 수수료를 지불한다. 실행이 성공하면, 나머지 gas가 발신자에게 환불되고, 소비된 gas는 수수료로 채굴자에게 전송된다. 이 메커니즘은 채굴자가 계산에 대해 보상받으면서도 폭주하는 실행이 무한한 자원을 소비하는 것을 방지한다.

Ethereum State Transition Function

تُعرّف دالة state transition في Ethereum APPLY(S,TX) - S' كيف تُحوّل المعاملة حالة blockchain، وتتبع تسلسلاً دقيقاً من الخطوات. أولاً، يتحقق النظام من صلاحية المعاملة: التحقق من صحة التوقيع، وتأكيد أن nonce يتطابق مع nonce حساب المرسل، والتأكد من أن المرسل لديه رصيد كافٍ لدفع التكلفة المسبقة (STARTGAS × GASPRICE بالإضافة إلى القيمة المُرسلة). إذا فشل أي فحص، تُرفض المعاملة قبل بدء التنفيذ. إذا كانت صالحة، تُخصم رسوم المعاملة من حساب المرسل، ويُزاد nonce المرسل، ويُضبط عداد gas أولي على STARTGAS ناقص رسوم لكل بايت من بيانات المعاملة.

Ethereum state transition function showing gas deduction value transfer and code execution

بعد ذلك، ينقل النظام قيمة ether المحددة من المرسل إلى المستلم. إذا كان المستلم حساباً مملوكاً خارجياً، يكتمل هذا المعاملة. إذا كان المستلم حساب عقد، يعمل كود العقد في Ethereum Virtual Machine، مستهلكاً gas لكل عملية حتى يكتمل الكود بنجاح، أو يتوقف الكود صراحة، أو ينفد gas. أثناء التنفيذ، يمكن للعقد قراءة وتعديل تخزينه، وإرسال رسائل إلى عقود أخرى، وإنشاء عقود جديدة.

أخيراً، إذا فشل نقل القيمة (رصيد غير كافٍ) أو فشل تنفيذ الكود (نفاد gas أو حدوث خطأ)، تُعاد جميع تغييرات الحالة—لكن المرسل لا يزال يدفع رسوم gas للمُعدّن عن الحوسبة المُنجزة. إذا نجح التنفيذ، يُسترد gas المتبقي إلى المرسل، ويُرسل gas المُستهلك إلى المُعدّن كرسوم. تضمن هذه الآلية تعويض المُعدّنين عن الحوسبة مع منع التنفيذ الجامح من استهلاك موارد غير محدودة.

Code Execution

Ethereum Virtual Machine(EVM)은 contract 코드가 실행되는 런타임 환경으로 — Java Virtual Machine이나 WebAssembly와 개념적으로 유사한 저수준 스택 기반 가상 머신이다. Contract 코드는 바이트 시퀀스로 저장되며, 각 바이트는 EVM이 실행할 수 있는 연산(opcode)을 나타낸다. 실행 모델은 의도적으로 단순하고 결정론적이다: 동일한 입력 상태와 거래로 EVM을 실행하는 모든 노드는 동일한 출력 상태에 도달해야 하며, 이는 네트워크 전체에서의 합의를 보장한다.

EVM은 계산을 위해 세 가지 별개의 저장소 유형을 제공한다. 스택은 1024개의 요소로 제한된 후입선출(LIFO) 구조로, 즉각적인 연산 값에 사용된다. 메모리는 단일 메시지 호출 동안만 지속되고 실행 사이에 초기화되는 무한 확장 가능한 바이트 배열이다. 저장소(storage)는 각 contract 계정에 영구적으로 연결된 영구 키-값 저장소로, contract가 거래 간에 장기적인 상태를 유지하는 곳이다. 이러한 저장소 유형은 gas 가격이 다르게 책정된다 — 스택과 메모리 연산은 저렴하지만, 저장소 연산은 blockchain 비대화를 방지하기 위해 비싸다.

실행 중에 contract 코드는 중요한 컨텍스트에 접근할 수 있다: 메시지 발신자의 주소, 전송된 ether의 양, 호출자가 제공한 데이터 페이로드, 그리고 현재 block 번호, 타임스탬프, 채굴자 주소와 같은 block 수준 속성을 읽을 수 있다. 코드는 호출자에게 출력 바이트 배열을 반환할 수 있으며, 다른 contract에 메시지를 보내거나 새로운 contract를 생성할 수 있다. 이 실행 모델은 Turing-complete하다 — 반복문과 복잡한 제어 흐름이 가능하다 — 그러나 gas 메커니즘이 모든 계산이 유한한 시간 내에 종료되도록 보장하며, 정지 문제를 언어 제한이 아닌 경제적으로 해결한다.

Code Execution

آلة Ethereum الافتراضية (EVM) هي بيئة التشغيل حيث يُنفذ كود العقد—آلة افتراضية منخفضة المستوى قائمة على المكدس، مشابهة مفاهيمياً لآلة Java الافتراضية أو WebAssembly. يُخزن كود العقد كتسلسل من البايتات، حيث يمثل كل بايت عملية (opcode) يمكن لـ EVM تنفيذها. نموذج التنفيذ بسيط وحتمي عمداً: يجب أن تصل كل عقدة تشغل EVM بنفس حالة الإدخال والمعاملة إلى نفس حالة الإخراج، مما يضمن الإجماع عبر الشبكة.

يوفر EVM ثلاثة أنواع مميزة من التخزين للحوسبة. المكدس هو بنية "آخر من يدخل أول من يخرج" (LIFO) محدودة بـ 1024 عنصراً، تُستخدم لقيم العمليات الفورية. الذاكرة هي مصفوفة بايت قابلة للتوسع لانهائياً تستمر فقط خلال استدعاء رسالة واحدة وتُعاد تهيئتها بين عمليات التنفيذ. التخزين هو مخزن key-value دائم مرتبط بشكل دائم بكل حساب عقد، حيث تحافظ العقود على حالتها طويلة المدى عبر المعاملات. تُسعّر أنواع التخزين هذه بشكل مختلف في gas—عمليات المكدس والذاكرة رخيصة، بينما عمليات التخزين مكلفة لمنع تضخم blockchain.

أثناء التنفيذ، يمكن لكود العقد الوصول إلى سياق حاسم: يمكنه قراءة عنوان مرسل الرسالة، ومقدار ether المُرسل، وحمولة البيانات المقدمة من المُستدعي، وخصائص مستوى الكتلة مثل رقم الكتلة الحالي والطابع الزمني وعنوان المُعدّن. يمكن للكود إرجاع مصفوفة بايت إخراج إلى المُستدعي ويمكنه إرسال رسائل إلى عقود أخرى أو إنشاء عقود جديدة. نموذج التنفيذ هذا Turing-complete—الحلقات وتدفق التحكم المعقد ممكنان—لكن آلية gas تضمن أن جميع الحوسبة تنتهي في وقت محدود، حيث تحل مشكلة التوقف اقتصادياً بدلاً من قيود اللغة.

Blockchain and Mining

Ethereum blockchain은 근본적으로 Bitcoin과 유사하며, 지금까지 실행된 모든 거래를 포함하는 데이터베이스 역할을 한다. 그러나 Bitcoin이 거래 목록만 저장하는 반면, Ethereum은 거래 목록과 가장 최근의 상태 모두를 저장한다. Ethereum의 각 block에는 이전 block의 hash, state root(전체 상태를 나타내는 Merkle Patricia trie의 루트 hash), transaction root, receipt root(거래 실행의 데이터를 저장), 난이도, 타임스탬프, nonce 값이 포함된다. 상태 자체는 주소를 계정 객체에 매핑하는 대규모 Merkle Patricia trie이며, 각 계정은 잔액, nonce, 코드(있는 경우), 저장소를 갖는다.

Ethereum APPLY BLOCK function processing transactions and updating state

Ethereum은 빠른 block 시간에서 발생하는 보안 문제를 해결하기 위해 수정된 버전의 GHOST(Greedy Heaviest Observed Subtree) 프로토콜을 사용한다. 전통적인 최장 체인 프로토콜에서 빠른 block은 높은 무효화율(stale rate)을 초래하여 네트워크 보안을 감소시키고, 대규모 채굴자가 무효화된 block에 대한 계산 낭비가 적어 중앙화 위험을 증가시킨다. GHOST는 무효화된 block(Ethereum에서 "uncle"이라 불림)을 어떤 체인이 가장 긴지 계산하는 데 포함시키며, uncle block에 부분적인 보상을 제공하여 채굴자가 이를 참조하도록 인센티브를 부여한다. 이를 통해 Ethereum은 네트워크 보안을 유지하면서 약 12초의 목표 block 시간을 유지할 수 있다.

채굴 알고리즘은 Bitcoin의 proof-of-work와 유사하게 작동하며, 채굴자가 block의 hash가 특정 난이도 목표 아래가 되는 nonce를 찾도록 요구한다. 그러나 Ethereum의 메모리 하드 채굴 알고리즘(Ethash)은 ASIC 저항성을 갖도록 설계되어, 더 탈중앙화된 채굴 생태계를 촉진한다. 난이도는 약 12초 목표를 유지하기 위해 block 시간에 따라 동적으로 조정되며, GHOST 프로토콜이 Bitcoin의 10분 평균에 비해 빠른 block 시간에도 불구하고 보안 보장을 제공하여 일관된 block 생성을 보장한다.

Blockchain and Mining

blockchain الخاص بـ Ethereum مشابه جوهرياً لـ Bitcoin، حيث يعمل كقاعدة بيانات تحتوي على كل معاملة تم تنفيذها. ومع ذلك، بينما يُخزن Bitcoin قائمة المعاملات فقط، يُخزن Ethereum كلاً من قائمة المعاملات والحالة الأحدث. كل كتلة في Ethereum تحتوي على hash الكتلة السابقة، وجذر الحالة (hash الجذر لـ Merkle Patricia trie الذي يمثل الحالة الكاملة)، وجذر المعاملات، وجذر الإيصالات (يُخزن بيانات من تنفيذ المعاملات)، بالإضافة إلى قيم الصعوبة والطابع الزمني وnonce. الحالة نفسها هي Merkle Patricia trie كبير يُعيّن العناوين إلى كائنات الحسابات، حيث كل حساب لديه رصيد وnonce وكود (إن وُجد) وتخزين.

Ethereum APPLY BLOCK function processing transactions and updating state

يستخدم Ethereum نسخة معدلة من بروتوكول GHOST (الشجرة الفرعية الأثقل المرصودة بجشع) لمعالجة مشاكل الأمان الناشئة عن أوقات الكتل السريعة. في بروتوكولات السلسلة الأطول التقليدية، تؤدي الكتل السريعة إلى معدلات عالية من الكتل القديمة، مما يقلل أمان الشبكة ويزيد مخاطر المركزية لأن المُعدّنين الكبار يُهدرون حوسبة أقل على الكتل القديمة. يُضمّن GHOST الكتل القديمة (تُسمى "أعمام" في Ethereum) في حساب أي سلسلة هي الأطول، ويوفر مكافآت جزئية لكتل الأعمام، محفزاً المُعدّنين على الإشارة إليها. يسمح هذا لـ Ethereum بالحفاظ على وقت كتلة مستهدف يبلغ حوالي 12 ثانية مع الحفاظ على أمان الشبكة.

تعمل خوارزمية التعدين بشكل مشابه لـ proof-of-work الخاص بـ Bitcoin، مما يتطلب من المُعدّنين إيجاد nonce بحيث يكون hash الكتلة أقل من هدف صعوبة معين. ومع ذلك، فإن خوارزمية التعدين كثيفة الذاكرة في Ethereum (Ethash) مصممة لتكون مقاومة لـ ASIC، مما يُعزز نظام تعدين أكثر لامركزية. تتكيف الصعوبة ديناميكياً بناءً على أوقات الكتل للحفاظ على هدف ~12 ثانية، مما يضمن إنتاج كتل متسق بينما يوفر بروتوكول GHOST ضمانات أمنية رغم أوقات الكتل الأسرع مقارنة بمتوسط Bitcoin البالغ 10 دقائق.

Applications

Ethereum 위에 구축할 수 있는 애플리케이션은 크게 세 가지 범주로 나뉜다. 첫 번째 범주는 금융 애플리케이션으로, 사용자에게 자신의 자금과 관련된 계약을 관리하고 체결하는 더 강력한 방법을 제공한다. 여기에는 하위 화폐, 금융 파생상품, 헤징 계약, 출금 한도가 있는 저축 지갑, 자금을 자동으로 분배하는 유언장, 그리고 검증된 작업 완료에 따라 급여를 계산하는 고용 계약까지 포함된다. 이러한 애플리케이션은 Ethereum의 프로그래밍 가능성을 활용하여 전통적인 시스템이나 심지어 Bitcoin에서도 구현이 불가능하거나 극히 어려운 복잡한 금융 상품을 만들어낸다.

두 번째 범주는 준금융 애플리케이션으로, 자금이 관련되지만 수행되는 작업에 상당한 비금전적 요소가 존재한다. 완벽한 예시는 계산 문제의 해답에 대한 자기 집행형 현상금이다. 누군가 계산 문제와 함께 보상금을 게시하면, contract가 제출된 해답을 자동으로 검증하고 첫 번째 정답에 현상금을 지급할 수 있다. 이 범주는 순수 금융과 다른 영역을 연결하며, 경제적 인센티브를 사용하여 문제를 해결하거나 행동을 조율한다.

세 번째 범주는 온라인 투표와 탈중앙화 거버넌스 시스템과 같이 자금과 전혀 관련이 없는 애플리케이션이다. 이러한 비금융 애플리케이션은 범용 플랫폼으로서의 Ethereum의 유연성을 보여준다. 예시로는 Namecoin과 같은 탈중앙화 도메인 네임 시스템, 평판 시스템, 탈중앙화 파일 저장, 조직 거버넌스 도구 등이 있다. 이 모든 애플리케이션 유형 중에서 token 시스템이 가장 일반적이고 기본적인 형태로 부상하여 다른 많은 애플리케이션의 구성 요소 역할을 하고 있다.

Applications

تقع التطبيقات التي يمكن بناؤها على Ethereum في ثلاث فئات عريضة. الفئة الأولى هي التطبيقات المالية، التي توفر للمستخدمين طرقاً أكثر قوة لإدارة والدخول في عقود تتعلق بأموالهم. يشمل ذلك العملات الفرعية، والمشتقات المالية، وعقود التحوط، ومحافظ التوفير بحدود السحب، والوصايا التي توزع الأموال تلقائياً، وحتى عقود التوظيف التي تحسب الدفع بناءً على إتمام العمل المُتحقق منه. تستفيد هذه التطبيقات من قابلية Ethereum للبرمجة لإنشاء أدوات مالية معقدة سيكون تنفيذها مستحيلاً أو صعباً للغاية في الأنظمة التقليدية أو حتى على Bitcoin.

الفئة الثانية هي التطبيقات شبه المالية، حيث المال متورط لكن هناك أيضاً مكون غير نقدي كبير فيما يتم فعله. مثال مثالي هو المكافآت ذاتية التنفيذ لحلول المشاكل الحسابية. يمكن لشخص نشر مشكلة حسابية مع مكافأة، ويمكن للعقد التحقق تلقائياً من الحلول المُقدمة ودفع المكافأة لأول إجابة صحيحة. تجسر هذه الفئة بين المالية البحتة والمجالات الأخرى، باستخدام الحوافز الاقتصادية لحل المشاكل أو تنسيق السلوك.

الفئة الثالثة هي التطبيقات التي لا علاقة لها بالمال على الإطلاق، مثل التصويت عبر الإنترنت وأنظمة الحوكمة اللامركزية. تُظهر هذه التطبيقات غير المالية مرونة Ethereum كمنصة عامة الغرض. تشمل الأمثلة أنظمة أسماء النطاقات اللامركزية مثل Namecoin، وأنظمة السمعة، وتخزين الملفات اللامركزي، وأدوات الحوكمة التنظيمية. من بين جميع أنواع التطبيقات هذه، برزت أنظمة الرموز كأكثرها شيوعاً وأساسية، حيث تعمل كلبنات بناء للعديد من التطبيقات الأخرى.

Token Systems

Token 시스템은 가장 강력하고 일반적인 애플리케이션 중 하나임에도 불구하고 Ethereum에서 놀라울 정도로 간단하게 구현할 수 있다. 핵심적으로 token 시스템은 단일 연산을 가진 데이터베이스에 불과하다: 계정 A에서 X 단위를 차감하고 계정 B에 X 단위를 추가하되, 거래 전에 A가 최소 X 단위를 보유하고 있어야 하며 거래가 A에 의해 승인되어야 한다는 조건이 있다. 구현에는 주소에서 잔액으로의 매핑을 유지하고 token을 계정 간에 이동하기 전에 적절한 검사를 수행하는 전송 함수를 제공하는 것이 필요하다.

기본적인 token 시스템의 contract 코드는 놀라울 정도로 간단하며 단 몇 줄로 작성할 수 있다. 주소에서 잔액으로의 매핑 데이터 구조, 초기 token 공급량을 할당하는 초기화 함수, 그리고 전송을 실행하기 전에 발신자의 잔액과 승인을 확인하는 전송 함수로 구성된다. 이러한 단순함은 Bitcoin에서 유사한 시스템을 구현하는 데 필요한 복잡성과 극명한 대조를 이루는데, Bitcoin의 제한된 스크립팅 기능으로 인해 상당한 우회 방법과 제약이 필요하기 때문이다.

Ethereum의 token은 가치 있는 거의 모든 것을 나타낼 수 있다. 자체 통화 정책을 가진 하위 화폐, 외부 자산을 추적하는 금융 파생상품, 배당권이 있는 회사 주식, 고객 프로그램의 로열티 포인트, 금이나 석유와 같은 상품, 심지어 물리적 자산의 표현까지 가능하다. Ethereum의 프로그래밍 가능성은 이러한 token이 전송 제한, 자동 소각 메커니즘, 배당 분배, 거버넌스 권한 등 행동을 지배하는 임의의 규칙을 가질 수 있게 한다. 이러한 유연성 덕분에 token 시스템은 Ethereum 생태계의 기본 구성 요소가 되었다.

Token Systems

أنظمة الرموز بسيطة بشكل مدهش في التنفيذ على Ethereum، رغم كونها واحدة من أقوى وأكثر التطبيقات شيوعاً. في جوهرها، أنظمة الرموز هي ببساطة قاعدة بيانات بعملية واحدة: طرح X وحدة من الحساب A وإضافة X وحدة إلى الحساب B، بشرط أن A كان لديه على الأقل X وحدة قبل المعاملة وأن المعاملة مُصرح بها من A. يتطلب التنفيذ الحفاظ على تعيين من العناوين إلى الأرصدة وتوفير دالة نقل تُجري الفحوصات المناسبة قبل نقل الرموز بين الحسابات.

كود العقد لنظام رموز أساسي بسيط بشكل ملحوظ ويمكن كتابته في بضعة أسطر فقط. يتكون من بنية بيانات تُعيّن العناوين إلى الأرصدة، ودالة تهيئة تُخصص العرض الأولي للرموز، ودالة نقل تتحقق من رصيد المرسل وتصريحه قبل تنفيذ النقل. هذه البساطة تتناقض بشكل صارخ مع التعقيد المطلوب لتنفيذ أنظمة مماثلة على Bitcoin، والتي ستتطلب حلولاً بديلة كبيرة وقيوداً بسبب قدرات Bitcoin البرمجية المحدودة.

يمكن أن تمثل الرموز على Ethereum فعلياً أي شيء ذي قيمة. قد تمثل عملات فرعية بسياسات نقدية خاصة بها، أو مشتقات مالية تتتبع أصولاً خارجية، أو أسهم شركات بحقوق أرباح، أو نقاط ولاء في برامج العملاء، أو سلع مثل الذهب أو النفط، أو حتى تمثيلات للممتلكات المادية. تسمح قابلية Ethereum للبرمجة لهذه الرموز بقواعد عشوائية تحكم سلوكها، مثل قيود النقل، أو آليات الحرق التلقائي، أو توزيعات الأرباح، أو حقوق الحوكمة. جعلت هذه المرونة أنظمة الرموز اللبنة الأساسية لمعظم نظام Ethereum البيئي.

Financial Derivatives and Stable-Value Currencies

금융 파생상품은 Ethereum smart contract의 가장 근본적이고 중요한 애플리케이션 중 하나이다. 간단한 헤징 계약이 기본 메커니즘을 보여준다: 당사자 A가 1,000달러 상당의 ether를 예치하고, 당사자 B가 동등한 금액을 예치하면, contract는 데이터 피드를 사용하여 그 시점의 ether USD 가치를 기록한다. 30일 후 contract는 가치를 재계산하여 1,000달러 상당의 ether를 A에게 보내고 나머지를 B에게 보낸다. ether 가격이 상승하면 A는 더 적은 ether를 받지만 1,000달러 가치를 유지하고, 가격이 하락하면 A는 해당 가치를 유지하기 위해 더 많은 ether를 받는다. 이를 통해 A는 변동성에 대해 헤징하고 B는 가격 변동에 투기할 수 있다.

이러한 contract의 구현에는 oracle contract나 데이터 피드를 통한 외부 데이터 접근이 필요하다. 이러한 oracle은 contract가 제대로 실행되기 위해 필요한 가격 정보, 날씨 데이터 또는 기타 현실 세계 정보를 제공한다. Oracle은 신뢰 의존성을 도입하지만, 신뢰할 수 있는 데이터를 제공하기 위해 중복성과 암호경제적 인센티브를 갖추도록 설계할 수 있다. Contract 자체는 단순히 oracle에 쿼리하고, 해당 데이터를 기반으로 계산을 수행하며, 프로그래밍된 로직에 따라 자금을 분배한다.

Stablecoin과 더 복잡한 금융 상품도 유사한 메커니즘을 사용하여 구축할 수 있다. Stablecoin contract는 ether 준비금을 유지하고 법정 화폐에 고정된 token을 발행하며, 가격 피드를 기반으로 공급량이나 담보 요건을 자동으로 조정할 수 있다. 옵션 계약, 선물, 스왑 및 기타 파생상품은 일반적으로 복잡한 법적 프레임워크와 신뢰할 수 있는 중개자가 필요하지만, 대신 자기 실행형 smart contract로 인코딩할 수 있다. 이러한 프로그래밍 가능한 금융 인프라는 blockchain 기술의 투명성과 보안 보장을 유지하면서 정교한 금융 공학을 가능하게 한다.

Financial Derivatives and Stable-Value Currencies

تمثل المشتقات المالية أحد أكثر التطبيقات أساسية وأهمية لعقود Ethereum الذكية. يوضح عقد تحوط بسيط الآلية الأساسية: يودع الطرف A مبلغاً معيناً من ether بقيمة \(1000، ويودع الطرف B مبلغاً مكافئاً، ويسجل العقد قيمة ether بالدولار في تلك اللحظة باستخدام تغذية بيانات. بعد 30 يوماً، يعيد العقد حساب القيمة ويرسل ether بقيمة \)1000 إلى A والباقي إلى B. إذا ارتفع سعر ether، يتلقى A ether أقل لكنه يحافظ على قيمة $1000؛ وإذا انخفض، يتلقى A المزيد من ether للحفاظ على تلك القيمة. يسمح هذا لـ A بالتحوط ضد التقلبات بينما يضارب B على تحركات الأسعار.

يتطلب تنفيذ مثل هذه العقود الوصول إلى بيانات خارجية من خلال عقود oracle أو تغذيات البيانات. توفر هذه الـ oracles معلومات الأسعار أو بيانات الطقس أو معلومات أخرى من العالم الحقيقي تحتاجها العقود للتنفيذ بشكل صحيح. بينما تُقدم الـ oracles اعتمادية ثقة، يمكن تصميمها بتكرار وحوافز اقتصادية تشفيرية لتوفير بيانات موثوقة. العقد نفسه ببساطة يستعلم من الـ oracle، ويُجري حسابات بناءً على تلك البيانات، ويوزع الأموال وفقاً لمنطقه المبرمج.

يمكن بناء Stablecoins وأدوات مالية أكثر تعقيداً باستخدام آليات مماثلة. قد يحافظ عقد stablecoin على احتياطي من ether ويُصدر رموزاً مرتبطة بعملة ورقية، معدلاً تلقائياً العرض أو متطلبات الضمان بناءً على تغذيات الأسعار. عقود الخيارات والعقود الآجلة والمبادلات والمشتقات الأخرى التي تتطلب عادةً أطراً قانونية معقدة ووسطاء موثوقين يمكن بدلاً من ذلك ترميزها كعقود ذكية ذاتية التنفيذ. تُمكّن بنية التمويل القابلة للبرمجة هذه هندسة مالية متطورة مع الحفاظ على ضمانات الشفافية والأمان لتقنية blockchain.

Identity and Reputation Systems

Namecoin과 유사한 이름 등록 시스템은 Ethereum에서 간단하게 구현할 수 있으며, 신원 시스템의 가장 단순한 예시 역할을 한다. Contract는 이름을 관련 데이터(IP 주소, 공개 키 또는 기타 정보 등)에 매핑하는 키-값 테이블로 구성된 데이터베이스를 유지한다. 누구나 소액의 등록 수수료와 함께 거래를 보내 이름을 등록할 수 있으며, 해당 이름이 아직 사용되지 않은 경우에만 가능하다. 소유자는 언제든지 관련 데이터를 업데이트할 수 있고, contract에 인코딩된 규칙에 따라 이름을 양도 가능하게 하거나 영구적으로 설정할 수 있다.

이 기반 위에 평판 점수, 신뢰 관계망(web of trust), 탈중앙화 신원 인증을 포함하는 더 고급 신원 시스템을 구축할 수 있다. 예를 들어, contract는 검증된 거래, 동료 평가 또는 작업 완료를 기반으로 평판 점수를 유지할 수 있다. 이러한 점수는 공개적으로 가시적이며 특정 주소에 암호학적으로 연결되어, 애플리케이션 간에 사용자를 따라다니는 이동 가능한 평판을 생성한다. 신뢰 관계망 시스템은 사용자가 다른 사용자의 신원을 보증할 수 있게 하여, 합법적인 사용자를 악의적 행위자와 구별하는 데 도움이 되는 소셜 그래프를 구축한다.

이러한 신원 및 평판 시스템은 다른 애플리케이션과 통합될 때 특히 강력해진다. 마켓플레이스는 판매자에게 최소 평판 점수를 요구할 수 있고, 대출 플랫폼은 차용자의 평판에 따라 이자율을 조정할 수 있으며, 소셜 네트워크는 신뢰 관계망을 사용하여 스팸과 사기성 콘텐츠를 필터링할 수 있다. 모든 애플리케이션이 조회할 수 있는 공유 신원 인프라를 제공함으로써, Ethereum은 중앙화된 신원 제공자나 독점적 평판 시스템에 의존하지 않는 새로운 유형의 신뢰 기반 애플리케이션을 가능하게 한다.

Identity and Reputation Systems

نظام تسجيل الأسماء المشابه لـ Namecoin قابل للتنفيذ بسهولة على Ethereum ويُعد أبسط مثال على نظام هوية. يحافظ العقد على قاعدة بيانات بجدول key-value يُعيّن الأسماء إلى البيانات المرتبطة (مثل عناوين IP أو المفاتيح العامة أو معلومات أخرى). يمكن لأي شخص تسجيل اسم بإرسال معاملة إلى العقد مع رسوم تسجيل صغيرة، بشرط ألا يكون الاسم مأخوذاً بالفعل. يمكن للمالك تحديث البيانات المرتبطة في أي وقت، ويمكن جعل الأسماء قابلة للنقل أو دائمة وفقاً للقواعد المُرمزة في العقد.

يمكن بناء أنظمة هوية أكثر تقدماً على هذا الأساس لتشمل درجات السمعة وعلاقات شبكة الثقة والتحقق اللامركزي من الهوية. على سبيل المثال، يمكن لعقد الحفاظ على درجات السمعة بناءً على المعاملات المُتحقق منها أو تقييمات الأقران أو إتمام المهام. ستكون هذه الدرجات مرئية للعموم ومرتبطة تشفيرياً بعناوين محددة، مما يُنشئ سمعة محمولة تتبع المستخدمين عبر التطبيقات. يمكن لأنظمة شبكة الثقة أن تسمح للمستخدمين بالتصديق على هويات الآخرين، بناء رسوم بيانية اجتماعية تساعد في التمييز بين المستخدمين الشرعيين والجهات السيئة.

تصبح أنظمة الهوية والسمعة هذه قوية بشكل خاص عند دمجها مع تطبيقات أخرى. يمكن لسوق أن يتطلب درجات سمعة دنيا للبائعين، أو منصة إقراض أن تُعدل أسعار الفائدة بناءً على سمعة المقترض، أو شبكة اجتماعية أن تستخدم شبكة الثقة لتصفية البريد العشوائي والمحتوى الاحتيالي. من خلال توفير بنية تحتية مشتركة للهوية يمكن لأي تطبيق الاستعلام عنها، يُمكّن Ethereum فئة جديدة من التطبيقات القائمة على الثقة التي لا تعتمد على مزودي هوية مركزيين أو أنظمة سمعة مملوكة.

Decentralized File Storage

탈중앙화 파일 저장은 저장이 필요한 사용자와 저장을 제공하는 제공자 간의 조율을 담당하는 Ethereum contract를 통해 구현할 수 있다. "탈중앙화 Dropbox" 모델에서 사용자는 파일을 업로드하기 위해 월정액을 지불하고, contract는 데이터를 실제로 저장하고 있음을 증명하는 저장 제공자에게 지불금을 분배한다. 증명 메커니즘은 주기적인 암호학적 도전을 통해 작동한다: contract가 파일의 일부를 무작위로 선택하고 제공자에게 해당 데이터를 보유하고 있음을 보여주는 Merkle tree 증명을 제출하도록 요청한다. 도전에 실패하거나 오프라인 상태가 된 제공자는 보증금과 향후 지불 흐름을 잃게 된다.

이 접근 방식은 중앙화 저장에 비해 여러 가지 장점을 제공한다. Merkle tree 증명은 효율적인 검증을 가능하게 한다 — 사용자와 contract는 전체 파일을 다운로드하지 않고도 파일 가용성을 확인할 수 있다. 시스템은 자연스럽게 여러 독립적인 제공자에게 파일을 분산시켜, 명시적인 복제 프로토콜 없이도 중복성을 생성한다. 경제적 인센티브는 제공자의 행동을 사용자의 필요에 맞게 조정한다: 제공자는 데이터를 안정적으로 저장하면 수익을 얻고 실패하면 손실을 입는다. 이는 중앙화 저장 솔루션에 내재된 신뢰 요건을 제거한다.

이러한 시스템의 저장 비용은 여러 가지 이유로 중앙화 대안보다 잠재적으로 낮을 수 있다. 독점 가격 책정의 제거는 시장 경쟁이 비용을 실제 저장 비용에 가깝게 낮출 수 있게 한다. 유사한 파일을 저장하는 여러 사용자로 인한 암묵적 중복성은 전체 저장 요구량을 줄일 수 있다. 비용이 많이 드는 데이터 센터 인프라나 기업 운영 비용이 필요하지 않다. 그러나 지불 메커니즘, 적절한 제공자 참여 보장, 중복성과 비용 간의 균형 관리에 관한 과제가 남아 있다. 이러한 과제에도 불구하고, 탈중앙화 저장은 Ethereum이 경제적 인센티브만으로 복잡한 다자간 상호작용을 어떻게 조율할 수 있는지를 보여준다.

Decentralized File Storage

يمكن تنفيذ تخزين الملفات اللامركزي من خلال عقود Ethereum التي تنسق بين المستخدمين الذين يحتاجون إلى التخزين والمزودين الذين يقدمونه. في نموذج "Dropbox اللامركزي"، سيدفع المستخدمون رسوماً شهرية لتحميل الملفات، مع توزيع العقد للمدفوعات على مزودي التخزين الذين يُثبتون أنهم يُخزنون البيانات فعلاً. تعمل آلية الإثبات من خلال تحديات تشفيرية دورية: يختار العقد عشوائياً أجزاء من الملفات ويطلب من المزودين تقديم إثباتات Merkle tree تُظهر أنهم يملكون تلك البيانات. المزودون الذين يفشلون في التحديات أو يصبحون غير متصلين سيخسرون ودائعهم وتدفق المدفوعات المستقبلية.

يقدم هذا النهج عدة مزايا على التخزين المركزي. تُمكّن إثباتات Merkle tree التحقق الفعال—يمكن للمستخدمين والعقد تأكيد توفر الملفات دون تنزيل الملفات بالكامل. يوزع النظام طبيعياً الملفات عبر مزودين مستقلين متعددين، مما يُنشئ تكراراً دون الحاجة إلى بروتوكولات نسخ صريحة. تُوائم الحوافز الاقتصادية سلوك المزودين مع احتياجات المستخدمين: يكسب المزودون المال بتخزين البيانات بشكل موثوق ويخسرون المال إذا فشلوا في ذلك. يُلغي هذا متطلب الثقة المتأصل في حلول التخزين المركزية.

يمكن أن تكون تكاليف التخزين في مثل هذا النظام أقل من البدائل المركزية لعدة أسباب. إلغاء التسعير الاحتكاري يسمح للمنافسة السوقية بدفع التكاليف إلى قرب التكلفة الفعلية للتخزين. التكرار الضمني من عدة مستخدمين يُخزنون ملفات مماثلة يمكن أن يقلل من متطلبات التخزين الإجمالية. لا حاجة لبنية تحتية مكلفة لمراكز البيانات أو نفقات عامة مؤسسية. ومع ذلك، تبقى التحديات حول آليات الدفع وضمان مشاركة كافية من المزودين وإدارة المفاضلة بين التكرار والتكلفة. رغم هذه التحديات، يُظهر التخزين اللامركزي كيف يمكن لـ Ethereum تنسيق تفاعلات معقدة متعددة الأطراف من خلال الحوافز الاقتصادية وحدها.

Decentralized Autonomous Organizations

탈중앙화 자율 조직(DAO)은 구성원 또는 주주의 집합이 조직의 자금을 지출하고 코드를 수정할 권리를 집단적으로 보유하는 가상 실체이다. 일반적인 DAO는 간단한 규칙으로 운영된다: 지출 결정이나 조직의 코드 수정에 구성원의 67%가 필요하다. 구성원은 제안을 제출하고 투표할 수 있으며, 제안이 충분한 지지를 받으면 contract가 자동으로 결정을 실행한다. 멤버십 지분은 양도 가능하여 DAO 참여에 대한 유동적 시장이 형성될 수 있고, 다양한 종류의 지분이 서로 다른 투표권이나 경제적 청구권을 가질 수 있다.

가장 단순한 DAO 설계는 구성원 목록을 유지하고 자체 투표 규칙을 포함한 contract의 모든 측면을 변경하기 위해 2/3 과반수 투표를 요구하는 자기 수정 contract이다. 구성원은 거래로 코드 변경을 제출하고, 다른 구성원이 투표하여 임계값에 도달하면 contract가 스스로를 업데이트한다. 더 정교한 설계에는 구성원이 자신의 투표권을 대표에게 위임할 수 있는 위임 투표 시스템이나, 투표를 위임하되 중요한 결정에 대해서는 언제든지 회수할 수 있는 유동적 민주주의(liquid democracy)가 포함될 수 있다.

DAO는 단순한 자금 관리를 넘어 다양한 목적에 활용될 수 있다. DAO는 계약자를 고용하고, 서비스를 구매하며, 주주에게 이익을 분배하는 탈중앙화 기업으로 기능할 수 있으며, 이 모든 것이 전통적인 법적 구조가 아닌 smart contract 코드에 의해 지배된다. 탈중앙화 투자 펀드로 운영되어 구성원이 어떤 프로젝트에 자금을 지원할지 투표할 수도 있다. 공유 자원을 관리하며 이해관계자가 배분 규칙에 대해 투표할 수도 있다. 핵심적인 통찰은 거버넌스 규칙을 투명하고 불변의 코드로 인코딩하고 경제적 지분에 연결함으로써, DAO가 전통적인 계층적 관리나 법적 집행 없이도 집단적 결정을 조율할 수 있다는 것이다.

Decentralized Autonomous Organizations

المنظمة اللامركزية المستقلة (DAO) هي كيان افتراضي لديه مجموعة من الأعضاء أو المساهمين الذين يملكون جماعياً الحق في إنفاق أموال الكيان وتعديل كوده. تعمل DAO نموذجية بقاعدة بسيطة: يُحتاج 67% من الأعضاء لاتخاذ قرارات الإنفاق أو تعديل كود المنظمة. يمكن للأعضاء تقديم مقترحات والتصويت عليها، وإذا حصل مقترح على دعم كافٍ، ينفذ العقد القرار تلقائياً. يمكن أن تكون حصص العضوية قابلة للنقل، مما يسمح بسوق سائلة لمشاركة DAO، ويمكن أن يكون لفئات مختلفة من الحصص حقوق تصويت أو مطالبات اقتصادية مختلفة.

أبسط تصميم DAO هو عقد ذاتي التعديل يحافظ على قائمة بالأعضاء ويتطلب تصويت أغلبية 2/3 لتغيير أي جانب من العقد، بما في ذلك قواعد التصويت الخاصة به. سيقدم الأعضاء تغييرات الكود كمعاملات، وسيصوت أعضاء آخرون، وعند الوصول إلى العتبة، سيُحدث العقد نفسه. قد تتضمن التصاميم الأكثر تطوراً أنظمة تصويت مُفوضة حيث يمكن للأعضاء تخصيص قوتهم التصويتية لممثلين، أو ديمقراطية سائلة حيث يمكن تفويض الأصوات ولكن استرجاعها في أي وقت للقرارات المهمة.

يمكن لـ DAOs أن تخدم أغراضاً متنوعة تتجاوز إدارة الأموال البسيطة. يمكن أن تعمل DAO كشركة لامركزية، توظف المقاولين وتشتري الخدمات وتوزع الأرباح على المساهمين—كل ذلك يحكمه كود smart contract بدلاً من الهياكل القانونية التقليدية. يمكن أن تعمل كصندوق استثمار لامركزي، حيث يصوت الأعضاء على المشاريع التي يُموّلونها. يمكن أن تدير مورداً مشتركاً، حيث يصوت أصحاب المصلحة على قواعد التخصيص. الفكرة الرئيسية هي أنه بترميز قواعد الحوكمة في كود شفاف وغير قابل للتغيير وربطها بحصة اقتصادية، يمكن لـ DAOs تنسيق قرارات المجموعة دون الحاجة إلى إدارة هرمية تقليدية أو إنفاذ قانوني.

Further Applications

이미 논의된 주요 범주 외에도 Ethereum은 수많은 다른 애플리케이션을 가능하게 한다. 정교한 보안 기능을 갖춘 저축 지갑은 일일 출금 한도를 설정하면서 복구를 위한 긴급 키를 제공하여, 도난으로부터 사용자를 보호하면서도 궁극적인 통제권을 유지할 수 있다. 작물 보험 contract는 날씨 데이터 피드를 기반으로 농부에게 자동으로 지급하여 청구 처리를 없애고 행정 비용을 줄일 수 있다. P2P 도박 애플리케이션은 신뢰할 수 있는 중개자 없이 운영될 수 있으며, smart contract가 판돈을 보유하고 검증 가능한 난수 또는 현실 세계 이벤트 데이터를 기반으로 승자에게 자동으로 지급한다.

온체인 예측 시장은 사용자가 미래 이벤트에 베팅할 수 있게 하여, 군중의 지혜를 통해 강력한 예측 메커니즘을 만든다. 이는 SchellingCoin 스타일 프로토콜로 강화되어 탈중앙화 oracle을 생성할 수 있다: 참가자가 독립적으로 데이터(선거 결과나 날씨 조건 등)를 보고하고, 다수와 일치하는 보고를 한 참가자는 보상을 받는 반면 이상치는 벌칙을 받는다. 이러한 암호경제적 접근 방식은 정직한 보고에 인센티브를 부여하며, 단일 oracle 제공자에 대한 신뢰 없이도 다른 contract에 신뢰할 수 있는 현실 세계 데이터를 제공할 수 있다.

다중 서명 지갑은 또 다른 중요한 애플리케이션으로, 여러 당사자 간에 자금의 공유 통제를 가능하게 한다. 2-of-3 다중 서명 지갑은 자금이 지출되기 전에 세 명의 지정된 당사자 중 두 명의 승인을 요구할 수 있으며, 에스크로 계약, 기업 자금 관리 또는 개인 보안에 유용하다. 탈중앙화 마켓플레이스는 신원 시스템, 평판 점수, 에스크로 contract, 분쟁 해결 메커니즘을 결합하여 중앙화 플랫폼 없이 P2P 상거래를 가능하게 할 수 있다. 이러한 각 애플리케이션은 Ethereum의 프로그래밍 가능성이 새로운 신뢰 모델과 조직 구조를 어떻게 가능하게 하는지를 보여준다.

Further Applications

إلى جانب الفئات الرئيسية التي نوقشت بالفعل، يُمكّن Ethereum العديد من التطبيقات الأخرى. يمكن لمحافظ التوفير ذات ميزات الأمان المتطورة فرض حدود سحب يومية مع توفير مفاتيح طوارئ للاسترداد، مما يحمي المستخدمين من السرقة مع الحفاظ على السيطرة النهائية. يمكن لعقود التأمين على المحاصيل الدفع تلقائياً للمزارعين بناءً على تغذيات بيانات الطقس، مما يُلغي معالجة المطالبات ويقلل النفقات الإدارية. يمكن لتطبيقات المقامرة من نظير إلى نظير العمل دون أي وسيط موثوق، حيث تحتفظ العقود الذكية بالرهانات وتدفع تلقائياً للفائزين بناءً على أرقام عشوائية قابلة للتحقق أو بيانات أحداث العالم الحقيقي.

تسمح أسواق التنبؤ على السلسلة للمستخدمين بالمراهنة على أحداث مستقبلية، مما يُنشئ آليات تنبؤ قوية من خلال حكمة الجماهير. يمكن تعزيزها ببروتوكولات على غرار SchellingCoin لإنشاء oracles لامركزية: يُبلّغ المشاركون بشكل مستقل عن البيانات (مثل نتائج الانتخابات أو أحوال الطقس)، ويتلقى من تتطابق تقاريرهم مع الأغلبية مكافآت بينما يُعاقب المنحرفون. يُحفز هذا النهج الاقتصادي التشفيري الإبلاغ الصادق ويمكن أن يوفر بيانات العالم الحقيقي الموثوقة لعقود أخرى دون الحاجة إلى الثقة في أي مزود oracle واحد.

تمثل محافظ التوقيع المتعدد تطبيقاً مهماً آخر، مما يُمكّن من التحكم المشترك في الأموال بين أطراف متعددة. قد تتطلب محفظة multi-sig بنمط 2-of-3 موافقة أي طرفين من ثلاثة أطراف معينة على المعاملة قبل إنفاق الأموال، وهو مفيد لترتيبات الضمان أو خزائن الشركات أو الأمان الشخصي. يمكن للأسواق اللامركزية أن تجمع بين أنظمة الهوية ودرجات السمعة وعقود الضمان وآليات حل النزاعات لتمكين التجارة من نظير إلى نظير دون منصات مركزية. يُظهر كل من هذه التطبيقات كيف تُمكّن قابلية Ethereum للبرمجة نماذج ثقة وهياكل تنظيمية جديدة.

Miscellanea And Concerns

Ethereum의 수정된 GHOST 프로토콜 구현에는 uncle 포함과 보상에 관한 구체적인 규칙이 포함되어 있다. Uncle은 현재 block 조상의 직접 자식이어야 하고(2세대에서 7세대 사이), 유효한 block 헤더여야 하며, 이전 uncle과 구별되어야 하고, 현재 block의 직접 조상이 아니어야 한다. Uncle block은 표준 block 보상의 87.5%를 받으며, 포함하는 block은 포함된 uncle당 추가로 3.125%를 받는다(최대 두 개의 uncle까지). 이 인센티브 구조는 채굴자가 관찰한 무효화된 block을 참조하도록 장려하여, 네트워크 전파에서 일시적으로 불운했던 채굴자에게 보상하면서 네트워크 보안을 강화한다.

수수료 시스템은 "gas" 개념에 기반하며, 모든 계산 연산에는 고정된 gas 비용이 있다. 예를 들어, 곱셈 연산은 5 gas, SHA256 hash는 20 gas가 소요되며, 모든 거래에는 21,000 gas의 기본 비용이 있다. 사용자는 gas limit(소비할 의향이 있는 최대 gas)과 gas price(gas 단위당 지불할 ether 금액) 모두를 지정한다. 이 시스템은 여러 목적을 수행한다: 모든 계산에 비용을 부과하여 무한 루프와 서비스 거부 공격을 방지하고, 사용자가 gas price를 통해 입찰하는 block 공간 시장을 생성하며, 채굴자가 수용할 최소 gas price를 설정할 수 있게 하여 네트워크 자원을 보호한다.

Ethereum supply growth rate comparing linear issuance to Bitcoin decreasing growth

확장성은 모든 전체 노드가 상태를 검증하기 위해 모든 거래를 처리해야 하므로 중대한 과제로 남아 있다. 현재 blockchain 아키텍처는 중앙화 시스템의 거래 처리량에 맞추기 어렵다. 잠재적 해결책으로는 서로 다른 노드가 거래의 서로 다른 하위 집합을 처리하는 상태 샤딩(state sharding)과, 더 효율적인 block 생성을 가능하게 할 수 있는 proof-of-work에서 proof-of-stake 합의로의 전환이 포함된다. Merkle proof를 사용하는 라이트 클라이언트는 모든 block을 처리하지 않고도 거래를 검증할 수 있지만, 누군가는 여전히 모든 것을 처리해야 한다. 이러한 확장성 과제는 Ethereum의 장기적 실행 가능성에 중요한 활발한 연구 개발 분야이다.

Miscellanea And Concerns

يتضمن تنفيذ Ethereum لبروتوكول GHOST المُعدل قواعد محددة لتضمين الأعمام والمكافآت. يجب أن يكون الأعمام أبناء مباشرين لسلف الكتلة الحالية (بين 2 و7 أجيال للخلف)، ويجب أن يكونوا رؤوس كتل صالحة، ويجب أن يكونوا متميزين عن الأعمام السابقين، ويجب ألا يكونوا أسلافاً مباشرين للكتلة الحالية. تتلقى كتل الأعمام 87.5% من مكافأة الكتلة القياسية، بينما تتلقى الكتلة المُضمّنة 3.125% إضافية لكل عم مُضمّن (حتى عمين). يُشجع هيكل الحوافز هذا المُعدّنين على الإشارة إلى الكتل القديمة التي يلاحظونها، مما يُعزز أمان الشبكة مع مكافأة المُعدّنين الذين عانوا من سوء حظ مؤقت في انتشار الشبكة.

يعتمد نظام الرسوم على مفهوم "gas"، حيث لكل عملية حسابية تكلفة gas ثابتة. على سبيل المثال، تكلف عملية الضرب 5 gas، وتكلف تجزئة SHA256 عشرين gas، ولكل معاملة تكلفة أساسية قدرها 21,000 gas. يُحدد المستخدمون كلاً من حد gas (الحد الأقصى لـ gas الذي يرغبون في استهلاكه) وسعر gas (كم من ether سيدفعون لكل وحدة gas). يخدم هذا النظام أغراضاً متعددة: يمنع الحلقات اللانهائية وهجمات حجب الخدمة بضمان أن كل حوسبة مدفوعة، ويُنشئ سوقاً لمساحة الكتلة حيث يتزايد المستخدمون عبر أسعار gas، ويسمح للمُعدّنين بتحديد حد أدنى لسعر gas يقبلونه، حامياً موارد الشبكة.

Ethereum supply growth rate comparing linear issuance to Bitcoin decreasing growth

تبقى قابلية التوسع مصدر قلق كبير، حيث يجب على كل عقدة كاملة معالجة كل معاملة للتحقق من الحالة. تُعاني بنى blockchain الحالية لمطابقة إنتاجية المعاملات في الأنظمة المركزية. تشمل الحلول المحتملة تجزئة الحالة، حيث تُعالج عقد مختلفة مجموعات فرعية مختلفة من المعاملات، والانتقال من proof-of-work إلى إجماع proof-of-stake، الذي يمكن أن يُمكّن إنتاج كتل أكثر كفاءة. يمكن للعملاء الخفيفين الذين يستخدمون إثباتات Merkle التحقق من المعاملات دون معالجة جميع الكتل، لكن يجب أن يُعالج شخص ما كل شيء. تمثل تحديات قابلية التوسع هذه مجالات نشطة للبحث والتطوير حاسمة لجدوى Ethereum على المدى الطويل.

Conclusion

Ethereum 프로토콜은 원래 on-blockchain 에스크로, 출금 한도, 금융 계약과 같은 고급 기능을 고도로 일반화된 프로그래밍 언어를 통해 제공하는 암호화폐의 업그레이드 버전으로 구상되었다. 그러나 Ethereum 프로토콜은 단순한 화폐를 훨씬 넘어선다. 탈중앙화 파일 저장, 탈중앙화 컴퓨팅, 탈중앙화 예측 시장을 비롯한 수십 가지 다른 개념에 관한 프로토콜은 컴퓨팅 산업의 효율성을 크게 높이고, 최초로 경제적 계층을 추가함으로써 다른 P2P 프로토콜에 대규모 촉진력을 제공할 잠재력을 갖고 있다.

특정 사용 사례를 위해 설계된 제한된 연산 집합을 제공하는 대신, Ethereum은 개발자가 설계할 수 있는 모든 애플리케이션을 구축할 수 있게 하는 Turing-complete 프로그래밍 언어를 제공한다. 나만의 금융 파생상품을 만들고 싶은가? 자신만의 화폐를 만들고 싶은가? blockchain 위에 정부를 세우고 싶은가? 이 모든 것이 Ethereum의 스크립팅 시스템으로 간단하게 구현 가능하다. 플랫폼의 힘은 어떤 애플리케이션이 구축될지 예측하는 데 있지 않고, 그것들을 쉽게 구축할 수 있는 기반 인프라를 제공하는 데 있다.

Ethereum 프로토콜에 의해 구현된 임의의 상태 전이 함수 개념은 고유한 잠재력을 가진 플랫폼을 제공한다. 데이터 저장, 도박 또는 금융의 특정 애플리케이션을 위한 폐쇄적이고 단일 목적의 프로토콜이 아니라, Ethereum은 설계상 개방적이며, 향후 수년간 많은 금융 및 비금융 프로토콜의 기반 계층으로 봉사하기에 매우 적합하다고 우리는 믿는다. 미래에 Ethereum 위에 구축될 애플리케이션은 오늘날 우리가 상상조차 할 수 없는 것일 수 있으며, 이러한 개방적 가능성이야말로 플랫폼의 진정한 약속이다.

Conclusion

صُمم بروتوكول Ethereum في الأصل كنسخة مُحسّنة من عملة مشفرة، توفر ميزات متقدمة مثل الضمان على blockchain وحدود السحب والعقود المالية من خلال لغة برمجة عالية التعميم. ومع ذلك، يتجاوز بروتوكول Ethereum مجرد العملة بكثير. البروتوكولات حول تخزين الملفات اللامركزي والحوسبة اللامركزية وأسواق التنبؤ اللامركزية، من بين عشرات المفاهيم الأخرى، لديها القدرة على زيادة كفاءة صناعة الحوسبة بشكل كبير وتوفير دفعة هائلة لبروتوكولات نظير إلى نظير الأخرى بإضافة طبقة اقتصادية لأول مرة.

بدلاً من توفير مجموعة محدودة من العمليات المصممة لحالات استخدام محددة، يوفر Ethereum لغة برمجة Turing-complete تُمكّن المطورين من بناء أي تطبيق يمكنهم تصميمه. تريد اختراع مشتق مالي خاص بك؟ إنشاء عملتك الخاصة؟ إنشاء حكومة على blockchain؟ كل هذا قابل للتنفيذ بسهولة مع نظام Ethereum البرمجي. قوة المنصة لا تكمن في التنبؤ بالتطبيقات التي ستُبنى، بل في توفير البنية التحتية الأساسية التي تجعل بناءها سهلاً.

مفهوم دالة state transition عشوائية كما نُفذ بواسطة بروتوكول Ethereum يوفر منصة ذات إمكانات فريدة. بدلاً من أن يكون بروتوكولاً مغلقاً ذا غرض واحد مخصصاً لتطبيقات محددة في تخزين البيانات أو المقامرة أو المالية، فإن Ethereum مفتوح الأفق بتصميمه، ونعتقد أنه مناسب للغاية لخدمة طبقة أساسية لعدد كبير من البروتوكولات المالية وغير المالية في السنوات القادمة. التطبيقات التي ستُبنى على Ethereum في المستقبل قد تكون تطبيقات لا يمكننا حتى تخيلها اليوم، وتلك الإمكانية المفتوحة تمثل الوعد الحقيقي للمنصة.

References and Further Reading

Ethereum 백서는 암호화폐와 분산 시스템 연구의 광범위한 선행 연구를 기반으로 한다. 기반이 되는 Bitcoin 프로토콜은 Satoshi Nakamoto의 2008년 원본 논문 "Bitcoin: A Peer-to-Peer Electronic Cash System"에 서술되어 있으며, 이 논문은 blockchain 기반 디지털 화폐의 개념을 도입했다. Bitcoin의 기능을 확장하려는 초기 시도에는 blockchain 애플리케이션을 화폐 이상으로 확장한 탈중앙화 이름 등록 시스템인 Namecoin이 포함되나, Bitcoin의 제한된 스크립팅 기능에 의해 한계가 있었다.

Colored coins 백서는 특정 bitcoin을 "착색"하여 다른 자산을 나타내는 방법을 제안했으며, Mastercoin은 더 복잡한 금융 상품을 위해 Bitcoin 위에 프로토콜 계층을 생성하려 시도했다. 두 프로젝트 모두 Bitcoin 위에 구축하는 것의 한계를 부각시키며 더 유연한 플랫폼의 필요성을 촉발했다. Bitcoin Magazine에서 탐구된 탈중앙화 자율 기업의 개념은 smart contract를 통한 조직 거버넌스에 대한 이론적 기반을 제공했다.

핵심 기술 구성 요소로는 라이트 클라이언트를 위한 간편 결제 검증(SPV), 효율적인 데이터 검증을 위한 Merkle tree, Ethereum의 상태 표현을 위한 Patricia trie가 있다. 2013년 암호학 논문에 서술된 GHOST(Greedy Heaviest Observed Subtree) 프로토콜은 빠른 block 시간에서 발생하는 보안 문제를 해결하며 Ethereum의 합의 메커니즘의 기반을 형성한다. 이러한 참고문헌들은 Ethereum이 구축된 지적 토대를 나타내며, 암호화폐, 분산 시스템, 암호학, 게임 이론의 통찰을 결합하여 범용 blockchain 플랫폼을 창조했다.

References and Further Reading

تستند ورقة Ethereum البيضاء إلى أعمال سابقة واسعة في أبحاث العملات المشفرة والأنظمة الموزعة. يُوصف بروتوكول Bitcoin الأساسي في ورقة Satoshi Nakamoto الأصلية لعام 2008 "Bitcoin: A Peer-to-Peer Electronic Cash System"، التي قدمت مفهوم العملة الرقمية القائمة على blockchain. تشمل المحاولات المبكرة لتوسيع وظائف Bitcoin نظام Namecoin، وهو نظام تسجيل أسماء لامركزي يُظهر تطبيقات blockchain خارج نطاق العملة، رغم تقييده بقدرات Bitcoin البرمجية المحدودة.

اقترحت ورقة Colored coins البيضاء طريقة لتمثيل أصول بديلة على blockchain الخاص بـ Bitcoin عن طريق "تلوين" عملات bitcoin محددة لتمثيل أصول أخرى، بينما حاول Mastercoin إنشاء طبقة بروتوكول فوق Bitcoin لأدوات مالية أكثر تعقيداً. أبرز كلاهما قيود البناء على Bitcoin وحفّز الحاجة إلى منصة أكثر مرونة. وفّر مفهوم الشركات اللامركزية المستقلة، المُستكشف في Bitcoin Magazine، أسساً نظرية للحوكمة التنظيمية من خلال العقود الذكية.

تشمل المكونات التقنية الرئيسية التحقق المبسط من الدفع (SPV) للعملاء الخفيفين، وأشجار Merkle للتحقق الفعال من البيانات، وأشجار Patricia لتمثيل حالة Ethereum. يُعالج بروتوكول GHOST (الشجرة الفرعية الأثقل المرصودة بجشع)، المُوصف في ورقة تشفير عام 2013، مشاكل الأمان الناشئة عن أوقات الكتل السريعة ويُشكل أساس آلية إجماع Ethereum. تمثل هذه المراجع الأسس الفكرية التي بُني عليها Ethereum، حيث تجمع رؤى من العملات المشفرة والأنظمة الموزعة والتشفير ونظرية الألعاب لإنشاء منصة blockchain عامة الغرض.