大牛证券欢迎你! 客服热线:4006-593-678
  公告 ​大牛证券老品牌,是您值得信赖的配资平台。大牛证券是证监会指定知名券商,严格遵守监管要求,保障资金安全无忧,提供一流投资体验。选对券商配资平台,让投资变得更加简单美好!用我们的智慧,为您创造财富。
资金保障
资金第三方监管,专款专用
真实交易
100%实盘,同步股市数据
快捷提现
闪电提现,最快三分钟到账
专业服务
客户体验至上为宗旨
按月配资

利率低至

100元/1万

独立成户

稳定高效

200万元
最高保证金
1000
起配金额
我要配资
资金三方托管/保险双保障/全实盘交易
按周配资

利率低至

30元/万

独立成户

稳定高效

200万元
最高保证金
1000
起配金额
我要配资
资金三方托管/保险双保障/全实盘交易
按天配资

利率低至

6元/1万

独立成户

稳定高效

200万元
最高保证金
1000
起配金额
我要配资
资金三方托管/保险双保障/全实盘交易
免息配资

不收取利息

全免

收益分成

盈利%归您

200万元
最高保证金
1000
起配金额
我要配资
资金三方托管/保险双保障/全实盘交易

领涨股

股票名称 当前价格 涨跌幅 市盈率
N新天 4.58 44.03% 13.07
N甘李 91.18 44.00% 30.66
硕世生物 261.08 12.34% 88
金晶科技 3.38 10.10% 73.26
安彩高科 4.69 10.09% 61.16
跨境通 5.90 10.08% 0
爱迪尔 5.90 10.08% 0
凯盛科技 5.91 10.06% 50.9
雪榕生物 11.94 10.05% 20.78
旗天科技 5.48 10.04% 0

领跌股

股票名称 当前价格 涨跌幅 市盈率
乐视退 0.35 -10.26% 0
中 关 村 11.12 -10.03% 130.88
恺英网络 3.50 -10.03% 0
新力金融 11.58 -10.02% 375.54
顺网科技 23.55 -10.01% 0
金运激光 44.01 -10.00% 863.75
天齐锂业 23.22 -10.00% 0
国药股份 44.57 -10.00% 21.7
汤臣倍健 19.81 -10.00% 0
神州泰岳 6.13 -9.99% 0

