以太坊:下一代智能合约和去中心化应用平台
Abstract
Ethereum เป็นแพลตฟอร์ม cryptocurrency และแอปพลิเคชันแบบกระจายศูนย์รุ่นถัดไป ที่นำเสนอ blockchain พร้อมภาษาโปรแกรมมิ่ง Turing-complete ในตัว ซึ่งอนุญาตให้ทุกคนเขียน smart contract และแอปพลิเคชันแบบกระจายศูนย์ที่สามารถสร้างกฎเกณฑ์ตามอำเภอใจสำหรับการเป็นเจ้าของ รูปแบบธุรกรรม และ state transition function ได้
นวัตกรรมพื้นฐานของ Ethereum คือการรวมเทคโนโลยี blockchain ที่ริเริ่มโดย Bitcoin เข้ากับสภาพแวดล้อมการเขียนโปรแกรมอเนกประสงค์ ในขณะที่ Bitcoin มอบระบบ state transition แบบง่ายสำหรับการโอนเงินตราจากบัญชีหนึ่งไปยังอีกบัญชีหนึ่ง Ethereum มอบแพลตฟอร์มที่นักพัฒนาสามารถสร้างแอปพลิเคชันแบบกระจายศูนย์ทุกประเภทที่จินตนาการได้ ตั้งแต่สกุลเงินทางเลือกและเครื่องมือทางการเงิน ไปจนถึงระบบจดทะเบียนโดเมนและองค์กรแบบกระจายศูนย์
Ethereum บรรลุเป้าหมายนี้โดยการสร้างสิ่งที่เป็นชั้นพื้นฐานนามธรรมสูงสุด: blockchain พร้อมภาษาโปรแกรมมิ่ง Turing-complete ในตัว ที่อนุญาตให้ทุกคนเขียน smart contract และแอปพลิเคชันแบบกระจายศูนย์ที่สามารถสร้างกฎเกณฑ์ตามอำเภอใจสำหรับการเป็นเจ้าของ รูปแบบธุรกรรม และ state transition function ได้ เวอร์ชันพื้นฐานของ Namecoin สามารถเขียนได้ในสองบรรทัดของโค้ด และโปรโตคอลอื่น ๆ เช่น สกุลเงินและระบบชื่อเสียงสามารถสร้างได้ในไม่ถึงยี่สิบบรรทัด
Abstract
以太坊是下一代加密货币和去中心化应用平台,它引入了一种内置图灵完备编程语言的区块链。这使得任何人都可以编写智能合约和去中心化应用,在其中创建自己的任意所有权规则、交易格式和状态转换函数。
以太坊的根本创新在于将比特币首创的区块链技术与通用编程环境相结合。比特币提供了一个简单的状态转换系统,用于将货币从一个账户转移到另一个账户,而以太坊则提供了一个平台,开发者可以在其上构建任何他们能想象的去中心化应用——从替代货币和金融工具到域名注册系统和去中心化组织。
以太坊通过构建本质上是终极抽象基础层来实现这一目标:一个内置图灵完备编程语言的区块链,允许任何人编写智能合约和去中心化应用,在其中创建自己的任意所有权规则、交易格式和状态转换函数。Namecoin的简化版本可以用两行代码编写,而其他协议如货币和信誉系统可以在二十行以内构建完成。
Introduction and Existing Concepts
แนวคิดของสกุลเงินดิจิทัลแบบกระจายอำนาจ รวมถึงแอปพลิเคชันทางเลือก เช่น การลงทะเบียนทรัพย์สิน มีมานานหลายทศวรรษแล้ว โปรโตคอล e-cash ที่ไม่ระบุชื่อในช่วงทศวรรษ 1980 และ 1990 ซึ่งส่วนใหญ่อาศัยการเข้ารหัสแบบดั้งเดิมที่เรียกว่า Chaumian blinding ทำให้สกุลเงินมีความเป็นส่วนตัวในระดับสูง แต่โปรโตคอลส่วนใหญ่ล้มเหลวในการรับแรงดึงเนื่องจากการพึ่งพาตัวกลางแบบรวมศูนย์ ในปี 1998 b-money ของ Wei Dai กลายเป็นข้อเสนอแรกที่แนะนำแนวคิดในการสร้างเงินผ่านการไขปริศนาทางการคำนวณ เช่นเดียวกับฉันทามติแบบกระจายอำนาจ แต่ข้อเสนอดังกล่าวยังไม่มีรายละเอียดมากนักเกี่ยวกับวิธีการนำฉันทามติแบบกระจายอำนาจไปใช้จริง
ในปี 2009 สกุลเงินแบบกระจายอำนาจถูกนำมาใช้ในทางปฏิบัติเป็นครั้งแรกโดย Satoshi Nakamoto โดยรวมเอาหลักการพื้นฐานที่กำหนดไว้สำหรับการจัดการความเป็นเจ้าของผ่านการเข้ารหัสคีย์สาธารณะเข้ากับอัลกอริธึมที่เป็นเอกฉันท์สำหรับการติดตามว่าใครเป็นเจ้าของเหรียญ หรือที่เรียกว่า "หลักฐานการทำงาน" กลไกเบื้องหลังการพิสูจน์การทำงานถือเป็นความก้าวหน้าในด้านนี้ เนื่องจากสามารถแก้ไขปัญหาสองประการไปพร้อมๆ กัน ประการแรก ให้อัลกอริธึมฉันทามติที่เรียบง่ายและมีประสิทธิภาพปานกลาง ซึ่งช่วยให้โหนดในเครือข่ายตกลงร่วมกันเกี่ยวกับชุดการอัปเดตตามรูปแบบบัญญัติสำหรับสถานะของ Bitcoin ledger ประการที่สอง เป็นกลไกในการอนุญาตให้เข้าสู่กระบวนการฉันทามติอย่างเสรี แก้ปัญหาทางการเมืองในการตัดสินใจว่าใครจะมีอิทธิพลต่อฉันทามติ ขณะเดียวกันก็ป้องกันการโจมตีของซีบิลไปพร้อมๆ กัน
บล็อกเชน Bitcoin ได้รับการพิสูจน์แล้วว่าแข็งแกร่งอย่างน่าทึ่งตลอดระยะเวลาหลายปีของการดำเนินงาน แต่ก็มีข้อจำกัดโดยเนื้อแท้ ภาษาสคริปต์ของ Bitcoin ได้รับการออกแบบโดยเจตนาให้มีข้อจำกัดและไม่สมบูรณ์ ขาดการวนซ้ำ และคุณสมบัติอื่นๆ มากมายที่จำเป็นต่อการสร้างแอปพลิเคชันที่ซับซ้อนมากขึ้น ข้อจำกัดนี้มีไว้เพื่อป้องกันการวนซ้ำไม่สิ้นสุดและการโจมตีทางคอมพิวเตอร์ในรูปแบบอื่นๆ แต่จะจำกัดสิ่งที่สามารถสร้างบน Bitcoin ได้อย่างเข้มงวด
ในช่วงห้าปีที่ผ่านมา มีความพยายามหลายครั้งในการขยายฟังก์ชันการทำงานของ Bitcoin เหรียญสีพยายามใช้บล็อคเชน Bitcoin เพื่อติดตามความเป็นเจ้าของสินทรัพย์ทางเลือก Namecoin พยายามสร้างฐานข้อมูลการลงทะเบียนชื่อแบบกระจายอำนาจ และโปรโตคอล metacoin ต่างๆ ที่มีวัตถุประสงค์เพื่อสร้างเลเยอร์เพิ่มเติมที่ด้านบนของ Bitcoin แม้ว่าแนวทางเหล่านี้แสดงให้เห็นแนวโน้มที่ดี แต่ท้ายที่สุดแล้วแนวทางเหล่านี้ถูกจำกัดด้วยความสามารถในการเขียนสคริปต์ของ Bitcoin และไม่สามารถเข้าถึงข้อมูลบล็อกเชนจากภายในสคริปต์ได้
สิ่งที่ Ethereum ตั้งใจที่จะมอบให้คือบล็อกเชนที่มีภาษาการเขียนโปรแกรมทัวริงที่สมบูรณ์ในตัว ซึ่งสามารถใช้เพื่อสร้าง "สัญญา" ที่สามารถใช้เพื่อเข้ารหัสฟังก์ชันการเปลี่ยนสถานะตามอำเภอใจ ช่วยให้ผู้ใช้สามารถสร้างระบบใดๆ ที่อธิบายไว้ข้างต้น เช่นเดียวกับระบบอื่นๆ อีกมากมายที่เรายังไม่ได้จินตนาการ เพียงแค่เขียนตรรกะในโค้ดเพียงไม่กี่บรรทัด
Introduction and Existing Concepts
去中心化数字货币的概念以及诸如财产登记等替代应用已经存在了数十年。20世纪80年代和90年代的匿名电子现金协议主要依赖一种被称为乔姆盲签名的密码学原语,提供了高度隐私的货币,但这些协议由于依赖中心化中介机构而未能广泛流行。1998年,戴维的b-money成为第一个引入通过解决计算难题来创造货币以及去中心化共识理念的提案,但该提案在如何实际实现去中心化共识方面缺乏细节。
2009年,中本聪首次在实践中实现了去中心化货币,他将通过公钥密码学管理所有权的成熟原语与一种用于追踪币的所有权的共识算法——即"工作量证明"——结合在一起。工作量证明背后的机制是该领域的一个突破,因为它同时解决了两个问题。首先,它提供了一种简单且适度有效的共识算法,使网络中的节点能够集体就比特币账本状态的一组规范更新达成一致。其次,它提供了一种允许自由参与共识过程的机制,解决了由谁来影响共识的政治问题,同时防止了女巫攻击。
比特币区块链在多年运行中已证明了其卓越的稳健性,但它本质上是有局限的。比特币的脚本语言被有意设计为限制性的、非图灵完备的,缺少循环和许多其他构建更复杂应用所必需的功能。这种限制的存在是为了防止无限循环和其他形式的计算攻击,但它严重限制了可以在比特币之上构建的内容。
在过去五年中,已经有许多尝试来扩展比特币的功能。彩色币试图利用比特币区块链来追踪替代资产的所有权,域名币试图创建一个去中心化的域名注册数据库,各种元币协议旨在在比特币之上构建额外的层级。虽然这些方法展现了前景,但最终都受到比特币脚本能力的限制以及脚本内无法访问区块链数据的制约。
以太坊的目标是提供一个内置完整图灵完备编程语言的区块链,该语言可用于创建"合约",对任意状态转换函数进行编码,使用户只需用几行代码编写逻辑,就能创建上述任何系统以及许多我们尚未想象到的系统。
Bitcoin As A State Transition System
จากมุมมองทางเทคนิค ledger ของสกุลเงินดิจิทัล เช่น Bitcoin สามารถถือเป็นระบบการเปลี่ยนสถานะ โดยมี "สถานะ" ประกอบด้วยสถานะความเป็นเจ้าของของ bitcoins ที่มีอยู่ทั้งหมด และ "ฟังก์ชันการเปลี่ยนสถานะ" ที่รับสถานะและธุรกรรม และส่งออกสถานะใหม่ซึ่งเป็นผลลัพธ์ ตัวอย่างเช่น ในระบบธนาคารมาตรฐาน รัฐคืองบดุล ธุรกรรมคือการร้องขอให้ย้าย \(X จาก A ไป B และฟังก์ชันการเปลี่ยนสถานะจะลดมูลค่าในบัญชีของ A ลง \)X และเพิ่มมูลค่าในบัญชีของ B ลง \(X หากบัญชีของ A มีน้อยกว่า \)X ในตอนแรก ฟังก์ชันการเปลี่ยนสถานะจะส่งกลับข้อผิดพลาด

"สถานะ" ใน Bitcoin คือการรวบรวมเหรียญทั้งหมด (ในทางเทคนิค "เอาต์พุตธุรกรรมที่ยังไม่ได้ใช้" หรือ UTXO) ที่ได้รับการสร้างเสร็จและยังไม่ได้ใช้ โดยแต่ละ UTXO มีสกุลเงินและเจ้าของ (กำหนดโดยที่อยู่ 20 ไบต์ ซึ่งโดยพื้นฐานแล้วคือคีย์สาธารณะที่เข้ารหัส) ธุรกรรมประกอบด้วยอินพุตหนึ่งรายการขึ้นไป โดยแต่ละอินพุตประกอบด้วยการอ้างอิงถึง UTXO ที่มีอยู่และลายเซ็นการเข้ารหัสที่สร้างโดยคีย์ส่วนตัวที่เกี่ยวข้องกับที่อยู่ของเจ้าของ และเอาต์พุตอย่างน้อยหนึ่งรายการ โดยแต่ละเอาต์พุตจะมี UTXO ใหม่ที่จะเพิ่มลงในสถานะ
ฟังก์ชันการเปลี่ยนสถานะ APPLY(S,TX) - S' สามารถกำหนดได้คร่าวๆ ดังนี้:
- สำหรับแต่ละอินพุตใน TX หาก UTXO ที่อ้างอิงไม่ได้อยู่ใน S ให้ส่งกลับข้อผิดพลาด
- หากลายเซ็นที่ให้ไว้ไม่ตรงกับเจ้าของ UTXO ให้ส่งคืนข้อผิดพลาด
- หากผลรวมของส่วนของอินพุต UTXO ทั้งหมดน้อยกว่าผลรวมของส่วนของเอาต์พุต UTXO ทั้งหมด ให้ส่งกลับข้อผิดพลาด
- ส่งคืน S โดยเอาอินพุต UTXO ทั้งหมดออกและเพิ่ม UTXO เอาต์พุตทั้งหมด
ครึ่งแรกของขั้นตอนแรกจะป้องกันไม่ให้ผู้ส่งธุรกรรมใช้เหรียญที่ไม่มีอยู่จริง ครึ่งหลังของขั้นตอนแรกจะป้องกันไม่ให้ผู้ส่งธุรกรรมใช้เหรียญของผู้อื่น และขั้นตอนที่สองบังคับใช้การอนุรักษ์มูลค่า เพื่อใช้ในการชำระเงิน โปรโตคอลจะเป็นดังนี้: สมมติว่าอลิซต้องการส่ง 11.7 BTC ให้กับ Bob ก่อนอื่น Alice จะมองหาชุดของ UTXO ที่มีอยู่ซึ่งเธอเป็นเจ้าของ ซึ่งมีมูลค่ารวมอย่างน้อย 11.7 BTC ตามความเป็นจริงแล้ว Alice จะไม่สามารถรับ 11.7 BTC ได้อย่างแน่นอน บอกว่าค่าที่เล็กที่สุดที่เธอหาได้คือ 6+4+2=12 จากนั้นเธอก็สร้างธุรกรรมด้วยอินพุตสามรายการและเอาต์พุตสองรายการ เอาต์พุตแรกจะเป็น 11.7 BTC โดยมีที่อยู่ของ Bob เป็นเจ้าของ และเอาต์พุตที่สองจะเป็น "การเปลี่ยนแปลง" ที่เหลือ 0.3 BTC โดยเจ้าของคืออลิซเอง
Bitcoin As A State Transition System
从技术角度来看,像比特币这样的加密货币的账本可以被视为一个状态转换系统,其中有一个由所有现有比特币的所有权状态组成的"状态",以及一个接受状态和交易并输出新状态的"状态转换函数"。在标准银行系统中,例如,状态是一张资产负债表,交易是将\(X从A转移到B的请求,状态转换函数将A账户中的值减少\)X,并将B账户中的值增加\(X。如果A的账户余额一开始就少于\)X,状态转换函数将返回错误。

