بلاکچین Quorum
بلاک چین Quorum یک بلاک چین اتریوم “متمرکز بر سازمان” است که سعی در بهبود فناوری بلاک چین دارد. اگرچه نسل اول بلاک چین مقیاس پذیری، شبکه های همتا به همتا، قابلیت همکاری، شفافیت و سایر ویژگی ها را ارائه می دهد، اما هنوز کامل نیست. محققان در سراسر جهان به سختی در حال کار برای بهبود وضعیت بلاک چین هستند. Quorum زاییده فکر JP Morgan است که برای پیشرفت فناوری بلاک چین در صنعت مالی توسعه یافته است.
چرا به Quorum نیاز داریم
در حال حاضر، اطلاعات بخش مالی توسط بیش از یک سازمان مدیریت می شود، اما همچنان، بخش مالی از عدم شفافیت، کنترل اطلاعات و امنیت رنج می برد. بلاک چین سنتی نیز الزامات بخش مالی را برآورده نمی کند حتی اگر قابلیت ردیابی و تغییر ناپذیری را فراهم کند. نیاز به سیستمی وجود دارد که کنترل خصوصی روی بلاک چین را از طریق اتوماسیون فراهم کند که بر اساس نیازها قابل تنظیم باشد.
ویژگی های Quorum
عملکرد (Performance}: بلاکچین Quorum سریعتر از بیت کوین و اتریوم است. بیش از ۱۵۰ تراکنش در ثانیه انجام می دهد. این به دلیل مکانیسم اجماع ساده ای است که توسط حد نصاب استفاده می شود. بهطور پیشفرض، حد نصاب از اجماع RAFT برای تحمل خطا و اجماع IBFT برای تحمل خطای بیزانسی استفاده میکند، که بسیار سریعتر از اثبات اجماع کاری اتریوم است.
مدیریت مجوز (Permission Management): مشارکت را به مجموعه شناخته شده ای از نود ها محدود می کند که باید برای بخشی از شبکه بلاک چین تدارک دیده شوند، بنابراین برای همه باز نیست و فقط بین شرکت کنندگانی که از قبل توسط یک مرجع تعیین شده تایید شده اند اجرا می شود.
حذف قیمت گذاری معامله (Elimination of transaction pricing): مفهوم اضافه کردن هزینه به معامله با استفاده از گاز را حذف کرد. نیازی به هزینههای ارز دیجیتال مرتبط با انجام تراکنشها در شبکه حد نصاب نیست. کد Quorum در ابتدا از اتریوم خارج شد، استفاده از خود گاز وجود دارد اما روی صفر تنظیم شده است.
حریم خصوصی بهتر (Better Privacy): بلاکچین Quorum تراکنش های عمومی و خصوصی روی زنجیره را فراهم می کند. تراکنشهای باز مشابه اتریوم هستند، در حالی که تراکنشهای خصوصی در معرض عموم قرار نمیگیرند. از فناوری Constellation استفاده می کند که پیام های خاصی را در مکانی به نام محصور رمزگذاری می کند و اطلاعات مربوط به تراکنش های قبلی را ذخیره می کند.
مدیریت دارایی (Assets Management): به یک نهاد اجازه میدهد تا داراییهای دیجیتال را بدون مراجعه به شخص ثالث ایجاد، مدیریت و توزیع کند. این به مالک استقلال در مورد نحوه مدیریت دارایی های خود می دهد.
منبع باز (Open Source): این یک منبع باز است که در آن بیش از ۳۰۰ مشارکت کننده فعال هستند و روی توسعه Quorum کار می کنند.
مزایای Quorum
الگوریتم اجماع (Consensus Algorithm): از الگوریتم اجماع “Cuorum-Chain” استفاده می کند که بر اساس رای اکثریت است. با این حال، همه نود ها قادر به رای دادن نیستند. تنها به تعداد کمی از نود های انتخاب شده امکان رای دادن در فرآیند رای گیری داده می شود. این به تأیید تراکنش کمک می کند. Quorum از استانبول BFT و مدل های مبتنی بر Raft برای تحمل بهتر خطا استفاده می کند. فقط شرکت کنندگان منتخب در شبکه شرکت می کنند.
قراردادهای هوشمند ترکیبی (Hybrid Smart Contracts): قراردادهای هوشمند به دو صورت خصوصی و عمومی تنظیم می شوند و از solidity برای برنامه ریزی آنها استفاده می شود. هنگامی که یک قرارداد هوشمند خصوصی است، نمی توان آن را به یک قرارداد عمومی تبدیل کرد. به طور مشابه، قراردادهای هوشمند عمومی را نمی توان به قراردادهای خصوصی تغییر داد که این امر آنها را ایمن تر می کند.
عملکرد (Performance): بلاکچین Quorum سرعت تراکنش بالاتری را فراهم می کند زیرا معمولاً از قراردادهای خصوصی استفاده می شود و قراردادهای خصوصی بهتر از قراردادهای عمومی کار می کنند. آزمایش شده است که Raft بهتر از استانبول BFT عمل می کند.
معایب Quorum
مقیاس پذیری (Scalability): رویکرد کانال محور Quorum به حریم خصوصی چالش هایی را برای حفظ حریم خصوصی و مقیاس پذیری با پیچیدهتر شدن موارد استفاده ایجاد می کند.
فقدان اقتصاد رمزنگاری شده (Lack of crypto-economics): حد نصاب نیازی به ارز دیجیتال داخلی ندارد زیرا اجماع از طریق استخراج حاصل نمی شود. توسعه یک ارز بومی یا یک توکن دیجیتال با Quorum امکانپذیر نیست.
عدم پشتیبانی (Lack of Support): توسعه دهندگان و مشارکت کنندگان کمتری در Quorum وجود دارد، به همین دلیل کمک و پشتیبانی کمتر است.
ساختار Quorum
بیایید در مورد جزئیات معماری بلاک چین Quorum بحث کنیم.
(Quorum Node): یک ابزار خط فرمان است که یک فورک سبک وزن Geth است. این پیکربندی فقط به گونهای پیکربندی شده است که امکان اتصال از نود های مجوز را فراهم میکند و اتصال P2P را حذف میکند.
(Constellation): مدیر معامله و محصور را حفظ می کرد. این تضمین می کند که اطلاعات اضافه شده به بلاک چین از هر راه ممکن ایمن باقی می ماند.
(Transaction Manager): از حریم خصوصی تراکنش مراقبت می کند و با ذخیره دسترسی مجاز و سایر داده های مهم برای تسهیل تراکنش ها، رمزگذاری داده های تراکنش را در طول فرآیند تضمین می کند.
(Enclave): تکنیکهای رمزنگاری مختلف مانند احراز هویت مشارکتکننده، تاریخچه تراکنش و سایر عملکردهای کلیدی را برای اطمینان از انجام بهینه عملیات با تمرکز بر مقیاسپذیری ارائه میکند.
پروژه مبتنی برQuorum
Alastria: یک کنسرسیوم چندبخشی اسپانیایی. ایجاد زیرساخت های نیمه عمومی DLT را ترویج می کند. هدف آن بهبود خدمات در اسپانیا بود و طبق مقررات اروپایی کار خواهد کرد.
VAKT: اکوسیستم دیجیتالی را فراهم می کند که کاربران را قادر می سازد پردازش های فیزیکی پس از تجارت را انجام دهند. می توان آن را “پلتفرم مدیریت پس از تجارت” نامید. با انجام این کار، به عنوان یک منبع واحد برای چرخه عمر تجارت عمل می کند که در صورت نیاز می تواند تأیید شود. برخلاف راهحلهای دیگر که فقط سعی در حل یک بخش خاص دارند و نه کل مشکل، چرخه حیات تجارت پایان به پایان را پوشش میدهد.
Kimlic: این یک KYC در بلاک چین است. این یک پلت فرم اعتبار سنجی هویت غیرمتمرکز است. این به استارتآپها کمک میکند تا فوراً کاربران را به Dapps و صرافیهای رمزنگاری خود اضافه کنند. این به این معنی است که کاربر فقط یک بار باید KYC را تکمیل کند و سپس می تواند در پلتفرم های مختلف استفاده شود.
Blockoneiq-quorum: این یک ارائه دهنده داده برای بلاک چین Quorum است، یک چارچوب اوراکل که به DLT کمک می کند تا از محتوای امضا شده استفاده کند که با استفاده از قراردادهای هوشمند تامسون رویترز تولید و ضبط می شود.
Komgo: این یک پروژه جالب است که به ادغام شبکه مالی با سایر کاربران و شبکه ها کمک می کند.
کاربردهای بلاک چین Quorum
Vaccination tracing: یکی از ویژگی های عالی Quorum نگهداری سوابقی است که فقط برای افراد مختلف قابل دسترسی است. تیمی در نیجریه با سازمان ملل متحد راهی برای استفاده از Quorum برای ایجاد پایگاه داده ایمن برای واکسیناسیون با blockTEST ارائه کرده است. این پایگاه داده سوابق کودکانی را نشان میدهد که واکسن زدهاند یا هنوز واکسینه نشدهاند.
Supply Chain Tracking: صنایع و مشاغل مختلف از Quorum برای پیگیری عرضه محصولات خود استفاده می کنند. به عنوان مثال، استارباکس از ویژگی مایکروسافت، Azure برای ردیابی تولید قهوه در بخشهای مختلف استفاده میکند.
Customized Private Blockchains: هر موسسه مالی خصوصی می تواند از مزایای بلاک چین Quorum مانند بانک ها یا شرکت های بیمه استفاده کند. ماهیت مجاز به Quorum کمک می کند تا در همه انواع تنظیمات استفاده شود. توانایی سفارشی سازی از همان ابتدا چیزی است که آن را به یک نامزد ایده آل تبدیل می کند.
پیادهسازی بلاک چین Quorum با استفاده از Docker در Google Cloud Shell
مرحله ۱: پوسته ابری Google را در حالت ویرایشگر ارائه شده از کنسول توسعه دهنده Google باز کنید.
مرحله ۲: Docker را نصب کنید.
مرحله ۳: با اجرای این دستورات مخزن را کلون کنید و پس از آن به پوشه quorum-examples بروید.
$ git clone https://github.com/jpmorganchase/quorum-examples
$ cd quorum-examples
$ PRIVATE_CONFIG=نادیده گرفتن QUORUM_CONSENSUS=raft docker-compose up -d
مرحله ۴: پس از اجرای دستور بالا، ۷ کانتینر با ۷ نود و ۷ مدیر تراکنش در حال اجرا هستند. حداقل ۳ نود مورد نیاز است. بنابراین، ۳ ترمینال را باز کنید و ۳ نود را با اجرای این دستورات فعال کنید:
برای نود ۱:
docker exec -it quorum-examples_node1_1 geth attach /qdata/dd/geth.ipc
eth.accounts
eth.getBalance(“0xed9d02e382b34818e88b88a309c7fe71e65f419d”)
برای نود ۴:
docker exec -it quorum-examples_node7_1 دریافت
کنید /qdata/dd/geth.ipc eth.accounts
eth.getBalance(“0xcc71c7546429a13796cf1bf9228bff213e7ae9cc”)
برای نود ۷:
docker exec -it quorum-examples_node4_1 دریافت
/qdata/dd/geth.ipc eth.accounts
eth.getBalance(“0x9186eb3d20cbd1f5f992a950d808c4495153abd5”)
مرحله ۵: یک قرارداد هوشمند (کد نمونه) ایجاد کنید، کد را کپی کنید و آن را در هر کنسول geth قرار دهید تا آدرس قرارداد ایجاد شود:
a = eth.accounts[0] web3.eth.defaultAccount = a;
// abi و بایت کد تولید شده از simplestorage.sol:
// > solcjs –bin –abi simplestorage.sol
var abi = [{“constant”:true,”inputs”:[],”name”:”storedData”, “خروجیها”:
[{“نام”:””، “نوع”:”uint256″}],”قابل پرداخت”:false,”type”:”function”},
{“constant”:false,”inputs”:[{“name”:”x”، “type”:”uint256″}],”name”:”set”،
“outputs”:[],”payable”:false,”type”:”function”}
، “constant”:true,”inputs”:[],”name”:”
var bytecode = “”;
var simpleContract = web3.eth.contract(abi);
var simple = simpleContract.new(40002، {from:web3.eth.accounts[0]،
data: bytecode, gas: 0x47b760},
function(e, contract){
if (e)
{
console.log(“err create contract”, e);
} else
{
if (!contract.address)
{
console.log(“Contract Transaction send: TransactionHash: ” +
contract.transactionHash + “در انتظار استخراج…”);
} else
{
console.log(“Contract Mined! Address: ” + contract.address);
console.log(contract);
}
}
)؛
مرحله ۶: پس از ایجاد هش تراکنش، با استفاده از این دستور می توان آدرس قرارداد را دریافت کرد:
eth.getTransactionReceipt (در اینجا txHash را همانطور که در تصویر نشان داده شده ذکر کنید)
مرحله ۷: آدرس قرارداد را مستقر کنید.
“payable”:false,”type”:”function”}, {“inputs”:[{“name”:”initVal”,”type”:”uint256″}],”type”:”constructor”}];
var private = eth.contract(abi).at(آدرس)
خروجی: در اینجا نود ۱ یک تراکنش خصوصی به نود ۷ انجام داد و نود ۴ کاملاً از این وضعیت تراکنش جدا شده است، بنابراین فقط نود ۱ و نود ۷ قادر به دیدن وضعیت تراکنش هستند.