注册会员                            操盘达人

  • 181******9373 近期已注册成功

  • 137******9382 近期已注册成功

  • 158******6154 配资17万实盘资金盈利1.7万

  • 159******5485 近期已注册成功

  • 151******0018 配资6万实盘资金盈利1.62万

  • 132******3168 今日已注册成功

  • 166******5345 配资5万实盘资金盈利0.8万

  • 138******7588 近期已注册成功

  • 138******7391 配资61万实盘资金盈利4.88万

  • 156******5123 近期已注册成功

  • 199******2805 配资420万实盘资金盈利85.6万

  • 181******1852 近期已注册成功

  • 138******3045 配资300万实盘资金盈利69万

  • 150******9863 配资500万实盘资金盈利86万

  • 135******7455 近期已注册成功

  • 155******1706 配资150万实盘资金盈利40.5万

  • 182******1863 近期已注册成功

  • 185******4308 配资200万实盘资金盈利72万

  • 166******0551 今日已注册成功

  • 199******5159 配资6万实盘资金盈利1.28万

  • 191******9632 近期已注册成功

  • 131******2999 配资5万实盘资金盈利0.8万

  • 131******8352 今日已注册成功

  • 185******8221 配资320万实盘资金盈利62.4万

  • 139******5255 近期已注册成功

  • 152******9898 配资60万实盘资金盈利20.4万

  • 130******9884 近期已注册成功

  • 139******0801 配资40万实盘资金盈利14万

  • 188******1522 今日已注册成功

  • 155******8738 配资10万实盘资金盈利3.5万

  • 199******5056 近期已注册成功

  • 187******9215 配资80万实盘资金盈利19.84万

  • 131******8833 近期已注册成功

  • 186******9968 配资15万实盘资金盈利2.79万

  • 188******1137 近期已注册成功

  • 136******8585 配资6万实盘资金盈利1.62万

  • 152******2109 近期已注册成功

  • 158******5644 配资6万实盘资金盈利1.28万

  • 150******3576 今日已注册成功

  • 189******2269 配资88万实盘资金盈利22.88万

  • 182******5918 近期已注册成功

  • 139******8785 配资1万实盘资金盈利0.2万

  • 177******1164 近期已注册成功

  • 182******6642 配资6万实盘资金盈利0.9万

  • 155******3146 近期已注册成功

  • 132******1610 配资5万实盘资金盈利0.76万

  • 134******5511 近期已注册成功

  • 158******8288 配资140万实盘资金盈利23.8万

  • 155******5889 今日已注册成功

  • 136******3707 近期已注册成功

  • 132******6836 近期已注册成功

  • 132******2723 近期已注册成功

  • 189******9580 今日已注册成功

  • 136******2065 近期已注册成功

  • 152******5842 配资150万实盘资金盈利15.6万

  • 131******5815 近期已注册成功

  • 175******0811 近期已注册成功

  • 135******1754 配资128万实盘资金盈利23.8万

  • 136******1578 近期已注册成功

  • 182******2958 近期已注册成功

  • 132******2107 今日已注册成功

  • 130******6638 近期已注册成功

  • 131******7885 近期已注册成功

  • 131******2903 近期已注册成功

  • 131******2777 近期已注册成功

  • 177******4007 配资340万实盘资金盈利48.8万

  • 182******0177 今日已注册成功

  • 181******8866 近期已注册成功

  • 188******8888 近期已注册成功

  • 180******9917 近期已注册成功

  • 131******0999 今日已注册成功

  • 180******1021 配资320万实盘资金盈利35.5万

  • 151******9159 今日已注册成功

  • 182******0067 近期已注册成功

  • 133******8624 今日已注册成功

  • 158******8169 配资320万实盘资金盈利42.3万

  • 130******0484 今日已注册成功

  • 136******4975 今日已注册成功

  • 135******9423 近期已注册成功

  • 151******2879 近期已注册成功

  • 177******6131 今日已注册成功

  • 159******4118 配资140万实盘资金盈利23.8万

  • 158******9118 近期已注册成功

  • 139******3227 近期已注册成功

  • 183******8335 今日已注册成功

  • 151******1984 近期已注册成功

  • 180******2351 近期已注册成功

  • 178******2673 今日已注册成功

  • 130******9138 配资130万实盘资金盈利15.8万

  • 171******2580 近期已注册成功

  • 199******7655 近期已注册成功

  • 151******6075 今日已注册成功

  • 135******8235 近期已注册成功

  • 189******9473 近期已注册成功

  • 182******1545 今日已注册成功

  • 181******7858 配资140万实盘资金盈利23.8万

  • 133******6978 近期已注册成功

  • 180******1006 近期已注册成功

  • 181******2802 今日已注册成功

  • 159******2693 近期已注册成功

  • 135******5138 近期已注册成功

  • ****** 近期已注册成功

  • 189******4599 近期已注册成功

  • 181******7758 今日已注册成功

  • 138******7615 近期已注册成功

  • 135******7379 近期已注册成功

  • 130******6335 今日已注册成功

  • 134******0851 配资88万实盘资金盈利22.88万

  • 139******8324 近期已注册成功

  • 133******4242 今日已注册成功

  • 182******8973 今日已注册成功

  • 176******4530 近期已注册成功

  • 131******2408 今日已注册成功

  • 180******2505 近期已注册成功

  • 131******7128 今日已注册成功

  • 182******0146 今日已注册成功

  • 132******3348 近期已注册成功

  • 199******3524 今日已注册成功

  • 151******9799 今日已注册成功

  • 137******3128 今日已注册成功

  • 139******1068 近期已注册成功

  • 136******5241 近期已注册成功

  • 185******5993 今日已注册成功

  • 159******3747 近期已注册成功

  • 180******4237 今日已注册成功

  • 189******7060 近期已注册成功

  • 178******3968 今日已注册成功

  • 150******7995 配资15万实盘资金盈利2.6万

  • 136******7531 今日已注册成功

  • 183******8054 今日已注册成功

  • 151******4649 近期已注册成功

  • 135******8524 近期已注册成功

  • 150******2560 今日已注册成功

  • 138******5656 配资88万实盘资金盈利22.88万

  • 188******2998 近期已注册成功

  • 182******6642 近期已注册成功

  • 180******0890 今日已注册成功

  • 137******9294 近期已注册成功

  • 157******4398 近期已注册成功

  • 176******5644 近期已注册成功

  • 181******2084 近期已注册成功

  • 139******0705 近期已注册成功

  • 159******4556 今日已注册成功

  • 178******2863 配资12万实盘资金盈利1.88万

  • 188******0599 近期已注册成功

  • 134******2519 近期已注册成功

  • 151******2517 近期已注册成功

  • 176******6380 今日已注册成功

  • 171******0415 配资66万实盘资金盈利12.88万

  • 187******7849 今日已注册成功

  • 147******0207 近期已注册成功

  • 152******5759 近期已注册成功

  • 137******1716 今日已注册成功

  • 139******7659 配资2万实盘资金盈利0.25万

  • 176******5727 近期已注册成功

  • 158******7206 近期已注册成功

  • 152******2755 近期已注册成功

  • 152******3704 今日已注册成功

  • 138******0046 配资41万实盘资金盈利8.3万

  • 156******3551 近期已注册成功

  • 181******2156 今日已注册成功

  • 186******9264 今日已注册成功

  • 157******9210 近期已注册成功

  • 155******6668 配资7万实盘资金盈利0.65万

  • 152******7565 今日已注册成功

  • 180******3836 近期已注册成功

  • 153******7450 今日已注册成功

  • 153******0999 近期已注册成功

  • 188******5236 今日已注册成功

  • 136******6512 配资7万实盘资金盈利0.8万

  • 131******1412 近期已注册成功

  • 186******5079 近期已注册成功

  • 159******1377 近期已注册成功

  • 171******2698 今日已注册成功

  • 198******8562 近期已注册成功

  • 188******6391 今日已注册成功

  • 157******3520 配资4万实盘资金盈利0.42万

  • 177******5399 近期已注册成功

  • 136******3926 近期已注册成功

  • 177******9495 今日已注册成功

  • 135******2033 近期已注册成功

  • 185******0404 近期已注册成功

  • 159******4466 配资35万实盘资金盈利2.8万

  • 135******4047 近期已注册成功

  • 138******0409 近期已注册成功

  • 180******9805 配资6万实盘资金盈利0.3万

  • 131******0763 近期已注册成功

  • 182******6031 近期已注册成功

  • 130******7319 近期已注册成功

  • 178******1103 配资45万实盘资金盈利2.6万

  • 131******0371 配资32万实盘资金盈利3万

  • 182******4448 近期已注册成功

  • 178******0907 配资50万实盘资金盈利4.6万

  • 189******6979 近期已注册成功

  • 189******1260 近期已注册成功

  • 178******8920 配资12万实盘资金盈利1.2万

  • 186******6161 近期已注册成功

  • 183******1018 配资8万实盘资金盈利0.88万

  • 151******1978 近期已注册成功