比特币中的"状态"是所有已被铸造且尚未花费的币的集合(技术上称为"未花费的交易输出"或UTXO),每个UTXO都有一个面额和一个所有者(由一个20字节的地址定义,本质上是一个密码学公钥)。一笔交易包含一个或多个输入,每个输入包含对一个现有UTXO的引用和由所有者地址关联的私钥产生的密码学签名,以及一个或多个输出,每个输出包含一个要添加到状态中的新UTXO。
状态转换函数APPLY(S,TX) - S'可以大致定义如下:
- 对于TX中的每个输入,如果引用的UTXO不在S中,返回错误。
- 如果提供的签名与UTXO的所有者不匹配,返回错误。
- 如果所有输入UTXO的面额之和小于所有输出UTXO的面额之和,返回错误。
- 返回移除所有输入UTXO并添加所有输出UTXO后的S。
第一步的前半部分防止交易发送者花费不存在的币,第一步的后半部分防止交易发送者花费他人的币,第二步确保价值守恒。为了使用此方法进行支付,协议如下:假设Alice想要向Bob发送11.7 BTC。首先,Alice将寻找一组她拥有的、总计至少为11.7 BTC的可用UTXO。实际上,Alice不太可能恰好得到11.7 BTC;假设她能得到的最小组合是6+4+2=12。然后她创建一笔有三个输入和两个输出的交易。第一个输出将是11.7 BTC,所有者为Bob的地址,第二个输出将是剩余的0.3 BTC"找零",所有者为Alice自己。
Mining
หากเราเข้าถึงบริการแบบรวมศูนย์ที่น่าเชื่อถือ ระบบนี้คงใช้งานไม่ได้ มันสามารถเขียนโค้ดได้ตรงตามที่อธิบายไว้ โดยใช้ฮาร์ดไดรฟ์ของเซิร์ฟเวอร์ส่วนกลางเพื่อติดตามสถานะ อย่างไรก็ตาม ด้วย Bitcoin เรากำลังพยายามสร้างระบบสกุลเงินที่กระจายอำนาจ ดังนั้นเราจะต้องรวมระบบธุรกรรมของรัฐเข้ากับระบบฉันทามติเพื่อให้แน่ใจว่าทุกคนเห็นด้วยกับลำดับของธุรกรรม กระบวนการฉันทามติแบบกระจายอำนาจของ Bitcoin กำหนดให้โหนดในเครือข่ายพยายามสร้างแพ็คเกจธุรกรรมที่เรียกว่า "บล็อก" อย่างต่อเนื่อง เครือข่ายมีวัตถุประสงค์เพื่อสร้างประมาณหนึ่งบล็อกทุกๆ สิบนาที โดยแต่ละบล็อกมีการประทับเวลา nonce การอ้างอิงถึง (เช่น แฮชของ) บล็อกก่อนหน้า และรายการธุรกรรมทั้งหมดที่เกิดขึ้นตั้งแต่บล็อกก่อนหน้า

เมื่อเวลาผ่านไป สิ่งนี้จะสร้าง "บล็อกเชน" ที่ต่อเนื่องและเติบโตอย่างต่อเนื่อง โดยมีการอัปเดตอย่างต่อเนื่องเพื่อแสดงสถานะล่าสุดของ Bitcoin ledger อัลกอริธึมสำหรับการตรวจสอบว่าบล็อกนั้นถูกต้องหรือไม่ ซึ่งแสดงในกระบวนทัศน์นี้มีดังนี้:
- ตรวจสอบว่าบล็อกก่อนหน้าที่บล็อกอ้างอิงนั้นมีอยู่และถูกต้องหรือไม่
- ตรวจสอบว่าการประทับเวลาของบล็อกนั้นมากกว่าของบล็อกก่อนหน้าและน้อยกว่า 2 ชั่วโมงในอนาคต
- ตรวจสอบว่าหลักฐานการทำงานบนบล็อกนั้นถูกต้อง
- ให้ S เป็นสถานะที่ส่วนท้ายของบล็อกก่อนหน้า
- สมมติว่า TX คือรายการธุรกรรมของบล็อกที่มีธุรกรรม n รายการ สำหรับ i ทั้งหมดใน 0...n-1 ให้ตั้งค่า S = APPLY(S,TX[i]) หากแอปพลิเคชันใดส่งคืนข้อผิดพลาด ให้ออกและส่งคืนค่าเท็จ
- คืนค่าเป็นจริง และลงทะเบียน S เป็นสถานะที่ส่วนท้ายของบล็อกนี้
โดยพื้นฐานแล้ว แต่ละธุรกรรมในบล็อกจะต้องจัดให้มีการเปลี่ยนสถานะที่ถูกต้องจากสถานะมาตรฐานก่อนที่ธุรกรรมจะถูกดำเนินการไปสู่สถานะใหม่ โปรดทราบว่าสถานะไม่ได้ถูกเข้ารหัสในบล็อก แต่อย่างใด มันเป็นนามธรรมล้วนๆ ที่ต้องจดจำโดยโหนดตรวจสอบความถูกต้อง และสามารถคำนวณได้ (อย่างปลอดภัย) สำหรับบล็อกใดๆ โดยเริ่มจากสถานะกำเนิดและใช้ทุกธุรกรรมตามลำดับในทุกบล็อก
นักขุดจะได้รับรางวัลสำหรับงานคำนวณด้วย bitcoins ที่สร้างขึ้นใหม่พร้อมค่าธรรมเนียมการทำธุรกรรม กระบวนการขุดมีดังต่อไปนี้: นักขุดใช้ส่วนหัวของบล็อกและแฮชมันซ้ำ ๆ ด้วยค่า nonce ที่แตกต่างกันจนกระทั่งพวกเขาพบแฮชที่ต่ำกว่าเป้าหมายความยากที่แน่นอน เมื่อนักขุดพบแฮชดังกล่าว พวกเขาจะออกอากาศบล็อกไปยังเครือข่าย และโหนดอื่น ๆ จะตรวจสอบว่าแฮชนั้นถูกต้องและธุรกรรมทั้งหมดในบล็อกนั้นถูกต้อง เป้าหมายความยากจะถูกปรับโดยอัตโนมัติโดยโปรโตคอลทุก ๆ บล็อกในปี 2559 (ประมาณสองสัปดาห์) เพื่อให้แน่ใจว่าบล็อกนั้นมีอัตราคงที่โดยประมาณ
โปรดทราบว่าในระยะยาว ความปลอดภัยของบล็อกเชนขึ้นอยู่กับนักขุดที่มีแรงจูงใจทางการเงินให้ประพฤติตนอย่างซื่อสัตย์ หากผู้โจมตีควบคุมพลังการขุดของเครือข่ายมากกว่า 50% พวกเขาก็สามารถดำเนินการ "โจมตี 51%" ได้ด้วยการสร้างบล็อคเชนทางเลือกที่เติบโตเร็วกว่าเชนที่ซื่อสัตย์ อย่างไรก็ตาม การโจมตีดังกล่าวจะต้องใช้ทรัพยากรคอมพิวเตอร์จำนวนมหาศาล และอาจส่งผลให้รางวัลการขุดของผู้โจมตีไร้ค่า เนื่องจากเครือข่ายสูญเสียความมั่นใจในความสมบูรณ์ของบล็อคเชน
Mining
如果我们能够获得一个可信的中心化服务,这个系统将很容易实现;它可以完全按照描述进行编码,使用中心化服务器的硬盘来跟踪状态。然而,对于比特币,我们试图构建一个去中心化的货币系统,因此我们需要将状态转换系统与共识系统相结合,以确保每个人都对交易顺序达成一致。比特币的去中心化共识过程要求网络中的节点不断尝试生产被称为"区块"的交易包。网络预期大约每十分钟产生一个区块,每个区块包含一个时间戳、一个随机数、对前一个区块的引用(即哈希值)以及自前一个区块以来发生的所有交易的列表。

随着时间的推移,这创建了一个持久的、不断增长的"区块链",不断更新以代表比特币账本的最新状态。在此范式中,检查一个区块是否有效的算法如下:
- 检查该区块引用的前一个区块是否存在且有效。
- 检查该区块的时间戳是否大于前一个区块的时间戳,且不超过未来2小时。
- 检查该区块上的工作量证明是否有效。
- 令S为前一个区块末尾的状态。
- 假设TX是该区块包含n笔交易的交易列表。对于所有i在0...n-1范围内,设S = APPLY(S,TX[i])。如果任何应用返回错误,退出并返回false。
- 返回true,并将S注册为该区块末尾的状态。
本质上,区块中的每笔交易都必须提供一个有效的状态转换,从交易执行前的规范状态转换到某个新状态。注意,状态并未以任何方式编码在区块中;它纯粹是由验证节点记忆的抽象概念,只能通过从创世状态开始并顺序应用每个区块中的每笔交易来(安全地)计算任何区块的状态。
矿工通过新创建的比特币和交易费获得计算工作的奖励。挖矿过程如下:矿工获取区块头并使用不同的随机数值反复对其进行哈希运算,直到找到一个低于特定难度目标的哈希值。当矿工找到这样的哈希值时,他们将区块广播到网络,其他节点验证哈希值有效且区块中的所有交易有效。难度目标由协议每2016个区块(大约两周)自动调整,以确保区块以大致恒定的速率产生。
请注意,从长远来看,区块链的安全性取决于矿工是否有经济激励来诚实行事。如果攻击者控制了网络超过50%的挖矿算力,他们就有可能通过创建一条比诚实链增长更快的替代区块链来执行"51%攻击"。然而,这样的攻击需要巨大的计算资源,并且随着网络对区块链完整性失去信心,攻击者的挖矿奖励可能变得毫无价值。
Merkle Trees
ต้นไม้ Merkle เป็นโครงสร้างข้อมูลพื้นฐานที่ใช้ในบล็อก Bitcoin เพื่อให้สามารถยืนยันการรวมธุรกรรมได้อย่างมีประสิทธิภาพและปลอดภัย Merkle tree เป็นแผนผังไบนารี่ของแฮช โดยที่ leaf nodes มีแฮชของธุรกรรมแต่ละรายการ และโหนดภายในแต่ละโหนดมีแฮชของลูกสองคนของมัน โดยสร้างแบบวนซ้ำจนกลายเป็นแฮชรูทเดี่ยวที่ถูกเก็บไว้ในส่วนหัวของบล็อก โครงสร้างแบบลำดับชั้นนี้ช่วยให้ใครก็ตามสามารถตรวจสอบได้ว่าธุรกรรมใดรวมอยู่ในบล็อกโดยการดาวน์โหลดเฉพาะสาขา Merkle ซึ่งเป็นสายโซ่ของแฮชจากธุรกรรมจนถึงราก แทนที่จะดาวน์โหลดธุรกรรมทั้งหมดในบล็อก

ประสิทธิภาพที่เพิ่มขึ้นมีนัยสำคัญ: แม้ว่าโหนด Bitcoin แบบเต็มจะต้องจัดเก็บบล็อกเชนทั้งหมด (ประมาณ 15GB ในปี 2013) แต่โหนดการตรวจสอบการชำระเงิน (SPV) แบบง่ายขึ้นจะต้องดาวน์โหลดส่วนหัวของบล็อกที่มีรากของ Merkle เท่านั้น ซึ่งต้องการข้อมูลเพียง 4MB ในการตรวจสอบธุรกรรม โหนด SPV จะร้องขอสาขา Merkle จากโหนดแบบเต็ม ซึ่งต้องการเฉพาะข้อมูล O(log n) โดยที่ n คือจำนวนธุรกรรมในบล็อก มาตราส่วนลอการิทึมนี้ทำให้สามารถรันไคลเอนต์แบบน้ำหนักเบาบนอุปกรณ์มือถือและสภาพแวดล้อมที่มีทรัพยากรต่ำได้
การใช้แผนผัง Merkle ของ Bitcoin แสดงให้เห็นถึงหลักการสำคัญ: โครงสร้างการเข้ารหัสสามารถลดความไว้วางใจและความต้องการทรัพยากรสำหรับการเข้าร่วมในเครือข่ายแบบกระจายอำนาจได้อย่างมาก หลักการเดียวกันนี้รองรับการออกแบบของ Ethereum โดยที่แผนผัง Merkle ไม่เพียงแต่ใช้สำหรับธุรกรรมเท่านั้น แต่ยังใช้สำหรับการจัดเก็บสถานะและใบเสร็จรับเงินด้วย ซึ่งช่วยให้โปรโตคอลไคลเอ็นต์แบบ light มีความซับซ้อนมากยิ่งขึ้น
Merkle Trees
默克尔树是比特币区块中使用的一种基础数据结构,用于实现高效和安全的交易包含验证。默克尔树是一种哈希二叉树,其中叶节点包含各个交易的哈希值,每个内部节点包含其两个子节点的哈希值,递归地向上构建到存储在区块头中的单个根哈希值。这种层次结构允许任何人通过只下载默克尔分支——从交易到根的哈希链——而不是下载区块中的所有交易,来验证特定交易是否包含在某个区块中。