今日充值

  • *********8021 充值2000元

  • *********4203 充值500元

  • *********4538 充值500元

  • *********7181 充值600元

  • *********1535 充值5000元

  • *********7728 充值2000元

  • *********7088 充值1000元

  • *********7092 充值100元

  • *********8863 充值100元

  • *********2920 充值100元

  • *********7666 充值1000元

  • *********2738 充值1000元

  • *********0559 充值500元

  • *********4799 充值5000元

  • *********8283 充值10000元

  • *********3920 充值1000元

  • *********9770 充值1000元

  • *********9991 充值51000元

  • *********0782 充值500元

  • *********0747 充值500元

  • *********1318 充值100元

  • *********2408 充值500元

  • *********3185 充值1000元

  • *********2790 充值10000元

  • *********3114 充值10000元

  • *********6623 充值1000元

  • *********2815 充值1000元

  • *********1266 充值2000元

  • *********5453 充值100元

  • *********2699 充值10000元

  • *********4588 充值1000元

  • *********8768 充值888元

  • *********3323 充值10000元

  • *********0638 充值10000元

  • *********1999 充值5019元

  • *********7433 充值1000元

  • *********1976 充值2000元

  • *********5351 充值10000元

  • *********7668 充值100000元

  • *********3279 充值100元

  • *********8029 充值20000元

  • *********3557 充值50000元

  • *********7190 充值100元

  • *********6730 充值100元

  • *********2494 充值100000元

  • *********6823 充值1500元

  • *********2659 充值100元

  • *********3332 充值2000元

  • *********3098 充值1000元

  • *********5609 充值20000元

  • *********2172 充值150元

  • *********6039 充值110元

  • *********0670 充值200元

  • *********5276 充值15000元

  • *********2570 充值500元

  • *********9529 充值1000元

  • *********3557 充值50000元

  • *********0826 充值5000元

  • *********5268 充值2200元

  • *********6248 充值1000元

  • *********5676 充值1000元

  • *********8882 充值1342元

  • *********3689 充值1000元

  • *********7308 充值500元

  • *********4150 充值100元

  • *********6630 充值800元

  • *********5245 充值1000元

  • *********3518 充值1000元

  • *********0869 充值100元

  • *********0966 充值10000元

  • *********9829 充值10000元

  • *********8700 充值4799.5元

  • *********7309 充值1000元

  • *********6366 充值1000元

  • *********3249 充值100元

  • *********8369 充值50000元

  • *********9183 充值1000元

  • *********6195 充值2000元

  • *********0999 充值100元

  • *********8007 充值1000元

  • *********0021 充值1000元

  • *********6727 充值500元

  • *********4086 充值50000元

  • *********1837 充值50000元

  • *********8445 充值5000元

  • *********9509 充值1000元

  • *********2445 充值12000元

  • *********0930 充值10000元

  • *********2297 充值5112元

  • *********1314 充值5000元

  • *********3057 充值50000元

  • *********8131 充值100元

  • *********0899 充值10000元

  • *********1012 充值1000元

  • *********1922 充值5000元

  • *********0234 充值1000元

  • *********6858 充值3000元

  • *********1687 充值500元

  • *********0999 充值2000元

  • *********5138 充值10000元

  • *********5858 充值10000元

  • *********0769 充值1000元

  • *********6437 充值10000元

  • *********9303 充值100元

  • *********1409 充值1000元

  • *********4240 充值1000元

  • *********8376 充值10001元

  • *********2231 充值1000元

  • *********6595 充值500元

  • *********1126 充值100元

  • *********0259 充值10000元

  • *********6164 充值100元

  • *********5727 充值10000元

  • *********7399 充值100元

  • *********3196 充值100元

  • *********2280 充值1000元

  • *********6425 充值5000元

  • *********4505 充值111元

  • *********2488 充值5000元

  • *********0595 充值500元

  • *********2122 充值5000元

  • *********5079 充值20000元

  • *********5481 充值2000元

  • *********9572 充值1100元

  • *********4259 充值10130元

  • *********5180 充值10080元

  • *********3777 充值10120元

  • *********7589 充值3000元

  • *********7742 充值1000元

  • *********2096 充值2000元

  • *********6188 充值3000元

  • *********3506 充值1000元

  • *********0733 充值1000元

  • *********7888 充值5068元

  • *********0573 充值10000元

  • *********8559 充值1000元

  • *********5805 充值100元

  • *********0603 充值1000元

  • *********7681 充值300元

  • *********1757 充值50000元

  • *********4860 充值1000元

  • *********3285 充值1000元

  • *********9598 充值1000元

  • *********2252 充值500元

  • *********5916 充值10000元

  • *********8631 充值1009元

  • *********0277 充值500元

  • *********6694 充值2000元

  • *********3105 充值10012元

  • *********6359 充值100元

  • *********0999 充值2000元

  • *********6292 充值1000元

  • *********8765 充值10000元

  • *********8329 充值10003元

  • *********7967 充值11000元

  • *********9394 充值1000元

  • *********1353 充值100000元

  • *********3335 充值1000元

  • *********2227 充值1012元

  • *********9728 充值1000元

  • *********0088 充值2000元

  • *********7116 充值3000元

  • *********7330 充值10000元

  • *********9671 充值1000元

  • *********5283 充值2000元

  • *********0467 充值5000元

  • *********5006 充值500元

  • *********0678 充值10000元

  • *********8715 充值1000元

  • *********1885 充值500元

  • *********2689 充值500元

  • *********2954 充值1000元

  • *********6619 充值1000元

  • *********0072 充值500元

  • *********7398 充值466元

  • *********7085 充值500000元

  • *********4458 充值1000元

  • *********8115 充值666元

  • *********5509 充值10000元

  • *********5493 充值1800元

  • *********6225 充值1000元

  • *********0621 充值2000元

  • *********3066 充值1000元

  • *********9822 充值100元

  • *********1115 充值100元

  • *********8873 充值1000元

  • *********4731 充值1000元

  • *********9816 充值1000元

  • *********9967 充值1000元

  • *********9859 充值1000元

  • *********6411 充值1000元

  • *********9016 充值1000元

  • *********3342 充值10000元

  • *********0845 充值100元

  • *********2460 充值100元

  • *********2921 充值10000元

  • *********3502 充值100元

  • *********4565 充值1000元

  • *********3558 充值5000元

  • *********8987 充值1000元