效率提升是显著的:虽然一个完整的比特币节点必须存储整个区块链(截至2013年约15GB),简化支付验证(SPV)节点只需下载包含默克尔根的区块头,仅需要4MB的数据。为了验证一笔交易,SPV节点从完整节点请求默克尔分支,这只需要O(log n)的数据,其中n是区块中的交易数量。这种对数级的扩展性使得在移动设备和资源受限的环境中运行轻量级客户端成为可能。
比特币对默克尔树的使用展示了一个关键原则:密码学结构可以大幅降低参与去中心化网络的信任和资源要求。同样的原则也是以太坊设计的基础,在以太坊中,默克尔树不仅用于交易,还用于状态和收据存储,从而实现更复杂的轻客户端协议。
Alternative Blockchain Applications
ความสำเร็จของบล็อกเชนของ Bitcoin เป็นแรงบันดาลใจให้เกิดความพยายามมากมายในการขยายแนวคิดไปไกลกว่าสกุลเงินธรรมดา Namecoin เปิดตัวในปี 2010 เป็นหนึ่งในตัวอย่างแรกสุด ฐานข้อมูลการลงทะเบียนชื่อแบบกระจายอำนาจที่สร้างขึ้นบนบล็อกเชน ช่วยให้ผู้ใช้สามารถลงทะเบียนชื่อในเนมสเปซแบบกระจายที่ไม่มีหน่วยงานกลางใดสามารถเซ็นเซอร์หรือเพิกถอนได้ เหรียญสีกลายเป็นวิธีหนึ่งในการนำเสนอสินทรัพย์ทางเลือกบนบล็อกเชน Bitcoin โดยการ "แท็ก" ผลลัพธ์ของธุรกรรมเฉพาะเพื่อแสดงถึงความเป็นเจ้าของสินทรัพย์ในโลกแห่งความเป็นจริง หุ้นบริษัท หรือสกุลเงินดิจิตอลอื่น ๆ Metacoins และเมตาโปรโตคอล เช่น Mastercoin (ต่อมาคือ Omni) แบ่งชั้นฟังก์ชันการทำงานเพิ่มเติมไว้ด้านบนสุดของ Bitcoin โดยการเข้ารหัสข้อมูลเพิ่มเติมในธุรกรรม Bitcoin และสร้างกฎโปรโตคอลแยกต่างหากไว้ด้านบน
อย่างไรก็ตาม วิธีการทั้งหมดนี้ได้รับผลกระทบจากข้อจำกัดพื้นฐานที่กำหนดโดยสถาปัตยกรรมของ Bitcoin ภาษาสคริปต์ Bitcoin ถูกจำกัดโดยเจตนา เนื่องจากไม่สามารถเข้าถึงสถานะบล็อกเชน ขาดลูปและโฟลว์การควบคุมที่ซับซ้อน และให้การพิจารณามูลค่าธุรกรรมอย่างจำกัด การสร้างแอปพลิเคชันที่ซับซ้อนจำเป็นต้องมีวิธีแก้ปัญหาชั่วคราว: การเข้ารหัสข้อมูลเมตาในฟิลด์ธุรกรรมที่ไม่เคยมีจุดประสงค์เพื่อจุดประสงค์นั้น อาศัยโครงสร้างพื้นฐานนอกเครือข่ายสำหรับตรรกะที่ซับซ้อน หรือการยอมรับข้อจำกัดที่รุนแรงเกี่ยวกับสิ่งที่โปรโตคอลสามารถทำได้สำเร็จ
ข้อจำกัดเหล่านี้กระตุ้นให้เกิดการค้นหาแพลตฟอร์มบล็อกเชนที่มีจุดประสงค์ทั่วไปมากขึ้น แทนที่จะสร้างโปรโตคอลที่มีจุดประสงค์พิเศษอื่นนอกเหนือจากรากฐานอันจำกัดของ Bitcoin Ethereum ใช้วิธีการที่แตกต่างออกไป: มอบบล็อกเชนด้วยภาษาการเขียนโปรแกรมที่สมบูรณ์ในตัวของ Turing ช่วยให้ใครก็ตามสามารถเขียนสัญญาอัจฉริยะและแอปพลิเคชันที่กระจายอำนาจด้วยกฎที่กำหนดเองสำหรับการเป็นเจ้าของ รูปแบบธุรกรรม และฟังก์ชันการเปลี่ยนสถานะ
Alternative Blockchain Applications
比特币区块链的成功激发了许多将该概念扩展到简单货币之外的尝试。域名币(Namecoin)于2010年推出,是最早的例子之一——一个建立在区块链上的去中心化域名注册数据库,允许用户在分布式命名空间中注册域名,且没有中央权威机构可以审查或撤销。彩色币作为一种在比特币区块链上表示替代资产的方式出现,通过"标记"特定的交易输出来代表现实世界资产、公司股份或其他加密货币的所有权。万事达币(Mastercoin,后来的Omni)等元币和元协议通过在比特币交易中编码额外数据并在其上构建独立的协议规则,在比特币之上层叠了额外的功能。
然而,所有这些方法都受到比特币架构强加的根本性限制。比特币脚本语言被有意限制——它无法访问区块链状态,缺少循环和复杂的控制流,并且对交易值的内省能力有限。构建复杂的应用需要笨拙的变通方法:在从未为此目的设计的交易字段中编码元数据,依赖链下基础设施来处理复杂逻辑,或者接受协议能力上的严重限制。
这些约束推动了对更通用区块链平台的探索。以太坊不是在比特币有限的基础上再构建另一个特殊用途的协议,而是采取了不同的方法:提供一个内置图灵完备编程语言的区块链,允许任何人编写具有任意所有权规则、交易格式和状态转换函数的智能合约和去中心化应用。
Scripting
สคริปต์ Bitcoin ซึ่งเป็นภาษาที่ใช้ในการกำหนดเงื่อนไขการใช้จ่ายสำหรับธุรกรรม Bitcoin ได้รับการออกแบบโดยตั้งใจโดยมีข้อจำกัดที่เข้มงวด มันไม่ใช่ทัวริงที่สมบูรณ์ โดยเฉพาะอย่างยิ่ง มันขาดลูปและโครงสร้างโฟลว์การควบคุมที่ซับซ้อน ภาษาทำงานเป็นสภาพแวดล้อมการดำเนินการแบบอิงสแต็กอย่างง่าย โดยที่การดำเนินการดันและป๊อปค่า ประเมินเงื่อนไขการเข้ารหัส และส่งคืนค่าจริงหรือเท็จในท้ายที่สุดเพื่อพิจารณาว่าธุรกรรมนั้นถูกต้องหรือไม่ แม้ว่าความเรียบง่ายนี้จะให้ประโยชน์ด้านความปลอดภัยและทำให้การวิเคราะห์อย่างเป็นทางการง่ายขึ้น แต่ก็ยังทำให้แอปพลิเคชันหลายประเภทไม่สามารถนำไปใช้ได้
ข้อจำกัดเหล่านี้แบ่งออกเป็นสามประเภทหลัก ประการแรก การขาดความสมบูรณ์ของทัวริงจะขัดขวางการนำเครื่องสถานะที่ซับซ้อน แผนผังการตัดสินใจ หรืออัลกอริทึมใดๆ ที่ต้องการการวนซ้ำ ประการที่สอง การมองไม่เห็นคุณค่าหมายความว่าสคริปต์ไม่สามารถระบุการควบคุมจำนวนเงินที่ถอนอย่างละเอียดได้ โดย UTXO สามารถใช้ได้ทั้งหมดเท่านั้น โดยจะส่งการเปลี่ยนแปลงไปยังเอาต์พุตใหม่ ตัวอย่างเช่น สคริปต์ไม่สามารถจำกัดการถอนได้สูงสุด X ต่อวัน โดยปล่อยให้ส่วนที่เหลือถูกล็อคไว้ ประการที่สาม การขาดการรับรู้ถึงสถานะบล็อคเชน หมายความว่า UTXO ถูกใช้ไปหรือไม่ถูกใช้โดยไม่มีสถานะตัวกลาง ทำให้สัญญาแบบหลายขั้นตอนเป็นไปไม่ได้ที่จะนำไปใช้แบบออนไลน์ล้วนๆ
ข้อจำกัดเหล่านี้ทำให้แอปพลิเคชันที่ซับซ้อน เช่น องค์กรอิสระแบบกระจายอำนาจ, กระเป๋าเงินออมทรัพย์ที่มีขีดจำกัดการถอน, การแลกเปลี่ยนแบบกระจายอำนาจ หรือตลาดการคาดการณ์ เป็นไปไม่ได้หรือต้องใช้กลไกนอกเครือข่ายที่น่าอึดอัดใจ สัญญาทางการเงินขั้นสูงอาจต้องการการเข้าถึงข้อมูลตลาด ความสามารถในการรักษาสถานะภายในของธุรกรรมหลายรายการ และตรรกะเงื่อนไขที่ซับซ้อน ซึ่งสคริปต์ Bitcoin ไม่สามารถให้ได้ Ethereum ลบข้อจำกัดเหล่านี้ด้วยการจัดเตรียมภาษาทัวริงที่สมบูรณ์พร้อมการเข้าถึงสถานะบล็อกเชนอย่างเต็มรูปแบบ
Scripting
比特币脚本(Bitcoin Script)是用于定义比特币交易花费条件的语言,它被有意设计为具有严格的限制。它不是图灵完备的——最显著的是缺少循环和复杂的控制流结构。该语言作为一个简单的基于栈的执行环境运行,其中操作进行压栈和出栈、评估密码学条件,并最终返回true或false以确定交易是否有效。虽然这种简单性带来了安全性优势并使形式化分析更加容易,但它也使许多类型的应用无法实现。
这些限制可以分为三个主要类别。首先,缺乏图灵完备性使得无法实现复杂的状态机、决策树或任何需要迭代的算法。其次,值盲性意味着脚本无法对提取金额进行细粒度控制——UTXO只能被整体花费,找零被发送到新的输出。脚本无法例如限制每天最多提取X的金额,同时将余额保持锁定。第三,缺乏区块链状态感知意味着UTXO要么已花费要么未花费,没有中间状态,使得多阶段合约无法纯粹在链上实现。
这些约束使得去中心化自治组织、带提取限额的储蓄钱包、去中心化交易所或预测市场等复杂应用要么无法实现,要么需要笨拙的链下机制。一个高级金融合约可能需要访问市场数据、在多笔交易之间维护内部状态的能力以及复杂的条件逻辑——这些都是比特币脚本无法提供的。以太坊通过提供一种图灵完备的语言并完全访问区块链状态来消除这些限制。
Ethereum
เป้าหมายพื้นฐานของ Ethereum คือการจัดเตรียมบล็อกเชนด้วยภาษาโปรแกรมทัวริงที่สมบูรณ์ในตัว ซึ่งช่วยให้ใครก็ตามสามารถเขียนสัญญาอัจฉริยะและแอปพลิเคชันแบบกระจายอำนาจ ซึ่งพวกเขาสามารถสร้างกฎตามอำเภอใจของตนเองสำหรับการเป็นเจ้าของ รูปแบบธุรกรรม และฟังก์ชันการเปลี่ยนสถานะ แทนที่จะออกแบบโปรโตคอลสำหรับแอปพลิเคชันเฉพาะ เช่น สกุลเงิน การจดทะเบียนชื่อ หรือการซื้อขายสินทรัพย์ Ethereum มอบเลเยอร์พื้นฐาน ซึ่งเป็นแพลตฟอร์มการประมวลผลแบบกระจายบนบล็อกเชนที่นักพัฒนาสามารถใช้เพื่อสร้างแอปพลิเคชันใดๆ ที่พวกเขาสามารถจินตนาการได้
สถาปัตยกรรมแตกต่างโดยพื้นฐานจากโมเดล UTXO ของ Bitcoin Ethereum ใช้ระบบตามบัญชีโดยที่สถานะบล็อกเชนประกอบด้วยการแมปจากที่อยู่ไปยังออบเจ็กต์บัญชี แต่ละบัญชีมียอดคงเหลือ ตัวนับธุรกรรม (nonce) และสำหรับบัญชีสัญญา รหัสที่เกี่ยวข้องและพื้นที่เก็บข้อมูล แพลตฟอร์มดังกล่าวประกอบด้วยภาษาการเขียนโปรแกรมทัวริงที่สมบูรณ์ในตัวสำหรับการเขียนโค้ดสัญญาที่ดำเนินการใน Ethereum Virtual Machine (EVM) ซึ่งเป็นสภาพแวดล้อมการดำเนินการแบบสแต็กที่ประมวลผลธุรกรรมและการเปลี่ยนสถานะ
ลักษณะทั่วไปนี้ทำให้เกิดการใช้งานที่หลากหลาย: สกุลเงินดิจิทัลทางเลือกที่มีกฎการออกแบบกำหนดเอง อนุพันธ์ทางการเงินและเหรียญเสถียร ระบบข้อมูลประจำตัวและชื่อเสียง พื้นที่จัดเก็บไฟล์แบบกระจายอำนาจ องค์กรอิสระแบบกระจายอำนาจ (DAO) และอื่นๆ อีกมากมาย เอกสารไวท์เปเปอร์เน้นย้ำว่า Ethereum ไม่ได้รับการปรับให้เหมาะสมสำหรับกรณีการใช้งานเฉพาะใดๆ แต่กลับจัดเตรียมบล็อคส่วนประกอบพื้นฐาน เช่น บัญชี ธุรกรรม ภาษาที่สมบูรณ์ของทัวริง และการดำเนินการตามปริมาณก๊าซ ซึ่งนักพัฒนาสามารถนำมารวมกันเพื่อสร้างแอปพลิเคชันใดก็ตามที่ระบบนิเวศต้องการ
Ethereum
以太坊的根本目标是提供一个内置图灵完备编程语言的区块链,允许任何人编写智能合约和去中心化应用,在其中创建自己的任意所有权规则、交易格式和状态转换函数。以太坊不是为货币、域名注册或资产交易等特定应用设计协议,而是提供一个基础层——一个基于区块链的分布式计算平台,开发者可以用它来构建任何他们能想象的应用。
其架构与比特币的UTXO模型有根本区别。以太坊使用基于账户的系统,其中区块链状态由地址到账户对象的映射组成。每个账户都有余额、交易计数器(nonce),对于合约账户还有关联的代码和存储。该平台包含一种内置的图灵完备编程语言,用于编写在以太坊虚拟机(EVM)中执行的合约代码,EVM是一个基于栈的执行环境,处理交易和状态转换。
这种通用性使得广泛的应用成为可能:具有自定义发行规则的替代加密货币、金融衍生品和稳定币、身份和信誉系统、去中心化文件存储、去中心化自治组织(DAO)等等。白皮书强调,以太坊并非针对任何特定用例进行优化,而是提供基本构建块——账户、交易、图灵完备语言和燃料计量执行——开发者可以将这些组合起来,创建生态系统所需的任何应用。
Ethereum Accounts
ใน Ethereum รัฐประกอบด้วยบัญชี และมีประเภทพื้นฐานอยู่ 2 ประเภท บัญชีที่เป็นเจ้าของภายนอก (EOA) ถูกควบคุมโดยคีย์ส่วนตัวและไม่มีรหัสที่เกี่ยวข้อง—บัญชีเหล่านี้เป็นตัวแทนของผู้ใช้ที่เป็นมนุษย์หรือหน่วยงานภายนอกที่มีการโต้ตอบกับบล็อกเชน บัญชีสัญญาจะถูกควบคุมโดยรหัสสัญญาและจะเปิดใช้งานเมื่อได้รับข้อความหรือธุรกรรม ทั้งสองประเภทมีโครงสร้างร่วมกัน: ทุกบัญชีมี nonce (ตัวนับที่ใช้เพื่อให้แน่ใจว่าแต่ละธุรกรรมสามารถประมวลผลได้เพียงครั้งเดียว), ยอดคงเหลือ Ether และสำหรับสัญญาโดยเฉพาะ รหัสสัญญาและพื้นที่จัดเก็บถาวร
อีเธอร์เป็นสกุลเงินดิจิทัลภายในหลักของ Ethereum ซึ่งทำหน้าที่เป็นทั้งสื่อกลางในการโอนมูลค่าและเป็นหน่วยพื้นฐานสำหรับการจ่ายค่าธรรมเนียมการทำธุรกรรม (ก๊าซ) ต่างจากโมเดล UTXO ของ Bitcoin ที่มูลค่าจะถูกกระจายไปยังเอาต์พุตที่ยังไม่ได้ใช้หลายรายการ บัญชี Ethereum จะรักษายอดคงเหลือแบบง่าย ๆ ซึ่งจะเพิ่มขึ้นเมื่อได้รับอีเทอร์และลดลงเมื่อส่ง โมเดลตามบัญชีนี้ช่วยลดความซับซ้อนของแอปพลิเคชันหลายประเภท โดยเฉพาะอย่างยิ่งแอปพลิเคชันที่ต้องการสถานะถาวรหรือการควบคุมการเข้าถึงที่ซับซ้อน แม้ว่าจะมีข้อควรพิจารณาด้านความปลอดภัยที่แตกต่างกันเมื่อเปรียบเทียบกับแนวทางของ Bitcoin
ความแตกต่างระหว่าง EOA และบัญชีสัญญามีความสำคัญต่อการทำความเข้าใจการดำเนินงานของ Ethereum EOA สามารถเริ่มต้นธุรกรรมได้โดยการสร้างและลงนามข้อความด้วยคีย์ส่วนตัว โดยจ่ายค่าธรรมเนียมก๊าซเพื่อให้ธุรกรรมรวมอยู่ในบล็อก บัญชีสัญญาไม่สามารถเริ่มการทำธุรกรรมได้ด้วยตนเอง แต่สามารถส่งข้อความไปยังสัญญาอื่น ๆ เพื่อตอบสนองการรับธุรกรรมหรือข้อความ ทำให้เกิดห่วงโซ่การดำเนินการที่ซับซ้อน โดยที่ธุรกรรมภายนอกรายการเดียวทำให้เกิดการโต้ตอบระหว่างสัญญากับสัญญาหลายครั้ง
Ethereum Accounts
在以太坊中,状态由账户组成,有两种基本类型。外部拥有账户(EOA)由私钥控制,没有关联代码——它们代表与区块链交互的人类用户或外部实体。合约账户由其合约代码控制,在收到消息或交易时被激活。两种类型共享一个通用结构:每个账户都有一个nonce(用于确保每笔交易只能被处理一次的计数器)、以太币余额,而合约特别还拥有合约代码和持久存储。
以太币是以太坊的主要内部加密货币,既作为价值转移的媒介,也是支付交易费用(燃料费)的基本单位。与比特币的UTXO模型——价值分布在多个未花费输出中——不同,以太坊账户维护一个简单的余额,接收以太币时增加,发送时减少。这种基于账户的模型简化了许多类型的应用,特别是那些需要持久状态或复杂访问控制的应用,尽管与比特币的方法相比,它引入了不同的安全考量。
EOA与合约账户之间的区别对于理解以太坊的运作至关重要。EOA可以通过使用私钥创建和签署消息来发起交易,支付燃料费以使其交易被包含在区块中。合约账户本身不能发起交易,但可以在收到交易或消息时向其他合约发送消息,从而实现复杂的执行链,其中单笔外部交易触发多个合约之间的交互。
Messages and Transactions
ธุรกรรมใน Ethereum เป็นแพ็คเกจข้อมูลที่ลงนามซึ่งสร้างโดยบัญชีที่เป็นเจ้าของภายนอกและออกอากาศไปยังเครือข่าย ธุรกรรมประกอบด้วยที่อยู่ผู้รับ ลายเซ็นเข้ารหัสที่พิสูจน์ตัวตนของผู้ส่ง จำนวนอีเทอร์ที่จะถ่ายโอน ช่องข้อมูลเสริม (สำคัญสำหรับการโต้ตอบกับสัญญา) STARTGAS (จำนวนขั้นตอนการคำนวณสูงสุดที่ธุรกรรมได้รับอนุญาตให้ทำ) และ GASPRICE (ค่าธรรมเนียมต่อขั้นตอนการคำนวณที่ผู้ส่งยินดีจ่าย) นักขุดรวบรวมธุรกรรมเหล่านี้ ตรวจสอบ ดำเนินการ และรวมไว้ในบล็อก โดยรับค่าธรรมเนียมก๊าซเป็นการชดเชย
ข้อความมีแนวคิดคล้ายกับธุรกรรม แต่จัดทำโดยสัญญามากกว่าผู้แสดงภายนอก เมื่อโค้ดของสัญญาดำเนินการ จะสามารถส่งข้อความไปยังสัญญาอื่นได้ ข้อความภายในเหล่านี้ประกอบด้วยผู้ส่ง (ที่อยู่ของสัญญา) ผู้รับ จำนวนอีเธอร์ที่จะถ่ายโอน เพย์โหลดข้อมูลเสริม และขีดจำกัด STARTGAS ข้อความช่วยให้สามารถสื่อสารตามสัญญาต่อสัญญาได้ ทำให้สามารถสร้างแอปพลิเคชันที่ซับซ้อนได้จากสัญญาที่มีการโต้ตอบหลายสัญญา แทนที่จะเป็นโปรแกรมแบบเสาหิน
กลไกของแก๊สมีความสำคัญอย่างยิ่งในการป้องกันการละเมิด: ทุกขั้นตอนการคำนวณ การดำเนินการจัดเก็บ และไบต์ข้อมูลในธุรกรรมต้องใช้แก๊ส หากธุรกรรมหมดก๊าซก่อนที่จะเสร็จสิ้น การเปลี่ยนแปลงสถานะทั้งหมดจะถูกคืนค่า (ยกเว้นการจ่ายก๊าซให้กับผู้ขุด) ป้องกันไม่ให้ลูปไม่สิ้นสุดหรือการคำนวณมากเกินไปทำให้เครือข่ายหยุดชะงัก ผู้ส่งระบุทั้งงบประมาณก๊าซทั้งหมด (STARTGAS) และราคาที่พวกเขายินดีจ่ายต่อหน่วย (GASPRICE) และก๊าซที่ไม่ได้ใช้จะได้รับคืนหลังจากการดำเนินการเสร็จสิ้น
Messages and Transactions
以太坊中的交易是由外部拥有账户创建并广播到网络的签名数据包。一笔交易包含接收方地址、证明发送方身份的密码学签名、要转移的以太币数量、一个可选的数据字段(对于与合约交互至关重要)、STARTGAS(交易被允许执行的最大计算步数)和GASPRICE(发送方愿意为每个计算步骤支付的费用)。矿工收集这些交易,验证它们,执行它们,并将它们包含在区块中,收取燃料费作为补偿。
消息在概念上类似于交易,但由合约而非外部参与者产生。当合约的代码执行时,它可以向其他合约发送消息——这些内部消息包含发送方(合约地址)、接收方、要转移的以太币数量、可选的数据载荷和STARTGAS限制。消息使得合约之间能够通信,允许从多个交互合约而非单体程序中构建复杂应用。
燃料机制对于防止滥用至关重要:交易中的每个计算步骤、存储操作和数据字节都消耗燃料。如果交易在完成前耗尽燃料,所有状态更改将被还原(但向矿工支付的燃料费除外),从而防止无限循环或过度计算使网络瘫痪。发送方指定燃料总预算(STARTGAS)和愿意为每单位支付的价格(GASPRICE),执行完成后任何未使用的燃料将被退还。
Ethereum State Transition Function
ฟังก์ชันการเปลี่ยนสถานะ Ethereum ใช้(S,TX) - S' กำหนดวิธีที่ธุรกรรมแปลงสถานะบล็อกเชน และเป็นไปตามลำดับขั้นตอนที่แม่นยำ ขั้นแรก ระบบจะตรวจสอบความถูกต้องของธุรกรรม: การตรวจสอบความถูกต้องของลายเซ็น การยืนยัน nonce ตรงกับบัญชี nonce ของผู้ส่ง และทำให้มั่นใจว่าผู้ส่งมียอดคงเหลือเพียงพอที่จะชำระค่าใช้จ่ายล่วงหน้า (STARTGAS × GASPRICE บวกมูลค่าที่ส่ง) หากการตรวจสอบล้มเหลว ธุรกรรมจะถูกปฏิเสธก่อนเริ่มดำเนินการ หากถูกต้อง ค่าธรรมเนียมการทำธุรกรรมจะถูกหักออกจากบัญชีของผู้ส่ง nonce ของผู้ส่งจะเพิ่มขึ้น และตัวนับก๊าซเริ่มต้นจะถูกตั้งค่าเป็น STARTGAS ลบค่าธรรมเนียมต่อไบต์สำหรับข้อมูลธุรกรรม