区块链新闻资讯
数字货币投资分析

如何降低运行区块链全节点成本?这里有全新轻节点方案

随着区块链网络的运行,节点数据量越来越大,运行区块链全节点的成本越来越高,现在一个区块链的全节点,区块数据存储量动辄就要几百G到上T,一方面直接导致运行全节点的区块链计算机的存储成本极大提高,如果我们想把区块链节点跑在一台普通PC上,光区块链数据就使用了普通PC一大半的硬盘存储空间,这显然是很难让人接收的;一方面也大大限制了区块链技术的应用场景,无论是手机还是IoT物联网设备,现在都不具备加载几T存储硬盘的能力。

为了解决这个问题,不同的区块链平台都提出了各自的轻节点解决方案,其中比较典型的是比特币的SPV方案和以太坊的状态校验方案。但是这两种方案都存在一定的不足,比特币的SPV方案可验证交易确实发生过,但无法验证在某个时刻账户的具体数值;以太坊的状态校验方案即可以验证交易发生过,也可以验证某个时刻账户的具体数值,但由于该方案需要将数据写入块头,导致共识的性能下降以及健壮性降低。

Ultrain在比特币的SPV方案和以太坊的状态校验方案基础上,提出了新的轻节点方案,既可以满足验证交易发生过和验证某个时刻账户的具体数值的功能性要求,同时也能满足共识在性能和健壮性方面的要求,其中在性能方面是以太坊方案的10倍以上。