จากนั้นระบบจะโอนค่าอีเธอร์ที่ระบุจากผู้ส่งไปยังผู้รับ หากผู้รับเป็นบัญชีภายนอก การทำธุรกรรมจะเสร็จสมบูรณ์ หากผู้รับเป็นบัญชีสัญญา รหัสของสัญญาจะทำงานใน Ethereum Virtual Machine ซึ่งใช้แก๊สในการดำเนินการแต่ละครั้งจนกว่ารหัสจะเสร็จสมบูรณ์สำเร็จ รหัสหยุดลงอย่างชัดเจน หรือแก๊สหมด ในระหว่างการดำเนินการ สัญญาสามารถอ่านและแก้ไขพื้นที่เก็บข้อมูล ส่งข้อความไปยังสัญญาอื่น และสร้างสัญญาใหม่ได้
สุดท้ายนี้ หากการถ่ายโอนค่าล้มเหลว (ยอดคงเหลือไม่เพียงพอ) หรือการดำเนินการโค้ดล้มเหลว (แก๊สหมดหรือเกิดข้อผิดพลาด) การเปลี่ยนแปลงสถานะทั้งหมดจะถูกคืนกลับ ยกเว้นว่าผู้ส่งยังคงจ่ายค่าธรรมเนียมก๊าซให้กับนักขุดสำหรับการคำนวณที่ดำเนินการ หากการดำเนินการสำเร็จ ก๊าซที่เหลือจะถูกคืนให้กับผู้ส่ง และก๊าซที่ใช้ไปจะถูกส่งไปยังนักขุดโดยมีค่าธรรมเนียม กลไกนี้ช่วยให้แน่ใจว่านักขุดได้รับการชดเชยสำหรับการคำนวณ ในขณะเดียวกันก็ป้องกันการดำเนินการแบบควบคุมไม่ได้จากการใช้ทรัพยากรที่ไม่จำกัด
Ethereum State Transition Function
以太坊状态转换函数APPLY(S,TX) - S'定义了交易如何转换区块链状态,它遵循精确的步骤序列。首先,系统检查交易的有效性:验证签名是否正确,确认nonce与发送方账户的nonce匹配,并确保发送方有足够的余额来支付预付费用(STARTGAS x GASPRICE加上要发送的值)。如果任何检查失败,交易在执行开始前就被拒绝。如果有效,交易费用从发送方账户扣除,发送方的nonce递增,初始燃料计数器被设置为STARTGAS减去交易数据的每字节费用。

接下来,系统将指定的以太币值从发送方转移到接收方。如果接收方是外部拥有账户,交易到此完成。如果接收方是合约账户,合约的代码在以太坊虚拟机中运行,每个操作消耗燃料,直到代码成功完成、代码显式停止或燃料耗尽。在执行期间,合约可以读取和修改其存储、向其他合约发送消息以及创建新合约。
最后,如果值转移失败(余额不足)或代码执行失败(燃料耗尽或遇到错误),所有状态更改将被还原——但发送方仍需为已执行的计算向矿工支付燃料费。如果执行成功,剩余燃料退还给发送方,已消耗的燃料作为费用发送给矿工。这种机制确保矿工获得计算补偿,同时防止失控的执行消耗无限资源。
Code Execution
Ethereum Virtual Machine (EVM) คือสภาพแวดล้อมรันไทม์ที่โค้ดสัญญาดำเนินการ ซึ่งเป็นเครื่องเสมือนแบบสแต็กระดับต่ำซึ่งมีแนวคิดคล้ายกับ Java Virtual Machine หรือ WebAssembly รหัสสัญญาจะถูกจัดเก็บเป็นลำดับไบต์ โดยแต่ละไบต์แสดงถึงการดำเนินการ (opcode) ที่ EVM สามารถดำเนินการได้ โมเดลการดำเนินการนั้นจงใจเรียบง่ายและกำหนดไว้ได้: ทุกโหนดที่ใช้งาน EVM ด้วยสถานะอินพุตและธุรกรรมเดียวกันจะต้องมาถึงที่สถานะเอาต์พุตเดียวกัน เพื่อให้แน่ใจว่าได้รับความเห็นพ้องต้องกันทั่วทั้งเครือข่าย
EVM มีพื้นที่จัดเก็บข้อมูลสามประเภทที่แตกต่างกันสำหรับการคำนวณ สแต็กเป็นโครงสร้างเข้าก่อนออกก่อน (LIFO) ซึ่งจำกัดอยู่ที่ 1,024 องค์ประกอบ ซึ่งใช้สำหรับค่าการดำเนินการทันที หน่วยความจำคืออาร์เรย์ไบต์ที่ขยายได้ไม่จำกัด ซึ่งจะคงอยู่ในช่วงเวลาของการเรียกข้อความเดียวเท่านั้น และจะถูกรีเซ็ตระหว่างการประมวลผล พื้นที่จัดเก็บข้อมูลคือการจัดเก็บคีย์-ค่าถาวรที่เชื่อมโยงอย่างถาวรกับบัญชีสัญญาแต่ละบัญชี โดยที่สัญญาจะรักษาสถานะระยะยาวของธุรกรรมต่างๆ ประเภทพื้นที่จัดเก็บข้อมูลเหล่านี้มีราคาแตกต่างกันในการดำเนินการแบบแก๊ส สแต็กและการดำเนินการหน่วยความจำมีราคาถูก ในขณะที่การดำเนินการพื้นที่จัดเก็บข้อมูลมีราคาแพงเพื่อป้องกันการบวมของบล็อกเชน
ในระหว่างการดำเนินการ รหัสสัญญาจะสามารถเข้าถึงบริบทที่สำคัญได้: สามารถอ่านที่อยู่ของผู้ส่งข้อความ จำนวนอีเทอร์ที่ส่ง เพย์โหลดข้อมูลที่ผู้โทรให้มา และคุณสมบัติระดับบล็อก เช่น หมายเลขบล็อกปัจจุบัน การประทับเวลา และที่อยู่ของนักขุด รหัสสามารถส่งคืนอาร์เรย์ไบต์เอาท์พุตไปยังผู้เรียกและสามารถส่งข้อความไปยังสัญญาอื่นหรือสร้างสัญญาใหม่ได้ โมเดลการดำเนินการนี้เป็นแบบทัวริงที่สมบูรณ์ โดยสามารถวนลูปและโฟลว์การควบคุมที่ซับซ้อนได้ แต่กลไกของแก๊สช่วยให้มั่นใจได้ว่าการคำนวณทั้งหมดยุติในเวลาที่กำหนด แก้ปัญหาการหยุดชะงักในเชิงเศรษฐกิจ แทนที่จะใช้ข้อจำกัดด้านภาษา
Code Execution
以太坊虚拟机(EVM)是合约代码执行的运行时环境——一个低层级的、基于栈的虚拟机,在概念上类似于Java虚拟机或WebAssembly。合约代码存储为字节序列,其中每个字节代表EVM可以执行的一个操作(操作码)。执行模型被刻意设计为简单且确定性的:每个使用相同输入状态和交易运行EVM的节点必须得出相同的输出状态,确保网络达成共识。
EVM为计算提供三种不同类型的存储。栈是一个限制为1024个元素的后进先出(LIFO)结构,用于即时操作值。内存是一个可无限扩展的字节数组,仅在单次消息调用期间持续存在,在执行间被重置。存储是与每个合约账户永久关联的持久键值存储,合约在其中跨交易维护其长期状态。这些存储类型在燃料定价上不同——栈和内存操作便宜,而存储操作昂贵,以防止区块链膨胀。
在执行期间,合约代码可以访问关键的上下文信息:它可以读取消息发送方的地址、发送的以太币数量、调用方提供的数据载荷,以及区块级属性如当前区块号、时间戳和矿工地址。代码可以向调用方返回一个输出字节数组,并且可以向其他合约发送消息或创建新合约。这种执行模型是图灵完备的——循环和复杂的控制流是可能的——但燃料机制确保所有计算在有限时间内终止,通过经济手段而非语言限制解决了停机问题。
Blockchain and Mining
บล็อกเชน Ethereum มีพื้นฐานคล้ายคลึงกับ Bitcoin โดยทำหน้าที่เป็นฐานข้อมูลที่รวบรวมทุกธุรกรรมที่เคยดำเนินการ อย่างไรก็ตาม แม้ว่า Bitcoin จะจัดเก็บเฉพาะรายการธุรกรรม แต่ Ethereum จะจัดเก็บทั้งรายการธุรกรรมและสถานะล่าสุด แต่ละบล็อกใน Ethereum ประกอบด้วยแฮชของบล็อกก่อนหน้า สถานะรูท (แฮชรูทของ Merkle Patricia trie ที่เป็นตัวแทนของสถานะทั้งหมด) รูทของธุรกรรม รูทการรับ (จัดเก็บข้อมูลจากการดำเนินการของธุรกรรม) พร้อมด้วยความยาก การประทับเวลา และค่า nonce รัฐนั้นเป็น Merkle Patricia ขนาดใหญ่ที่พยายามแมปที่อยู่กับออบเจ็กต์บัญชี โดยที่แต่ละบัญชีมียอดคงเหลือ nonce รหัส (ถ้ามี) และพื้นที่เก็บข้อมูล

Ethereum ใช้เวอร์ชันแก้ไขของโปรโตคอล GHOST (Greedy Heaviest Observed Subtree) เพื่อแก้ไขปัญหาด้านความปลอดภัยที่เกิดจากเวลาบล็อกที่รวดเร็ว ในโปรโตคอลแบบสายโซ่ที่ยาวที่สุดแบบดั้งเดิม การบล็อกที่รวดเร็วทำให้เกิดอัตราการเก่าสูง ลดความปลอดภัยของเครือข่าย และเพิ่มความเสี่ยงจากการรวมศูนย์ เนื่องจากนักขุดรายใหญ่เสียการประมวลผลที่เก่าน้อยลง GHOST รวมบล็อกเก่า (เรียกว่า "ลุง" ใน Ethereum) ในการคำนวณว่าเชนใดยาวที่สุด และมอบรางวัลบางส่วนให้กับบล็อกลุง จูงใจนักขุดให้อ้างอิงถึงบล็อกเหล่านั้น ซึ่งช่วยให้ Ethereum สามารถรักษาเวลาบล็อกเป้าหมายได้ประมาณ 12 วินาที โดยยังคงรักษาความปลอดภัยของเครือข่ายไว้
อัลกอริธึมการขุดทำงานคล้ายกับ proof-of-work ของ Bitcoin โดยกำหนดให้นักขุดค้นหา nonce เพื่อให้แฮชของบล็อกอยู่ต่ำกว่าเป้าหมายความยากที่แน่นอน อย่างไรก็ตาม อัลกอริธึมการขุดด้วยหน่วยความจำอย่างหนัก (Ethash) ของ Ethereum ได้รับการออกแบบมาให้ทนทานต่อ ASIC โดยส่งเสริมระบบนิเวศการขุดแบบกระจายอำนาจมากขึ้น ความยากจะปรับเปลี่ยนแบบไดนามิกตามเวลาบล็อกเพื่อรักษาเป้าหมาย ~12 วินาที เพื่อให้มั่นใจว่าการผลิตบล็อกมีความสม่ำเสมอ ในขณะที่โปรโตคอล GHOST ให้การรับประกันความปลอดภัย แม้ว่าเวลาบล็อกจะเร็วกว่าเมื่อเทียบกับค่าเฉลี่ย 10 นาทีของ Bitcoin
Blockchain and Mining
以太坊区块链与比特币的基本相似,作为包含所有已执行交易的数据库。然而,比特币只存储交易列表,而以太坊同时存储交易列表和最新状态。以太坊中的每个区块包含前一个区块的哈希值、状态根(代表整个状态的默克尔帕特里夏树的根哈希)、交易根、收据根(存储交易执行数据),以及难度值、时间戳和nonce值。状态本身是一棵大型默克尔帕特里夏树,将地址映射到账户对象,每个账户都有余额、nonce、代码(如果有的话)和存储。