采取轻节点模式的节点不需要同步巨量的区块数据,利用世界状态默克尔校验方式,节点不需要重放历史区块即可校验状态的正确性,从而可以使能更多应用场景(比如在资源受限的嵌入式设备运行轻节点等)。本文将从世界状态校验问题引出,比特币SPV方案,以太坊世界状态校验方案以及Ultrain所采取的具体方案等方面对轻节点世界状态校验技术方案进行详细阐述。

一、 节点同步数据量

区块链节点网络可以理解为一个分布式的状态机,各个节点从相同的创世状态开始,根据每个区块内包含的交易,将创世状态逐块更新,形成不断更新的世界状态。随着时间的推移,每个节点本地存储的数据会不断增长,主要包括历史区块数据以及不断更新的世界状态数据。比特币创世至今135个月(2009/01~2020/03)所生产的区块累积数据量已经达263.6GB,且现在以每个月四个多GB的速度在增长。

如何降低运行区块链全节点成本?这里有全新轻节点方案

图1 比特币区块大小

以太坊全节点以full模式进行同步时(节点会从网络同步所有的区块头,区块体并重放区块中的交易以生成世界状态数据),当前需同步的数据已经达到两三百GB,如对历史世界状态进行archive,则数据量已经超过4T。以太坊节点还支持fast模式进行同步,该模式与full模式的区别在于不重放区块中的交易去重构世界状态,而是从网络同步状态数据。此外,以太坊节点也支持light同步模式,此种模式下节点仅同步区块头数据,不同步区块体和状态数据,仅在需要相应的区块和状态时去从网络上获取。