以太坊使用了GHOST(贪婪最重观察子树)协议的修改版本,以解决快速出块时间带来的安全问题。在传统的最长链协议中,快速出块会导致高孤块率,降低网络安全性并增加中心化风险,因为大型矿工在孤块上浪费的计算更少。GHOST协议将孤块(在以太坊中称为"叔块")纳入最长链的计算中,并为叔块提供部分奖励,激励矿工引用它们。这使得以太坊能够在保持网络安全的同时,维持大约12秒的目标出块时间。
挖矿算法与比特币的工作量证明类似,要求矿工找到一个nonce,使得区块的哈希值低于特定的难度目标。然而,以太坊的内存密集型挖矿算法(Ethash)被设计为抗ASIC的,促进更去中心化的挖矿生态系统。难度根据出块时间动态调整,以维持约12秒的目标,确保稳定的区块生产,而GHOST协议在比特币平均10分钟更快的出块时间下提供安全保障。
Applications
แอปพลิเคชันที่สามารถสร้างได้บน Ethereum แบ่งออกเป็นสามประเภทกว้างๆ หมวดหมู่แรกคือแอปพลิเคชันทางการเงิน ที่ให้วิธีที่มีประสิทธิภาพมากขึ้นแก่ผู้ใช้ในการจัดการและเข้าทำสัญญาที่เกี่ยวข้องกับเงินของพวกเขา ซึ่งรวมถึงสกุลเงินย่อย อนุพันธ์ทางการเงิน สัญญาป้องกันความเสี่ยง กระเป๋าเงินออมที่มีขีดจำกัดการถอน พินัยกรรมที่กระจายเงินโดยอัตโนมัติ และแม้แต่สัญญาการจ้างงานที่คำนวณการชำระเงินตามความสำเร็จของงานที่ตรวจสอบแล้ว แอปพลิเคชันเหล่านี้ใช้ประโยชน์จากความสามารถในการตั้งโปรแกรมของ Ethereum เพื่อสร้างเครื่องมือทางการเงินที่ซับซ้อนซึ่งเป็นไปไม่ได้หรือยากอย่างยิ่งที่จะนำไปใช้ในระบบดั้งเดิมหรือแม้แต่บน Bitcoin
ประเภทที่สองคือการสมัครกึ่งการเงิน ซึ่งเกี่ยวข้องกับเงิน แต่ก็มีองค์ประกอบที่ไม่เป็นตัวเงินที่สำคัญสำหรับสิ่งที่กำลังทำอยู่ ตัวอย่างที่สมบูรณ์แบบคือการบังคับใช้ค่าหัวด้วยตนเองสำหรับการแก้ปัญหาทางคอมพิวเตอร์ บางคนสามารถโพสต์ปัญหาด้านการคำนวณพร้อมกับรางวัล และสัญญาสามารถตรวจสอบวิธีแก้ปัญหาที่ส่งมาได้โดยอัตโนมัติ และจ่ายเงินรางวัลให้กับคำตอบที่ถูกต้องคนแรก หมวดหมู่นี้เชื่อมโยงการเงินที่บริสุทธิ์และโดเมนอื่นๆ โดยใช้สิ่งจูงใจทางเศรษฐกิจเพื่อแก้ไขปัญหาหรือประสานพฤติกรรม
หมวดหมู่ที่สามคือแอปพลิเคชันที่ไม่เกี่ยวข้องกับเงินเลย เช่น การลงคะแนนออนไลน์ และระบบการกำกับดูแลแบบกระจายอำนาจ แอปพลิเคชันที่ไม่ใช่ทางการเงินเหล่านี้แสดงให้เห็นถึงความยืดหยุ่นของ Ethereum ในฐานะแพลตฟอร์มอเนกประสงค์ ตัวอย่างได้แก่ ระบบชื่อโดเมนแบบกระจายอำนาจ เช่น Namecoin ระบบชื่อเสียง พื้นที่จัดเก็บไฟล์แบบกระจายอำนาจ และเครื่องมือการกำกับดูแลองค์กร ในบรรดาแอปพลิเคชันประเภทเหล่านี้ ระบบโทเค็นได้กลายเป็นระบบพื้นฐานและเป็นพื้นฐานที่สุด โดยทำหน้าที่เป็นองค์ประกอบหลักสำหรับแอปพลิเคชันอื่นๆ มากมาย
Applications
可以在以太坊上构建的应用大致分为三大类。第一类是金融应用,为用户提供更强大的方式来管理和签订涉及资金的合约。这包括子货币、金融衍生品、对冲合约、带提取限额的储蓄钱包、自动分配资金的遗嘱,甚至是根据验证的工作完成情况计算薪酬的雇佣合约。这些应用利用以太坊的可编程性来创建在传统系统甚至比特币上都不可能或极其难以实现的复杂金融工具。
第二类是半金融应用,涉及资金但也有大量非货币成分。一个完美的例子是为计算问题的解决方案设立的自动执行的悬赏。某人可以发布一个计算问题和奖励,合约可以自动验证提交的解决方案并向第一个正确答案支付悬赏金。这一类别连接了纯金融和其他领域,利用经济激励来解决问题或协调行为。
第三类是与金钱完全无关的应用,例如在线投票和去中心化治理系统。这些非金融应用展示了以太坊作为通用平台的灵活性。例子包括类似域名币的去中心化域名系统、信誉系统、去中心化文件存储和组织治理工具。在所有这些应用类型中,代币系统已成为最常见和最基本的类型,作为许多其他应用的构建基础。
Token Systems
ระบบโทเค็นนั้นตรงไปตรงมาอย่างน่าประหลาดใจที่จะนำไปใช้กับ Ethereum แม้จะเป็นหนึ่งในแอปพลิเคชันที่ทรงพลังและธรรมดาที่สุดก็ตาม ที่แกนหลัก ระบบโทเค็นเป็นเพียงฐานข้อมูลที่มีการดำเนินการเพียงครั้งเดียว: ลบหน่วย X ออกจากบัญชี A และเพิ่มหน่วย X ไปยังบัญชี B โดยมีเงื่อนไขว่า A มีหน่วยอย่างน้อย X ก่อนการทำธุรกรรมและธุรกรรมได้รับอนุญาตจาก A การนำไปใช้งานจำเป็นต้องมีการดูแลรักษาการแมปที่อยู่เพื่อสร้างยอดคงเหลือ และจัดเตรียมฟังก์ชันการถ่ายโอนที่ดำเนินการตรวจสอบที่เหมาะสมก่อนที่จะย้ายโทเค็นระหว่างบัญชี
รหัสสัญญาสำหรับระบบโทเค็นพื้นฐานนั้นเรียบง่ายอย่างน่าทึ่งและสามารถเขียนได้เพียงไม่กี่บรรทัด ประกอบด้วยที่อยู่การจับคู่โครงสร้างข้อมูลกับยอดคงเหลือ ฟังก์ชันการเริ่มต้นที่กำหนดการจ่ายโทเค็นเริ่มต้น และฟังก์ชันการถ่ายโอนที่จะตรวจสอบยอดคงเหลือและการอนุญาตของผู้ส่งก่อนดำเนินการถ่ายโอน ความเรียบง่ายนี้แตกต่างโดยสิ้นเชิงกับความซับซ้อนที่จำเป็นในการใช้งานระบบที่คล้ายกันบน Bitcoin ซึ่งจะต้องใช้วิธีแก้ปัญหาและข้อจำกัดที่สำคัญ เนื่องจากความสามารถในการเขียนสคริปต์ที่จำกัดของ Bitcoin
โทเค็นบน Ethereum สามารถเป็นตัวแทนอะไรก็ได้ที่มีมูลค่า ซึ่งอาจเป็นตัวแทนของสกุลเงินย่อยที่มีนโยบายการเงินของตนเอง อนุพันธ์ทางการเงินที่ติดตามสินทรัพย์ภายนอก หุ้นบริษัทที่มีสิทธิ์ในการจ่ายเงินปันผล คะแนนความภักดีในโปรแกรมของลูกค้า สินค้าโภคภัณฑ์ เช่น ทองคำหรือน้ำมัน หรือแม้แต่การนำเสนอทรัพย์สินทางกายภาพ ความสามารถในการตั้งโปรแกรมของ Ethereum ช่วยให้โทเค็นเหล่านี้มีกฎที่กำหนดเองซึ่งควบคุมพฤติกรรม เช่น ข้อจำกัดในการโอน กลไกการเบิร์นอัตโนมัติ การจ่ายเงินปันผล หรือสิทธิ์ในการกำกับดูแล ความยืดหยุ่นนี้ทำให้ระบบโทเค็นเป็นองค์ประกอบพื้นฐานสำหรับระบบนิเวศส่วนใหญ่ของ Ethereum
Token Systems
代币系统在以太坊上实现起来出人意料地简单,尽管它是最强大和最常见的应用之一。在其核心,代币系统只是一个具有单一操作的数据库:从账户A减去X个单位并向账户B添加X个单位,条件是A在交易前至少拥有X个单位且交易由A授权。实现这一点需要维护一个地址到余额的映射,并提供一个在账户之间转移代币之前执行适当检查的转账函数。
基本代币系统的合约代码非常简单,可以用几行代码编写。它由一个将地址映射到余额的数据结构、一个分配初始代币供应量的初始化函数,以及一个在执行转账前检查发送方余额和授权的转账函数组成。这种简单性与在比特币上实现类似系统所需的复杂性形成了鲜明对比,后者由于比特币受限的脚本能力而需要大量的变通方法和限制。
以太坊上的代币可以代表几乎任何有价值的东西。它们可能代表具有自己货币政策的子货币、追踪外部资产的金融衍生品、拥有分红权的公司股份、客户计划中的积分、黄金或石油等大宗商品,甚至是实物财产的表示。以太坊的可编程性允许这些代币具有管理其行为的任意规则,例如转账限制、自动销毁机制、分红分配或治理权利。这种灵活性使代币系统成为以太坊生态系统的基础构建模块。
Financial Derivatives and Stable-Value Currencies
อนุพันธ์ทางการเงินเป็นหนึ่งในการใช้งานพื้นฐานและสำคัญที่สุดของสัญญาอัจฉริยะ Ethereum สัญญาป้องกันความเสี่ยงแบบง่ายๆ สาธิตกลไกพื้นฐาน: ฝ่าย A ฝากเงินอีเทอร์จำนวนหนึ่งมูลค่า 1,000 ดอลลาร์ ฝ่าย B ฝากเงินในจำนวนที่เท่ากัน และสัญญาจะบันทึกมูลค่าอีเทอร์ USD ในขณะนั้นโดยใช้ฟีดข้อมูล หลังจากผ่านไป 30 วัน สัญญาจะคำนวณมูลค่าใหม่และส่งอีเทอร์มูลค่า 1,000 ดอลลาร์ให้กับ A และส่วนที่เหลือให้กับ B หากราคาของอีเทอร์เพิ่มขึ้น A จะได้รับอีเทอร์น้อยลงแต่จะคงมูลค่า 1,000 ดอลลาร์ไว้ ถ้ามันตกลงไป A จะได้รับอีเธอร์มากขึ้นเพื่อรักษามูลค่านั้น สิ่งนี้ทำให้ A ป้องกันความเสี่ยงจากความผันผวน ในขณะที่ B เก็งกำไรจากการเคลื่อนไหวของราคา
การดำเนินการตามสัญญาดังกล่าวจำเป็นต้องมีการเข้าถึงข้อมูลภายนอกผ่านสัญญาของ Oracle หรือฟีดข้อมูล ออราเคิลเหล่านี้ให้ข้อมูลราคา ข้อมูลสภาพอากาศ หรือข้อมูลในโลกแห่งความเป็นจริงอื่นๆ ที่สัญญาจำเป็นต้องดำเนินการอย่างถูกต้อง แม้ว่า Oracles จะแนะนำการพึ่งพาความน่าเชื่อถือ แต่ก็สามารถออกแบบโดยมีความซ้ำซ้อนและแรงจูงใจทางเศรษฐกิจแบบเข้ารหัสเพื่อให้ข้อมูลที่เชื่อถือได้ สัญญาเพียงสอบถาม Oracle ทำการคำนวณตามข้อมูลนั้น และกระจายเงินทุนตามตรรกะที่ตั้งโปรแกรมไว้
Stablecoins และเครื่องมือทางการเงินที่ซับซ้อนมากขึ้นสามารถสร้างได้โดยใช้กลไกที่คล้ายกัน สัญญา Stablecoin อาจรักษาปริมาณสำรองของ Ether และออกโทเค็นที่ผูกกับสกุลเงินคำสั่ง โดยจะปรับข้อกำหนดด้านอุปทานหรือหลักประกันโดยอัตโนมัติตามฟีดราคา สัญญาออปชั่น ฟิวเจอร์ส สวอป และอนุพันธ์อื่นๆ ที่ปกติต้องใช้กรอบกฎหมายที่ซับซ้อนและตัวกลางที่เชื่อถือได้ สามารถเข้ารหัสเป็นสัญญาอัจฉริยะที่ดำเนินการด้วยตนเองแทนได้ โครงสร้างพื้นฐานทางการเงินที่ตั้งโปรแกรมได้นี้ช่วยให้วิศวกรรมทางการเงินมีความซับซ้อน ในขณะเดียวกันก็รักษาความโปร่งใสและการรับประกันความปลอดภัยของเทคโนโลยีบล็อคเชน
Financial Derivatives and Stable-Value Currencies
金融衍生品是以太坊智能合约最基本和最重要的应用之一。一个简单的对冲合约展示了基本机制:甲方存入价值1000美元的一定数量以太币,乙方存入等值金额,合约使用数据源记录当时以太币的美元价值。30天后,合约重新计算价值,将价值1000美元的以太币发送给甲方,剩余部分发送给乙方。如果以太币价格上涨,甲方收到的以太币较少但维持1000美元价值;如果价格下跌,甲方收到更多以太币以维持该价值。这使得甲方可以对冲波动性风险,而乙方则对价格走势进行投机。
此类合约的实现需要通过预言机合约或数据源来访问外部数据。这些预言机提供价格信息、天气数据或合约正确执行所需的其他现实世界信息。虽然预言机引入了信任依赖,但可以通过冗余设计和加密经济激励来提供可靠数据。合约本身只需查询预言机,根据该数据执行计算,并按照其编程逻辑分配资金。
稳定币和更复杂的金融工具可以使用类似的机制构建。稳定币合约可以维护以太币储备并发行锚定法定货币的代币,根据价格源自动调整供应量或抵押要求。期权合约、期货合约、互换合约以及其他通常需要复杂法律框架和可信中介的衍生品可以被编码为自动执行的智能合约。这种可编程金融基础设施在维护区块链技术的透明性和安全保证的同时,实现了复杂的金融工程。
Identity and Reputation Systems
ระบบการลงทะเบียนชื่อที่คล้ายกับ Namecoin สามารถนำไปใช้ได้เพียงเล็กน้อยบน Ethereum และทำหน้าที่เป็นตัวอย่างที่ง่ายที่สุดของระบบการระบุตัวตน สัญญาจะดูแลรักษาฐานข้อมูลที่มีชื่อการแมปตารางคีย์-ค่ากับข้อมูลที่เกี่ยวข้อง (เช่น ที่อยู่ IP คีย์สาธารณะ หรือข้อมูลอื่นๆ) ใครๆ ก็สามารถลงทะเบียนชื่อได้โดยส่งธุรกรรมไปยังสัญญาพร้อมกับค่าธรรมเนียมการลงทะเบียนเล็กน้อย โดยที่ชื่อนั้นยังไม่ได้ถูกนำไปใช้ เจ้าของสามารถอัปเดตข้อมูลที่เกี่ยวข้องได้ตลอดเวลา และชื่อสามารถโอนหรือถาวรได้ตามกฎที่เข้ารหัสในสัญญา
คุณสามารถสร้างระบบการระบุตัวตนขั้นสูงเพิ่มเติมบนรากฐานนี้เพื่อรวมคะแนนชื่อเสียง เว็บของความสัมพันธ์ที่ไว้วางใจ และการยืนยันตัวตนแบบกระจายอำนาจ ตัวอย่างเช่น สัญญาสามารถรักษาคะแนนชื่อเสียงตามธุรกรรมที่ตรวจสอบแล้ว การให้คะแนนโดยผู้ทรงคุณวุฒิ หรือความสมบูรณ์ของงาน คะแนนเหล่านี้จะเปิดเผยต่อสาธารณะและเชื่อมโยงกับที่อยู่เฉพาะด้วยการเข้ารหัส ทำให้เกิดชื่อเสียงแบบพกพาที่ติดตามผู้ใช้ทั่วทั้งแอปพลิเคชัน เว็บของระบบความน่าเชื่อถือสามารถอนุญาตให้ผู้ใช้รับรองตัวตนของผู้อื่น โดยสร้างกราฟทางสังคมที่ช่วยแยกแยะผู้ใช้ที่ถูกกฎหมายออกจากผู้ไม่ประสงค์ดี
ระบบการระบุตัวตนและชื่อเสียงดังกล่าวจะมีประสิทธิภาพเป็นพิเศษเมื่อรวมเข้ากับแอปพลิเคชันอื่นๆ ตลาดอาจต้องมีคะแนนชื่อเสียงขั้นต่ำสำหรับผู้ขาย แพลตฟอร์มสินเชื่อสามารถปรับอัตราดอกเบี้ยตามชื่อเสียงของผู้ยืม หรือเครือข่ายโซเชียลอาจใช้เว็บแห่งความไว้วางใจเพื่อกรองสแปมและเนื้อหาที่ฉ้อโกง ด้วยการจัดหาโครงสร้างพื้นฐานที่ใช้ร่วมกันสำหรับข้อมูลระบุตัวตนที่แอปพลิเคชันใดๆ สามารถตรวจสอบได้ Ethereum จึงเปิดใช้งานแอปพลิเคชันที่อิงความน่าเชื่อถือระดับใหม่ซึ่งไม่ต้องพึ่งพาผู้ให้บริการข้อมูลประจำตัวแบบรวมศูนย์หรือระบบชื่อเสียงที่เป็นกรรมสิทธิ์
Identity and Reputation Systems
类似域名币的域名注册系统在以太坊上可以轻而易举地实现,是身份系统最简单的例子。合约维护一个包含键值表的数据库,将名称映射到关联数据(如IP地址、公钥或其他信息)。任何人都可以通过向合约发送交易并附上少量注册费来注册一个名称,前提是该名称尚未被占用。所有者可以随时更新关联数据,名称可以根据合约中编码的规则设置为可转让或永久性的。
在此基础上可以构建更高级的身份系统,包括信誉评分、信任网络关系和去中心化身份验证。例如,合约可以基于已验证的交易、同行评级或任务完成情况来维护信誉评分。这些评分将是公开可见的,并与特定地址进行密码学绑定,创建一个跨应用跟随用户的可移植信誉。信任网络系统可以允许用户为他人的身份背书,构建有助于区分合法用户和不良行为者的社交图谱。
当与其他应用集成时,此类身份和信誉系统变得特别强大。市场可以要求卖家达到最低信誉评分,借贷平台可以根据借款人的信誉调整利率,社交网络可以使用信任网络来过滤垃圾信息和欺诈内容。通过提供任何应用都可以查询的共享身份基础设施,以太坊实现了一类不依赖中心化身份提供商或专有信誉系统的新型信任应用。
Decentralized File Storage
พื้นที่จัดเก็บไฟล์แบบกระจายอำนาจสามารถดำเนินการผ่านสัญญา Ethereum ที่ประสานงานระหว่างผู้ใช้ที่ต้องการพื้นที่เก็บข้อมูลและผู้ให้บริการที่เสนอพื้นที่ดังกล่าว ในรูปแบบ "Dropbox แบบกระจายอำนาจ" ผู้ใช้จะต้องจ่ายค่าธรรมเนียมรายเดือนในการอัพโหลดไฟล์ โดยสัญญาจะกระจายการชำระเงินให้กับผู้ให้บริการพื้นที่จัดเก็บข้อมูลที่พิสูจน์ได้ว่าพวกเขากำลังจัดเก็บข้อมูลอยู่จริง กลไกการพิสูจน์ทำงานผ่านความท้าทายในการเข้ารหัสเป็นระยะ: สัญญาจะสุ่มเลือกส่วนของไฟล์และขอให้ผู้ให้บริการจัดหาการพิสูจน์ต้นไม้ของ Merkle เพื่อแสดงให้เห็นว่าพวกเขามีข้อมูลนั้น ผู้ให้บริการที่ล้มเหลวในการท้าทายหรือออฟไลน์จะสูญเสียเงินฝากและกระแสการชำระเงินในอนาคต
วิธีการนี้มีข้อดีหลายประการเหนือการจัดเก็บข้อมูลแบบรวมศูนย์ การพิสูจน์ต้นไม้ของ Merkle ช่วยให้การตรวจสอบมีประสิทธิภาพ—ผู้ใช้และสัญญาสามารถยืนยันความพร้อมใช้งานของไฟล์ได้โดยไม่ต้องดาวน์โหลดไฟล์ทั้งหมด ระบบจะกระจายไฟล์ไปยังผู้ให้บริการอิสระหลายรายอย่างเป็นธรรมชาติ สร้างความซ้ำซ้อนโดยไม่ต้องใช้โปรโตคอลการจำลองแบบที่ชัดเจน สิ่งจูงใจทางเศรษฐกิจปรับพฤติกรรมของผู้ให้บริการให้สอดคล้องกับความต้องการของผู้ใช้: ผู้ให้บริการสร้างรายได้จากการจัดเก็บข้อมูลที่เชื่อถือได้ และสูญเสียเงินหากไม่ทำเช่นนั้น ซึ่งช่วยลดข้อกำหนดด้านความน่าเชื่อถือที่มีอยู่ในโซลูชันการจัดเก็บข้อมูลแบบรวมศูนย์
ต้นทุนการจัดเก็บข้อมูลในระบบดังกล่าวอาจต่ำกว่าทางเลือกแบบรวมศูนย์ด้วยเหตุผลหลายประการ การกำจัดการกำหนดราคาแบบผูกขาดทำให้การแข่งขันในตลาดสามารถลดต้นทุนให้ใกล้เคียงกับต้นทุนการจัดเก็บที่แท้จริงได้ ความซ้ำซ้อนโดยนัยจากผู้ใช้หลายรายที่จัดเก็บไฟล์ที่คล้ายกันสามารถลดความต้องการพื้นที่เก็บข้อมูลทั้งหมดได้ ไม่จำเป็นต้องมีโครงสร้างพื้นฐานศูนย์ข้อมูลที่มีราคาแพงหรือค่าใช้จ่ายขององค์กร อย่างไรก็ตาม ความท้าทายยังคงอยู่เกี่ยวกับกลไกการชำระเงิน การรับรองการมีส่วนร่วมของผู้ให้บริการอย่างเพียงพอ และการจัดการการแลกเปลี่ยนระหว่างความซ้ำซ้อนและต้นทุน แม้จะมีความท้าทายเหล่านี้ พื้นที่จัดเก็บข้อมูลแบบกระจายอำนาจแสดงให้เห็นว่า Ethereum สามารถประสานงานการโต้ตอบหลายฝ่ายที่ซับซ้อนผ่านสิ่งจูงใจทางเศรษฐกิจเพียงอย่างเดียวได้อย่างไร
Decentralized File Storage
去中心化文件存储可以通过以太坊合约来实现,在需要存储的用户和提供存储的供应商之间进行协调。在"去中心化Dropbox"模式中,用户按月付费上传文件,合约将付款分配给证明自己实际存储了数据的存储供应商。证明机制通过定期的密码学挑战实现:合约随机选择文件的部分内容,并要求供应商提供默克尔树证明,证明他们拥有该数据。挑战失败或下线的供应商将失去其押金和未来的付款流。
这种方法相比中心化存储有几个优势。默克尔树证明实现了高效验证——用户和合约可以在不下载整个文件的情况下确认文件可用性。该系统自然地将文件分布在多个独立的供应商之间,在无需显式复制协议的情况下创建冗余。经济激励使供应商的行为与用户需求保持一致:供应商通过可靠存储数据赚钱,如果未能做到则亏钱。这消除了中心化存储解决方案中固有的信任需求。
此类系统的存储成本有可能因多种原因而低于中心化替代方案。消除垄断定价使市场竞争将成本推至接近实际存储成本。多个用户存储类似文件产生的隐性冗余可以减少总存储需求。无需昂贵的数据中心基础设施或企业管理费用。然而,在支付机制、确保足够的供应商参与以及管理冗余与成本之间的权衡方面仍然存在挑战。尽管存在这些挑战,去中心化存储展示了以太坊如何仅通过经济激励来协调复杂的多方交互。
Decentralized Autonomous Organizations
องค์กรอิสระแบบกระจายอำนาจ (DAO) เป็นนิติบุคคลเสมือนที่มีกลุ่มสมาชิกหรือผู้ถือหุ้นที่มีสิทธิร่วมกันในการใช้เงินทุนของนิติบุคคลและแก้ไขรหัส DAO ทั่วไปดำเนินการด้วยกฎง่ายๆ: สมาชิก 67% จำเป็นต้องตัดสินใจใช้จ่ายหรือแก้ไขรหัสขององค์กร สมาชิกสามารถส่งข้อเสนอ ลงคะแนนเสียง และหากข้อเสนอได้รับการสนับสนุนเพียงพอ สัญญาจะดำเนินการตัดสินใจโดยอัตโนมัติ หุ้นสมาชิกสามารถโอนได้ ทำให้ตลาดมีสภาพคล่องสำหรับการเข้าร่วม DAO และหุ้นประเภทต่างๆ สามารถมีสิทธิในการออกเสียงหรือสิทธิทางเศรษฐกิจที่แตกต่างกัน
การออกแบบ DAO ที่ง่ายที่สุดคือสัญญาที่ปรับเปลี่ยนได้เองซึ่งจะเก็บรักษารายชื่อสมาชิกและต้องใช้คะแนนเสียงข้างมาก 2/3 เพื่อเปลี่ยนแปลงแง่มุมใดๆ ของสัญญา รวมถึงกฎการลงคะแนนของตัวเองด้วย สมาชิกจะส่งการเปลี่ยนแปลงรหัสเป็นธุรกรรม สมาชิกคนอื่นๆ จะลงคะแนน และเมื่อถึงเกณฑ์ สัญญาจะอัปเดตตัวเอง การออกแบบที่ซับซ้อนมากขึ้นอาจรวมถึงระบบการลงคะแนนเสียงแบบมอบหมายซึ่งสมาชิกสามารถกำหนดอำนาจการลงคะแนนของตนให้กับตัวแทนได้ หรือระบบประชาธิปไตยแบบเหลวซึ่งสามารถมอบหมายคะแนนเสียงได้ แต่จะได้รับสิทธิ์คืนเมื่อใดก็ได้สำหรับการตัดสินใจที่สำคัญ
DAO สามารถตอบสนองวัตถุประสงค์ที่หลากหลายนอกเหนือจากการจัดการกองทุนธรรมดาๆ DAO สามารถทำหน้าที่เป็นบริษัทที่มีการกระจายอำนาจ จ้างผู้รับเหมา ซื้อบริการ และกระจายผลกำไรให้กับผู้ถือหุ้น ทั้งหมดนี้อยู่ภายใต้การควบคุมของรหัสสัญญาอัจฉริยะมากกว่าโครงสร้างทางกฎหมายแบบดั้งเดิม สามารถดำเนินการเป็นกองทุนรวมที่กระจายอำนาจได้ โดยสมาชิกจะลงคะแนนเสียงว่าโครงการใดที่จะให้ทุน สามารถจัดการทรัพยากรทั่วไปได้ โดยผู้มีส่วนได้ส่วนเสียลงคะแนนในกฎการจัดสรร ข้อมูลเชิงลึกที่สำคัญคือด้วยการเข้ารหัสกฎการกำกับดูแลด้วยโค้ดที่โปร่งใสและไม่เปลี่ยนรูป และเชื่อมโยงกับผลประโยชน์ทางเศรษฐกิจ DAO สามารถประสานงานการตัดสินใจของกลุ่มโดยไม่ต้องมีการจัดการแบบลำดับชั้นแบบดั้งเดิมหรือการบังคับใช้กฎหมาย
Decentralized Autonomous Organizations
去中心化自治组织(DAO)是一个虚拟实体,拥有一组成员或股东,他们共同有权花费该实体的资金并修改其代码。典型的DAO遵循一个简单规则:需要67%的成员同意才能做出支出决定或修改组织的代码。成员可以提交提案、对提案投票,如果提案获得足够支持,合约将自动执行该决定。成员份额可以是可转让的,允许DAO参与权的流动市场,不同类别的份额可以拥有不同的投票权或经济权益。
最简单的DAO设计是一个自我修改的合约,维护一个成员列表,并要求三分之二多数投票来更改合约的任何方面,包括其自身的投票规则。成员以交易的形式提交代码变更,其他成员投票,达到阈值后合约将自行更新。更复杂的设计可能包括委托投票系统,成员可以将投票权分配给代表,或者流动民主,投票可以被委托但在重要决定时可以随时收回。
DAO可以服务于超越简单资金管理的各种目的。DAO可以作为去中心化公司运作,雇佣承包商、购买服务并向股东分配利润——所有这些都由智能合约代码而非传统法律结构治理。它可以作为去中心化投资基金运作,由成员投票决定资助哪些项目。它可以管理公共资源,由利益相关者投票决定分配规则。关键洞察在于,通过将治理规则编码为透明的、不可变的代码并将其与经济利益绑定,DAO可以在不需要传统等级管理或法律执行的情况下协调群体决策。
Further Applications
นอกเหนือจากหมวดหมู่หลักๆ ที่กล่าวถึงแล้ว Ethereum ยังเปิดใช้งานแอปพลิเคชันอื่นๆ อีกมากมาย กระเป๋าเงินออมทรัพย์ที่มีคุณสมบัติความปลอดภัยที่ซับซ้อนสามารถกำหนดวงเงินการถอนรายวันได้ในขณะที่ให้กุญแจฉุกเฉินสำหรับการกู้คืน ปกป้องผู้ใช้จากการโจรกรรมในขณะที่ยังคงการควบคุมขั้นสูงสุด สัญญาประกันพืชผลสามารถจ่ายเงินให้เกษตรกรโดยอัตโนมัติตามฟีดข้อมูลสภาพอากาศ ขจัดการดำเนินการเรียกร้องค่าสินไหมทดแทน และลดค่าใช้จ่ายในการบริหารจัดการ แอปพลิเคชันการพนันแบบเพียร์ทูเพียร์สามารถทำงานได้โดยไม่ต้องมีคนกลางที่เชื่อถือได้ โดยมีสัญญาอัจฉริยะที่ถือหุ้นและจ่ายเงินให้ผู้ชนะโดยอัตโนมัติตามตัวเลขสุ่มที่ตรวจสอบได้หรือข้อมูลเหตุการณ์ในโลกแห่งความเป็นจริง
ตลาดการทำนายแบบออนไลน์ช่วยให้ผู้ใช้สามารถเดิมพันเหตุการณ์ในอนาคต สร้างกลไกการพยากรณ์ที่มีประสิทธิภาพผ่านภูมิปัญญาของฝูงชน สิ่งเหล่านี้สามารถเสริมด้วยโปรโตคอลสไตล์ SchellingCoin เพื่อสร้างออราเคิลแบบกระจายอำนาจ: ผู้เข้าร่วมรายงานข้อมูลอย่างอิสระ (เช่น ผลการเลือกตั้งหรือสภาพอากาศ) และผู้ที่มีรายงานตรงกับคนส่วนใหญ่จะได้รับรางวัลในขณะที่ค่าผิดปกติจะถูกลงโทษ แนวทางเศรษฐศาสตร์เข้ารหัสนี้กระตุ้นให้เกิดการรายงานที่ตรงไปตรงมา และสามารถให้ข้อมูลในโลกแห่งความเป็นจริงที่เชื่อถือได้แก่สัญญาอื่นๆ โดยไม่ต้องอาศัยความไว้วางใจจากผู้ให้บริการ Oracle รายใดรายหนึ่ง
กระเป๋าเงินหลายลายเซ็นเป็นตัวแทนของแอปพลิเคชันที่สำคัญอีกชนิดหนึ่ง ช่วยให้สามารถควบคุมเงินทุนร่วมกันระหว่างหลายฝ่ายได้ multi-sig wallet 2 ใน 3 อาจต้องมีฝ่ายที่ได้รับมอบหมายสองในสามฝ่ายอนุมัติธุรกรรมก่อนจึงจะสามารถใช้เงินทุนได้ ซึ่งมีประโยชน์สำหรับการจัดการเอสโครว์ คลังสมบัติของบริษัท หรือความปลอดภัยส่วนบุคคล ตลาดกลางแบบกระจายอำนาจสามารถรวมระบบการระบุตัวตน คะแนนชื่อเสียง สัญญาเอสโครว์ และกลไกการระงับข้อพิพาท เพื่อให้สามารถซื้อขายแบบเพียร์ทูเพียร์ได้โดยไม่ต้องมีแพลตฟอร์มแบบรวมศูนย์ แต่ละแอปพลิเคชันเหล่านี้แสดงให้เห็นว่าความสามารถในการโปรแกรมของ Ethereum ช่วยให้เกิดโมเดลความน่าเชื่อถือและโครงสร้างองค์กรแบบใหม่ได้อย่างไร
Further Applications
除了已经讨论的主要类别之外,以太坊还支持众多其他应用。带有复杂安全功能的储蓄钱包可以施加每日提取限额,同时提供用于恢复的紧急密钥,在保持最终控制权的同时保护用户免受盗窃。农作物保险合约可以根据天气数据源自动向农民支付赔偿,消除理赔处理过程并减少管理开销。点对点赌博应用可以在没有任何可信中介的情况下运作,智能合约持有赌注并根据可验证的随机数或现实世界的事件数据自动向赢家支付。
链上预测市场允许用户对未来事件下注,通过群体智慧创建强大的预测机制。这些可以通过谢林币(SchellingCoin)风格的协议来增强,以创建去中心化预言机:参与者独立报告数据(如选举结果或天气状况),与多数一致的报告获得奖励,而异常值则受到惩罚。这种加密经济方法激励诚实报告,可以为其他合约提供可靠的现实世界数据,而无需信任任何单一预言机提供者。
多重签名钱包是另一个重要应用,实现多方对资金的共同控制。一个2-of-3多重签名钱包可能要求三个指定方中的任意两个批准交易才能花费资金,适用于托管安排、企业金库或个人安全。去中心化市场可以结合身份系统、信誉评分、托管合约和争议解决机制来实现无需中心化平台的点对点商务。这些应用中的每一个都展示了以太坊的可编程性如何实现新的信任模型和组织结构。
Miscellanea And Concerns
การใช้งานโปรโตคอล GHOST ที่ได้รับการแก้ไขของ Ethereum รวมถึงกฎเฉพาะสำหรับการเข้าร่วมและรางวัลของลุง ลุงต้องเป็นลูกโดยตรงของบรรพบุรุษของบล็อกปัจจุบัน (ระหว่าง 2 ถึง 7 รุ่นหลัง) ต้องเป็นส่วนหัวของบล็อกที่ถูกต้อง ต้องแตกต่างจากลุงคนก่อน และต้องไม่ใช่บรรพบุรุษโดยตรงของบล็อกปัจจุบัน บล็อกลุงจะได้รับรางวัลบล็อกมาตรฐาน 87.5% ในขณะที่บล็อกที่รวมจะได้รับเพิ่มอีก 3.125% ต่อลุงหนึ่งคน (สูงสุดสองคน) โครงสร้างสิ่งจูงใจนี้สนับสนุนให้นักขุดอ้างอิงบล็อกเก่าที่พวกเขาสังเกตเห็น ซึ่งช่วยเพิ่มความปลอดภัยให้กับเครือข่าย ในขณะเดียวกันก็ให้รางวัลแก่นักขุดที่ประสบโชคร้ายชั่วคราวจากการเผยแพร่เครือข่าย
ระบบค่าธรรมเนียมขึ้นอยู่กับแนวคิดของ "แก๊ส" ซึ่งการดำเนินการคำนวณทุกครั้งจะมีต้นทุนก๊าซคงที่ ตัวอย่างเช่น การดำเนินการคูณต้องใช้แก๊ส 5 ชิ้น แฮช SHA256 ต้องใช้แก๊ส 20 ชิ้น และทุกธุรกรรมมีต้นทุนฐานอยู่ที่ 21,000 Gas ผู้ใช้ระบุทั้งขีดจำกัดของก๊าซ (ก๊าซสูงสุดที่พวกเขายินดีใช้) และราคาก๊าซ (พวกเขาจะต้องจ่ายอีเทอร์เท่าไรต่อหน่วยของก๊าซ) ระบบนี้มีจุดประสงค์หลายประการ: ป้องกันการโจมตีแบบวนซ้ำไม่สิ้นสุดและการโจมตีแบบปฏิเสธการให้บริการโดยรับรองว่าการคำนวณทั้งหมดได้รับการชำระ สร้างตลาดสำหรับพื้นที่บล็อกที่ผู้ใช้เสนอราคาผ่านราคาน้ำมัน และช่วยให้ผู้ขุดสามารถกำหนดราคาก๊าซขั้นต่ำที่พวกเขายินดียอมรับ เพื่อปกป้องทรัพยากรเครือข่าย

ความสามารถในการปรับขนาดยังคงเป็นข้อกังวลที่สำคัญ เนื่องจากทุกโหนดแบบเต็มจะต้องประมวลผลทุกธุรกรรมเพื่อตรวจสอบสถานะ สถาปัตยกรรมบล็อกเชนในปัจจุบันต้องดิ้นรนเพื่อให้ตรงกับปริมาณธุรกรรมของระบบรวมศูนย์ โซลูชันที่เป็นไปได้ ได้แก่ การแยกส่วนสถานะ โดยที่โหนดที่แตกต่างกันประมวลผลชุดย่อยของธุรกรรมที่แตกต่างกัน และการเปลี่ยนจาก proof-of-work ไปเป็นฉันทามติแบบ Proof-of-stake ซึ่งอาจช่วยให้การผลิตบล็อกมีประสิทธิภาพมากขึ้น ลูกค้า Light ที่ใช้การพิสูจน์ Merkle สามารถตรวจสอบธุรกรรมได้โดยไม่ต้องประมวลผลบล็อกทั้งหมด แต่บางคนยังต้องประมวลผลทุกอย่าง ความท้าทายด้านความสามารถในการปรับขนาดเหล่านี้แสดงถึงขอบเขตการวิจัยและพัฒนาที่มีความสำคัญต่อความมีชีวิตในระยะยาวของ Ethereum
Miscellanea And Concerns
以太坊对修改版GHOST协议的实现包括叔块纳入和奖励的具体规则。叔块必须是当前区块祖先的直接子块(回溯2到7代),必须是有效的区块头,必须与之前的叔块不同,且不能是当前区块的直接祖先。叔块获得标准区块奖励的87.5%,而包含叔块的区块每包含一个叔块获得额外3.125%的奖励(最多两个叔块)。这种激励结构鼓励矿工引用他们观察到的孤块,增强网络安全,同时奖励在网络传播中暂时运气不佳的矿工。
费用系统基于"燃料"的概念,每个计算操作都有固定的燃料成本。例如,一次乘法运算消耗5个燃料单位,一次SHA256哈希运算消耗20个燃料单位,每笔交易的基础成本为21,000个燃料单位。用户指定燃料上限(愿意消耗的最大燃料量)和燃料价格(每单位燃料愿意支付的以太币数量)。这个系统有多重目的:通过确保所有计算都需要付费来防止无限循环和拒绝服务攻击,创建一个用户通过燃料价格竞价的区块空间市场,并允许矿工设定愿意接受的最低燃料价格来保护网络资源。