如何降低运行区块链全节点成本?这里有全新轻节点方案

图2 以太坊全节点同步数据量

如何降低运行区块链全节点成本?这里有全新轻节点方案

图3 以太坊全节点Archive模式数据量

从以上比特币和以太坊的数据我们可以看出,部署运行一个全节点所需同步的数据量越来越大,从而导致节点机器硬件规格要求以及网络带宽门槛越来越越高。一个新节点需要花数天时间才能完成历史数据同步,然后才能开始参与共识过程进行出块。运行全节点成本比较高,在比特币白皮书中提到了轻节点可采用的SPV方案,可以在不同步全部区块数据的情况下,也能进行支付验证。这里的支付验证,只是验证该笔交易支付发生过,并不是验证交易的合法性(比如账户余额是否大于转账金额等)。

二、 比特币SPV方案

比特币白皮书中描述了SPV ( Simple Payment Verification ),即简单支付验证。SPV是一个在轻节点环境下,不用运行全节点、只需保存所有的区块头,就能验证支付有效性的技术方案。比特币中区块结构分为区块头和区块体两部分,区块头包含区块的必要属性,仅 80 字节大小;区块体包含当前区块下的所有交易,一般一个区块包含成百上千笔交易,每笔交易一般要 400 多字节。

如何降低运行区块链全节点成本?这里有全新轻节点方案

图4 比特币区块结构

如图4所示,比特币使用了默克尔树的数据结构来组织区块体内包含的交易:将区块内所有交易成对分组,并对交易进行哈希处理,然后对所得的哈希继续进行哈希处理,重复此过程,直到只剩下一个哈希,称为默克尔根(merkle root)。默克尔树底部的节点,就是交易数据的哈希值。每一个父节点,都是两个子节点哈希值组合后的哈希值。通过层层往上计算,最终算得根节点。这个默克尔根数值存储于比特币的区块头中。

轻节点从区块链网络上获取了最长链上的所有区块头并在本地进行存储后,即可进行进行SPV支付验证:轻客户端首先计算待验证支付交易的哈希值;然后定位到包含该交易哈希所在的区块,并从区块中获取构建待验证支付交易默克尔树所需的哈希值序列;根据待校验交易的哈希值以及其所需哈希值序列,计算出默克尔根;将计算所得默克尔根数值与区块头中的默克尔根进行比对,如相等则证明交易是真实存在的。

比特币区块头的大小始终是固定的80个字节,每小时出块约为6个,每年出块52560个,则每年新增的存储量约为4M 字节,SPV方案极大节省了轻节点的存储空间。从上述过程我们可以看出,比特币的这种SPV方案,仅确保校验的交易确实发生过,但不能用来校验交易所导致的世界状态的变化。以太坊在区块头中存储了交易的默克尔根数值,可以适用类似比特币的SPV方案;此外以太坊的区块头中还存储了世界状态的默克尔根数值,可以用来进行世界状态数值的校验。

三、 以太坊世界状态校验方案

以太坊的账户包含四个属性,nonce,balance,storageRoot和codeHash;以太坊用stateObject来管理账户状态,账户以Address为唯一标示;所有账户对象逐一插入Merkle-PatricaTrie(MPT)结构里,形成stateTrie。区块头数据结构中的Root字段存储了stateTrie的root数值,即世界状态的哈希值。

如何降低运行区块链全节点成本?这里有全新轻节点方案

图5 以太坊区块头世界状态哈希字段

我们假设在以太坊区块链上有两个账户A和账户B,初始账户余额均为10个以太币,在编号为1000的区块中发生过这样一笔交易:账户A向账户B转账一个以太币,将账户A的余额修改为9个以太币,账户B的余额修改为11个以太币(不考虑矿工费)。在与比特币SPV类似的以太坊的轻客户端中,我们可以利用在区块编号为1000块的块头中存储的交易的默克尔根数据,校验确实发生过账户A向账户B转账一个以太币这样一笔交易,但是仅利用交易的默克尔根数据,不能校验账户A的余额是不是9个以太币(或者账户B的余额是不是11个以太币),即不能校验世界状态的具体数值。

在以太坊的区块头的世界状态默克尔根数值(字段Root)可以用来完成世界状态具体数值的校验。该字段为以太坊StateDB中的“state Trie”的根节点的RLP哈希值。区块中,每个账户以stateObject对象表示,账户以Address为唯一标示,其信息在相关交易(Transaction)的执行中被修改。所有账户对象可以逐个插入一个Merkle-PatricaTrie(MPT)结构里,形成“state Trie”。

以太坊EIP-1186中增加了eth_getProof接口用于返回账号(account)及其状态(storage values)的默克尔校验所需的信息(merkle path),用于完成世界状态数值校验。eth_getProof有三个输入参数:

1) DATA: 20字节 – 为账户的地址(外部账户/合约账户)

2) ARRAY:32字节 – 为代校验状态数据的地址

3) QUANTITY|TAG: – 为指定的区块编号或者字符串”latest” 或 “earliest”

如何降低运行区块链全节点成本?这里有全新轻节点方案

图6 以太坊eth_getProof接口请求参数

该接口返回数据如下:

1) balance:账户余额

2) codeHash:合约账户代码哈希数值,外部账户则返回固定数值

3) nonce:账户nonce值,表示发了多少笔交易或创建了多少个合约

4) storageHash:状态数值的默克尔根数值

5) accountProof:账户校验所需的默克尔序列数组

6) storageProof:状态数值校验所需的信息数组,包括以下字段:

Ø key:状态数值对应地址

Ø value:状态具体数值

Ø proof:状态数值校验所需的默克尔序列数组

如何降低运行区块链全节点成本?这里有全新轻节点方案

图7 以太坊eth_getProof接口返回数据

轻节点通过eth_getProof接口获取上述返回信息后,首先根据返回的四个属性值[nonce, balance, codeHash,storageHash]构建账户对象,进行RLP编码后进行哈希操作,得到的数值与accountProof结合可以与在区块头中存储的世界状态默克尔树根数值进行校验;校验通过后,则相当于确认了storageHash字段的正确性,再结合storageProof中的默克尔序列可以完成对状态数值的校验。相关校验示例代码如下所示:

如何降低运行区块链全节点成本?这里有全新轻节点方案

图8 以太坊状态校验示例代码

四、 Ultrain世界状态校验方案

以太坊采用MPT树(Merkle-PatricaTrie)管理所有账户对象,stateTrie存储了所有账户的信息,比如余额,发起交易次数,虚拟机指令数组等信息,随着每次交易的执行,stateTrie 其实一直在变化,区块内所有交易完成后,所有账户信息的即时状态的默克尔根数值会记录到区块头中。

Ultrain采用chainbase存储所有世界状态信息,区块内交易执行会更新chainbase内相关对象的状态数值,因此chainbase内存储了世界状态的实时信息。客户端通过链上接口(get_table_records)查询chainbase内信息时,实际上是信任接口提供方,从而信任其提供的数据的正确性;且该接口只能提供实时状态信息,不能查询指定块高状态数值。Ultrain世界状态校验方案可指定块高查询状态信息,并提供该状态信息校验所需的默克尔路径信息,从而去除对接口提供方的信任依赖。