可扩展性仍然是一个重大关切,因为每个全节点必须处理每笔交易以验证状态。当前的区块链架构难以匹配中心化系统的交易吞吐量。潜在的解决方案包括状态分片——不同节点处理不同的交易子集,以及从工作量证明向权益证明共识的转变——这可以实现更高效的区块生产。使用默克尔证明的轻客户端可以在不处理所有区块的情况下验证交易,但总得有人处理所有内容。这些可扩展性挑战代表了对以太坊长期可行性至关重要的活跃研究和开发领域。
Conclusion
โปรโตคอล Ethereum เดิมทีถูกมองว่าเป็นเวอร์ชันอัปเกรดของสกุลเงินดิจิทัล โดยให้คุณสมบัติขั้นสูง เช่น เอสโครว์บนบล็อกเชน ขีดจำกัดการถอน และสัญญาทางการเงินผ่านภาษาการเขียนโปรแกรมทั่วไป อย่างไรก็ตาม โปรโตคอล Ethereum เคลื่อนไหวไปไกลกว่าแค่สกุลเงิน โปรโตคอลเกี่ยวกับการจัดเก็บไฟล์แบบกระจายอำนาจ การคำนวณแบบกระจายอำนาจ และตลาดการคาดการณ์แบบกระจายอำนาจ ท่ามกลางแนวคิดอื่นๆ มากมาย มีศักยภาพที่จะเพิ่มประสิทธิภาพอย่างมากของอุตสาหกรรมการคำนวณ และช่วยเพิ่มประสิทธิภาพของโปรโตคอลแบบเพียร์ทูเพียร์อื่นๆ ได้อย่างมาก โดยการเพิ่มชั้นทางเศรษฐกิจเป็นครั้งแรก
แทนที่จะจัดเตรียมชุดการดำเนินการที่จำกัดซึ่งออกแบบมาสำหรับกรณีการใช้งานเฉพาะ Ethereum จัดเตรียมภาษาการเขียนโปรแกรมทัวริงที่สมบูรณ์ซึ่งช่วยให้นักพัฒนาสามารถสร้างแอปพลิเคชันใดๆ ที่พวกเขาสามารถออกแบบได้ ต้องการประดิษฐ์อนุพันธ์ทางการเงินของคุณเองหรือไม่? สร้างสกุลเงินของคุณเองเหรอ? จัดตั้งรัฐบาลบนบล็อคเชนเหรอ? สิ่งเหล่านี้สามารถนำไปใช้ได้จริงกับระบบการเขียนสคริปต์ของ Ethereum พลังของแพลตฟอร์มไม่ได้อยู่ที่การคาดการณ์ว่าแอปพลิเคชันใดจะถูกสร้างขึ้น แต่อยู่ที่การจัดหาโครงสร้างพื้นฐานพื้นฐานที่ทำให้การสร้างเป็นเรื่องง่าย
แนวคิดของฟังก์ชันการเปลี่ยนสถานะตามอำเภอใจที่นำมาใช้โดยโปรโตคอล Ethereum มอบแพลตฟอร์มที่มีศักยภาพเฉพาะตัว แทนที่จะเป็นโปรโตคอลแบบปลายปิดที่มีจุดประสงค์เดียวสำหรับแอปพลิเคชันเฉพาะในการจัดเก็บข้อมูล การพนัน หรือการเงิน Ethereum เป็นโปรโตคอลปลายเปิดที่ได้รับการออกแบบ และเราเชื่อว่ามีความเหมาะสมอย่างยิ่งที่จะทำหน้าที่เป็นเลเยอร์พื้นฐานสำหรับโปรโตคอลทั้งทางการเงินและไม่ใช่ทางการเงินจำนวนมากในปีต่อๆ ไป แอปพลิเคชันที่จะสร้างขึ้นบน Ethereum ในอนาคตอาจเป็นแอปพลิเคชันที่เราไม่สามารถจินตนาการได้ในปัจจุบัน และความเป็นไปได้แบบปลายเปิดนั้นแสดงถึงคำมั่นสัญญาที่แท้จริงของแพลตฟอร์ม
Conclusion
以太坊协议最初被构想为加密货币的升级版本,通过高度通用的编程语言提供链上托管、提取限额和金融合约等高级功能。然而,以太坊协议远不止于货币。围绕去中心化文件存储、去中心化计算和去中心化预测市场的协议,以及数十个其他概念,有潜力大幅提高计算行业的效率,并通过首次添加经济层为其他点对点协议提供巨大推动力。
以太坊不是提供为特定用例设计的有限操作集,而是提供一种图灵完备的编程语言,使开发者能够构建他们所能设计的任何应用。想要发明自己的金融衍生品?创建自己的货币?在区块链上建立一个政府?这些在以太坊的脚本系统中都可以轻而易举地实现。该平台的力量不在于预测将构建什么应用,而在于提供使构建这些应用变得容易的基础设施。
以太坊协议实现的任意状态转换函数的概念提供了一个具有独特潜力的平台。以太坊不是一个封闭的、面向特定数据存储、赌博或金融应用的单一用途协议,而是在设计上就是开放式的,我们相信它极其适合在未来数年中作为大量金融和非金融协议的基础层。未来在以太坊上构建的应用可能是我们今天甚至无法想象的,而这种开放式的可能性代表了该平台的真正前景。
References and Further Reading
เอกสารไวท์เปเปอร์ Ethereum สร้างขึ้นจากงานก่อนหน้านี้ที่กว้างขวางในการวิจัยระบบสกุลเงินดิจิทัลและแบบกระจาย โปรโตคอล Bitcoin พื้นฐานได้อธิบายไว้ในรายงานต้นฉบับปี 2008 ของ Satoshi Nakamoto เรื่อง "Bitcoin: A Peer-to-Peer Electronic Cash System" ซึ่งแนะนำแนวคิดของสกุลเงินดิจิทัลที่ใช้บล็อกเชน ความพยายามในช่วงแรกๆ ในการขยายฟังก์ชันการทำงานของ Bitcoin ได้แก่ Namecoin ซึ่งเป็นระบบการลงทะเบียนชื่อแบบกระจายอำนาจที่สาธิตการใช้งานบล็อกเชนที่นอกเหนือไปจากสกุลเงิน แม้ว่าจะจำกัดด้วยความสามารถในการเขียนสคริปต์ที่จำกัดของ Bitcoin
เอกสารทางเทคนิคของเหรียญสีเสนอวิธีการแสดงสินทรัพย์ทางเลือกบนบล็อกเชน Bitcoin โดยการ "ระบายสี" บิตคอยน์เฉพาะเพื่อเป็นตัวแทนของสินทรัพย์อื่น ๆ ในขณะที่ Mastercoin พยายามสร้างเลเยอร์โปรโตคอลที่ด้านบนของ Bitcoin สำหรับเครื่องมือทางการเงินที่ซับซ้อนมากขึ้น ทั้งสองเน้นย้ำถึงข้อจำกัดของการสร้างบน Bitcoin และกระตุ้นให้เกิดความต้องการแพลตฟอร์มที่ยืดหยุ่นมากขึ้น แนวคิดขององค์กรอิสระที่มีการกระจายอำนาจ ซึ่งมีการสำรวจในนิตยสาร Bitcoin ได้ให้รากฐานทางทฤษฎีสำหรับการกำกับดูแลองค์กรผ่านสัญญาที่ชาญฉลาด
องค์ประกอบทางเทคนิคที่สำคัญ ได้แก่ การยืนยันการชำระเงินที่ง่ายขึ้น (SPV) สำหรับลูกค้ารายย่อย Merkle tree เพื่อการตรวจสอบข้อมูลที่มีประสิทธิภาพ และ Patricia พยายามให้ Ethereum เป็นตัวแทนของรัฐ โปรโตคอล GHOST (Greedy Heaviest Observed Subtree) ที่อธิบายไว้ในรายงานการเข้ารหัสปี 2013 กล่าวถึงปัญหาด้านความปลอดภัยที่เกิดจากเวลาบล็อกที่รวดเร็ว และสร้างพื้นฐานสำหรับกลไกฉันทามติของ Ethereum ข้อมูลอ้างอิงเหล่านี้แสดงถึงรากฐานทางปัญญาที่ Ethereum ถูกสร้างขึ้น โดยผสมผสานข้อมูลเชิงลึกจากสกุลเงินดิจิทัล ระบบแบบกระจาย การเข้ารหัส และทฤษฎีเกม เพื่อสร้างแพลตฟอร์มบล็อกเชนสำหรับวัตถุประสงค์ทั่วไป
References and Further Reading
以太坊白皮书建立在加密货币和分布式系统研究的大量先前工作之上。基础性的比特币协议在中本聪2008年的原始论文《比特币:一种点对点电子现金系统》中进行了描述,该论文引入了基于区块链的数字货币概念。早期扩展比特币功能的尝试包括域名币——一个去中心化的域名注册系统,展示了货币之外的区块链应用,尽管受限于比特币的脚本能力。
彩色币白皮书提出了一种通过"着色"特定比特币来在比特币区块链上表示替代资产的方法,而万事达币试图在比特币之上创建一个用于更复杂金融工具的协议层。两者都凸显了在比特币之上构建的局限性,并推动了对更灵活平台的需求。去中心化自治公司的概念在《比特币杂志》中进行了探讨,为通过智能合约进行组织治理提供了理论基础。
关键技术组件包括用于轻客户端的简化支付验证(SPV)、用于高效数据验证的默克尔树,以及用于以太坊状态表示的帕特里夏树。GHOST(贪婪最重观察子树)协议在2013年的一篇密码学论文中进行了描述,解决了快速出块时间带来的安全问题,构成了以太坊共识机制的基础。这些参考文献代表了以太坊所建立的知识基础,结合了加密货币、分布式系统、密码学和博弈论的洞见,创建了一个通用区块链平台。