Ultrain世界状态校验方案中,每个矿工节点在区块交易执行结束时,将本区块内所有交易对世界状态所做的所有修改(即对chainbase内存储数据的修改)进行序列化处理,并按一定顺序组织为默克尔树的叶子节点,再逐层计算得出该区块世界状态变化的默克尔根数值,计算所得的默克尔根数值会保存到内存中。当区块高度到一定间隔(比如每100块)时,将间隔内所有区块的世界状态变化的默克尔根数值再做一次默克尔根数值计算,并将该结果(称之为世界状态变化累计默克尔根数值)以及间隔内每个区块的块高与对应的默克尔根数值写入文件系统。为防止对主线程性能造成影响,这部分逻辑采用单独的线程完成。所有矿工节点会将世界状态变化累计默克尔根数值通过链上交易写入系统合约,只有超过2/3矿工汇报相同默克尔根数值时,该数值才会生效。

为提供世界状态校验查询功能,需设置提供世界状态查询服务的节点。选取非矿工节点(即只接收交易和区块,不参与共识过程的节点)在每个区块内交易执行完全结束后,将该区块内所有对世界状态的修改序列化后存储到文件系统,并响应校验查询节点的数据请求,将状态变化数据发送给查询节点进行存储。查询节点采用rocksdb将每个区块对世界状态的修改进行存储,包括块高(block_num),修改序号(sequence),修改内容(修改后的具体状态内容);查询节点在存储每块数据的同时,与矿工节点类似计算每个区块对应的世界状态变化的默克尔根数值,并将该数值存储到rocksdb中。此外,查询节点为轻节点提供查询接口,响应其查询请求。

如何降低运行区块链全节点成本?这里有全新轻节点方案

图9 Ultrain世界状态校验查询节点与非矿工节点交互

轻节点对特定世界状态进行查询校验的时候需经过如下三个步骤:

1)首先采用 get_table_rows接口查询具体世界状态数值,该接口需输入要查询的世界状态所在的数据表信息(code,scope,table)以及限定的区块块高信息:

返回数据包括该条状态的具体信息(如示例中data字段的账户余额)以及该信息对应的二进制字节(示例中的raw字段,该字段也可以由轻节点根据合约的ABI文件自己生成);此外,该接口会返回这条世界状态修改对应的块高(block_num)及序号信息(sequence)。

2)根据get_table_rows接口返回的块高及序号信息,获取对应的校验该状态所需的默克尔树序列信息,轻节点调用如下接口:

该接口返回的paths字段即为默克尔树序列信息:

如何降低运行区块链全节点成本?这里有全新轻节点方案

3)根据get_table_rows返回的raw数据以及get_table_row_proof返回的paths数据,轻节点可以调用如下接口,计算默克尔树根数值(轻节点也可以自己实现根据raw和paths数据计算默克尔根的逻辑):

如何降低运行区块链全节点成本?这里有全新轻节点方案

该接口返回计算所得的默克尔根数值,该值可以与矿工节点通过交易写入系统合约的对应的数值进行比对,相同则表示校验通过(该示例中发生世界状态改变的区块高度为34186,如矿工节点所选取的区块间隔为100的话,则应该从系统合约读取块高34200对应的默克尔根数值进行比对)。

综上所述,轻节点与查询服务节点交互流程如下图所示:

如何降低运行区块链全节点成本?这里有全新轻节点方案

图10 Ultrain世界状态校验接口流程图

文中所述比特币的SPV方案,以太坊的状态校验方案以及Ultrain的状态校验方案,我们可以看到轻节点不需要再同步大量的数据,即可验证交易确实发生过,以及验证在某个时刻世界状态具体数值,由此轻节点所需的存储及计算资源大幅降低,可以在资源受限的嵌入式设备上运行轻节点,比如物联网设备,实现物联网与区块链技术的结合,使能更多商业场景。

未经允许不得转载:三链财经 » 如何降低运行区块链全节点成本?这里有全新轻节点方案

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
链才网 信用卡积分兑现

联系邮箱:2868023681@qq.com

© 2021 三链财经   网站地图